Currently all this agent host stuff is mixed with the core terminal code. AFAICT it's only used in a select few places. The idea with terminalContrib/ is to keep the core slim to reduce complexity. It enforces layer checks to ensure that it builds upon the core and not in it.
There are cases where things outside terminalContrib/ need things inside which is why these re-exports exist:
https://github.com/microsoft/vscode/blob/382e40aeea80678fe6bdb3ab9019f81c80f5d063/src/vs/workbench/contrib/terminal/terminalContribChatExports.ts#L1-L12
Ideally they wouldn't though, and to workaround that you could register the objects into something, rather than export the objects.
Currently all this agent host stuff is mixed with the core terminal code. AFAICT it's only used in a select few places. The idea with
terminalContrib/is to keep the core slim to reduce complexity. It enforces layer checks to ensure that it builds upon the core and not in it.There are cases where things outside
terminalContrib/need things inside which is why these re-exports exist:https://github.com/microsoft/vscode/blob/382e40aeea80678fe6bdb3ab9019f81c80f5d063/src/vs/workbench/contrib/terminal/terminalContribChatExports.ts#L1-L12
Ideally they wouldn't though, and to workaround that you could register the objects into something, rather than export the objects.