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

ori-architecture.drawio.svg · 359 lines · 29.7 KBXML Blame HistoryRaw
🛟 Updated. b6cd929 k33g 21h ago1<svg host="65bd71144e" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" version="1.1" width="1182px" height="602px" viewBox="-0.5 -0.5 1182 602" content="&lt;mxfile&gt;&lt;diagram name=&quot;Ori Architecture&quot; id=&quot;diagram-1&quot;&gt;7Vpbc9o4FP41nkkfwsh38xgoSbsz3TIlO2mfOsIW4I2xvLIgsL9+JVvyTTYF1pBmJkPGsY6OZUnfp3MDzRyvdw8EJqsvOECRZoBgp5kfNcPQdXfI/nHJPpfYnpcLliQMhFIpmIX/IiEEQroJA5TWFCnGEQ2TutDHcYx8WpNBQvBLXW2Bo/pbE7hEimDmw0iVPoUBXcl1OcOy4xMKlyvxas9w8o41lMpiJekKBvilIjInmjkmGNP8br0bo4hvntyX/Ln7jt5iYgTF9JgHzPyBLYw2Ym0jvj2IaIYD14lmjjTDZNtujr4hyHbSALPpnZg63cv9IHgTB4gPqTNNSHwBmc7WM3pZhRTNEuhzyQsjBJOt6DoS2oswisY4wiQbylwE7DNn8pQS/IwqPbptAIP3LHBMu+Tyxa5si0mCYkQJmJGtrblbYgO3iFC0q4jE7j0gvEaU7JmK6JVA7uvNl5IWhWxVYYQuqQwFFZfFyCVa7EYA1g6epYD312fWHuN1gmO2pFQBURsb2shlOndLvmQDTGHMz2aX2hMmz2kG3S9V78OIaz0ShLqVvuAY+pjdTIKQYpVkheIjIuswhny1NzvKGoO/0w+X5B3y0DyAvfNOvxLvdPtY4tk9EM9WiLeiNGFWY9tiOGZcnErLwd4+yq73zAhfEM8CnaPxLCzPq+BpOcYvDYnXguewBzgdBc45c7vLA+f4Cc1n2H9G3IRoE0PzXM2zuFkZT7sfmmxzmzMnGAY+TGm36pQf/zQNccwajBU0jJfd2p/ClBkTvpkEJRHcv/Oqyiu9biisI4mlmz0wy1WYBXPH04Ay4w1IkYC80RuFC+Tvfe5f3oGVwJpu3QOYjgqsbtqXsRiegivbTaTGG5X4odGzyMOFu+nnd1BLUG3HroMKrgjqUAGVFlFYA73p4w++1BZvL1Ku7Bi/49p1WK1rHlZdV4DN7a1IApyIvWw0J3xAw1nyxo0fwU2Abn2Wut9CP/nQqtUq/GP29c/bb1M2K4CzcJBRIAhxq64w+D83SQApNweFS0+KAOAnQf9sEA8WXiPpBMAx7u9VOtXkV6eTBxpZp6nSyQKXcuq6ofDpged0c8giwjjIIjwePqZ5rJdXE8qQkYsplsGiZMe4Ghhm0R4QoQLI2VE8BrPJCDuDgvIlXIPhnvmVImasMCkVc5QD0RXXfIGh0PTZyIPXodlJOaZ9VG0jgOmqmHYPnGsknHabBdPbAkmnD8qpdSqdQQUiRhitvSaFGAPlDmFCV3iJmSeblNJRHdkKbOpmHgZMAmMdALATgRRviC/mLFZJIVkioSV8Al/NQZQIiiANt/UC5f/acrW6ZAzqqV8zH2vN6X8zHNAupN/F+Pz+Bz9AA9eofUzR+XEnjlfW2MtGzLbye7WRD2IC1xkaxdWVveUoWUsOcy4jnFdjhFr2MTkjEoLXSVYJ4KWdBimSSibf6CIoTZhVRm+UM/ZZJHFs02M5ubwO+yCJdT5JhHG/BQMArHruIU3P0TwSo09xmLltqYIXixRRhWjFJI7jnlqjsgZlyaCIIBsUQ9u8DA5u8sqQWkK+LNVaw8QWqhV6x3ntKviOCr51MvicjXXwwTng3xHCq2+FQsKpkLZwQ6ZFViOOtRvfVp2mz27yGVyUiWpNyx5o7aXP7sLVb2rhwMDwbFe3ymvF5OlHGryBNXSMyp9Zs4B9GLwWzruv5hXVWpgzqGS9dUaU2fHbIEQfLs/uA3JXhVzWNY61c4zcYDisGZBb+ywnd6qdcxv5uilcbZeda+obQ1u7up1Ty4HuoJaNHw73rh3VXcHVSsJdNBo/j2DKzxAOO1LHPqhfJ9gZ5JHTaXxBwCQ4eVvE6N2oVcnjnWrAgFU3X+ZZYZpCB93r+NpBDpGfAvFUG696NT2GWrBmiGQqn9mzX98WgYrQSnrPU2KpC3jSlmxxeKXgiTXLn7blxCh/IGhO/gM=&lt;/diagram&gt;&lt;/mxfile&gt;">
2 <defs/>
3 <g>
4 <rect x="1" y="1" width="220" height="110" rx="13.2" ry="13.2" fill="#fdfdfb" stroke="#15202b" stroke-width="2" pointer-events="all"/>
5 <g transform="translate(-0.5 -0.5)">
6 <switch>
7 <foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;">
8 <div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 218px; height: 1px; padding-top: 56px; margin-left: 2px;">
9 <div data-drawio-colors="color: #15202b; " style="box-sizing: border-box; font-size: 0px; text-align: center;">
10 <div style="display: inline-block; font-size: 17px; font-family: Helvetica; color: rgb(21, 32, 43); line-height: 1.2; pointer-events: all; white-space: normal; overflow-wrap: normal;">
11 Browser
12React SPA
13 </div>
14 </div>
15 </div>
16 </foreignObject>
17 <text x="111" y="61" fill="#15202b" font-family="Helvetica" font-size="17px" text-anchor="middle">
18 Browser...
19 </text>
20 </switch>
21 </g>
22 <rect x="1" y="131" width="220" height="150" rx="18" ry="18" fill="#e8ebda" stroke="#15202b" stroke-width="2" pointer-events="all"/>
23 <g transform="translate(-0.5 -0.5)">
24 <switch>
25 <foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;">
26 <div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 218px; height: 1px; padding-top: 206px; margin-left: 2px;">
27 <div data-drawio-colors="color: #15202b; " style="box-sizing: border-box; font-size: 0px; text-align: center;">
28 <div style="display: inline-block; font-size: 17px; font-family: Helvetica; color: rgb(21, 32, 43); line-height: 1.2; pointer-events: all; font-weight: bold; white-space: normal; overflow-wrap: normal;">
29 UI Components
30· Agent Panel
31· Workspace Panel
32· File Tree
33· Monaco Editor
34· Terminal (xterm.js)
35 </div>
36 </div>
37 </div>
38 </foreignObject>
39 <text x="111" y="211" fill="#15202b" font-family="Helvetica" font-size="17px" text-anchor="middle" font-weight="bold">
40 UI Components...
41 </text>
42 </switch>
43 </g>
44 <rect x="443" y="1" width="280" height="90" rx="10.8" ry="10.8" fill="#15202b" stroke="#15202b" stroke-width="2" pointer-events="all"/>
45 <g transform="translate(-0.5 -0.5)">
46 <switch>
47 <foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;">
48 <div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 278px; height: 1px; padding-top: 46px; margin-left: 444px;">
49 <div data-drawio-colors="color: #fdfdfb; " style="box-sizing: border-box; font-size: 0px; text-align: center;">
50 <div style="display: inline-block; font-size: 17px; font-family: Helvetica; color: rgb(253, 253, 251); line-height: 1.2; pointer-events: all; font-weight: bold; white-space: normal; overflow-wrap: normal;">
51 httpserver
52Serves SPA + /ws
53 </div>
54 </div>
55 </div>
56 </foreignObject>
57 <text x="583" y="51" fill="#fdfdfb" font-family="Helvetica" font-size="17px" text-anchor="middle" font-weight="bold">
58 httpserver...
59 </text>
60 </switch>
61 </g>
62 <rect x="442" y="121" width="280" height="130" rx="15.6" ry="15.6" fill="#15202b" stroke="#15202b" stroke-width="2" pointer-events="all"/>
63 <g transform="translate(-0.5 -0.5)">
64 <switch>
65 <foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;">
66 <div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 278px; height: 1px; padding-top: 186px; margin-left: 443px;">
67 <div data-drawio-colors="color: #fdfdfb; " style="box-sizing: border-box; font-size: 0px; text-align: center;">
68 <div style="display: inline-block; font-size: 17px; font-family: Helvetica; color: rgb(253, 253, 251); line-height: 1.2; pointer-events: all; font-weight: bold; white-space: normal; overflow-wrap: normal;">
69 bridge
70· WebSocket ⇄ ACP
71· Event broadcast
72· Permission routing
73· History replay
74 </div>
75 </div>
76 </div>
77 </foreignObject>
78 <text x="582" y="191" fill="#fdfdfb" font-family="Helvetica" font-size="17px" text-anchor="middle" font-weight="bold">
79 bridge...
80 </text>
81 </switch>
82 </g>
83 <rect x="351" y="341" width="135" height="90" rx="10.8" ry="10.8" fill="#15202b" stroke="#15202b" stroke-width="2" pointer-events="all"/>
84 <g transform="translate(-0.5 -0.5)">
85 <switch>
86 <foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;">
87 <div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 133px; height: 1px; padding-top: 386px; margin-left: 352px;">
88 <div data-drawio-colors="color: #fdfdfb; " style="box-sizing: border-box; font-size: 0px; text-align: center;">
89 <div style="display: inline-block; font-size: 17px; font-family: Helvetica; color: rgb(253, 253, 251); line-height: 1.2; pointer-events: all; font-weight: bold; white-space: normal; overflow-wrap: normal;">
90 agent
91ACP session
92lifecycle
93 </div>
94 </div>
95 </div>
96 </foreignObject>
97 <text x="419" y="391" fill="#fdfdfb" font-family="Helvetica" font-size="17px" text-anchor="middle" font-weight="bold">
98 agent...
99 </text>
100 </switch>
101 </g>
102 <rect x="546" y="281" width="135" height="90" rx="10.8" ry="10.8" fill="#15202b" stroke="#15202b" stroke-width="2" pointer-events="all"/>
103 <g transform="translate(-0.5 -0.5)">
104 <switch>
105 <foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;">
106 <div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 133px; height: 1px; padding-top: 326px; margin-left: 547px;">
107 <div data-drawio-colors="color: #fdfdfb; " style="box-sizing: border-box; font-size: 0px; text-align: center;">
108 <div style="display: inline-block; font-size: 17px; font-family: Helvetica; color: rgb(253, 253, 251); line-height: 1.2; pointer-events: all; font-weight: bold; white-space: normal; overflow-wrap: normal;">
109 files
110Workspace
111file API
112 </div>
113 </div>
114 </div>
115 </foreignObject>
116 <text x="614" y="331" fill="#fdfdfb" font-family="Helvetica" font-size="17px" text-anchor="middle" font-weight="bold">
117 files...
118 </text>
119 </switch>
120 </g>
121 <rect x="351" y="441" width="135" height="90" rx="10.8" ry="10.8" fill="#15202b" stroke="#15202b" stroke-width="2" pointer-events="all"/>
122 <g transform="translate(-0.5 -0.5)">
123 <switch>
124 <foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;">
125 <div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 133px; height: 1px; padding-top: 486px; margin-left: 352px;">
126 <div data-drawio-colors="color: #fdfdfb; " style="box-sizing: border-box; font-size: 0px; text-align: center;">
127 <div style="display: inline-block; font-size: 17px; font-family: Helvetica; color: rgb(253, 253, 251); line-height: 1.2; pointer-events: all; font-weight: bold; white-space: normal; overflow-wrap: normal;">
128 terminal
129PTY per
130connection
131 </div>
132 </div>
133 </div>
134 </foreignObject>
135 <text x="419" y="491" fill="#fdfdfb" font-family="Helvetica" font-size="17px" text-anchor="middle" font-weight="bold">
136 terminal...
137 </text>
138 </switch>
139 </g>
140 <rect x="781" y="211" width="400" height="130" rx="15.6" ry="15.6" fill="#fdfdfb" stroke="#0062ff" stroke-width="2" pointer-events="all"/>
141 <g transform="translate(-0.5 -0.5)">
142 <switch>
143 <foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;">
144 <div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 398px; height: 1px; padding-top: 276px; margin-left: 782px;">
145 <div data-drawio-colors="color: #0062FF; " style="box-sizing: border-box; font-size: 0px; text-align: center;">
146 <div style="display: inline-block; font-size: 17px; font-family: Helvetica; color: rgb(0, 98, 255); line-height: 1.2; pointer-events: all; font-weight: bold; white-space: normal; overflow-wrap: normal;">
147 ACP Agent
148 <br/>
149 (claude-code-acp)
150 <br/>
151 <br/>
152 JSON-RPC over stdio
153 <br/>
154 session_update · permission_request
155 </div>
156 </div>
157 </div>
158 </foreignObject>
159 <text x="981" y="281" fill="#0062FF" font-family="Helvetica" font-size="17px" text-anchor="middle" font-weight="bold">
160 ACP Agent...
161 </text>
162 </switch>
163 </g>
164 <rect x="1" y="541" width="1180" height="60" rx="7.2" ry="7.2" fill="#fdfdfb" stroke="#15202b" stroke-width="2" stroke-dasharray="6 6" pointer-events="all"/>
165 <g transform="translate(-0.5 -0.5)">
166 <switch>
167 <foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;">
168 <div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 1178px; height: 1px; padding-top: 571px; margin-left: 2px;">
169 <div data-drawio-colors="color: #15202b; " style="box-sizing: border-box; font-size: 0px; text-align: center;">
170 <div style="display: inline-block; font-size: 15px; font-family: Helvetica; color: rgb(21, 32, 43); line-height: 1.2; pointer-events: all; white-space: normal; overflow-wrap: normal;">
171 Go backend bridges browser WebSockets to ACP stdio, broadcasting agent updates to all connected browsers while routing permissions back to the waiting call.
172 </div>
173 </div>
174 </div>
175 </foreignObject>
176 <text x="591" y="576" fill="#15202b" font-family="Helvetica" font-size="15px" text-anchor="middle">
177 Go backend bridges browser WebSockets to ACP stdio, broadcasting agent updates to all connected browsers while routing permissions back to the waiting call.
178 </text>
179 </switch>
180 </g>
181 <path d="M 221 56 L 322 56 Q 332 56 332 51 L 332 48.5 Q 332 46 342 46 L 434.76 46" fill="none" stroke="#15202b" stroke-width="2" stroke-miterlimit="10" pointer-events="stroke"/>
182 <path d="M 440.76 46 L 432.76 50 L 434.76 46 L 432.76 42 Z" fill="#15202b" stroke="#15202b" stroke-width="2" stroke-miterlimit="10" pointer-events="all"/>
183 <g transform="translate(-0.5 -0.5)">
184 <switch>
185 <foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;">
186 <div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 1px; height: 1px; padding-top: 51px; margin-left: 332px;">
187 <div data-drawio-colors="color: #15202b; background-color: rgb(255, 255, 255); " style="box-sizing: border-box; font-size: 0px; text-align: center;">
188 <div style="display: inline-block; font-size: 14px; font-family: Helvetica; color: rgb(21, 32, 43); line-height: 1.2; pointer-events: all; background-color: rgb(255, 255, 255); white-space: nowrap;">
189 1. load SPA
190 </div>
191 </div>
192 </div>
193 </foreignObject>
194 <text x="332" y="55" fill="#15202b" font-family="Helvetica" font-size="14px" text-anchor="middle">
195 1. load SPA
196 </text>
197 </switch>
198 </g>
199 <path d="M 221 81 L 321.5 81 Q 331.5 81 331.5 91 L 331.5 151 Q 331.5 161 341.5 161 L 433.76 161" fill="none" stroke="#15202b" stroke-width="2" stroke-miterlimit="10" pointer-events="stroke"/>
200 <path d="M 439.76 161 L 431.76 165 L 433.76 161 L 431.76 157 Z" fill="#15202b" stroke="#15202b" stroke-width="2" stroke-miterlimit="10" pointer-events="all"/>
201 <g transform="translate(-0.5 -0.5)">
202 <switch>
203 <foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;">
204 <div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 1px; height: 1px; padding-top: 122px; margin-left: 332px;">
205 <div data-drawio-colors="color: #15202b; background-color: rgb(255, 255, 255); " style="box-sizing: border-box; font-size: 0px; text-align: center;">
206 <div style="display: inline-block; font-size: 14px; font-family: Helvetica; color: rgb(21, 32, 43); line-height: 1.2; pointer-events: all; background-color: rgb(255, 255, 255); white-space: nowrap;">
207 2. WebSocket
208/ws
209 </div>
210 </div>
211 </div>
212 </foreignObject>
213 <text x="332" y="126" fill="#15202b" font-family="Helvetica" font-size="14px" text-anchor="middle">
214 2. WebSocket...
215 </text>
216 </switch>
217 </g>
218 <path d="M 221 206 L 433.76 206" fill="none" stroke="#15202b" stroke-width="2" stroke-miterlimit="10" pointer-events="stroke"/>
219 <path d="M 439.76 206 L 431.76 210 L 433.76 206 L 431.76 202 Z" fill="#15202b" stroke="#15202b" stroke-width="2" stroke-miterlimit="10" pointer-events="all"/>
220 <g transform="translate(-0.5 -0.5)">
221 <switch>
222 <foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;">
223 <div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 1px; height: 1px; padding-top: 181px; margin-left: 331px;">
224 <div data-drawio-colors="color: #15202b; background-color: rgb(255, 255, 255); " style="box-sizing: border-box; font-size: 0px; text-align: center;">
225 <div style="display: inline-block; font-size: 14px; font-family: Helvetica; color: rgb(21, 32, 43); line-height: 1.2; pointer-events: all; background-color: rgb(255, 255, 255); white-space: nowrap;">
226 3. prompt +
227permission
228responses
229 </div>
230 </div>
231 </div>
232 </foreignObject>
233 <text x="331" y="185" fill="#15202b" font-family="Helvetica" font-size="14px" text-anchor="middle">
234 3. prompt +...
235 </text>
236 </switch>
237 </g>
238 <path d="M 442 231 L 331 231 Q 321 231 311 231 L 229.24 231" fill="none" stroke="#0062ff" stroke-width="2" stroke-miterlimit="10" stroke-dasharray="6 6" pointer-events="stroke"/>
239 <path d="M 223.24 231 L 231.24 227 L 229.24 231 L 231.24 235 Z" fill="#0062ff" stroke="#0062ff" stroke-width="2" stroke-miterlimit="10" pointer-events="all"/>
240 <g transform="translate(-0.5 -0.5)">
241 <switch>
242 <foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;">
243 <div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 1px; height: 1px; padding-top: 251px; margin-left: 374px;">
244 <div data-drawio-colors="color: #0062FF; background-color: rgb(255, 255, 255); " style="box-sizing: border-box; font-size: 0px; text-align: center;">
245 <div style="display: inline-block; font-size: 14px; font-family: Helvetica; color: rgb(0, 98, 255); line-height: 1.2; pointer-events: all; background-color: rgb(255, 255, 255); white-space: nowrap;">
246 4. session_update
247events (replay)
248 </div>
249 </div>
250 </div>
251 </foreignObject>
252 <text x="374" y="255" fill="#0062FF" font-family="Helvetica" font-size="14px" text-anchor="middle">
253 4. session_update...
254 </text>
255 </switch>
256 </g>
257 <path d="M 522 251 L 522 286 Q 522 296 512 296 L 428 296 Q 418 296 418 306 L 418 332.76" fill="none" stroke="#15202b" stroke-width="2" stroke-miterlimit="10" pointer-events="stroke"/>
258 <path d="M 418 338.76 L 414 330.76 L 418 332.76 L 422 330.76 Z" fill="#15202b" stroke="#15202b" stroke-width="2" stroke-miterlimit="10" pointer-events="all"/>
259 <g transform="translate(-0.5 -0.5)">
260 <switch>
261 <foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;">
262 <div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 1px; height: 1px; padding-top: 296px; margin-left: 470px;">
263 <div data-drawio-colors="color: #15202b; background-color: rgb(255, 255, 255); " style="box-sizing: border-box; font-size: 0px; text-align: center;">
264 <div style="display: inline-block; font-size: 14px; font-family: Helvetica; color: rgb(21, 32, 43); line-height: 1.2; pointer-events: all; background-color: rgb(255, 255, 255); white-space: nowrap;">
265 5. ACP
266lifecycle
267 </div>
268 </div>
269 </div>
270 </foreignObject>
271 <text x="470" y="300" fill="#15202b" font-family="Helvetica" font-size="14px" text-anchor="middle">
272 5. ACP...
273 </text>
274 </switch>
275 </g>
276 <path d="M 486 386 L 486 336 Q 486 326 496 326 L 671 326 Q 681 326 681 316 L 681 286 Q 681 276 691 276 L 772.76 276" fill="none" stroke="#15202b" stroke-width="2" stroke-miterlimit="10" pointer-events="stroke"/>
277 <path d="M 778.76 276 L 770.76 280 L 772.76 276 L 770.76 272 Z" fill="#15202b" stroke="#15202b" stroke-width="2" stroke-miterlimit="10" pointer-events="all"/>
278 <g transform="translate(-0.5 -0.5)">
279 <switch>
280 <foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;">
281 <div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 1px; height: 1px; padding-top: 381px; margin-left: 671px;">
282 <div data-drawio-colors="color: #15202b; background-color: rgb(255, 255, 255); " style="box-sizing: border-box; font-size: 0px; text-align: center;">
283 <div style="display: inline-block; font-size: 14px; font-family: Helvetica; color: rgb(21, 32, 43); line-height: 1.2; pointer-events: all; background-color: rgb(255, 255, 255); white-space: nowrap;">
284 6. stdio
285JSON-RPC
286 </div>
287 </div>
288 </div>
289 </foreignObject>
290 <text x="671" y="385" fill="#15202b" font-family="Helvetica" font-size="14px" text-anchor="middle">
291 6. stdio...
292 </text>
293 </switch>
294 </g>
295 <path d="M 981 211 L 981 191 Q 981 181 971 181 L 730.24 181" fill="none" stroke="#0062ff" stroke-width="2" stroke-miterlimit="10" stroke-dasharray="6 6" pointer-events="stroke"/>
296 <path d="M 724.24 181 L 732.24 177 L 730.24 181 L 732.24 185 Z" fill="#0062ff" stroke="#0062ff" stroke-width="2" stroke-miterlimit="10" pointer-events="all"/>
297 <g transform="translate(-0.5 -0.5)">
298 <switch>
299 <foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;">
300 <div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 1px; height: 1px; padding-top: 181px; margin-left: 866px;">
301 <div data-drawio-colors="color: #0062FF; background-color: rgb(255, 255, 255); " style="box-sizing: border-box; font-size: 0px; text-align: center;">
302 <div style="display: inline-block; font-size: 14px; font-family: Helvetica; color: rgb(0, 98, 255); line-height: 1.2; pointer-events: all; background-color: rgb(255, 255, 255); white-space: nowrap;">
303 7. updates +
304permissions
305 </div>
306 </div>
307 </div>
308 </foreignObject>
309 <text x="866" y="185" fill="#0062FF" font-family="Helvetica" font-size="14px" text-anchor="middle">
310 7. updates +...
311 </text>
312 </switch>
313 </g>
314 <path d="M 166 281 L 346 281 Q 356 281 356 291 L 356 316 Q 356 326 366 326 L 537.76 326" fill="none" stroke="#0062ff" stroke-width="2" stroke-miterlimit="10" stroke-dasharray="6 6" pointer-events="stroke"/>
315 <path d="M 543.76 326 L 535.76 330 L 537.76 326 L 535.76 322 Z" fill="#0062ff" stroke="#0062ff" stroke-width="2" stroke-miterlimit="10" pointer-events="all"/>
316 <g transform="translate(-0.5 -0.5)">
317 <switch>
318 <foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;">
319 <div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 1px; height: 1px; padding-top: 312px; margin-left: 326px;">
320 <div data-drawio-colors="color: #0062FF; background-color: rgb(255, 255, 255); " style="box-sizing: border-box; font-size: 0px; text-align: center;">
321 <div style="display: inline-block; font-size: 14px; font-family: Helvetica; color: rgb(0, 98, 255); line-height: 1.2; pointer-events: all; background-color: rgb(255, 255, 255); white-space: nowrap;">
322 file ops
323 </div>
324 </div>
325 </div>
326 </foreignObject>
327 <text x="326" y="316" fill="#0062FF" font-family="Helvetica" font-size="14px" text-anchor="middle">
328 file ops
329 </text>
330 </switch>
331 </g>
332 <path d="M 111 281 L 111 476 Q 111 486 121 486 L 342.76 486" fill="none" stroke="#0062ff" stroke-width="2" stroke-miterlimit="10" stroke-dasharray="6 6" pointer-events="stroke"/>
333 <path d="M 348.76 486 L 340.76 490 L 342.76 486 L 340.76 482 Z" fill="#0062ff" stroke="#0062ff" stroke-width="2" stroke-miterlimit="10" pointer-events="all"/>
334 <g transform="translate(-0.5 -0.5)">
335 <switch>
336 <foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;">
337 <div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 1px; height: 1px; padding-top: 486px; margin-left: 129px;">
338 <div data-drawio-colors="color: #0062FF; background-color: rgb(255, 255, 255); " style="box-sizing: border-box; font-size: 0px; text-align: center;">
339 <div style="display: inline-block; font-size: 14px; font-family: Helvetica; color: rgb(0, 98, 255); line-height: 1.2; pointer-events: all; background-color: rgb(255, 255, 255); white-space: nowrap;">
340 shell I/O
341 </div>
342 </div>
343 </div>
344 </foreignObject>
345 <text x="129" y="490" fill="#0062FF" font-family="Helvetica" font-size="14px" text-anchor="middle">
346 shell I/O
347 </text>
348 </switch>
349 </g>
350 </g>
351 <switch>
352 <g requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"/>
353 <a transform="translate(0,-5)" xlink:href="https://www.diagrams.net/doc/faq/svg-export-text-problems" target="_blank">
354 <text text-anchor="middle" font-size="10px" x="50%" y="100%">
355 Text is not SVG - cannot display
356 </text>
357 </a>
358 </switch>
359</svg>