Skip to content

isAccessClassGrantedAtRung

isAccessClassGrantedAtRung(toolName, rung): boolean

Defined in: _worktrees/docs-release/gaunt-sloth/packages/core/src/config/tool-descriptions.ts:159

§2 — does rung’s own grant cover this tool’s access class, i.e. is the tool free on its class alone, before anything is asked about whether the gate gates it?

  • read — granted at every rung (§2.1).
  • write — granted from write up (§2.2, and §2.3/§2.4 which grant “everything write grants”), so it escalates at manual.
  • no class at all — the shell, a network call, an MCP tool, a custom or agent-authored tool: granted by no rung. There is no implicit exemption; a tool is free here only by appearing in BUILT_IN_TOOL_ACCESS.

This is the one implementation of that rule. isGrantedAtRung decides a grant with it, and config/shell-policy.ts’s isToolGatedAtRung decides gated-set membership with it — which is in turn what the agent’s interrupt set and GthAgentRunner’s own live-rung check are built from. So the gate cannot escalate a call the descriptions and the rater’s granted list call free — the drift §4.5 names as worse than having no description at all. Two derivations of one rule is exactly what this function exists to prevent; do not inline it back into either caller.

bypass is not special-cased: it grants everything for a reason unrelated to access class (the gate is off), which isGrantedAtRung states where that belongs.

string

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

boolean