UNPKG

openclaw

Version:

Multi-channel AI gateway with extensible messaging integrations

22 lines (21 loc) 1.15 kB
const CANVAS_DOCUMENTS_PATH = `/__openclaw__/canvas/documents`; /** Keep the historical Canvas plugin scope so existing capability URLs remain valid. */ const CANVAS_NODE_CAPABILITY = { surface: "canvas", scopeKey: "canvas:canvas" }; /** Returns true only for the core-owned Canvas document subtree. */ function isCanvasDocumentHttpPath(pathname) { return pathname.startsWith(`${CANVAS_DOCUMENTS_PATH}/`); } /** Resolves auth for any canonicalized candidate targeting core Canvas documents. */ function resolveCanvasNodeCapability(pathCandidates) { return pathCandidates.some(isCanvasDocumentHttpPath) ? CANVAS_NODE_CAPABILITY : void 0; } /** Adds the core Canvas surface while removing stale plugin-owned duplicates. */ function withCoreCanvasNodeCapability(surfaces, enabled = true) { const withoutStaleCanvas = surfaces.filter((entry) => entry.surface.trim() !== CANVAS_NODE_CAPABILITY.surface); return enabled ? [CANVAS_NODE_CAPABILITY, ...withoutStaleCanvas] : withoutStaleCanvas; } //#endregion export { withCoreCanvasNodeCapability as i, isCanvasDocumentHttpPath as n, resolveCanvasNodeCapability as r, CANVAS_DOCUMENTS_PATH as t };