UNPKG

openclaw

Version:

Multi-channel AI gateway with extensible messaging integrations

92 lines (91 loc) 3.94 kB
import { l as normalizeOptionalString } from "./string-coerce-CIXf7egm.js"; import { d as resolvePluginApprovalRequestAllowedDecisions, l as buildPluginApprovalRequestMessage, u as buildPluginApprovalResolvedMessage } from "./plugin-approvals-BUrr4V_c.js"; import { t as resolveCanonicalPluginApprovalRequestAllowedDecisions } from "./plugin-approval-canonical-decisions-CwBFXTtw.js"; import { l as buildTypedApprovalPresentation, t as buildApprovalButtonPresentation } from "./exec-approval-reply-ZdeEqz7J.js"; //#region src/plugin-sdk/approval-renderers.ts const DEFAULT_ALLOWED_DECISIONS = [ "allow-once", "allow-always", "deny" ]; /** Build a shipped command-backed approval payload. */ function buildApprovalPendingReplyPayload(params) { const allowedDecisions = params.allowedDecisions ?? DEFAULT_ALLOWED_DECISIONS; return { text: params.text, presentation: buildApprovalButtonPresentation({ approvalId: params.approvalId, allowedDecisions }), channelData: { execApproval: { approvalId: params.approvalId, approvalSlug: params.approvalSlug, approvalKind: params.approvalKind ?? "exec", agentId: normalizeOptionalString(params.agentId), allowedDecisions, sessionKey: normalizeOptionalString(params.sessionKey), state: "pending" }, ...params.channelData } }; } /** Build a pending approval payload with canonical typed decision actions. */ function buildTypedApprovalPendingReplyPayload(params) { return { ...buildApprovalPendingReplyPayload(params), presentation: buildTypedApprovalPresentation({ approvalId: params.approvalId, approvalKind: params.approvalKind, allowedDecisions: params.allowedDecisions ?? DEFAULT_ALLOWED_DECISIONS }) }; } /** Build a resolved approval reply payload with approval metadata but no controls. */ function buildApprovalResolvedReplyPayload(params) { return { text: params.text, channelData: { execApproval: { approvalId: params.approvalId, approvalSlug: params.approvalSlug, state: "resolved" }, ...params.channelData } }; } /** Build pending plugin approval copy and metadata from a plugin approval request. */ function buildPluginApprovalPendingReplyPayload(params) { return buildApprovalPendingReplyPayload({ approvalKind: "plugin", approvalId: params.request.id, approvalSlug: params.approvalSlug ?? params.request.id.slice(0, 8), text: params.text ?? buildPluginApprovalRequestMessage(params.request, params.nowMs), allowedDecisions: params.allowedDecisions ?? resolvePluginApprovalRequestAllowedDecisions(params.request.request), channelData: params.channelData }); } /** Build a plugin approval prompt with canonical typed decision actions. */ function buildTypedPluginApprovalPendingReplyPayload(params) { return buildTypedApprovalPendingReplyPayload({ approvalKind: "plugin", approvalId: params.request.id, approvalSlug: params.approvalSlug ?? params.request.id.slice(0, 8), text: params.text ?? buildPluginApprovalRequestMessage(params.request, params.nowMs), allowedDecisions: resolveCanonicalPluginApprovalRequestAllowedDecisions({ allowedDecisions: params.allowedDecisions ?? params.request.request.allowedDecisions }), channelData: params.channelData }); } /** Build resolved plugin approval copy and metadata from a plugin approval event. */ function buildPluginApprovalResolvedReplyPayload(params) { return buildApprovalResolvedReplyPayload({ approvalId: params.resolved.id, approvalSlug: params.approvalSlug ?? params.resolved.id.slice(0, 8), text: params.text ?? buildPluginApprovalResolvedMessage(params.resolved), channelData: params.channelData }); } //#endregion export { buildTypedApprovalPendingReplyPayload as a, buildPluginApprovalResolvedReplyPayload as i, buildApprovalResolvedReplyPayload as n, buildTypedPluginApprovalPendingReplyPayload as o, buildPluginApprovalPendingReplyPayload as r, buildApprovalPendingReplyPayload as t };