UNPKG

openclaw

Version:

Multi-channel AI gateway with extensible messaging integrations

197 lines 11.5 kB
import { r as OpenClawConfig } from "./types.openclaw-BdCLfP4c.js"; import { a as SystemAgentApprovalRequest, h as PluginApprovalRequest, ht as ExecApprovalRequest, n as ChannelApprovalKind } from "./approval-types-ClyNB7BE.js"; import { r as ChannelApprovalCapability } from "./types.adapters-nVuGENR2.js"; import "./channel-contract-D-kT9xaw.js"; import "./config-runtime-BcJv7C4y.js"; import { c as createNativeApprovalChannelRouteGates, i as NativeApprovalTarget } from "./approval-native-helpers-BQWwBU_H.js"; //#region src/plugin-sdk/approval-delivery-helpers.d.ts type NativeApprovalDeliveryMode = "dm" | "channel" | "both"; type NativeApprovalRequest = ExecApprovalRequest | PluginApprovalRequest | SystemAgentApprovalRequest; type ApprovalAdapterParams = { /** Full config used to inspect channel approval settings. */ cfg: OpenClawConfig; /** Optional channel account id for account-scoped approval settings. */ accountId?: string | null; /** Actor attempting the approval action. */ senderId?: string | null; }; type DeliverySuppressionParams = { /** Full config used to inspect native approval delivery settings. */ cfg: OpenClawConfig; /** Approval kind being delivered. */ approvalKind: ChannelApprovalKind; /** Forwarding fallback target under consideration. */ target: { channel: string; accountId?: string | null; }; /** Approval request metadata, including original turn source when available. */ request: { request: { turnSourceChannel?: string | null; turnSourceAccountId?: string | null; }; }; }; type ApproverRestrictedNativeApprovalCommonParams = { /** Channel id that owns this native approval capability. */ channel: string; /** Human-readable channel label used in denial messages. */ channelLabel: string; /** Optional setup description helper shown when exec approvals are unavailable. */ describeExecApprovalSetup?: ChannelApprovalCapability["describeExecApprovalSetup"]; /** Optional setup description helper shown when plugin approvals are unavailable. */ describePluginApprovalSetup?: ChannelApprovalCapability["describePluginApprovalSetup"]; /** Native runtime hooks used by channel-specific delivery implementations. */ nativeRuntime?: ChannelApprovalCapability["nativeRuntime"]; }; type ApproverRestrictedNativeApprovalFlatParams = { /** Lists configured account ids so DM-route availability can scan every account. */ listAccountIds: (cfg: OpenClawConfig) => string[]; /** Whether an account has approvers configured. */ hasApprovers: (params: ApprovalAdapterParams) => boolean; /** Whether a sender can approve exec approvals for this account. */ isExecAuthorizedSender: (params: ApprovalAdapterParams) => boolean; /** Optional plugin approval authorization hook; defaults to exec authorization. */ isPluginAuthorizedSender?: (params: ApprovalAdapterParams) => boolean; /** Whether native approval delivery is enabled for an account. */ isNativeDeliveryEnabled: (params: { cfg: OpenClawConfig; accountId?: string | null; }) => boolean; /** Native delivery target preference for an account. */ resolveNativeDeliveryMode: (params: { cfg: OpenClawConfig; accountId?: string | null; }) => NativeApprovalDeliveryMode; /** Requires the approval request's original turn channel to match this channel before suppression. */ requireMatchingTurnSourceChannel?: boolean; /** Optional account id resolver used when deciding forwarding-fallback suppression. */ resolveSuppressionAccountId?: (params: DeliverySuppressionParams) => string | undefined; /** Resolves the original channel target for native approval delivery. */ resolveOriginTarget?: (params: { cfg: OpenClawConfig; accountId?: string | null; approvalKind: ChannelApprovalKind; request: NativeApprovalRequest; }) => NativeApprovalTarget | null | Promise<NativeApprovalTarget | null>; /** Resolves approver DM targets for native approval delivery. */ resolveApproverDmTargets?: (params: { cfg: OpenClawConfig; accountId?: string | null; approvalKind: ChannelApprovalKind; request: NativeApprovalRequest; }) => NativeApprovalTarget[] | Promise<NativeApprovalTarget[]>; /** Whether DM-only native delivery should also notify the origin channel. */ notifyOriginWhenDmOnly?: boolean; }; type StandardNativeApprovalRouting = Pick<ReturnType<typeof createNativeApprovalChannelRouteGates>, "canApprovalPotentiallyRouteToChannel" | "canAnyApprovalPotentiallyRouteToChannel" | "isNativeApprovalHandlerConfigured" | "shouldHandleApprovalRequest"> & { getActionAvailabilityState: NonNullable<ChannelApprovalCapability["getActionAvailabilityState"]>; getExecInitiatingSurfaceState: NonNullable<ChannelApprovalCapability["getExecInitiatingSurfaceState"]>; delivery: NonNullable<ChannelApprovalCapability["delivery"]>; native: NonNullable<ChannelApprovalCapability["native"]>; }; type ApproverRestrictedNativeApprovalRoutedParams = { /** Standard forwarding-backed native routing assembled inside the capability factory. */ routing: StandardNativeApprovalRoutingParams; /** Channel-owned authorization, including any implicit same-chat fallback marker. */ authorizeActorAction: NonNullable<ChannelApprovalCapability["authorizeActorAction"]>; /** Builds native runtime hooks after the shared routing policy exists. */ createNativeRuntime?: (routing: StandardNativeApprovalRouting) => ChannelApprovalCapability["nativeRuntime"]; /** Render hooks for pending and resolved approval payloads. */ render?: ChannelApprovalCapability["render"]; }; type StandardNativeApprovalRoutingParams = { /** Default forwarding mode when top-level approval config omits one. */ defaultForwardingMode: "session" | "targets" | "both"; /** Whether the channel transport is available for an account. */ isTransportEnabled: (params: { cfg: OpenClawConfig; accountId?: string | null; }) => boolean; /** Lists channel account ids for route and DM availability checks. */ listAccountIds: (cfg: OpenClawConfig) => readonly string[]; /** Resolves the channel's default account id. */ resolveDefaultAccountId: (cfg: OpenClawConfig) => string; /** Normalizes a channel-local messaging destination. */ normalizeTo: (to: string) => string | null | undefined; /** Resolves configured native approval recipients. */ resolveApprovers: (params: { cfg: OpenClawConfig; accountId?: string | null; }) => readonly string[]; /** Optional origin safety gate, such as requiring approvers for group conversations. */ isOriginTargetAllowed?: (params: { cfg: OpenClawConfig; accountId?: string | null; approvalKind?: ChannelApprovalKind; request: NativeApprovalRequest; target: NativeApprovalTarget; }) => boolean; /** Whether explicit target forwarding participates in exact-match fallback suppression. */ suppressExplicitTargetFallback?: boolean; /** Whether DM-only native delivery should also notify the origin channel. */ notifyOriginWhenDmOnly?: boolean; }; /** Build the split approval adapter shape for approver-restricted native channels. */ declare function createApproverRestrictedNativeApprovalAdapter(params: ApproverRestrictedNativeApprovalCommonParams & ApproverRestrictedNativeApprovalFlatParams): { auth: { authorizeActorAction?: ChannelApprovalCapability["authorizeActorAction"]; getActionAvailabilityState?: ChannelApprovalCapability["getActionAvailabilityState"]; getExecInitiatingSurfaceState?: ChannelApprovalCapability["getExecInitiatingSurfaceState"]; resolveApproveCommandBehavior?: ChannelApprovalCapability["resolveApproveCommandBehavior"]; }; delivery: ChannelApprovalCapability["delivery"]; nativeRuntime: ChannelApprovalCapability["nativeRuntime"]; render: ChannelApprovalCapability["render"]; native: ChannelApprovalCapability["native"]; describeExecApprovalSetup: ChannelApprovalCapability["describeExecApprovalSetup"]; describePluginApprovalSetup: ChannelApprovalCapability["describePluginApprovalSetup"]; }; /** Assemble a channel approval capability from its auth, delivery, render, and native surfaces. */ declare function createChannelApprovalCapability(params: { /** Authorizes actors attempting approval actions. */ authorizeActorAction?: ChannelApprovalCapability["authorizeActorAction"]; /** Reports whether approval actions are generally available. */ getActionAvailabilityState?: ChannelApprovalCapability["getActionAvailabilityState"]; /** Reports whether exec approvals can start from the initiating surface. */ getExecInitiatingSurfaceState?: ChannelApprovalCapability["getExecInitiatingSurfaceState"]; /** Optional command behavior override for approval replies. */ resolveApproveCommandBehavior?: ChannelApprovalCapability["resolveApproveCommandBehavior"]; /** Optional setup copy for unavailable exec approval paths. */ describeExecApprovalSetup?: ChannelApprovalCapability["describeExecApprovalSetup"]; /** Optional setup copy for unavailable plugin approval paths. */ describePluginApprovalSetup?: ChannelApprovalCapability["describePluginApprovalSetup"]; /** Delivery fallback and DM-route helpers. */ delivery?: ChannelApprovalCapability["delivery"]; /** Native runtime hooks for channel-specific approval delivery. */ nativeRuntime?: ChannelApprovalCapability["nativeRuntime"]; /** Render hooks for pending/resolved approval payloads. */ render?: ChannelApprovalCapability["render"]; /** Native target/capability discovery hooks. */ native?: ChannelApprovalCapability["native"]; }): ChannelApprovalCapability; /** Split the canonical approval capability into the adapter shape older channel loaders consume. */ declare function splitChannelApprovalCapability(capability: ChannelApprovalCapability): { auth: { authorizeActorAction?: ChannelApprovalCapability["authorizeActorAction"]; getActionAvailabilityState?: ChannelApprovalCapability["getActionAvailabilityState"]; getExecInitiatingSurfaceState?: ChannelApprovalCapability["getExecInitiatingSurfaceState"]; resolveApproveCommandBehavior?: ChannelApprovalCapability["resolveApproveCommandBehavior"]; }; delivery: ChannelApprovalCapability["delivery"]; nativeRuntime: ChannelApprovalCapability["nativeRuntime"]; render: ChannelApprovalCapability["render"]; native: ChannelApprovalCapability["native"]; describeExecApprovalSetup: ChannelApprovalCapability["describeExecApprovalSetup"]; describePluginApprovalSetup: ChannelApprovalCapability["describePluginApprovalSetup"]; }; /** Build the canonical approval capability for approver-restricted native delivery channels. */ declare function createApproverRestrictedNativeApprovalCapability(params: ApproverRestrictedNativeApprovalCommonParams & ApproverRestrictedNativeApprovalFlatParams): ChannelApprovalCapability; /** Build a forwarding-routed capability and expose its shared route gates to the owning channel. */ declare function createApproverRestrictedNativeApprovalCapabilityFromForwardingRoutes(params: ApproverRestrictedNativeApprovalCommonParams & ApproverRestrictedNativeApprovalRoutedParams): { capability: ChannelApprovalCapability; routing: StandardNativeApprovalRouting; }; //#endregion export { splitChannelApprovalCapability as a, createChannelApprovalCapability as i, createApproverRestrictedNativeApprovalCapability as n, createApproverRestrictedNativeApprovalCapabilityFromForwardingRoutes as r, createApproverRestrictedNativeApprovalAdapter as t };