/** * The check lanes (DES-TRIGGER-REGISTRY-001 ยง4.6). * * DETERMINISTIC. In-process and sequential (the registry drains one input at a time, so a run's * inputs are evaluated in order). Each check has a 5 ms budget: a breach is counted, not cut. A * check that throws or does not settle within its timeout yields NO output (a failed check never * emits "fine") and is reported to the registry, which raises `registry-check-failed` past its * threshold. * * LLM. Not in this slice: the `llm:*` lane, its seat port and `Core.checkOnce` land with TR-W9a/W9. * No shipped check is `lane: "llm"`, and the registry refuses to run one (health `llm.enabled:false`). */ import type { CheckCtx, CheckOutput, KeyPointInput, LoadedEntry, RunWatchState, WatchCheck } from './types.js'; export interface LaneStats { runs: number; budgetBreaches: number; failures: number; timeouts: number; } export interface DeterministicLaneOptions { /** Per-check budget, ms (a breach is counted). */ budgetMs?: number; /** A check that has not settled by then is abandoned and counted as timed out. */ timeoutMs?: number; /** A check threw or timed out. */ onFailure?: (entryId: string, reason: 'threw' | 'timeout', err: unknown) => void; clock?: () => number; } export declare class DeterministicLane { private readonly opts; /** The failure report, guarded: a throwing reporter never makes `run` reject. */ private report; readonly stats: LaneStats; private readonly budgetMs; private readonly timeoutMs; private readonly clock; constructor(opts?: DeterministicLaneOptions); /** Never throws. */ run(check: WatchCheck, entry: LoadedEntry, input: KeyPointInput, state: RunWatchState, ctx: CheckCtx): Promise; } //# sourceMappingURL=lanes.d.ts.map