UNPKG

openclaw

Version:

Multi-channel AI gateway with extensible messaging integrations

27 lines (26 loc) 1.48 kB
import "./src-vebZIeLe.js"; import { t as stableStringify } from "./stable-stringify-C8X7niaI.js"; //#region src/gateway/session-tool-overrides.ts function normalizeSessionToolOverrides(raw) { if (!raw) return; const normalizeBooleanMap = (value) => { const entries = Object.entries(value ?? {}).toSorted(([left], [right]) => left.localeCompare(right)); return entries.length > 0 ? Object.fromEntries(entries) : void 0; }; const mcpToolsDeny = Object.fromEntries(Object.entries(raw.mcpToolsDeny ?? {}).map(([serverName, toolNames]) => [serverName, [...new Set(toolNames)].toSorted((left, right) => left.localeCompare(right))]).filter(([, toolNames]) => toolNames.length > 0).toSorted(([left], [right]) => left.localeCompare(right))); const mcpServers = normalizeBooleanMap(raw.mcpServers); const skills = normalizeBooleanMap(raw.skills); const normalized = { ...mcpServers ? { mcpServers } : {}, ...Object.keys(mcpToolsDeny).length > 0 ? { mcpToolsDeny } : {}, ...skills ? { skills } : {}, ...raw.webSearch === false ? { webSearch: false } : {} }; return Object.keys(normalized).length > 0 ? normalized : void 0; } /** Compare sparse tool policy overlays by their canonical stored meaning. */ function sessionToolOverridesEqual(left, right) { return stableStringify(normalizeSessionToolOverrides(left)) === stableStringify(normalizeSessionToolOverrides(right)); } //#endregion export { sessionToolOverridesEqual as n, normalizeSessionToolOverrides as t };