UNPKG

openclaw

Version:

Multi-channel AI gateway with extensible messaging integrations

42 lines (41 loc) 2.1 kB
import { c as stringEnum, i as optionalFiniteNumberSchema, o as optionalPositiveIntegerSchema } from "./typebox-BdE5GwKs.js"; import { t as resolveEligibleNodeFromList } from "./node-resolve-CB9uOmem.js"; import "./node-selection-runtime-BHIcUler.js"; import "./channel-actions-CrPVkBaw.js"; import { Type } from "typebox"; /** TypeBox schema for the model-facing Canvas tool arguments. */ const CanvasToolSchema = Type.Object({ action: stringEnum([ "present", "hide", "navigate" ]), gatewayUrl: Type.Optional(Type.String()), gatewayToken: Type.Optional(Type.String()), timeoutMs: optionalPositiveIntegerSchema(), node: Type.Optional(Type.String()), target: Type.Optional(Type.String()), x: optionalFiniteNumberSchema(), y: optionalFiniteNumberSchema(), width: optionalFiniteNumberSchema(), height: optionalFiniteNumberSchema(), url: Type.Optional(Type.String()) }); //#endregion //#region extensions/canvas/src/node-eligibility.ts const CANVAS_PRESENT_COMMAND = "canvas.present"; function isEligibleCanvasNode(node) { const commands = node.invocableCommands ?? node.commands ?? []; return node.platform === "macos" && node.connected === true && commands.includes("canvas.present"); } const CANVAS_NODE_MESSAGES = { ineligibleExact: (query, eligibleIds) => `node "${query}" is not an eligible Canvas panel (requires a connected macOS node advertising ${CANVAS_PRESENT_COMMAND}; eligible node ids: ${eligibleIds})`, nameResolveFailed: (reason, eligibleIds) => `${reason} (eligible Canvas panel node ids: ${eligibleIds})`, noneEligible: () => `no eligible Canvas panel (requires a connected macOS node advertising ${CANVAS_PRESENT_COMMAND})`, multipleEligible: (eligible) => `multiple eligible Canvas panels connected; pass node explicitly: ${eligible.map((node) => node.nodeId).join(", ")}` }; function resolveCanvasNodeFromList(nodes, query) { return resolveEligibleNodeFromList(nodes, query, isEligibleCanvasNode, CANVAS_NODE_MESSAGES); } //#endregion export { CanvasToolSchema as i, isEligibleCanvasNode as n, resolveCanvasNodeFromList as r, CANVAS_PRESENT_COMMAND as t };