nandi/oripublic Fork 0
00224b167266e7d496672adfe1e60fcffeab7e63
Commits
Clone
git clone https://git.rickub.com/nandi/ori.git
git clone ssh://git@rickub.com/nandi/ori.git

Host key fingerprint (ed25519): SHA256:iycHnxEyq0Q7uyVpB7JlznP0G7JrTPXLYRcAU5CSLhc — verify it before your first connect.

forked from bots-garden/ori

packages.drawio · 112 lines · 9.6 KBZed Blame HistoryRaw
✨ Workspace panel, selectors, previews, desktop app, sandbox template, resizable file tree, light/dark theme 76d62ac k33g yesterday1<mxfile host="65bd71144e">
2 <diagram id="ori-packages" name="ori package dependencies">
3 <mxGraphModel dx="727" dy="240" grid="1" gridSize="10" guides="1" tooltips="1" connect="1" arrows="1" fold="1" page="1" pageScale="1" pageWidth="1200" pageHeight="850" math="0" shadow="0">
4 <root>
5 <mxCell id="0"/>
6 <mxCell id="1" parent="0"/>
7 <mxCell id="spa" value="ui/src React SPA&#10;(chat panel + workspace: file tree, Monaco preview/editor,&#10;markdown/asciidoc rendering, xterm.js terminal)" style="rounded=1;whiteSpace=wrap;html=1;fillColor=#dae8fc;strokeColor=#6c8ebf;" parent="1" vertex="1">
8 <mxGeometry x="40" y="30" width="260" height="80" as="geometry"/>
9 </mxCell>
10 <mxCell id="uiembed" value="ui (Go package)&#10;(go:embed of the SPA production build)" style="rounded=1;whiteSpace=wrap;html=1;fillColor=#d5e8d4;strokeColor=#82b366;" parent="1" vertex="1">
11 <mxGeometry x="380" y="40" width="240" height="60" as="geometry"/>
12 </mxCell>
13 <mxCell id="cmdori" value="cmd/ori&#10;(entry point: wires config, agent, bridge, http)" style="rounded=1;whiteSpace=wrap;html=1;fillColor=#d5e8d4;strokeColor=#82b366;" parent="1" vertex="1">
14 <mxGeometry x="380" y="180" width="240" height="60" as="geometry"/>
15 </mxCell>
16 <mxCell id="config" value="internal/config&#10;(CLI flag parsing and validation)" style="rounded=1;whiteSpace=wrap;html=1;fillColor=#d5e8d4;strokeColor=#82b366;" parent="1" vertex="1">
17 <mxGeometry x="60" y="300" width="220" height="60" as="geometry"/>
18 </mxCell>
19 <mxCell id="httpserver" value="internal/httpserver&#10;(serves the embedded SPA, /healthz, mounts /ws)" style="rounded=1;whiteSpace=wrap;html=1;fillColor=#d5e8d4;strokeColor=#82b366;" parent="1" vertex="1">
20 <mxGeometry x="320" y="300" width="240" height="60" as="geometry"/>
21 </mxCell>
22 <mxCell id="bridge" value="internal/bridge&#10;(WS hub: broadcast, history replay, permission routing)" style="rounded=1;whiteSpace=wrap;html=1;fillColor=#d5e8d4;strokeColor=#82b366;" parent="1" vertex="1">
23 <mxGeometry x="600" y="300" width="250" height="60" as="geometry"/>
24 </mxCell>
25 <mxCell id="agentpkg" value="internal/agent&#10;(spawns the agent process, drives the ACP session)" style="rounded=1;whiteSpace=wrap;html=1;fillColor=#d5e8d4;strokeColor=#82b366;" parent="1" vertex="1">
26 <mxGeometry x="890" y="300" width="250" height="60" as="geometry"/>
27 </mxCell>
28 <mxCell id="mockagent" value="internal/mockagent&#10;(deterministic demo ACP agent scenario)" style="rounded=1;whiteSpace=wrap;html=1;fillColor=#d5e8d4;strokeColor=#82b366;" parent="1" vertex="1">
29 <mxGeometry x="890" y="180" width="250" height="60" as="geometry"/>
30 </mxCell>
31 <mxCell id="cmdmock" value="cmd/ori-mock-agent&#10;(the demo agent as a stdio binary)" style="rounded=1;whiteSpace=wrap;html=1;fillColor=#d5e8d4;strokeColor=#82b366;" parent="1" vertex="1">
32 <mxGeometry x="890" y="60" width="250" height="60" as="geometry"/>
33 </mxCell>
34 <mxCell id="acpsdk" value="github.com/coder/acp-go-sdk&#10;(ACP JSON-RPC client and agent library)" style="rounded=1;whiteSpace=wrap;html=1;fillColor=#ffe6cc;strokeColor=#d79b00;" parent="1" vertex="1">
35 <mxGeometry x="740" y="460" width="250" height="60" as="geometry"/>
36 </mxCell>
37 <mxCell id="wslib" value="github.com/coder/websocket&#10;(WebSocket implementation)" style="rounded=1;whiteSpace=wrap;html=1;fillColor=#ffe6cc;strokeColor=#d79b00;" parent="1" vertex="1">
38 <mxGeometry x="450" y="460" width="230" height="60" as="geometry"/>
39 </mxCell>
✨ Switch the ACP adapter to @agentclientprotocol/claude-agent-acp (template 0.0.2) 5d476ff k33g 20h ago40 <mxCell id="adapter" value="npx @agentclientprotocol/claude-agent-acp&#10;(Claude Agent SDK ACP adapter, bundles Claude Code runtime subprocess)" style="rounded=1;whiteSpace=wrap;html=1;dashed=1;fillColor=#f8cecc;strokeColor=#b85450;" parent="1" vertex="1">
✨ Workspace panel, selectors, previews, desktop app, sandbox template, resizable file tree, light/dark theme 76d62ac k33g yesterday41 <mxGeometry x="890" y="580" width="270" height="60" as="geometry"/>
42 </mxCell>
43 <mxCell id="filespkg" value="internal/files&#10;(workspace file API: list, read, write)" style="rounded=1;whiteSpace=wrap;html=1;fillColor=#d5e8d4;strokeColor=#82b366;" vertex="1" parent="1">
44 <mxGeometry x="60" y="420" width="220" height="60" as="geometry"/>
45 </mxCell>
46 <mxCell id="terminalpkg" value="internal/terminal&#10;(one shell per WebSocket, in a PTY)" style="rounded=1;whiteSpace=wrap;html=1;fillColor=#d5e8d4;strokeColor=#82b366;" vertex="1" parent="1">
47 <mxGeometry x="60" y="520" width="220" height="60" as="geometry"/>
48 </mxCell>
49 <mxCell id="ptylib" value="github.com/creack/pty&#10;(pseudo-terminal allocation)" style="rounded=1;whiteSpace=wrap;html=1;fillColor=#ffe6cc;strokeColor=#d79b00;" vertex="1" parent="1">
50 <mxGeometry x="320" y="560" width="230" height="60" as="geometry"/>
51 </mxCell>
52 <mxCell id="e1" style="edgeStyle=orthogonalEdgeStyle;html=1;" parent="1" source="cmdori" target="config" edge="1">
53 <mxGeometry relative="1" as="geometry"/>
54 </mxCell>
55 <mxCell id="e2" style="edgeStyle=orthogonalEdgeStyle;html=1;" parent="1" source="cmdori" target="httpserver" edge="1">
56 <mxGeometry relative="1" as="geometry"/>
57 </mxCell>
58 <mxCell id="e3" style="edgeStyle=orthogonalEdgeStyle;html=1;" parent="1" source="cmdori" target="bridge" edge="1">
59 <mxGeometry relative="1" as="geometry"/>
60 </mxCell>
61 <mxCell id="e4" style="edgeStyle=orthogonalEdgeStyle;html=1;" parent="1" source="cmdori" target="agentpkg" edge="1">
62 <mxGeometry relative="1" as="geometry"/>
63 </mxCell>
64 <mxCell id="e5" style="edgeStyle=orthogonalEdgeStyle;html=1;" parent="1" source="cmdori" target="uiembed" edge="1">
65 <mxGeometry relative="1" as="geometry"/>
66 </mxCell>
67 <mxCell id="e6" style="edgeStyle=orthogonalEdgeStyle;html=1;" parent="1" source="cmdmock" target="mockagent" edge="1">
68 <mxGeometry relative="1" as="geometry"/>
69 </mxCell>
70 <mxCell id="e7" style="edgeStyle=orthogonalEdgeStyle;html=1;" parent="1" source="mockagent" target="acpsdk" edge="1">
71 <mxGeometry relative="1" as="geometry"/>
72 </mxCell>
73 <mxCell id="e8" style="edgeStyle=orthogonalEdgeStyle;html=1;" parent="1" source="agentpkg" target="acpsdk" edge="1">
74 <mxGeometry relative="1" as="geometry"/>
75 </mxCell>
76 <mxCell id="e9" style="edgeStyle=orthogonalEdgeStyle;html=1;" parent="1" source="bridge" target="acpsdk" edge="1">
77 <mxGeometry relative="1" as="geometry"/>
78 </mxCell>
79 <mxCell id="e10" style="edgeStyle=orthogonalEdgeStyle;html=1;" parent="1" source="bridge" target="wslib" edge="1">
80 <mxGeometry relative="1" as="geometry"/>
81 </mxCell>
82 <mxCell id="e11" style="edgeStyle=orthogonalEdgeStyle;html=1;" edge="1" parent="1" source="cmdori" target="filespkg">
83 <mxGeometry relative="1" as="geometry"/>
84 </mxCell>
85 <mxCell id="e12" style="edgeStyle=orthogonalEdgeStyle;html=1;" edge="1" parent="1" source="cmdori" target="terminalpkg">
86 <mxGeometry relative="1" as="geometry"/>
87 </mxCell>
88 <mxCell id="e13" style="edgeStyle=orthogonalEdgeStyle;html=1;" edge="1" parent="1" source="terminalpkg" target="ptylib">
89 <mxGeometry relative="1" as="geometry"/>
90 </mxCell>
91 <mxCell id="e14" style="edgeStyle=orthogonalEdgeStyle;html=1;" edge="1" parent="1" source="terminalpkg" target="wslib">
92 <mxGeometry relative="1" as="geometry"/>
93 </mxCell>
94 <mxCell id="r1" value="build embedded via go:embed" style="edgeStyle=orthogonalEdgeStyle;html=1;dashed=1;" parent="1" source="spa" target="uiembed" edge="1">
95 <mxGeometry relative="1" as="geometry"/>
96 </mxCell>
97 <mxCell id="r4" value="HTTP /api/files, /api/file" style="edgeStyle=orthogonalEdgeStyle;html=1;dashed=1;" edge="1" parent="1" source="spa" target="filespkg">
98 <mxGeometry relative="1" as="geometry"/>
99 </mxCell>
100 <mxCell id="r5" value="WebSocket /ws/terminal" style="edgeStyle=orthogonalEdgeStyle;html=1;dashed=1;" edge="1" parent="1" source="spa" target="terminalpkg">
101 <mxGeometry relative="1" as="geometry"/>
102 </mxCell>
103 <mxCell id="r2" value="WebSocket /ws (runtime)" style="edgeStyle=orthogonalEdgeStyle;html=1;dashed=1;" parent="1" source="spa" target="bridge" edge="1">
104 <mxGeometry relative="1" as="geometry"/>
105 </mxCell>
106 <mxCell id="r3" value="spawns (runtime, default --agent-cmd)" style="edgeStyle=orthogonalEdgeStyle;html=1;dashed=1;" parent="1" source="agentpkg" target="adapter" edge="1">
107 <mxGeometry relative="1" as="geometry"/>
108 </mxCell>
109 </root>
110 </mxGraphModel>
111 </diagram>
112</mxfile>