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.
Properties
Section titled “Properties”decision
Section titled “decision”decision:
"approve"|"reject"
Defined in: _worktrees/docs-release/gaunt-sloth/packages/core/src/core/types.ts:457
What the human answered.
lifetime
Section titled “lifetime”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
Section titled “pending”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.