Skip to main content

SuppressedWrite

@forge/monorepo


@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

readonly delegatesTo: string

Defined in: backend/src/tools/index.ts:146

The function that would have been called.


effect

readonly effect: ToolEffect

Defined in: backend/src/tools/index.ts:147


idempotencyKey

readonly idempotencyKey: IdempotencyKey

Defined in: backend/src/tools/index.ts:150


input

readonly input: unknown

Defined in: backend/src/tools/index.ts:149

Validated input — what would have been sent.


runId?

readonly optional runId?: string

Defined in: backend/src/tools/index.ts:143


toolName

readonly toolName: string

Defined in: backend/src/tools/index.ts:144


wouldRequireApproval

readonly wouldRequireApproval: 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.