Expand description
Acceptance checks: what “done” means for a node beyond its declared type.
A node’s Ty signature says what shape its output has. That is a real
contract, and it catches real mistakes — but two failure modes slip
straight through it. A truncated model reply still parses as json and
satisfies a json signature completely. And output that is well-formed,
correctly typed, and simply wrong is invisible to any type system.
accept = [ ... ] closes that gap with an ordered, short-circuiting list
of checks. Order is load-bearing rather than cosmetic: AcceptCheck::Schema
is deterministic and costs nothing, while AcceptCheck::Judge costs a
whole inference — so a schema-first list never pays for a judge on output
that is structurally broken, which is also the output a judge grades least
coherently.
This module only reaches verdicts. Reacting to a failed one — retrying,
rerouting, escalating — is the ladder’s job, in crate::runner.
Structs§
- Compiled
Checks - A node’s
acceptlist, with schemas already compiled.
Enums§
- Judge
Verdict - What a judge concluded about one output.