import { Disposable, IDisposable } from "@codingame/monaco-vscode-api/vscode/vs/base/common/lifecycle"; import { IObservable } from "@codingame/monaco-vscode-api/vscode/vs/base/common/observable"; import { IInstantiationService } from "@codingame/monaco-vscode-api/vscode/vs/platform/instantiation/common/instantiation"; import { IStorageService } from "@codingame/monaco-vscode-api/vscode/vs/platform/storage/common/storage.service"; import type { SessionActiveClient, ToolDefinition } from "@codingame/monaco-vscode-api/vscode/vs/platform/agentHost/common/state/protocol/state"; import type { ClientPluginCustomization } from "@codingame/monaco-vscode-api/vscode/vs/platform/agentHost/common/state/sessionState"; import { ICustomizationSyncProvider } from "@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/common/customizationHarnessService"; import { IAgentPluginService } from "@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/common/plugins/agentPluginService.service"; import { IPromptsService } from "@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/common/promptSyntax/service/promptsService.service"; import { ILanguageModelToolsService } from "@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/common/tools/languageModelToolsService.service"; import { IMcpService } from "@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/mcp/common/mcpTypes.service"; import { IConfigurationResolverService } from "@codingame/monaco-vscode-api/vscode/vs/workbench/services/configurationResolver/common/configurationResolver.service"; import { IAgentHostToolSetEnablementService } from "@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/browser/agentSessions/agentHost/agentHostToolSetEnablementService.service"; import { IFileService } from "@codingame/monaco-vscode-api/vscode/vs/platform/files/common/files.service"; import { IAgentHostActiveClientService } from "@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/browser/agentSessions/agentHost/agentHostActiveClientService.service"; /** The exposed `syncProvider` is the same instance the service uses to resolve customizations; the contribution wires it into its harness so opt-out toggles propagate. */ export interface IAgentRegistration extends IDisposable { readonly syncProvider: ICustomizationSyncProvider; } export declare class AgentHostActiveClientService extends Disposable implements IAgentHostActiveClientService { private readonly _toolsService; private readonly _promptsService; private readonly _agentPluginService; private readonly _storageService; private readonly _instantiationService; private readonly _fileService; private readonly _mcpService; private readonly _configurationResolverService; private readonly _toolSetEnablementService; readonly _serviceBrand: undefined; private readonly _customizationsByType; private readonly _allToolsObs; private readonly _allToolSetsObs; /** Cached per-`sessionType` advertised-tools observable, so callers (e.g. autoruns) reuse one stable derived. */ private readonly _clientToolsByType; constructor(_toolsService: ILanguageModelToolsService, _promptsService: IPromptsService, _agentPluginService: IAgentPluginService, _storageService: IStorageService, _instantiationService: IInstantiationService, _fileService: IFileService, _mcpService: IMcpService, _configurationResolverService: IConfigurationResolverService, _toolSetEnablementService: IAgentHostToolSetEnablementService); registerForAgent(sessionType: string): IAgentRegistration; private _setCustomizations; getActiveClient(sessionType: string, clientId: string): SessionActiveClient; getCustomizations(sessionType: string): IObservable; getClientTools(sessionType: string): IObservable; }