export interface StageCheckCommand { name: string; command: string; args?: string[]; cwd?: string; timeoutMs?: number | null; } export interface StageCheckCommandResult { name: string; command: string; args: string[]; ok: boolean; exitCode: number | null; signal: NodeJS.Signals | null; durationMs: number; timedOut: boolean; stdout: string; stderr: string; summary: string; } export interface StageCheckResult { ok: boolean; targetFile?: string; checks: StageCheckCommandResult[]; summary: string; } export type StageCheckRunner = (command: StageCheckCommand, options: { cwd: string; timeoutMs: number | null; maxOutputChars: number; signal?: AbortSignal; }) => Promise; export interface StageCheckOptions { /** Optional per-step harness_config id: when set, stageCheck resolves that config's stageCheckDefaults (package cwd/target) instead of the run-level default. Consumed by the workflow layer; not forwarded to runStageCheck. */ harness_config?: string; /** Optional per-step harness_type; used with `harness_config` to detect a type/runtime mismatch (mirror agent()'s per-call accept conditions). Not forwarded to runStageCheck. */ harness_type?: string; cwd?: string; targetFile?: string; commands?: StageCheckCommand[]; timeoutMs?: number | null; maxOutputChars?: number; includeDefaultChecks?: boolean; signal?: AbortSignal; runner?: StageCheckRunner; } /** * Host-side mechanical verification. Runs native compiler/linter commands without * spending an LLM verifier call. By default it detects TypeScript and Biome. */ export declare function runStageCheck(options?: StageCheckOptions): Promise; export declare function detectDefaultStageCheckCommands(cwd: string, targetFile?: string): StageCheckCommand[]; export declare function renderStageCheckFeedback(result: StageCheckResult): string;