Skip to content

resolveGatedToolNames

resolveGatedToolNames(options): readonly string[]

Defined in: _worktrees/docs-release/gaunt-sloth/packages/core/src/config/shell-policy.ts:965

The LIVE gated set: which bound tools the rung in force actually gates. What a decision is measured against — the tool descriptions the model reads (§4.5) and the rater’s granted-tools summary (§4.4) are both built from this, so neither can tell the model a tool is free while the gate escalates it.

It is NOT what the agent wires into the interrupt. That is resolveInterruptToolNames, and the two are different sets on purpose: the interrupt is installed once, at agent init, while /approvals <rung> moves the rung underneath it for the rest of the session. A set that carried the rung would be frozen at the rung the session started on — and since the default is assisted, typing /approvals manual would leave exactly the write tools this design escalates ungated. So the interrupt is wired rung-independently and GthAgentRunner.decideToolApproval consults isToolGatedAtRung against the LIVE rung.

Derived from the bound toolset, never a hand-written list. A static list of built-ins would leave MCP, custom and agent-authored tools out — the exact tools with no access class and so the exact tools the deterministic rungs must escalate. boundToolNames must therefore be the FINAL toolset the graph is handed, including any tool the graph builder registers itself, which by definition never appears in the array gsloth passes it.

Order is stable: the shell first, then bound order. Duplicates are collapsed, so a caller may pass overlapping name sources without deduplicating first.

readonly string[]

boolean

"manual" | "write" | "assisted" | "auto" | "bypass"

readonly string[]