Loading
Build mode is the workflow editor. The shell is TopBar, a left NodePalette,
a center WorkflowCanvas, and a right InspectorPanel.
Drag a node from the palette (groups: control, leaf, dynamic, state, retrieval)
onto the canvas. Connect ports to form a DAG. The canvas persists positions into
metadata.canvas.positions.
Selecting a node opens the Inspector with a typed form (String, Number, Boolean, Enum, Array, Object, Template) generated from the node config schema.
Save persists the workflow to /api/workflows. Unsaved changes trigger a dirty
guard with a beforeunload prompt.