export type AiAgentId = 'claude' | 'codex' | 'gemini'; export interface AiAgent { id: AiAgentId; name: string; command: string; } export declare const AI_AGENTS: readonly AiAgent[]; export interface AgentRunner { isAvailable: (command: string) => boolean; spawn: (command: string, args: string[], cwd: string) => number; } /** * Detects which AI agent CLIs are available on PATH. */ export declare function detectAvailableAgents(runner?: AgentRunner): Set; /** * Builds the prompt text handed to the AI agent. The prompt describes the * archguard.yml schema and instructs the agent to analyze the project and * write the file itself. * * The prompt template lives in messages/archguard.init-ai-prompt.md and uses * {{PROJECT_ROOT}} as a placeholder for the resolved project path. */ export declare function buildAiPrompt(projectRoot: string): string; export interface WriteAiPromptResult { promptPath: string; cleanup: () => void; } /** * Writes the AI prompt to a temp file inside the project so the agent can * read it. Returns a cleanup function that removes the file. */ export declare function writeAiPromptFile(projectRoot: string, prompt: string): WriteAiPromptResult; /** * Spawns the chosen AI agent CLI in interactive mode with a short instruction * pointing it at the prompt file. stdio is inherited so the user sees the * agent's progress in their terminal. */ export declare function runAiAgent(agent: AiAgent, promptPath: string, projectRoot: string, runner?: AgentRunner): number; export interface AiInitLogger { log: (msg: string) => void; error: (msg: string) => void; } export interface AiInitOptions { projectRoot: string; agent: AiAgent; runner?: AgentRunner; } /** * Orchestrates the AI-assisted init flow: writes the prompt file, spawns the * agent, and verifies that archguard.yml was produced. */ export declare function executeAiInit(options: AiInitOptions, logger: AiInitLogger): void; //# sourceMappingURL=init-ai.d.ts.map