/** * remote-execution-composition.ts, running work somewhere other than here. * * Four collaborators that only make sense together, so they are built together * rather than as four unrelated lines in the middle of the runtime composition: * * - RemoteRunnerRegistry knows which remote runners exist and how to reach * them; RemoteSupervisor drives them and is meaningless without it. * * - SandboxSessionRegistry owns the sandboxes a tool call can be confined to, * and McpRegistry is the thing that confines them, an MCP server started * without the sandbox registry runs its tools directly on the host. * * The pairing in each case is the point: handing the supervisor a registry it * did not build, or the MCP registry a sandbox runtime it does not share with * the session registry, produces a runtime that looks wired and quietly is not. */ import { McpRegistry } from '../mcp/index.js'; import { RemoteRunnerRegistry } from './remote/runner-registry.js'; import { RemoteSupervisor } from './remote/supervisor.js'; import { SandboxSessionRegistry } from './sandbox/session-registry.js'; import type { RuntimeEventBus } from './events/index.js'; import type { AgentManager } from '../tools/index.js'; import type { ConfigManager } from '../config/index.js'; import type { HookDispatcher } from '../hooks/index.js'; export interface RemoteExecutionServices { readonly remoteRunnerRegistry: RemoteRunnerRegistry; readonly remoteSupervisor: RemoteSupervisor; readonly sandboxSessionRegistry: SandboxSessionRegistry; readonly mcpRegistry: McpRegistry; } /** * Build the remote-execution and sandboxing seam. * * Constructing these opens no connection and starts no server: a runner is * reached when something asks for it, and an MCP server starts when a session * requests it. Composing a runtime in a test therefore executes nothing. */ export declare function createRemoteExecutionServices(options: { readonly agentManager: AgentManager; readonly workingDirectory: string; readonly hookDispatcher: HookDispatcher; readonly configManager: ConfigManager; readonly runtimeBus: RuntimeEventBus; }): RemoteExecutionServices; //# sourceMappingURL=remote-execution-composition.d.ts.map