/** Describes the npm packages required for a specific agent runtime. */ export interface RuntimePackageManifest { /** Map of npm package name → semver range. */ packages: Record; /** When true, registers a module resolve hook for vscode-jsonrpc/node (copilot only). */ needsJsonRpcHook?: boolean; } /** * Minimal model metadata for a runtime, mirroring AHP `SessionModelInfo`. * Rich metadata (config schema, context window, vision) is deferred. */ export interface RuntimeModelInfo { /** Model identifier passed at spawn time (e.g. `"sonnet"`). */ id: string; /** Human-readable model name. */ name: string; /** Provider this model belongs to (the runtime name). */ provider: string; } /** Import a class from a workspace/npm package and call `new Class()`. */ export interface SdkRuntimeFactory { /** Discriminant. */ type: "sdk"; /** npm package name to import (e.g. `"@grackle-ai/runtime-claude-code"`). */ package: string; /** Named export of the runtime class (e.g. `"ClaudeCodeRuntime"`). */ exportName: string; } /** Serializable ACP agent config (no `name` — the catalog key IS the name). */ export interface AcpRuntimeFactoryConfig { /** CLI command to spawn (e.g. `"goose"`, `"claude-agent-acp"`). */ command: string; /** CLI arguments. */ args: string[]; /** Isolate `~/.claude` config for headless agents. */ isolateClaudeConfig?: boolean; } /** Import `AcpRuntime` from `@grackle-ai/runtime-acp` and pass config. */ export interface AcpRuntimeFactory { /** Discriminant. */ type: "acp"; /** ACP agent config passed to `new AcpRuntime({ name, ...config })`. */ config: AcpRuntimeFactoryConfig; } /** * Discriminated union describing how to instantiate a runtime. * * - `"sdk"` — import a class from a workspace package, call `new Class()` * - `"acp"` — import `AcpRuntime`, pass per-agent config */ export type RuntimeFactoryDescriptor = SdkRuntimeFactory | AcpRuntimeFactory; /** * A single runtime in the catalog. Mirrors AHP `AgentInfo` (presentation + * models); `install` is the lazy-install spec (absent for built-in/test * runtimes that need no npm packages). */ export interface RuntimeCatalogEntry { /** Human-readable name. */ displayName: string; /** Short description string. */ description: string; /** Selectable models for this runtime (minimal metadata). */ models: RuntimeModelInfo[]; /** npm packages to lazily install for this runtime; omitted for built-ins. */ install?: RuntimePackageManifest; /** How to instantiate this runtime; absent for local-only runtimes (stubs). */ factory?: RuntimeFactoryDescriptor; } /** * The canonical catalog of agent runtimes, keyed by runtime name (the same name * used by the PowerLine runtime registry and persona `runtime` field). */ export declare const RUNTIME_CATALOG: Readonly>; //# sourceMappingURL=runtime-catalog.d.ts.map