UNPKG

openclaw

Version:

Multi-channel AI gateway with extensible messaging integrations

38 lines (37 loc) • 1.9 kB
import { h as readNonEmptyStringPreservingWhitespace } from "./string-coerce-1VuiLaaR.mjs"; import { i as stripAnsi } from "./ansi-BeFJ0Uu7.mjs"; import "./plugin-approvals-BXljsQyC.mjs"; import { d as truncateRelayText } from "./native-hook-relay-utils-CG_lxxVt.mjs"; //#region src/agents/harness/native-hook-relay-approval-presentation.ts function formatNativeHookRelayApprovalPresentation(request) { return formatHarnessApprovalPresentation({ title: "Codex permission request", description: formatPermissionApprovalDescription(request) }); } function formatPermissionApprovalDescription(request) { return [ `Tool: ${sanitizeApprovalText(request.toolName)}`, request.cwd ? `Cwd: ${sanitizeApprovalText(request.cwd)}` : void 0, request.model ? `Model: ${sanitizeApprovalText(request.model)}` : void 0, formatToolInputPreview(request.toolInput) ].filter((line) => Boolean(line)).join("\n"); } function formatToolInputPreview(toolInput) { const command = readNonEmptyStringPreservingWhitespace(toolInput.command); if (command) return `Command: ${truncateRelayText(sanitizeApprovalText(command), 240)}`; const keys = Object.keys(toolInput).map(sanitizeApprovalText).filter(Boolean).toSorted(); if (!keys.length) return; return `Input keys: ${keys.slice(0, 12).join(", ")}${keys.length > 12 ? ` (${keys.length - 12} omitted)` : ""}`; } function sanitizeApprovalText(value) { return stripAnsi(value).replace(/[\p{Cc}\u202a-\u202e\u2066-\u2069]/gu, " ").replace(/\s+/g, " ").trim(); } function formatHarnessApprovalPresentation(input) { return { title: truncateRelayText(sanitizeApprovalText(input.title), 80), description: truncateRelayText(input.description.split("\n").map(sanitizeApprovalText).join("\n"), 512) }; } //#endregion export { formatNativeHookRelayApprovalPresentation as n, formatPermissionApprovalDescription as r, formatHarnessApprovalPresentation as t };