Workflow Editor — 3-Tab Data Model

Overview / DAG / YAML tabs all read and write the same in-memory WorkflowDefinition; save path through validation to disk

WorkflowsPage left: workflow card list · right: editor panel (opens on card select) bundled (read-only) user (editable) Workflow Editor Panel Overview DAG YAML Overview tab checksum: ab3f92c14d… version: 7 source: user path: ~/.hermes/workflows/id.yaml Node breakdown llm: 3 tool: 2 router: 1 input: 1 output: 1 has_loop has_approval Duplicate Export Delete DAG tab visual node-and-edge graph input node llm node tool node router node output node hover node → details panel read-only for bundled workflows YAML tab id: my-pipeline name: My Pipeline version: 7 nodes: - id: start type: input - id: llm_1 type: llm model: auto edges: - from: start to: llm_1 bundled → read-only editor user workflows → editable Save disabled for bundled source WorkflowDefinition (shared in-memory model) id · name · source nodes[] · edges[] version · checksum flags: has_loop, has_approval path: ~/.hermes/workflows/<id>.yaml all 3 tabs read/write same object Save Pipeline (user workflows only) 1. Edit YAML user modifies YAML tab → WorkflowDefinition updated 2. Validate schema workflow engine schema · error message on fail validation error → reject save 3. Write to disk ~/.hermes/workflows/<id>.yaml PUT /api/workflows/:id 4. Bump version + checksum version += 1 checksum = content hash (first 12 chars shown) 5. Tabs refresh Overview: new checksum + version DAG: redraws from updated node list Validation error — save rejected error message in YAML tab · no disk write Hermes Switch UI · Workflow Editor · ~/.hermes/workflows/<id>.yaml

Overview tab

  • · Checksum (first 12 chars of content hash)
  • · Version counter (increments each save)
  • · Source: bundled / user / project
  • · Path on disk for bundled workflows
  • · Node type breakdown + flags (has_loop, has_approval)

DAG tab

  • · Visual node-and-edge graph of WorkflowDefinition
  • · Hover node → details side panel
  • · Node types: input, llm, tool, router, output
  • · Read-only for bundled workflows
  • · Refreshes after each save

YAML tab

  • · Raw YAML editor (user workflows only)
  • · Bundled workflows show read-only view
  • · Save triggers schema validation first
  • · Invalid YAML: error shown, no disk write
  • · Valid save: version++ + checksum update

WorkflowDefinition model

  • · Single in-memory object shared across all 3 tabs
  • · id · name · source · path
  • · nodes[] · edges[] · flags
  • · version · checksum
  • · Persisted to ~/.hermes/workflows/<id>.yaml