forked from bots-garden/ori
| 🛟 Updated. | 1 | <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="<mxfile><diagram name="Ori Architecture" id="diagram-1">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=</diagram></mxfile>"> |
| 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 | |
| 12 | React 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 | |
| 52 | Serves 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 | |
| 91 | ACP session | |
| 92 | lifecycle | |
| 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 | |
| 110 | Workspace | |
| 111 | file 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 | |
| 129 | PTY per | |
| 130 | connection | |
| 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 + | |
| 227 | permission | |
| 228 | responses | |
| 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 | |
| 247 | events (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 | |
| 266 | lifecycle | |
| 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 | |
| 285 | JSON-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 + | |
| 304 | permissions | |
| 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> |