/** * ollama_multi_file_refactor_propose — Workhorse tier. * * Coordinated multi-file refactor PLAN (not writes). Caller hands in a set of * file paths and a change description; the server reads the files, prompts * the Workhorse tier with a strict JSON schema, and returns a per-file * before/after plan plus cross-file impact notes. No writes, ever. * * Tier: workhorse. Goes through runWithTimeoutAndFallback via the shared * runner — no bespoke timeout handling. * * Guardrails: * - per_file_max_chars caps each file read (default 60k) * - thin model output (no per_file_changes or mostly-empty fields) flips * `weak: true` so the caller can see the synthesis didn't land * - paths missing from disk fail loud via SOURCE_PATH_NOT_FOUND (from * loadSources) */ import { z } from "zod"; import type { Envelope } from "../envelope.js"; import type { RunContext } from "../runContext.js"; export declare const multiFileRefactorProposeSchema: z.ZodObject<{ files: z.ZodType>; change_description: z.ZodString; per_file_max_chars: z.ZodOptional; }, z.core.$strip>; export type MultiFileRefactorProposeInput = z.infer; export type RiskLevel = "low" | "medium" | "high"; export interface PerFileChange { file: string; before_summary: string; after_summary: string; risk_level: RiskLevel; change_kinds: string[]; } export interface AffectedImport { from: string; to: string; files: string[]; } export interface MultiFileRefactorProposeResult { per_file_changes: PerFileChange[]; cross_file_impact: string; affected_imports: AffectedImport[]; verification_steps: string[]; weak: boolean; } export declare function handleMultiFileRefactorPropose(input: MultiFileRefactorProposeInput, ctx: RunContext): Promise>; //# sourceMappingURL=multiFileRefactorPropose.d.ts.map