/** * End-of-turn ritual verdict derived from the authoritative V3 event ledger. * * V3 keeps prompt and reply bodies private. The hook producer records only the * structural observations needed here: whether the reply showed the status box * and current session name, and whether a prompt was emitted by Harnery's own * Cursor remediation channel. Task and status evidence comes from the existing * `coord.task_changed` and `coord.status_observed` events. */ import type { EventV3 } from "../../events/v3/contract.js"; export type { VerdictResult } from "./verdict.js"; import type { VerdictResult } from "./verdict.js"; export interface StopHookRequest { rule: "stop-hook"; instance_id: string; session_id?: string; adapter?: string; now_ms?: number; turn_window?: { start_ms: number; end_ms: number; }; stop_hook_active?: boolean; status_box_present_strict?: boolean; bypass?: boolean; workflow_child?: boolean; } export declare const STOP_REMEDIATION_MARKER = "[harnery:stop-remediation"; export declare function evaluateStopHook(coordRoot: string, req: StopHookRequest): VerdictResult; /** Pure V3 evaluator used by replay and regression tests after authority checks. */ export declare function evaluateStopHookV3Events(coordRoot: string, req: StopHookRequest, events: readonly EventV3[]): VerdictResult; //# sourceMappingURL=stop-hook.d.ts.map