/** * Pure logic for `assay fix`: choose which assessed bugs are safe to auto-fix * and apply exact search/replace edits. Spec-drift findings are never selected * — fixing code the triage pass judged correct is the failure mode the * classification exists to prevent. */ export interface AssessedEvidence { file: string; lineNumber?: number; snippet?: string; } export interface AssessedBug { claimId: string; claim: string; verdict: string; evidence: AssessedEvidence[]; reasoning: string; classification?: { verdict: string; rationale: string; }; } export interface FixTarget { bug: AssessedBug; route: string; domain: string; severity: string; category: string; } export interface FixSelection { selected: FixTarget[]; skippedDrift: FixTarget[]; skippedUncertain: FixTarget[]; } export declare function selectFixTargets(assessment: unknown, opts?: { includeUncertain?: boolean; max?: number; }): FixSelection; export interface SearchReplaceEdit { file: string; search: string; replace: string; } export interface ApplyResult { content: string; applied: number; failed: SearchReplaceEdit[]; } /** * Apply edits to one file's content. Each search must match exactly once as a * substring; a zero-match or ambiguous (multi-match) search is reported as * failed rather than guessed at. */ export declare function applySearchReplace(content: string, edits: SearchReplaceEdit[]): ApplyResult;