project-graph-mcp 2.3.1 → 2.4.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/package.json +3 -2
- package/src/analysis/analysis-cache.ctx +9 -0
- package/src/analysis/analysis-cache.js +1 -1
- package/src/analysis/complexity.ctx +6 -0
- package/src/analysis/complexity.js +1 -1
- package/src/analysis/custom-rules.ctx +14 -0
- package/src/analysis/custom-rules.js +1 -1
- package/src/analysis/db-analysis.ctx +7 -0
- package/src/analysis/db-analysis.js +1 -1
- package/src/analysis/dead-code.ctx +6 -0
- package/src/analysis/dead-code.js +1 -1
- package/src/analysis/full-analysis.ctx +9 -0
- package/src/analysis/full-analysis.js +1 -1
- package/src/analysis/jsdoc-checker.ctx +10 -0
- package/src/analysis/jsdoc-checker.js +1 -1
- package/src/analysis/jsdoc-generator.ctx +9 -0
- package/src/analysis/jsdoc-generator.js +1 -1
- package/src/analysis/large-files.ctx +6 -0
- package/src/analysis/large-files.js +1 -1
- package/src/analysis/outdated-patterns.ctx +7 -0
- package/src/analysis/outdated-patterns.js +1 -1
- package/src/analysis/similar-functions.ctx +6 -0
- package/src/analysis/similar-functions.js +1 -1
- package/src/analysis/test-annotations.ctx +11 -0
- package/src/analysis/test-annotations.js +1 -1
- package/src/analysis/type-checker.ctx +6 -0
- package/src/analysis/type-checker.js +1 -1
- package/src/analysis/undocumented.ctx +8 -0
- package/src/analysis/undocumented.js +1 -1
- package/src/cli/cli-handlers.ctx +7 -0
- package/src/cli/cli-handlers.js +1 -1
- package/src/cli/cli.ctx +6 -0
- package/src/cli/cli.js +1 -1
- package/src/compact/ai-context.ctx +6 -0
- package/src/compact/ai-context.js +1 -1
- package/src/compact/compact-migrate.ctx +8 -0
- package/src/compact/compact-migrate.js +1 -1
- package/src/compact/compact.ctx +11 -0
- package/src/compact/compact.js +1 -1
- package/src/compact/compress.ctx +7 -0
- package/src/compact/compress.js +1 -1
- package/src/compact/ctx-resolver.ctx +2 -0
- package/src/compact/ctx-resolver.js +1 -1
- package/src/compact/ctx-to-jsdoc.ctx +11 -0
- package/src/compact/ctx-to-jsdoc.js +1 -1
- package/src/compact/doc-dialect.ctx +11 -0
- package/src/compact/doc-dialect.js +2 -2
- package/src/compact/expand.ctx +14 -0
- package/src/compact/expand.js +1 -1
- package/src/compact/framework-references.ctx +7 -0
- package/src/compact/framework-references.js +1 -1
- package/src/compact/instructions.ctx +6 -0
- package/src/compact/instructions.js +1 -1
- package/src/compact/jsdoc-builder.ctx +4 -0
- package/src/compact/jsdoc-builder.js +1 -1
- package/src/compact/mode-config.ctx +8 -0
- package/src/compact/mode-config.js +1 -1
- package/src/compact/split-declarations.ctx +6 -0
- package/src/compact/split-declarations.js +1 -1
- package/src/compact/validate-pipeline.ctx +12 -0
- package/src/compact/validate-pipeline.js +1 -1
- package/src/core/event-bus.ctx +9 -0
- package/src/core/event-bus.js +1 -1
- package/src/core/file-walker.ctx +1 -0
- package/src/core/file-walker.js +1 -1
- package/src/core/filters.ctx +12 -0
- package/src/core/filters.js +1 -1
- package/src/core/graph-builder.ctx +7 -0
- package/src/core/graph-builder.js +1 -1
- package/src/core/parser.ctx +12 -0
- package/src/core/parser.js +1 -1
- package/src/core/utils.ctx +1 -0
- package/src/core/utils.js +1 -1
- package/src/core/workspace.ctx +7 -0
- package/src/core/workspace.js +1 -1
- package/src/lang/lang-go.ctx +8 -0
- package/src/lang/lang-go.js +1 -1
- package/src/lang/lang-python.ctx +5 -0
- package/src/lang/lang-python.js +1 -1
- package/src/lang/lang-sql.ctx +10 -0
- package/src/lang/lang-sql.js +1 -1
- package/src/lang/lang-typescript.ctx +6 -0
- package/src/lang/lang-typescript.js +1 -1
- package/src/lang/lang-utils.ctx +5 -0
- package/src/lang/lang-utils.js +1 -1
- package/src/mcp/mcp-server.ctx +6 -0
- package/src/mcp/mcp-server.js +1 -1
- package/src/mcp/tool-defs.ctx +2 -0
- package/src/mcp/tool-defs.js +1 -1
- package/src/mcp/tools.ctx +13 -0
- package/src/mcp/tools.js +1 -1
- package/src/network/backend-lifecycle.ctx +10 -0
- package/src/network/backend-lifecycle.js +1 -1
- package/src/network/backend.ctx +5 -0
- package/src/network/backend.js +1 -1
- package/src/network/local-gateway.ctx +9 -0
- package/src/network/local-gateway.js +1 -1
- package/src/network/mdns.ctx +6 -0
- package/src/network/mdns.js +1 -1
- package/src/network/server.ctx +2 -0
- package/src/network/server.js +2 -2
- package/src/network/web-server.ctx +17 -0
- package/src/network/web-server.js +2 -2
- package/web/follow-controller.js +94 -25
- package/web/panels/dep-graph.js +207 -21
- package/project-graph-mcp-2.3.0.tgz +0 -0
- package/vendor/symbiote-node/CHANGELOG.md +0 -31
- package/vendor/symbiote-node/LICENSE +0 -21
- package/vendor/symbiote-node/README.md +0 -206
- package/vendor/symbiote-node/canvas/AutoLayout.js +0 -725
- package/vendor/symbiote-node/canvas/Breadcrumb/Breadcrumb.css.js +0 -73
- package/vendor/symbiote-node/canvas/Breadcrumb/Breadcrumb.js +0 -93
- package/vendor/symbiote-node/canvas/Breadcrumb/Breadcrumb.tpl.js +0 -9
- package/vendor/symbiote-node/canvas/CanvasConnectionRenderer.js +0 -962
- package/vendor/symbiote-node/canvas/ConnectionRenderer.js +0 -1468
- package/vendor/symbiote-node/canvas/FlowSimulator.js +0 -323
- package/vendor/symbiote-node/canvas/ForceLayout.js +0 -189
- package/vendor/symbiote-node/canvas/ForceWorker.js +0 -1325
- package/vendor/symbiote-node/canvas/GraphTabs/GraphTabs.css.js +0 -97
- package/vendor/symbiote-node/canvas/GraphTabs/GraphTabs.js +0 -176
- package/vendor/symbiote-node/canvas/GraphTabs/GraphTabs.tpl.js +0 -12
- package/vendor/symbiote-node/canvas/LODManager.js +0 -88
- package/vendor/symbiote-node/canvas/Minimap/Minimap.css.js +0 -71
- package/vendor/symbiote-node/canvas/Minimap/Minimap.js +0 -207
- package/vendor/symbiote-node/canvas/Minimap/Minimap.tpl.js +0 -9
- package/vendor/symbiote-node/canvas/NodeCanvas/NodeCanvas.css.js +0 -261
- package/vendor/symbiote-node/canvas/NodeCanvas/NodeCanvas.js +0 -1840
- package/vendor/symbiote-node/canvas/NodeCanvas/NodeCanvas.tpl.js +0 -22
- package/vendor/symbiote-node/canvas/NodeSearch/NodeSearch.css.js +0 -97
- package/vendor/symbiote-node/canvas/NodeSearch/NodeSearch.js +0 -132
- package/vendor/symbiote-node/canvas/NodeSearch/NodeSearch.tpl.js +0 -21
- package/vendor/symbiote-node/canvas/NodeViewManager.js +0 -584
- package/vendor/symbiote-node/canvas/PinExpansion.js +0 -131
- package/vendor/symbiote-node/canvas/PseudoConnection.js +0 -80
- package/vendor/symbiote-node/canvas/SubgraphManager.js +0 -201
- package/vendor/symbiote-node/canvas/SubgraphRouter.js +0 -443
- package/vendor/symbiote-node/canvas/ViewportActions.js +0 -446
- package/vendor/symbiote-node/core/Connection.js +0 -45
- package/vendor/symbiote-node/core/Editor.js +0 -451
- package/vendor/symbiote-node/core/Frame.js +0 -31
- package/vendor/symbiote-node/core/GraphMermaid.js +0 -348
- package/vendor/symbiote-node/core/GraphText.js +0 -210
- package/vendor/symbiote-node/core/Node.js +0 -143
- package/vendor/symbiote-node/core/Portal.js +0 -104
- package/vendor/symbiote-node/core/Socket.js +0 -185
- package/vendor/symbiote-node/core/SubgraphNode.js +0 -125
- package/vendor/symbiote-node/index.js +0 -103
- package/vendor/symbiote-node/inspector/InspectorPanel/InspectorPanel.css.js +0 -361
- package/vendor/symbiote-node/inspector/InspectorPanel/InspectorPanel.js +0 -332
- package/vendor/symbiote-node/inspector/InspectorPanel/InspectorPanel.tpl.js +0 -96
- package/vendor/symbiote-node/inspector/TemplatePreview/TemplatePreview.css.js +0 -104
- package/vendor/symbiote-node/inspector/TemplatePreview/TemplatePreview.js +0 -133
- package/vendor/symbiote-node/inspector/TemplatePreview/TemplatePreview.tpl.js +0 -33
- package/vendor/symbiote-node/interactions/ConnectFlow.js +0 -307
- package/vendor/symbiote-node/interactions/Drag.js +0 -102
- package/vendor/symbiote-node/interactions/Selector.js +0 -132
- package/vendor/symbiote-node/interactions/SnapGrid.js +0 -65
- package/vendor/symbiote-node/interactions/Zoom.js +0 -140
- package/vendor/symbiote-node/layout/ActionZone/ActionZone.css.js +0 -88
- package/vendor/symbiote-node/layout/ActionZone/ActionZone.js +0 -254
- package/vendor/symbiote-node/layout/ActionZone/ActionZone.tpl.js +0 -11
- package/vendor/symbiote-node/layout/Layout/Layout.css.js +0 -88
- package/vendor/symbiote-node/layout/Layout/Layout.js +0 -622
- package/vendor/symbiote-node/layout/Layout/Layout.tpl.js +0 -25
- package/vendor/symbiote-node/layout/LayoutNode/LayoutNode.css.js +0 -293
- package/vendor/symbiote-node/layout/LayoutNode/LayoutNode.js +0 -467
- package/vendor/symbiote-node/layout/LayoutNode/LayoutNode.tpl.js +0 -33
- package/vendor/symbiote-node/layout/LayoutPreview/LayoutPreview.css.js +0 -46
- package/vendor/symbiote-node/layout/LayoutPreview/LayoutPreview.js +0 -102
- package/vendor/symbiote-node/layout/LayoutPreview/LayoutPreview.tpl.js +0 -6
- package/vendor/symbiote-node/layout/LayoutRouter/LayoutRouter.js +0 -156
- package/vendor/symbiote-node/layout/LayoutRouter/routerSync.js +0 -250
- package/vendor/symbiote-node/layout/LayoutSidebar/LayoutSidebar.css.js +0 -379
- package/vendor/symbiote-node/layout/LayoutSidebar/LayoutSidebar.js +0 -263
- package/vendor/symbiote-node/layout/LayoutSidebar/LayoutSidebar.tpl.js +0 -20
- package/vendor/symbiote-node/layout/LayoutSidebar/SidebarSection.js +0 -183
- package/vendor/symbiote-node/layout/LayoutTree.js +0 -246
- package/vendor/symbiote-node/layout/PanelMenu/PanelMenu.css.js +0 -43
- package/vendor/symbiote-node/layout/PanelMenu/PanelMenu.js +0 -89
- package/vendor/symbiote-node/layout/PanelMenu/PanelMenu.tpl.js +0 -14
- package/vendor/symbiote-node/layout/index.js +0 -16
- package/vendor/symbiote-node/menu/ContextMenu/ContextMenu.css.js +0 -61
- package/vendor/symbiote-node/menu/ContextMenu/ContextMenu.js +0 -79
- package/vendor/symbiote-node/menu/ContextMenu/ContextMenu.tpl.js +0 -19
- package/vendor/symbiote-node/node/CtrlItem/CtrlItem.css.js +0 -41
- package/vendor/symbiote-node/node/CtrlItem/CtrlItem.js +0 -24
- package/vendor/symbiote-node/node/CtrlItem/CtrlItem.tpl.js +0 -16
- package/vendor/symbiote-node/node/GraphFrame/GraphFrame.css.js +0 -65
- package/vendor/symbiote-node/node/GraphFrame/GraphFrame.js +0 -29
- package/vendor/symbiote-node/node/GraphFrame/GraphFrame.tpl.js +0 -13
- package/vendor/symbiote-node/node/GraphNode/GraphNode.css.js +0 -683
- package/vendor/symbiote-node/node/GraphNode/GraphNode.js +0 -92
- package/vendor/symbiote-node/node/GraphNode/GraphNode.tpl.js +0 -17
- package/vendor/symbiote-node/node/NodeSocket/NodeSocket.js +0 -25
- package/vendor/symbiote-node/node/NodeSocket/NodeSocket.tpl.js +0 -7
- package/vendor/symbiote-node/node/PortItem/PortItem.css.js +0 -90
- package/vendor/symbiote-node/node/PortItem/PortItem.js +0 -87
- package/vendor/symbiote-node/node/PortItem/PortItem.tpl.js +0 -10
- package/vendor/symbiote-node/package.json +0 -59
- package/vendor/symbiote-node/palette/PaletteBrowser/PaletteBrowser.css.js +0 -143
- package/vendor/symbiote-node/palette/PaletteBrowser/PaletteBrowser.js +0 -131
- package/vendor/symbiote-node/palette/PaletteBrowser/PaletteBrowser.tpl.js +0 -16
- package/vendor/symbiote-node/plugins/History.js +0 -384
- package/vendor/symbiote-node/plugins/Readonly.js +0 -59
- package/vendor/symbiote-node/shapes/CircleShape.js +0 -80
- package/vendor/symbiote-node/shapes/CommentShape.js +0 -35
- package/vendor/symbiote-node/shapes/DiamondShape.js +0 -115
- package/vendor/symbiote-node/shapes/NodeShape.js +0 -80
- package/vendor/symbiote-node/shapes/PillShape.js +0 -91
- package/vendor/symbiote-node/shapes/RectShape.js +0 -72
- package/vendor/symbiote-node/shapes/SVGShape.js +0 -494
- package/vendor/symbiote-node/shapes/index.js +0 -53
- package/vendor/symbiote-node/themes/Palette.js +0 -32
- package/vendor/symbiote-node/themes/Skin.js +0 -113
- package/vendor/symbiote-node/themes/Theme.js +0 -84
- package/vendor/symbiote-node/themes/carbon.js +0 -137
- package/vendor/symbiote-node/themes/dark.js +0 -137
- package/vendor/symbiote-node/themes/ebook.js +0 -138
- package/vendor/symbiote-node/themes/grey.js +0 -137
- package/vendor/symbiote-node/themes/light.js +0 -137
- package/vendor/symbiote-node/themes/neon.js +0 -138
- package/vendor/symbiote-node/themes/pcb.js +0 -273
- package/vendor/symbiote-node/themes/synthwave.js +0 -137
- package/vendor/symbiote-node/toolbar/QuickToolbar/QuickToolbar.css.js +0 -86
- package/vendor/symbiote-node/toolbar/QuickToolbar/QuickToolbar.js +0 -128
- package/vendor/symbiote-node/toolbar/QuickToolbar/QuickToolbar.tpl.js +0 -29
|
@@ -1,206 +0,0 @@
|
|
|
1
|
-
[](https://opensource.org/licenses/MIT)
|
|
2
|
-
[](https://nodejs.org)
|
|
3
|
-
[](#)
|
|
4
|
-
[](#)
|
|
5
|
-
|
|
6
|
-
# symbiote-node
|
|
7
|
-
|
|
8
|
-
A **visual node graph editor** and **execution engine** built on [Symbiote.js](https://github.com/symbiotejs/symbiote.js) — extensible, themeable, zero-dependency. Pure Web Components, works anywhere: vanilla HTML, React, Vue, Svelte, or any framework that supports custom elements.
|
|
9
|
-
|
|
10
|
-
> [!TIP]
|
|
11
|
-
> **22K lines, 150 files, zero external dependencies.** 70+ public API exports. Clone, serve, and start building node graphs in under a minute.
|
|
12
|
-
|
|
13
|
-
### Graph Editor
|
|
14
|
-
|
|
15
|
-
The editor constructs visual node graphs from a data model. Nodes have typed input/output ports with compatibility validation, color-coded category headers, inline controls, and drag & drop with snap-to-grid. Connections render as SVG Bézier curves with gradient coloring.
|
|
16
|
-
|
|
17
|
-
```javascript
|
|
18
|
-
import { NodeEditor, Node, Socket, Input, Output, NodeCanvas } from 'symbiote-node';
|
|
19
|
-
|
|
20
|
-
const editor = new NodeEditor();
|
|
21
|
-
const socket = new Socket('data', { color: '#4a9eff' });
|
|
22
|
-
|
|
23
|
-
const node1 = new Node('Source', { category: 'server' });
|
|
24
|
-
node1.addOutput('out', new Output(socket, 'Output'));
|
|
25
|
-
|
|
26
|
-
const node2 = new Node('Target', { category: 'control' });
|
|
27
|
-
node2.addInput('in', new Input(socket, 'Input'));
|
|
28
|
-
|
|
29
|
-
editor.addNode(node1);
|
|
30
|
-
editor.addNode(node2);
|
|
31
|
-
|
|
32
|
-
const canvas = document.querySelector('node-canvas');
|
|
33
|
-
canvas.setEditor(editor);
|
|
34
|
-
```
|
|
35
|
-
|
|
36
|
-
### Execution Engine
|
|
37
|
-
|
|
38
|
-
Server-side graph runtime with handler packs for data flow, control flow, I/O, and transforms. Graphs serialize to JSON and execute with topological ordering, retry logic, and parallel barriers.
|
|
39
|
-
|
|
40
|
-
```javascript
|
|
41
|
-
import { Graph, Executor, Registry } from 'symbiote-node/engine';
|
|
42
|
-
|
|
43
|
-
const registry = new Registry();
|
|
44
|
-
await registry.loadDir('./engine/packs');
|
|
45
|
-
|
|
46
|
-
const graph = Graph.fromFile('workflow.json');
|
|
47
|
-
const executor = new Executor(graph, registry);
|
|
48
|
-
const results = await executor.run();
|
|
49
|
-
```
|
|
50
|
-
|
|
51
|
-
### Node Shapes
|
|
52
|
-
|
|
53
|
-
Two coexisting rendering modes on the same canvas — **HTML nodes** (CSS-styled rectangles) and **SVG nodes** (arbitrary vector shapes with perimeter-aware connector positioning). Built-in presets: `hexagon`, `star`, `cloud`, `shield`, `heart`, `rect`, `pill`, `circle`, `diamond`, `comment`.
|
|
54
|
-
|
|
55
|
-
```javascript
|
|
56
|
-
import { createSVGShape, registerShape } from 'symbiote-node';
|
|
57
|
-
|
|
58
|
-
const myShape = createSVGShape('myshape', 'M12 2L22 8V16L12 22L2 16V8Z');
|
|
59
|
-
registerShape('myshape', myShape);
|
|
60
|
-
|
|
61
|
-
const node = new Node('Custom', { shape: 'myshape' });
|
|
62
|
-
```
|
|
63
|
-
|
|
64
|
-
### Theme System
|
|
65
|
-
|
|
66
|
-
Separate **Palette** (colors), **Skin** (geometry), and **Theme** (combined) layers — all driven by CSS custom properties. Switch at runtime without page reload.
|
|
67
|
-
|
|
68
|
-
| Theme | Description |
|
|
69
|
-
|-------|-------------|
|
|
70
|
-
| `GREY_NEUTRAL` | Balanced grey UI (default) |
|
|
71
|
-
| `DARK_DEFAULT` | Professional dark interface |
|
|
72
|
-
| `LIGHT_CLEAN` | Light mode |
|
|
73
|
-
| `SYNTHWAVE` | Neon retro aesthetic |
|
|
74
|
-
| `NEON_GLOW` | Vivid glow effects |
|
|
75
|
-
| `CARBON` | IBM Carbon-inspired |
|
|
76
|
-
| `EBOOK` | Warm paper-like reading theme |
|
|
77
|
-
|
|
78
|
-
```javascript
|
|
79
|
-
import { applyTheme, CARBON, applyPalette, SYNTHWAVE_PALETTE } from 'symbiote-node';
|
|
80
|
-
|
|
81
|
-
applyTheme(canvasElement, CARBON); // Full theme
|
|
82
|
-
applyPalette(canvasElement, SYNTHWAVE_PALETTE); // Colors only
|
|
83
|
-
```
|
|
84
|
-
|
|
85
|
-
### Layout System (BSP)
|
|
86
|
-
|
|
87
|
-
Binary Space Partitioning layout engine for IDE-style panel workspaces. Panels resize by dragging dividers, sections split horizontally or vertically. Sidebar navigation with section switching and panel routing.
|
|
88
|
-
|
|
89
|
-
```javascript
|
|
90
|
-
import { Layout, LayoutTree, LayoutSidebar } from 'symbiote-node';
|
|
91
|
-
```
|
|
92
|
-
|
|
93
|
-
### Plugins & Interactions
|
|
94
|
-
|
|
95
|
-
- **History** — undo/redo with keyboard bindings (Ctrl+Z / Ctrl+Shift+Z)
|
|
96
|
-
- **Readonly** — toggle read-only mode, blocks all mutations
|
|
97
|
-
- **FlowSimulator** — topological sort-based data flow animation with marching ants
|
|
98
|
-
- **SnapGrid** — configurable grid snapping
|
|
99
|
-
- **Selector** — rubber-band multi-select
|
|
100
|
-
- **ConnectFlow** — socket highlighting during connection drag
|
|
101
|
-
- **AutoLayout** — Sugiyama-based automatic node arrangement
|
|
102
|
-
- **Minimap** — viewport minimap with live position tracking
|
|
103
|
-
- **NodeSearch** — search/omnibox for quick node insertion
|
|
104
|
-
- **GraphTabs** — multi-page graph management
|
|
105
|
-
- **Subgraphs** — drill-down with breadcrumb navigation
|
|
106
|
-
- **Portals** — named reroutes for cross-graph connections
|
|
107
|
-
- **InspectorPanel** — property inspector sidebar
|
|
108
|
-
- **QuickToolbar** — floating action toolbar above selected node
|
|
109
|
-
|
|
110
|
-
## Quick Start
|
|
111
|
-
|
|
112
|
-
```bash
|
|
113
|
-
git clone https://github.com/RND-PRO/symbiote-node.git
|
|
114
|
-
cd symbiote-node
|
|
115
|
-
npx -y serve -l 3000 .
|
|
116
|
-
# Open http://localhost:3000/demo/
|
|
117
|
-
```
|
|
118
|
-
|
|
119
|
-
### As ES Module (CDN)
|
|
120
|
-
|
|
121
|
-
```html
|
|
122
|
-
<script type="importmap">
|
|
123
|
-
{
|
|
124
|
-
"imports": {
|
|
125
|
-
"@symbiotejs/symbiote": "https://esm.sh/@symbiotejs/symbiote@3.2.1",
|
|
126
|
-
"symbiote-node": "./index.js"
|
|
127
|
-
}
|
|
128
|
-
}
|
|
129
|
-
</script>
|
|
130
|
-
<script type="module">
|
|
131
|
-
import { NodeEditor, Node, Socket, Input, Output, NodeCanvas } from 'symbiote-node';
|
|
132
|
-
import 'symbiote-node/canvas/NodeCanvas/NodeCanvas.js';
|
|
133
|
-
import 'symbiote-node/node/GraphNode/GraphNode.js';
|
|
134
|
-
// ...
|
|
135
|
-
</script>
|
|
136
|
-
```
|
|
137
|
-
|
|
138
|
-
## CLI (Engine)
|
|
139
|
-
|
|
140
|
-
```bash
|
|
141
|
-
node engine/cli.js run <workflow.json> # Execute graph
|
|
142
|
-
node engine/cli.js validate <workflow.json> # Validate graph
|
|
143
|
-
node engine/cli.js list # List available node types
|
|
144
|
-
node engine/cli.js inspect <workflow.json> # Inspect graph structure
|
|
145
|
-
```
|
|
146
|
-
|
|
147
|
-
## Engine Handler Packs
|
|
148
|
-
|
|
149
|
-
Built-in node types organized by domain:
|
|
150
|
-
|
|
151
|
-
| Pack | Handlers | Description |
|
|
152
|
-
|------|----------|-------------|
|
|
153
|
-
| `flow` | `if`, `switch`, `loop`, `merge`, `retry`, `wait-all`, `agent` | Control flow and branching |
|
|
154
|
-
| `data` | `db-query`, `prompt-loader`, `rss-feed` | Data sources |
|
|
155
|
-
| `transform` | `json-parse`, `set`, `template`, `template-builder` | Data transformation |
|
|
156
|
-
| `io` | `http-request`, `read-file`, `write-file` | External I/O |
|
|
157
|
-
| `util` | `delay`, `log` | Utility nodes |
|
|
158
|
-
| `debug` | `inject` | Testing and debugging |
|
|
159
|
-
|
|
160
|
-
Custom handler packs can be loaded from any directory via `registry.loadDir()`.
|
|
161
|
-
|
|
162
|
-
## Project Structure
|
|
163
|
-
|
|
164
|
-
```
|
|
165
|
-
symbiote-node/
|
|
166
|
-
├── index.js — public API (70+ exports)
|
|
167
|
-
├── core/ — Editor, Node, Connection, Socket, Portal
|
|
168
|
-
├── canvas/ — NodeCanvas, ConnectionRenderer, FlowSimulator, AutoLayout
|
|
169
|
-
├── node/ — GraphNode, PortItem, CtrlItem, NodeSocket
|
|
170
|
-
├── menu/ — ContextMenu
|
|
171
|
-
├── interactions/ — Drag, Zoom, Selector, SnapGrid, ConnectFlow
|
|
172
|
-
├── shapes/ — SVG shape system with 10 presets
|
|
173
|
-
├── themes/ — Theme, Palette, Skin (7 themes)
|
|
174
|
-
├── layout/ — BSP layout engine + LayoutSidebar + LayoutRouter
|
|
175
|
-
├── toolbar/ — QuickToolbar
|
|
176
|
-
├── inspector/ — InspectorPanel
|
|
177
|
-
├── palette/ — PaletteBrowser
|
|
178
|
-
├── plugins/ — Readonly, History
|
|
179
|
-
├── engine/ — Server-side graph runtime
|
|
180
|
-
│ ├── packs/ — Built-in handler packs (flow, data, transform, io, util)
|
|
181
|
-
│ └── cli.js — CLI runner
|
|
182
|
-
├── demo/ — Interactive demo
|
|
183
|
-
└── tests/ — 45 tests (geometry, serialization, topology)
|
|
184
|
-
```
|
|
185
|
-
|
|
186
|
-
## Tests
|
|
187
|
-
|
|
188
|
-
```bash
|
|
189
|
-
node --test tests/*.test.js
|
|
190
|
-
# 45 tests: geometry, Bézier paths, serialization, socket compatibility,
|
|
191
|
-
# collapse/mute, subgraphs, execution, duck-typing
|
|
192
|
-
```
|
|
193
|
-
|
|
194
|
-
## Related Projects
|
|
195
|
-
|
|
196
|
-
- [project-graph-mcp](https://github.com/rnd-pro/project-graph-mcp) — MCP server for AI agents: project graph, code analysis, 18 tools
|
|
197
|
-
- [agent-pool-mcp](https://github.com/rnd-pro/agent-pool-mcp) — Multi-agent orchestration via Gemini CLI
|
|
198
|
-
- [Symbiote.js](https://github.com/symbiotejs/symbiote.js) — Isomorphic Reactive Web Components framework
|
|
199
|
-
|
|
200
|
-
## License
|
|
201
|
-
|
|
202
|
-
MIT © [RND-PRO.com](https://rnd-pro.com)
|
|
203
|
-
|
|
204
|
-
---
|
|
205
|
-
|
|
206
|
-
**Made with ❤️ by the RND-PRO team**
|