Files
CASAN/docs/guides/assets/casan-hybrid-layout.svg
2026-07-23 23:50:09 +07:00

1 line
33 KiB
XML

<svg id="container" width="1614.609375" xmlns="http://www.w3.org/2000/svg" class="flowchart" height="938" viewBox="0 0 1614.609375 938" role="graphics-document document" aria-roledescription="flowchart-v2"><style>#container{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;}}#container .edge-animation-slow{stroke-dasharray:9,5!important;stroke-dashoffset:900;animation:dash 50s linear infinite;stroke-linecap:round;}#container .edge-animation-fast{stroke-dasharray:9,5!important;stroke-dashoffset:900;animation:dash 20s linear infinite;stroke-linecap:round;}#container .error-icon{fill:#552222;}#container .error-text{fill:#552222;stroke:#552222;}#container .edge-thickness-normal{stroke-width:1px;}#container .edge-thickness-thick{stroke-width:3.5px;}#container .edge-pattern-solid{stroke-dasharray:0;}#container .edge-thickness-invisible{stroke-width:0;fill:none;}#container .edge-pattern-dashed{stroke-dasharray:3;}#container .edge-pattern-dotted{stroke-dasharray:2;}#container .marker{fill:#333333;stroke:#333333;}#container .marker.cross{stroke:#333333;}#container svg{font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;}#container p{margin:0;}#container .label{font-family:"trebuchet ms",verdana,arial,sans-serif;color:#333;}#container .cluster-label text{fill:#333;}#container .cluster-label span{color:#333;}#container .cluster-label span p{background-color:transparent;}#container .label text,#container span{fill:#333;color:#333;}#container .node rect,#container .node circle,#container .node ellipse,#container .node polygon,#container .node path{fill:#ECECFF;stroke:#9370DB;stroke-width:1px;}#container .rough-node .label text,#container .node .label text,#container .image-shape .label,#container .icon-shape .label{text-anchor:middle;}#container .node .katex path{fill:#000;stroke:#000;stroke-width:1px;}#container .rough-node .label,#container .node .label,#container .image-shape .label,#container .icon-shape .label{text-align:center;}#container .node.clickable{cursor:pointer;}#container .root .anchor path{fill:#333333!important;stroke-width:0;stroke:#333333;}#container .arrowheadPath{fill:#333333;}#container .edgePath .path{stroke:#333333;stroke-width:1px;}#container .flowchart-link{stroke:#333333;fill:none;}#container .edgeLabel{background-color:rgba(232,232,232, 0.8);text-align:center;}#container .edgeLabel p{background-color:rgba(232,232,232, 0.8);}#container .edgeLabel rect{opacity:0.5;background-color:rgba(232,232,232, 0.8);fill:rgba(232,232,232, 0.8);}#container .labelBkg{background-color:rgba(232, 232, 232, 0.5);}#container .cluster rect{fill:#ffffde;stroke:#aaaa33;stroke-width:1px;}#container .cluster text{fill:#333;}#container .cluster span{color:#333;}#container 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;}#container .flowchartTitleText{text-anchor:middle;font-size:18px;fill:#333;}#container rect.text{fill:none;stroke-width:0;}#container .icon-shape,#container .image-shape{background-color:rgba(232,232,232, 0.8);text-align:center;}#container .icon-shape p,#container .image-shape p{background-color:rgba(232,232,232, 0.8);padding:2px;}#container .icon-shape .label rect,#container .image-shape .label rect{opacity:0.5;background-color:rgba(232,232,232, 0.8);fill:rgba(232,232,232, 0.8);}#container .label-icon{display:inline-block;height:1em;overflow:visible;vertical-align:-0.125em;}#container .node .label-icon path{fill:currentColor;stroke:revert;stroke-width:revert;}#container .node .neo-node{stroke:#9370DB;}#container [data-look="neo"].node rect,#container [data-look="neo"].cluster rect,#container [data-look="neo"].node polygon{stroke:#9370DB;filter:drop-shadow(1px 2px 2px rgba(185, 185, 185, 1));}#container [data-look="neo"].node path{stroke:#9370DB;stroke-width:1px;}#container [data-look="neo"].node .outer-path{filter:drop-shadow(1px 2px 2px rgba(185, 185, 185, 1));}#container [data-look="neo"].node .neo-line path{stroke:#9370DB;filter:none;}#container [data-look="neo"].node circle{stroke:#9370DB;filter:drop-shadow(1px 2px 2px rgba(185, 185, 185, 1));}#container [data-look="neo"].node circle .state-start{fill:#000000;}#container [data-look="neo"].icon-shape .icon{fill:#9370DB;filter:drop-shadow(1px 2px 2px rgba(185, 185, 185, 1));}#container [data-look="neo"].icon-shape .icon-neo path{stroke:#9370DB;filter:drop-shadow(1px 2px 2px rgba(185, 185, 185, 1));}#container :root{--mermaid-font-family:"trebuchet ms",verdana,arial,sans-serif;}</style><g><marker id="container_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;"></path></marker><marker id="container_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;"></path></marker><marker id="container_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;"></path></marker><marker id="container_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;"></polygon></marker><marker id="container_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;"></circle></marker><marker id="container_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;"></circle></marker><marker id="container_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;"></circle></marker><marker id="container_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;"></circle></marker><marker id="container_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;"></path></marker><marker id="container_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;"></path></marker><marker id="container_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;"></path></marker><marker id="container_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;"></path></marker><g class="root"><g class="clusters"><g class="cluster" id="container-P" data-look="classic"><rect style="" x="8" y="626" width="1511.36328125" height="304"></rect><g class="cluster-label" transform="translate(707.830078125, 626)"><foreignObject width="111.703125" 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>Existing project</p></span></div></foreignObject></g></g><g class="cluster" id="container-M" data-look="classic"><rect style="" x="373.00390625" y="8" width="1233.60546875" height="440"></rect><g class="cluster-label" transform="translate(919.736328125, 8)"><foreignObject width="140.140625" 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>Developer machine</p></span></div></foreignObject></g></g></g><g class="edgePaths"><path d="M1030.84,71.131L1079.2,77.942C1127.56,84.754,1224.28,98.377,1272.64,108.688C1321,119,1321,126,1321,129.5L1321,133" id="container-L_H_CUR_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_H_CUR_0" data-points="W3sieCI6MTAzMC44Mzk4NDM3NSwieSI6NzEuMTMwNTU2MjMxNTQ5NzZ9LHsieCI6MTMyMSwieSI6MTEyfSx7IngiOjEzMjEsInkiOjEzN31d" data-look="classic" marker-end="url(#container_flowchart-v2-pointEnd)"></path><path d="M1321,215L1321,219.167C1321,223.333,1321,231.667,1321,239.333C1321,247,1321,254,1321,257.5L1321,261" id="container-L_CUR_VER_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_CUR_VER_0" data-points="W3sieCI6MTMyMSwieSI6MjE1fSx7IngiOjEzMjEsInkiOjI0MH0seyJ4IjoxMzIxLCJ5IjoyNjV9XQ==" data-look="classic" marker-end="url(#container_flowchart-v2-pointEnd)"></path><path d="M872.793,68.72L807.428,75.934C742.063,83.147,611.332,97.573,545.967,115.453C480.602,133.333,480.602,154.667,480.602,176C480.602,197.333,480.602,218.667,480.602,238C480.602,257.333,480.602,274.667,480.602,292C480.602,309.333,480.602,326.667,480.602,338.833C480.602,351,480.602,358,480.602,361.5L480.602,365" id="container-L_H_CLI_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_H_CLI_0" data-points="W3sieCI6ODcyLjc5Mjk2ODc1LCJ5Ijo2OC43MjA0NzgxNTIzODIwNn0seyJ4Ijo0ODAuNjAxNTYyNSwieSI6MTEyfSx7IngiOjQ4MC42MDE1NjI1LCJ5IjoxNzZ9LHsieCI6NDgwLjYwMTU2MjUsInkiOjI0MH0seyJ4Ijo0ODAuNjAxNTYyNSwieSI6MjkyfSx7IngiOjQ4MC42MDE1NjI1LCJ5IjozNDR9LHsieCI6NDgwLjYwMTU2MjUsInkiOjM2OX1d" data-look="classic" marker-end="url(#container_flowchart-v2-pointEnd)"></path><path d="M1389.08,319L1399.586,323.167C1410.092,327.333,1431.105,335.667,1441.611,343.333C1452.117,351,1452.117,358,1452.117,361.5L1452.117,365" id="container-L_VER_HAR_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_VER_HAR_0" data-points="W3sieCI6MTM4OS4wODAwNzgxMjUsInkiOjMxOX0seyJ4IjoxNDUyLjExNzE4NzUsInkiOjM0NH0seyJ4IjoxNDUyLjExNzE4NzUsInkiOjM2OX1d" data-look="classic" marker-end="url(#container_flowchart-v2-pointEnd)"></path><path d="M1242.292,319L1230.146,323.167C1217.999,327.333,1193.707,335.667,1181.56,343.333C1169.414,351,1169.414,358,1169.414,361.5L1169.414,365" id="container-L_VER_DEV_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_VER_DEV_0" data-points="W3sieCI6MTI0Mi4yOTE5MTcwNjczMDc2LCJ5IjozMTl9LHsieCI6MTE2OS40MTQwNjI1LCJ5IjozNDR9LHsieCI6MTE2OS40MTQwNjI1LCJ5IjozNjl9XQ==" data-look="classic" marker-end="url(#container_flowchart-v2-pointEnd)"></path><path d="M660.215,530.746L769.904,540.455C879.592,550.164,1098.97,569.582,1208.659,585.458C1318.348,601.333,1318.348,613.667,1318.348,623.333C1318.348,633,1318.348,640,1318.348,643.5L1318.348,647" id="container-L_INIT_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_INIT_CFG_0" data-points="W3sieCI6NjYwLjIxNDg0Mzc1LCJ5Ijo1MzAuNzQ2NDUzMzA2ODI1NH0seyJ4IjoxMzE4LjM0NzY1NjI1LCJ5Ijo1ODl9LHsieCI6MTMxOC4zNDc2NTYyNSwieSI6NjI2fSx7IngiOjEzMTguMzQ3NjU2MjUsInkiOjY1MX1d" data-look="classic" marker-end="url(#container_flowchart-v2-pointEnd)"></path><path d="M480.602,423L480.602,427.167C480.602,431.333,480.602,439.667,480.602,448C480.602,456.333,480.602,464.667,489.184,472.725C497.767,480.783,514.933,488.566,523.516,492.457L532.099,496.348" id="container-L_CLI_INIT_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_CLI_INIT_0" data-points="W3sieCI6NDgwLjYwMTU2MjUsInkiOjQyM30seyJ4Ijo0ODAuNjAxNTYyNSwieSI6NDQ4fSx7IngiOjQ4MC42MDE1NjI1LCJ5Ijo0NzN9LHsieCI6NTM1Ljc0MTY2MTY1ODY1MzgsInkiOjQ5OH1d" data-look="classic" marker-end="url(#container_flowchart-v2-pointEnd)"></path><path d="M1169.414,423L1169.414,427.167C1169.414,431.333,1169.414,439.667,1169.414,448C1169.414,456.333,1169.414,464.667,1085.211,476.46C1001.009,488.253,832.604,503.506,748.401,511.133L664.199,518.759" id="container-L_DEV_INIT_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_DEV_INIT_0" data-points="W3sieCI6MTE2OS40MTQwNjI1LCJ5Ijo0MjN9LHsieCI6MTE2OS40MTQwNjI1LCJ5Ijo0NDh9LHsieCI6MTE2OS40MTQwNjI1LCJ5Ijo0NzN9LHsieCI6NjYwLjIxNDg0Mzc1LCJ5Ijo1MTkuMTE5ODE2Mjk1Mjg4M31d" data-look="classic" marker-end="url(#container_flowchart-v2-pointEnd)"></path><path d="M530.371,533.143L456.145,542.452C381.918,551.762,233.465,570.381,159.238,585.857C85.012,601.333,85.012,613.667,85.012,636.5C85.012,659.333,85.012,692.667,85.012,726C85.012,759.333,85.012,792.667,259.722,817.157C434.432,841.647,783.853,857.294,958.563,865.117L1133.274,872.941" id="container-L_INIT_BOOT_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_INIT_BOOT_0" data-points="W3sieCI6NTMwLjM3MTA5Mzc1LCJ5Ijo1MzMuMTQyNTY4NDM2NTI0fSx7IngiOjg1LjAxMTcxODc1LCJ5Ijo1ODl9LHsieCI6ODUuMDExNzE4NzUsInkiOjYyNn0seyJ4Ijo4NS4wMTE3MTg3NSwieSI6NzI2fSx7IngiOjg1LjAxMTcxODc1LCJ5Ijo4MjZ9LHsieCI6MTEzNy4yNjk1MzEyNSwieSI6ODczLjExOTcxOTU4OTA3MTZ9XQ==" data-look="classic" marker-end="url(#container_flowchart-v2-pointEnd)"></path><path d="M530.371,535.106L472.667,544.088C414.962,553.071,299.553,571.035,241.849,586.184C184.145,601.333,184.145,613.667,184.145,625.333C184.145,637,184.145,648,184.145,653.5L184.145,659" id="container-L_INIT_STATE_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_INIT_STATE_0" data-points="W3sieCI6NTMwLjM3MTA5Mzc1LCJ5Ijo1MzUuMTA1ODM5MjA4MDExfSx7IngiOjE4NC4xNDQ1MzEyNSwieSI6NTg5fSx7IngiOjE4NC4xNDQ1MzEyNSwieSI6NjI2fSx7IngiOjE4NC4xNDQ1MzEyNSwieSI6NjYzfV0=" data-look="classic" marker-end="url(#container_flowchart-v2-pointEnd)"></path><path d="M530.371,549.587L513.026,556.156C495.681,562.725,460.991,575.862,443.646,588.598C426.301,601.333,426.301,613.667,426.301,625.333C426.301,637,426.301,648,426.301,653.5L426.301,659" id="container-L_INIT_CLIENTS_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_INIT_CLIENTS_0" data-points="W3sieCI6NTMwLjM3MTA5Mzc1LCJ5Ijo1NDkuNTg2OTM1NDE2NzYzfSx7IngiOjQyNi4zMDA3ODEyNSwieSI6NTg5fSx7IngiOjQyNi4zMDA3ODEyNSwieSI6NjI2fSx7IngiOjQyNi4zMDA3ODEyNSwieSI6NjYzfV0=" data-look="classic" marker-end="url(#container_flowchart-v2-pointEnd)"></path><path d="M653.947,552L667.343,558.167C680.739,564.333,707.532,576.667,720.928,589C734.324,601.333,734.324,613.667,734.324,623.333C734.324,633,734.324,640,734.324,643.5L734.324,647" id="container-L_INIT_L2_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_INIT_L2_0" data-points="W3sieCI6NjUzLjk0Njc3NzM0Mzc1LCJ5Ijo1NTJ9LHsieCI6NzM0LjMyNDIxODc1LCJ5Ijo1ODl9LHsieCI6NzM0LjMyNDIxODc1LCJ5Ijo2MjZ9LHsieCI6NzM0LjMyNDIxODc1LCJ5Ijo2NTF9XQ==" data-look="classic" marker-end="url(#container_flowchart-v2-pointEnd)"></path><path d="M660.215,534.253L724.233,543.378C788.251,552.502,916.288,570.751,980.306,586.042C1044.324,601.333,1044.324,613.667,1044.324,625.333C1044.324,637,1044.324,648,1044.324,653.5L1044.324,659" id="container-L_INIT_OWNED_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_INIT_OWNED_0" data-points="W3sieCI6NjYwLjIxNDg0Mzc1LCJ5Ijo1MzQuMjUzMjUzNTMxOTA5fSx7IngiOjEwNDQuMzI0MjE4NzUsInkiOjU4OX0seyJ4IjoxMDQ0LjMyNDIxODc1LCJ5Ijo2MjZ9LHsieCI6MTA0NC4zMjQyMTg3NSwieSI6NjYzfV0=" data-look="classic" marker-end="url(#container_flowchart-v2-pointEnd)"></path><path d="M1318.348,801L1318.348,805.167C1318.348,809.333,1318.348,817.667,1313.112,825.61C1307.876,833.553,1297.403,841.107,1292.167,844.883L1286.931,848.66" id="container-L_CFG_BOOT_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_CFG_BOOT_0" data-points="W3sieCI6MTMxOC4zNDc2NTYyNSwieSI6ODAxfSx7IngiOjEzMTguMzQ3NjU2MjUsInkiOjgyNn0seyJ4IjoxMjgzLjY4NzE5OTUxOTIzMDcsInkiOjg1MX1d" data-look="classic" marker-end="url(#container_flowchart-v2-pointEnd)"></path><path d="M1452.117,423L1452.117,427.167C1452.117,431.333,1452.117,439.667,1452.117,448C1452.117,456.333,1452.117,464.667,1452.117,477.5C1452.117,490.333,1452.117,507.667,1452.117,527C1452.117,546.333,1452.117,567.667,1452.117,584.5C1452.117,601.333,1452.117,613.667,1452.117,636.5C1452.117,659.333,1452.117,692.667,1452.117,726C1452.117,759.333,1452.117,792.667,1436.268,813.337C1420.419,834.007,1388.721,842.014,1372.872,846.017L1357.023,850.02" id="container-L_HAR_BOOT_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_HAR_BOOT_0" data-points="W3sieCI6MTQ1Mi4xMTcxODc1LCJ5Ijo0MjN9LHsieCI6MTQ1Mi4xMTcxODc1LCJ5Ijo0NDh9LHsieCI6MTQ1Mi4xMTcxODc1LCJ5Ijo0NzN9LHsieCI6MTQ1Mi4xMTcxODc1LCJ5Ijo1MjV9LHsieCI6MTQ1Mi4xMTcxODc1LCJ5Ijo1ODl9LHsieCI6MTQ1Mi4xMTcxODc1LCJ5Ijo2MjZ9LHsieCI6MTQ1Mi4xMTcxODc1LCJ5Ijo3MjZ9LHsieCI6MTQ1Mi4xMTcxODc1LCJ5Ijo4MjZ9LHsieCI6MTM1My4xNDQ0NTYxMjk4MDc2LCJ5Ijo4NTF9XQ==" data-look="classic" marker-end="url(#container_flowchart-v2-pointEnd)"></path></g><g class="edgeLabels"><g class="edgeLabel"><g class="label" data-id="L_H_CUR_0" transform="translate(0, 0)"><foreignObject width="0" height="0"><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"></span></div></foreignObject></g></g><g class="edgeLabel"><g class="label" data-id="L_CUR_VER_0" transform="translate(0, 0)"><foreignObject width="0" height="0"><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"></span></div></foreignObject></g></g><g class="edgeLabel"><g class="label" data-id="L_H_CLI_0" transform="translate(0, 0)"><foreignObject width="0" height="0"><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"></span></div></foreignObject></g></g><g class="edgeLabel"><g class="label" data-id="L_VER_HAR_0" transform="translate(0, 0)"><foreignObject width="0" height="0"><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"></span></div></foreignObject></g></g><g class="edgeLabel"><g class="label" data-id="L_VER_DEV_0" transform="translate(0, 0)"><foreignObject width="0" height="0"><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"></span></div></foreignObject></g></g><g class="edgeLabel"><g class="label" data-id="L_INIT_CFG_0" transform="translate(0, 0)"><foreignObject width="0" height="0"><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"></span></div></foreignObject></g></g><g class="edgeLabel"><g class="label" data-id="L_CLI_INIT_0" transform="translate(0, 0)"><foreignObject width="0" height="0"><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"></span></div></foreignObject></g></g><g class="edgeLabel"><g class="label" data-id="L_DEV_INIT_0" transform="translate(0, 0)"><foreignObject width="0" height="0"><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"></span></div></foreignObject></g></g><g class="edgeLabel"><g class="label" data-id="L_INIT_BOOT_0" transform="translate(0, 0)"><foreignObject width="0" height="0"><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"></span></div></foreignObject></g></g><g class="edgeLabel"><g class="label" data-id="L_INIT_STATE_0" transform="translate(0, 0)"><foreignObject width="0" height="0"><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"></span></div></foreignObject></g></g><g class="edgeLabel"><g class="label" data-id="L_INIT_CLIENTS_0" transform="translate(0, 0)"><foreignObject width="0" height="0"><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"></span></div></foreignObject></g></g><g class="edgeLabel" transform="translate(734.32421875, 589)"><g class="label" data-id="L_INIT_L2_0" transform="translate(-74.1484375, -12)"><foreignObject width="148.296875" 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>chỉ khi --level devkit</p></span></div></foreignObject></g></g><g class="edgeLabel" transform="translate(1044.32421875, 589)"><g class="label" data-id="L_INIT_OWNED_0" transform="translate(-54.0546875, -12)"><foreignObject width="108.109375" 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>không thay đổi</p></span></div></foreignObject></g></g><g class="edgeLabel"><g class="label" data-id="L_CFG_BOOT_0" transform="translate(0, 0)"><foreignObject width="0" height="0"><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"></span></div></foreignObject></g></g><g class="edgeLabel" transform="translate(1452.1171875, 589)"><g class="label" data-id="L_HAR_BOOT_0" transform="translate(-52.703125, -12)"><foreignObject width="105.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>runtime policy</p></span></div></foreignObject></g></g></g><g class="nodes"><g class="node default" id="container-flowchart-H-0" data-look="classic" transform="translate(951.81640625, 60)"><rect class="basic label-container" style="" x="-79.0234375" y="-27" width="158.046875" height="54"></rect><g class="label" style="" transform="translate(-49.0234375, -12)"><rect></rect><foreignObject width="98.046875" 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>CASAN_HOME</p></span></div></foreignObject></g></g><g class="node default" id="container-flowchart-CUR-1" data-look="classic" transform="translate(1321, 176)"><rect class="basic label-container" style="" x="-109.390625" y="-39" width="218.78125" height="78"></rect><g class="label" style="" transform="translate(-79.390625, -24)"><rect></rect><foreignObject width="158.78125" 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>current<br/>symlink hoặc junction</p></span></div></foreignObject></g></g><g class="node default" id="container-flowchart-VER-2" data-look="classic" transform="translate(1321, 292)"><rect class="basic label-container" style="" x="-99.0703125" y="-27" width="198.140625" height="54"></rect><g class="label" style="" transform="translate(-69.0703125, -12)"><rect></rect><foreignObject width="138.140625" 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>versions/&lt;version&gt;</p></span></div></foreignObject></g></g><g class="node default" id="container-flowchart-CLI-3" data-look="classic" transform="translate(480.6015625, 396)"><rect class="basic label-container" style="" x="-66.171875" y="-27" width="132.34375" height="54"></rect><g class="label" style="" transform="translate(-36.171875, -12)"><rect></rect><foreignObject width="72.34375" 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>bin/casan</p></span></div></foreignObject></g></g><g class="node default" id="container-flowchart-HAR-4" data-look="classic" transform="translate(1452.1171875, 396)"><rect class="basic label-container" style="" x="-119.4921875" y="-27" width="238.984375" height="54"></rect><g class="label" style="" transform="translate(-89.4921875, -12)"><rect></rect><foreignObject width="178.984375" 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>packages/casan-harness</p></span></div></foreignObject></g></g><g class="node default" id="container-flowchart-DEV-5" data-look="classic" transform="translate(1169.4140625, 396)"><rect class="basic label-container" style="" x="-113.2109375" y="-27" width="226.421875" height="54"></rect><g class="label" style="" transform="translate(-83.2109375, -12)"><rect></rect><foreignObject width="166.421875" 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>packages/casan-devkit</p></span></div></foreignObject></g></g><g class="node default" id="container-flowchart-INIT-15" data-look="classic" transform="translate(595.29296875, 525)"><rect class="basic label-container" style="" x="-64.921875" y="-27" width="129.84375" height="54"></rect><g class="label" style="" transform="translate(-34.921875, -12)"><rect></rect><foreignObject width="69.84375" 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>casan init</p></span></div></foreignObject></g></g><g class="node default" id="container-flowchart-CFG-16" data-look="classic" transform="translate(1318.34765625, 726)"><rect class="basic label-container" style="" x="-94.0234375" y="-75" width="188.046875" height="150"></rect><g class="label" style="" transform="translate(-64.0234375, -60)"><rect></rect><foreignObject width="128.046875" height="120"><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>.casan/<br/>config.json<br/>version.lock<br/>agentic.env<br/>init-manifest.json</p></span></div></foreignObject></g></g><g class="node default" id="container-flowchart-BOOT-22" data-look="classic" transform="translate(1246.25390625, 878)"><rect class="basic label-container" style="" x="-108.984375" y="-27" width="217.96875" height="54"></rect><g class="label" style="" transform="translate(-78.984375, -12)"><rect></rect><foreignObject width="157.96875" 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>.casan/casan-hook.py</p></span></div></foreignObject></g></g><g class="node default" id="container-flowchart-STATE-23" data-look="classic" transform="translate(184.14453125, 726)"><rect class="basic label-container" style="" x="-64.1328125" y="-63" width="128.265625" height="126"></rect><g class="label" style="" transform="translate(-34.1328125, -48)"><rect></rect><foreignObject width="68.265625" height="96"><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>.specify/<br/>logs/<br/>state/<br/>.gitignore</p></span></div></foreignObject></g></g><g class="node default" id="container-flowchart-CLIENTS-24" data-look="classic" transform="translate(426.30078125, 726)"><rect class="basic label-container" style="" x="-128.0234375" y="-63" width="256.046875" height="126"></rect><g class="label" style="" transform="translate(-98.0234375, -48)"><rect></rect><foreignObject width="196.046875" height="96"><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>Client config khi được chọn<br/>.claude/settings.json<br/>.codex/hooks.json<br/>.vscode/extensions.json</p></span></div></foreignObject></g></g><g class="node default" id="container-flowchart-L2-25" data-look="classic" transform="translate(734.32421875, 726)"><rect class="basic label-container" style="" x="-130" y="-75" width="260" height="150"></rect><g class="label" style="" transform="translate(-100, -60)"><rect></rect><foreignObject width="200" height="120"><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>Level 2 only<br/>.gitea/workflows/casan-ci.yml<br/>apps/&lt;project-id&gt;/domain/</p></span></div></foreignObject></g></g><g class="node default" id="container-flowchart-OWNED-26" data-look="classic" transform="translate(1044.32421875, 726)"><rect class="basic label-container" style="" x="-130" y="-63" width="260" height="126"></rect><g class="label" style="" transform="translate(-100, -48)"><rect></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>Project-owned<br/>source, agents, skills,<br/>commands, hooks và CI khác</p></span></div></foreignObject></g></g></g></g></g><defs><filter id="container-drop-shadow" height="130%" width="130%"><feDropShadow dx="4" dy="4" stdDeviation="0" flood-opacity="0.06" flood-color="#000000"></feDropShadow></filter></defs><defs><filter id="container-drop-shadow-small" height="150%" width="150%"><feDropShadow dx="2" dy="2" stdDeviation="0" flood-opacity="0.06" flood-color="#000000"></feDropShadow></filter></defs></svg>