Skip to main content

Module accept

Module accept 

Source
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§

CompiledChecks
A node’s accept list, with schemas already compiled.

Enums§

JudgeVerdict
What a judge concluded about one output.