import type { StopCategory } from "./run-history.js"; /** * Thrown by stopAndFlag to END the run. It is thrown, not process.exit'd, so * the orchestrator's `finally` still runs — that is where the honest * feature-completion report is printed (a stopped run has NOT finished the * feature, and must say so). Caught at the CLI, which sets exit code 2; the * situation was already printed by stopAndFlag, so the CLI does not reprint. */ export declare class RunStopped extends Error { readonly category: StopCategory; readonly situation: string; constructor(category: StopCategory, situation: string); } /** * The "stop and flag" move: when a budget runs out or a precondition cannot * be met honestly, the run stops and puts the situation in front of the * user instead of looping forever or weakening a test. */ export interface Escalation { /** * Never resolves — the run ends here and the user takes over. The * category feeds the project's run history (the autonomy SLO): "spec" * is the stop the tool WANTS (the scenarios need their author); * "infrastructure" and "budget" are the machine needing its owner. * Budget exhaustion is the overwhelmingly common case, so it is the * default. */ stopAndFlag(situation: string, category?: StopCategory): Promise; }