UNPKG

openclaw

Version:

Multi-channel AI gateway with extensible messaging integrations

572 lines 26.9 kB
import { Static, Type } from "typebox"; //#region packages/gateway-protocol/src/schema/approvals.d.ts /** Reviewer decisions accepted by the unified approval resolver. */ declare const ApprovalDecisionSchema: Type.TUnion<[Type.TLiteral<"allow-once">, Type.TLiteral<"allow-always">, Type.TLiteral<"deny">]>; /** * Owner-declared blast-radius facts for a pending approval. Variants are * named schemas so native protocol generators emit the discriminated union. */ declare const ApprovalScopeSchema: Type.TUnion<[Type.TObject<{ kind: Type.TLiteral<"message-send">; target: Type.TString; recipientCount: Type.TInteger; recipients: Type.TOptional<Type.TArray<Type.TString>>; audience: Type.TOptional<Type.TUnion<[Type.TLiteral<"internal">, Type.TLiteral<"external">]>>; }>, Type.TObject<{ kind: Type.TLiteral<"payment">; amount: Type.TString; currency: Type.TString; target: Type.TString; }>, Type.TObject<{ kind: Type.TLiteral<"external-post">; target: Type.TString; visibility: Type.TUnion<[Type.TLiteral<"public">, Type.TLiteral<"restricted">]>; }>, Type.TObject<{ kind: Type.TLiteral<"standing-grant">; automation: Type.TString; command: Type.TString; expiresInDays: Type.TOptional<Type.TInteger>; }>]>; /** Reviewer-safe presentation discriminated by the approval owner. */ declare const ApprovalPresentationSchema: Type.TUnion<[Type.TObject<{ kind: Type.TLiteral<"exec">; commandText: Type.TString; commandPreview: Type.TOptional<Type.TUnion<[Type.TString, Type.TNull]>>; warningText: Type.TOptional<Type.TUnion<[Type.TString, Type.TNull]>>; host: Type.TOptional<Type.TUnion<[Type.TString, Type.TNull]>>; nodeId: Type.TOptional<Type.TUnion<[Type.TString, Type.TNull]>>; agentId: Type.TOptional<Type.TUnion<[Type.TString, Type.TNull]>>; scope: Type.TOptional<Type.TUnion<[Type.TObject<{ kind: Type.TLiteral<"message-send">; target: Type.TString; recipientCount: Type.TInteger; recipients: Type.TOptional<Type.TArray<Type.TString>>; audience: Type.TOptional<Type.TUnion<[Type.TLiteral<"internal">, Type.TLiteral<"external">]>>; }>, Type.TObject<{ kind: Type.TLiteral<"payment">; amount: Type.TString; currency: Type.TString; target: Type.TString; }>, Type.TObject<{ kind: Type.TLiteral<"external-post">; target: Type.TString; visibility: Type.TUnion<[Type.TLiteral<"public">, Type.TLiteral<"restricted">]>; }>, Type.TObject<{ kind: Type.TLiteral<"standing-grant">; automation: Type.TString; command: Type.TString; expiresInDays: Type.TOptional<Type.TInteger>; }>]>>; allowedDecisions: Type.TArray<Type.TUnion<[Type.TLiteral<"allow-once">, Type.TLiteral<"allow-always">, Type.TLiteral<"deny">]>>; }>, Type.TObject<{ kind: Type.TLiteral<"plugin">; title: Type.TString; description: Type.TString; detail: Type.TOptional<Type.TString>; severity: Type.TUnion<[Type.TLiteral<"info">, Type.TLiteral<"warning">, Type.TLiteral<"critical">]>; pluginId: Type.TOptional<Type.TUnion<[Type.TString, Type.TNull]>>; toolName: Type.TOptional<Type.TUnion<[Type.TString, Type.TNull]>>; agentId: Type.TOptional<Type.TUnion<[Type.TString, Type.TNull]>>; scope: Type.TOptional<Type.TUnion<[Type.TObject<{ kind: Type.TLiteral<"message-send">; target: Type.TString; recipientCount: Type.TInteger; recipients: Type.TOptional<Type.TArray<Type.TString>>; audience: Type.TOptional<Type.TUnion<[Type.TLiteral<"internal">, Type.TLiteral<"external">]>>; }>, Type.TObject<{ kind: Type.TLiteral<"payment">; amount: Type.TString; currency: Type.TString; target: Type.TString; }>, Type.TObject<{ kind: Type.TLiteral<"external-post">; target: Type.TString; visibility: Type.TUnion<[Type.TLiteral<"public">, Type.TLiteral<"restricted">]>; }>, Type.TObject<{ kind: Type.TLiteral<"standing-grant">; automation: Type.TString; command: Type.TString; expiresInDays: Type.TOptional<Type.TInteger>; }>]>>; allowedDecisions: Type.TArray<Type.TUnion<[Type.TLiteral<"allow-once">, Type.TLiteral<"allow-always">, Type.TLiteral<"deny">]>>; externalResolution: Type.TOptional<Type.TObject<{ label: Type.TString; decisions: Type.TArray<Type.TUnion<[Type.TLiteral<"allow-once">, Type.TLiteral<"allow-always">]>>; }>>; }>, Type.TObject<{ kind: Type.TLiteral<"system-agent">; title: Type.TString; description: Type.TString; proposalHash: Type.TString; agentId: Type.TOptional<Type.TUnion<[Type.TString, Type.TNull]>>; allowedDecisions: Type.TTuple<[Type.TLiteral<"allow-once">, Type.TLiteral<"deny">]>; }>]>; declare const ApprovalResolveParamsSchema: Type.TObject<{ id: Type.TString; kind: Type.TUnion<[Type.TLiteral<"exec">, Type.TLiteral<"plugin">, Type.TLiteral<"system-agent">]>; decision: Type.TUnion<[Type.TLiteral<"allow-once">, Type.TLiteral<"allow-always">, Type.TLiteral<"deny">]>; reviewer: Type.TOptional<Type.TObject<{ channel: Type.TString; accountId: Type.TString; senderId: Type.TString; }>>; grantExpiresInDays: Type.TOptional<Type.TInteger>; }>; /** First-answer outcome plus the canonical recorded state returned to all contenders. */ declare const ApprovalResolveResultSchema: Type.TObject<{ applied: Type.TBoolean; approval: Type.TUnion<[Type.TObject<{ id: Type.TString; urlPath: Type.TString; createdAtMs: Type.TInteger; expiresAtMs: Type.TInteger; presentation: Type.TUnion<[Type.TObject<{ kind: Type.TLiteral<"exec">; commandText: Type.TString; commandPreview: Type.TOptional<Type.TUnion<[Type.TString, Type.TNull]>>; warningText: Type.TOptional<Type.TUnion<[Type.TString, Type.TNull]>>; host: Type.TOptional<Type.TUnion<[Type.TString, Type.TNull]>>; nodeId: Type.TOptional<Type.TUnion<[Type.TString, Type.TNull]>>; agentId: Type.TOptional<Type.TUnion<[Type.TString, Type.TNull]>>; scope: Type.TOptional<Type.TUnion<[Type.TObject<{ kind: Type.TLiteral<"message-send">; target: Type.TString; recipientCount: Type.TInteger; recipients: Type.TOptional<Type.TArray<Type.TString>>; audience: Type.TOptional<Type.TUnion<[Type.TLiteral<"internal">, Type.TLiteral<"external">]>>; }>, Type.TObject<{ kind: Type.TLiteral<"payment">; amount: Type.TString; currency: Type.TString; target: Type.TString; }>, Type.TObject<{ kind: Type.TLiteral<"external-post">; target: Type.TString; visibility: Type.TUnion<[Type.TLiteral<"public">, Type.TLiteral<"restricted">]>; }>, Type.TObject<{ kind: Type.TLiteral<"standing-grant">; automation: Type.TString; command: Type.TString; expiresInDays: Type.TOptional<Type.TInteger>; }>]>>; allowedDecisions: Type.TArray<Type.TUnion<[Type.TLiteral<"allow-once">, Type.TLiteral<"allow-always">, Type.TLiteral<"deny">]>>; }>, Type.TObject<{ kind: Type.TLiteral<"plugin">; title: Type.TString; description: Type.TString; detail: Type.TOptional<Type.TString>; severity: Type.TUnion<[Type.TLiteral<"info">, Type.TLiteral<"warning">, Type.TLiteral<"critical">]>; pluginId: Type.TOptional<Type.TUnion<[Type.TString, Type.TNull]>>; toolName: Type.TOptional<Type.TUnion<[Type.TString, Type.TNull]>>; agentId: Type.TOptional<Type.TUnion<[Type.TString, Type.TNull]>>; scope: Type.TOptional<Type.TUnion<[Type.TObject<{ kind: Type.TLiteral<"message-send">; target: Type.TString; recipientCount: Type.TInteger; recipients: Type.TOptional<Type.TArray<Type.TString>>; audience: Type.TOptional<Type.TUnion<[Type.TLiteral<"internal">, Type.TLiteral<"external">]>>; }>, Type.TObject<{ kind: Type.TLiteral<"payment">; amount: Type.TString; currency: Type.TString; target: Type.TString; }>, Type.TObject<{ kind: Type.TLiteral<"external-post">; target: Type.TString; visibility: Type.TUnion<[Type.TLiteral<"public">, Type.TLiteral<"restricted">]>; }>, Type.TObject<{ kind: Type.TLiteral<"standing-grant">; automation: Type.TString; command: Type.TString; expiresInDays: Type.TOptional<Type.TInteger>; }>]>>; allowedDecisions: Type.TArray<Type.TUnion<[Type.TLiteral<"allow-once">, Type.TLiteral<"allow-always">, Type.TLiteral<"deny">]>>; externalResolution: Type.TOptional<Type.TObject<{ label: Type.TString; decisions: Type.TArray<Type.TUnion<[Type.TLiteral<"allow-once">, Type.TLiteral<"allow-always">]>>; }>>; }>, Type.TObject<{ kind: Type.TLiteral<"system-agent">; title: Type.TString; description: Type.TString; proposalHash: Type.TString; agentId: Type.TOptional<Type.TUnion<[Type.TString, Type.TNull]>>; allowedDecisions: Type.TTuple<[Type.TLiteral<"allow-once">, Type.TLiteral<"deny">]>; }>]>; resolvedAtMs: Type.TInteger; source: Type.TOptional<Type.TObject<{ agentId: Type.TOptional<Type.TString>; sessionKey: Type.TOptional<Type.TString>; }>>; resolver: Type.TOptional<Type.TObject<{ kind: Type.TUnion<[Type.TLiteral<"device">, Type.TLiteral<"channel">, Type.TLiteral<"runtime">, Type.TLiteral<"system">]>; id: Type.TOptional<Type.TString>; }>>; status: Type.TLiteral<"allowed">; decision: Type.TUnion<[Type.TLiteral<"allow-once">, Type.TLiteral<"allow-always">]>; reason: Type.TUnion<[Type.TLiteral<"user">]>; }>, Type.TObject<{ id: Type.TString; urlPath: Type.TString; createdAtMs: Type.TInteger; expiresAtMs: Type.TInteger; presentation: Type.TUnion<[Type.TObject<{ kind: Type.TLiteral<"exec">; commandText: Type.TString; commandPreview: Type.TOptional<Type.TUnion<[Type.TString, Type.TNull]>>; warningText: Type.TOptional<Type.TUnion<[Type.TString, Type.TNull]>>; host: Type.TOptional<Type.TUnion<[Type.TString, Type.TNull]>>; nodeId: Type.TOptional<Type.TUnion<[Type.TString, Type.TNull]>>; agentId: Type.TOptional<Type.TUnion<[Type.TString, Type.TNull]>>; scope: Type.TOptional<Type.TUnion<[Type.TObject<{ kind: Type.TLiteral<"message-send">; target: Type.TString; recipientCount: Type.TInteger; recipients: Type.TOptional<Type.TArray<Type.TString>>; audience: Type.TOptional<Type.TUnion<[Type.TLiteral<"internal">, Type.TLiteral<"external">]>>; }>, Type.TObject<{ kind: Type.TLiteral<"payment">; amount: Type.TString; currency: Type.TString; target: Type.TString; }>, Type.TObject<{ kind: Type.TLiteral<"external-post">; target: Type.TString; visibility: Type.TUnion<[Type.TLiteral<"public">, Type.TLiteral<"restricted">]>; }>, Type.TObject<{ kind: Type.TLiteral<"standing-grant">; automation: Type.TString; command: Type.TString; expiresInDays: Type.TOptional<Type.TInteger>; }>]>>; allowedDecisions: Type.TArray<Type.TUnion<[Type.TLiteral<"allow-once">, Type.TLiteral<"allow-always">, Type.TLiteral<"deny">]>>; }>, Type.TObject<{ kind: Type.TLiteral<"plugin">; title: Type.TString; description: Type.TString; detail: Type.TOptional<Type.TString>; severity: Type.TUnion<[Type.TLiteral<"info">, Type.TLiteral<"warning">, Type.TLiteral<"critical">]>; pluginId: Type.TOptional<Type.TUnion<[Type.TString, Type.TNull]>>; toolName: Type.TOptional<Type.TUnion<[Type.TString, Type.TNull]>>; agentId: Type.TOptional<Type.TUnion<[Type.TString, Type.TNull]>>; scope: Type.TOptional<Type.TUnion<[Type.TObject<{ kind: Type.TLiteral<"message-send">; target: Type.TString; recipientCount: Type.TInteger; recipients: Type.TOptional<Type.TArray<Type.TString>>; audience: Type.TOptional<Type.TUnion<[Type.TLiteral<"internal">, Type.TLiteral<"external">]>>; }>, Type.TObject<{ kind: Type.TLiteral<"payment">; amount: Type.TString; currency: Type.TString; target: Type.TString; }>, Type.TObject<{ kind: Type.TLiteral<"external-post">; target: Type.TString; visibility: Type.TUnion<[Type.TLiteral<"public">, Type.TLiteral<"restricted">]>; }>, Type.TObject<{ kind: Type.TLiteral<"standing-grant">; automation: Type.TString; command: Type.TString; expiresInDays: Type.TOptional<Type.TInteger>; }>]>>; allowedDecisions: Type.TArray<Type.TUnion<[Type.TLiteral<"allow-once">, Type.TLiteral<"allow-always">, Type.TLiteral<"deny">]>>; externalResolution: Type.TOptional<Type.TObject<{ label: Type.TString; decisions: Type.TArray<Type.TUnion<[Type.TLiteral<"allow-once">, Type.TLiteral<"allow-always">]>>; }>>; }>, Type.TObject<{ kind: Type.TLiteral<"system-agent">; title: Type.TString; description: Type.TString; proposalHash: Type.TString; agentId: Type.TOptional<Type.TUnion<[Type.TString, Type.TNull]>>; allowedDecisions: Type.TTuple<[Type.TLiteral<"allow-once">, Type.TLiteral<"deny">]>; }>]>; resolvedAtMs: Type.TInteger; source: Type.TOptional<Type.TObject<{ agentId: Type.TOptional<Type.TString>; sessionKey: Type.TOptional<Type.TString>; }>>; resolver: Type.TOptional<Type.TObject<{ kind: Type.TUnion<[Type.TLiteral<"device">, Type.TLiteral<"channel">, Type.TLiteral<"runtime">, Type.TLiteral<"system">]>; id: Type.TOptional<Type.TString>; }>>; status: Type.TLiteral<"denied">; decision: Type.TLiteral<"deny">; reason: Type.TUnion<[Type.TLiteral<"user">, Type.TLiteral<"malformed-verdict">, Type.TLiteral<"no-route">, Type.TLiteral<"storage-corrupt">]>; }>, Type.TObject<{ id: Type.TString; urlPath: Type.TString; createdAtMs: Type.TInteger; expiresAtMs: Type.TInteger; presentation: Type.TUnion<[Type.TObject<{ kind: Type.TLiteral<"exec">; commandText: Type.TString; commandPreview: Type.TOptional<Type.TUnion<[Type.TString, Type.TNull]>>; warningText: Type.TOptional<Type.TUnion<[Type.TString, Type.TNull]>>; host: Type.TOptional<Type.TUnion<[Type.TString, Type.TNull]>>; nodeId: Type.TOptional<Type.TUnion<[Type.TString, Type.TNull]>>; agentId: Type.TOptional<Type.TUnion<[Type.TString, Type.TNull]>>; scope: Type.TOptional<Type.TUnion<[Type.TObject<{ kind: Type.TLiteral<"message-send">; target: Type.TString; recipientCount: Type.TInteger; recipients: Type.TOptional<Type.TArray<Type.TString>>; audience: Type.TOptional<Type.TUnion<[Type.TLiteral<"internal">, Type.TLiteral<"external">]>>; }>, Type.TObject<{ kind: Type.TLiteral<"payment">; amount: Type.TString; currency: Type.TString; target: Type.TString; }>, Type.TObject<{ kind: Type.TLiteral<"external-post">; target: Type.TString; visibility: Type.TUnion<[Type.TLiteral<"public">, Type.TLiteral<"restricted">]>; }>, Type.TObject<{ kind: Type.TLiteral<"standing-grant">; automation: Type.TString; command: Type.TString; expiresInDays: Type.TOptional<Type.TInteger>; }>]>>; allowedDecisions: Type.TArray<Type.TUnion<[Type.TLiteral<"allow-once">, Type.TLiteral<"allow-always">, Type.TLiteral<"deny">]>>; }>, Type.TObject<{ kind: Type.TLiteral<"plugin">; title: Type.TString; description: Type.TString; detail: Type.TOptional<Type.TString>; severity: Type.TUnion<[Type.TLiteral<"info">, Type.TLiteral<"warning">, Type.TLiteral<"critical">]>; pluginId: Type.TOptional<Type.TUnion<[Type.TString, Type.TNull]>>; toolName: Type.TOptional<Type.TUnion<[Type.TString, Type.TNull]>>; agentId: Type.TOptional<Type.TUnion<[Type.TString, Type.TNull]>>; scope: Type.TOptional<Type.TUnion<[Type.TObject<{ kind: Type.TLiteral<"message-send">; target: Type.TString; recipientCount: Type.TInteger; recipients: Type.TOptional<Type.TArray<Type.TString>>; audience: Type.TOptional<Type.TUnion<[Type.TLiteral<"internal">, Type.TLiteral<"external">]>>; }>, Type.TObject<{ kind: Type.TLiteral<"payment">; amount: Type.TString; currency: Type.TString; target: Type.TString; }>, Type.TObject<{ kind: Type.TLiteral<"external-post">; target: Type.TString; visibility: Type.TUnion<[Type.TLiteral<"public">, Type.TLiteral<"restricted">]>; }>, Type.TObject<{ kind: Type.TLiteral<"standing-grant">; automation: Type.TString; command: Type.TString; expiresInDays: Type.TOptional<Type.TInteger>; }>]>>; allowedDecisions: Type.TArray<Type.TUnion<[Type.TLiteral<"allow-once">, Type.TLiteral<"allow-always">, Type.TLiteral<"deny">]>>; externalResolution: Type.TOptional<Type.TObject<{ label: Type.TString; decisions: Type.TArray<Type.TUnion<[Type.TLiteral<"allow-once">, Type.TLiteral<"allow-always">]>>; }>>; }>, Type.TObject<{ kind: Type.TLiteral<"system-agent">; title: Type.TString; description: Type.TString; proposalHash: Type.TString; agentId: Type.TOptional<Type.TUnion<[Type.TString, Type.TNull]>>; allowedDecisions: Type.TTuple<[Type.TLiteral<"allow-once">, Type.TLiteral<"deny">]>; }>]>; resolvedAtMs: Type.TInteger; source: Type.TOptional<Type.TObject<{ agentId: Type.TOptional<Type.TString>; sessionKey: Type.TOptional<Type.TString>; }>>; resolver: Type.TOptional<Type.TObject<{ kind: Type.TUnion<[Type.TLiteral<"device">, Type.TLiteral<"channel">, Type.TLiteral<"runtime">, Type.TLiteral<"system">]>; id: Type.TOptional<Type.TString>; }>>; status: Type.TLiteral<"expired">; reason: Type.TUnion<[Type.TLiteral<"timeout">]>; }>, Type.TObject<{ id: Type.TString; urlPath: Type.TString; createdAtMs: Type.TInteger; expiresAtMs: Type.TInteger; presentation: Type.TUnion<[Type.TObject<{ kind: Type.TLiteral<"exec">; commandText: Type.TString; commandPreview: Type.TOptional<Type.TUnion<[Type.TString, Type.TNull]>>; warningText: Type.TOptional<Type.TUnion<[Type.TString, Type.TNull]>>; host: Type.TOptional<Type.TUnion<[Type.TString, Type.TNull]>>; nodeId: Type.TOptional<Type.TUnion<[Type.TString, Type.TNull]>>; agentId: Type.TOptional<Type.TUnion<[Type.TString, Type.TNull]>>; scope: Type.TOptional<Type.TUnion<[Type.TObject<{ kind: Type.TLiteral<"message-send">; target: Type.TString; recipientCount: Type.TInteger; recipients: Type.TOptional<Type.TArray<Type.TString>>; audience: Type.TOptional<Type.TUnion<[Type.TLiteral<"internal">, Type.TLiteral<"external">]>>; }>, Type.TObject<{ kind: Type.TLiteral<"payment">; amount: Type.TString; currency: Type.TString; target: Type.TString; }>, Type.TObject<{ kind: Type.TLiteral<"external-post">; target: Type.TString; visibility: Type.TUnion<[Type.TLiteral<"public">, Type.TLiteral<"restricted">]>; }>, Type.TObject<{ kind: Type.TLiteral<"standing-grant">; automation: Type.TString; command: Type.TString; expiresInDays: Type.TOptional<Type.TInteger>; }>]>>; allowedDecisions: Type.TArray<Type.TUnion<[Type.TLiteral<"allow-once">, Type.TLiteral<"allow-always">, Type.TLiteral<"deny">]>>; }>, Type.TObject<{ kind: Type.TLiteral<"plugin">; title: Type.TString; description: Type.TString; detail: Type.TOptional<Type.TString>; severity: Type.TUnion<[Type.TLiteral<"info">, Type.TLiteral<"warning">, Type.TLiteral<"critical">]>; pluginId: Type.TOptional<Type.TUnion<[Type.TString, Type.TNull]>>; toolName: Type.TOptional<Type.TUnion<[Type.TString, Type.TNull]>>; agentId: Type.TOptional<Type.TUnion<[Type.TString, Type.TNull]>>; scope: Type.TOptional<Type.TUnion<[Type.TObject<{ kind: Type.TLiteral<"message-send">; target: Type.TString; recipientCount: Type.TInteger; recipients: Type.TOptional<Type.TArray<Type.TString>>; audience: Type.TOptional<Type.TUnion<[Type.TLiteral<"internal">, Type.TLiteral<"external">]>>; }>, Type.TObject<{ kind: Type.TLiteral<"payment">; amount: Type.TString; currency: Type.TString; target: Type.TString; }>, Type.TObject<{ kind: Type.TLiteral<"external-post">; target: Type.TString; visibility: Type.TUnion<[Type.TLiteral<"public">, Type.TLiteral<"restricted">]>; }>, Type.TObject<{ kind: Type.TLiteral<"standing-grant">; automation: Type.TString; command: Type.TString; expiresInDays: Type.TOptional<Type.TInteger>; }>]>>; allowedDecisions: Type.TArray<Type.TUnion<[Type.TLiteral<"allow-once">, Type.TLiteral<"allow-always">, Type.TLiteral<"deny">]>>; externalResolution: Type.TOptional<Type.TObject<{ label: Type.TString; decisions: Type.TArray<Type.TUnion<[Type.TLiteral<"allow-once">, Type.TLiteral<"allow-always">]>>; }>>; }>, Type.TObject<{ kind: Type.TLiteral<"system-agent">; title: Type.TString; description: Type.TString; proposalHash: Type.TString; agentId: Type.TOptional<Type.TUnion<[Type.TString, Type.TNull]>>; allowedDecisions: Type.TTuple<[Type.TLiteral<"allow-once">, Type.TLiteral<"deny">]>; }>]>; resolvedAtMs: Type.TInteger; source: Type.TOptional<Type.TObject<{ agentId: Type.TOptional<Type.TString>; sessionKey: Type.TOptional<Type.TString>; }>>; resolver: Type.TOptional<Type.TObject<{ kind: Type.TUnion<[Type.TLiteral<"device">, Type.TLiteral<"channel">, Type.TLiteral<"runtime">, Type.TLiteral<"system">]>; id: Type.TOptional<Type.TString>; }>>; status: Type.TLiteral<"cancelled">; reason: Type.TUnion<[Type.TLiteral<"run-aborted">, Type.TLiteral<"gateway-restart">]>; }>]>; }>; /** Authoritative pending approval set returned when a session stream subscribes. */ declare const SessionApprovalReplaySchema: Type.TObject<{ sessionKey: Type.TString; updatedAtMs: Type.TInteger; approvals: Type.TArray<Type.TObject<{ id: Type.TString; urlPath: Type.TString; createdAtMs: Type.TInteger; expiresAtMs: Type.TInteger; presentation: Type.TUnion<[Type.TObject<{ kind: Type.TLiteral<"exec">; commandText: Type.TString; commandPreview: Type.TOptional<Type.TUnion<[Type.TString, Type.TNull]>>; warningText: Type.TOptional<Type.TUnion<[Type.TString, Type.TNull]>>; host: Type.TOptional<Type.TUnion<[Type.TString, Type.TNull]>>; nodeId: Type.TOptional<Type.TUnion<[Type.TString, Type.TNull]>>; agentId: Type.TOptional<Type.TUnion<[Type.TString, Type.TNull]>>; scope: Type.TOptional<Type.TUnion<[Type.TObject<{ kind: Type.TLiteral<"message-send">; target: Type.TString; recipientCount: Type.TInteger; recipients: Type.TOptional<Type.TArray<Type.TString>>; audience: Type.TOptional<Type.TUnion<[Type.TLiteral<"internal">, Type.TLiteral<"external">]>>; }>, Type.TObject<{ kind: Type.TLiteral<"payment">; amount: Type.TString; currency: Type.TString; target: Type.TString; }>, Type.TObject<{ kind: Type.TLiteral<"external-post">; target: Type.TString; visibility: Type.TUnion<[Type.TLiteral<"public">, Type.TLiteral<"restricted">]>; }>, Type.TObject<{ kind: Type.TLiteral<"standing-grant">; automation: Type.TString; command: Type.TString; expiresInDays: Type.TOptional<Type.TInteger>; }>]>>; allowedDecisions: Type.TArray<Type.TUnion<[Type.TLiteral<"allow-once">, Type.TLiteral<"allow-always">, Type.TLiteral<"deny">]>>; }>, Type.TObject<{ kind: Type.TLiteral<"plugin">; title: Type.TString; description: Type.TString; detail: Type.TOptional<Type.TString>; severity: Type.TUnion<[Type.TLiteral<"info">, Type.TLiteral<"warning">, Type.TLiteral<"critical">]>; pluginId: Type.TOptional<Type.TUnion<[Type.TString, Type.TNull]>>; toolName: Type.TOptional<Type.TUnion<[Type.TString, Type.TNull]>>; agentId: Type.TOptional<Type.TUnion<[Type.TString, Type.TNull]>>; scope: Type.TOptional<Type.TUnion<[Type.TObject<{ kind: Type.TLiteral<"message-send">; target: Type.TString; recipientCount: Type.TInteger; recipients: Type.TOptional<Type.TArray<Type.TString>>; audience: Type.TOptional<Type.TUnion<[Type.TLiteral<"internal">, Type.TLiteral<"external">]>>; }>, Type.TObject<{ kind: Type.TLiteral<"payment">; amount: Type.TString; currency: Type.TString; target: Type.TString; }>, Type.TObject<{ kind: Type.TLiteral<"external-post">; target: Type.TString; visibility: Type.TUnion<[Type.TLiteral<"public">, Type.TLiteral<"restricted">]>; }>, Type.TObject<{ kind: Type.TLiteral<"standing-grant">; automation: Type.TString; command: Type.TString; expiresInDays: Type.TOptional<Type.TInteger>; }>]>>; allowedDecisions: Type.TArray<Type.TUnion<[Type.TLiteral<"allow-once">, Type.TLiteral<"allow-always">, Type.TLiteral<"deny">]>>; externalResolution: Type.TOptional<Type.TObject<{ label: Type.TString; decisions: Type.TArray<Type.TUnion<[Type.TLiteral<"allow-once">, Type.TLiteral<"allow-always">]>>; }>>; }>, Type.TObject<{ kind: Type.TLiteral<"system-agent">; title: Type.TString; description: Type.TString; proposalHash: Type.TString; agentId: Type.TOptional<Type.TUnion<[Type.TString, Type.TNull]>>; allowedDecisions: Type.TTuple<[Type.TLiteral<"allow-once">, Type.TLiteral<"deny">]>; }>]>; status: Type.TLiteral<"pending">; /** Canonical raising session when projected into a session-scoped reviewer surface. */ sourceSessionKey: Type.TOptional<Type.TString>; }>>; truncated: Type.TBoolean; }>; type ApprovalDecision = Static<typeof ApprovalDecisionSchema>; type ApprovalPresentation = Static<typeof ApprovalPresentationSchema>; type ApprovalResolveParams = Static<typeof ApprovalResolveParamsSchema>; type ApprovalResolveResult = Static<typeof ApprovalResolveResultSchema>; type SessionApprovalReplay = Static<typeof SessionApprovalReplaySchema>; //#endregion export { ApprovalScopeSchema as a, ApprovalResolveResult as i, ApprovalPresentation as n, SessionApprovalReplay as o, ApprovalResolveParams as r, ApprovalDecision as t };