vigiles API reference
    Preparing search index...

    Interface EvalDriver

    An eval-tier transport: how to RUN a real harness turn and PARSE its output. The default is Claude Code (claudeEvalDriver); a second harness supplies its own (e.g. codexEvalDriver from vigiles/codex) and passes it as measureTriggerRate(spec, { evalDriver }) — the eval-tier analog of runHarnessTest's { adapter }. runError lets the loop drop an errored/rate-limited turn instead of scoring it as a miss.

    interface EvalDriver {
        experimental?: string;
        harness?: string;
        parse: ModelOutputParser;
        runError?: (out: RunOut) => string | null;
        runner: AgentRunner;
    }
    Index

    Properties

    experimental?: string

    When set, this driver's trigger-rate number is EXPERIMENTAL and not validated — the string is the human caveat explaining why (e.g. Codex has no skill-selection event, so firing is inferred from a SKILL.md read, which can be wrong in both directions). Absent = supported/trustworthy (the default). measureTriggerRate copies it onto the report and warns; the formatter prints it. Precision-first: never let a possibly-wrong number read as a measurement.

    The same fact as HarnessLiveDriver.firing (./live-driver.js), which is the typed form the measurement tiers branch on; adapter-contract.test.ts asserts the two agree on every adapter.

    harness?: string

    The harness this driver runs (e.g. the adapter's name). Folded into a trigger-rate eval's LOCK hash so a report recorded on one harness is marked STALE if the eval is later switched to another (a different harness can fire a skill differently). Optional for back-compat — absent defaults to the default harness, so an existing single-harness lock is unaffected.

    runError?: (out: RunOut) => string | null
    runner: AgentRunner