import type { ToolKernel } from '../kernel.js'; import type { AgentRegistry } from '../daemon.js'; import type { DaemonConfig } from '../daemonConfig.js'; /** * Configuration shared across all transports. * Each adapter uses what it needs and ignores the rest. */ export interface TransportConfig { port?: number; host?: string; authToken?: string; sseKeepaliveMs?: number; timeoutMs?: number; retryIntervalMs?: number; rateLimitRpm?: number; isDaemon?: boolean; configLicenseKey?: string; agentRegistry?: AgentRegistry; daemonConfig?: DaemonConfig; } /** * A transport adapter knows how to expose the kernel to a specific protocol. * Adapters are self-contained: they create their own MCP Server, connect * their own transport, and manage their own lifecycle. */ export interface TransportAdapter { readonly name: string; /** * `kernel` is null for adapters that own no runtime and proxy to a shared * one (ThinStdioAdapter). That is the whole point of Phase 4: the caller * must be able to skip building a kernel entirely, which it cannot do if * every adapter signature demands one. Adapters that DO need a kernel * reject null explicitly rather than assuming it is present. */ start(kernel: ToolKernel | null, config: TransportConfig): Promise; stop(): Promise; } //# sourceMappingURL=types.d.ts.map