import type { BoberConfig } from "../config/schema.js"; import type { ContextHandoff } from "./context-handoff.js"; export interface GeneratorResult { success: boolean; notes: string; filesChanged: string[]; commitHash?: string; /** Number of agentic loop turns used. */ turnsUsed?: number; /** Tools called during generation. */ toolsCalled?: string[]; /** Token usage. */ usage?: { inputTokens: number; outputTokens: number; }; /** Cumulative USD cost for this generation run, when known. Absent otherwise. */ costUsd?: number; } /** * Run the generator agent to implement changes for a sprint. * * Uses a multi-turn agentic loop with full tool access (bash, read/write/edit * files, glob, grep). The agent actually reads the codebase, writes code, * runs tests, and commits — all via tools. * * The system prompt is loaded from `agents/bober-generator.md`. */ export declare function runGenerator(handoff: ContextHandoff, projectRoot: string, config: BoberConfig): Promise; /** * Parse the generator response text into a GeneratorResult. * * Exported for direct unit testing of the refusal fail-closed guard (sc-1-4). */ export declare function parseGeneratorResult(text: string, filesWritten: Set, loopResult: { turnsUsed: number; toolsCalled: string[]; usage: { inputTokens: number; outputTokens: number; }; /** Set by runAgenticLoop when the provider refused (ADR-5). */ refused?: boolean; /** Set by runAgenticLoop when at least one turn reported a cost. */ costUsd?: number; }): GeneratorResult; //# sourceMappingURL=generator-agent.d.ts.map