Add multi-provider ensemble demo and generate PNG/SVG for all demo workflows
New demo 11-ensemble.dot fans out to Opus (Anthropic), Gemini (Google), Codex (OpenAI), and Mercury (Inception) in parallel, then synthesizes results. Also generates PNG and SVG renderings for all existing demo dot files. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
BIN
demo/01-hello.png
Normal file
|
After Width: | Height: | Size: 7.5 KiB |
51
demo/01-hello.svg
Normal file
|
|
@ -0,0 +1,51 @@
|
|||
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN"
|
||||
"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
|
||||
<!-- Generated by graphviz version 14.1.2 (20260124.0452)
|
||||
-->
|
||||
<!-- Title: Hello Pages: 1 -->
|
||||
<svg width="291pt" height="47pt"
|
||||
viewBox="0.00 0.00 291.00 47.00" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
|
||||
<g id="graph0" class="graph" transform="scale(1 1) rotate(0) translate(4 42.5)">
|
||||
<title>Hello</title>
|
||||
<polygon fill="white" stroke="none" points="-4,4 -4,-42.5 287.07,-42.5 287.07,4 -4,4"/>
|
||||
<!-- start -->
|
||||
<g id="node1" class="node">
|
||||
<title>start</title>
|
||||
<polygon fill="none" stroke="black" points="40.05,-37.25 0,-19.25 40.05,-1.25 80.1,-19.25 40.05,-37.25"/>
|
||||
<polyline fill="none" stroke="black" points="10.95,-24.17 10.95,-14.33"/>
|
||||
<polyline fill="none" stroke="black" points="29.11,-6.17 51,-6.17"/>
|
||||
<polyline fill="none" stroke="black" points="69.16,-14.33 69.16,-24.17"/>
|
||||
<polyline fill="none" stroke="black" points="51,-32.33 29.11,-32.33"/>
|
||||
<text xml:space="preserve" text-anchor="middle" x="40.05" y="-14.2" font-family="Times,serif" font-size="14.00">Start</text>
|
||||
</g>
|
||||
<!-- compose -->
|
||||
<g id="node3" class="node">
|
||||
<title>compose</title>
|
||||
<ellipse fill="none" stroke="black" cx="162.33" cy="-19.25" rx="46.23" ry="18"/>
|
||||
<text xml:space="preserve" text-anchor="middle" x="162.33" y="-14.2" font-family="Times,serif" font-size="14.00">Compose</text>
|
||||
</g>
|
||||
<!-- start->compose -->
|
||||
<g id="edge1" class="edge">
|
||||
<title>start->compose</title>
|
||||
<path fill="none" stroke="black" d="M81.1,-19.25C88.54,-19.25 96.44,-19.25 104.28,-19.25"/>
|
||||
<polygon fill="black" stroke="black" points="104.12,-22.75 114.12,-19.25 104.12,-15.75 104.12,-22.75"/>
|
||||
</g>
|
||||
<!-- exit -->
|
||||
<g id="node2" class="node">
|
||||
<title>exit</title>
|
||||
<polygon fill="none" stroke="black" points="283.07,-38.5 244.57,-38.5 244.57,0 283.07,0 283.07,-38.5"/>
|
||||
<polyline fill="none" stroke="black" points="256.57,-38.5 244.57,-26.5"/>
|
||||
<polyline fill="none" stroke="black" points="244.57,-12 256.57,0"/>
|
||||
<polyline fill="none" stroke="black" points="271.07,0 283.07,-12"/>
|
||||
<polyline fill="none" stroke="black" points="283.07,-26.5 271.07,-38.5"/>
|
||||
<text xml:space="preserve" text-anchor="middle" x="263.82" y="-14.2" font-family="Times,serif" font-size="14.00">Exit</text>
|
||||
</g>
|
||||
<!-- compose->exit -->
|
||||
<g id="edge2" class="edge">
|
||||
<title>compose->exit</title>
|
||||
<path fill="none" stroke="black" d="M209,-19.25C217.08,-19.25 225.31,-19.25 232.82,-19.25"/>
|
||||
<polygon fill="black" stroke="black" points="232.75,-22.75 242.75,-19.25 232.75,-15.75 232.75,-22.75"/>
|
||||
</g>
|
||||
</g>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 2.6 KiB |
BIN
demo/02-tool-use.png
Normal file
|
After Width: | Height: | Size: 7.9 KiB |
51
demo/02-tool-use.svg
Normal file
|
|
@ -0,0 +1,51 @@
|
|||
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN"
|
||||
"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
|
||||
<!-- Generated by graphviz version 14.1.2 (20260124.0452)
|
||||
-->
|
||||
<!-- Title: ToolUse Pages: 1 -->
|
||||
<svg width="279pt" height="47pt"
|
||||
viewBox="0.00 0.00 279.00 47.00" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
|
||||
<g id="graph0" class="graph" transform="scale(1 1) rotate(0) translate(4 42.5)">
|
||||
<title>ToolUse</title>
|
||||
<polygon fill="white" stroke="none" points="-4,4 -4,-42.5 274.78,-42.5 274.78,4 -4,4"/>
|
||||
<!-- start -->
|
||||
<g id="node1" class="node">
|
||||
<title>start</title>
|
||||
<polygon fill="none" stroke="black" points="40.05,-37.25 0,-19.25 40.05,-1.25 80.1,-19.25 40.05,-37.25"/>
|
||||
<polyline fill="none" stroke="black" points="10.95,-24.17 10.95,-14.33"/>
|
||||
<polyline fill="none" stroke="black" points="29.11,-6.17 51,-6.17"/>
|
||||
<polyline fill="none" stroke="black" points="69.16,-14.33 69.16,-24.17"/>
|
||||
<polyline fill="none" stroke="black" points="51,-32.33 29.11,-32.33"/>
|
||||
<text xml:space="preserve" text-anchor="middle" x="40.05" y="-14.2" font-family="Times,serif" font-size="14.00">Start</text>
|
||||
</g>
|
||||
<!-- explore -->
|
||||
<g id="node3" class="node">
|
||||
<title>explore</title>
|
||||
<ellipse fill="none" stroke="black" cx="156.19" cy="-19.25" rx="40.09" ry="18"/>
|
||||
<text xml:space="preserve" text-anchor="middle" x="156.19" y="-14.2" font-family="Times,serif" font-size="14.00">Explore</text>
|
||||
</g>
|
||||
<!-- start->explore -->
|
||||
<g id="edge1" class="edge">
|
||||
<title>start->explore</title>
|
||||
<path fill="none" stroke="black" d="M81.29,-19.25C88.71,-19.25 96.54,-19.25 104.23,-19.25"/>
|
||||
<polygon fill="black" stroke="black" points="104.18,-22.75 114.18,-19.25 104.18,-15.75 104.18,-22.75"/>
|
||||
</g>
|
||||
<!-- exit -->
|
||||
<g id="node2" class="node">
|
||||
<title>exit</title>
|
||||
<polygon fill="none" stroke="black" points="270.78,-38.5 232.28,-38.5 232.28,0 270.78,0 270.78,-38.5"/>
|
||||
<polyline fill="none" stroke="black" points="244.28,-38.5 232.28,-26.5"/>
|
||||
<polyline fill="none" stroke="black" points="232.28,-12 244.28,0"/>
|
||||
<polyline fill="none" stroke="black" points="258.78,0 270.78,-12"/>
|
||||
<polyline fill="none" stroke="black" points="270.78,-26.5 258.78,-38.5"/>
|
||||
<text xml:space="preserve" text-anchor="middle" x="251.53" y="-14.2" font-family="Times,serif" font-size="14.00">Exit</text>
|
||||
</g>
|
||||
<!-- explore->exit -->
|
||||
<g id="edge2" class="edge">
|
||||
<title>explore->exit</title>
|
||||
<path fill="none" stroke="black" d="M196.78,-19.25C204.86,-19.25 213.24,-19.25 220.91,-19.25"/>
|
||||
<polygon fill="black" stroke="black" points="220.71,-22.75 230.71,-19.25 220.71,-15.75 220.71,-22.75"/>
|
||||
</g>
|
||||
</g>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 2.6 KiB |
BIN
demo/03-subagent.png
Normal file
|
After Width: | Height: | Size: 8.3 KiB |
51
demo/03-subagent.svg
Normal file
|
|
@ -0,0 +1,51 @@
|
|||
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN"
|
||||
"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
|
||||
<!-- Generated by graphviz version 14.1.2 (20260124.0452)
|
||||
-->
|
||||
<!-- Title: SubAgent Pages: 1 -->
|
||||
<svg width="288pt" height="47pt"
|
||||
viewBox="0.00 0.00 288.00 47.00" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
|
||||
<g id="graph0" class="graph" transform="scale(1 1) rotate(0) translate(4 42.5)">
|
||||
<title>SubAgent</title>
|
||||
<polygon fill="white" stroke="none" points="-4,4 -4,-42.5 284,-42.5 284,4 -4,4"/>
|
||||
<!-- start -->
|
||||
<g id="node1" class="node">
|
||||
<title>start</title>
|
||||
<polygon fill="none" stroke="black" points="40.05,-37.25 0,-19.25 40.05,-1.25 80.1,-19.25 40.05,-37.25"/>
|
||||
<polyline fill="none" stroke="black" points="10.95,-24.17 10.95,-14.33"/>
|
||||
<polyline fill="none" stroke="black" points="29.11,-6.17 51,-6.17"/>
|
||||
<polyline fill="none" stroke="black" points="69.16,-14.33 69.16,-24.17"/>
|
||||
<polyline fill="none" stroke="black" points="51,-32.33 29.11,-32.33"/>
|
||||
<text xml:space="preserve" text-anchor="middle" x="40.05" y="-14.2" font-family="Times,serif" font-size="14.00">Start</text>
|
||||
</g>
|
||||
<!-- research -->
|
||||
<g id="node3" class="node">
|
||||
<title>research</title>
|
||||
<ellipse fill="none" stroke="black" cx="160.8" cy="-19.25" rx="44.7" ry="18"/>
|
||||
<text xml:space="preserve" text-anchor="middle" x="160.8" y="-14.2" font-family="Times,serif" font-size="14.00">Research</text>
|
||||
</g>
|
||||
<!-- start->research -->
|
||||
<g id="edge1" class="edge">
|
||||
<title>start->research</title>
|
||||
<path fill="none" stroke="black" d="M81.25,-19.25C88.76,-19.25 96.72,-19.25 104.58,-19.25"/>
|
||||
<polygon fill="black" stroke="black" points="104.46,-22.75 114.46,-19.25 104.46,-15.75 104.46,-22.75"/>
|
||||
</g>
|
||||
<!-- exit -->
|
||||
<g id="node2" class="node">
|
||||
<title>exit</title>
|
||||
<polygon fill="none" stroke="black" points="280,-38.5 241.5,-38.5 241.5,0 280,0 280,-38.5"/>
|
||||
<polyline fill="none" stroke="black" points="253.5,-38.5 241.5,-26.5"/>
|
||||
<polyline fill="none" stroke="black" points="241.5,-12 253.5,0"/>
|
||||
<polyline fill="none" stroke="black" points="268,0 280,-12"/>
|
||||
<polyline fill="none" stroke="black" points="280,-26.5 268,-38.5"/>
|
||||
<text xml:space="preserve" text-anchor="middle" x="260.75" y="-14.2" font-family="Times,serif" font-size="14.00">Exit</text>
|
||||
</g>
|
||||
<!-- research->exit -->
|
||||
<g id="edge2" class="edge">
|
||||
<title>research->exit</title>
|
||||
<path fill="none" stroke="black" d="M205.9,-19.25C213.94,-19.25 222.15,-19.25 229.66,-19.25"/>
|
||||
<polygon fill="black" stroke="black" points="229.6,-22.75 239.6,-19.25 229.6,-15.75 229.6,-22.75"/>
|
||||
</g>
|
||||
</g>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 2.6 KiB |
BIN
demo/04-pipeline.png
Normal file
|
After Width: | Height: | Size: 12 KiB |
75
demo/04-pipeline.svg
Normal file
|
|
@ -0,0 +1,75 @@
|
|||
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN"
|
||||
"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
|
||||
<!-- Generated by graphviz version 14.1.2 (20260124.0452)
|
||||
-->
|
||||
<!-- Title: Pipeline Pages: 1 -->
|
||||
<svg width="579pt" height="47pt"
|
||||
viewBox="0.00 0.00 579.00 47.00" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
|
||||
<g id="graph0" class="graph" transform="scale(1 1) rotate(0) translate(4 42.5)">
|
||||
<title>Pipeline</title>
|
||||
<polygon fill="white" stroke="none" points="-4,4 -4,-42.5 574.62,-42.5 574.62,4 -4,4"/>
|
||||
<!-- start -->
|
||||
<g id="node1" class="node">
|
||||
<title>start</title>
|
||||
<polygon fill="none" stroke="black" points="40.05,-37.25 0,-19.25 40.05,-1.25 80.1,-19.25 40.05,-37.25"/>
|
||||
<polyline fill="none" stroke="black" points="10.95,-24.17 10.95,-14.33"/>
|
||||
<polyline fill="none" stroke="black" points="29.11,-6.17 51,-6.17"/>
|
||||
<polyline fill="none" stroke="black" points="69.16,-14.33 69.16,-24.17"/>
|
||||
<polyline fill="none" stroke="black" points="51,-32.33 29.11,-32.33"/>
|
||||
<text xml:space="preserve" text-anchor="middle" x="40.05" y="-14.2" font-family="Times,serif" font-size="14.00">Start</text>
|
||||
</g>
|
||||
<!-- scan -->
|
||||
<g id="node3" class="node">
|
||||
<title>scan</title>
|
||||
<polygon fill="none" stroke="black" points="260.68,-37.25 145.68,-37.25 116.1,-1.25 231.1,-1.25 260.68,-37.25"/>
|
||||
<text xml:space="preserve" text-anchor="middle" x="188.39" y="-14.2" font-family="Times,serif" font-size="14.00">Scan Files</text>
|
||||
</g>
|
||||
<!-- start->scan -->
|
||||
<g id="edge1" class="edge">
|
||||
<title>start->scan</title>
|
||||
<path fill="none" stroke="black" d="M81.04,-19.25C92.82,-19.25 106.06,-19.25 119.09,-19.25"/>
|
||||
<polygon fill="black" stroke="black" points="118.93,-22.75 128.93,-19.25 118.93,-15.75 118.93,-22.75"/>
|
||||
</g>
|
||||
<!-- exit -->
|
||||
<g id="node2" class="node">
|
||||
<title>exit</title>
|
||||
<polygon fill="none" stroke="black" points="570.62,-38.5 532.12,-38.5 532.12,0 570.62,0 570.62,-38.5"/>
|
||||
<polyline fill="none" stroke="black" points="544.12,-38.5 532.12,-26.5"/>
|
||||
<polyline fill="none" stroke="black" points="532.12,-12 544.12,0"/>
|
||||
<polyline fill="none" stroke="black" points="558.62,0 570.62,-12"/>
|
||||
<polyline fill="none" stroke="black" points="570.62,-26.5 558.62,-38.5"/>
|
||||
<text xml:space="preserve" text-anchor="middle" x="551.37" y="-14.2" font-family="Times,serif" font-size="14.00">Exit</text>
|
||||
</g>
|
||||
<!-- analyze -->
|
||||
<g id="node4" class="node">
|
||||
<title>analyze</title>
|
||||
<ellipse fill="none" stroke="black" cx="338.31" cy="-19.25" rx="41.63" ry="18"/>
|
||||
<text xml:space="preserve" text-anchor="middle" x="338.31" y="-14.2" font-family="Times,serif" font-size="14.00">Analyze</text>
|
||||
</g>
|
||||
<!-- scan->analyze -->
|
||||
<g id="edge2" class="edge">
|
||||
<title>scan->analyze</title>
|
||||
<path fill="none" stroke="black" d="M246.16,-19.25C259.01,-19.25 272.59,-19.25 285.23,-19.25"/>
|
||||
<polygon fill="black" stroke="black" points="285.02,-22.75 295.02,-19.25 285.02,-15.75 285.02,-22.75"/>
|
||||
</g>
|
||||
<!-- suggest -->
|
||||
<g id="node5" class="node">
|
||||
<title>suggest</title>
|
||||
<ellipse fill="none" stroke="black" cx="456.03" cy="-19.25" rx="40.09" ry="18"/>
|
||||
<text xml:space="preserve" text-anchor="middle" x="456.03" y="-14.2" font-family="Times,serif" font-size="14.00">Suggest</text>
|
||||
</g>
|
||||
<!-- analyze->suggest -->
|
||||
<g id="edge3" class="edge">
|
||||
<title>analyze->suggest</title>
|
||||
<path fill="none" stroke="black" d="M380.43,-19.25C388.11,-19.25 396.23,-19.25 404.16,-19.25"/>
|
||||
<polygon fill="black" stroke="black" points="404.07,-22.75 414.07,-19.25 404.07,-15.75 404.07,-22.75"/>
|
||||
</g>
|
||||
<!-- suggest->exit -->
|
||||
<g id="edge4" class="edge">
|
||||
<title>suggest->exit</title>
|
||||
<path fill="none" stroke="black" d="M496.61,-19.25C504.7,-19.25 513.07,-19.25 520.74,-19.25"/>
|
||||
<polygon fill="black" stroke="black" points="520.54,-22.75 530.54,-19.25 520.54,-15.75 520.54,-22.75"/>
|
||||
</g>
|
||||
</g>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 3.8 KiB |
BIN
demo/05-branch-loop.png
Normal file
|
After Width: | Height: | Size: 23 KiB |
95
demo/05-branch-loop.svg
Normal file
|
|
@ -0,0 +1,95 @@
|
|||
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN"
|
||||
"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
|
||||
<!-- Generated by graphviz version 14.1.2 (20260124.0452)
|
||||
-->
|
||||
<!-- Title: BranchLoop Pages: 1 -->
|
||||
<svg width="796pt" height="86pt"
|
||||
viewBox="0.00 0.00 796.00 86.00" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
|
||||
<g id="graph0" class="graph" transform="scale(1 1) rotate(0) translate(4 82.25)">
|
||||
<title>BranchLoop</title>
|
||||
<polygon fill="white" stroke="none" points="-4,4 -4,-82.25 792.37,-82.25 792.37,4 -4,4"/>
|
||||
<!-- start -->
|
||||
<g id="node1" class="node">
|
||||
<title>start</title>
|
||||
<polygon fill="none" stroke="black" points="40.05,-37.25 0,-19.25 40.05,-1.25 80.1,-19.25 40.05,-37.25"/>
|
||||
<polyline fill="none" stroke="black" points="10.95,-24.17 10.95,-14.33"/>
|
||||
<polyline fill="none" stroke="black" points="29.11,-6.17 51,-6.17"/>
|
||||
<polyline fill="none" stroke="black" points="69.16,-14.33 69.16,-24.17"/>
|
||||
<polyline fill="none" stroke="black" points="51,-32.33 29.11,-32.33"/>
|
||||
<text xml:space="preserve" text-anchor="middle" x="40.05" y="-14.2" font-family="Times,serif" font-size="14.00">Start</text>
|
||||
</g>
|
||||
<!-- plan -->
|
||||
<g id="node3" class="node">
|
||||
<title>plan</title>
|
||||
<ellipse fill="none" stroke="black" cx="144.4" cy="-19.25" rx="27.3" ry="18"/>
|
||||
<text xml:space="preserve" text-anchor="middle" x="144.4" y="-14.2" font-family="Times,serif" font-size="14.00">Plan</text>
|
||||
</g>
|
||||
<!-- start->plan -->
|
||||
<g id="edge1" class="edge">
|
||||
<title>start->plan</title>
|
||||
<path fill="none" stroke="black" d="M81.21,-19.25C89.26,-19.25 97.69,-19.25 105.66,-19.25"/>
|
||||
<polygon fill="black" stroke="black" points="105.38,-22.75 115.38,-19.25 105.38,-15.75 105.38,-22.75"/>
|
||||
</g>
|
||||
<!-- exit -->
|
||||
<g id="node2" class="node">
|
||||
<title>exit</title>
|
||||
<polygon fill="none" stroke="black" points="788.37,-38.5 749.87,-38.5 749.87,0 788.37,0 788.37,-38.5"/>
|
||||
<polyline fill="none" stroke="black" points="761.87,-38.5 749.87,-26.5"/>
|
||||
<polyline fill="none" stroke="black" points="749.87,-12 761.87,0"/>
|
||||
<polyline fill="none" stroke="black" points="776.37,0 788.37,-12"/>
|
||||
<polyline fill="none" stroke="black" points="788.37,-26.5 776.37,-38.5"/>
|
||||
<text xml:space="preserve" text-anchor="middle" x="769.12" y="-14.2" font-family="Times,serif" font-size="14.00">Exit</text>
|
||||
</g>
|
||||
<!-- implement -->
|
||||
<g id="node4" class="node">
|
||||
<title>implement</title>
|
||||
<ellipse fill="none" stroke="black" cx="260.56" cy="-19.25" rx="51.86" ry="18"/>
|
||||
<text xml:space="preserve" text-anchor="middle" x="260.56" y="-14.2" font-family="Times,serif" font-size="14.00">Implement</text>
|
||||
</g>
|
||||
<!-- plan->implement -->
|
||||
<g id="edge2" class="edge">
|
||||
<title>plan->implement</title>
|
||||
<path fill="none" stroke="black" d="M172.16,-19.25C179.68,-19.25 188.18,-19.25 196.86,-19.25"/>
|
||||
<polygon fill="black" stroke="black" points="196.78,-22.75 206.78,-19.25 196.78,-15.75 196.78,-22.75"/>
|
||||
</g>
|
||||
<!-- validate -->
|
||||
<g id="node5" class="node">
|
||||
<title>validate</title>
|
||||
<polygon fill="none" stroke="black" points="469.99,-78.25 374.09,-78.25 349.42,-42.25 445.32,-42.25 469.99,-78.25"/>
|
||||
<text xml:space="preserve" text-anchor="middle" x="409.7" y="-55.2" font-family="Times,serif" font-size="14.00">Validate</text>
|
||||
</g>
|
||||
<!-- implement->validate -->
|
||||
<g id="edge3" class="edge">
|
||||
<title>implement->validate</title>
|
||||
<path fill="none" stroke="black" d="M301.77,-30.45C313.4,-33.69 326.45,-37.33 339.32,-40.92"/>
|
||||
<polygon fill="black" stroke="black" points="338.03,-44.19 348.6,-43.5 339.91,-37.45 338.03,-44.19"/>
|
||||
</g>
|
||||
<!-- gate -->
|
||||
<g id="node6" class="node">
|
||||
<title>gate</title>
|
||||
<polygon fill="none" stroke="black" points="598.43,-37.25 506.99,-19.25 598.43,-1.25 689.87,-19.25 598.43,-37.25"/>
|
||||
<text xml:space="preserve" text-anchor="middle" x="598.43" y="-14.2" font-family="Times,serif" font-size="14.00">Tests passing?</text>
|
||||
</g>
|
||||
<!-- validate->gate -->
|
||||
<g id="edge4" class="edge">
|
||||
<title>validate->gate</title>
|
||||
<path fill="none" stroke="black" d="M451.68,-51.25C478.31,-45.4 513.35,-37.71 542.4,-31.33"/>
|
||||
<polygon fill="black" stroke="black" points="543.12,-34.76 552.14,-29.19 541.62,-27.92 543.12,-34.76"/>
|
||||
</g>
|
||||
<!-- gate->exit -->
|
||||
<g id="edge5" class="edge">
|
||||
<title>gate->exit</title>
|
||||
<path fill="none" stroke="black" d="M692.16,-19.25C708.93,-19.25 725.24,-19.25 738.43,-19.25"/>
|
||||
<polygon fill="black" stroke="black" points="738.07,-22.75 748.07,-19.25 738.07,-15.75 738.07,-22.75"/>
|
||||
<text xml:space="preserve" text-anchor="middle" x="719.87" y="-22.45" font-family="Times,serif" font-size="14.00">Pass</text>
|
||||
</g>
|
||||
<!-- gate->implement -->
|
||||
<g id="edge6" class="edge">
|
||||
<title>gate->implement</title>
|
||||
<path fill="none" stroke="black" d="M514.14,-17.38C499.43,-17.12 484.26,-16.89 469.99,-16.75 416.4,-16.22 403,-15.99 349.42,-16.75 341.24,-16.87 332.63,-17.04 324.13,-17.25"/>
|
||||
<polygon fill="black" stroke="black" points="324.08,-13.75 314.17,-17.51 324.26,-20.75 324.08,-13.75"/>
|
||||
<text xml:space="preserve" text-anchor="middle" x="409.7" y="-19.95" font-family="Times,serif" font-size="14.00">Fix</text>
|
||||
</g>
|
||||
</g>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 5 KiB |
BIN
demo/06-parallel.png
Normal file
|
After Width: | Height: | Size: 40 KiB |
127
demo/06-parallel.svg
Normal file
|
|
@ -0,0 +1,127 @@
|
|||
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN"
|
||||
"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
|
||||
<!-- Generated by graphviz version 14.1.2 (20260124.0452)
|
||||
-->
|
||||
<!-- Title: Parallel Pages: 1 -->
|
||||
<svg width="857pt" height="152pt"
|
||||
viewBox="0.00 0.00 857.00 152.00" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
|
||||
<g id="graph0" class="graph" transform="scale(1 1) rotate(0) translate(4 148)">
|
||||
<title>Parallel</title>
|
||||
<polygon fill="white" stroke="none" points="-4,4 -4,-148 852.88,-148 852.88,4 -4,4"/>
|
||||
<!-- start -->
|
||||
<g id="node1" class="node">
|
||||
<title>start</title>
|
||||
<polygon fill="none" stroke="black" points="40.05,-90 0,-72 40.05,-54 80.1,-72 40.05,-90"/>
|
||||
<polyline fill="none" stroke="black" points="10.95,-76.92 10.95,-67.08"/>
|
||||
<polyline fill="none" stroke="black" points="29.11,-58.92 51,-58.92"/>
|
||||
<polyline fill="none" stroke="black" points="69.16,-67.08 69.16,-76.92"/>
|
||||
<polyline fill="none" stroke="black" points="51,-85.08 29.11,-85.08"/>
|
||||
<text xml:space="preserve" text-anchor="middle" x="40.05" y="-66.95" font-family="Times,serif" font-size="14.00">Start</text>
|
||||
</g>
|
||||
<!-- fork -->
|
||||
<g id="node3" class="node">
|
||||
<title>fork</title>
|
||||
<polygon fill="none" stroke="black" points="207.85,-90 116.1,-90 116.1,-86 112.1,-86 112.1,-82 116.1,-82 116.1,-62 112.1,-62 112.1,-58 116.1,-58 116.1,-54 207.85,-54 207.85,-90"/>
|
||||
<polyline fill="none" stroke="black" points="116.1,-86 120.1,-86 120.1,-82 116.1,-82"/>
|
||||
<polyline fill="none" stroke="black" points="116.1,-62 120.1,-62 120.1,-58 116.1,-58"/>
|
||||
<text xml:space="preserve" text-anchor="middle" x="161.98" y="-66.95" font-family="Times,serif" font-size="14.00">Fork Analysis</text>
|
||||
</g>
|
||||
<!-- start->fork -->
|
||||
<g id="edge1" class="edge">
|
||||
<title>start->fork</title>
|
||||
<path fill="none" stroke="black" d="M81.32,-72C88.72,-72 96.58,-72 104.36,-72"/>
|
||||
<polygon fill="black" stroke="black" points="104.14,-75.5 114.14,-72 104.14,-68.5 104.14,-75.5"/>
|
||||
</g>
|
||||
<!-- exit -->
|
||||
<g id="node2" class="node">
|
||||
<title>exit</title>
|
||||
<polygon fill="none" stroke="black" points="848.88,-91.25 810.38,-91.25 810.38,-52.75 848.88,-52.75 848.88,-91.25"/>
|
||||
<polyline fill="none" stroke="black" points="822.38,-91.25 810.38,-79.25"/>
|
||||
<polyline fill="none" stroke="black" points="810.38,-64.75 822.38,-52.75"/>
|
||||
<polyline fill="none" stroke="black" points="836.88,-52.75 848.88,-64.75"/>
|
||||
<polyline fill="none" stroke="black" points="848.88,-79.25 836.88,-91.25"/>
|
||||
<text xml:space="preserve" text-anchor="middle" x="829.63" y="-66.95" font-family="Times,serif" font-size="14.00">Exit</text>
|
||||
</g>
|
||||
<!-- security -->
|
||||
<g id="node4" class="node">
|
||||
<title>security</title>
|
||||
<ellipse fill="none" stroke="black" cx="331.54" cy="-126" rx="64.66" ry="18"/>
|
||||
<text xml:space="preserve" text-anchor="middle" x="331.54" y="-120.95" font-family="Times,serif" font-size="14.00">Security Audit</text>
|
||||
</g>
|
||||
<!-- fork->security -->
|
||||
<g id="edge2" class="edge">
|
||||
<title>fork->security</title>
|
||||
<path fill="none" stroke="black" d="M208.26,-87.3C219.85,-91.16 232.3,-95.27 243.85,-99 254.21,-102.34 265.28,-105.84 275.93,-109.18"/>
|
||||
<polygon fill="black" stroke="black" points="274.8,-112.49 285.38,-112.12 276.88,-105.81 274.8,-112.49"/>
|
||||
</g>
|
||||
<!-- architecture -->
|
||||
<g id="node5" class="node">
|
||||
<title>architecture</title>
|
||||
<ellipse fill="none" stroke="black" cx="331.54" cy="-72" rx="87.69" ry="18"/>
|
||||
<text xml:space="preserve" text-anchor="middle" x="331.54" y="-66.95" font-family="Times,serif" font-size="14.00">Architecture Review</text>
|
||||
</g>
|
||||
<!-- fork->architecture -->
|
||||
<g id="edge3" class="edge">
|
||||
<title>fork->architecture</title>
|
||||
<path fill="none" stroke="black" d="M208.32,-72C215.85,-72 223.91,-72 232.16,-72"/>
|
||||
<polygon fill="black" stroke="black" points="231.99,-75.5 241.99,-72 231.99,-68.5 231.99,-75.5"/>
|
||||
</g>
|
||||
<!-- quality -->
|
||||
<g id="node6" class="node">
|
||||
<title>quality</title>
|
||||
<ellipse fill="none" stroke="black" cx="331.54" cy="-18" rx="60.56" ry="18"/>
|
||||
<text xml:space="preserve" text-anchor="middle" x="331.54" y="-12.95" font-family="Times,serif" font-size="14.00">Code Quality</text>
|
||||
</g>
|
||||
<!-- fork->quality -->
|
||||
<g id="edge4" class="edge">
|
||||
<title>fork->quality</title>
|
||||
<path fill="none" stroke="black" d="M208.26,-56.7C219.85,-52.84 232.3,-48.73 243.85,-45 254.65,-41.52 266.24,-37.85 277.31,-34.39"/>
|
||||
<polygon fill="black" stroke="black" points="278.21,-37.78 286.71,-31.46 276.12,-31.1 278.21,-37.78"/>
|
||||
</g>
|
||||
<!-- merge -->
|
||||
<g id="node7" class="node">
|
||||
<title>merge</title>
|
||||
<polygon fill="none" stroke="black" points="615.39,-64.54 615.39,-79.46 570.82,-90 507.8,-90 463.23,-79.46 463.23,-64.54 507.8,-54 570.82,-54 615.39,-64.54"/>
|
||||
<polygon fill="none" stroke="black" points="619.39,-61.38 619.39,-82.62 571.29,-94 507.33,-94 459.23,-82.62 459.23,-61.38 507.33,-50 571.29,-50 619.39,-61.38"/>
|
||||
<polygon fill="none" stroke="black" points="623.39,-58.22 623.39,-85.78 571.76,-98 506.86,-98 455.23,-85.78 455.23,-58.22 506.86,-46 571.76,-46 623.39,-58.22"/>
|
||||
<text xml:space="preserve" text-anchor="middle" x="539.31" y="-66.95" font-family="Times,serif" font-size="14.00">Merge Findings</text>
|
||||
</g>
|
||||
<!-- security->merge -->
|
||||
<g id="edge5" class="edge">
|
||||
<title>security->merge</title>
|
||||
<path fill="none" stroke="black" d="M379.75,-113.61C403.42,-107.4 432.72,-99.71 459.67,-92.64"/>
|
||||
<polygon fill="black" stroke="black" points="460.4,-96.06 469.19,-90.14 458.63,-89.29 460.4,-96.06"/>
|
||||
</g>
|
||||
<!-- architecture->merge -->
|
||||
<g id="edge6" class="edge">
|
||||
<title>architecture->merge</title>
|
||||
<path fill="none" stroke="black" d="M419.51,-72C427.48,-72 435.59,-72 443.63,-72"/>
|
||||
<polygon fill="black" stroke="black" points="443.42,-75.5 453.42,-72 443.42,-68.5 443.42,-75.5"/>
|
||||
</g>
|
||||
<!-- quality->merge -->
|
||||
<g id="edge7" class="edge">
|
||||
<title>quality->merge</title>
|
||||
<path fill="none" stroke="black" d="M377.95,-29.92C401.88,-36.2 431.91,-44.08 459.5,-51.32"/>
|
||||
<polygon fill="black" stroke="black" points="458.31,-54.62 468.87,-53.78 460.09,-47.85 458.31,-54.62"/>
|
||||
</g>
|
||||
<!-- report -->
|
||||
<g id="node8" class="node">
|
||||
<title>report</title>
|
||||
<ellipse fill="none" stroke="black" cx="716.88" cy="-72" rx="57.49" ry="18"/>
|
||||
<text xml:space="preserve" text-anchor="middle" x="716.88" y="-66.95" font-family="Times,serif" font-size="14.00">Final Report</text>
|
||||
</g>
|
||||
<!-- merge->report -->
|
||||
<g id="edge8" class="edge">
|
||||
<title>merge->report</title>
|
||||
<path fill="none" stroke="black" d="M623.73,-72C631.75,-72 639.83,-72 647.68,-72"/>
|
||||
<polygon fill="black" stroke="black" points="647.48,-75.5 657.48,-72 647.48,-68.5 647.48,-75.5"/>
|
||||
</g>
|
||||
<!-- report->exit -->
|
||||
<g id="edge9" class="edge">
|
||||
<title>report->exit</title>
|
||||
<path fill="none" stroke="black" d="M774.55,-72C782.97,-72 791.35,-72 798.91,-72"/>
|
||||
<polygon fill="black" stroke="black" points="798.85,-75.5 808.85,-72 798.85,-68.5 798.85,-75.5"/>
|
||||
</g>
|
||||
</g>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 6.7 KiB |
BIN
demo/07-human-gate.png
Normal file
|
After Width: | Height: | Size: 29 KiB |
95
demo/07-human-gate.svg
Normal file
|
|
@ -0,0 +1,95 @@
|
|||
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN"
|
||||
"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
|
||||
<!-- Generated by graphviz version 14.1.2 (20260124.0452)
|
||||
-->
|
||||
<!-- Title: HumanGate Pages: 1 -->
|
||||
<svg width="798pt" height="98pt"
|
||||
viewBox="0.00 0.00 798.00 98.00" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
|
||||
<g id="graph0" class="graph" transform="scale(1 1) rotate(0) translate(4 94)">
|
||||
<title>HumanGate</title>
|
||||
<polygon fill="white" stroke="none" points="-4,4 -4,-94 793.75,-94 793.75,4 -4,4"/>
|
||||
<!-- start -->
|
||||
<g id="node1" class="node">
|
||||
<title>start</title>
|
||||
<polygon fill="none" stroke="black" points="40.05,-63 0,-45 40.05,-27 80.1,-45 40.05,-63"/>
|
||||
<polyline fill="none" stroke="black" points="10.95,-49.92 10.95,-40.08"/>
|
||||
<polyline fill="none" stroke="black" points="29.11,-31.92 51,-31.92"/>
|
||||
<polyline fill="none" stroke="black" points="69.16,-40.08 69.16,-49.92"/>
|
||||
<polyline fill="none" stroke="black" points="51,-58.08 29.11,-58.08"/>
|
||||
<text xml:space="preserve" text-anchor="middle" x="40.05" y="-39.95" font-family="Times,serif" font-size="14.00">Start</text>
|
||||
</g>
|
||||
<!-- draft -->
|
||||
<g id="node3" class="node">
|
||||
<title>draft</title>
|
||||
<ellipse fill="none" stroke="black" cx="182.27" cy="-45" rx="65.17" ry="18"/>
|
||||
<text xml:space="preserve" text-anchor="middle" x="182.27" y="-39.95" font-family="Times,serif" font-size="14.00">Draft Proposal</text>
|
||||
</g>
|
||||
<!-- start->draft -->
|
||||
<g id="edge1" class="edge">
|
||||
<title>start->draft</title>
|
||||
<path fill="none" stroke="black" d="M81.23,-45C88.85,-45 97.06,-45 105.37,-45"/>
|
||||
<polygon fill="black" stroke="black" points="105.22,-48.5 115.22,-45 105.22,-41.5 105.22,-48.5"/>
|
||||
</g>
|
||||
<!-- exit -->
|
||||
<g id="node2" class="node">
|
||||
<title>exit</title>
|
||||
<polygon fill="none" stroke="black" points="789.75,-63.25 751.25,-63.25 751.25,-24.75 789.75,-24.75 789.75,-63.25"/>
|
||||
<polyline fill="none" stroke="black" points="763.25,-63.25 751.25,-51.25"/>
|
||||
<polyline fill="none" stroke="black" points="751.25,-36.75 763.25,-24.75"/>
|
||||
<polyline fill="none" stroke="black" points="777.75,-24.75 789.75,-36.75"/>
|
||||
<polyline fill="none" stroke="black" points="789.75,-51.25 777.75,-63.25"/>
|
||||
<text xml:space="preserve" text-anchor="middle" x="770.5" y="-38.95" font-family="Times,serif" font-size="14.00">Exit</text>
|
||||
</g>
|
||||
<!-- approve -->
|
||||
<g id="node4" class="node">
|
||||
<title>approve</title>
|
||||
<polygon fill="none" stroke="black" points="472.77,-45 425.69,-63 331.52,-63 284.44,-45 331.52,-27 425.69,-27 472.77,-45"/>
|
||||
<text xml:space="preserve" text-anchor="middle" x="378.61" y="-39.95" font-family="Times,serif" font-size="14.00">Approve Changes?</text>
|
||||
</g>
|
||||
<!-- draft->approve -->
|
||||
<g id="edge2" class="edge">
|
||||
<title>draft->approve</title>
|
||||
<path fill="none" stroke="black" d="M247.71,-45C255.54,-45 263.68,-45 271.91,-45"/>
|
||||
<polygon fill="black" stroke="black" points="271.64,-48.5 281.64,-45 271.64,-41.5 271.64,-48.5"/>
|
||||
</g>
|
||||
<!-- apply -->
|
||||
<g id="node5" class="node">
|
||||
<title>apply</title>
|
||||
<ellipse fill="none" stroke="black" cx="646.01" cy="-72" rx="68.24" ry="18"/>
|
||||
<text xml:space="preserve" text-anchor="middle" x="646.01" y="-66.95" font-family="Times,serif" font-size="14.00">Apply Changes</text>
|
||||
</g>
|
||||
<!-- approve->apply -->
|
||||
<g id="edge3" class="edge">
|
||||
<title>approve->apply</title>
|
||||
<path fill="none" stroke="black" d="M454.24,-52.59C490.65,-56.3 534.31,-60.74 570.68,-64.44"/>
|
||||
<polygon fill="black" stroke="black" points="569.9,-67.88 580.2,-65.41 570.61,-60.91 569.9,-67.88"/>
|
||||
<text xml:space="preserve" text-anchor="middle" x="525.27" y="-66.47" font-family="Times,serif" font-size="14.00">[A] Approve</text>
|
||||
</g>
|
||||
<!-- skip -->
|
||||
<g id="node6" class="node">
|
||||
<title>skip</title>
|
||||
<ellipse fill="none" stroke="black" cx="646.01" cy="-18" rx="27.81" ry="18"/>
|
||||
<text xml:space="preserve" text-anchor="middle" x="646.01" y="-12.95" font-family="Times,serif" font-size="14.00">Skip</text>
|
||||
</g>
|
||||
<!-- approve->skip -->
|
||||
<g id="edge4" class="edge">
|
||||
<title>approve->skip</title>
|
||||
<path fill="none" stroke="black" d="M454.24,-37.41C503.95,-32.35 567.2,-25.92 606.91,-21.88"/>
|
||||
<polygon fill="black" stroke="black" points="607.09,-25.38 616.69,-20.88 606.39,-18.41 607.09,-25.38"/>
|
||||
<text xml:space="preserve" text-anchor="middle" x="525.27" y="-36.32" font-family="Times,serif" font-size="14.00">[S] Skip</text>
|
||||
</g>
|
||||
<!-- apply->exit -->
|
||||
<g id="edge5" class="edge">
|
||||
<title>apply->exit</title>
|
||||
<path fill="none" stroke="black" d="M698.6,-60.21C712.67,-56.99 727.44,-53.61 739.84,-50.78"/>
|
||||
<polygon fill="black" stroke="black" points="740.45,-54.23 749.42,-48.59 738.89,-47.41 740.45,-54.23"/>
|
||||
</g>
|
||||
<!-- skip->exit -->
|
||||
<g id="edge6" class="edge">
|
||||
<title>skip->exit</title>
|
||||
<path fill="none" stroke="black" d="M672.99,-23.51C692.59,-27.68 719.52,-33.39 739.95,-37.73"/>
|
||||
<polygon fill="black" stroke="black" points="739.13,-41.13 749.64,-39.78 740.59,-34.28 739.13,-41.13"/>
|
||||
</g>
|
||||
</g>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 4.8 KiB |
BIN
demo/08-multi-model.png
Normal file
|
After Width: | Height: | Size: 18 KiB |
87
demo/08-multi-model.svg
Normal file
|
|
@ -0,0 +1,87 @@
|
|||
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN"
|
||||
"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
|
||||
<!-- Generated by graphviz version 14.1.2 (20260124.0452)
|
||||
-->
|
||||
<!-- Title: MultiModel Pages: 1 -->
|
||||
<svg width="744pt" height="47pt"
|
||||
viewBox="0.00 0.00 744.00 47.00" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
|
||||
<g id="graph0" class="graph" transform="scale(1 1) rotate(0) translate(4 42.5)">
|
||||
<title>MultiModel</title>
|
||||
<polygon fill="white" stroke="none" points="-4,4 -4,-42.5 740.03,-42.5 740.03,4 -4,4"/>
|
||||
<!-- start -->
|
||||
<g id="node1" class="node">
|
||||
<title>start</title>
|
||||
<polygon fill="none" stroke="black" points="40.05,-37.25 0,-19.25 40.05,-1.25 80.1,-19.25 40.05,-37.25"/>
|
||||
<polyline fill="none" stroke="black" points="10.95,-24.17 10.95,-14.33"/>
|
||||
<polyline fill="none" stroke="black" points="29.11,-6.17 51,-6.17"/>
|
||||
<polyline fill="none" stroke="black" points="69.16,-14.33 69.16,-24.17"/>
|
||||
<polyline fill="none" stroke="black" points="51,-32.33 29.11,-32.33"/>
|
||||
<text xml:space="preserve" text-anchor="middle" x="40.05" y="-14.2" font-family="Times,serif" font-size="14.00">Start</text>
|
||||
</g>
|
||||
<!-- spec -->
|
||||
<g id="node3" class="node">
|
||||
<title>spec</title>
|
||||
<ellipse fill="none" stroke="black" cx="168.48" cy="-19.25" rx="52.38" ry="18"/>
|
||||
<text xml:space="preserve" text-anchor="middle" x="168.48" y="-14.2" font-family="Times,serif" font-size="14.00">Write Spec</text>
|
||||
</g>
|
||||
<!-- start->spec -->
|
||||
<g id="edge1" class="edge">
|
||||
<title>start->spec</title>
|
||||
<path fill="none" stroke="black" d="M81.05,-19.25C88.44,-19.25 96.32,-19.25 104.2,-19.25"/>
|
||||
<polygon fill="black" stroke="black" points="104.18,-22.75 114.18,-19.25 104.18,-15.75 104.18,-22.75"/>
|
||||
</g>
|
||||
<!-- exit -->
|
||||
<g id="node2" class="node">
|
||||
<title>exit</title>
|
||||
<polygon fill="none" stroke="black" points="736.03,-38.5 697.53,-38.5 697.53,0 736.03,0 736.03,-38.5"/>
|
||||
<polyline fill="none" stroke="black" points="709.53,-38.5 697.53,-26.5"/>
|
||||
<polyline fill="none" stroke="black" points="697.53,-12 709.53,0"/>
|
||||
<polyline fill="none" stroke="black" points="724.03,0 736.03,-12"/>
|
||||
<polyline fill="none" stroke="black" points="736.03,-26.5 724.03,-38.5"/>
|
||||
<text xml:space="preserve" text-anchor="middle" x="716.78" y="-14.2" font-family="Times,serif" font-size="14.00">Exit</text>
|
||||
</g>
|
||||
<!-- implement -->
|
||||
<g id="node4" class="node coding">
|
||||
<title>implement</title>
|
||||
<ellipse fill="none" stroke="black" cx="308.71" cy="-19.25" rx="51.86" ry="18"/>
|
||||
<text xml:space="preserve" text-anchor="middle" x="308.71" y="-14.2" font-family="Times,serif" font-size="14.00">Implement</text>
|
||||
</g>
|
||||
<!-- spec->implement -->
|
||||
<g id="edge2" class="edge">
|
||||
<title>spec->implement</title>
|
||||
<path fill="none" stroke="black" d="M221.34,-19.25C229.07,-19.25 237.09,-19.25 245.01,-19.25"/>
|
||||
<polygon fill="black" stroke="black" points="244.96,-22.75 254.96,-19.25 244.96,-15.75 244.96,-22.75"/>
|
||||
</g>
|
||||
<!-- test -->
|
||||
<g id="node5" class="node coding">
|
||||
<title>test</title>
|
||||
<ellipse fill="none" stroke="black" cx="449.98" cy="-19.25" rx="53.4" ry="18"/>
|
||||
<text xml:space="preserve" text-anchor="middle" x="449.98" y="-14.2" font-family="Times,serif" font-size="14.00">Write Tests</text>
|
||||
</g>
|
||||
<!-- implement->test -->
|
||||
<g id="edge3" class="edge">
|
||||
<title>implement->test</title>
|
||||
<path fill="none" stroke="black" d="M360.78,-19.25C368.69,-19.25 376.95,-19.25 385.11,-19.25"/>
|
||||
<polygon fill="black" stroke="black" points="385,-22.75 395,-19.25 385,-15.75 385,-22.75"/>
|
||||
</g>
|
||||
<!-- review -->
|
||||
<g id="node6" class="node">
|
||||
<title>review</title>
|
||||
<ellipse fill="none" stroke="black" cx="600.45" cy="-19.25" rx="61.08" ry="18"/>
|
||||
<text xml:space="preserve" text-anchor="middle" x="600.45" y="-14.2" font-family="Times,serif" font-size="14.00">Code Review</text>
|
||||
</g>
|
||||
<!-- test->review -->
|
||||
<g id="edge4" class="edge">
|
||||
<title>test->review</title>
|
||||
<path fill="none" stroke="black" d="M503.74,-19.25C511.5,-19.25 519.61,-19.25 527.67,-19.25"/>
|
||||
<polygon fill="black" stroke="black" points="527.5,-22.75 537.5,-19.25 527.5,-15.75 527.5,-22.75"/>
|
||||
</g>
|
||||
<!-- review->exit -->
|
||||
<g id="edge5" class="edge">
|
||||
<title>review->exit</title>
|
||||
<path fill="none" stroke="black" d="M661.96,-19.25C670.3,-19.25 678.54,-19.25 685.97,-19.25"/>
|
||||
<polygon fill="black" stroke="black" points="685.72,-22.75 695.72,-19.25 685.72,-15.75 685.72,-22.75"/>
|
||||
</g>
|
||||
</g>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 4.3 KiB |
11
demo/09-simplify.dot
Normal file
|
|
@ -0,0 +1,11 @@
|
|||
digraph Simplify {
|
||||
graph [goal="Review and simplify recent code changes"]
|
||||
rankdir=LR
|
||||
|
||||
start [shape=Mdiamond, label="Start"]
|
||||
exit [shape=Msquare, label="Exit"]
|
||||
|
||||
simplify [label="Simplify", prompt="@docs-internal/prompts/simplify.md"]
|
||||
|
||||
start -> simplify -> exit
|
||||
}
|
||||
BIN
demo/09-simplify.png
Normal file
|
After Width: | Height: | Size: 7.2 KiB |
51
demo/09-simplify.svg
Normal file
|
|
@ -0,0 +1,51 @@
|
|||
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN"
|
||||
"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
|
||||
<!-- Generated by graphviz version 14.1.2 (20260124.0452)
|
||||
-->
|
||||
<!-- Title: Simplify Pages: 1 -->
|
||||
<svg width="286pt" height="47pt"
|
||||
viewBox="0.00 0.00 286.00 47.00" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
|
||||
<g id="graph0" class="graph" transform="scale(1 1) rotate(0) translate(4 42.5)">
|
||||
<title>Simplify</title>
|
||||
<polygon fill="white" stroke="none" points="-4,4 -4,-42.5 281.95,-42.5 281.95,4 -4,4"/>
|
||||
<!-- start -->
|
||||
<g id="node1" class="node">
|
||||
<title>start</title>
|
||||
<polygon fill="none" stroke="black" points="40.05,-37.25 0,-19.25 40.05,-1.25 80.1,-19.25 40.05,-37.25"/>
|
||||
<polyline fill="none" stroke="black" points="10.95,-24.17 10.95,-14.33"/>
|
||||
<polyline fill="none" stroke="black" points="29.11,-6.17 51,-6.17"/>
|
||||
<polyline fill="none" stroke="black" points="69.16,-14.33 69.16,-24.17"/>
|
||||
<polyline fill="none" stroke="black" points="51,-32.33 29.11,-32.33"/>
|
||||
<text xml:space="preserve" text-anchor="middle" x="40.05" y="-14.2" font-family="Times,serif" font-size="14.00">Start</text>
|
||||
</g>
|
||||
<!-- simplify -->
|
||||
<g id="node3" class="node">
|
||||
<title>simplify</title>
|
||||
<ellipse fill="none" stroke="black" cx="159.78" cy="-19.25" rx="43.67" ry="18"/>
|
||||
<text xml:space="preserve" text-anchor="middle" x="159.78" y="-14.2" font-family="Times,serif" font-size="14.00">Simplify</text>
|
||||
</g>
|
||||
<!-- start->simplify -->
|
||||
<g id="edge1" class="edge">
|
||||
<title>start->simplify</title>
|
||||
<path fill="none" stroke="black" d="M81.24,-19.25C88.75,-19.25 96.73,-19.25 104.59,-19.25"/>
|
||||
<polygon fill="black" stroke="black" points="104.44,-22.75 114.44,-19.25 104.44,-15.75 104.44,-22.75"/>
|
||||
</g>
|
||||
<!-- exit -->
|
||||
<g id="node2" class="node">
|
||||
<title>exit</title>
|
||||
<polygon fill="none" stroke="black" points="277.95,-38.5 239.45,-38.5 239.45,0 277.95,0 277.95,-38.5"/>
|
||||
<polyline fill="none" stroke="black" points="251.45,-38.5 239.45,-26.5"/>
|
||||
<polyline fill="none" stroke="black" points="239.45,-12 251.45,0"/>
|
||||
<polyline fill="none" stroke="black" points="265.95,0 277.95,-12"/>
|
||||
<polyline fill="none" stroke="black" points="277.95,-26.5 265.95,-38.5"/>
|
||||
<text xml:space="preserve" text-anchor="middle" x="258.7" y="-14.2" font-family="Times,serif" font-size="14.00">Exit</text>
|
||||
</g>
|
||||
<!-- simplify->exit -->
|
||||
<g id="edge2" class="edge">
|
||||
<title>simplify->exit</title>
|
||||
<path fill="none" stroke="black" d="M203.85,-19.25C211.85,-19.25 220.05,-19.25 227.56,-19.25"/>
|
||||
<polygon fill="black" stroke="black" points="227.51,-22.75 237.51,-19.25 227.51,-15.75 227.51,-22.75"/>
|
||||
</g>
|
||||
</g>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 2.6 KiB |
17
demo/10-plan-implement.dot
Normal file
|
|
@ -0,0 +1,17 @@
|
|||
digraph PlanImplement {
|
||||
graph [goal="Plan, approve, implement, and simplify a change"]
|
||||
rankdir=LR
|
||||
|
||||
start [shape=Mdiamond, label="Start"]
|
||||
exit [shape=Msquare, label="Exit"]
|
||||
|
||||
plan [label="Plan", prompt="Analyze the goal and codebase. Write a clear, step-by-step implementation plan to a Markdown file called plan.md. Include what files will change and why.", reasoning_effort="high"]
|
||||
approve [shape=hexagon, label="Approve Plan"]
|
||||
implement [label="Implement", prompt="Read plan.md and implement every step. Make all the code changes described in the plan."]
|
||||
simplify [label="Simplify", prompt="@docs-internal/prompts/simplify.md"]
|
||||
|
||||
start -> plan -> approve
|
||||
approve -> implement [label="[A] Approve"]
|
||||
approve -> plan [label="[R] Revise"]
|
||||
implement -> simplify -> exit
|
||||
}
|
||||
BIN
demo/10-plan-implement.png
Normal file
|
After Width: | Height: | Size: 22 KiB |
95
demo/10-plan-implement.svg
Normal file
|
|
@ -0,0 +1,95 @@
|
|||
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN"
|
||||
"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
|
||||
<!-- Generated by graphviz version 14.1.2 (20260124.0452)
|
||||
-->
|
||||
<!-- Title: PlanImplement Pages: 1 -->
|
||||
<svg width="826pt" height="49pt"
|
||||
viewBox="0.00 0.00 826.00 49.00" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
|
||||
<g id="graph0" class="graph" transform="scale(1 1) rotate(0) translate(4 45.07)">
|
||||
<title>PlanImplement</title>
|
||||
<polygon fill="white" stroke="none" points="-4,4 -4,-45.07 822.18,-45.07 822.18,4 -4,4"/>
|
||||
<!-- start -->
|
||||
<g id="node1" class="node">
|
||||
<title>start</title>
|
||||
<polygon fill="none" stroke="black" points="40.05,-39.82 0,-21.82 40.05,-3.82 80.1,-21.82 40.05,-39.82"/>
|
||||
<polyline fill="none" stroke="black" points="10.95,-26.74 10.95,-16.9"/>
|
||||
<polyline fill="none" stroke="black" points="29.11,-8.74 51,-8.74"/>
|
||||
<polyline fill="none" stroke="black" points="69.16,-16.9 69.16,-26.74"/>
|
||||
<polyline fill="none" stroke="black" points="51,-34.9 29.11,-34.9"/>
|
||||
<text xml:space="preserve" text-anchor="middle" x="40.05" y="-16.77" font-family="Times,serif" font-size="14.00">Start</text>
|
||||
</g>
|
||||
<!-- plan -->
|
||||
<g id="node3" class="node">
|
||||
<title>plan</title>
|
||||
<ellipse fill="none" stroke="black" cx="144.4" cy="-21.82" rx="27.3" ry="18"/>
|
||||
<text xml:space="preserve" text-anchor="middle" x="144.4" y="-16.77" font-family="Times,serif" font-size="14.00">Plan</text>
|
||||
</g>
|
||||
<!-- start->plan -->
|
||||
<g id="edge1" class="edge">
|
||||
<title>start->plan</title>
|
||||
<path fill="none" stroke="black" d="M81.21,-21.82C89.26,-21.82 97.69,-21.82 105.66,-21.82"/>
|
||||
<polygon fill="black" stroke="black" points="105.38,-25.32 115.38,-21.82 105.38,-18.32 105.38,-25.32"/>
|
||||
</g>
|
||||
<!-- exit -->
|
||||
<g id="node2" class="node">
|
||||
<title>exit</title>
|
||||
<polygon fill="none" stroke="black" points="818.18,-41.07 779.68,-41.07 779.68,-2.57 818.18,-2.57 818.18,-41.07"/>
|
||||
<polyline fill="none" stroke="black" points="791.68,-41.07 779.68,-29.07"/>
|
||||
<polyline fill="none" stroke="black" points="779.68,-14.57 791.68,-2.57"/>
|
||||
<polyline fill="none" stroke="black" points="806.18,-2.57 818.18,-14.57"/>
|
||||
<polyline fill="none" stroke="black" points="818.18,-29.07 806.18,-41.07"/>
|
||||
<text xml:space="preserve" text-anchor="middle" x="798.93" y="-16.77" font-family="Times,serif" font-size="14.00">Exit</text>
|
||||
</g>
|
||||
<!-- approve -->
|
||||
<g id="node4" class="node">
|
||||
<title>approve</title>
|
||||
<polygon fill="none" stroke="black" points="409.61,-21.82 373.75,-39.82 302.05,-39.82 266.19,-21.82 302.05,-3.82 373.75,-3.82 409.61,-21.82"/>
|
||||
<text xml:space="preserve" text-anchor="middle" x="337.9" y="-16.77" font-family="Times,serif" font-size="14.00">Approve Plan</text>
|
||||
</g>
|
||||
<!-- plan->approve -->
|
||||
<g id="edge2" class="edge">
|
||||
<title>plan->approve</title>
|
||||
<path fill="none" stroke="black" d="M172.09,-23.22C177.89,-23.47 184,-23.69 189.69,-23.82 211.78,-24.32 235.73,-24.25 257.77,-23.95"/>
|
||||
<polygon fill="black" stroke="black" points="257.65,-27.45 267.59,-23.79 257.54,-20.45 257.65,-27.45"/>
|
||||
</g>
|
||||
<!-- approve->plan -->
|
||||
<g id="edge4" class="edge">
|
||||
<title>approve->plan</title>
|
||||
<path fill="none" stroke="black" d="M291.53,-8.6C262.28,-1.92 223.54,3.46 189.69,-3.32 185.53,-4.16 181.26,-5.39 177.1,-6.84"/>
|
||||
<polygon fill="black" stroke="black" points="175.92,-3.54 167.89,-10.46 178.48,-10.06 175.92,-3.54"/>
|
||||
<text xml:space="preserve" text-anchor="middle" x="218.94" y="-6.52" font-family="Times,serif" font-size="14.00">[R] Revise</text>
|
||||
</g>
|
||||
<!-- implement -->
|
||||
<g id="node5" class="node">
|
||||
<title>implement</title>
|
||||
<ellipse fill="none" stroke="black" cx="566.47" cy="-21.82" rx="51.86" ry="18"/>
|
||||
<text xml:space="preserve" text-anchor="middle" x="566.47" y="-16.77" font-family="Times,serif" font-size="14.00">Implement</text>
|
||||
</g>
|
||||
<!-- approve->implement -->
|
||||
<g id="edge3" class="edge">
|
||||
<title>approve->implement</title>
|
||||
<path fill="none" stroke="black" d="M410.59,-21.82C440.21,-21.82 474.25,-21.82 502.85,-21.82"/>
|
||||
<polygon fill="black" stroke="black" points="502.83,-25.32 512.83,-21.82 502.83,-18.32 502.83,-25.32"/>
|
||||
<text xml:space="preserve" text-anchor="middle" x="462.11" y="-25.02" font-family="Times,serif" font-size="14.00">[A] Approve</text>
|
||||
</g>
|
||||
<!-- simplify -->
|
||||
<g id="node6" class="node">
|
||||
<title>simplify</title>
|
||||
<ellipse fill="none" stroke="black" cx="699.01" cy="-21.82" rx="43.67" ry="18"/>
|
||||
<text xml:space="preserve" text-anchor="middle" x="699.01" y="-16.77" font-family="Times,serif" font-size="14.00">Simplify</text>
|
||||
</g>
|
||||
<!-- implement->simplify -->
|
||||
<g id="edge5" class="edge">
|
||||
<title>implement->simplify</title>
|
||||
<path fill="none" stroke="black" d="M618.69,-21.82C626.84,-21.82 635.31,-21.82 643.53,-21.82"/>
|
||||
<polygon fill="black" stroke="black" points="643.44,-25.32 653.44,-21.82 643.44,-18.32 643.44,-25.32"/>
|
||||
</g>
|
||||
<!-- simplify->exit -->
|
||||
<g id="edge6" class="edge">
|
||||
<title>simplify->exit</title>
|
||||
<path fill="none" stroke="black" d="M742.96,-21.82C751.42,-21.82 760.13,-21.82 768.05,-21.82"/>
|
||||
<polygon fill="black" stroke="black" points="767.81,-25.32 777.81,-21.82 767.81,-18.32 767.81,-25.32"/>
|
||||
</g>
|
||||
</g>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 5 KiB |
37
demo/11-ensemble.dot
Normal file
|
|
@ -0,0 +1,37 @@
|
|||
digraph Ensemble {
|
||||
graph [
|
||||
goal="Get independent opinions from multiple providers, then synthesize",
|
||||
model_stylesheet="
|
||||
#opus { llm_model: claude-opus-4-6; llm_provider: anthropic; }
|
||||
#gemini { llm_model: gemini-3.1-pro-preview; llm_provider: gemini; }
|
||||
#codex { llm_model: gpt-5.3-codex; llm_provider: openai; }
|
||||
#mercury { llm_model: mercury-2; llm_provider: inception; }
|
||||
#synth { llm_model: claude-opus-4-6; llm_provider: anthropic; reasoning_effort: high; }
|
||||
"
|
||||
]
|
||||
rankdir=LR
|
||||
|
||||
start [shape=Mdiamond, label="Start"]
|
||||
exit [shape=Msquare, label="Exit"]
|
||||
|
||||
fork [label="Fan Out", shape=component, join_policy="wait_all", error_policy="continue"]
|
||||
|
||||
opus [label="Opus", prompt="Analyze the goal. Provide your independent assessment, recommendations, and any code or prose needed. Be thorough.", codergen_mode="one_shot"]
|
||||
gemini [label="Gemini", prompt="Analyze the goal. Provide your independent assessment, recommendations, and any code or prose needed. Be thorough.", codergen_mode="one_shot"]
|
||||
codex [label="Codex", prompt="Analyze the goal. Provide your independent assessment, recommendations, and any code or prose needed. Be thorough.", codergen_mode="one_shot"]
|
||||
mercury [label="Mercury", prompt="Analyze the goal. Provide your independent assessment, recommendations, and any code or prose needed. Be thorough.", codergen_mode="one_shot"]
|
||||
|
||||
merge [label="Merge", shape=tripleoctagon]
|
||||
synth [label="Synthesize", prompt="You have received independent analyses from four different models (Opus, Gemini, Codex, Mercury). Compare their perspectives: identify consensus, highlight disagreements, and synthesize the strongest ideas into a single coherent recommendation. Note where models agreed and where they diverged.", codergen_mode="one_shot"]
|
||||
|
||||
start -> fork
|
||||
fork -> opus
|
||||
fork -> gemini
|
||||
fork -> codex
|
||||
fork -> mercury
|
||||
opus -> merge
|
||||
gemini -> merge
|
||||
codex -> merge
|
||||
mercury -> merge
|
||||
merge -> synth -> exit
|
||||
}
|
||||
BIN
demo/11-ensemble.png
Normal file
|
After Width: | Height: | Size: 41 KiB |
145
demo/11-ensemble.svg
Normal file
|
|
@ -0,0 +1,145 @@
|
|||
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN"
|
||||
"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
|
||||
<!-- Generated by graphviz version 14.1.2 (20260124.0452)
|
||||
-->
|
||||
<!-- Title: Ensemble Pages: 1 -->
|
||||
<svg width="648pt" height="206pt"
|
||||
viewBox="0.00 0.00 648.00 206.00" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
|
||||
<g id="graph0" class="graph" transform="scale(1 1) rotate(0) translate(4 202)">
|
||||
<title>Ensemble</title>
|
||||
<polygon fill="white" stroke="none" points="-4,4 -4,-202 643.67,-202 643.67,4 -4,4"/>
|
||||
<!-- start -->
|
||||
<g id="node1" class="node">
|
||||
<title>start</title>
|
||||
<polygon fill="none" stroke="black" points="40.05,-117 0,-99 40.05,-81 80.1,-99 40.05,-117"/>
|
||||
<polyline fill="none" stroke="black" points="10.95,-103.92 10.95,-94.08"/>
|
||||
<polyline fill="none" stroke="black" points="29.11,-85.92 51,-85.92"/>
|
||||
<polyline fill="none" stroke="black" points="69.16,-94.08 69.16,-103.92"/>
|
||||
<polyline fill="none" stroke="black" points="51,-112.08 29.11,-112.08"/>
|
||||
<text xml:space="preserve" text-anchor="middle" x="40.05" y="-93.95" font-family="Times,serif" font-size="14.00">Start</text>
|
||||
</g>
|
||||
<!-- fork -->
|
||||
<g id="node3" class="node">
|
||||
<title>fork</title>
|
||||
<polygon fill="none" stroke="black" points="176.35,-117 116.1,-117 116.1,-113 112.1,-113 112.1,-109 116.1,-109 116.1,-89 112.1,-89 112.1,-85 116.1,-85 116.1,-81 176.35,-81 176.35,-117"/>
|
||||
<polyline fill="none" stroke="black" points="116.1,-113 120.1,-113 120.1,-109 116.1,-109"/>
|
||||
<polyline fill="none" stroke="black" points="116.1,-89 120.1,-89 120.1,-85 116.1,-85"/>
|
||||
<text xml:space="preserve" text-anchor="middle" x="146.23" y="-93.95" font-family="Times,serif" font-size="14.00">Fan Out</text>
|
||||
</g>
|
||||
<!-- start->fork -->
|
||||
<g id="edge1" class="edge">
|
||||
<title>start->fork</title>
|
||||
<path fill="none" stroke="black" d="M81.03,-99C88.73,-99 96.8,-99 104.52,-99"/>
|
||||
<polygon fill="black" stroke="black" points="104.36,-102.5 114.36,-99 104.36,-95.5 104.36,-102.5"/>
|
||||
</g>
|
||||
<!-- exit -->
|
||||
<g id="node2" class="node">
|
||||
<title>exit</title>
|
||||
<polygon fill="none" stroke="black" points="639.67,-118.25 601.17,-118.25 601.17,-79.75 639.67,-79.75 639.67,-118.25"/>
|
||||
<polyline fill="none" stroke="black" points="613.17,-118.25 601.17,-106.25"/>
|
||||
<polyline fill="none" stroke="black" points="601.17,-91.75 613.17,-79.75"/>
|
||||
<polyline fill="none" stroke="black" points="627.67,-79.75 639.67,-91.75"/>
|
||||
<polyline fill="none" stroke="black" points="639.67,-106.25 627.67,-118.25"/>
|
||||
<text xml:space="preserve" text-anchor="middle" x="620.42" y="-93.95" font-family="Times,serif" font-size="14.00">Exit</text>
|
||||
</g>
|
||||
<!-- opus -->
|
||||
<g id="node4" class="node">
|
||||
<title>opus</title>
|
||||
<ellipse fill="none" stroke="black" cx="255.51" cy="-180" rx="30.37" ry="18"/>
|
||||
<text xml:space="preserve" text-anchor="middle" x="255.51" y="-174.95" font-family="Times,serif" font-size="14.00">Opus</text>
|
||||
</g>
|
||||
<!-- fork->opus -->
|
||||
<g id="edge2" class="edge">
|
||||
<title>fork->opus</title>
|
||||
<path fill="none" stroke="black" d="M168.11,-117.43C180.63,-128.2 197.05,-141.82 212.35,-153 216.14,-155.77 220.21,-158.57 224.27,-161.27"/>
|
||||
<polygon fill="black" stroke="black" points="222.02,-163.99 232.32,-166.49 225.83,-158.11 222.02,-163.99"/>
|
||||
</g>
|
||||
<!-- gemini -->
|
||||
<g id="node5" class="node">
|
||||
<title>gemini</title>
|
||||
<ellipse fill="none" stroke="black" cx="255.51" cy="-126" rx="39.07" ry="18"/>
|
||||
<text xml:space="preserve" text-anchor="middle" x="255.51" y="-120.95" font-family="Times,serif" font-size="14.00">Gemini</text>
|
||||
</g>
|
||||
<!-- fork->gemini -->
|
||||
<g id="edge3" class="edge">
|
||||
<title>fork->gemini</title>
|
||||
<path fill="none" stroke="black" d="M176.83,-106.45C186.97,-109 198.55,-111.92 209.63,-114.7"/>
|
||||
<polygon fill="black" stroke="black" points="208.44,-118.01 218.99,-117.06 210.15,-111.23 208.44,-118.01"/>
|
||||
</g>
|
||||
<!-- codex -->
|
||||
<g id="node6" class="node">
|
||||
<title>codex</title>
|
||||
<ellipse fill="none" stroke="black" cx="255.51" cy="-72" rx="34.97" ry="18"/>
|
||||
<text xml:space="preserve" text-anchor="middle" x="255.51" y="-66.95" font-family="Times,serif" font-size="14.00">Codex</text>
|
||||
</g>
|
||||
<!-- fork->codex -->
|
||||
<g id="edge4" class="edge">
|
||||
<title>fork->codex</title>
|
||||
<path fill="none" stroke="black" d="M176.83,-91.55C187.83,-88.78 200.52,-85.59 212.43,-82.59"/>
|
||||
<polygon fill="black" stroke="black" points="213.2,-86.01 222.04,-80.17 211.49,-79.22 213.2,-86.01"/>
|
||||
</g>
|
||||
<!-- mercury -->
|
||||
<g id="node7" class="node">
|
||||
<title>mercury</title>
|
||||
<ellipse fill="none" stroke="black" cx="255.51" cy="-18" rx="43.16" ry="18"/>
|
||||
<text xml:space="preserve" text-anchor="middle" x="255.51" y="-12.95" font-family="Times,serif" font-size="14.00">Mercury</text>
|
||||
</g>
|
||||
<!-- fork->mercury -->
|
||||
<g id="edge5" class="edge">
|
||||
<title>fork->mercury</title>
|
||||
<path fill="none" stroke="black" d="M168.11,-80.57C180.63,-69.8 197.05,-56.18 212.35,-45 214.98,-43.08 217.75,-41.14 220.55,-39.23"/>
|
||||
<polygon fill="black" stroke="black" points="222.42,-42.19 228.83,-33.76 218.56,-36.35 222.42,-42.19"/>
|
||||
</g>
|
||||
<!-- merge -->
|
||||
<g id="node8" class="node">
|
||||
<title>merge</title>
|
||||
<polygon fill="none" stroke="black" points="419.49,-91.54 419.49,-106.46 396.99,-117 365.18,-117 342.68,-106.46 342.68,-91.54 365.18,-81 396.99,-81 419.49,-91.54"/>
|
||||
<polygon fill="none" stroke="black" points="423.49,-89 423.49,-109 397.89,-121 364.28,-121 338.68,-109 338.68,-89 364.28,-77 397.89,-77 423.49,-89"/>
|
||||
<polygon fill="none" stroke="black" points="427.49,-86.46 427.49,-111.54 398.78,-125 363.39,-125 334.68,-111.54 334.68,-86.46 363.39,-73 398.78,-73 427.49,-86.46"/>
|
||||
<text xml:space="preserve" text-anchor="middle" x="381.09" y="-93.95" font-family="Times,serif" font-size="14.00">Merge</text>
|
||||
</g>
|
||||
<!-- opus->merge -->
|
||||
<g id="edge6" class="edge">
|
||||
<title>opus->merge</title>
|
||||
<path fill="none" stroke="black" d="M277.14,-166.88C284.01,-162.49 291.69,-157.56 298.68,-153 312.4,-144.06 327.35,-134.18 340.65,-125.34"/>
|
||||
<polygon fill="black" stroke="black" points="342.36,-128.41 348.75,-119.96 338.48,-122.58 342.36,-128.41"/>
|
||||
</g>
|
||||
<!-- gemini->merge -->
|
||||
<g id="edge7" class="edge">
|
||||
<title>gemini->merge</title>
|
||||
<path fill="none" stroke="black" d="M291.26,-118.41C301.22,-116.23 312.35,-113.8 323.27,-111.41"/>
|
||||
<polygon fill="black" stroke="black" points="324.02,-114.83 333.04,-109.28 322.52,-107.99 324.02,-114.83"/>
|
||||
</g>
|
||||
<!-- codex->merge -->
|
||||
<g id="edge8" class="edge">
|
||||
<title>codex->merge</title>
|
||||
<path fill="none" stroke="black" d="M288.34,-78.95C299.07,-81.3 311.39,-83.99 323.45,-86.63"/>
|
||||
<polygon fill="black" stroke="black" points="322.4,-89.98 332.92,-88.69 323.89,-83.14 322.4,-89.98"/>
|
||||
</g>
|
||||
<!-- mercury->merge -->
|
||||
<g id="edge9" class="edge">
|
||||
<title>mercury->merge</title>
|
||||
<path fill="none" stroke="black" d="M280.19,-33.07C286.23,-36.94 292.7,-41.11 298.68,-45 312.4,-53.94 327.35,-63.82 340.65,-72.66"/>
|
||||
<polygon fill="black" stroke="black" points="338.48,-75.42 348.75,-78.04 342.36,-69.59 338.48,-75.42"/>
|
||||
</g>
|
||||
<!-- synth -->
|
||||
<g id="node9" class="node">
|
||||
<title>synth</title>
|
||||
<ellipse fill="none" stroke="black" cx="514.33" cy="-99" rx="50.84" ry="18"/>
|
||||
<text xml:space="preserve" text-anchor="middle" x="514.33" y="-93.95" font-family="Times,serif" font-size="14.00">Synthesize</text>
|
||||
</g>
|
||||
<!-- merge->synth -->
|
||||
<g id="edge10" class="edge">
|
||||
<title>merge->synth</title>
|
||||
<path fill="none" stroke="black" d="M427.99,-99C435.73,-99 443.87,-99 451.92,-99"/>
|
||||
<polygon fill="black" stroke="black" points="451.69,-102.5 461.69,-99 451.69,-95.5 451.69,-102.5"/>
|
||||
</g>
|
||||
<!-- synth->exit -->
|
||||
<g id="edge11" class="edge">
|
||||
<title>synth->exit</title>
|
||||
<path fill="none" stroke="black" d="M565.55,-99C573.77,-99 582.06,-99 589.59,-99"/>
|
||||
<polygon fill="black" stroke="black" points="589.51,-102.5 599.51,-99 589.51,-95.5 589.51,-102.5"/>
|
||||
</g>
|
||||
</g>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 7.6 KiB |