ApprovalsObjectConfig
Defined in: _worktrees/docs-release/gaunt-sloth/packages/core/dist/config/shell-policy.d.ts:787
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”alignmentChecker?
Section titled “alignmentChecker?”
optionalalignmentChecker?:string
Defined in: _worktrees/docs-release/gaunt-sloth/packages/core/dist/config/shell-policy.d.ts:810
[[EXT-127]] §9.1 — the identity profile the alignment checker runs under, as a bare name with the same strict resolution rater takes.
It is a second key rather than a widened rater because there are now two models with
different cost profiles. The classifier is cheap and rates every gated command; the checker
is reached only once the classifier has declined, and pointing it at a larger model is the
reason the split exists at all.
Omitted = the rater profile, applied by resolveApprovals at the read site rather
than defaulted into the on-disk shape. There is no second timeout: raterTimeoutMs is the
budget for one model call and a check is one call.
allow?
Section titled “allow?”
optionalallow?:ApprovalEntry[]
Defined in: _worktrees/docs-release/gaunt-sloth/packages/core/dist/config/shell-policy.d.ts:812
§3 — declared allow-list: what the human has trusted. Read-only input.
optionaldeny?:ApprovalEntry[]
Defined in: _worktrees/docs-release/gaunt-sloth/packages/core/dist/config/shell-policy.d.ts:814
§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/dist/config/shell-policy.d.ts:819
§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/dist/config/shell-policy.d.ts:832
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?:"auto"|"manual"|"write"|"assisted"|"bypass"
Defined in: _worktrees/docs-release/gaunt-sloth/packages/core/dist/config/shell-policy.d.ts:789
The rung. Absent = DEFAULT_APPROVAL_RUNG.
rater?
Section titled “rater?”
optionalrater?:string
Defined in: _worktrees/docs-release/gaunt-sloth/packages/core/dist/config/shell-policy.d.ts:796
§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/dist/config/shell-policy.d.ts:826
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.