import type { BatchItem } from './batch-progress-types.js'; import type { BatchFixDependencies, BatchFixDiagnosis } from './batch-fix-types.js'; /** The role the fix sub-agents are dispatched as: the lane's own RD role. */ export declare const FIX_ROLE = "rd"; /** Where the batch's record lives. */ export interface BatchFixContext { readonly projectRoot: string; readonly sessionId: string; readonly batchId: string; } /** Everything one dispatched agent needs. */ export interface FixFrame { readonly context: BatchFixContext; readonly deps: BatchFixDependencies; readonly diagnoses: Readonly>; readonly rules: readonly string[]; } /** One item, with the wave and the rid it was scheduled under. */ export interface ScheduledFix { readonly item: BatchItem; readonly waveIndex: number; readonly rid: string; } /** * Build the prompt one fix sub-agent receives. * * The prompt carries the ONE item's diagnosis and the rule list, and the * shared governance prefix comes from the one composer that owns it — a * second hand-rolled copy of the prefix would drift away from it. */ export declare function buildFixPrompt(item: BatchItem, diagnosis: BatchFixDiagnosis, rules: readonly string[], rid: string): string; /** * Derive one agent's rid from the batch's rid and the item's id. * * The rid becomes a worktree branch name, so two agents may never share one. * The item's id is sanitized into rid characters, and a collision (two ids * that differ only in characters a rid cannot carry) is broken with a counter. */ export declare function deriveAgentRid(baseRid: string, itemId: string, used: Set): string;