import type { DescriptionSource } from '../core/types'; /** Agents Atlas knows how to hand work off to. Matches {@link DescriptionSource}. */ export type AgentId = Exclude; export interface AgentSpec { id: AgentId; /** Human label for prompts and CLI output. */ label: string; /** Executable expected on the `PATH`. */ bin: string; /** Build the argv for a one-shot, non-interactive run of `instruction`. */ buildArgs: (instruction: string) => string[]; } /** * The supported agents and how each is driven head-less. The instruction we pass * is short on purpose (it points the agent at the packet on disk) so it never * runs into shell-length or quoting limits. */ export declare const AGENTS: Record; /** Narrow an arbitrary string to a known {@link AgentId}. */ export declare function isAgentId(value: string): value is AgentId; /** True when the agent's executable is resolvable on the current `PATH`. */ export declare function agentAvailable(spec: AgentSpec): boolean; /** Every supported agent currently installed on this machine. */ export declare function detectAgents(): AgentSpec[]; /** * Run `spec` non-interactively with `instruction`, streaming its output straight * to the user's terminal so they can watch the agent work. Returns whether the * agent exited cleanly. */ export declare function runAgent(spec: AgentSpec, instruction: string, cwd: string): boolean; /** The exact shell command a user can copy to drive `spec` by hand. */ export declare function manualCommand(spec: AgentSpec, instruction: string): string;