1 line
24 KiB
XML
1 line
24 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: 2133.23px; background-color: white;" viewBox="0 0 2133.234375 560" 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="1438.1875" y="8" width="687.046875" height="148"/><g class="cluster-label" transform="translate(1739.4609375, 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-N13" data-look="classic"><rect style="" x="493.03125" y="176" width="1211.703125" height="372"/><g class="cluster-label" transform="translate(949.484375, 176)"><foreignObject width="298.796875" 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>Native daemon on .13 (NixOS, always-on)</p></span></div></foreignObject></g></g><g class="cluster" id="my-svg-CLIENTS" data-look="classic"><rect style="" x="8" y="148" width="241.3125" height="404"/><g class="cluster-label" transform="translate(104.203125, 148)"><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="M200.023,222L208.238,222C216.453,222,232.883,222,261.408,222C289.932,222,330.552,222,371.172,222C411.792,222,452.411,222,485.293,234.366C518.175,246.732,543.319,271.463,555.891,283.829L568.463,296.195" 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="W3sieCI6MjAwLjAyMzQzNzUsInkiOjIyMn0seyJ4IjoyNDkuMzEyNSwieSI6MjIyfSx7IngiOjM3MS4xNzE4NzUsInkiOjIyMn0seyJ4Ijo0OTMuMDMxMjUsInkiOjIyMn0seyJ4Ijo1NzEuMzE0MjcwMDE5NTMxMiwieSI6Mjk5fV0=" data-look="classic" marker-end="url(#my-svg_flowchart-v2-pointEnd)"/><path d="M195.125,350L204.156,350C213.188,350,231.25,350,260.591,350C289.932,350,330.552,350,371.172,350C411.792,350,452.411,350,476.221,350C500.031,350,507.031,350,510.531,350L514.031,350" 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="W3sieCI6MTk1LjEyNSwieSI6MzUwfSx7IngiOjI0OS4zMTI1LCJ5IjozNTB9LHsieCI6MzcxLjE3MTg3NSwieSI6MzUwfSx7IngiOjQ5My4wMzEyNSwieSI6MzUwfSx7IngiOjUxOC4wMzEyNSwieSI6MzUwfV0=" data-look="classic" marker-end="url(#my-svg_flowchart-v2-pointEnd)"/><path d="M224.313,478L228.479,478C232.646,478,240.979,478,265.456,478C289.932,478,330.552,478,371.172,478C411.792,478,452.411,478,485.293,465.634C518.175,453.268,543.319,428.537,555.891,416.171L568.463,403.805" 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="W3sieCI6MjI0LjMxMjUsInkiOjQ3OH0seyJ4IjoyNDkuMzEyNSwieSI6NDc4fSx7IngiOjM3MS4xNzE4NzUsInkiOjQ3OH0seyJ4Ijo0OTMuMDMxMjUsInkiOjQ3OH0seyJ4Ijo1NzEuMzE0MjcwMDE5NTMxMiwieSI6NDAxfV0=" data-look="classic" marker-end="url(#my-svg_flowchart-v2-pointEnd)"/><path d="M728.297,316.243L749.13,309.554C769.964,302.864,811.63,289.485,852.63,282.796C893.63,276.107,933.964,276.107,954.13,276.107L974.297,276.107" 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="W3sieCI6NzI4LjI5Njg3NSwieSI6MzE2LjI0Mjg4OTQ5ODMxNDI0fSx7IngiOjg1My4yOTY4NzUsInkiOjI3Ni4xMDY2MjA3ODg1NzQyfSx7IngiOjk3OC4yOTY4NzUsInkiOjI3Ni4xMDY2MjA3ODg1NzQyfV0=" data-look="classic" marker-end="url(#my-svg_flowchart-v2-pointEnd)"/><path d="M1188.188,313.026L1209.021,320.355C1229.854,327.684,1271.521,342.342,1313.188,349.671C1354.854,357,1396.521,357,1420.983,357C1445.445,357,1452.703,357,1456.332,357L1459.961,357" id="my-svg-L_PI_FS_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_FS_0" data-points="W3sieCI6MTE4OC4xODc1LCJ5IjozMTMuMDI1NzUxMTE2Njc4MX0seyJ4IjoxMzEzLjE4NzUsInkiOjM1N30seyJ4IjoxNDM4LjE4NzUsInkiOjM1N30seyJ4IjoxNDYzLjk2MDkzNzUsInkiOjM1N31d" data-look="classic" marker-end="url(#my-svg_flowchart-v2-pointEnd)"/><path d="M722.628,401L744.406,412.167C766.184,423.333,809.741,445.667,855.205,456.833C900.669,468,948.042,468,971.728,468L995.414,468" id="my-svg-L_D_FW_0" class="edge-thickness-normal edge-pattern-dotted edge-thickness-normal edge-pattern-solid flowchart-link" style=";" data-edge="true" data-et="edge" data-id="L_D_FW_0" data-points="W3sieCI6NzIyLjYyODI0NDE3MzcyODgsInkiOjQwMX0seyJ4Ijo4NTMuMjk2ODc1LCJ5Ijo0Njh9LHsieCI6OTk5LjQxNDA2MjUsInkiOjQ2OH1d" data-look="classic" marker-end="url(#my-svg_flowchart-v2-pointEnd)"/><path d="M1188.188,257.346L1209.021,253.622C1229.854,249.897,1271.521,242.449,1313.188,238.724C1354.854,235,1396.521,235,1435.209,214.503C1473.897,194.005,1509.606,153.011,1527.46,132.513L1545.315,112.016" 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="W3sieCI6MTE4OC4xODc1LCJ5IjoyNTcuMzQ1ODY3OTkyMjkzOTZ9LHsieCI6MTMxMy4xODc1LCJ5IjoyMzV9LHsieCI6MTQzOC4xODc1LCJ5IjoyMzV9LHsieCI6MTU0Ny45NDIwOTU1ODgyMzU0LCJ5IjoxMDl9XQ==" data-look="classic" marker-end="url(#my-svg_flowchart-v2-pointEnd)"/><path d="M1679.734,82L1683.901,82C1688.068,82,1696.401,82,1713.184,82C1729.966,82,1755.198,82,1779.763,82C1804.328,82,1828.227,82,1840.176,82L1852.125,82" 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="W3sieCI6MTY3OS43MzQzNzUsInkiOjgyfSx7IngiOjE3MDQuNzM0Mzc1LCJ5Ijo4Mn0seyJ4IjoxNzgwLjQyOTY4NzUsInkiOjgyfSx7IngiOjE4NTYuMTI1LCJ5Ijo4Mn1d" data-look="classic" marker-end="url(#my-svg_flowchart-v2-pointEnd)"/></g><g class="edgeLabels"><g class="edgeLabel" transform="translate(371.171875, 222)"><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(371.171875, 350)"><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(371.171875, 478)"><g class="label" data-id="L_M_D_0" transform="translate(-75.15625, -12)"><foreignObject width="150.3125" 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>Tailscale / LAN :6767</p></span></div></foreignObject></g></g><g class="edgeLabel" transform="translate(853.296875, 276.1066207885742)"><g class="label" data-id="L_D_PI_0" transform="translate(-100, -24)"><foreignObject width="200" height="48"><div xmlns="http://www.w3.org/1999/xhtml" class="labelBkg" style="display: table; white-space: break-spaces; line-height: 1.5; max-width: 200px; text-align: center; width: 200px;"><span class="edgeLabel"><p>spawns / manages (no sandbox)</p></span></div></foreignObject></g></g><g class="edgeLabel" transform="translate(1313.1875, 357)"><g class="label" data-id="L_PI_FS_0" transform="translate(-100, -24)"><foreignObject width="200" height="48"><div xmlns="http://www.w3.org/1999/xhtml" class="labelBkg" style="display: table; white-space: break-spaces; line-height: 1.5; max-width: 200px; text-align: center; width: 200px;"><span class="edgeLabel"><p>direct access, real permissions</p></span></div></foreignObject></g></g><g class="edgeLabel" transform="translate(853.296875, 468)"><g class="label" data-id="L_D_FW_0" transform="translate(-48.03125, -12)"><foreignObject width="96.0625" 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>listen allowed</p></span></div></foreignObject></g></g><g class="edgeLabel" transform="translate(1313.1875, 235)"><g class="label" data-id="L_PI_OR_0" transform="translate(-61.359375, -12)"><foreignObject width="122.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>omni provider /v1</p></span></div></foreignObject></g></g><g class="edgeLabel" transform="translate(1780.4296875, 82)"><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(128.65625, 222)"><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(128.65625, 350)"><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(128.65625, 478)"><rect class="basic label-container" style="" x="-95.65625" y="-39" width="191.3125" height="78"/><g class="label" style="" transform="translate(-65.65625, -24)"><rect/><foreignObject width="131.3125" 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 / Tailscale</p></span></div></foreignObject></g></g><g class="node default" id="my-svg-flowchart-D-3" data-look="classic" transform="translate(623.1640625, 350)"><rect class="basic label-container" style="" x="-105.1328125" y="-51" width="210.265625" height="102"/><g class="label" style="" transform="translate(-75.1328125, -36)"><rect/><foreignObject width="150.265625" 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>Paseo daemon 0.7.2<br />systemd user service<br />0.0.0.0:6767</p></span></div></foreignObject></g></g><g class="node default" id="my-svg-flowchart-PI-4" data-look="classic" transform="translate(1083.2421875, 276.1066207885742)"><rect class="basic label-container" style="" x="-104.9453125" y="-51" width="209.890625" height="102"/><g class="label" style="" transform="translate(-74.9453125, -36)"><rect/><foreignObject width="149.890625" 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 0.82.1 (Nix)<br />pi --mode rpc<br />host ~/.pi + ~/.agents</p></span></div></foreignObject></g></g><g class="node default" id="my-svg-flowchart-FS-5" data-look="classic" transform="translate(1571.4609375, 357)"><path d="M0,15.808823529411764 a107.5,15.808823529411764 0,0,0 215,0 a107.5,15.808823529411764 0,0,0 -215,0 l0,126.80882352941177 a107.5,15.808823529411764 0,0,0 215,0 l0,-126.80882352941177" class="basic label-container outer-path" style="" transform="translate(-107.5, -79.21323529411765)"/><g class="label" style="" transform="translate(-100, -38)"><rect/><foreignObject width="200" height="96"><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>Host filesystem as `sam`<br />projects: ~/paseo/projects/<br />obsidian vault, photos, /mnt/*</p></span></div></foreignObject></g></g><g class="node default" id="my-svg-flowchart-FW-6" data-look="classic" transform="translate(1083.2421875, 468)"><rect class="basic label-container" style="" x="-83.828125" y="-39" width="167.65625" height="78"/><g class="label" style="" transform="translate(-53.828125, -24)"><rect/><foreignObject width="107.65625" 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>NixOS firewall<br />port 6767 open</p></span></div></foreignObject></g></g><g class="node default" id="my-svg-flowchart-OR-7" data-look="classic" transform="translate(1571.4609375, 82)"><rect class="basic label-container" style="" x="-108.2734375" y="-27" width="216.546875" height="54"/><g class="label" style="" transform="translate(-78.2734375, -12)"><rect/><foreignObject width="156.546875" height="24"><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 .13:20129</p></span></div></foreignObject></g></g><g class="node default" id="my-svg-flowchart-OP-8" data-look="classic" transform="translate(1978.1796875, 82)"><rect class="basic label-container" style="" x="-122.0546875" y="-39" width="244.109375" height="78"/><g class="label" style="" transform="translate(-92.0546875, -24)"><rect/><foreignObject width="184.109375" 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>OpenRouter / DeepSeek /<br />OpenCode-Go (deferred)</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> |