Skip to content

ShellSafetyVerdictSchema

const ShellSafetyVerdictSchema: ZodObject<{ outcome: ZodEnum<{ attack: "attack"; catastrophic: "catastrophic"; destructive: "destructive"; safe: "safe"; }>; reason: ZodString; suggestedTool: ZodOptional<ZodString>; }, $strip>

Defined in: _worktrees/docs-release/gaunt-sloth/packages/core/src/core/shell/rater.ts:107

Structured verdict the rater model must return: one outcome plus one short sentence. There is deliberately nothing else — no severity number, no booleans to recombine into a compound condition. The consequence is a property of the rung, not of a knob.

The schema is written plainly, as the verdict the rater’s CALLERS want. suggestedTool is a plain .optional() and the parsed verdict’s suggestedTool is string | undefined. What a strict json_schema provider has to be sent instead — the key required and its type nullable — and the null that then comes back are entirely the business of structuredOutputBoundary, which rateShellCommand runs both halves of the call through. Nothing about the wire belongs in this object; putting it here is what made the schema we send contradict the schema we validate with.