Client-side check for plan-level invariants that generated types often
drop from if/then / oneOf. Complements the Zod request schema, which
covers structural validation (required fields, value types).
Runs two checks:
When budget is present: exactly one of reallocation_threshold /
reallocation_unlimited must be set, and reallocation_threshold
must be ≥ 0. Missing budget is not flagged — leave structural
validation to the Zod schema.
When policy_categories includes a value in
REGULATED_HUMAN_REVIEW_CATEGORIES, or policy_ids includes a value
in ANNEX_III_POLICY_IDS, human_review_required: true is required.
Governance agents resolve synonyms and custom policies server-side;
this check is a best-effort pre-submit guard for the canonical names.
Returns [] when no client-detectable invariants are violated. Callers
should still treat the governance agent as authoritative.
Client-side check for plan-level invariants that generated types often drop from
if/then/oneOf. Complements the Zod request schema, which covers structural validation (required fields, value types).Runs two checks:
budgetis present: exactly one ofreallocation_threshold/reallocation_unlimitedmust be set, andreallocation_thresholdmust be ≥ 0. Missingbudgetis not flagged — leave structural validation to the Zod schema.policy_categoriesincludes a value inREGULATED_HUMAN_REVIEW_CATEGORIES, orpolicy_idsincludes a value inANNEX_III_POLICY_IDS,human_review_required: trueis required. Governance agents resolve synonyms and custom policies server-side; this check is a best-effort pre-submit guard for the canonical names.Returns
[]when no client-detectable invariants are violated. Callers should still treat the governance agent as authoritative.