import { CancellationToken } from "@codingame/monaco-vscode-api/vscode/vs/base/common/cancellation"; import { URI } from "@codingame/monaco-vscode-api/vscode/vs/base/common/uri"; import { type ClientPluginCustomization } from "@codingame/monaco-vscode-api/vscode/vs/platform/agentHost/common/state/sessionState"; import { AICustomizationSource } from "@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/common/aiCustomizationWorkspaceService"; import { PromptsType } from "@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/common/promptSyntax/promptTypes"; import { PromptsStorage } from "@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/common/promptSyntax/service/promptsService"; import { IPromptsService } from "@codingame/monaco-vscode-api/vscode/vs/workbench/contrib/chat/common/promptSyntax/service/promptsService.service"; import { type 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 { 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 type { ISyncableMcpServer, SyncedCustomizationBundler } from "./syncedCustomizationBundler.js"; import { IFileService } from "@codingame/monaco-vscode-api/vscode/vs/platform/files/common/files.service"; /** * Prompt types that participate in auto-sync to an agent host harness. * * Hooks are intentionally excluded — bundling hooks requires merging into * `hooks/hooks.json` (see {@link SyncedCustomizationBundler}). */ export declare const SYNCABLE_PROMPT_TYPES: readonly PromptsType[]; /** * Storage sources whose contents are auto-synced. Extension and built-in * customizations are included so the agent host has the same skills, * instructions, and agents available as the local VS Code client. */ export declare const SYNCABLE_STORAGE_SOURCES: readonly PromptsStorage[]; export interface ILocalCustomizationFile { readonly uri: URI; readonly type: PromptsType; readonly source: AICustomizationSource; readonly disabled: boolean; readonly pluginUri?: URI; readonly extensionId?: string; } /** * Enumerates all local customization files eligible for auto-sync to an * agent host harness, annotating each with whether the user has opted out. * * This is the single source of truth used by both the AI Customization view * (to render disable affordances) and the agent host wire (to compute the * `customizations` set published via `activeClientSet`). * * Built-in skills bundled with the Agents app (only present when the * sessions-aware prompts service is in play) are also enumerated so that * `/create-pr`, `/merge`, etc. are available to every agent host without * any per-provider plumbing. In the regular VS Code workbench window the * built-in lookup returns nothing and this is a no-op. */ export declare function enumerateLocalCustomizationsForHarness(promptsService: IPromptsService, syncProvider: ICustomizationSyncProvider, sessionType: string, token: CancellationToken): Promise; /** * Enumerates MCP servers configured directly in VS Code — i.e. those that * are not contributed by an agent plugin — so they can be bundled into the * synthetic synced plugin. Plugin-sourced servers are excluded because they * are already synced via their owning plugin's customization ref. Disabled * servers and servers whose launch cannot be expressed declaratively are * skipped. * * Workspace-discovered servers are also excluded by default: the agent host * discovers workspace `.mcp.json` itself, so syncing them would duplicate. The * exception is `.vscode/mcp.json`, which the agent host does not discover * (despite what the SDK's `enableConfigDiscovery` docs imply) — those are * synced, but only when their config can be resolved without requiring user * interaction. */ export declare function collectNonPluginMcpServers(mcpService: IMcpService, configurationResolverService: IConfigurationResolverService): Promise; /** * Resolves the customization refs to include in an `activeClientSet` * message. * * Every eligible local file is synced unless the user opted out. Files * belonging to installed plugins are de-duped to a single plugin ref; * remaining loose files — together with MCP servers configured directly in * VS Code — are bundled into a synthetic Open Plugin. */ export declare function resolveCustomizationRefs(fileService: IFileService, promptsService: IPromptsService, syncProvider: ICustomizationSyncProvider, agentPluginService: IAgentPluginService, mcpService: IMcpService, configurationResolverService: IConfigurationResolverService, bundler: SyncedCustomizationBundler, sessionType: string): Promise;