Skip to content

Commit 6451ccd

Browse files
joshspicerCopilot
andcommitted
Wire IAgentConfigurationService into production agent host DI
PluginController now requires IAgentConfigurationService in its constructor. agentHostServerMain.ts and agentHostMain.ts both construct CopilotAgent via DI but didn't register the service, causing the integration test 'Agent Host Server starts with production agent services registered' to fail because the server exited prematurely on startup. Expose configurationService getter on AgentService and register it in the downstream DI containers. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
1 parent f4f4874 commit 6451ccd

3 files changed

Lines changed: 7 additions & 0 deletions

File tree

src/vs/platform/agentHost/node/agentHostMain.ts

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,7 @@ import * as os from 'os';
1717
import * as inspector from 'inspector';
1818
import { AgentHostIpcChannels, IAgentHostInspectInfo, IAgentHostSocketInfo, IConnectionTrackerService } from '../common/agentService.js';
1919
import { AgentService } from './agentService.js';
20+
import { IAgentConfigurationService } from './agentConfigurationService.js';
2021
import { IAgentHostTerminalManager } from './agentHostTerminalManager.js';
2122
import { CopilotAgent } from './copilot/copilotAgent.js';
2223
import { ProtocolServerHandler } from './protocolServerHandler.js';
@@ -103,6 +104,7 @@ function startAgentHost(): void {
103104
diServices.set(IDiffComputeService, diffComputeService);
104105

105106
diServices.set(IAgentHostTerminalManager, agentService.terminalManager);
107+
diServices.set(IAgentConfigurationService, agentService.configurationService);
106108
const instantiationService = new InstantiationService(diServices);
107109
diServices.set(IAgentHostGitService, instantiationService.createInstance(AgentHostGitService));
108110
agentService.registerProvider(instantiationService.createInstance(CopilotAgent));

src/vs/platform/agentHost/node/agentHostServerMain.ts

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -33,6 +33,7 @@ import { InstantiationService } from '../../instantiation/common/instantiationSe
3333
import { ServiceCollection } from '../../instantiation/common/serviceCollection.js';
3434
import { CopilotAgent } from './copilot/copilotAgent.js';
3535
import { AgentService } from './agentService.js';
36+
import { IAgentConfigurationService } from './agentConfigurationService.js';
3637
import { IAgentHostTerminalManager } from './agentHostTerminalManager.js';
3738
import { WebSocketProtocolServer } from './webSocketTransport.js';
3839
import { ProtocolServerHandler } from './protocolServerHandler.js';
@@ -181,6 +182,7 @@ async function main(): Promise<void> {
181182
diServices.set(IAgentPluginManager, pluginManager);
182183
diServices.set(IDiffComputeService, disposables.add(new NodeWorkerDiffComputeService(logService)));
183184
diServices.set(IAgentHostTerminalManager, agentService.terminalManager);
185+
diServices.set(IAgentConfigurationService, agentService.configurationService);
184186
const instantiationService = new InstantiationService(diServices);
185187
diServices.set(IAgentHostGitService, instantiationService.createInstance(AgentHostGitService));
186188
const copilotAgent = disposables.add(instantiationService.createInstance(CopilotAgent));

src/vs/platform/agentHost/node/agentService.ts

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -65,6 +65,9 @@ export class AgentService extends Disposable implements IAgentService {
6565
/** Exposes the state manager for co-hosting a WebSocket protocol server. */
6666
get stateManager(): AgentHostStateManager { return this._stateManager; }
6767

68+
/** Exposes the configuration service so agent providers can share root config plumbing. */
69+
get configurationService(): IAgentConfigurationService { return this._configurationService; }
70+
6871
/** Registered providers keyed by their {@link AgentProvider} id. */
6972
private readonly _providers = new Map<AgentProvider, IAgent>();
7073
/** Maps each active session URI (toString) to its owning provider. */

0 commit comments

Comments
 (0)