ApprovalsObjectConfig
Defined in: _worktrees/docs-release/gaunt-sloth/packages/core/src/config/shell-policy.ts:604
On-disk approvals object form (root or per command). The scalar form is exactly sugar for
{ mode: <value> } (§9.1) — the union exists so the extras have a home when they are needed,
not so there are two ways to say the same thing.
Properties
Section titled “Properties”allow?
Section titled “allow?”
optionalallow?:ApprovalEntry[]
Defined in: _worktrees/docs-release/gaunt-sloth/packages/core/src/config/shell-policy.ts:615
§3 — declared allow-list: what the human has trusted. Read-only input.
optionaldeny?:ApprovalEntry[]
Defined in: _worktrees/docs-release/gaunt-sloth/packages/core/src/config/shell-policy.ts:617
§3 — declared deny-list: what never runs. Read-only input; applies under bypass too.
escalate?
Section titled “escalate?”
optionalescalate?:ApprovalEntry[]
Defined in: _worktrees/docs-release/gaunt-sloth/packages/core/src/config/shell-policy.ts:622
§3/§3.2 — declared escalate list: a match always asks the human, whatever the rung would have
done, and with no rating call. Read-only input; inert under bypass (§2.5).
optionalmcp?:McpApprovalsConfig
Defined in: _worktrees/docs-release/gaunt-sloth/packages/core/src/config/shell-policy.ts:635
EXT-70 §4.7/§9 — the per-server MCP relationship. Read through
createEffectiveToolAnnotationSource (core/approvals/annotations.ts), which is the ONE place
an effective annotation set is derived; nothing else re-reads this block.
optionalmode?:"read-only"|"write"|"auto-safe"|"full-auto"|"bypass"
Defined in: _worktrees/docs-release/gaunt-sloth/packages/core/src/config/shell-policy.ts:606
The rung. Absent = DEFAULT_APPROVAL_RUNG.
rater?
Section titled “rater?”
optionalrater?:string
Defined in: _worktrees/docs-release/gaunt-sloth/packages/core/src/config/shell-policy.ts:613
§9.1 — the identity profile the rater runs under, as a bare name (strict resolution, GS2-62: a name that does not resolve is a hard config error, never a silent fallback). Omitted = the main model. It is the only rater knob; nesting a one-field object is what this design removed.
raterTimeoutMs?
Section titled “raterTimeoutMs?”
optionalraterTimeoutMs?:number
Defined in: _worktrees/docs-release/gaunt-sloth/packages/core/src/config/shell-policy.ts:629
EXT-66 — wall-clock budget (ms) for ONE rating call. Absent = RATER_DEFAULT_TIMEOUT_MS (30s), which is a hosted-model number: a local rater is knowably slower, and when it runs out of time the gate escalates, so an unreachable timeout turns the permissive rung into one that asks about everything while every layer reports success.