9cb7d68abe
Phase 1: API + static graph rendering Backend: - GET /workflows/:name now returns descriptor (with graph) from bundle YAML - Graceful fallback to null if YAML missing/invalid Frontend: - New workflow-graph/ component module (7 files) - React Flow + dagre auto-layout (TB direction) - Custom nodes: RoleNode (rounded rect) + TerminalNode (circle for START/END) - Custom edges: dashed for FALLBACK, solid with label for conditions - Self-loop edges supported (e.g. coder → coder) - Node states: default/completed/active with color-coded borders - Active node pulse animation - Collapsible graph panel (300px) above thread records - Dark theme using existing CSS variables Integration: - ThreadDetail extracts workflow name → fetches descriptor → computes node states → renders graph - Node states derived from ThreadRecord[] (completed/active/default)
29 lines
645 B
JSON
29 lines
645 B
JSON
{
|
|
"name": "@uncaged/workflow-dashboard",
|
|
"version": "0.1.0",
|
|
"private": true,
|
|
"type": "module",
|
|
"scripts": {
|
|
"dev": "vite",
|
|
"build": "vite build",
|
|
"preview": "vite preview"
|
|
},
|
|
"dependencies": {
|
|
"@dagrejs/dagre": "^3.0.0",
|
|
"@xyflow/react": "^12.10.2",
|
|
"react": "^19.2.6",
|
|
"react-dom": "^19.2.6",
|
|
"react-markdown": "^10.1.0",
|
|
"shiki": "^4.0.2"
|
|
},
|
|
"devDependencies": {
|
|
"@tailwindcss/vite": "^4.2.4",
|
|
"@types/react": "^19.2.14",
|
|
"@types/react-dom": "^19.2.3",
|
|
"@vitejs/plugin-react": "^6.0.1",
|
|
"tailwindcss": "^4.2.4",
|
|
"typescript": "^6.0.3",
|
|
"vite": "^8.0.11"
|
|
}
|
|
}
|