Skip to main content

blocking_errors

Function blocking_errors 

Source
pub fn blocking_errors(
    proposal: &ActionProposal,
    state: Option<&HashMap<String, Value>>,
    tools: &HashMap<String, ToolSchema>,
    max_actions: usize,
) -> Vec<VerifyIssue>
Expand description

Run static verification and return the blocking errors, if any.

Shared by StaticVerificationGate and the executor’s replan quality gate so the two verification points cannot disagree about what counts as fatal — they previously did, with the replan path blocking on the loop heuristic this gate deliberately treats as advisory.

An empty tools map means “this runtime doesn’t declare its tools”, not “no tool exists”. Passing it through would flag every tool_call as unregistered and reject every proposal, turning a safety check into a denial of service for any embedder that executes via callback without registering schemas. In that case tool-existence and parameter-schema checking are skipped.

Note Runtime::restore_checkpoint rebuilds the registry with name-only schemas (parameters: {}), so the map stays non-empty and existence still checks, but parameter validation silently becomes a no-op after a restore.