SuppressedWrite
@forge/monorepo / backend/src / SuppressedWrite
Type Alias: SuppressedWrite
SuppressedWrite =
object
Defined in: backend/src/tools/index.ts:142
What a shadow run records instead of doing.
A port rather than a store, because what "recording" means differs by deployment: a parity harness wants it in memory, a migration wants it durable and comparable to the old runtime's output.
Here rather than in delegating.ts because two layers suppress: the registry (which covers every
tool) and the delegating envelope (which covers the direct-execute path). One definition, for the reason
#113's duplicate toPlatformError had to be collapsed — two would drift, and a recorder the two layers
disagreed about would under-report exactly the writes it exists to catch.
Properties
delegatesTo
readonlydelegatesTo:string
Defined in: backend/src/tools/index.ts:146
The function that would have been called.
effect
readonlyeffect:ToolEffect
Defined in: backend/src/tools/index.ts:147
idempotencyKey
readonlyidempotencyKey:IdempotencyKey
Defined in: backend/src/tools/index.ts:150
input
readonlyinput:unknown
Defined in: backend/src/tools/index.ts:149
Validated input — what would have been sent.
runId?
readonlyoptionalrunId?:string
Defined in: backend/src/tools/index.ts:143
toolName
readonlytoolName:string
Defined in: backend/src/tools/index.ts:144
wouldRequireApproval
readonlywouldRequireApproval:boolean
Defined in: backend/src/tools/index.ts:158
Whether this action would have required a human's approval.
Captured because suppression happens before the approval gate — a shadow run must not ask someone to approve something that will not happen, since that teaches them approving is meaningless. Recording it keeps the fact the parity report wants without asking the question.