UNPKG

openclaw

Version:

Multi-channel AI gateway with extensible messaging integrations

46 lines (45 loc) 1.56 kB
import { n as isCwdBoundHashedArgPattern } from "./exec-command-resolution-B6e6Gzk8.js"; import { f as updateExecApprovalsSync } from "./exec-approvals-store-DBR0neS0.js"; //#region src/infra/exec-approvals-generated-migration.ts function isObsoleteGeneratedEntry(entry) { const pattern = entry.pattern.trim(); return entry.source === "allow-always" && !pattern.startsWith("=command:") && !pattern.startsWith("=node-command:") && !isCwdBoundHashedArgPattern(entry.argPattern); } function countObsoleteGeneratedExecApprovals(file) { return Object.values(file.agents ?? {}).reduce((count, agent) => count + (agent.allowlist ?? []).filter(isObsoleteGeneratedEntry).length, 0); } function removeObsoleteGeneratedExecApprovals(file) { let removed = 0; const agents = Object.fromEntries(Object.entries(file.agents ?? {}).map(([agentId, agent]) => { const allowlist = (agent.allowlist ?? []).filter((entry) => { if (!isObsoleteGeneratedEntry(entry)) return true; removed += 1; return false; }); return [agentId, { ...agent, allowlist }]; })); return removed === 0 ? { file, removed } : { file: { ...file, agents }, removed }; } function repairObsoleteGeneratedExecApprovals() { let removed = 0; updateExecApprovalsSync({ update: (file) => { const result = removeObsoleteGeneratedExecApprovals(file); removed = result.removed; return result.removed > 0 ? result.file : null; } }); return removed; } //#endregion export { repairObsoleteGeneratedExecApprovals as n, countObsoleteGeneratedExecApprovals as t };