import type { GuiFamily } from "./gui-domain"; export type VisualWorkflowDescriptor = { family: GuiFamily; model: "axis" | "vismach" | "plasma" | "preview"; snapshot_fields: readonly string[]; worker_capabilities: readonly string[]; host_boundary: "WEB-EQUIV" | "PY-WASM" | "REAL-EXCLUDED"; }; export const VISUAL_WORKFLOWS: Record = { axis: { family: "axis", model: "axis", snapshot_fields: ["motion.axes", "motion.joints", "program", "toolpath"], worker_capabilities: ["snapshot", "trajectory"], host_boundary: "WEB-EQUIV" }, gmoccapy: { family: "gmoccapy", model: "axis", snapshot_fields: ["motion.axes", "program", "tool", "alarms"], worker_capabilities: ["snapshot", "trajectory"], host_boundary: "WEB-EQUIV" }, touchy: { family: "touchy", model: "axis", snapshot_fields: ["motion.axes", "task", "program"], worker_capabilities: ["snapshot"], host_boundary: "WEB-EQUIV" }, gscreen: { family: "gscreen", model: "axis", snapshot_fields: ["motion.axes", "hal", "program"], worker_capabilities: ["snapshot", "hal_sample"], host_boundary: "WEB-EQUIV" }, qtvcp: { family: "qtvcp", model: "axis", snapshot_fields: ["motion.axes", "vcp", "tool", "hal"], worker_capabilities: ["snapshot", "vcp_pins", "hal_sample"], host_boundary: "PY-WASM" }, qtdragon: { family: "qtdragon", model: "axis", snapshot_fields: ["motion.axes", "vcp", "tool"], worker_capabilities: ["snapshot", "vcp_pins"], host_boundary: "PY-WASM" }, pyvcp: { family: "pyvcp", model: "axis", snapshot_fields: ["motion.axes", "vcp", "hal"], worker_capabilities: ["snapshot", "vcp_pins"], host_boundary: "PY-WASM" }, gladevcp: { family: "gladevcp", model: "axis", snapshot_fields: ["motion.axes", "vcp", "hal"], worker_capabilities: ["snapshot", "vcp_pins"], host_boundary: "PY-WASM" }, vismach: { family: "vismach", model: "vismach", snapshot_fields: ["motion.axes", "motion.joints", "pose", "toolpath", "stock"], worker_capabilities: ["snapshot", "trajectory", "model"], host_boundary: "WEB-EQUIV" }, ngcgui: { family: "ngcgui", model: "preview", snapshot_fields: ["program", "mdi", "toolpath"], worker_capabilities: ["snapshot", "trajectory"], host_boundary: "PY-WASM" }, qtplasmac: { family: "qtplasmac", model: "plasma", snapshot_fields: ["motion.axes", "program", "material", "torch", "alarms"], worker_capabilities: ["snapshot", "trajectory", "material_table"], host_boundary: "PY-WASM" }, plasma: { family: "plasma", model: "plasma", snapshot_fields: ["motion.axes", "program", "material", "torch", "alarms"], worker_capabilities: ["snapshot", "trajectory", "material_table"], host_boundary: "PY-WASM" }, }; export function visualWorkflowFor(family: GuiFamily): VisualWorkflowDescriptor { return VISUAL_WORKFLOWS[family]; }