Skip to main content

PendingApproval

@forge/monorepo


@forge/monorepo / backend/src / PendingApproval

Type Alias: PendingApproval

PendingApproval = object

Defined in: backend/src/hitl/index.ts:43

The pending approval stores the exact normalized tool name and input. Resumption executes the stored input — never a model-regenerated version.

Properties

consumedAt?

readonly optional consumedAt?: string

Defined in: backend/src/hitl/index.ts:65

When the single execution this approval authorizes was claimed.

This is where allow-once gets its "once". A grant would have been the easy mechanism and the wrong one — a grant is standing by definition, so issuing one for a one-time decision would silently broaden the authority the human actually gave. The interaction carries its own at-most-once counter instead, claimed atomically by the store, so a resumed run executes the approved call exactly once and a second attempt finds nothing left to claim.


decidedAt?

readonly optional decidedAt?: string

Defined in: backend/src/hitl/index.ts:54


decision?

readonly optional decision?: ApprovalDecision

Defined in: backend/src/hitl/index.ts:55


estimatedCostMinorUnits?

readonly optional estimatedCostMinorUnits?: number

Defined in: backend/src/hitl/index.ts:51


expiresAt

readonly expiresAt: string

Defined in: backend/src/hitl/index.ts:52


id

readonly id: InteractionId

Defined in: backend/src/hitl/index.ts:44


idempotencyKey

readonly idempotencyKey: string

Defined in: backend/src/hitl/index.ts:53


normalizedInput

readonly normalizedInput: unknown

Defined in: backend/src/hitl/index.ts:48


riskCategory

readonly riskCategory: string

Defined in: backend/src/hitl/index.ts:49


runId

readonly runId: RunId

Defined in: backend/src/hitl/index.ts:46


summary

readonly summary: string

Defined in: backend/src/hitl/index.ts:50


tenantId

readonly tenantId: TenantId

Defined in: backend/src/hitl/index.ts:45


toolName

readonly toolName: string

Defined in: backend/src/hitl/index.ts:47