Skip to content

ApprovalOutcome

Defined in: _worktrees/docs-release/gaunt-sloth/packages/core/src/core/types.ts:453

[[EXT-150]] — what a human’s answer at the approval prompt actually did, reported to the surface that asked once the runner has recorded it.

It exists because a surface cannot work this out for itself and must not guess. The scope it sent is a request: [[EXT-149]] makes always degrade to session whenever the write did not reach disk — a checkout nothing can write, a settings directory that is gone, a file [[EXT-144]] refuses to rewrite — and that is decided inside the runner AFTER the ToolApprovalCallback has already returned. Without this, a surface confirming saved to this project is describing the key that was pressed, and core’s own ERROR naming the unwritten file then contradicts it on screen.

Correlated by the pending object itself, which is the very interrupt the callback was handed, rather than by arrival order. The runner drains one interrupt at a time, but the surfaces that consume this queue approvals, so a pairing that assumed the outcome belongs to the oldest unanswered request would be a claim about the runner’s loop held in the surface — and the cost of its being wrong is one call’s persistence confirmed on another call’s dialog.

decision: "approve" | "reject"

Defined in: _worktrees/docs-release/gaunt-sloth/packages/core/src/core/types.ts:457

What the human answered.


lifetime: ApprovalLifetime

Defined in: _worktrees/docs-release/gaunt-sloth/packages/core/src/core/types.ts:459

The lifetime the answer landed with — always only when it reached the project file.


pending: PendingToolInterrupt

Defined in: _worktrees/docs-release/gaunt-sloth/packages/core/src/core/types.ts:455

The interrupt this answers — the same object ToolApprovalCallback received.