Files
paseo/docs/diagrams/system.svg

1 line
25 KiB
XML

<svg id="my-svg" width="100%" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" class="flowchart" style="max-width: 2019.14px; background-color: white;" viewBox="0 0 2019.140625 578" role="graphics-document document" aria-roledescription="flowchart-v2"><style>#my-svg{font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;fill:#333;}@keyframes edge-animation-frame{from{stroke-dashoffset:0;}}@keyframes dash{to{stroke-dashoffset:0;}}#my-svg .edge-animation-slow{stroke-dasharray:9,5!important;stroke-dashoffset:900;animation:dash 50s linear infinite;stroke-linecap:round;}#my-svg .edge-animation-fast{stroke-dasharray:9,5!important;stroke-dashoffset:900;animation:dash 20s linear infinite;stroke-linecap:round;}#my-svg .error-icon{fill:#552222;}#my-svg .error-text{fill:#552222;stroke:#552222;}#my-svg .edge-thickness-normal{stroke-width:1px;}#my-svg .edge-thickness-thick{stroke-width:3.5px;}#my-svg .edge-pattern-solid{stroke-dasharray:0;}#my-svg .edge-thickness-invisible{stroke-width:0;fill:none;}#my-svg .edge-pattern-dashed{stroke-dasharray:3;}#my-svg .edge-pattern-dotted{stroke-dasharray:2;}#my-svg .marker{fill:#333333;stroke:#333333;}#my-svg .marker.cross{stroke:#333333;}#my-svg svg{font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;}#my-svg p{margin:0;}#my-svg .label{font-family:"trebuchet ms",verdana,arial,sans-serif;color:#333;}#my-svg .cluster-label text{fill:#333;}#my-svg .cluster-label span{color:#333;}#my-svg .cluster-label span p{background-color:transparent;}#my-svg .label text,#my-svg span{fill:#333;color:#333;}#my-svg .node rect,#my-svg .node circle,#my-svg .node ellipse,#my-svg .node polygon,#my-svg .node path{fill:#ECECFF;stroke:#9370DB;stroke-width:1px;}#my-svg .rough-node .label text,#my-svg .node .label text,#my-svg .image-shape .label,#my-svg .icon-shape .label{text-anchor:middle;}#my-svg .node .katex path{fill:#000;stroke:#000;stroke-width:1px;}#my-svg .rough-node .label,#my-svg .node .label,#my-svg .image-shape .label,#my-svg .icon-shape .label{text-align:center;}#my-svg .node.clickable{cursor:pointer;}#my-svg .root .anchor path{fill:#333333!important;stroke-width:0;stroke:#333333;}#my-svg .arrowheadPath{fill:#333333;}#my-svg .edgePath .path{stroke:#333333;stroke-width:1px;}#my-svg .flowchart-link{stroke:#333333;fill:none;}#my-svg .edgeLabel{background-color:rgba(232,232,232, 0.8);text-align:center;}#my-svg .edgeLabel p{background-color:rgba(232,232,232, 0.8);}#my-svg .edgeLabel rect{opacity:0.5;background-color:rgba(232,232,232, 0.8);fill:rgba(232,232,232, 0.8);}#my-svg .labelBkg{background-color:rgba(232, 232, 232, 0.5);}#my-svg .cluster rect{fill:#ffffde;stroke:#aaaa33;stroke-width:1px;}#my-svg .cluster text{fill:#333;}#my-svg .cluster span{color:#333;}#my-svg div.mermaidTooltip{position:absolute;text-align:center;max-width:200px;padding:2px;font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:12px;background:hsl(80, 100%, 96.2745098039%);border:1px solid #aaaa33;border-radius:2px;pointer-events:none;z-index:100;}#my-svg .flowchartTitleText{text-anchor:middle;font-size:18px;fill:#333;}#my-svg rect.text{fill:none;stroke-width:0;}#my-svg .icon-shape,#my-svg .image-shape{background-color:rgba(232,232,232, 0.8);text-align:center;}#my-svg .icon-shape p,#my-svg .image-shape p{background-color:rgba(232,232,232, 0.8);padding:2px;}#my-svg .icon-shape .label rect,#my-svg .image-shape .label rect{opacity:0.5;background-color:rgba(232,232,232, 0.8);fill:rgba(232,232,232, 0.8);}#my-svg .label-icon{display:inline-block;height:1em;overflow:visible;vertical-align:-0.125em;}#my-svg .node .label-icon path{fill:currentColor;stroke:revert;stroke-width:revert;}#my-svg .node .neo-node{stroke:#9370DB;}#my-svg [data-look="neo"].node rect,#my-svg [data-look="neo"].cluster rect,#my-svg [data-look="neo"].node polygon{stroke:#9370DB;filter:drop-shadow(1px 2px 2px rgba(185, 185, 185, 1));}#my-svg [data-look="neo"].swimlane.cluster rect{filter:none;}#my-svg [data-look="neo"].node path{stroke:#9370DB;stroke-width:1px;}#my-svg [data-look="neo"].node .outer-path{filter:drop-shadow(1px 2px 2px rgba(185, 185, 185, 1));}#my-svg [data-look="neo"].node .neo-line path{stroke:#9370DB;filter:none;}#my-svg [data-look="neo"].node circle{stroke:#9370DB;filter:drop-shadow(1px 2px 2px rgba(185, 185, 185, 1));}#my-svg [data-look="neo"].node circle .state-start{fill:#000000;}#my-svg [data-look="neo"].icon-shape .icon{fill:#9370DB;filter:drop-shadow(1px 2px 2px rgba(185, 185, 185, 1));}#my-svg [data-look="neo"].icon-shape .icon-neo path{stroke:#9370DB;filter:drop-shadow(1px 2px 2px rgba(185, 185, 185, 1));}#my-svg :root{--mermaid-font-family:"trebuchet ms",verdana,arial,sans-serif;}</style><g><marker id="my-svg_flowchart-v2-pointEnd" class="marker flowchart-v2" viewBox="0 0 10 10" refX="5" refY="5" markerUnits="userSpaceOnUse" markerWidth="8" markerHeight="8" orient="auto"><path d="M 0 0 L 10 5 L 0 10 z" class="arrowMarkerPath" style="stroke-width: 1; stroke-dasharray: 1, 0;"/></marker><marker id="my-svg_flowchart-v2-pointStart" class="marker flowchart-v2" viewBox="0 0 10 10" refX="4.5" refY="5" markerUnits="userSpaceOnUse" markerWidth="8" markerHeight="8" orient="auto"><path d="M 0 5 L 10 10 L 10 0 z" class="arrowMarkerPath" style="stroke-width: 1; stroke-dasharray: 1, 0;"/></marker><marker id="my-svg_flowchart-v2-pointEnd-margin" class="marker flowchart-v2" viewBox="0 0 11.5 14" refX="11.5" refY="7" markerUnits="userSpaceOnUse" markerWidth="10.5" markerHeight="14" orient="auto"><path d="M 0 0 L 11.5 7 L 0 14 z" class="arrowMarkerPath" style="stroke-width: 0; stroke-dasharray: 1, 0;"/></marker><marker id="my-svg_flowchart-v2-pointStart-margin" class="marker flowchart-v2" viewBox="0 0 11.5 14" refX="1" refY="7" markerUnits="userSpaceOnUse" markerWidth="11.5" markerHeight="14" orient="auto"><polygon points="0,7 11.5,14 11.5,0" class="arrowMarkerPath" style="stroke-width: 0; stroke-dasharray: 1, 0;"/></marker><marker id="my-svg_flowchart-v2-circleEnd" class="marker flowchart-v2" viewBox="0 0 10 10" refX="11" refY="5" markerUnits="userSpaceOnUse" markerWidth="11" markerHeight="11" orient="auto"><circle cx="5" cy="5" r="5" class="arrowMarkerPath" style="stroke-width: 1; stroke-dasharray: 1, 0;"/></marker><marker id="my-svg_flowchart-v2-circleStart" class="marker flowchart-v2" viewBox="0 0 10 10" refX="-1" refY="5" markerUnits="userSpaceOnUse" markerWidth="11" markerHeight="11" orient="auto"><circle cx="5" cy="5" r="5" class="arrowMarkerPath" style="stroke-width: 1; stroke-dasharray: 1, 0;"/></marker><marker id="my-svg_flowchart-v2-circleEnd-margin" class="marker flowchart-v2" viewBox="0 0 10 10" refY="5" refX="12.25" markerUnits="userSpaceOnUse" markerWidth="14" markerHeight="14" orient="auto"><circle cx="5" cy="5" r="5" class="arrowMarkerPath" style="stroke-width: 0; stroke-dasharray: 1, 0;"/></marker><marker id="my-svg_flowchart-v2-circleStart-margin" class="marker flowchart-v2" viewBox="0 0 10 10" refX="-2" refY="5" markerUnits="userSpaceOnUse" markerWidth="14" markerHeight="14" orient="auto"><circle cx="5" cy="5" r="5" class="arrowMarkerPath" style="stroke-width: 0; stroke-dasharray: 1, 0;"/></marker><marker id="my-svg_flowchart-v2-crossEnd" class="marker cross flowchart-v2" viewBox="0 0 11 11" refX="12" refY="5.2" markerUnits="userSpaceOnUse" markerWidth="11" markerHeight="11" orient="auto"><path d="M 1,1 l 9,9 M 10,1 l -9,9" class="arrowMarkerPath" style="stroke-width: 2; stroke-dasharray: 1, 0;"/></marker><marker id="my-svg_flowchart-v2-crossStart" class="marker cross flowchart-v2" viewBox="0 0 11 11" refX="-1" refY="5.2" markerUnits="userSpaceOnUse" markerWidth="11" markerHeight="11" orient="auto"><path d="M 1,1 l 9,9 M 10,1 l -9,9" class="arrowMarkerPath" style="stroke-width: 2; stroke-dasharray: 1, 0;"/></marker><marker id="my-svg_flowchart-v2-crossEnd-margin" class="marker cross flowchart-v2" viewBox="0 0 15 15" refX="17.7" refY="7.5" markerUnits="userSpaceOnUse" markerWidth="12" markerHeight="12" orient="auto"><path d="M 1,1 L 14,14 M 1,14 L 14,1" class="arrowMarkerPath" style="stroke-width: 2.5;"/></marker><marker id="my-svg_flowchart-v2-crossStart-margin" class="marker cross flowchart-v2" viewBox="0 0 15 15" refX="-3.5" refY="7.5" markerUnits="userSpaceOnUse" markerWidth="12" markerHeight="12" orient="auto"><path d="M 1,1 L 14,14 M 1,14 L 14,1" class="arrowMarkerPath" style="stroke-width: 2.5; stroke-dasharray: 1, 0;"/></marker><g class="root"><g class="clusters"><g class="cluster" id="my-svg-LLM" data-look="classic"><rect style="" x="1339.359375" y="8" width="671.78125" height="172"/><g class="cluster-label" transform="translate(1633, 8)"><foreignObject width="84.5" height="24"><div xmlns="http://www.w3.org/1999/xhtml" style="display: table-cell; white-space: nowrap; line-height: 1.5;"><span class="nodeLabel"><p>LLM routing</p></span></div></foreignObject></g></g><g class="cluster" id="my-svg-S13" data-look="classic"><rect style="" x="471.984375" y="200" width="1102.765625" height="366"/><g class="cluster-label" transform="translate(873.0703125, 200)"><foreignObject width="300.59375" height="24"><div xmlns="http://www.w3.org/1999/xhtml" style="display: table-cell; white-space: nowrap; line-height: 1.5;"><span class="nodeLabel"><p>Paseo daemon (.13 — Docker, always-on)</p></span></div></foreignObject></g></g><g class="cluster" id="my-svg-CLIENTS" data-look="classic"><rect style="" x="8" y="166" width="220.265625" height="404"/><g class="cluster-label" transform="translate(93.6796875, 166)"><foreignObject width="48.90625" height="24"><div xmlns="http://www.w3.org/1999/xhtml" style="display: table-cell; white-space: nowrap; line-height: 1.5;"><span class="nodeLabel"><p>Clients</p></span></div></foreignObject></g></g></g><g class="edgePaths"><path d="M189.5,240L195.961,240C202.422,240,215.344,240,242.115,240C268.885,240,309.505,240,350.125,240C390.745,240,431.365,240,466.132,254.363C500.899,268.727,529.813,297.454,544.271,311.817L558.728,326.181" id="my-svg-L_D27_D_0" class="edge-thickness-normal edge-pattern-solid edge-thickness-normal edge-pattern-solid flowchart-link" style=";" data-edge="true" data-et="edge" data-id="L_D27_D_0" data-points="W3sieCI6MTg5LjUsInkiOjI0MH0seyJ4IjoyMjguMjY1NjI1LCJ5IjoyNDB9LHsieCI6MzUwLjEyNSwieSI6MjQwfSx7IngiOjQ3MS45ODQzNzUsInkiOjI0MH0seyJ4Ijo1NjEuNTY1NjEyNzkyOTY4OCwieSI6MzI5fV0=" data-look="classic" marker-end="url(#my-svg_flowchart-v2-pointEnd)"/><path d="M184.602,368L191.879,368C199.156,368,213.711,368,241.298,368C268.885,368,309.505,368,350.125,368C390.745,368,431.365,368,455.174,368C478.984,368,485.984,368,489.484,368L492.984,368" id="my-svg-L_D51_D_0" class="edge-thickness-normal edge-pattern-solid edge-thickness-normal edge-pattern-solid flowchart-link" style=";" data-edge="true" data-et="edge" data-id="L_D51_D_0" data-points="W3sieCI6MTg0LjYwMTU2MjUsInkiOjM2OH0seyJ4IjoyMjguMjY1NjI1LCJ5IjozNjh9LHsieCI6MzUwLjEyNSwieSI6MzY4fSx7IngiOjQ3MS45ODQzNzUsInkiOjM2OH0seyJ4Ijo0OTYuOTg0Mzc1LCJ5IjozNjh9XQ==" data-look="classic" marker-end="url(#my-svg_flowchart-v2-pointEnd)"/><path d="M203.266,496L207.432,496C211.599,496,219.932,496,244.409,496C268.885,496,309.505,496,350.125,496C390.745,496,431.365,496,466.132,481.637C500.899,467.273,529.813,438.546,544.271,424.183L558.728,409.819" id="my-svg-L_M_D_0" class="edge-thickness-normal edge-pattern-solid edge-thickness-normal edge-pattern-solid flowchart-link" style=";" data-edge="true" data-et="edge" data-id="L_M_D_0" data-points="W3sieCI6MjAzLjI2NTYyNSwieSI6NDk2fSx7IngiOjIyOC4yNjU2MjUsInkiOjQ5Nn0seyJ4IjozNTAuMTI1LCJ5Ijo0OTZ9LHsieCI6NDcxLjk4NDM3NSwieSI6NDk2fSx7IngiOjU2MS41NjU2MTI3OTI5Njg4LCJ5Ijo0MDd9XQ==" data-look="classic" marker-end="url(#my-svg_flowchart-v2-pointEnd)"/><path d="M693.821,329L710.91,321.833C728,314.667,762.18,300.333,793.887,293.167C825.594,286,854.828,286,869.445,286L884.063,286" id="my-svg-L_D_PI_0" class="edge-thickness-normal edge-pattern-solid edge-thickness-normal edge-pattern-solid flowchart-link" style=";" data-edge="true" data-et="edge" data-id="L_D_PI_0" data-points="W3sieCI6NjkzLjgyMDU5ODMyMzE3MDgsInkiOjMyOX0seyJ4Ijo3OTYuMzU5Mzc1LCJ5IjoyODZ9LHsieCI6ODg4LjA2MjUsInkiOjI4Nn1d" data-look="classic" marker-end="url(#my-svg_flowchart-v2-pointEnd)"/><path d="M1116.844,286L1135.387,286C1153.93,286,1191.016,286,1228.102,286C1265.188,286,1302.273,286,1325.277,286C1348.281,286,1357.203,286,1361.664,286L1366.125,286" id="my-svg-L_PI_CFG_0" class="edge-thickness-normal edge-pattern-solid edge-thickness-normal edge-pattern-solid flowchart-link" style=";" data-edge="true" data-et="edge" data-id="L_PI_CFG_0" data-points="W3sieCI6MTExNi44NDM3NSwieSI6Mjg2fSx7IngiOjEyMjguMTAxNTYyNSwieSI6Mjg2fSx7IngiOjEzMzkuMzU5Mzc1LCJ5IjoyODZ9LHsieCI6MTM3MC4xMjUsInkiOjI4Nn1d" data-look="classic" marker-end="url(#my-svg_flowchart-v2-pointEnd)"/><path d="M1072.199,337L1098.183,356C1124.167,375,1176.134,413,1220.661,432C1265.188,451,1302.273,451,1324.316,451C1346.359,451,1353.359,451,1356.859,451L1360.359,451" id="my-svg-L_PI_W_0" class="edge-thickness-normal edge-pattern-solid edge-thickness-normal edge-pattern-solid flowchart-link" style=";" data-edge="true" data-et="edge" data-id="L_PI_W_0" data-points="W3sieCI6MTA3Mi4xOTkwMDU2ODE4MTgsInkiOjMzN30seyJ4IjoxMjI4LjEwMTU2MjUsInkiOjQ1MX0seyJ4IjoxMzM5LjM1OTM3NSwieSI6NDUxfSx7IngiOjEzNjQuMzU5Mzc1LCJ5Ijo0NTF9XQ==" data-look="classic" marker-end="url(#my-svg_flowchart-v2-pointEnd)"/><path d="M662.321,407L684.66,421.167C707,435.333,751.68,463.667,789.785,477.833C827.891,492,859.422,492,875.188,492L890.953,492" id="my-svg-L_D_PWD_0" class="edge-thickness-normal edge-pattern-solid edge-thickness-normal edge-pattern-solid flowchart-link" style=";" data-edge="true" data-et="edge" data-id="L_D_PWD_0" data-points="W3sieCI6NjYyLjMyMDUwMTUxMjA5NjgsInkiOjQwN30seyJ4Ijo3OTYuMzU5Mzc1LCJ5Ijo0OTJ9LHsieCI6ODk0Ljk1MzEyNSwieSI6NDkyfV0=" data-look="classic" marker-end="url(#my-svg_flowchart-v2-pointEnd)"/><path d="M1116.844,261.16L1135.387,257.133C1153.93,253.107,1191.016,245.053,1228.102,241.027C1265.188,237,1302.273,237,1334.659,220.181C1367.044,203.363,1394.729,169.726,1408.572,152.907L1422.414,136.088" id="my-svg-L_PI_OR_0" class="edge-thickness-normal edge-pattern-solid edge-thickness-normal edge-pattern-solid flowchart-link" style=";" data-edge="true" data-et="edge" data-id="L_PI_OR_0" data-points="W3sieCI6MTExNi44NDM3NSwieSI6MjYxLjE1OTg1MTgxNTk0NzF9LHsieCI6MTIyOC4xMDE1NjI1LCJ5IjoyMzd9LHsieCI6MTMzOS4zNTkzNzUsInkiOjIzN30seyJ4IjoxNDI0Ljk1NTk2NTkwOTA5MSwieSI6MTMzfV0=" data-look="classic" marker-end="url(#my-svg_flowchart-v2-pointEnd)"/><path d="M1527.516,94L1535.388,94C1543.26,94,1559.005,94,1579.493,94C1599.982,94,1625.214,94,1649.779,94C1674.344,94,1698.242,94,1710.191,94L1722.141,94" id="my-svg-L_OR_OP_0" class="edge-thickness-normal edge-pattern-solid edge-thickness-normal edge-pattern-solid flowchart-link" style=";" data-edge="true" data-et="edge" data-id="L_OR_OP_0" data-points="W3sieCI6MTUyNy41MTU2MjUsInkiOjk0fSx7IngiOjE1NzQuNzUsInkiOjk0fSx7IngiOjE2NTAuNDQ1MzEyNSwieSI6OTR9LHsieCI6MTcyNi4xNDA2MjUsInkiOjk0fV0=" data-look="classic" marker-end="url(#my-svg_flowchart-v2-pointEnd)"/></g><g class="edgeLabels"><g class="edgeLabel" transform="translate(350.125, 240)"><g class="label" data-id="L_D27_D_0" transform="translate(-96.859375, -12)"><foreignObject width="193.71875" height="24"><div xmlns="http://www.w3.org/1999/xhtml" class="labelBkg" style="display: table-cell; white-space: nowrap; line-height: 1.5; max-width: 200px; text-align: center;"><span class="edgeLabel"><p>PASEO_HOST + password</p></span></div></foreignObject></g></g><g class="edgeLabel" transform="translate(350.125, 368)"><g class="label" data-id="L_D51_D_0" transform="translate(-96.859375, -12)"><foreignObject width="193.71875" height="24"><div xmlns="http://www.w3.org/1999/xhtml" class="labelBkg" style="display: table-cell; white-space: nowrap; line-height: 1.5; max-width: 200px; text-align: center;"><span class="edgeLabel"><p>PASEO_HOST + password</p></span></div></foreignObject></g></g><g class="edgeLabel" transform="translate(350.125, 496)"><g class="label" data-id="L_M_D_0" transform="translate(-39.5859375, -12)"><foreignObject width="79.171875" height="24"><div xmlns="http://www.w3.org/1999/xhtml" class="labelBkg" style="display: table-cell; white-space: nowrap; line-height: 1.5; max-width: 200px; text-align: center;"><span class="edgeLabel"><p>https :6767</p></span></div></foreignObject></g></g><g class="edgeLabel" transform="translate(796.359375, 286)"><g class="label" data-id="L_D_PI_0" transform="translate(-66.703125, -12)"><foreignObject width="133.40625" height="24"><div xmlns="http://www.w3.org/1999/xhtml" class="labelBkg" style="display: table-cell; white-space: nowrap; line-height: 1.5; max-width: 200px; text-align: center;"><span class="edgeLabel"><p>spawns / manages</p></span></div></foreignObject></g></g><g class="edgeLabel" transform="translate(1228.1015625, 286)"><g class="label" data-id="L_PI_CFG_0" transform="translate(-84.7109375, -12)"><foreignObject width="169.421875" height="24"><div xmlns="http://www.w3.org/1999/xhtml" class="labelBkg" style="display: table-cell; white-space: nowrap; line-height: 1.5; max-width: 200px; text-align: center;"><span class="edgeLabel"><p>reads settings + models</p></span></div></foreignObject></g></g><g class="edgeLabel" transform="translate(1228.1015625, 451)"><g class="label" data-id="L_PI_W_0" transform="translate(-29.34375, -12)"><foreignObject width="58.6875" height="24"><div xmlns="http://www.w3.org/1999/xhtml" class="labelBkg" style="display: table-cell; white-space: nowrap; line-height: 1.5; max-width: 200px; text-align: center;"><span class="edgeLabel"><p>works in</p></span></div></foreignObject></g></g><g class="edgeLabel" transform="translate(796.359375, 492)"><g class="label" data-id="L_D_PWD_0" transform="translate(-28.4609375, -12)"><foreignObject width="56.921875" height="24"><div xmlns="http://www.w3.org/1999/xhtml" class="labelBkg" style="display: table-cell; white-space: nowrap; line-height: 1.5; max-width: 200px; text-align: center;"><span class="edgeLabel"><p>protects</p></span></div></foreignObject></g></g><g class="edgeLabel" transform="translate(1228.1015625, 237)"><g class="label" data-id="L_PI_OR_0" transform="translate(-86.2578125, -12)"><foreignObject width="172.515625" height="24"><div xmlns="http://www.w3.org/1999/xhtml" class="labelBkg" style="display: table-cell; white-space: nowrap; line-height: 1.5; max-width: 200px; text-align: center;"><span class="edgeLabel"><p>httpx /v1 (omni provider)</p></span></div></foreignObject></g></g><g class="edgeLabel" transform="translate(1650.4453125, 94)"><g class="label" data-id="L_OR_OP_0" transform="translate(-50.6953125, -12)"><foreignObject width="101.390625" height="24"><div xmlns="http://www.w3.org/1999/xhtml" class="labelBkg" style="display: table-cell; white-space: nowrap; line-height: 1.5; max-width: 200px; text-align: center;"><span class="edgeLabel"><p>combo routing</p></span></div></foreignObject></g></g></g><g class="nodes"><g class="node default" id="my-svg-flowchart-D27-0" data-look="classic" transform="translate(118.1328125, 240)"><rect class="basic label-container" style="" x="-71.3671875" y="-39" width="142.734375" height="78"/><g class="label" style="" transform="translate(-41.3671875, -24)"><rect/><foreignObject width="82.734375" height="48"><div xmlns="http://www.w3.org/1999/xhtml" style="display: table-cell; white-space: nowrap; line-height: 1.5; max-width: 200px; text-align: center;"><span class="nodeLabel"><p>.27 desktop<br />paseo CLI</p></span></div></foreignObject></g></g><g class="node default" id="my-svg-flowchart-D51-1" data-look="classic" transform="translate(118.1328125, 368)"><rect class="basic label-container" style="" x="-66.46875" y="-39" width="132.9375" height="78"/><g class="label" style="" transform="translate(-36.46875, -24)"><rect/><foreignObject width="72.9375" height="48"><div xmlns="http://www.w3.org/1999/xhtml" style="display: table-cell; white-space: nowrap; line-height: 1.5; max-width: 200px; text-align: center;"><span class="nodeLabel"><p>.51 laptop<br />paseo CLI</p></span></div></foreignObject></g></g><g class="node default" id="my-svg-flowchart-M-2" data-look="classic" transform="translate(118.1328125, 496)"><rect class="basic label-container" style="" x="-85.1328125" y="-39" width="170.265625" height="78"/><g class="label" style="" transform="translate(-55.1328125, -24)"><rect/><foreignObject width="110.265625" height="48"><div xmlns="http://www.w3.org/1999/xhtml" style="display: table-cell; white-space: nowrap; line-height: 1.5; max-width: 200px; text-align: center;"><span class="nodeLabel"><p>Mobile / web UI<br />browser</p></span></div></foreignObject></g></g><g class="node default" id="my-svg-flowchart-D-3" data-look="classic" transform="translate(600.8203125, 368)"><rect class="basic label-container" style="" x="-103.8359375" y="-39" width="207.671875" height="78"/><g class="label" style="" transform="translate(-73.8359375, -24)"><rect/><foreignObject width="147.671875" height="48"><div xmlns="http://www.w3.org/1999/xhtml" style="display: table-cell; white-space: nowrap; line-height: 1.5; max-width: 200px; text-align: center;"><span class="nodeLabel"><p>Paseo daemon 0.7.2<br />:6767 · auth</p></span></div></foreignObject></g></g><g class="node default" id="my-svg-flowchart-PI-4" data-look="classic" transform="translate(1002.453125, 286)"><rect class="basic label-container" style="" x="-114.390625" y="-51" width="228.78125" height="102"/><g class="label" style="" transform="translate(-84.390625, -36)"><rect/><foreignObject width="168.78125" height="72"><div xmlns="http://www.w3.org/1999/xhtml" style="display: table-cell; white-space: nowrap; line-height: 1.5; max-width: 200px; text-align: center;"><span class="nodeLabel"><p>pi agent 0.82.1<br />pi --mode rpc<br />@earendil pi + omni ext</p></span></div></foreignObject></g></g><g class="node default" id="my-svg-flowchart-CFG-5" data-look="classic" transform="translate(1457.0546875, 286)"><rect class="basic label-container" style="" x="-86.9296875" y="-39" width="173.859375" height="78"/><g class="label" style="" transform="translate(-56.9296875, -24)"><rect/><foreignObject width="113.859375" height="48"><div xmlns="http://www.w3.org/1999/xhtml" style="display: table-cell; white-space: nowrap; line-height: 1.5; max-width: 200px; text-align: center;"><span class="nodeLabel"><p>pi config<br />/home/paseo/.pi</p></span></div></foreignObject></g></g><g class="node default" id="my-svg-flowchart-W-6" data-look="classic" transform="translate(1457.0546875, 451)"><rect class="basic label-container" style="" x="-92.6953125" y="-39" width="185.390625" height="78"/><g class="label" style="" transform="translate(-62.6953125, -24)"><rect/><foreignObject width="125.390625" height="48"><div xmlns="http://www.w3.org/1999/xhtml" style="display: table-cell; white-space: nowrap; line-height: 1.5; max-width: 200px; text-align: center;"><span class="nodeLabel"><p>workspaces<br />/workspace/demo</p></span></div></foreignObject></g></g><g class="node default" id="my-svg-flowchart-PWD-7" data-look="classic" transform="translate(1002.453125, 492)"><rect class="basic label-container" style="" x="-107.5" y="-39" width="215" height="78"/><g class="label" style="" transform="translate(-77.5, -24)"><rect/><foreignObject width="155" height="48"><div xmlns="http://www.w3.org/1999/xhtml" style="display: table-cell; white-space: nowrap; line-height: 1.5; max-width: 200px; text-align: center;"><span class="nodeLabel"><p>PASEO_PASSWORD<br />.env (600)</p></span></div></foreignObject></g></g><g class="node default" id="my-svg-flowchart-OR-8" data-look="classic" transform="translate(1457.0546875, 94)"><rect class="basic label-container" style="" x="-70.4609375" y="-39" width="140.921875" height="78"/><g class="label" style="" transform="translate(-40.4609375, -24)"><rect/><foreignObject width="80.921875" height="48"><div xmlns="http://www.w3.org/1999/xhtml" style="display: table-cell; white-space: nowrap; line-height: 1.5; max-width: 200px; text-align: center;"><span class="nodeLabel"><p>OmniRoute<br />.13:20129</p></span></div></foreignObject></g></g><g class="node default" id="my-svg-flowchart-OP-9" data-look="classic" transform="translate(1856.140625, 94)"><rect class="basic label-container" style="" x="-130" y="-51" width="260" height="102"/><g class="label" style="" transform="translate(-100, -36)"><rect/><foreignObject width="200" height="72"><div xmlns="http://www.w3.org/1999/xhtml" style="display: table; white-space: break-spaces; line-height: 1.5; max-width: 200px; text-align: center; width: 200px;"><span class="nodeLabel"><p>OpenCode-Go /<br />OpenRouter / DeepSeek / Gemini</p></span></div></foreignObject></g></g></g></g></g><defs><filter id="my-svg-drop-shadow" height="130%" width="130%"><feDropShadow dx="4" dy="4" stdDeviation="0" flood-opacity="0.06" flood-color="#000000"/></filter></defs><defs><filter id="my-svg-drop-shadow-small" height="150%" width="150%"><feDropShadow dx="2" dy="2" stdDeviation="0" flood-opacity="0.06" flood-color="#000000"/></filter></defs></svg>