@chrok/braid 0.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +28 -0
- package/CODE_OF_CONDUCT.md +22 -0
- package/CONTRIBUTING.md +61 -0
- package/LICENSE +21 -0
- package/README.md +513 -0
- package/ROADMAP.md +38 -0
- package/SECURITY.md +44 -0
- package/dist/adapters/openai.d.ts +10 -0
- package/dist/adapters/openai.js +240 -0
- package/dist/budgets.d.ts +3 -0
- package/dist/budgets.js +19 -0
- package/dist/index.d.ts +3 -0
- package/dist/index.js +2 -0
- package/dist/merge-tools.d.ts +70 -0
- package/dist/merge-tools.js +96 -0
- package/dist/runtime.d.ts +3 -0
- package/dist/runtime.js +532 -0
- package/dist/types.d.ts +238 -0
- package/dist/types.js +1 -0
- package/dist/validate.d.ts +16 -0
- package/dist/validate.js +110 -0
- package/dist/workspaces.d.ts +29 -0
- package/dist/workspaces.js +494 -0
- package/docs/assets/pi-panel.svg +40 -0
- package/docs/benchmark-results.json +192 -0
- package/docs/benchmark.md +39 -0
- package/docs/compatibility.md +42 -0
- package/docs/examples.md +31 -0
- package/docs/releasing.md +54 -0
- package/docs/resource-limits.md +53 -0
- package/examples/basic.ts +86 -0
- package/examples/code-review.ts +24 -0
- package/examples/custom-runner.ts +28 -0
- package/examples/failure-handling.ts +29 -0
- package/examples/support.ts +10 -0
- package/package.json +72 -0
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
<svg xmlns="http://www.w3.org/2000/svg" width="1120" height="770" viewBox="0 0 1120 770" role="img" aria-labelledby="title desc">
|
|
2
|
+
<title id="title">Braid Pi flow panel</title><desc id="desc">Actual panel renderer with a completed three-node offline review graph.</desc>
|
|
3
|
+
<rect width="100%" height="100%" rx="14" fill="#101722"/>
|
|
4
|
+
<text x="28" y="30" fill="#92b9ff" font-family="monospace" font-size="15">/braid · rendered offline demo · no model requests</text>
|
|
5
|
+
<g fill="#dbe6f5" font-family="Menlo, Consolas, monospace" font-size="16" xml:space="preserve">
|
|
6
|
+
<text x="28" y="64">╭</text><text x="47.6" y="64">B</text><text x="57.400000000000006" y="64">r</text><text x="67.2" y="64">a</text><text x="77" y="64">i</text><text x="86.80000000000001" y="64">d</text><text x="106.4" y="64">─</text><text x="116.2" y="64">─</text><text x="126" y="64">─</text><text x="135.8" y="64">─</text><text x="145.60000000000002" y="64">─</text><text x="155.4" y="64">─</text><text x="165.20000000000002" y="64">─</text><text x="175" y="64">─</text><text x="184.8" y="64">─</text><text x="194.60000000000002" y="64">─</text><text x="204.4" y="64">─</text><text x="214.20000000000002" y="64">─</text><text x="224" y="64">─</text><text x="233.8" y="64">─</text><text x="243.60000000000002" y="64">─</text><text x="253.4" y="64">─</text><text x="263.20000000000005" y="64">─</text><text x="273" y="64">─</text><text x="282.8" y="64">─</text><text x="292.6" y="64">─</text><text x="302.40000000000003" y="64">─</text><text x="312.20000000000005" y="64">─</text><text x="322" y="64">─</text><text x="331.8" y="64">─</text><text x="341.6" y="64">─</text><text x="351.40000000000003" y="64">─</text><text x="361.20000000000005" y="64">─</text><text x="371" y="64">─</text><text x="380.8" y="64">─</text><text x="390.6" y="64">─</text><text x="400.40000000000003" y="64">─</text><text x="410.20000000000005" y="64">─</text><text x="420" y="64">─</text><text x="429.8" y="64">─</text><text x="439.6" y="64">─</text><text x="449.40000000000003" y="64">─</text><text x="459.20000000000005" y="64">─</text><text x="469.00000000000006" y="64">─</text><text x="478.8" y="64">─</text><text x="488.6" y="64">─</text><text x="498.40000000000003" y="64">─</text><text x="508.20000000000005" y="64">─</text><text x="518" y="64">─</text><text x="527.8" y="64">─</text><text x="537.6" y="64">─</text><text x="547.4000000000001" y="64">─</text><text x="557.2" y="64">─</text><text x="567" y="64">─</text><text x="576.8000000000001" y="64">─</text><text x="586.6" y="64">─</text><text x="596.4000000000001" y="64">─</text><text x="606.2" y="64">─</text><text x="616" y="64">─</text><text x="625.8000000000001" y="64">─</text><text x="635.6" y="64">─</text><text x="645.4000000000001" y="64">─</text><text x="655.2" y="64">─</text><text x="665" y="64">─</text><text x="674.8000000000001" y="64">─</text><text x="684.6" y="64">─</text><text x="694.4000000000001" y="64">─</text><text x="704.2" y="64">─</text><text x="714" y="64">─</text><text x="723.8000000000001" y="64">─</text><text x="733.6" y="64">─</text><text x="743.4000000000001" y="64">─</text><text x="753.2" y="64">─</text><text x="763" y="64">─</text><text x="772.8000000000001" y="64">─</text><text x="782.6" y="64">─</text><text x="792.4000000000001" y="64">─</text><text x="802.2" y="64">─</text><text x="812" y="64">─</text><text x="821.8000000000001" y="64">─</text><text x="831.6" y="64">─</text><text x="841.4000000000001" y="64">─</text><text x="851.2" y="64">─</text><text x="861.0000000000001" y="64">─</text><text x="870.8000000000001" y="64">─</text><text x="880.6" y="64">─</text><text x="890.4000000000001" y="64">─</text><text x="900.2" y="64">─</text><text x="910.0000000000001" y="64">─</text><text x="919.8000000000001" y="64">─</text><text x="929.6" y="64">─</text><text x="939.4000000000001" y="64">─</text><text x="949.2" y="64">─</text><text x="959.0000000000001" y="64">─</text><text x="968.8000000000001" y="64">─</text><text x="978.6" y="64">─</text><text x="988.4000000000001" y="64">─</text><text x="998.2" y="64">─</text><text x="1008.0000000000001" y="64">─</text><text x="1017.8000000000001" y="64">─</text><text x="1027.6" y="64">─</text><text x="1037.4" y="64">─</text><text x="1047.2" y="64">─</text><text x="1057" y="64">╮</text>
|
|
7
|
+
<text x="28" y="84">│</text><text x="47.6" y="84">J</text><text x="57.400000000000006" y="84">o</text><text x="67.2" y="84">b</text><text x="86.80000000000001" y="84">1</text><text x="106.4" y="84">o</text><text x="116.2" y="84">f</text><text x="135.8" y="84">1</text><text x="165.20000000000002" y="84">·</text><text x="194.60000000000002" y="84">c</text><text x="204.4" y="84">o</text><text x="214.20000000000002" y="84">m</text><text x="224" y="84">p</text><text x="233.8" y="84">l</text><text x="243.60000000000002" y="84">e</text><text x="253.4" y="84">t</text><text x="263.20000000000005" y="84">e</text><text x="273" y="84">d</text><text x="1057" y="84">│</text>
|
|
8
|
+
<text x="28" y="104">│</text><text x="47.6" y="104">R</text><text x="57.400000000000006" y="104">e</text><text x="67.2" y="104">v</text><text x="77" y="104">i</text><text x="86.80000000000001" y="104">e</text><text x="96.60000000000001" y="104">w</text><text x="116.2" y="104">a</text><text x="135.8" y="104">c</text><text x="145.60000000000002" y="104">a</text><text x="155.4" y="104">c</text><text x="165.20000000000002" y="104">h</text><text x="175" y="104">e</text><text x="194.60000000000002" y="104">c</text><text x="204.4" y="104">h</text><text x="214.20000000000002" y="104">a</text><text x="224" y="104">n</text><text x="233.8" y="104">g</text><text x="243.60000000000002" y="104">e</text><text x="253.4" y="104">:</text><text x="273" y="104">i</text><text x="282.8" y="104">n</text><text x="292.6" y="104">d</text><text x="302.40000000000003" y="104">e</text><text x="312.20000000000005" y="104">p</text><text x="322" y="104">e</text><text x="331.8" y="104">n</text><text x="341.6" y="104">d</text><text x="351.40000000000003" y="104">e</text><text x="361.20000000000005" y="104">n</text><text x="371" y="104">t</text><text x="390.6" y="104">c</text><text x="400.40000000000003" y="104">h</text><text x="410.20000000000005" y="104">e</text><text x="420" y="104">c</text><text x="429.8" y="104">k</text><text x="439.6" y="104">s</text><text x="449.40000000000003" y="104">,</text><text x="469.00000000000006" y="104">o</text><text x="478.8" y="104">n</text><text x="488.6" y="104">e</text><text x="508.20000000000005" y="104">r</text><text x="518" y="104">e</text><text x="527.8" y="104">c</text><text x="537.6" y="104">o</text><text x="547.4000000000001" y="104">m</text><text x="557.2" y="104">m</text><text x="567" y="104">e</text><text x="576.8000000000001" y="104">n</text><text x="586.6" y="104">d</text><text x="596.4000000000001" y="104">a</text><text x="606.2" y="104">t</text><text x="616" y="104">i</text><text x="625.8000000000001" y="104">o</text><text x="635.6" y="104">n</text><text x="1057" y="104">│</text>
|
|
9
|
+
<text x="28" y="124">│</text><text x="47.6" y="124">d</text><text x="57.400000000000006" y="124">e</text><text x="67.2" y="124">m</text><text x="77" y="124">o</text><text x="86.80000000000001" y="124">-</text><text x="96.60000000000001" y="124">j</text><text x="106.4" y="124">o</text><text x="116.2" y="124">b</text><text x="135.8" y="124">(</text><text x="145.60000000000002" y="124">d</text><text x="155.4" y="124">e</text><text x="165.20000000000002" y="124">t</text><text x="175" y="124">e</text><text x="184.8" y="124">r</text><text x="194.60000000000002" y="124">m</text><text x="204.4" y="124">i</text><text x="214.20000000000002" y="124">n</text><text x="224" y="124">i</text><text x="233.8" y="124">s</text><text x="243.60000000000002" y="124">t</text><text x="253.4" y="124">i</text><text x="263.20000000000005" y="124">c</text><text x="282.8" y="124">o</text><text x="292.6" y="124">f</text><text x="302.40000000000003" y="124">f</text><text x="312.20000000000005" y="124">l</text><text x="322" y="124">i</text><text x="331.8" y="124">n</text><text x="341.6" y="124">e</text><text x="361.20000000000005" y="124">f</text><text x="371" y="124">i</text><text x="380.8" y="124">x</text><text x="390.6" y="124">t</text><text x="400.40000000000003" y="124">u</text><text x="410.20000000000005" y="124">r</text><text x="420" y="124">e</text><text x="429.8" y="124">)</text><text x="1096.2" y="124">│</text>
|
|
10
|
+
<text x="28" y="144">├</text><text x="37.8" y="144">─</text><text x="47.6" y="144">─</text><text x="57.400000000000006" y="144">─</text><text x="67.2" y="144">─</text><text x="77" y="144">─</text><text x="86.80000000000001" y="144">─</text><text x="96.60000000000001" y="144">─</text><text x="106.4" y="144">─</text><text x="116.2" y="144">─</text><text x="126" y="144">─</text><text x="135.8" y="144">─</text><text x="145.60000000000002" y="144">─</text><text x="155.4" y="144">─</text><text x="165.20000000000002" y="144">─</text><text x="175" y="144">─</text><text x="184.8" y="144">─</text><text x="194.60000000000002" y="144">─</text><text x="204.4" y="144">─</text><text x="214.20000000000002" y="144">─</text><text x="224" y="144">─</text><text x="233.8" y="144">─</text><text x="243.60000000000002" y="144">─</text><text x="253.4" y="144">─</text><text x="263.20000000000005" y="144">─</text><text x="273" y="144">─</text><text x="282.8" y="144">─</text><text x="292.6" y="144">─</text><text x="302.40000000000003" y="144">─</text><text x="312.20000000000005" y="144">─</text><text x="322" y="144">─</text><text x="331.8" y="144">─</text><text x="341.6" y="144">─</text><text x="351.40000000000003" y="144">─</text><text x="361.20000000000005" y="144">─</text><text x="371" y="144">─</text><text x="380.8" y="144">─</text><text x="390.6" y="144">─</text><text x="400.40000000000003" y="144">─</text><text x="410.20000000000005" y="144">─</text><text x="420" y="144">─</text><text x="429.8" y="144">─</text><text x="439.6" y="144">─</text><text x="449.40000000000003" y="144">─</text><text x="459.20000000000005" y="144">─</text><text x="469.00000000000006" y="144">─</text><text x="478.8" y="144">─</text><text x="488.6" y="144">─</text><text x="498.40000000000003" y="144">─</text><text x="508.20000000000005" y="144">─</text><text x="518" y="144">─</text><text x="527.8" y="144">─</text><text x="537.6" y="144">─</text><text x="547.4000000000001" y="144">─</text><text x="557.2" y="144">─</text><text x="567" y="144">─</text><text x="576.8000000000001" y="144">─</text><text x="586.6" y="144">─</text><text x="596.4000000000001" y="144">─</text><text x="606.2" y="144">─</text><text x="616" y="144">─</text><text x="625.8000000000001" y="144">─</text><text x="635.6" y="144">─</text><text x="645.4000000000001" y="144">─</text><text x="655.2" y="144">─</text><text x="665" y="144">─</text><text x="674.8000000000001" y="144">─</text><text x="684.6" y="144">─</text><text x="694.4000000000001" y="144">─</text><text x="704.2" y="144">─</text><text x="714" y="144">─</text><text x="723.8000000000001" y="144">─</text><text x="733.6" y="144">─</text><text x="743.4000000000001" y="144">─</text><text x="753.2" y="144">─</text><text x="763" y="144">─</text><text x="772.8000000000001" y="144">─</text><text x="782.6" y="144">─</text><text x="792.4000000000001" y="144">─</text><text x="802.2" y="144">─</text><text x="812" y="144">─</text><text x="821.8000000000001" y="144">─</text><text x="831.6" y="144">─</text><text x="841.4000000000001" y="144">─</text><text x="851.2" y="144">─</text><text x="861.0000000000001" y="144">─</text><text x="870.8000000000001" y="144">─</text><text x="880.6" y="144">─</text><text x="890.4000000000001" y="144">─</text><text x="900.2" y="144">─</text><text x="910.0000000000001" y="144">─</text><text x="919.8000000000001" y="144">─</text><text x="929.6" y="144">─</text><text x="939.4000000000001" y="144">─</text><text x="949.2" y="144">─</text><text x="959.0000000000001" y="144">─</text><text x="968.8000000000001" y="144">─</text><text x="978.6" y="144">─</text><text x="988.4000000000001" y="144">─</text><text x="998.2" y="144">─</text><text x="1008.0000000000001" y="144">─</text><text x="1017.8000000000001" y="144">─</text><text x="1027.6" y="144">─</text><text x="1037.4" y="144">─</text><text x="1047.2" y="144">─</text><text x="1057" y="144">┤</text>
|
|
11
|
+
<text x="28" y="164">│</text><text x="47.6" y="164">✓</text><text x="67.2" y="164">B</text><text x="77" y="164">r</text><text x="86.80000000000001" y="164">a</text><text x="96.60000000000001" y="164">i</text><text x="106.4" y="164">d</text><text x="126" y="164">c</text><text x="135.8" y="164">o</text><text x="145.60000000000002" y="164">m</text><text x="155.4" y="164">p</text><text x="165.20000000000002" y="164">l</text><text x="175" y="164">e</text><text x="184.8" y="164">t</text><text x="194.60000000000002" y="164">e</text><text x="204.4" y="164">d</text><text x="1057" y="164">│</text>
|
|
12
|
+
<text x="28" y="184">│</text><text x="47.6" y="184">3</text><text x="57.400000000000006" y="184">/</text><text x="67.2" y="184">3</text><text x="86.80000000000001" y="184">c</text><text x="96.60000000000001" y="184">o</text><text x="106.4" y="184">m</text><text x="116.2" y="184">p</text><text x="126" y="184">l</text><text x="135.8" y="184">e</text><text x="145.60000000000002" y="184">t</text><text x="155.4" y="184">e</text><text x="165.20000000000002" y="184">d</text><text x="184.8" y="184">·</text><text x="204.4" y="184">0</text><text x="224" y="184">s</text><text x="233.8" y="184">k</text><text x="243.60000000000002" y="184">i</text><text x="253.4" y="184">p</text><text x="263.20000000000005" y="184">p</text><text x="273" y="184">e</text><text x="282.8" y="184">d</text><text x="302.40000000000003" y="184">·</text><text x="322" y="184">0</text><text x="341.6" y="184">f</text><text x="351.40000000000003" y="184">a</text><text x="361.20000000000005" y="184">i</text><text x="371" y="184">l</text><text x="380.8" y="184">e</text><text x="390.6" y="184">d</text><text x="410.20000000000005" y="184">·</text><text x="429.8" y="184">0</text><text x="439.6" y="184">.</text><text x="449.40000000000003" y="184">0</text><text x="459.20000000000005" y="184">1</text><text x="469.00000000000006" y="184">s</text><text x="1057" y="184">│</text>
|
|
13
|
+
<text x="28" y="204">│</text><text x="47.6" y="204">t</text><text x="57.400000000000006" y="204">e</text><text x="67.2" y="204">r</text><text x="77" y="204">m</text><text x="86.80000000000001" y="204">i</text><text x="96.60000000000001" y="204">n</text><text x="106.4" y="204">a</text><text x="116.2" y="204">l</text><text x="126" y="204">s</text><text x="135.8" y="204">:</text><text x="155.4" y="204">r</text><text x="165.20000000000002" y="204">e</text><text x="175" y="204">v</text><text x="184.8" y="204">i</text><text x="194.60000000000002" y="204">e</text><text x="204.4" y="204">w</text><text x="1057" y="204">│</text>
|
|
14
|
+
<text x="28" y="224">│</text><text x="47.6" y="224">┌</text><text x="57.400000000000006" y="224">─</text><text x="67.2" y="224">─</text><text x="77" y="224">─</text><text x="86.80000000000001" y="224">─</text><text x="96.60000000000001" y="224">─</text><text x="106.4" y="224">─</text><text x="116.2" y="224">─</text><text x="126" y="224">─</text><text x="135.8" y="224">─</text><text x="145.60000000000002" y="224">─</text><text x="155.4" y="224">─</text><text x="165.20000000000002" y="224">─</text><text x="175" y="224">─</text><text x="184.8" y="224">─</text><text x="194.60000000000002" y="224">─</text><text x="204.4" y="224">─</text><text x="214.20000000000002" y="224">─</text><text x="224" y="224">─</text><text x="233.8" y="224">─</text><text x="243.60000000000002" y="224">─</text><text x="253.4" y="224">─</text><text x="263.20000000000005" y="224">─</text><text x="273" y="224">┐</text><text x="312.20000000000005" y="224">┌</text><text x="322" y="224">─</text><text x="331.8" y="224">─</text><text x="341.6" y="224">─</text><text x="351.40000000000003" y="224">─</text><text x="361.20000000000005" y="224">─</text><text x="371" y="224">─</text><text x="380.8" y="224">─</text><text x="390.6" y="224">─</text><text x="400.40000000000003" y="224">─</text><text x="410.20000000000005" y="224">─</text><text x="420" y="224">─</text><text x="429.8" y="224">─</text><text x="439.6" y="224">─</text><text x="449.40000000000003" y="224">─</text><text x="459.20000000000005" y="224">─</text><text x="469.00000000000006" y="224">─</text><text x="478.8" y="224">─</text><text x="488.6" y="224">─</text><text x="498.40000000000003" y="224">─</text><text x="508.20000000000005" y="224">─</text><text x="518" y="224">─</text><text x="527.8" y="224">─</text><text x="537.6" y="224">┐</text><text x="1057" y="224">│</text>
|
|
15
|
+
<text x="28" y="244">│</text><text x="47.6" y="244">│</text><text x="67.2" y="244">✓</text><text x="86.80000000000001" y="244">c</text><text x="96.60000000000001" y="244">o</text><text x="106.4" y="244">r</text><text x="116.2" y="244">r</text><text x="126" y="244">e</text><text x="135.8" y="244">c</text><text x="145.60000000000002" y="244">t</text><text x="155.4" y="244">n</text><text x="165.20000000000002" y="244">e</text><text x="175" y="244">s</text><text x="184.8" y="244">s</text><text x="204.4" y="244">d</text><text x="214.20000000000002" y="244">o</text><text x="224" y="244">n</text><text x="233.8" y="244">e</text><text x="253.4" y="244">·</text><text x="273" y="244">│</text><text x="312.20000000000005" y="244">│</text><text x="331.8" y="244">✓</text><text x="351.40000000000003" y="244">t</text><text x="361.20000000000005" y="244">e</text><text x="371" y="244">s</text><text x="380.8" y="244">t</text><text x="390.6" y="244">s</text><text x="410.20000000000005" y="244">d</text><text x="420" y="244">o</text><text x="429.8" y="244">n</text><text x="439.6" y="244">e</text><text x="459.20000000000005" y="244">·</text><text x="478.8" y="244">0</text><text x="488.6" y="244">.</text><text x="498.40000000000003" y="244">0</text><text x="508.20000000000005" y="244">1</text><text x="518" y="244">s</text><text x="537.6" y="244">│</text><text x="1057" y="244">│</text>
|
|
16
|
+
<text x="28" y="264">│</text><text x="47.6" y="264">│</text><text x="77" y="264">0</text><text x="86.80000000000001" y="264">.</text><text x="96.60000000000001" y="264">0</text><text x="106.4" y="264">1</text><text x="116.2" y="264">s</text><text x="135.8" y="264">2</text><text x="145.60000000000002" y="264">0</text><text x="155.4" y="264">/</text><text x="165.20000000000002" y="264">1</text><text x="175" y="264">0</text><text x="184.8" y="264">0</text><text x="194.60000000000002" y="264">K</text><text x="214.20000000000002" y="264">·</text><text x="233.8" y="264">T</text><text x="243.60000000000002" y="264">0</text><text x="273" y="264">│</text><text x="312.20000000000005" y="264">│</text><text x="371" y="264">2</text><text x="380.8" y="264">0</text><text x="390.6" y="264">/</text><text x="400.40000000000003" y="264">1</text><text x="410.20000000000005" y="264">0</text><text x="420" y="264">0</text><text x="429.8" y="264">K</text><text x="449.40000000000003" y="264">·</text><text x="469.00000000000006" y="264">T</text><text x="478.8" y="264">0</text><text x="537.6" y="264">│</text><text x="1057" y="264">│</text>
|
|
17
|
+
<text x="28" y="284">│</text><text x="47.6" y="284">└</text><text x="57.400000000000006" y="284">─</text><text x="67.2" y="284">─</text><text x="77" y="284">─</text><text x="86.80000000000001" y="284">─</text><text x="96.60000000000001" y="284">─</text><text x="106.4" y="284">─</text><text x="116.2" y="284">─</text><text x="126" y="284">─</text><text x="135.8" y="284">─</text><text x="145.60000000000002" y="284">─</text><text x="155.4" y="284">─</text><text x="165.20000000000002" y="284">┬</text><text x="175" y="284">─</text><text x="184.8" y="284">─</text><text x="194.60000000000002" y="284">─</text><text x="204.4" y="284">─</text><text x="214.20000000000002" y="284">─</text><text x="224" y="284">─</text><text x="233.8" y="284">─</text><text x="243.60000000000002" y="284">─</text><text x="253.4" y="284">─</text><text x="263.20000000000005" y="284">─</text><text x="273" y="284">┘</text><text x="312.20000000000005" y="284">└</text><text x="322" y="284">─</text><text x="331.8" y="284">─</text><text x="341.6" y="284">─</text><text x="351.40000000000003" y="284">─</text><text x="361.20000000000005" y="284">─</text><text x="371" y="284">─</text><text x="380.8" y="284">─</text><text x="390.6" y="284">─</text><text x="400.40000000000003" y="284">─</text><text x="410.20000000000005" y="284">─</text><text x="420" y="284">─</text><text x="429.8" y="284">┬</text><text x="439.6" y="284">─</text><text x="449.40000000000003" y="284">─</text><text x="459.20000000000005" y="284">─</text><text x="469.00000000000006" y="284">─</text><text x="478.8" y="284">─</text><text x="488.6" y="284">─</text><text x="498.40000000000003" y="284">─</text><text x="508.20000000000005" y="284">─</text><text x="518" y="284">─</text><text x="527.8" y="284">─</text><text x="537.6" y="284">┘</text><text x="1057" y="284">│</text>
|
|
18
|
+
<text x="28" y="304">│</text><text x="165.20000000000002" y="304">└</text><text x="175" y="304">─</text><text x="184.8" y="304">─</text><text x="194.60000000000002" y="304">─</text><text x="204.4" y="304">─</text><text x="214.20000000000002" y="304">─</text><text x="224" y="304">─</text><text x="233.8" y="304">─</text><text x="243.60000000000002" y="304">─</text><text x="253.4" y="304">─</text><text x="263.20000000000005" y="304">─</text><text x="273" y="304">─</text><text x="282.8" y="304">─</text><text x="292.6" y="304">─</text><text x="302.40000000000003" y="304">┬</text><text x="312.20000000000005" y="304">─</text><text x="322" y="304">─</text><text x="331.8" y="304">─</text><text x="341.6" y="304">─</text><text x="351.40000000000003" y="304">─</text><text x="361.20000000000005" y="304">─</text><text x="371" y="304">─</text><text x="380.8" y="304">─</text><text x="390.6" y="304">─</text><text x="400.40000000000003" y="304">─</text><text x="410.20000000000005" y="304">─</text><text x="420" y="304">─</text><text x="429.8" y="304">┘</text><text x="1057" y="304">│</text>
|
|
19
|
+
<text x="28" y="324">│</text><text x="302.40000000000003" y="324">▼</text><text x="1057" y="324">│</text>
|
|
20
|
+
<text x="28" y="344">│</text><text x="184.8" y="344">┌</text><text x="194.60000000000002" y="344">─</text><text x="204.4" y="344">─</text><text x="214.20000000000002" y="344">─</text><text x="224" y="344">─</text><text x="233.8" y="344">─</text><text x="243.60000000000002" y="344">─</text><text x="253.4" y="344">─</text><text x="263.20000000000005" y="344">─</text><text x="273" y="344">─</text><text x="282.8" y="344">─</text><text x="292.6" y="344">─</text><text x="302.40000000000003" y="344">─</text><text x="312.20000000000005" y="344">─</text><text x="322" y="344">─</text><text x="331.8" y="344">─</text><text x="341.6" y="344">─</text><text x="351.40000000000003" y="344">─</text><text x="361.20000000000005" y="344">─</text><text x="371" y="344">─</text><text x="380.8" y="344">─</text><text x="390.6" y="344">─</text><text x="400.40000000000003" y="344">─</text><text x="410.20000000000005" y="344">─</text><text x="420" y="344">┐</text><text x="1057" y="344">│</text>
|
|
21
|
+
<text x="28" y="364">│</text><text x="184.8" y="364">│</text><text x="204.4" y="364">✓</text><text x="224" y="364">r</text><text x="233.8" y="364">e</text><text x="243.60000000000002" y="364">v</text><text x="253.4" y="364">i</text><text x="263.20000000000005" y="364">e</text><text x="273" y="364">w</text><text x="292.6" y="364">d</text><text x="302.40000000000003" y="364">o</text><text x="312.20000000000005" y="364">n</text><text x="322" y="364">e</text><text x="341.6" y="364">·</text><text x="361.20000000000005" y="364">0</text><text x="371" y="364">.</text><text x="380.8" y="364">0</text><text x="390.6" y="364">0</text><text x="400.40000000000003" y="364">s</text><text x="420" y="364">│</text><text x="1057" y="364">│</text>
|
|
22
|
+
<text x="28" y="384">│</text><text x="184.8" y="384">│</text><text x="243.60000000000002" y="384">2</text><text x="253.4" y="384">0</text><text x="263.20000000000005" y="384">/</text><text x="273" y="384">1</text><text x="282.8" y="384">0</text><text x="292.6" y="384">0</text><text x="302.40000000000003" y="384">K</text><text x="322" y="384">·</text><text x="341.6" y="384">T</text><text x="351.40000000000003" y="384">0</text><text x="420" y="384">│</text><text x="1057" y="384">│</text>
|
|
23
|
+
<text x="28" y="404">│</text><text x="184.8" y="404">└</text><text x="194.60000000000002" y="404">─</text><text x="204.4" y="404">─</text><text x="214.20000000000002" y="404">─</text><text x="224" y="404">─</text><text x="233.8" y="404">─</text><text x="243.60000000000002" y="404">─</text><text x="253.4" y="404">─</text><text x="263.20000000000005" y="404">─</text><text x="273" y="404">─</text><text x="282.8" y="404">─</text><text x="292.6" y="404">─</text><text x="302.40000000000003" y="404">─</text><text x="312.20000000000005" y="404">─</text><text x="322" y="404">─</text><text x="331.8" y="404">─</text><text x="341.6" y="404">─</text><text x="351.40000000000003" y="404">─</text><text x="361.20000000000005" y="404">─</text><text x="371" y="404">─</text><text x="380.8" y="404">─</text><text x="390.6" y="404">─</text><text x="400.40000000000003" y="404">─</text><text x="410.20000000000005" y="404">─</text><text x="420" y="404">┘</text><text x="1057" y="404">│</text>
|
|
24
|
+
<text x="28" y="424">│</text><text x="47.6" y="424">e</text><text x="57.400000000000006" y="424">x</text><text x="67.2" y="424">e</text><text x="77" y="424">c</text><text x="86.80000000000001" y="424">u</text><text x="96.60000000000001" y="424">t</text><text x="106.4" y="424">i</text><text x="116.2" y="424">o</text><text x="126" y="424">n</text><text x="145.60000000000002" y="424">l</text><text x="155.4" y="424">o</text><text x="165.20000000000002" y="424">g</text><text x="184.8" y="424">·</text><text x="204.4" y="424">1</text><text x="214.20000000000002" y="424">8</text><text x="233.8" y="424">e</text><text x="243.60000000000002" y="424">v</text><text x="253.4" y="424">e</text><text x="263.20000000000005" y="424">n</text><text x="273" y="424">t</text><text x="282.8" y="424">s</text><text x="292.6" y="424">:</text><text x="1057" y="424">│</text>
|
|
25
|
+
<text x="28" y="444">│</text><text x="67.2" y="444">0</text><text x="77" y="444">0</text><text x="86.80000000000001" y="444">1</text><text x="106.4" y="444">g</text><text x="116.2" y="444">r</text><text x="126" y="444">a</text><text x="135.8" y="444">p</text><text x="145.60000000000002" y="444">h</text><text x="165.20000000000002" y="444">c</text><text x="175" y="444">r</text><text x="184.8" y="444">e</text><text x="194.60000000000002" y="444">a</text><text x="204.4" y="444">t</text><text x="214.20000000000002" y="444">e</text><text x="224" y="444">d</text><text x="243.60000000000002" y="444">·</text><text x="263.20000000000005" y="444">3</text><text x="282.8" y="444">n</text><text x="292.6" y="444">o</text><text x="302.40000000000003" y="444">d</text><text x="312.20000000000005" y="444">e</text><text x="322" y="444">s</text><text x="341.6" y="444">·</text><text x="361.20000000000005" y="444">2</text><text x="380.8" y="444">e</text><text x="390.6" y="444">d</text><text x="400.40000000000003" y="444">g</text><text x="410.20000000000005" y="444">e</text><text x="420" y="444">s</text><text x="1057" y="444">│</text>
|
|
26
|
+
<text x="28" y="464">│</text><text x="67.2" y="464">0</text><text x="77" y="464">0</text><text x="86.80000000000001" y="464">2</text><text x="106.4" y="464">n</text><text x="116.2" y="464">o</text><text x="126" y="464">d</text><text x="135.8" y="464">e</text><text x="155.4" y="464">c</text><text x="165.20000000000002" y="464">r</text><text x="175" y="464">e</text><text x="184.8" y="464">a</text><text x="194.60000000000002" y="464">t</text><text x="204.4" y="464">e</text><text x="214.20000000000002" y="464">d</text><text x="233.8" y="464">·</text><text x="253.4" y="464">c</text><text x="263.20000000000005" y="464">o</text><text x="273" y="464">r</text><text x="282.8" y="464">r</text><text x="292.6" y="464">e</text><text x="302.40000000000003" y="464">c</text><text x="312.20000000000005" y="464">t</text><text x="322" y="464">n</text><text x="331.8" y="464">e</text><text x="341.6" y="464">s</text><text x="351.40000000000003" y="464">s</text><text x="371" y="464">(</text><text x="380.8" y="464">e</text><text x="390.6" y="464">x</text><text x="400.40000000000003" y="464">e</text><text x="410.20000000000005" y="464">c</text><text x="420" y="464">u</text><text x="429.8" y="464">t</text><text x="439.6" y="464">e</text><text x="449.40000000000003" y="464">)</text><text x="469.00000000000006" y="464">·</text><text x="488.6" y="464">d</text><text x="498.40000000000003" y="464">e</text><text x="508.20000000000005" y="464">m</text><text x="518" y="464">o</text><text x="527.8" y="464">/</text><text x="537.6" y="464">o</text><text x="547.4000000000001" y="464">f</text><text x="557.2" y="464">f</text><text x="567" y="464">l</text><text x="576.8000000000001" y="464">i</text><text x="586.6" y="464">n</text><text x="596.4000000000001" y="464">e</text><text x="1057" y="464">│</text>
|
|
27
|
+
<text x="28" y="484">│</text><text x="67.2" y="484">0</text><text x="77" y="484">0</text><text x="86.80000000000001" y="484">3</text><text x="106.4" y="484">n</text><text x="116.2" y="484">o</text><text x="126" y="484">d</text><text x="135.8" y="484">e</text><text x="155.4" y="484">c</text><text x="165.20000000000002" y="484">r</text><text x="175" y="484">e</text><text x="184.8" y="484">a</text><text x="194.60000000000002" y="484">t</text><text x="204.4" y="484">e</text><text x="214.20000000000002" y="484">d</text><text x="233.8" y="484">·</text><text x="253.4" y="484">t</text><text x="263.20000000000005" y="484">e</text><text x="273" y="484">s</text><text x="282.8" y="484">t</text><text x="292.6" y="484">s</text><text x="312.20000000000005" y="484">(</text><text x="322" y="484">e</text><text x="331.8" y="484">x</text><text x="341.6" y="484">e</text><text x="351.40000000000003" y="484">c</text><text x="361.20000000000005" y="484">u</text><text x="371" y="484">t</text><text x="380.8" y="484">e</text><text x="390.6" y="484">)</text><text x="410.20000000000005" y="484">·</text><text x="429.8" y="484">d</text><text x="439.6" y="484">e</text><text x="449.40000000000003" y="484">m</text><text x="459.20000000000005" y="484">o</text><text x="469.00000000000006" y="484">/</text><text x="478.8" y="484">o</text><text x="488.6" y="484">f</text><text x="498.40000000000003" y="484">f</text><text x="508.20000000000005" y="484">l</text><text x="518" y="484">i</text><text x="527.8" y="484">n</text><text x="537.6" y="484">e</text><text x="1057" y="484">│</text>
|
|
28
|
+
<text x="28" y="504">│</text><text x="67.2" y="504">0</text><text x="77" y="504">0</text><text x="86.80000000000001" y="504">4</text><text x="106.4" y="504">n</text><text x="116.2" y="504">o</text><text x="126" y="504">d</text><text x="135.8" y="504">e</text><text x="155.4" y="504">c</text><text x="165.20000000000002" y="504">r</text><text x="175" y="504">e</text><text x="184.8" y="504">a</text><text x="194.60000000000002" y="504">t</text><text x="204.4" y="504">e</text><text x="214.20000000000002" y="504">d</text><text x="233.8" y="504">·</text><text x="253.4" y="504">r</text><text x="263.20000000000005" y="504">e</text><text x="273" y="504">v</text><text x="282.8" y="504">i</text><text x="292.6" y="504">e</text><text x="302.40000000000003" y="504">w</text><text x="322" y="504">(</text><text x="331.8" y="504">e</text><text x="341.6" y="504">x</text><text x="351.40000000000003" y="504">e</text><text x="361.20000000000005" y="504">c</text><text x="371" y="504">u</text><text x="380.8" y="504">t</text><text x="390.6" y="504">e</text><text x="400.40000000000003" y="504">)</text><text x="420" y="504">·</text><text x="439.6" y="504">d</text><text x="449.40000000000003" y="504">e</text><text x="459.20000000000005" y="504">m</text><text x="469.00000000000006" y="504">o</text><text x="478.8" y="504">/</text><text x="488.6" y="504">o</text><text x="498.40000000000003" y="504">f</text><text x="508.20000000000005" y="504">f</text><text x="518" y="504">l</text><text x="527.8" y="504">i</text><text x="537.6" y="504">n</text><text x="547.4000000000001" y="504">e</text><text x="1057" y="504">│</text>
|
|
29
|
+
<text x="28" y="524">│</text><text x="67.2" y="524">0</text><text x="77" y="524">0</text><text x="86.80000000000001" y="524">5</text><text x="106.4" y="524">e</text><text x="116.2" y="524">d</text><text x="126" y="524">g</text><text x="135.8" y="524">e</text><text x="155.4" y="524">c</text><text x="165.20000000000002" y="524">r</text><text x="175" y="524">e</text><text x="184.8" y="524">a</text><text x="194.60000000000002" y="524">t</text><text x="204.4" y="524">e</text><text x="214.20000000000002" y="524">d</text><text x="233.8" y="524">·</text><text x="253.4" y="524">c</text><text x="263.20000000000005" y="524">o</text><text x="273" y="524">r</text><text x="282.8" y="524">r</text><text x="292.6" y="524">e</text><text x="302.40000000000003" y="524">c</text><text x="312.20000000000005" y="524">t</text><text x="322" y="524">n</text><text x="331.8" y="524">e</text><text x="341.6" y="524">s</text><text x="351.40000000000003" y="524">s</text><text x="371" y="524">→</text><text x="390.6" y="524">r</text><text x="400.40000000000003" y="524">e</text><text x="410.20000000000005" y="524">v</text><text x="420" y="524">i</text><text x="429.8" y="524">e</text><text x="439.6" y="524">w</text><text x="1057" y="524">│</text>
|
|
30
|
+
<text x="28" y="544">│</text><text x="67.2" y="544">0</text><text x="77" y="544">0</text><text x="86.80000000000001" y="544">6</text><text x="106.4" y="544">e</text><text x="116.2" y="544">d</text><text x="126" y="544">g</text><text x="135.8" y="544">e</text><text x="155.4" y="544">c</text><text x="165.20000000000002" y="544">r</text><text x="175" y="544">e</text><text x="184.8" y="544">a</text><text x="194.60000000000002" y="544">t</text><text x="204.4" y="544">e</text><text x="214.20000000000002" y="544">d</text><text x="233.8" y="544">·</text><text x="253.4" y="544">t</text><text x="263.20000000000005" y="544">e</text><text x="273" y="544">s</text><text x="282.8" y="544">t</text><text x="292.6" y="544">s</text><text x="312.20000000000005" y="544">→</text><text x="331.8" y="544">r</text><text x="341.6" y="544">e</text><text x="351.40000000000003" y="544">v</text><text x="361.20000000000005" y="544">i</text><text x="371" y="544">e</text><text x="380.8" y="544">w</text><text x="1057" y="544">│</text>
|
|
31
|
+
<text x="28" y="564">│</text><text x="67.2" y="564">0</text><text x="77" y="564">0</text><text x="86.80000000000001" y="564">7</text><text x="106.4" y="564">r</text><text x="116.2" y="564">u</text><text x="126" y="564">n</text><text x="135.8" y="564">n</text><text x="145.60000000000002" y="564">a</text><text x="155.4" y="564">b</text><text x="165.20000000000002" y="564">l</text><text x="175" y="564">e</text><text x="194.60000000000002" y="564">·</text><text x="214.20000000000002" y="564">c</text><text x="224" y="564">o</text><text x="233.8" y="564">r</text><text x="243.60000000000002" y="564">r</text><text x="253.4" y="564">e</text><text x="263.20000000000005" y="564">c</text><text x="273" y="564">t</text><text x="282.8" y="564">n</text><text x="292.6" y="564">e</text><text x="302.40000000000003" y="564">s</text><text x="312.20000000000005" y="564">s</text><text x="1057" y="564">│</text>
|
|
32
|
+
<text x="28" y="584">│</text><text x="67.2" y="584">0</text><text x="77" y="584">0</text><text x="86.80000000000001" y="584">8</text><text x="106.4" y="584">r</text><text x="116.2" y="584">u</text><text x="126" y="584">n</text><text x="135.8" y="584">n</text><text x="145.60000000000002" y="584">a</text><text x="155.4" y="584">b</text><text x="165.20000000000002" y="584">l</text><text x="175" y="584">e</text><text x="194.60000000000002" y="584">·</text><text x="214.20000000000002" y="584">t</text><text x="224" y="584">e</text><text x="233.8" y="584">s</text><text x="243.60000000000002" y="584">t</text><text x="253.4" y="584">s</text><text x="1057" y="584">│</text>
|
|
33
|
+
<text x="28" y="604">│</text><text x="67.2" y="604">0</text><text x="77" y="604">0</text><text x="86.80000000000001" y="604">9</text><text x="106.4" y="604">s</text><text x="116.2" y="604">t</text><text x="126" y="604">a</text><text x="135.8" y="604">r</text><text x="145.60000000000002" y="604">t</text><text x="155.4" y="604">e</text><text x="165.20000000000002" y="604">d</text><text x="184.8" y="604">·</text><text x="204.4" y="604">c</text><text x="214.20000000000002" y="604">o</text><text x="224" y="604">r</text><text x="233.8" y="604">r</text><text x="243.60000000000002" y="604">e</text><text x="253.4" y="604">c</text><text x="263.20000000000005" y="604">t</text><text x="273" y="604">n</text><text x="282.8" y="604">e</text><text x="292.6" y="604">s</text><text x="302.40000000000003" y="604">s</text><text x="322" y="604">·</text><text x="341.6" y="604">d</text><text x="351.40000000000003" y="604">e</text><text x="361.20000000000005" y="604">m</text><text x="371" y="604">o</text><text x="380.8" y="604">/</text><text x="390.6" y="604">o</text><text x="400.40000000000003" y="604">f</text><text x="410.20000000000005" y="604">f</text><text x="420" y="604">l</text><text x="429.8" y="604">i</text><text x="439.6" y="604">n</text><text x="449.40000000000003" y="604">e</text><text x="1057" y="604">│</text>
|
|
34
|
+
<text x="28" y="624">│</text><text x="67.2" y="624">0</text><text x="77" y="624">1</text><text x="86.80000000000001" y="624">0</text><text x="106.4" y="624">s</text><text x="116.2" y="624">t</text><text x="126" y="624">a</text><text x="135.8" y="624">r</text><text x="145.60000000000002" y="624">t</text><text x="155.4" y="624">e</text><text x="165.20000000000002" y="624">d</text><text x="184.8" y="624">·</text><text x="204.4" y="624">t</text><text x="214.20000000000002" y="624">e</text><text x="224" y="624">s</text><text x="233.8" y="624">t</text><text x="243.60000000000002" y="624">s</text><text x="263.20000000000005" y="624">·</text><text x="282.8" y="624">d</text><text x="292.6" y="624">e</text><text x="302.40000000000003" y="624">m</text><text x="312.20000000000005" y="624">o</text><text x="322" y="624">/</text><text x="331.8" y="624">o</text><text x="341.6" y="624">f</text><text x="351.40000000000003" y="624">f</text><text x="361.20000000000005" y="624">l</text><text x="371" y="624">i</text><text x="380.8" y="624">n</text><text x="390.6" y="624">e</text><text x="1057" y="624">│</text>
|
|
35
|
+
<text x="28" y="644">│</text><text x="67.2" y="644">0</text><text x="77" y="644">1</text><text x="86.80000000000001" y="644">1</text><text x="106.4" y="644">c</text><text x="116.2" y="644">o</text><text x="126" y="644">m</text><text x="135.8" y="644">p</text><text x="145.60000000000002" y="644">l</text><text x="155.4" y="644">e</text><text x="165.20000000000002" y="644">t</text><text x="175" y="644">e</text><text x="184.8" y="644">d</text><text x="204.4" y="644">·</text><text x="224" y="644">c</text><text x="233.8" y="644">o</text><text x="243.60000000000002" y="644">r</text><text x="253.4" y="644">r</text><text x="263.20000000000005" y="644">e</text><text x="273" y="644">c</text><text x="282.8" y="644">t</text><text x="292.6" y="644">n</text><text x="302.40000000000003" y="644">e</text><text x="312.20000000000005" y="644">s</text><text x="322" y="644">s</text><text x="331.8" y="644">:</text><text x="351.40000000000003" y="644">R</text><text x="361.20000000000005" y="644">e</text><text x="371" y="644">v</text><text x="380.8" y="644">i</text><text x="390.6" y="644">e</text><text x="400.40000000000003" y="644">w</text><text x="420" y="644">c</text><text x="429.8" y="644">o</text><text x="439.6" y="644">m</text><text x="449.40000000000003" y="644">p</text><text x="459.20000000000005" y="644">l</text><text x="469.00000000000006" y="644">e</text><text x="478.8" y="644">t</text><text x="488.6" y="644">e</text><text x="498.40000000000003" y="644">;</text><text x="518" y="644">i</text><text x="527.8" y="644">n</text><text x="537.6" y="644">c</text><text x="547.4000000000001" y="644">l</text><text x="557.2" y="644">u</text><text x="567" y="644">d</text><text x="576.8000000000001" y="644">e</text><text x="596.4000000000001" y="644">c</text><text x="606.2" y="644">a</text><text x="616" y="644">c</text><text x="625.8000000000001" y="644">h</text><text x="635.6" y="644">e</text><text x="645.4000000000001" y="644">-</text><text x="655.2" y="644">m</text><text x="665" y="644">i</text><text x="674.8000000000001" y="644">s</text><text x="684.6" y="644">s</text><text x="704.2" y="644">a</text><text x="714" y="644">n</text><text x="723.8000000000001" y="644">d</text><text x="743.4000000000001" y="644">e</text><text x="753.2" y="644">r</text><text x="763" y="644">r</text><text x="772.8000000000001" y="644">o</text><text x="782.6" y="644">r</text><text x="792.4000000000001" y="644">-</text><text x="802.2" y="644">p</text><text x="812" y="644">a</text><text x="821.8000000000001" y="644">t</text><text x="831.6" y="644">h</text><text x="851.2" y="644">t</text><text x="861.0000000000001" y="644">e</text><text x="870.8000000000001" y="644">s</text><text x="880.6" y="644">t</text><text x="890.4000000000001" y="644">s</text><text x="900.2" y="644">.</text><text x="1057" y="644">│</text>
|
|
36
|
+
<text x="28" y="664">├</text><text x="37.8" y="664">─</text><text x="47.6" y="664">─</text><text x="57.400000000000006" y="664">─</text><text x="67.2" y="664">─</text><text x="77" y="664">─</text><text x="86.80000000000001" y="664">─</text><text x="96.60000000000001" y="664">─</text><text x="106.4" y="664">─</text><text x="116.2" y="664">─</text><text x="126" y="664">─</text><text x="135.8" y="664">─</text><text x="145.60000000000002" y="664">─</text><text x="155.4" y="664">─</text><text x="165.20000000000002" y="664">─</text><text x="175" y="664">─</text><text x="184.8" y="664">─</text><text x="194.60000000000002" y="664">─</text><text x="204.4" y="664">─</text><text x="214.20000000000002" y="664">─</text><text x="224" y="664">─</text><text x="233.8" y="664">─</text><text x="243.60000000000002" y="664">─</text><text x="253.4" y="664">─</text><text x="263.20000000000005" y="664">─</text><text x="273" y="664">─</text><text x="282.8" y="664">─</text><text x="292.6" y="664">─</text><text x="302.40000000000003" y="664">─</text><text x="312.20000000000005" y="664">─</text><text x="322" y="664">─</text><text x="331.8" y="664">─</text><text x="341.6" y="664">─</text><text x="351.40000000000003" y="664">─</text><text x="361.20000000000005" y="664">─</text><text x="371" y="664">─</text><text x="380.8" y="664">─</text><text x="390.6" y="664">─</text><text x="400.40000000000003" y="664">─</text><text x="410.20000000000005" y="664">─</text><text x="420" y="664">─</text><text x="429.8" y="664">─</text><text x="439.6" y="664">─</text><text x="449.40000000000003" y="664">─</text><text x="459.20000000000005" y="664">─</text><text x="469.00000000000006" y="664">─</text><text x="478.8" y="664">─</text><text x="488.6" y="664">─</text><text x="498.40000000000003" y="664">─</text><text x="508.20000000000005" y="664">─</text><text x="518" y="664">─</text><text x="527.8" y="664">─</text><text x="537.6" y="664">─</text><text x="547.4000000000001" y="664">─</text><text x="557.2" y="664">─</text><text x="567" y="664">─</text><text x="576.8000000000001" y="664">─</text><text x="586.6" y="664">─</text><text x="596.4000000000001" y="664">─</text><text x="606.2" y="664">─</text><text x="616" y="664">─</text><text x="625.8000000000001" y="664">─</text><text x="635.6" y="664">─</text><text x="645.4000000000001" y="664">─</text><text x="655.2" y="664">─</text><text x="665" y="664">─</text><text x="674.8000000000001" y="664">─</text><text x="684.6" y="664">─</text><text x="694.4000000000001" y="664">─</text><text x="704.2" y="664">─</text><text x="714" y="664">─</text><text x="723.8000000000001" y="664">─</text><text x="733.6" y="664">─</text><text x="743.4000000000001" y="664">─</text><text x="753.2" y="664">─</text><text x="763" y="664">─</text><text x="772.8000000000001" y="664">─</text><text x="782.6" y="664">─</text><text x="792.4000000000001" y="664">─</text><text x="802.2" y="664">─</text><text x="812" y="664">─</text><text x="821.8000000000001" y="664">─</text><text x="831.6" y="664">─</text><text x="841.4000000000001" y="664">─</text><text x="851.2" y="664">─</text><text x="861.0000000000001" y="664">─</text><text x="870.8000000000001" y="664">─</text><text x="880.6" y="664">─</text><text x="890.4000000000001" y="664">─</text><text x="900.2" y="664">─</text><text x="910.0000000000001" y="664">─</text><text x="919.8000000000001" y="664">─</text><text x="929.6" y="664">─</text><text x="939.4000000000001" y="664">─</text><text x="949.2" y="664">─</text><text x="959.0000000000001" y="664">─</text><text x="968.8000000000001" y="664">─</text><text x="978.6" y="664">─</text><text x="988.4000000000001" y="664">─</text><text x="998.2" y="664">─</text><text x="1008.0000000000001" y="664">─</text><text x="1017.8000000000001" y="664">─</text><text x="1027.6" y="664">─</text><text x="1037.4" y="664">─</text><text x="1047.2" y="664">─</text><text x="1057" y="664">┤</text>
|
|
37
|
+
<text x="28" y="684">│</text><text x="47.6" y="684">L</text><text x="57.400000000000006" y="684">i</text><text x="67.2" y="684">n</text><text x="77" y="684">e</text><text x="86.80000000000001" y="684">s</text><text x="106.4" y="684">1</text><text x="116.2" y="684">–</text><text x="126" y="684">2</text><text x="135.8" y="684">5</text><text x="145.60000000000002" y="684">/</text><text x="155.4" y="684">3</text><text x="165.20000000000002" y="684">2</text><text x="194.60000000000002" y="684">·</text><text x="224" y="684">J</text><text x="233.8" y="684">o</text><text x="243.60000000000002" y="684">b</text><text x="253.4" y="684">s</text><text x="273" y="684">k</text><text x="282.8" y="684">e</text><text x="292.6" y="684">e</text><text x="302.40000000000003" y="684">p</text><text x="322" y="684">r</text><text x="331.8" y="684">u</text><text x="341.6" y="684">n</text><text x="351.40000000000003" y="684">n</text><text x="361.20000000000005" y="684">i</text><text x="371" y="684">n</text><text x="380.8" y="684">g</text><text x="400.40000000000003" y="684">w</text><text x="410.20000000000005" y="684">h</text><text x="420" y="684">e</text><text x="429.8" y="684">n</text><text x="449.40000000000003" y="684">t</text><text x="459.20000000000005" y="684">h</text><text x="469.00000000000006" y="684">i</text><text x="478.8" y="684">s</text><text x="498.40000000000003" y="684">p</text><text x="508.20000000000005" y="684">a</text><text x="518" y="684">n</text><text x="527.8" y="684">e</text><text x="537.6" y="684">l</text><text x="557.2" y="684">c</text><text x="567" y="684">l</text><text x="576.8000000000001" y="684">o</text><text x="586.6" y="684">s</text><text x="596.4000000000001" y="684">e</text><text x="606.2" y="684">s</text><text x="1057" y="684">│</text>
|
|
38
|
+
<text x="28" y="704">│</text><text x="47.6" y="704">←</text><text x="57.400000000000006" y="704">/</text><text x="67.2" y="704">→</text><text x="86.80000000000001" y="704">j</text><text x="96.60000000000001" y="704">o</text><text x="106.4" y="704">b</text><text x="116.2" y="704">s</text><text x="155.4" y="704">↑</text><text x="165.20000000000002" y="704">/</text><text x="175" y="704">↓</text><text x="194.60000000000002" y="704">s</text><text x="204.4" y="704">c</text><text x="214.20000000000002" y="704">r</text><text x="224" y="704">o</text><text x="233.8" y="704">l</text><text x="243.60000000000002" y="704">l</text><text x="282.8" y="704">P</text><text x="292.6" y="704">g</text><text x="302.40000000000003" y="704">U</text><text x="312.20000000000005" y="704">p</text><text x="322" y="704">/</text><text x="331.8" y="704">P</text><text x="341.6" y="704">g</text><text x="351.40000000000003" y="704">D</text><text x="361.20000000000005" y="704">n</text><text x="380.8" y="704">p</text><text x="390.6" y="704">a</text><text x="400.40000000000003" y="704">g</text><text x="410.20000000000005" y="704">e</text><text x="449.40000000000003" y="704">c</text><text x="469.00000000000006" y="704">c</text><text x="478.8" y="704">a</text><text x="488.6" y="704">n</text><text x="498.40000000000003" y="704">c</text><text x="508.20000000000005" y="704">e</text><text x="518" y="704">l</text><text x="557.2" y="704">E</text><text x="567" y="704">s</text><text x="576.8000000000001" y="704">c</text><text x="596.4000000000001" y="704">c</text><text x="606.2" y="704">l</text><text x="616" y="704">o</text><text x="625.8000000000001" y="704">s</text><text x="635.6" y="704">e</text><text x="1057" y="704">│</text>
|
|
39
|
+
<text x="28" y="724">╰</text><text x="37.8" y="724">─</text><text x="47.6" y="724">─</text><text x="57.400000000000006" y="724">─</text><text x="67.2" y="724">─</text><text x="77" y="724">─</text><text x="86.80000000000001" y="724">─</text><text x="96.60000000000001" y="724">─</text><text x="106.4" y="724">─</text><text x="116.2" y="724">─</text><text x="126" y="724">─</text><text x="135.8" y="724">─</text><text x="145.60000000000002" y="724">─</text><text x="155.4" y="724">─</text><text x="165.20000000000002" y="724">─</text><text x="175" y="724">─</text><text x="184.8" y="724">─</text><text x="194.60000000000002" y="724">─</text><text x="204.4" y="724">─</text><text x="214.20000000000002" y="724">─</text><text x="224" y="724">─</text><text x="233.8" y="724">─</text><text x="243.60000000000002" y="724">─</text><text x="253.4" y="724">─</text><text x="263.20000000000005" y="724">─</text><text x="273" y="724">─</text><text x="282.8" y="724">─</text><text x="292.6" y="724">─</text><text x="302.40000000000003" y="724">─</text><text x="312.20000000000005" y="724">─</text><text x="322" y="724">─</text><text x="331.8" y="724">─</text><text x="341.6" y="724">─</text><text x="351.40000000000003" y="724">─</text><text x="361.20000000000005" y="724">─</text><text x="371" y="724">─</text><text x="380.8" y="724">─</text><text x="390.6" y="724">─</text><text x="400.40000000000003" y="724">─</text><text x="410.20000000000005" y="724">─</text><text x="420" y="724">─</text><text x="429.8" y="724">─</text><text x="439.6" y="724">─</text><text x="449.40000000000003" y="724">─</text><text x="459.20000000000005" y="724">─</text><text x="469.00000000000006" y="724">─</text><text x="478.8" y="724">─</text><text x="488.6" y="724">─</text><text x="498.40000000000003" y="724">─</text><text x="508.20000000000005" y="724">─</text><text x="518" y="724">─</text><text x="527.8" y="724">─</text><text x="537.6" y="724">─</text><text x="547.4000000000001" y="724">─</text><text x="557.2" y="724">─</text><text x="567" y="724">─</text><text x="576.8000000000001" y="724">─</text><text x="586.6" y="724">─</text><text x="596.4000000000001" y="724">─</text><text x="606.2" y="724">─</text><text x="616" y="724">─</text><text x="625.8000000000001" y="724">─</text><text x="635.6" y="724">─</text><text x="645.4000000000001" y="724">─</text><text x="655.2" y="724">─</text><text x="665" y="724">─</text><text x="674.8000000000001" y="724">─</text><text x="684.6" y="724">─</text><text x="694.4000000000001" y="724">─</text><text x="704.2" y="724">─</text><text x="714" y="724">─</text><text x="723.8000000000001" y="724">─</text><text x="733.6" y="724">─</text><text x="743.4000000000001" y="724">─</text><text x="753.2" y="724">─</text><text x="763" y="724">─</text><text x="772.8000000000001" y="724">─</text><text x="782.6" y="724">─</text><text x="792.4000000000001" y="724">─</text><text x="802.2" y="724">─</text><text x="812" y="724">─</text><text x="821.8000000000001" y="724">─</text><text x="831.6" y="724">─</text><text x="841.4000000000001" y="724">─</text><text x="851.2" y="724">─</text><text x="861.0000000000001" y="724">─</text><text x="870.8000000000001" y="724">─</text><text x="880.6" y="724">─</text><text x="890.4000000000001" y="724">─</text><text x="900.2" y="724">─</text><text x="910.0000000000001" y="724">─</text><text x="919.8000000000001" y="724">─</text><text x="929.6" y="724">─</text><text x="939.4000000000001" y="724">─</text><text x="949.2" y="724">─</text><text x="959.0000000000001" y="724">─</text><text x="968.8000000000001" y="724">─</text><text x="978.6" y="724">─</text><text x="988.4000000000001" y="724">─</text><text x="998.2" y="724">─</text><text x="1008.0000000000001" y="724">─</text><text x="1017.8000000000001" y="724">─</text><text x="1027.6" y="724">─</text><text x="1037.4" y="724">─</text><text x="1047.2" y="724">─</text><text x="1057" y="724">╯</text>
|
|
40
|
+
</g></svg>
|
|
@@ -0,0 +1,192 @@
|
|
|
1
|
+
{
|
|
2
|
+
"node": "v25.9.0",
|
|
3
|
+
"platform": "darwin",
|
|
4
|
+
"arch": "arm64",
|
|
5
|
+
"cpu": "Apple M5",
|
|
6
|
+
"rounds": 7,
|
|
7
|
+
"outputBytesPerNode": 2,
|
|
8
|
+
"gcBeforeEachRun": true,
|
|
9
|
+
"note": "One warm-up per case in a temporary non-Git directory. Heap deltas are allocation observations, not peak RSS. No network or model cost.",
|
|
10
|
+
"measurements": [
|
|
11
|
+
{
|
|
12
|
+
"shape": "chain",
|
|
13
|
+
"nodes": 10,
|
|
14
|
+
"edges": 9,
|
|
15
|
+
"concurrency": 1,
|
|
16
|
+
"medianMs": 0.453,
|
|
17
|
+
"maxMs": 0.599,
|
|
18
|
+
"maxHeapDeltaMiB": 0.387,
|
|
19
|
+
"events": 60
|
|
20
|
+
},
|
|
21
|
+
{
|
|
22
|
+
"shape": "chain",
|
|
23
|
+
"nodes": 10,
|
|
24
|
+
"edges": 9,
|
|
25
|
+
"concurrency": 4,
|
|
26
|
+
"medianMs": 0.374,
|
|
27
|
+
"maxMs": 0.408,
|
|
28
|
+
"maxHeapDeltaMiB": 0.597,
|
|
29
|
+
"events": 60
|
|
30
|
+
},
|
|
31
|
+
{
|
|
32
|
+
"shape": "chain",
|
|
33
|
+
"nodes": 10,
|
|
34
|
+
"edges": 9,
|
|
35
|
+
"concurrency": 16,
|
|
36
|
+
"medianMs": 0.35,
|
|
37
|
+
"maxMs": 0.395,
|
|
38
|
+
"maxHeapDeltaMiB": 0.333,
|
|
39
|
+
"events": 60
|
|
40
|
+
},
|
|
41
|
+
{
|
|
42
|
+
"shape": "chain",
|
|
43
|
+
"nodes": 100,
|
|
44
|
+
"edges": 99,
|
|
45
|
+
"concurrency": 1,
|
|
46
|
+
"medianMs": 2.063,
|
|
47
|
+
"maxMs": 2.508,
|
|
48
|
+
"maxHeapDeltaMiB": 4.262,
|
|
49
|
+
"events": 600
|
|
50
|
+
},
|
|
51
|
+
{
|
|
52
|
+
"shape": "chain",
|
|
53
|
+
"nodes": 100,
|
|
54
|
+
"edges": 99,
|
|
55
|
+
"concurrency": 4,
|
|
56
|
+
"medianMs": 2.039,
|
|
57
|
+
"maxMs": 2.178,
|
|
58
|
+
"maxHeapDeltaMiB": 4.24,
|
|
59
|
+
"events": 600
|
|
60
|
+
},
|
|
61
|
+
{
|
|
62
|
+
"shape": "chain",
|
|
63
|
+
"nodes": 100,
|
|
64
|
+
"edges": 99,
|
|
65
|
+
"concurrency": 16,
|
|
66
|
+
"medianMs": 1.804,
|
|
67
|
+
"maxMs": 1.861,
|
|
68
|
+
"maxHeapDeltaMiB": 3.554,
|
|
69
|
+
"events": 600
|
|
70
|
+
},
|
|
71
|
+
{
|
|
72
|
+
"shape": "chain",
|
|
73
|
+
"nodes": 1000,
|
|
74
|
+
"edges": 999,
|
|
75
|
+
"concurrency": 1,
|
|
76
|
+
"medianMs": 41.94,
|
|
77
|
+
"maxMs": 47.9,
|
|
78
|
+
"maxHeapDeltaMiB": 31.133,
|
|
79
|
+
"events": 6000
|
|
80
|
+
},
|
|
81
|
+
{
|
|
82
|
+
"shape": "chain",
|
|
83
|
+
"nodes": 1000,
|
|
84
|
+
"edges": 999,
|
|
85
|
+
"concurrency": 4,
|
|
86
|
+
"medianMs": 39.575,
|
|
87
|
+
"maxMs": 53.982,
|
|
88
|
+
"maxHeapDeltaMiB": 56.839,
|
|
89
|
+
"events": 6000
|
|
90
|
+
},
|
|
91
|
+
{
|
|
92
|
+
"shape": "chain",
|
|
93
|
+
"nodes": 1000,
|
|
94
|
+
"edges": 999,
|
|
95
|
+
"concurrency": 16,
|
|
96
|
+
"medianMs": 39.549,
|
|
97
|
+
"maxMs": 52.655,
|
|
98
|
+
"maxHeapDeltaMiB": 57.444,
|
|
99
|
+
"events": 6000
|
|
100
|
+
},
|
|
101
|
+
{
|
|
102
|
+
"shape": "fan-out/join",
|
|
103
|
+
"nodes": 10,
|
|
104
|
+
"edges": 16,
|
|
105
|
+
"concurrency": 1,
|
|
106
|
+
"medianMs": 0.365,
|
|
107
|
+
"maxMs": 0.446,
|
|
108
|
+
"maxHeapDeltaMiB": 0.388,
|
|
109
|
+
"events": 74
|
|
110
|
+
},
|
|
111
|
+
{
|
|
112
|
+
"shape": "fan-out/join",
|
|
113
|
+
"nodes": 10,
|
|
114
|
+
"edges": 16,
|
|
115
|
+
"concurrency": 4,
|
|
116
|
+
"medianMs": 0.338,
|
|
117
|
+
"maxMs": 0.356,
|
|
118
|
+
"maxHeapDeltaMiB": 0.303,
|
|
119
|
+
"events": 74
|
|
120
|
+
},
|
|
121
|
+
{
|
|
122
|
+
"shape": "fan-out/join",
|
|
123
|
+
"nodes": 10,
|
|
124
|
+
"edges": 16,
|
|
125
|
+
"concurrency": 16,
|
|
126
|
+
"medianMs": 0.337,
|
|
127
|
+
"maxMs": 0.342,
|
|
128
|
+
"maxHeapDeltaMiB": 0.304,
|
|
129
|
+
"events": 74
|
|
130
|
+
},
|
|
131
|
+
{
|
|
132
|
+
"shape": "fan-out/join",
|
|
133
|
+
"nodes": 100,
|
|
134
|
+
"edges": 196,
|
|
135
|
+
"concurrency": 1,
|
|
136
|
+
"medianMs": 2.192,
|
|
137
|
+
"maxMs": 2.233,
|
|
138
|
+
"maxHeapDeltaMiB": 3.224,
|
|
139
|
+
"events": 794
|
|
140
|
+
},
|
|
141
|
+
{
|
|
142
|
+
"shape": "fan-out/join",
|
|
143
|
+
"nodes": 100,
|
|
144
|
+
"edges": 196,
|
|
145
|
+
"concurrency": 4,
|
|
146
|
+
"medianMs": 1.866,
|
|
147
|
+
"maxMs": 1.928,
|
|
148
|
+
"maxHeapDeltaMiB": 2.787,
|
|
149
|
+
"events": 794
|
|
150
|
+
},
|
|
151
|
+
{
|
|
152
|
+
"shape": "fan-out/join",
|
|
153
|
+
"nodes": 100,
|
|
154
|
+
"edges": 196,
|
|
155
|
+
"concurrency": 16,
|
|
156
|
+
"medianMs": 1.878,
|
|
157
|
+
"maxMs": 1.97,
|
|
158
|
+
"maxHeapDeltaMiB": 2.735,
|
|
159
|
+
"events": 794
|
|
160
|
+
},
|
|
161
|
+
{
|
|
162
|
+
"shape": "fan-out/join",
|
|
163
|
+
"nodes": 1000,
|
|
164
|
+
"edges": 1996,
|
|
165
|
+
"concurrency": 1,
|
|
166
|
+
"medianMs": 35.054,
|
|
167
|
+
"maxMs": 47.335,
|
|
168
|
+
"maxHeapDeltaMiB": 53.93,
|
|
169
|
+
"events": 7994
|
|
170
|
+
},
|
|
171
|
+
{
|
|
172
|
+
"shape": "fan-out/join",
|
|
173
|
+
"nodes": 1000,
|
|
174
|
+
"edges": 1996,
|
|
175
|
+
"concurrency": 4,
|
|
176
|
+
"medianMs": 24.574,
|
|
177
|
+
"maxMs": 29.259,
|
|
178
|
+
"maxHeapDeltaMiB": 37.812,
|
|
179
|
+
"events": 7994
|
|
180
|
+
},
|
|
181
|
+
{
|
|
182
|
+
"shape": "fan-out/join",
|
|
183
|
+
"nodes": 1000,
|
|
184
|
+
"edges": 1996,
|
|
185
|
+
"concurrency": 16,
|
|
186
|
+
"medianMs": 33.785,
|
|
187
|
+
"maxMs": 35.425,
|
|
188
|
+
"maxHeapDeltaMiB": 29.416,
|
|
189
|
+
"events": 7994
|
|
190
|
+
}
|
|
191
|
+
]
|
|
192
|
+
}
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
# Scheduler benchmark
|
|
2
|
+
|
|
3
|
+
Run `npm ci`, then `npm run bench`. For a short sanity run, use
|
|
4
|
+
`npm run bench -- --quick`. The script prints JSON; keep the JSON portion when
|
|
5
|
+
comparing machines. [Raw sample measurements](benchmark-results.json) are included.
|
|
6
|
+
|
|
7
|
+
The benchmark covers chains and fan-out/join graphs at 10, 100, and 1,000 nodes,
|
|
8
|
+
with concurrency 1, 4, and 16. Every case has one warm-up and seven measured runs.
|
|
9
|
+
The runner executes in a temporary non-Git directory and immediately returns two
|
|
10
|
+
bytes of text; no Git worktrees, network, provider latency,
|
|
11
|
+
tool loop, or model billing is involved. Node is started with `--expose-gc` and
|
|
12
|
+
garbage collection is requested before each run. Deadlines are disabled.
|
|
13
|
+
|
|
14
|
+
## Sample run — 2026-09-27
|
|
15
|
+
|
|
16
|
+
Environment: Apple M5, darwin/arm64, Node v25.9.0.
|
|
17
|
+
The following subset uses concurrency 4:
|
|
18
|
+
|
|
19
|
+
| Graph | Nodes | Concurrency | Median elapsed ms | Largest observed heap delta MiB |
|
|
20
|
+
| --- | ---: | ---: | ---: | ---: |
|
|
21
|
+
| chain | 10 | 4 | 0.374 | 0.597 |
|
|
22
|
+
| chain | 100 | 4 | 2.039 | 4.240 |
|
|
23
|
+
| chain | 1000 | 4 | 39.575 | 56.839 |
|
|
24
|
+
| fan-out/join | 10 | 4 | 0.338 | 0.303 |
|
|
25
|
+
| fan-out/join | 100 | 4 | 1.866 | 2.787 |
|
|
26
|
+
| fan-out/join | 1000 | 4 | 24.574 | 37.812 |
|
|
27
|
+
|
|
28
|
+
Elapsed time covers validation, scheduling, context snapshots, events, and result
|
|
29
|
+
construction. Heap delta is the change in `heapUsed` across a run, not peak RSS,
|
|
30
|
+
retained memory, or a memory limit. GC timing, JIT, and other machine activity
|
|
31
|
+
can affect both measurements. The complete JSON includes the maximum time and
|
|
32
|
+
all concurrency settings.
|
|
33
|
+
|
|
34
|
+
These are synthetic observations, not throughput guarantees or model-speed
|
|
35
|
+
claims. Chains cannot become parallel merely by raising concurrency. Large
|
|
36
|
+
outputs, dense edges, read tools, event observers, and Pi's UI/session retention
|
|
37
|
+
are not represented. Measure your actual graphs and output sizes before setting
|
|
38
|
+
host admission limits. Start with small reasoning graphs; use the
|
|
39
|
+
[resource-limit guide](resource-limits.md) to bound work at the host/provider.
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
# Compatibility and stability
|
|
2
|
+
|
|
3
|
+
| Surface | Supported / tested contract |
|
|
4
|
+
| --- | --- |
|
|
5
|
+
| Core runtime | Node.js 22+, ESM imports, TypeScript declarations, no runtime dependencies |
|
|
6
|
+
| Pi package | Node.js 22.19+, Pi 0.85.1 is the pinned validation target |
|
|
7
|
+
| CI | Core minimum Node 22.0; both packages on Node 22.19 and 24 on Linux, macOS, Windows |
|
|
8
|
+
| OpenAI-compatible runner | Chat Completions text and function-tool calls; decisions and merge nodes require tool calling |
|
|
9
|
+
| Browsers / CommonJS | No supported browser build or CommonJS entry point in 0.1 |
|
|
10
|
+
|
|
11
|
+
The CI matrix describes configured checks; see actual workflow results for each
|
|
12
|
+
commit. Offline HTTP fixtures validate the adapter contract. They do not prove
|
|
13
|
+
that every provider advertising OpenAI compatibility supports its tool schema.
|
|
14
|
+
Run a small opt-in live test with your chosen provider before relying on it.
|
|
15
|
+
|
|
16
|
+
Pi's upstream packaging guide requires `*` peer dependencies for packages the
|
|
17
|
+
host provides. Braid follows that convention and pins dev dependencies to 0.85.1.
|
|
18
|
+
The wildcard is a loader/distribution convention, **not a claim that every Pi
|
|
19
|
+
version works**. Test the whole Pi suite before updating the supported target.
|
|
20
|
+
The Pi npm package compiles and includes the same core source as the matching
|
|
21
|
+
core release, so it does not need another installed copy of Braid or a checkout.
|
|
22
|
+
|
|
23
|
+
Git must be installed for workspace execution inside a Git checkout. Non-Git
|
|
24
|
+
text-only runs do not require Git workspace management.
|
|
25
|
+
|
|
26
|
+
## Versioning
|
|
27
|
+
|
|
28
|
+
Core and Pi release together with matching versions. During 0.x, patch releases
|
|
29
|
+
preserve documented behavior; breaking API or semantic changes require a minor
|
|
30
|
+
version bump, a changelog entry, and migration guidance. New optional fields or
|
|
31
|
+
fixes that restore the documented contract may ship in a patch.
|
|
32
|
+
|
|
33
|
+
Supported core entry points are `@chrok/braid` and `@chrok/braid/adapters/openai`. Internal
|
|
34
|
+
files and Pi helper classes are not stable public APIs. Documented result/error
|
|
35
|
+
fields, routing behavior, `ModelRunner`, and existing event meanings are part of
|
|
36
|
+
the public contract. Consumers should ignore new diagnostic fields and provide a
|
|
37
|
+
fallback for new event types; event sequence numbers order events within a run,
|
|
38
|
+
but concurrent nodes need not finish in a fixed order.
|
|
39
|
+
|
|
40
|
+
There is no cross-version serialized job/checkpoint format. Pi jobs are scoped to
|
|
41
|
+
one host session and are lost on exit, reload, switch, or fork. The project is
|
|
42
|
+
experimental and maintained on a best-effort basis.
|
package/docs/examples.md
ADDED
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
# Runnable examples
|
|
2
|
+
|
|
3
|
+
From the repository root, run `npm ci`, then `npm run examples`. All examples
|
|
4
|
+
use deterministic runners, require no credentials, and make no model calls.
|
|
5
|
+
Replace a runner with the documented provider adapter for live use.
|
|
6
|
+
|
|
7
|
+
| Example | Run | Expected result |
|
|
8
|
+
| --- | --- | --- |
|
|
9
|
+
| [Design comparison](../examples/basic.ts) | `npm run demo` | Decision chooses comparison, benefits/risks run concurrently, answer synthesizes them; brief branch skips |
|
|
10
|
+
| [Code review](../examples/code-review.ts) | `npx tsx examples/code-review.ts` | Correctness and test reviews run independently; final review lists both findings |
|
|
11
|
+
| [Failure handling](../examples/failure-handling.ts) | `npx tsx examples/failure-handling.ts` | `failed`; join completes with local findings and explicit `remote` error context |
|
|
12
|
+
| [Custom runner](../examples/custom-runner.ts) | `npx tsx examples/custom-runner.ts` | `Received direct predecessors: route` |
|
|
13
|
+
|
|
14
|
+
These text-only examples use temporary non-Git directories. The code-review
|
|
15
|
+
example supplies a short diff in `goal`. In a real Git checkout, core manages
|
|
16
|
+
worktrees and merge agents; Pi can inspect and edit its assigned workspaces.
|
|
17
|
+
Fake responses illustrate control flow; they do not demonstrate model quality.
|
|
18
|
+
|
|
19
|
+
## Live comparison
|
|
20
|
+
|
|
21
|
+
Export `OPENAI_API_KEY` and `BRAID_MODEL`; optionally export `OPENAI_BASE_URL`.
|
|
22
|
+
Then run `npm run demo -- --live`. This makes billable requests and needs a model
|
|
23
|
+
that supports the decision function schema. `.env.example` documents variables;
|
|
24
|
+
Braid does not automatically load `.env` files.
|
|
25
|
+
|
|
26
|
+
## Pi panel
|
|
27
|
+
|
|
28
|
+
`npm run demo:panel` regenerates the [panel snapshot](assets/pi-panel.svg) from
|
|
29
|
+
the actual TUI renderer using deterministic fake model responses. It does not
|
|
30
|
+
require a running Pi session or model credentials. Install the extension and
|
|
31
|
+
run `/braid` in Pi to see real jobs update while they execute.
|
|
@@ -0,0 +1,54 @@
|
|
|
1
|
+
# Releasing
|
|
2
|
+
|
|
3
|
+
Core and Pi are separate public npm packages built from one commit. Both use the
|
|
4
|
+
same version. The core has no runtime dependencies. Pi bundles compiled core
|
|
5
|
+
source so its installed extension never reaches outside its own package.
|
|
6
|
+
|
|
7
|
+
## Prepare a release
|
|
8
|
+
|
|
9
|
+
1. Update both `package.json` versions and both lockfiles. Use a minor version
|
|
10
|
+
for breaking 0.x changes, and describe migrations in the changelog.
|
|
11
|
+
2. Run `npm ci`, `npm ci --prefix integrations/pi`, and `npm run verify`.
|
|
12
|
+
The package check verifies clean builds, public ESM imports, declarations,
|
|
13
|
+
licenses, and Pi registration in a temporary consumer outside the checkout.
|
|
14
|
+
3. Update the changelog and supported Pi version. Commit and review the changes;
|
|
15
|
+
require the CI matrix to pass before tagging that commit `vX.Y.Z`.
|
|
16
|
+
4. Inspect `npm pack --dry-run` and `npm pack --dry-run` from `integrations/pi`.
|
|
17
|
+
`prepack` rebuilds each package. Never publish stale prebuilt output.
|
|
18
|
+
|
|
19
|
+
## First publication
|
|
20
|
+
|
|
21
|
+
Log in locally with `npm login --registry=https://registry.npmjs.org`; confirm the
|
|
22
|
+
account with `npm whoami`. Publish the core with `npm publish --access public`,
|
|
23
|
+
then run `npm publish --access public` from `integrations/pi`. Complete npm's
|
|
24
|
+
interactive account/2FA checks if requested. Never put credentials in source,
|
|
25
|
+
issues, shell history, or CI logs. An npm registration alone does not guarantee
|
|
26
|
+
ownership of a previously used package name.
|
|
27
|
+
|
|
28
|
+
After publication, install the registry versions in a fresh project and verify
|
|
29
|
+
both exported core entry points and the Pi extension. Add the actual publication
|
|
30
|
+
date to the changelog and create the corresponding GitHub release.
|
|
31
|
+
|
|
32
|
+
## Subsequent releases with trusted publishing
|
|
33
|
+
|
|
34
|
+
For **each** package, configure an npm GitHub trusted publisher:
|
|
35
|
+
|
|
36
|
+
- Owner: `Epsirom`
|
|
37
|
+
- Repository: `braid`
|
|
38
|
+
- Workflow filename: `release.yml`
|
|
39
|
+
- Environment: leave blank (this workflow does not declare one)
|
|
40
|
+
- Allow direct `npm publish`
|
|
41
|
+
|
|
42
|
+
Publishing a non-prerelease GitHub release triggers `.github/workflows/release.yml`.
|
|
43
|
+
It validates the tag/version relationship, repeats all checks, and publishes
|
|
44
|
+
core then Pi using short-lived OIDC credentials. It does not require `NPM_TOKEN`.
|
|
45
|
+
The workflow installs npm 11 and uses Node 24. See
|
|
46
|
+
[npm's trusted publishing documentation](https://docs.npmjs.com/trusted-publishers/).
|
|
47
|
+
|
|
48
|
+
If the second publish fails, rerun the same workflow after resolving the error.
|
|
49
|
+
The script skips an existing version only when npm records the exact current
|
|
50
|
+
Git commit as its `gitHead`. A collision from another commit fails explicitly;
|
|
51
|
+
never unpublish/reuse a version to repair it. Publish a new patch instead.
|
|
52
|
+
|
|
53
|
+
Prereleases are deliberately excluded from the automatic `latest` workflow.
|
|
54
|
+
Publish them manually with an explicit tag such as `--tag next` after checks.
|