/** * Runner registry — static metadata for every AgentRunner runtime id: * binary name, env-var override, install hint. Shared by `agent exec` * (error taxonomy: no-runner vs missing-binary, §3.4) and `agent scan` * (installed detection + version probe, §6) of doc/agent-exec-protocol.md. * * Binary names and env overrides MUST mirror the `_CLI_BIN` lookups in * each orgrt/*-runner.ts — a mismatch here means scan reports a runner as * installed when its runner would spawn a different binary (or vice versa). */ import type { AgentRunner } from './agent-runner.js'; import { type RuntimeKind } from './daemon.js'; export interface RunnerSpec { /** Runtime id accepted by `agent exec --runtime` and org role `runtime`. */ id: RuntimeKind; /** Binary probed on PATH (null for in-process runtimes like vercel). */ binary: string | null; /** Env var that overrides the binary path (mirrors each runner's lookup). */ binEnv?: string; /** One-line install hint, shown by scan and the missing-binary error. */ installHint: string; /** Login/auth command appended to auth-class errors (§3.4 auth code). */ loginHint?: string; } export declare const RUNNER_SPECS: RunnerSpec[]; export declare function runnerSpec(id: string): RunnerSpec | undefined; export declare function isKnownRuntime(id: string): boolean; /** * Resolve a runner for `agent exec --runtime `. * * Distinct from daemon.ts's resolveRunner: unknown ids are a protocol * `no-runner` error (the id has no implementation), while 'claude' — for * which resolveRunner returns undefined as the implicit default path — * resolves to the shared defaultClaudeRunner. Dynamic import keeps the * Claude Agent SDK out of this module's static graph (scan must stay light). */ export declare function resolveExecRunner(id: string): Promise; export interface ScanEntry { id: string; installed: boolean; binary: string | null; version: string | null; install_hint: string; } export interface ScanOptions { /** Env used for PATH + `_CLI_BIN` overrides (default process.env). */ env?: NodeJS.ProcessEnv; /** Per-binary `--version` probe timeout (default 5s). */ versionTimeoutMs?: number; /** Skip version probes (binary-presence scan only). */ skipVersionProbe?: boolean; } /** * Detect every known runtime, in parallel. Exit-0-always by contract — * detection, not a test. Auth is deliberately NOT probed (§6): logins are * too heterogeneous; auth failures surface at exec time. */ export declare function scanInstalled(opts?: ScanOptions): Promise<{ v: number; agents: ScanEntry[]; }>; //# sourceMappingURL=runner-registry.d.ts.map