/** * OpenKernel — Verification Engine * * Pipeline: objective → compile → tests → lint → browser tests → * expected output → LLM judge. * * The LLM judge is ALWAYS the last verifier. Never the first. * Each stage is a Verifier; the engine runs enabled stages in order, * short-circuits on hard failures (strict mode), and always runs the * LLM judge last regardless of prior results. */ import type { Logger, Mission, Policy, Task, VerificationResult, Verifier, WorkspaceRef } from './types.js'; import type { EventBus } from './event-bus.js'; import type { ProviderManager } from './provider-manager.js'; export interface VerificationEngineDeps { eventBus: EventBus; providerManager: ProviderManager; logger: Logger; } export declare class VerificationEngine { private deps; private verifiers; constructor(deps: VerificationEngineDeps); registerVerifier(verifier: Verifier): void; verify(mission: Mission, task: Task, policy: Policy): Promise; private finalize; private fail; private registerBuiltins; private llmJudgeVerifier; private runLlmJudge; private pickJudgeProvider; } export type { WorkspaceRef };