pwn 0.5.643 → 0.5.647

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.
@@ -4,721 +4,720 @@
4
4
  <!-- Generated by graphviz version 14.1.2 (0)
5
5
  -->
6
6
  <!-- Title: PWN_AI_Feedback_Learning_Loop Pages: 1 -->
7
- <svg width="4279pt" height="840pt"
8
- viewBox="0.00 0.00 4279.00 840.00" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
7
+ <svg width="4373pt" height="840pt"
8
+ viewBox="0.00 0.00 4373.00 840.00" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
9
9
  <g id="graph0" class="graph" transform="scale(1 1) rotate(0) translate(43.2 796.7)">
10
10
  <title>PWN_AI_Feedback_Learning_Loop</title>
11
- <polygon fill="#0f172a" stroke="none" points="-43.2,43.2 -43.2,-796.7 4235.93,-796.7 4235.93,43.2 -43.2,43.2"/>
12
- <text xml:space="preserve" text-anchor="start" x="1909.62" y="-731.5" font-family="sans-Serif" font-weight="bold" font-size="20.00" fill="#e2e8f0">pwn&#45;ai &#45; Closed Self&#45;Improvement Loop</text>
13
- <text xml:space="preserve" text-anchor="start" x="1797.87" y="-720.05" font-family="sans-Serif" font-size="11.00" fill="#94a3b8">Introspection (self) &#160;⟷ &#160;Extrospection (world) &#160;· &#160;Mistakes (negative) &#160;· &#160;Reward + Curriculum (RL) &#160;· &#160;Local&#45;model scaffolding</text>
11
+ <polygon fill="#0f172a" stroke="none" points="-43.2,43.2 -43.2,-796.7 4330.24,-796.7 4330.24,43.2 -43.2,43.2"/>
12
+ <text xml:space="preserve" text-anchor="start" x="1956.77" y="-731.5" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="20.00" fill="#e2e8f0">pwn&#45;ai &#45; Closed Self&#45;Improvement Loop</text>
13
+ <text xml:space="preserve" text-anchor="start" x="1845.02" y="-720.05" font-family="Helvetica,sans-Serif" font-size="11.00" fill="#94a3b8">Introspection (self) &#160;⟷ &#160;Extrospection (world) &#160;· &#160;Mistakes (negative) &#160;· &#160;Reward + Curriculum (RL) &#160;· &#160;Local&#45;model scaffolding</text>
14
14
  <g id="clust2" class="cluster">
15
15
  <title>cluster_core</title>
16
- <path fill="#2e1065" stroke="#6d28d9" stroke-width="2" d="M169.68,-486.5C169.68,-486.5 1184.68,-486.5 1184.68,-486.5 1190.68,-486.5 1196.68,-492.5 1196.68,-498.5 1196.68,-498.5 1196.68,-601.5 1196.68,-601.5 1196.68,-607.5 1190.68,-613.5 1184.68,-613.5 1184.68,-613.5 169.68,-613.5 169.68,-613.5 163.68,-613.5 157.68,-607.5 157.68,-601.5 157.68,-601.5 157.68,-498.5 157.68,-498.5 157.68,-492.5 163.68,-486.5 169.68,-486.5"/>
17
- <text xml:space="preserve" text-anchor="middle" x="677.18" y="-590.5" font-family="sans-Serif" font-size="20.00" fill="#ddd6fe">PWN::AI::Agent::Loop</text>
16
+ <path fill="#2e1065" stroke="#6d28d9" stroke-width="2" d="M172.34,-486.5C172.34,-486.5 1187.34,-486.5 1187.34,-486.5 1193.34,-486.5 1199.34,-492.5 1199.34,-498.5 1199.34,-498.5 1199.34,-601.5 1199.34,-601.5 1199.34,-607.5 1193.34,-613.5 1187.34,-613.5 1187.34,-613.5 172.34,-613.5 172.34,-613.5 166.34,-613.5 160.34,-607.5 160.34,-601.5 160.34,-601.5 160.34,-498.5 160.34,-498.5 160.34,-492.5 166.34,-486.5 172.34,-486.5"/>
17
+ <text xml:space="preserve" text-anchor="middle" x="679.84" y="-590.5" font-family="Helvetica,sans-Serif" font-size="20.00" fill="#ddd6fe">PWN::AI::Agent::Loop</text>
18
18
  </g>
19
19
  <g id="clust4" class="cluster">
20
20
  <title>cluster_intro</title>
21
- <path fill="#022c22" stroke="#047857" stroke-width="2" d="M1135.68,-289C1135.68,-289 2315.68,-289 2315.68,-289 2321.68,-289 2327.68,-295 2327.68,-301 2327.68,-301 2327.68,-417.5 2327.68,-417.5 2327.68,-423.5 2321.68,-429.5 2315.68,-429.5 2315.68,-429.5 1135.68,-429.5 1135.68,-429.5 1129.68,-429.5 1123.68,-423.5 1123.68,-417.5 1123.68,-417.5 1123.68,-301 1123.68,-301 1123.68,-295 1129.68,-289 1135.68,-289"/>
22
- <text xml:space="preserve" text-anchor="middle" x="1725.68" y="-406.5" font-family="sans-Serif" font-size="20.00" fill="#a7f3d0">INTROSPECTION &#160;(self)</text>
21
+ <path fill="#022c22" stroke="#047857" stroke-width="2" d="M1138.34,-289C1138.34,-289 2385.34,-289 2385.34,-289 2391.34,-289 2397.34,-295 2397.34,-301 2397.34,-301 2397.34,-417.5 2397.34,-417.5 2397.34,-423.5 2391.34,-429.5 2385.34,-429.5 2385.34,-429.5 1138.34,-429.5 1138.34,-429.5 1132.34,-429.5 1126.34,-423.5 1126.34,-417.5 1126.34,-417.5 1126.34,-301 1126.34,-301 1126.34,-295 1132.34,-289 1138.34,-289"/>
22
+ <text xml:space="preserve" text-anchor="middle" x="1761.84" y="-406.5" font-family="Helvetica,sans-Serif" font-size="20.00" fill="#a7f3d0">INTROSPECTION &#160;(self)</text>
23
23
  </g>
24
24
  <g id="clust5" class="cluster">
25
25
  <title>cluster_extro</title>
26
- <path fill="#422006" stroke="#a16207" stroke-width="2" d="M2421.68,-289C2421.68,-289 3103.68,-289 3103.68,-289 3109.68,-289 3115.68,-295 3115.68,-301 3115.68,-301 3115.68,-417.5 3115.68,-417.5 3115.68,-423.5 3109.68,-429.5 3103.68,-429.5 3103.68,-429.5 2421.68,-429.5 2421.68,-429.5 2415.68,-429.5 2409.68,-423.5 2409.68,-417.5 2409.68,-417.5 2409.68,-301 2409.68,-301 2409.68,-295 2415.68,-289 2421.68,-289"/>
27
- <text xml:space="preserve" text-anchor="middle" x="2762.68" y="-406.5" font-family="sans-Serif" font-size="20.00" fill="#fde68a">EXTROSPECTION &#160;(world)</text>
26
+ <path fill="#422006" stroke="#a16207" stroke-width="2" d="M2435.34,-289C2435.34,-289 3117.34,-289 3117.34,-289 3123.34,-289 3129.34,-295 3129.34,-301 3129.34,-301 3129.34,-417.5 3129.34,-417.5 3129.34,-423.5 3123.34,-429.5 3117.34,-429.5 3117.34,-429.5 2435.34,-429.5 2435.34,-429.5 2429.34,-429.5 2423.34,-423.5 2423.34,-417.5 2423.34,-417.5 2423.34,-301 2423.34,-301 2423.34,-295 2429.34,-289 2435.34,-289"/>
27
+ <text xml:space="preserve" text-anchor="middle" x="2776.34" y="-406.5" font-family="Helvetica,sans-Serif" font-size="20.00" fill="#fde68a">EXTROSPECTION &#160;(world)</text>
28
28
  </g>
29
29
  <g id="clust7" class="cluster">
30
30
  <title>cluster_store</title>
31
- <path fill="#1e293b" stroke="#334155" stroke-dasharray="5,2" d="M1402.68,-8C1402.68,-8 2518.68,-8 2518.68,-8 2524.68,-8 2530.68,-14 2530.68,-20 2530.68,-20 2530.68,-110.5 2530.68,-110.5 2530.68,-116.5 2524.68,-122.5 2518.68,-122.5 2518.68,-122.5 1402.68,-122.5 1402.68,-122.5 1396.68,-122.5 1390.68,-116.5 1390.68,-110.5 1390.68,-110.5 1390.68,-20 1390.68,-20 1390.68,-14 1396.68,-8 1402.68,-8"/>
32
- <text xml:space="preserve" text-anchor="middle" x="1960.68" y="-99.5" font-family="sans-Serif" font-size="20.00" fill="#94a3b8">~/.pwn/</text>
31
+ <path fill="#1e293b" stroke="#334155" stroke-dasharray="5,2" d="M1408.34,-8C1408.34,-8 2524.34,-8 2524.34,-8 2530.34,-8 2536.34,-14 2536.34,-20 2536.34,-20 2536.34,-110.5 2536.34,-110.5 2536.34,-116.5 2530.34,-122.5 2524.34,-122.5 2524.34,-122.5 1408.34,-122.5 1408.34,-122.5 1402.34,-122.5 1396.34,-116.5 1396.34,-110.5 1396.34,-110.5 1396.34,-20 1396.34,-20 1396.34,-14 1402.34,-8 1408.34,-8"/>
32
+ <text xml:space="preserve" text-anchor="middle" x="1966.34" y="-99.5" font-family="Helvetica,sans-Serif" font-size="20.00" fill="#94a3b8">~/.pwn/</text>
33
33
  </g>
34
34
  <!-- User -->
35
35
  <g id="node1" class="node">
36
36
  <title>User</title>
37
- <path fill="#7dd3fc" stroke="#334155" stroke-width="1.4" d="M261.55,-714.5C261.55,-714.5 193.8,-714.5 193.8,-714.5 187.8,-714.5 181.8,-708.5 181.8,-702.5 181.8,-702.5 181.8,-690.5 181.8,-690.5 181.8,-684.5 187.8,-678.5 193.8,-678.5 193.8,-678.5 261.55,-678.5 261.55,-678.5 267.55,-678.5 273.55,-684.5 273.55,-690.5 273.55,-690.5 273.55,-702.5 273.55,-702.5 273.55,-708.5 267.55,-714.5 261.55,-714.5"/>
38
- <text xml:space="preserve" text-anchor="middle" x="227.68" y="-692.8" font-family="sans-Serif" font-size="11.00" fill="#0f172a">👤 &#160;Researcher</text>
37
+ <path fill="#7dd3fc" stroke="#334155" stroke-width="1.4" d="M264.22,-714.5C264.22,-714.5 196.47,-714.5 196.47,-714.5 190.47,-714.5 184.47,-708.5 184.47,-702.5 184.47,-702.5 184.47,-690.5 184.47,-690.5 184.47,-684.5 190.47,-678.5 196.47,-678.5 196.47,-678.5 264.22,-678.5 264.22,-678.5 270.22,-678.5 276.22,-684.5 276.22,-690.5 276.22,-690.5 276.22,-702.5 276.22,-702.5 276.22,-708.5 270.22,-714.5 264.22,-714.5"/>
38
+ <text xml:space="preserve" text-anchor="middle" x="230.34" y="-692.8" font-family="Helvetica,sans-Serif" font-size="11.00" fill="#0f172a">👤 &#160;Researcher</text>
39
39
  </g>
40
40
  <!-- Prompt -->
41
41
  <g id="node4" class="node">
42
42
  <title>Prompt</title>
43
- <path fill="#c4b5fd" stroke="#334155" stroke-width="1.4" d="M277.3,-543C277.3,-543 178.05,-543 178.05,-543 172.05,-543 166.05,-537 166.05,-531 166.05,-531 166.05,-506.5 166.05,-506.5 166.05,-500.5 172.05,-494.5 178.05,-494.5 178.05,-494.5 277.3,-494.5 277.3,-494.5 283.3,-494.5 289.3,-500.5 289.3,-506.5 289.3,-506.5 289.3,-531 289.3,-531 289.3,-537 283.3,-543 277.3,-543"/>
44
- <text xml:space="preserve" text-anchor="middle" x="227.68" y="-528.55" font-family="sans-Serif" font-size="11.00" fill="#0f172a">PromptBuilder</text>
45
- <text xml:space="preserve" text-anchor="middle" x="227.68" y="-515.05" font-family="sans-Serif" font-size="11.00" fill="#0f172a">budget · MemoryIndex</text>
46
- <text xml:space="preserve" text-anchor="middle" x="227.68" y="-501.55" font-family="sans-Serif" font-size="11.00" fill="#0f172a">relevance&#45;ranked ctx</text>
43
+ <path fill="#c4b5fd" stroke="#334155" stroke-width="1.4" d="M279.97,-543C279.97,-543 180.72,-543 180.72,-543 174.72,-543 168.72,-537 168.72,-531 168.72,-531 168.72,-506.5 168.72,-506.5 168.72,-500.5 174.72,-494.5 180.72,-494.5 180.72,-494.5 279.97,-494.5 279.97,-494.5 285.97,-494.5 291.97,-500.5 291.97,-506.5 291.97,-506.5 291.97,-531 291.97,-531 291.97,-537 285.97,-543 279.97,-543"/>
44
+ <text xml:space="preserve" text-anchor="middle" x="230.34" y="-528.55" font-family="Helvetica,sans-Serif" font-size="11.00" fill="#0f172a">PromptBuilder</text>
45
+ <text xml:space="preserve" text-anchor="middle" x="230.34" y="-515.05" font-family="Helvetica,sans-Serif" font-size="11.00" fill="#0f172a">budget · MemoryIndex</text>
46
+ <text xml:space="preserve" text-anchor="middle" x="230.34" y="-501.55" font-family="Helvetica,sans-Serif" font-size="11.00" fill="#0f172a">relevance&#45;ranked ctx</text>
47
47
  </g>
48
48
  <!-- User&#45;&gt;Prompt -->
49
49
  <g id="edge1" class="edge">
50
50
  <title>User&#45;&gt;Prompt</title>
51
- <path fill="none" stroke="#38bdf8" stroke-width="2" d="M227.68,-678.01C227.68,-649.29 227.68,-591.62 227.68,-554.4"/>
52
- <polygon fill="#38bdf8" stroke="#38bdf8" stroke-width="2" points="230.48,-554.59 227.68,-546.59 224.88,-554.59 230.48,-554.59"/>
53
- <text xml:space="preserve" text-anchor="middle" x="235.93" y="-628.7" font-family="sans-Serif" font-size="9.00" fill="#cbd5e1">task</text>
51
+ <path fill="none" stroke="#38bdf8" stroke-width="2" d="M230.34,-678.01C230.34,-649.29 230.34,-591.62 230.34,-554.4"/>
52
+ <polygon fill="#38bdf8" stroke="#38bdf8" stroke-width="2" points="233.14,-554.59 230.34,-546.59 227.54,-554.59 233.14,-554.59"/>
53
+ <text xml:space="preserve" text-anchor="middle" x="238.59" y="-628.7" font-family="Helvetica,sans-Serif" font-size="9.00" fill="#cbd5e1">task</text>
54
54
  </g>
55
55
  <!-- Mistakes -->
56
56
  <g id="node12" class="node">
57
57
  <title>Mistakes</title>
58
- <path fill="#6ee7b7" stroke="#334155" stroke-width="2" d="M1424.93,-359C1424.93,-359 1278.43,-359 1278.43,-359 1272.43,-359 1266.43,-353 1266.43,-347 1266.43,-347 1266.43,-309 1266.43,-309 1266.43,-303 1272.43,-297 1278.43,-297 1278.43,-297 1424.93,-297 1424.93,-297 1430.93,-297 1436.93,-303 1436.93,-309 1436.93,-309 1436.93,-347 1436.93,-347 1436.93,-353 1430.93,-359 1424.93,-359"/>
59
- <text xml:space="preserve" text-anchor="middle" x="1351.68" y="-344.55" font-family="sans-Serif" font-size="11.00" fill="#0f172a">Mistakes</text>
60
- <text xml:space="preserve" text-anchor="middle" x="1351.68" y="-331.05" font-family="sans-Serif" font-size="11.00" fill="#0f172a">record · resolve</text>
61
- <text xml:space="preserve" text-anchor="middle" x="1351.68" y="-317.55" font-family="sans-Serif" font-size="11.00" fill="#0f172a">guard · correction_hint</text>
62
- <text xml:space="preserve" text-anchor="middle" x="1351.68" y="-304.05" font-family="sans-Serif" font-size="11.00" fill="#0f172a">[REPEATING] · [REGRESSED]</text>
58
+ <path fill="#6ee7b7" stroke="#334155" stroke-width="2" d="M1427.59,-359C1427.59,-359 1281.09,-359 1281.09,-359 1275.09,-359 1269.09,-353 1269.09,-347 1269.09,-347 1269.09,-309 1269.09,-309 1269.09,-303 1275.09,-297 1281.09,-297 1281.09,-297 1427.59,-297 1427.59,-297 1433.59,-297 1439.59,-303 1439.59,-309 1439.59,-309 1439.59,-347 1439.59,-347 1439.59,-353 1433.59,-359 1427.59,-359"/>
59
+ <text xml:space="preserve" text-anchor="middle" x="1354.34" y="-344.55" font-family="Helvetica,sans-Serif" font-size="11.00" fill="#0f172a">Mistakes</text>
60
+ <text xml:space="preserve" text-anchor="middle" x="1354.34" y="-331.05" font-family="Helvetica,sans-Serif" font-size="11.00" fill="#0f172a">record · resolve</text>
61
+ <text xml:space="preserve" text-anchor="middle" x="1354.34" y="-317.55" font-family="Helvetica,sans-Serif" font-size="11.00" fill="#0f172a">guard · correction_hint</text>
62
+ <text xml:space="preserve" text-anchor="middle" x="1354.34" y="-304.05" font-family="Helvetica,sans-Serif" font-size="11.00" fill="#0f172a">[REPEATING] · [REGRESSED]</text>
63
63
  </g>
64
64
  <!-- User&#45;&gt;Mistakes -->
65
65
  <g id="edge13" class="edge">
66
66
  <title>User&#45;&gt;Mistakes</title>
67
- <path fill="none" stroke="#fb7185" stroke-width="1.3" stroke-dasharray="5,2" d="M181.4,-687.7C140.2,-678.05 82.31,-657.18 54.68,-613.5 24.5,-565.8 16.67,-528.23 54.68,-486.5 133.27,-400.19 461.11,-443.65 577.68,-437.5 596.18,-436.52 1227.49,-436.43 1244.68,-429.5 1276.32,-416.75 1304.13,-389.85 1323.46,-367.09"/>
68
- <polygon fill="#fb7185" stroke="#fb7185" stroke-width="1.3" points="1325.49,-369.02 1328.43,-361.07 1321.18,-365.46 1325.49,-369.02"/>
69
- <text xml:space="preserve" text-anchor="middle" x="101.18" y="-520.7" font-family="sans-Serif" font-size="9.00" fill="#cbd5e1">&quot;that&#39;s wrong&quot;</text>
70
- <text xml:space="preserve" text-anchor="middle" x="101.18" y="-510.2" font-family="sans-Serif" font-size="9.00" fill="#cbd5e1">check_user_correction</text>
67
+ <path fill="none" stroke="#fb7185" stroke-width="1.3" stroke-dasharray="5,2" d="M184.07,-687.7C142.87,-678.05 84.98,-657.18 57.34,-613.5 27.17,-565.8 19.34,-528.23 57.34,-486.5 76.99,-464.92 551.2,-439.04 580.34,-437.5 598.85,-436.52 1230.16,-436.43 1247.34,-429.5 1278.99,-416.75 1306.8,-389.85 1326.13,-367.09"/>
68
+ <polygon fill="#fb7185" stroke="#fb7185" stroke-width="1.3" points="1328.16,-369.02 1331.1,-361.07 1323.84,-365.46 1328.16,-369.02"/>
69
+ <text xml:space="preserve" text-anchor="middle" x="103.84" y="-520.7" font-family="Helvetica,sans-Serif" font-size="9.00" fill="#cbd5e1">&quot;that&#39;s wrong&quot;</text>
70
+ <text xml:space="preserve" text-anchor="middle" x="103.84" y="-510.2" font-family="Helvetica,sans-Serif" font-size="9.00" fill="#cbd5e1">check_user_correction</text>
71
71
  </g>
72
72
  <!-- Fprf -->
73
73
  <g id="node29" class="node">
74
74
  <title>Fprf</title>
75
- <path fill="#fcd34d" stroke="#334155" stroke-width="1.4" d="M1738.55,-48.73C1738.55,-50.53 1716.64,-52 1689.68,-52 1662.71,-52 1640.8,-50.53 1640.8,-48.73 1640.8,-48.73 1640.8,-19.27 1640.8,-19.27 1640.8,-17.47 1662.71,-16 1689.68,-16 1716.64,-16 1738.55,-17.47 1738.55,-19.27 1738.55,-19.27 1738.55,-48.73 1738.55,-48.73"/>
76
- <path fill="none" stroke="#334155" stroke-width="1.4" d="M1738.55,-48.73C1738.55,-46.92 1716.64,-45.45 1689.68,-45.45 1662.71,-45.45 1640.8,-46.92 1640.8,-48.73"/>
77
- <text xml:space="preserve" text-anchor="middle" x="1689.68" y="-30.3" font-family="sans-Serif" font-size="11.00" fill="#0f172a">preferences.jsonl</text>
75
+ <path fill="#fcd34d" stroke="#334155" stroke-width="1.4" d="M1744.22,-48.73C1744.22,-50.53 1722.31,-52 1695.34,-52 1668.38,-52 1646.47,-50.53 1646.47,-48.73 1646.47,-48.73 1646.47,-19.27 1646.47,-19.27 1646.47,-17.47 1668.38,-16 1695.34,-16 1722.31,-16 1744.22,-17.47 1744.22,-19.27 1744.22,-19.27 1744.22,-48.73 1744.22,-48.73"/>
76
+ <path fill="none" stroke="#334155" stroke-width="1.4" d="M1744.22,-48.73C1744.22,-46.92 1722.31,-45.45 1695.34,-45.45 1668.38,-45.45 1646.47,-46.92 1646.47,-48.73"/>
77
+ <text xml:space="preserve" text-anchor="middle" x="1695.34" y="-30.3" font-family="Helvetica,sans-Serif" font-size="11.00" fill="#0f172a">preferences.jsonl</text>
78
78
  </g>
79
79
  <!-- User&#45;&gt;Fprf -->
80
80
  <g id="edge68" class="edge">
81
81
  <title>User&#45;&gt;Fprf</title>
82
- <path fill="none" stroke="#fb7185" stroke-width="1.3" stroke-dasharray="5,2" d="M181.54,-694.36C128.7,-690.12 45.91,-673.69 18.68,-613.5 -4.59,-562.07 -7.39,-536.57 18.68,-486.5 77.1,-374.28 -72.53,-359.42 951.68,-167.5 988.23,-160.65 1586.71,-139.73 1619.68,-122.5 1645.36,-109.08 1664.85,-81.65 1676.66,-61.06"/>
83
- <polygon fill="#fb7185" stroke="#fb7185" stroke-width="1.3" points="1679.06,-62.52 1680.45,-54.16 1674.15,-59.83 1679.06,-62.52"/>
84
- <text xml:space="preserve" text-anchor="middle" x="382.6" y="-329.95" font-family="sans-Serif" font-size="9.00" fill="#cbd5e1">user_correction</text>
85
- <text xml:space="preserve" text-anchor="middle" x="382.6" y="-319.45" font-family="sans-Serif" font-size="9.00" fill="#cbd5e1">→ DPO pair</text>
82
+ <path fill="none" stroke="#fb7185" stroke-width="1.3" stroke-dasharray="5,2" d="M184.21,-694.36C131.37,-690.12 48.58,-673.69 21.34,-613.5 -1.92,-562.07 -11.51,-532.4 21.34,-486.5 277.12,-129.1 526.42,-253.89 957.34,-167.5 993.81,-160.19 1592.38,-139.73 1625.34,-122.5 1651.02,-109.08 1670.52,-81.65 1682.33,-61.06"/>
83
+ <polygon fill="#fb7185" stroke="#fb7185" stroke-width="1.3" points="1684.72,-62.52 1686.12,-54.16 1679.82,-59.83 1684.72,-62.52"/>
84
+ <text xml:space="preserve" text-anchor="middle" x="258.46" y="-329.95" font-family="Helvetica,sans-Serif" font-size="9.00" fill="#cbd5e1">user_correction</text>
85
+ <text xml:space="preserve" text-anchor="middle" x="258.46" y="-319.45" font-family="Helvetica,sans-Serif" font-size="9.00" fill="#cbd5e1">→ DPO pair</text>
86
86
  </g>
87
87
  <!-- LLM -->
88
88
  <g id="node2" class="node">
89
89
  <title>LLM</title>
90
- <path fill="#c4b5fd" stroke="#334155" stroke-width="1.4" d="M805.68,-714.5C805.68,-714.5 729.68,-714.5 729.68,-714.5 723.68,-714.5 717.68,-708.5 717.68,-702.5 717.68,-702.5 717.68,-690.5 717.68,-690.5 717.68,-684.5 723.68,-678.5 729.68,-678.5 729.68,-678.5 805.68,-678.5 805.68,-678.5 811.68,-678.5 817.68,-684.5 817.68,-690.5 817.68,-690.5 817.68,-702.5 817.68,-702.5 817.68,-708.5 811.68,-714.5 805.68,-714.5"/>
91
- <text xml:space="preserve" text-anchor="middle" x="767.68" y="-692.8" font-family="sans-Serif" font-size="11.00" fill="#0f172a">🤖 &#160;LLM Provider</text>
90
+ <path fill="#c4b5fd" stroke="#334155" stroke-width="1.4" d="M808.34,-714.5C808.34,-714.5 732.34,-714.5 732.34,-714.5 726.34,-714.5 720.34,-708.5 720.34,-702.5 720.34,-702.5 720.34,-690.5 720.34,-690.5 720.34,-684.5 726.34,-678.5 732.34,-678.5 732.34,-678.5 808.34,-678.5 808.34,-678.5 814.34,-678.5 820.34,-684.5 820.34,-690.5 820.34,-690.5 820.34,-702.5 820.34,-702.5 820.34,-708.5 814.34,-714.5 808.34,-714.5"/>
91
+ <text xml:space="preserve" text-anchor="middle" x="770.34" y="-692.8" font-family="Helvetica,sans-Serif" font-size="11.00" fill="#0f172a">🤖 &#160;LLM Provider</text>
92
92
  </g>
93
93
  <!-- Dispatch -->
94
94
  <g id="node5" class="node">
95
95
  <title>Dispatch</title>
96
- <path fill="#c4b5fd" stroke="#334155" stroke-width="1.4" d="M796.68,-543C796.68,-543 738.68,-543 738.68,-543 732.68,-543 726.68,-537 726.68,-531 726.68,-531 726.68,-506.5 726.68,-506.5 726.68,-500.5 732.68,-494.5 738.68,-494.5 738.68,-494.5 796.68,-494.5 796.68,-494.5 802.68,-494.5 808.68,-500.5 808.68,-506.5 808.68,-506.5 808.68,-531 808.68,-531 808.68,-537 802.68,-543 796.68,-543"/>
97
- <text xml:space="preserve" text-anchor="middle" x="767.68" y="-528.55" font-family="sans-Serif" font-size="11.00" fill="#0f172a">Dispatch</text>
98
- <text xml:space="preserve" text-anchor="middle" x="767.68" y="-515.05" font-family="sans-Serif" font-size="11.00" fill="#0f172a">tolerant parse</text>
99
- <text xml:space="preserve" text-anchor="middle" x="767.68" y="-501.55" font-family="sans-Serif" font-size="11.00" fill="#0f172a">repair_name</text>
96
+ <path fill="#c4b5fd" stroke="#334155" stroke-width="1.4" d="M799.34,-543C799.34,-543 741.34,-543 741.34,-543 735.34,-543 729.34,-537 729.34,-531 729.34,-531 729.34,-506.5 729.34,-506.5 729.34,-500.5 735.34,-494.5 741.34,-494.5 741.34,-494.5 799.34,-494.5 799.34,-494.5 805.34,-494.5 811.34,-500.5 811.34,-506.5 811.34,-506.5 811.34,-531 811.34,-531 811.34,-537 805.34,-543 799.34,-543"/>
97
+ <text xml:space="preserve" text-anchor="middle" x="770.34" y="-528.55" font-family="Helvetica,sans-Serif" font-size="11.00" fill="#0f172a">Dispatch</text>
98
+ <text xml:space="preserve" text-anchor="middle" x="770.34" y="-515.05" font-family="Helvetica,sans-Serif" font-size="11.00" fill="#0f172a">tolerant parse</text>
99
+ <text xml:space="preserve" text-anchor="middle" x="770.34" y="-501.55" font-family="Helvetica,sans-Serif" font-size="11.00" fill="#0f172a">repair_name</text>
100
100
  </g>
101
101
  <!-- LLM&#45;&gt;Dispatch -->
102
102
  <g id="edge2" class="edge">
103
103
  <title>LLM&#45;&gt;Dispatch</title>
104
- <path fill="none" stroke="#a78bfa" stroke-width="2" d="M767.68,-667.33C767.68,-636.66 767.68,-587.57 767.68,-554.52"/>
105
- <polygon fill="#a78bfa" stroke="#a78bfa" stroke-width="2" points="764.88,-666.98 767.68,-674.98 770.48,-666.98 764.88,-666.98"/>
106
- <polygon fill="#a78bfa" stroke="#a78bfa" stroke-width="2" points="770.48,-554.59 767.68,-546.59 764.88,-554.59 770.48,-554.59"/>
107
- <text xml:space="preserve" text-anchor="middle" x="787.18" y="-628.7" font-family="sans-Serif" font-size="9.00" fill="#cbd5e1">tool_calls</text>
104
+ <path fill="none" stroke="#a78bfa" stroke-width="2" d="M770.34,-667.33C770.34,-636.66 770.34,-587.57 770.34,-554.52"/>
105
+ <polygon fill="#a78bfa" stroke="#a78bfa" stroke-width="2" points="767.54,-666.98 770.34,-674.98 773.14,-666.98 767.54,-666.98"/>
106
+ <polygon fill="#a78bfa" stroke="#a78bfa" stroke-width="2" points="773.14,-554.59 770.34,-546.59 767.54,-554.59 773.14,-554.59"/>
107
+ <text xml:space="preserve" text-anchor="middle" x="789.84" y="-628.7" font-family="Helvetica,sans-Serif" font-size="9.00" fill="#cbd5e1">tool_calls</text>
108
108
  </g>
109
109
  <!-- World -->
110
110
  <g id="node3" class="node">
111
111
  <title>World</title>
112
- <path fill="#fda4af" stroke="#334155" stroke-width="1.4" d="M1212.55,-714.5C1212.55,-714.5 1090.8,-714.5 1090.8,-714.5 1084.8,-714.5 1078.8,-708.5 1078.8,-702.5 1078.8,-702.5 1078.8,-690.5 1078.8,-690.5 1078.8,-684.5 1084.8,-678.5 1090.8,-678.5 1090.8,-678.5 1212.55,-678.5 1212.55,-678.5 1218.55,-678.5 1224.55,-684.5 1224.55,-690.5 1224.55,-690.5 1224.55,-702.5 1224.55,-702.5 1224.55,-708.5 1218.55,-714.5 1212.55,-714.5"/>
113
- <text xml:space="preserve" text-anchor="middle" x="1151.68" y="-699.55" font-family="sans-Serif" font-size="11.00" fill="#0f172a">🌍 &#160;Host · Net · Repo</text>
114
- <text xml:space="preserve" text-anchor="middle" x="1151.68" y="-686.05" font-family="sans-Serif" font-size="11.00" fill="#0f172a">Toolchain · RF · Web · Intel</text>
112
+ <path fill="#fda4af" stroke="#334155" stroke-width="1.4" d="M1215.22,-714.5C1215.22,-714.5 1093.47,-714.5 1093.47,-714.5 1087.47,-714.5 1081.47,-708.5 1081.47,-702.5 1081.47,-702.5 1081.47,-690.5 1081.47,-690.5 1081.47,-684.5 1087.47,-678.5 1093.47,-678.5 1093.47,-678.5 1215.22,-678.5 1215.22,-678.5 1221.22,-678.5 1227.22,-684.5 1227.22,-690.5 1227.22,-690.5 1227.22,-702.5 1227.22,-702.5 1227.22,-708.5 1221.22,-714.5 1215.22,-714.5"/>
113
+ <text xml:space="preserve" text-anchor="middle" x="1154.34" y="-699.55" font-family="Helvetica,sans-Serif" font-size="11.00" fill="#0f172a">🌍 &#160;Host · Net · Repo</text>
114
+ <text xml:space="preserve" text-anchor="middle" x="1154.34" y="-686.05" font-family="Helvetica,sans-Serif" font-size="11.00" fill="#0f172a">Toolchain · RF · Web · Intel</text>
115
115
  </g>
116
116
  <!-- Result -->
117
117
  <g id="node9" class="node">
118
118
  <title>Result</title>
119
- <path fill="#c4b5fd" stroke="#334155" stroke-width="1.4" d="M1176.55,-536.75C1176.55,-536.75 1126.8,-536.75 1126.8,-536.75 1120.8,-536.75 1114.8,-530.75 1114.8,-524.75 1114.8,-524.75 1114.8,-512.75 1114.8,-512.75 1114.8,-506.75 1120.8,-500.75 1126.8,-500.75 1126.8,-500.75 1176.55,-500.75 1176.55,-500.75 1182.55,-500.75 1188.55,-506.75 1188.55,-512.75 1188.55,-512.75 1188.55,-524.75 1188.55,-524.75 1188.55,-530.75 1182.55,-536.75 1176.55,-536.75"/>
120
- <text xml:space="preserve" text-anchor="middle" x="1151.68" y="-521.8" font-family="sans-Serif" font-size="11.00" fill="#0f172a">Result</text>
121
- <text xml:space="preserve" text-anchor="middle" x="1151.68" y="-508.3" font-family="sans-Serif" font-size="11.00" fill="#0f172a">final answer</text>
119
+ <path fill="#c4b5fd" stroke="#334155" stroke-width="1.4" d="M1179.22,-536.75C1179.22,-536.75 1129.47,-536.75 1129.47,-536.75 1123.47,-536.75 1117.47,-530.75 1117.47,-524.75 1117.47,-524.75 1117.47,-512.75 1117.47,-512.75 1117.47,-506.75 1123.47,-500.75 1129.47,-500.75 1129.47,-500.75 1179.22,-500.75 1179.22,-500.75 1185.22,-500.75 1191.22,-506.75 1191.22,-512.75 1191.22,-512.75 1191.22,-524.75 1191.22,-524.75 1191.22,-530.75 1185.22,-536.75 1179.22,-536.75"/>
120
+ <text xml:space="preserve" text-anchor="middle" x="1154.34" y="-521.8" font-family="Helvetica,sans-Serif" font-size="11.00" fill="#0f172a">Result</text>
121
+ <text xml:space="preserve" text-anchor="middle" x="1154.34" y="-508.3" font-family="Helvetica,sans-Serif" font-size="11.00" fill="#0f172a">final answer</text>
122
122
  </g>
123
123
  <!-- World&#45;&gt;Result -->
124
124
  <!-- Snapshot -->
125
125
  <g id="node16" class="node">
126
126
  <title>Snapshot</title>
127
- <path fill="#fcd34d" stroke="#334155" stroke-width="1.4" d="M2759.3,-359C2759.3,-359 2594.05,-359 2594.05,-359 2588.05,-359 2582.05,-353 2582.05,-347 2582.05,-347 2582.05,-309 2582.05,-309 2582.05,-303 2588.05,-297 2594.05,-297 2594.05,-297 2759.3,-297 2759.3,-297 2765.3,-297 2771.3,-303 2771.3,-309 2771.3,-309 2771.3,-347 2771.3,-347 2771.3,-353 2765.3,-359 2759.3,-359"/>
128
- <text xml:space="preserve" text-anchor="middle" x="2676.68" y="-344.55" font-family="sans-Serif" font-size="11.00" fill="#0f172a">snapshot · drift</text>
129
- <text xml:space="preserve" text-anchor="middle" x="2676.68" y="-331.05" font-family="sans-Serif" font-size="11.00" fill="#0f172a">host/net/toolchain</text>
130
- <text xml:space="preserve" text-anchor="middle" x="2676.68" y="-317.55" font-family="sans-Serif" font-size="11.00" fill="#0f172a">repo/env/rf/web</text>
131
- <text xml:space="preserve" text-anchor="middle" x="2676.68" y="-304.05" font-family="sans-Serif" font-size="11.00" fill="#0f172a">(AUTO_SECTIONS=host/repo/env)</text>
127
+ <path fill="#fcd34d" stroke="#334155" stroke-width="1.4" d="M2772.97,-359C2772.97,-359 2607.72,-359 2607.72,-359 2601.72,-359 2595.72,-353 2595.72,-347 2595.72,-347 2595.72,-309 2595.72,-309 2595.72,-303 2601.72,-297 2607.72,-297 2607.72,-297 2772.97,-297 2772.97,-297 2778.97,-297 2784.97,-303 2784.97,-309 2784.97,-309 2784.97,-347 2784.97,-347 2784.97,-353 2778.97,-359 2772.97,-359"/>
128
+ <text xml:space="preserve" text-anchor="middle" x="2690.34" y="-344.55" font-family="Helvetica,sans-Serif" font-size="11.00" fill="#0f172a">snapshot · drift</text>
129
+ <text xml:space="preserve" text-anchor="middle" x="2690.34" y="-331.05" font-family="Helvetica,sans-Serif" font-size="11.00" fill="#0f172a">host/net/toolchain</text>
130
+ <text xml:space="preserve" text-anchor="middle" x="2690.34" y="-317.55" font-family="Helvetica,sans-Serif" font-size="11.00" fill="#0f172a">repo/env/rf/web</text>
131
+ <text xml:space="preserve" text-anchor="middle" x="2690.34" y="-304.05" font-family="Helvetica,sans-Serif" font-size="11.00" fill="#0f172a">(AUTO_SECTIONS=host/repo/env)</text>
132
132
  </g>
133
133
  <!-- World&#45;&gt;Snapshot -->
134
134
  <g id="edge16" class="edge">
135
135
  <title>World&#45;&gt;Snapshot</title>
136
- <path fill="none" stroke="#fb7185" stroke-width="1.3" d="M1224.94,-683.13C1296.58,-669.39 1398.35,-644.95 1422.68,-613.5 1434.65,-598.02 1415.61,-451.11 1429.68,-437.5 1440.96,-426.58 2545.98,-435.04 2560.68,-429.5 2594.2,-416.86 2624.5,-389.78 2645.73,-366.91"/>
137
- <polygon fill="#fb7185" stroke="#fb7185" stroke-width="1.3" points="2647.68,-368.92 2650.97,-361.11 2643.53,-365.17 2647.68,-368.92"/>
136
+ <path fill="none" stroke="#fb7185" stroke-width="1.3" d="M1227.84,-685.3C1306.18,-672.75 1422.61,-648.68 1449.34,-613.5 1483.5,-568.56 1464.55,-540.86 1449.34,-486.5 1443.13,-464.3 1416.1,-453.86 1432.34,-437.5 1443.52,-426.25 2559.5,-435.09 2574.34,-429.5 2607.87,-416.86 2638.17,-389.78 2659.4,-366.91"/>
137
+ <polygon fill="#fb7185" stroke="#fb7185" stroke-width="1.3" points="2661.35,-368.93 2664.64,-361.11 2657.2,-365.17 2661.35,-368.93"/>
138
138
  </g>
139
139
  <!-- Observe -->
140
140
  <g id="node17" class="node">
141
141
  <title>Observe</title>
142
- <path fill="#fcd34d" stroke="#334155" stroke-width="1.4" d="M3095.18,-346C3095.18,-346 2986.18,-346 2986.18,-346 2980.18,-346 2974.18,-340 2974.18,-334 2974.18,-334 2974.18,-322 2974.18,-322 2974.18,-316 2980.18,-310 2986.18,-310 2986.18,-310 3095.18,-310 3095.18,-310 3101.18,-310 3107.18,-316 3107.18,-322 3107.18,-322 3107.18,-334 3107.18,-334 3107.18,-340 3101.18,-346 3095.18,-346"/>
143
- <text xml:space="preserve" text-anchor="middle" x="3040.68" y="-331.05" font-family="sans-Serif" font-size="11.00" fill="#0f172a">observe · intel · watch</text>
144
- <text xml:space="preserve" text-anchor="middle" x="3040.68" y="-317.55" font-family="sans-Serif" font-size="11.00" fill="#0f172a">recon · CVE · web DOM</text>
142
+ <path fill="#fcd34d" stroke="#334155" stroke-width="1.4" d="M3108.84,-346C3108.84,-346 2999.84,-346 2999.84,-346 2993.84,-346 2987.84,-340 2987.84,-334 2987.84,-334 2987.84,-322 2987.84,-322 2987.84,-316 2993.84,-310 2999.84,-310 2999.84,-310 3108.84,-310 3108.84,-310 3114.84,-310 3120.84,-316 3120.84,-322 3120.84,-322 3120.84,-334 3120.84,-334 3120.84,-340 3114.84,-346 3108.84,-346"/>
143
+ <text xml:space="preserve" text-anchor="middle" x="3054.34" y="-331.05" font-family="Helvetica,sans-Serif" font-size="11.00" fill="#0f172a">observe · intel · watch</text>
144
+ <text xml:space="preserve" text-anchor="middle" x="3054.34" y="-317.55" font-family="Helvetica,sans-Serif" font-size="11.00" fill="#0f172a">recon · CVE · web DOM</text>
145
145
  </g>
146
146
  <!-- World&#45;&gt;Observe -->
147
147
  <g id="edge17" class="edge">
148
148
  <title>World&#45;&gt;Observe</title>
149
- <path fill="none" stroke="#fb7185" stroke-width="1.3" d="M1225.14,-693.49C1283.44,-689.14 1365.37,-676.75 1428.68,-642.5 1444.43,-633.97 1448.95,-629.66 1456.68,-613.5 1473.68,-577.94 1449.2,-463.67 1478.68,-437.5 1493.99,-423.91 2934.05,-438.01 2952.68,-429.5 2986.12,-414.22 3011.89,-379.33 3026.66,-354.97"/>
150
- <polygon fill="#fb7185" stroke="#fb7185" stroke-width="1.3" points="3028.98,-356.54 3030.61,-348.23 3024.15,-353.72 3028.98,-356.54"/>
149
+ <path fill="none" stroke="#fb7185" stroke-width="1.3" d="M1227.77,-690.3C1319.9,-681.83 1468.63,-660.96 1491.34,-613.5 1515.71,-562.59 1500.98,-542.12 1491.34,-486.5 1487.55,-464.6 1465.67,-453.26 1481.34,-437.5 1495.89,-422.88 2947.58,-438.07 2966.34,-429.5 2999.79,-414.22 3025.56,-379.33 3040.33,-354.97"/>
150
+ <polygon fill="#fb7185" stroke="#fb7185" stroke-width="1.3" points="3042.65,-356.54 3044.28,-348.23 3037.82,-353.72 3042.65,-356.54"/>
151
151
  </g>
152
152
  <!-- Verify -->
153
153
  <g id="node18" class="node">
154
154
  <title>Verify</title>
155
- <path fill="#fcd34d" stroke="#334155" stroke-width="2" d="M2527.18,-352.25C2527.18,-352.25 2430.18,-352.25 2430.18,-352.25 2424.18,-352.25 2418.18,-346.25 2418.18,-340.25 2418.18,-340.25 2418.18,-315.75 2418.18,-315.75 2418.18,-309.75 2424.18,-303.75 2430.18,-303.75 2430.18,-303.75 2527.18,-303.75 2527.18,-303.75 2533.18,-303.75 2539.18,-309.75 2539.18,-315.75 2539.18,-315.75 2539.18,-340.25 2539.18,-340.25 2539.18,-346.25 2533.18,-352.25 2527.18,-352.25"/>
156
- <text xml:space="preserve" text-anchor="middle" x="2478.68" y="-337.8" font-family="sans-Serif" font-size="11.00" fill="#0f172a">verify (browser)</text>
157
- <text xml:space="preserve" text-anchor="middle" x="2478.68" y="-324.3" font-family="sans-Serif" font-size="11.00" fill="#0f172a">fact&#45;check own claims</text>
158
- <text xml:space="preserve" text-anchor="middle" x="2478.68" y="-310.8" font-family="sans-Serif" font-size="11.00" fill="#0f172a">revalidate_memory</text>
155
+ <path fill="#fcd34d" stroke="#334155" stroke-width="2" d="M2540.84,-352.25C2540.84,-352.25 2443.84,-352.25 2443.84,-352.25 2437.84,-352.25 2431.84,-346.25 2431.84,-340.25 2431.84,-340.25 2431.84,-315.75 2431.84,-315.75 2431.84,-309.75 2437.84,-303.75 2443.84,-303.75 2443.84,-303.75 2540.84,-303.75 2540.84,-303.75 2546.84,-303.75 2552.84,-309.75 2552.84,-315.75 2552.84,-315.75 2552.84,-340.25 2552.84,-340.25 2552.84,-346.25 2546.84,-352.25 2540.84,-352.25"/>
156
+ <text xml:space="preserve" text-anchor="middle" x="2492.34" y="-337.8" font-family="Helvetica,sans-Serif" font-size="11.00" fill="#0f172a">verify (browser)</text>
157
+ <text xml:space="preserve" text-anchor="middle" x="2492.34" y="-324.3" font-family="Helvetica,sans-Serif" font-size="11.00" fill="#0f172a">fact&#45;check own claims</text>
158
+ <text xml:space="preserve" text-anchor="middle" x="2492.34" y="-310.8" font-family="Helvetica,sans-Serif" font-size="11.00" fill="#0f172a">revalidate_memory</text>
159
159
  </g>
160
160
  <!-- World&#45;&gt;Verify -->
161
161
  <g id="edge18" class="edge">
162
162
  <title>World&#45;&gt;Verify</title>
163
- <path fill="none" stroke="#38bdf8" stroke-width="2" d="M1224.94,-695.74C1306.72,-693.75 1441.72,-683.67 1549.68,-642.5 1701.25,-584.69 1697.01,-486.43 1851.68,-437.5 1903.17,-421.21 2286.37,-446.38 2337.68,-429.5 2379.86,-415.62 2420.31,-384.3 2446.98,-360.28"/>
164
- <polygon fill="#38bdf8" stroke="#38bdf8" stroke-width="2" points="2448.58,-362.61 2452.57,-355.14 2444.79,-358.49 2448.58,-362.61"/>
165
- <text xml:space="preserve" text-anchor="middle" x="1794.45" y="-520.7" font-family="sans-Serif" font-size="9.00" fill="#cbd5e1">TransparentBrowser</text>
166
- <text xml:space="preserve" text-anchor="middle" x="1794.45" y="-510.2" font-family="sans-Serif" font-size="9.00" fill="#cbd5e1">:headless</text>
163
+ <path fill="none" stroke="#38bdf8" stroke-width="2" d="M1227.84,-694.59C1463.38,-691.33 2186.16,-678.43 2220.34,-642.5 2341.19,-515.49 1760.33,-562.41 1883.34,-437.5 1893.56,-427.13 2394.19,-435.73 2407.34,-429.5 2436.94,-415.5 2460.03,-385.69 2474.63,-362.16"/>
164
+ <polygon fill="#38bdf8" stroke="#38bdf8" stroke-width="2" points="2476.93,-363.75 2478.62,-355.45 2472.12,-360.89 2476.93,-363.75"/>
165
+ <text xml:space="preserve" text-anchor="middle" x="2278.58" y="-520.7" font-family="Helvetica,sans-Serif" font-size="9.00" fill="#cbd5e1">TransparentBrowser</text>
166
+ <text xml:space="preserve" text-anchor="middle" x="2278.58" y="-510.2" font-family="Helvetica,sans-Serif" font-size="9.00" fill="#cbd5e1">:headless</text>
167
167
  </g>
168
168
  <!-- RFTune -->
169
169
  <g id="node19" class="node">
170
170
  <title>RFTune</title>
171
- <path fill="#fcd34d" stroke="#334155" stroke-width="2" d="M2919.3,-352.25C2919.3,-352.25 2826.05,-352.25 2826.05,-352.25 2820.05,-352.25 2814.05,-346.25 2814.05,-340.25 2814.05,-340.25 2814.05,-315.75 2814.05,-315.75 2814.05,-309.75 2820.05,-303.75 2826.05,-303.75 2826.05,-303.75 2919.3,-303.75 2919.3,-303.75 2925.3,-303.75 2931.3,-309.75 2931.3,-315.75 2931.3,-315.75 2931.3,-340.25 2931.3,-340.25 2931.3,-346.25 2925.3,-352.25 2919.3,-352.25"/>
172
- <text xml:space="preserve" text-anchor="middle" x="2872.68" y="-337.8" font-family="sans-Serif" font-size="11.00" fill="#0f172a">rf_tune &#160;📡</text>
173
- <text xml:space="preserve" text-anchor="middle" x="2872.68" y="-324.3" font-family="sans-Serif" font-size="11.00" fill="#0f172a">tune GQRX · demod</text>
174
- <text xml:space="preserve" text-anchor="middle" x="2872.68" y="-310.8" font-family="sans-Serif" font-size="11.00" fill="#0f172a">RDS → now_playing</text>
171
+ <path fill="#fcd34d" stroke="#334155" stroke-width="2" d="M2932.97,-352.25C2932.97,-352.25 2839.72,-352.25 2839.72,-352.25 2833.72,-352.25 2827.72,-346.25 2827.72,-340.25 2827.72,-340.25 2827.72,-315.75 2827.72,-315.75 2827.72,-309.75 2833.72,-303.75 2839.72,-303.75 2839.72,-303.75 2932.97,-303.75 2932.97,-303.75 2938.97,-303.75 2944.97,-309.75 2944.97,-315.75 2944.97,-315.75 2944.97,-340.25 2944.97,-340.25 2944.97,-346.25 2938.97,-352.25 2932.97,-352.25"/>
172
+ <text xml:space="preserve" text-anchor="middle" x="2886.34" y="-337.8" font-family="Helvetica,sans-Serif" font-size="11.00" fill="#0f172a">rf_tune &#160;📡</text>
173
+ <text xml:space="preserve" text-anchor="middle" x="2886.34" y="-324.3" font-family="Helvetica,sans-Serif" font-size="11.00" fill="#0f172a">tune GQRX · demod</text>
174
+ <text xml:space="preserve" text-anchor="middle" x="2886.34" y="-310.8" font-family="Helvetica,sans-Serif" font-size="11.00" fill="#0f172a">RDS → now_playing</text>
175
175
  </g>
176
176
  <!-- World&#45;&gt;RFTune -->
177
177
  <g id="edge19" class="edge">
178
178
  <title>World&#45;&gt;RFTune</title>
179
- <path fill="none" stroke="#fb7185" stroke-width="2" d="M1225.04,-686.99C1314.64,-676.58 1470.81,-658.39 1604.68,-642.5 1711.81,-629.79 1743.9,-649.28 1845.68,-613.5 1915.54,-588.94 2057.59,-458.27 2128.68,-437.5 2164.09,-427.16 2759.54,-445.72 2792.68,-429.5 2821.24,-415.51 2842.81,-385.92 2856.31,-362.45"/>
180
- <polygon fill="#fb7185" stroke="#fb7185" stroke-width="2" points="2858.74,-363.84 2860.14,-355.48 2853.83,-361.14 2858.74,-363.84"/>
181
- <text xml:space="preserve" text-anchor="middle" x="2067.74" y="-520.7" font-family="sans-Serif" font-size="9.00" fill="#cbd5e1">GQRX remote</text>
182
- <text xml:space="preserve" text-anchor="middle" x="2067.74" y="-510.2" font-family="sans-Serif" font-size="9.00" fill="#cbd5e1">:7356 + SDR</text>
179
+ <path fill="none" stroke="#fb7185" stroke-width="2" d="M1227.57,-695.22C1441.34,-693.87 2061.86,-686.22 2259.34,-642.5 2292.62,-635.13 2311.34,-641.79 2330.34,-613.5 2361.82,-566.65 2367.18,-529.27 2330.34,-486.5 2275.5,-422.83 2198.19,-522.17 2143.34,-458.5 2137.25,-451.43 2136.78,-444.14 2143.34,-437.5 2156.29,-424.4 2789.8,-437.6 2806.34,-429.5 2834.91,-415.51 2856.48,-385.92 2869.98,-362.45"/>
180
+ <polygon fill="#fb7185" stroke="#fb7185" stroke-width="2" points="2872.41,-363.84 2873.81,-355.48 2867.5,-361.14 2872.41,-363.84"/>
181
+ <text xml:space="preserve" text-anchor="middle" x="2384.5" y="-520.7" font-family="Helvetica,sans-Serif" font-size="9.00" fill="#cbd5e1">GQRX remote</text>
182
+ <text xml:space="preserve" text-anchor="middle" x="2384.5" y="-510.2" font-family="Helvetica,sans-Serif" font-size="9.00" fill="#cbd5e1">:7356 + SDR</text>
183
183
  </g>
184
184
  <!-- Router -->
185
185
  <g id="node6" class="node">
186
186
  <title>Router</title>
187
- <path fill="#c4b5fd" stroke="#334155" stroke-width="1.4" d="M450.3,-543C450.3,-543 387.05,-543 387.05,-543 381.05,-543 375.05,-537 375.05,-531 375.05,-531 375.05,-506.5 375.05,-506.5 375.05,-500.5 381.05,-494.5 387.05,-494.5 387.05,-494.5 450.3,-494.5 450.3,-494.5 456.3,-494.5 462.3,-500.5 462.3,-506.5 462.3,-506.5 462.3,-531 462.3,-531 462.3,-537 456.3,-543 450.3,-543"/>
188
- <text xml:space="preserve" text-anchor="middle" x="418.68" y="-528.55" font-family="sans-Serif" font-size="11.00" fill="#0f172a">Registry</text>
189
- <text xml:space="preserve" text-anchor="middle" x="418.68" y="-515.05" font-family="sans-Serif" font-size="11.00" fill="#0f172a">tool_router</text>
190
- <text xml:space="preserve" text-anchor="middle" x="418.68" y="-501.55" font-family="sans-Serif" font-size="11.00" fill="#0f172a">CORE + top&#45;K</text>
187
+ <path fill="#c4b5fd" stroke="#334155" stroke-width="1.4" d="M452.97,-543C452.97,-543 389.72,-543 389.72,-543 383.72,-543 377.72,-537 377.72,-531 377.72,-531 377.72,-506.5 377.72,-506.5 377.72,-500.5 383.72,-494.5 389.72,-494.5 389.72,-494.5 452.97,-494.5 452.97,-494.5 458.97,-494.5 464.97,-500.5 464.97,-506.5 464.97,-506.5 464.97,-531 464.97,-531 464.97,-537 458.97,-543 452.97,-543"/>
188
+ <text xml:space="preserve" text-anchor="middle" x="421.34" y="-528.55" font-family="Helvetica,sans-Serif" font-size="11.00" fill="#0f172a">Registry</text>
189
+ <text xml:space="preserve" text-anchor="middle" x="421.34" y="-515.05" font-family="Helvetica,sans-Serif" font-size="11.00" fill="#0f172a">tool_router</text>
190
+ <text xml:space="preserve" text-anchor="middle" x="421.34" y="-501.55" font-family="Helvetica,sans-Serif" font-size="11.00" fill="#0f172a">CORE + top&#45;K</text>
191
191
  </g>
192
192
  <!-- Prompt&#45;&gt;Router -->
193
193
  <g id="edge4" class="edge">
194
194
  <title>Prompt&#45;&gt;Router</title>
195
- <path fill="none" stroke="#a78bfa" stroke-width="1.3" d="M289.97,-518.75C314.83,-518.75 339.68,-518.75 364.54,-518.75"/>
196
- <polygon fill="#a78bfa" stroke="#a78bfa" stroke-width="1.3" points="364.47,-521.55 372.47,-518.75 364.47,-515.95 364.47,-521.55"/>
195
+ <path fill="none" stroke="#a78bfa" stroke-width="1.3" d="M292.64,-518.75C317.5,-518.75 342.35,-518.75 367.21,-518.75"/>
196
+ <polygon fill="#a78bfa" stroke="#a78bfa" stroke-width="1.3" points="367.14,-521.55 375.14,-518.75 367.14,-515.95 367.14,-521.55"/>
197
197
  </g>
198
198
  <!-- Escalate -->
199
199
  <g id="node8" class="node">
200
200
  <title>Escalate</title>
201
- <path fill="#c4b5fd" stroke="#334155" stroke-width="2" d="M1017.68,-536.75C1017.68,-536.75 917.68,-536.75 917.68,-536.75 911.68,-536.75 905.68,-530.75 905.68,-524.75 905.68,-524.75 905.68,-512.75 905.68,-512.75 905.68,-506.75 911.68,-500.75 917.68,-500.75 917.68,-500.75 1017.68,-500.75 1017.68,-500.75 1023.68,-500.75 1029.68,-506.75 1029.68,-512.75 1029.68,-512.75 1029.68,-524.75 1029.68,-524.75 1029.68,-530.75 1023.68,-536.75 1017.68,-536.75"/>
202
- <text xml:space="preserve" text-anchor="middle" x="967.68" y="-521.8" font-family="sans-Serif" font-size="11.00" fill="#0f172a">escalate</text>
203
- <text xml:space="preserve" text-anchor="middle" x="967.68" y="-508.3" font-family="sans-Serif" font-size="11.00" fill="#0f172a">≥N fails → Swarm hint</text>
201
+ <path fill="#c4b5fd" stroke="#334155" stroke-width="2" d="M1020.34,-536.75C1020.34,-536.75 920.34,-536.75 920.34,-536.75 914.34,-536.75 908.34,-530.75 908.34,-524.75 908.34,-524.75 908.34,-512.75 908.34,-512.75 908.34,-506.75 914.34,-500.75 920.34,-500.75 920.34,-500.75 1020.34,-500.75 1020.34,-500.75 1026.34,-500.75 1032.34,-506.75 1032.34,-512.75 1032.34,-512.75 1032.34,-524.75 1032.34,-524.75 1032.34,-530.75 1026.34,-536.75 1020.34,-536.75"/>
202
+ <text xml:space="preserve" text-anchor="middle" x="970.34" y="-521.8" font-family="Helvetica,sans-Serif" font-size="11.00" fill="#0f172a">escalate</text>
203
+ <text xml:space="preserve" text-anchor="middle" x="970.34" y="-508.3" font-family="Helvetica,sans-Serif" font-size="11.00" fill="#0f172a">≥N fails → Swarm hint</text>
204
204
  </g>
205
205
  <!-- Dispatch&#45;&gt;Escalate -->
206
206
  <g id="edge7" class="edge">
207
207
  <title>Dispatch&#45;&gt;Escalate</title>
208
- <path fill="none" stroke="#fb7185" stroke-width="1.3" stroke-dasharray="5,2" d="M809.12,-518.75C833.99,-518.75 866.33,-518.75 895.32,-518.75"/>
209
- <polygon fill="#fb7185" stroke="#fb7185" stroke-width="1.3" points="895.03,-521.55 903.03,-518.75 895.03,-515.95 895.03,-521.55"/>
210
- <text xml:space="preserve" text-anchor="middle" x="857.18" y="-523.7" font-family="sans-Serif" font-size="9.00" fill="#cbd5e1">turn_fails ≥ N</text>
208
+ <path fill="none" stroke="#fb7185" stroke-width="1.3" stroke-dasharray="5,2" d="M811.78,-518.75C836.66,-518.75 869,-518.75 897.98,-518.75"/>
209
+ <polygon fill="#fb7185" stroke="#fb7185" stroke-width="1.3" points="897.7,-521.55 905.7,-518.75 897.7,-515.95 897.7,-521.55"/>
210
+ <text xml:space="preserve" text-anchor="middle" x="859.84" y="-523.7" font-family="Helvetica,sans-Serif" font-size="9.00" fill="#cbd5e1">turn_fails ≥ N</text>
211
211
  </g>
212
212
  <!-- Dispatch&#45;&gt;Result -->
213
213
  <g id="edge8" class="edge">
214
214
  <title>Dispatch&#45;&gt;Result</title>
215
- <path fill="none" stroke="#a78bfa" stroke-width="1.3" d="M785.11,-543.47C808.54,-574.29 853.39,-625.43 906.18,-646 957.53,-666.01 979.51,-667.68 1030.18,-646 1077.92,-625.57 1115.84,-576.15 1135.92,-545.26"/>
216
- <polygon fill="#a78bfa" stroke="#a78bfa" stroke-width="1.3" points="1138.14,-547 1140.05,-538.74 1133.41,-544 1138.14,-547"/>
215
+ <path fill="none" stroke="#a78bfa" stroke-width="1.3" d="M787.78,-543.47C811.2,-574.29 856.06,-625.43 908.84,-646 960.19,-666.01 982.17,-667.68 1032.84,-646 1080.59,-625.57 1118.51,-576.15 1138.59,-545.26"/>
216
+ <polygon fill="#a78bfa" stroke="#a78bfa" stroke-width="1.3" points="1140.81,-547 1142.72,-538.74 1136.07,-544 1140.81,-547"/>
217
217
  </g>
218
218
  <!-- Metrics -->
219
219
  <g id="node10" class="node">
220
220
  <title>Metrics</title>
221
- <path fill="#6ee7b7" stroke="#334155" stroke-width="1.4" d="M2307.43,-352.25C2307.43,-352.25 2199.93,-352.25 2199.93,-352.25 2193.93,-352.25 2187.93,-346.25 2187.93,-340.25 2187.93,-340.25 2187.93,-315.75 2187.93,-315.75 2187.93,-309.75 2193.93,-303.75 2199.93,-303.75 2199.93,-303.75 2307.43,-303.75 2307.43,-303.75 2313.43,-303.75 2319.43,-309.75 2319.43,-315.75 2319.43,-315.75 2319.43,-340.25 2319.43,-340.25 2319.43,-346.25 2313.43,-352.25 2307.43,-352.25"/>
222
- <text xml:space="preserve" text-anchor="middle" x="2253.68" y="-337.8" font-family="sans-Serif" font-size="11.00" fill="#0f172a">Metrics</text>
223
- <text xml:space="preserve" text-anchor="middle" x="2253.68" y="-324.3" font-family="sans-Serif" font-size="11.00" fill="#0f172a">per&#45;tool · PER&#45;ENGINE</text>
224
- <text xml:space="preserve" text-anchor="middle" x="2253.68" y="-310.8" font-family="sans-Serif" font-size="11.00" fill="#0f172a">success · avg ms</text>
221
+ <path fill="#6ee7b7" stroke="#334155" stroke-width="1.4" d="M2377.09,-352.25C2377.09,-352.25 2269.59,-352.25 2269.59,-352.25 2263.59,-352.25 2257.59,-346.25 2257.59,-340.25 2257.59,-340.25 2257.59,-315.75 2257.59,-315.75 2257.59,-309.75 2263.59,-303.75 2269.59,-303.75 2269.59,-303.75 2377.09,-303.75 2377.09,-303.75 2383.09,-303.75 2389.09,-309.75 2389.09,-315.75 2389.09,-315.75 2389.09,-340.25 2389.09,-340.25 2389.09,-346.25 2383.09,-352.25 2377.09,-352.25"/>
222
+ <text xml:space="preserve" text-anchor="middle" x="2323.34" y="-337.8" font-family="Helvetica,sans-Serif" font-size="11.00" fill="#0f172a">Metrics</text>
223
+ <text xml:space="preserve" text-anchor="middle" x="2323.34" y="-324.3" font-family="Helvetica,sans-Serif" font-size="11.00" fill="#0f172a">per&#45;tool · PER&#45;ENGINE</text>
224
+ <text xml:space="preserve" text-anchor="middle" x="2323.34" y="-310.8" font-family="Helvetica,sans-Serif" font-size="11.00" fill="#0f172a">success · avg ms</text>
225
225
  </g>
226
226
  <!-- Dispatch&#45;&gt;Metrics -->
227
227
  <g id="edge10" class="edge">
228
228
  <title>Dispatch&#45;&gt;Metrics</title>
229
- <path fill="none" stroke="#34d399" stroke-width="1.3" d="M809.14,-504.04C831.28,-497.39 859.17,-490.08 884.68,-486.5 926.93,-480.56 2390.78,-488.95 2420.68,-458.5 2427.21,-451.84 2425.97,-445.19 2420.68,-437.5 2415.01,-429.28 2408.52,-434.14 2399.68,-429.5 2360.82,-409.1 2319.96,-380.25 2291.37,-358.69"/>
230
- <polygon fill="#34d399" stroke="#34d399" stroke-width="1.3" points="2293.28,-356.62 2285.21,-354 2289.89,-361.07 2293.28,-356.62"/>
231
- <text xml:space="preserve" text-anchor="middle" x="2456.63" y="-444.7" font-family="sans-Serif" font-size="9.00" fill="#cbd5e1">record(engine:)</text>
229
+ <path fill="none" stroke="#34d399" stroke-width="1.3" d="M811.8,-504.04C833.95,-497.39 861.84,-490.08 887.34,-486.5 929.93,-480.52 2405.21,-489.18 2435.34,-458.5 2441.88,-451.84 2440.7,-445.14 2435.34,-437.5 2429.37,-428.98 2421.96,-435.33 2413.34,-429.5 2386.04,-411.04 2361.56,-382.51 2345.05,-360.55"/>
230
+ <polygon fill="#34d399" stroke="#34d399" stroke-width="1.3" points="2347.5,-359.16 2340.5,-354.38 2342.99,-362.48 2347.5,-359.16"/>
231
+ <text xml:space="preserve" text-anchor="middle" x="2471.31" y="-444.7" font-family="Helvetica,sans-Serif" font-size="9.00" fill="#cbd5e1">record(engine:)</text>
232
232
  </g>
233
233
  <!-- Dispatch&#45;&gt;Mistakes -->
234
234
  <g id="edge12" class="edge">
235
235
  <title>Dispatch&#45;&gt;Mistakes</title>
236
- <path fill="none" stroke="#fb7185" stroke-width="2" d="M726.07,-505.02C675.54,-489.36 596.49,-464.16 592.43,-458.5 586.98,-450.92 585.87,-444.14 592.43,-437.5 605.16,-424.61 1227.87,-436.27 1244.68,-429.5 1275.91,-416.91 1303.4,-390.55 1322.7,-367.98"/>
237
- <polygon fill="#fb7185" stroke="#fb7185" stroke-width="2" points="1324.8,-369.83 1327.75,-361.88 1320.49,-366.26 1324.8,-369.83"/>
238
- <text xml:space="preserve" text-anchor="middle" x="611.55" y="-449.95" font-family="sans-Serif" font-size="9.00" fill="#cbd5e1">on failure</text>
239
- <text xml:space="preserve" text-anchor="middle" x="611.55" y="-439.45" font-family="sans-Serif" font-size="9.00" fill="#cbd5e1">record()</text>
236
+ <path fill="none" stroke="#fb7185" stroke-width="2" d="M728.74,-505.02C678.21,-489.36 599.15,-464.16 595.09,-458.5 589.65,-450.92 588.53,-444.14 595.09,-437.5 607.83,-424.61 1230.54,-436.27 1247.34,-429.5 1278.57,-416.91 1306.07,-390.55 1325.37,-367.98"/>
237
+ <polygon fill="#fb7185" stroke="#fb7185" stroke-width="2" points="1327.47,-369.83 1330.42,-361.88 1323.16,-366.26 1327.47,-369.83"/>
238
+ <text xml:space="preserve" text-anchor="middle" x="614.22" y="-449.95" font-family="Helvetica,sans-Serif" font-size="9.00" fill="#cbd5e1">on failure</text>
239
+ <text xml:space="preserve" text-anchor="middle" x="614.22" y="-439.45" font-family="Helvetica,sans-Serif" font-size="9.00" fill="#cbd5e1">record()</text>
240
240
  </g>
241
241
  <!-- Curric -->
242
242
  <g id="node15" class="node">
243
243
  <title>Curric</title>
244
- <path fill="#6ee7b7" stroke="#334155" stroke-width="2" d="M2132.55,-359C2132.55,-359 2016.8,-359 2016.8,-359 2010.8,-359 2004.8,-353 2004.8,-347 2004.8,-347 2004.8,-309 2004.8,-309 2004.8,-303 2010.8,-297 2016.8,-297 2016.8,-297 2132.55,-297 2132.55,-297 2138.55,-297 2144.55,-303 2144.55,-309 2144.55,-309 2144.55,-347 2144.55,-347 2144.55,-353 2138.55,-359 2132.55,-359"/>
245
- <text xml:space="preserve" text-anchor="middle" x="2074.68" y="-344.55" font-family="sans-Serif" font-size="11.00" fill="#0f172a">Curriculum</text>
246
- <text xml:space="preserve" text-anchor="middle" x="2074.68" y="-331.05" font-family="sans-Serif" font-size="11.00" fill="#0f172a">practice · offline_judge</text>
247
- <text xml:space="preserve" text-anchor="middle" x="2074.68" y="-317.55" font-family="sans-Serif" font-size="11.00" fill="#0f172a">counterfactual · critic</text>
248
- <text xml:space="preserve" text-anchor="middle" x="2074.68" y="-304.05" font-family="sans-Serif" font-size="11.00" fill="#0f172a">hindsight · train_and_gate</text>
244
+ <path fill="#6ee7b7" stroke="#334155" stroke-width="2" d="M2202.59,-352.25C2202.59,-352.25 2032.09,-352.25 2032.09,-352.25 2026.09,-352.25 2020.09,-346.25 2020.09,-340.25 2020.09,-340.25 2020.09,-315.75 2020.09,-315.75 2020.09,-309.75 2026.09,-303.75 2032.09,-303.75 2032.09,-303.75 2202.59,-303.75 2202.59,-303.75 2208.59,-303.75 2214.59,-309.75 2214.59,-315.75 2214.59,-315.75 2214.59,-340.25 2214.59,-340.25 2214.59,-346.25 2208.59,-352.25 2202.59,-352.25"/>
245
+ <text xml:space="preserve" text-anchor="middle" x="2117.34" y="-337.8" font-family="Helvetica,sans-Serif" font-size="11.00" fill="#0f172a">Curriculum</text>
246
+ <text xml:space="preserve" text-anchor="middle" x="2117.34" y="-324.3" font-family="Helvetica,sans-Serif" font-size="11.00" fill="#0f172a">practice P14/P17 · offline_judge</text>
247
+ <text xml:space="preserve" text-anchor="middle" x="2117.34" y="-310.8" font-family="Helvetica,sans-Serif" font-size="11.00" fill="#0f172a">critic/CF geometry · gate v2+P19 diet</text>
249
248
  </g>
250
249
  <!-- Dispatch&#45;&gt;Curric -->
251
250
  <g id="edge61" class="edge">
252
251
  <title>Dispatch&#45;&gt;Curric</title>
253
- <path fill="none" stroke="#fb7185" stroke-width="1.3" stroke-dasharray="5,2" d="M767.14,-493.9C768.15,-475.3 772.94,-450.51 789.93,-437.5 803.09,-427.42 1968.54,-436.27 1983.68,-429.5 2011.99,-416.83 2035.28,-390.56 2051.2,-368.06"/>
254
- <polygon fill="#fb7185" stroke="#fb7185" stroke-width="1.3" points="2053.42,-369.78 2055.62,-361.59 2048.79,-366.62 2053.42,-369.78"/>
255
- <text xml:space="preserve" text-anchor="middle" x="818.8" y="-449.95" font-family="sans-Serif" font-size="9.00" fill="#cbd5e1">counterfactual</text>
256
- <text xml:space="preserve" text-anchor="middle" x="818.8" y="-439.45" font-family="sans-Serif" font-size="9.00" fill="#cbd5e1">[REPEATING]</text>
252
+ <path fill="none" stroke="#fb7185" stroke-width="1.3" stroke-dasharray="5,2" d="M769.81,-493.9C770.82,-475.3 775.6,-450.51 792.59,-437.5 805.89,-427.32 1982.64,-435.3 1998.34,-429.5 2035.81,-415.65 2069.66,-384.32 2091.59,-360.3"/>
253
+ <polygon fill="#fb7185" stroke="#fb7185" stroke-width="1.3" points="2093.47,-362.41 2096.7,-354.57 2089.29,-358.68 2093.47,-362.41"/>
254
+ <text xml:space="preserve" text-anchor="middle" x="821.47" y="-449.95" font-family="Helvetica,sans-Serif" font-size="9.00" fill="#cbd5e1">counterfactual</text>
255
+ <text xml:space="preserve" text-anchor="middle" x="821.47" y="-439.45" font-family="Helvetica,sans-Serif" font-size="9.00" fill="#cbd5e1">[REPEATING]</text>
257
256
  </g>
258
257
  <!-- Dispatch&#45;&gt;Snapshot -->
259
258
  <g id="edge14" class="edge">
260
259
  <title>Dispatch&#45;&gt;Snapshot</title>
261
- <path fill="none" stroke="#f59e0b" stroke-width="1.3" d="M809.13,-503.33C873.28,-481.14 991.35,-440.81 1011.68,-437.5 1054.14,-430.58 2520.4,-444.64 2560.68,-429.5 2594.21,-416.89 2624.52,-389.81 2645.74,-366.93"/>
262
- <polygon fill="#f59e0b" stroke="#f59e0b" stroke-width="1.3" points="2647.69,-368.94 2650.98,-361.13 2643.54,-365.19 2647.69,-368.94"/>
263
- <text xml:space="preserve" text-anchor="middle" x="1023.68" y="-444.7" font-family="sans-Serif" font-size="9.00" fill="#cbd5e1">probe</text>
260
+ <path fill="none" stroke="#f59e0b" stroke-width="1.3" d="M811.8,-503.33C875.95,-481.14 994.02,-440.81 1014.34,-437.5 1057.11,-430.53 2533.78,-444.75 2574.34,-429.5 2607.88,-416.9 2638.18,-389.81 2659.4,-366.93"/>
261
+ <polygon fill="#f59e0b" stroke="#f59e0b" stroke-width="1.3" points="2661.36,-368.94 2664.65,-361.13 2657.2,-365.19 2661.36,-368.94"/>
262
+ <text xml:space="preserve" text-anchor="middle" x="1026.34" y="-444.7" font-family="Helvetica,sans-Serif" font-size="9.00" fill="#cbd5e1">probe</text>
264
263
  </g>
265
264
  <!-- Dispatch&#45;&gt;Observe -->
266
265
  <g id="edge20" class="edge">
267
266
  <title>Dispatch&#45;&gt;Observe</title>
268
- <path fill="none" stroke="#f59e0b" stroke-width="1.3" stroke-dasharray="5,2" d="M809.14,-504.06C831.29,-497.42 859.17,-490.11 884.68,-486.5 1037.63,-464.86 2125.55,-498.79 2274.68,-458.5 2293.21,-453.49 2293.87,-442.44 2312.43,-437.5 2346.8,-428.35 2920.37,-444.4 2952.68,-429.5 2986.06,-414.1 3011.85,-379.24 3026.64,-354.92"/>
269
- <polygon fill="#f59e0b" stroke="#f59e0b" stroke-width="1.3" points="3028.95,-356.5 3030.59,-348.19 3024.13,-353.67 3028.95,-356.5"/>
270
- <text xml:space="preserve" text-anchor="middle" x="2361.55" y="-449.95" font-family="sans-Serif" font-size="9.00" fill="#cbd5e1">sense tools</text>
271
- <text xml:space="preserve" text-anchor="middle" x="2361.55" y="-439.45" font-family="sans-Serif" font-size="9.00" fill="#cbd5e1">verify/watch/rf_tune/intel</text>
267
+ <path fill="none" stroke="#f59e0b" stroke-width="1.3" stroke-dasharray="5,2" d="M811.81,-504.06C833.96,-497.42 861.84,-490.11 887.34,-486.5 1041.62,-464.68 2138.93,-499.13 2289.34,-458.5 2307.88,-453.49 2308.54,-442.44 2327.09,-437.5 2361.42,-428.37 2934.09,-444.37 2966.34,-429.5 2999.73,-414.1 3025.51,-379.24 3040.31,-354.92"/>
268
+ <polygon fill="#f59e0b" stroke="#f59e0b" stroke-width="1.3" points="3042.62,-356.5 3044.26,-348.19 3037.79,-353.67 3042.62,-356.5"/>
269
+ <text xml:space="preserve" text-anchor="middle" x="2376.22" y="-449.95" font-family="Helvetica,sans-Serif" font-size="9.00" fill="#cbd5e1">sense tools</text>
270
+ <text xml:space="preserve" text-anchor="middle" x="2376.22" y="-439.45" font-family="Helvetica,sans-Serif" font-size="9.00" fill="#cbd5e1">verify/watch/rf_tune/intel</text>
272
271
  </g>
273
272
  <!-- Plan -->
274
273
  <g id="node7" class="node">
275
274
  <title>Plan</title>
276
- <path fill="#c4b5fd" stroke="#334155" stroke-width="1.4" d="M629.3,-536.75C629.3,-536.75 560.05,-536.75 560.05,-536.75 554.05,-536.75 548.05,-530.75 548.05,-524.75 548.05,-524.75 548.05,-512.75 548.05,-512.75 548.05,-506.75 554.05,-500.75 560.05,-500.75 560.05,-500.75 629.3,-500.75 629.3,-500.75 635.3,-500.75 641.3,-506.75 641.3,-512.75 641.3,-512.75 641.3,-524.75 641.3,-524.75 641.3,-530.75 635.3,-536.75 629.3,-536.75"/>
277
- <text xml:space="preserve" text-anchor="middle" x="594.68" y="-521.8" font-family="sans-Serif" font-size="11.00" fill="#0f172a">plan_first</text>
278
- <text xml:space="preserve" text-anchor="middle" x="594.68" y="-508.3" font-family="sans-Serif" font-size="11.00" fill="#0f172a">(pre&#45;pass, local)</text>
275
+ <path fill="#c4b5fd" stroke="#334155" stroke-width="1.4" d="M631.97,-536.75C631.97,-536.75 562.72,-536.75 562.72,-536.75 556.72,-536.75 550.72,-530.75 550.72,-524.75 550.72,-524.75 550.72,-512.75 550.72,-512.75 550.72,-506.75 556.72,-500.75 562.72,-500.75 562.72,-500.75 631.97,-500.75 631.97,-500.75 637.97,-500.75 643.97,-506.75 643.97,-512.75 643.97,-512.75 643.97,-524.75 643.97,-524.75 643.97,-530.75 637.97,-536.75 631.97,-536.75"/>
276
+ <text xml:space="preserve" text-anchor="middle" x="597.34" y="-521.8" font-family="Helvetica,sans-Serif" font-size="11.00" fill="#0f172a">plan_first</text>
277
+ <text xml:space="preserve" text-anchor="middle" x="597.34" y="-508.3" font-family="Helvetica,sans-Serif" font-size="11.00" fill="#0f172a">(pre&#45;pass, local)</text>
279
278
  </g>
280
279
  <!-- Router&#45;&gt;Plan -->
281
280
  <g id="edge5" class="edge">
282
281
  <title>Router&#45;&gt;Plan</title>
283
- <path fill="none" stroke="#a78bfa" stroke-width="1.3" d="M462.68,-518.75C487.64,-518.75 512.6,-518.75 537.56,-518.75"/>
284
- <polygon fill="#a78bfa" stroke="#a78bfa" stroke-width="1.3" points="537.53,-521.55 545.53,-518.75 537.53,-515.95 537.53,-521.55"/>
282
+ <path fill="none" stroke="#a78bfa" stroke-width="1.3" d="M465.34,-518.75C490.3,-518.75 515.26,-518.75 540.22,-518.75"/>
283
+ <polygon fill="#a78bfa" stroke="#a78bfa" stroke-width="1.3" points="540.2,-521.55 548.2,-518.75 540.2,-515.95 540.2,-521.55"/>
285
284
  </g>
286
285
  <!-- Plan&#45;&gt;Dispatch -->
287
286
  <g id="edge6" class="edge">
288
287
  <title>Plan&#45;&gt;Dispatch</title>
289
- <path fill="none" stroke="#a78bfa" stroke-width="1.3" d="M641.98,-518.75C666.83,-518.75 691.68,-518.75 716.54,-518.75"/>
290
- <polygon fill="#a78bfa" stroke="#a78bfa" stroke-width="1.3" points="716.46,-521.55 724.46,-518.75 716.46,-515.95 716.46,-521.55"/>
288
+ <path fill="none" stroke="#a78bfa" stroke-width="1.3" d="M644.65,-518.75C669.5,-518.75 694.35,-518.75 719.2,-518.75"/>
289
+ <polygon fill="#a78bfa" stroke="#a78bfa" stroke-width="1.3" points="719.13,-521.55 727.13,-518.75 719.13,-515.95 719.13,-521.55"/>
291
290
  </g>
292
291
  <!-- Escalate&#45;&gt;LLM -->
293
292
  <g id="edge55" class="edge">
294
293
  <title>Escalate&#45;&gt;LLM</title>
295
- <path fill="none" stroke="#a78bfa" stroke-width="2" stroke-dasharray="5,2" d="M947.25,-537.7C911.27,-569.31 836.55,-634.98 795.75,-670.83"/>
296
- <polygon fill="#a78bfa" stroke="#a78bfa" stroke-width="2" points="794.02,-668.62 789.86,-676.01 797.72,-672.83 794.02,-668.62"/>
297
- <text xml:space="preserve" text-anchor="middle" x="892.14" y="-633.95" font-family="sans-Serif" font-size="9.00" fill="#cbd5e1">Swarm.ask(persona)</text>
298
- <text xml:space="preserve" text-anchor="middle" x="892.14" y="-623.45" font-family="sans-Serif" font-size="9.00" fill="#cbd5e1">frontier hint</text>
294
+ <path fill="none" stroke="#a78bfa" stroke-width="2" stroke-dasharray="5,2" d="M949.92,-537.7C913.94,-569.31 839.22,-634.98 798.42,-670.83"/>
295
+ <polygon fill="#a78bfa" stroke="#a78bfa" stroke-width="2" points="796.69,-668.62 792.53,-676.01 800.38,-672.83 796.69,-668.62"/>
296
+ <text xml:space="preserve" text-anchor="middle" x="894.81" y="-633.95" font-family="Helvetica,sans-Serif" font-size="9.00" fill="#cbd5e1">Swarm.ask(persona)</text>
297
+ <text xml:space="preserve" text-anchor="middle" x="894.81" y="-623.45" font-family="Helvetica,sans-Serif" font-size="9.00" fill="#cbd5e1">frontier hint</text>
299
298
  </g>
300
299
  <!-- Escalate&#45;&gt;Result -->
301
300
  <!-- Escalate&#45;&gt;Mistakes -->
302
301
  <g id="edge56" class="edge">
303
302
  <title>Escalate&#45;&gt;Mistakes</title>
304
- <path fill="none" stroke="#fb7185" stroke-width="1.3" stroke-dasharray="5,2" d="M915.5,-499.77C879.1,-484.58 840.92,-461.51 864.43,-437.5 879.21,-422.4 1225.11,-437.49 1244.68,-429.5 1276.05,-416.69 1303.7,-390.08 1323.03,-367.45"/>
305
- <polygon fill="#fb7185" stroke="#fb7185" stroke-width="1.3" points="1325.04,-369.41 1328,-361.47 1320.73,-365.83 1325.04,-369.41"/>
306
- <text xml:space="preserve" text-anchor="middle" x="898.55" y="-449.95" font-family="sans-Serif" font-size="9.00" fill="#cbd5e1">record</text>
307
- <text xml:space="preserve" text-anchor="middle" x="898.55" y="-439.45" font-family="sans-Serif" font-size="9.00" fill="#cbd5e1">(tool:&#39;escalation&#39;)</text>
303
+ <path fill="none" stroke="#fb7185" stroke-width="1.3" stroke-dasharray="5,2" d="M918.17,-499.77C881.77,-484.58 843.59,-461.51 867.09,-437.5 881.88,-422.4 1227.78,-437.49 1247.34,-429.5 1278.72,-416.69 1306.37,-390.08 1325.7,-367.45"/>
304
+ <polygon fill="#fb7185" stroke="#fb7185" stroke-width="1.3" points="1327.71,-369.41 1330.67,-361.47 1323.4,-365.83 1327.71,-369.41"/>
305
+ <text xml:space="preserve" text-anchor="middle" x="901.22" y="-449.95" font-family="Helvetica,sans-Serif" font-size="9.00" fill="#cbd5e1">record</text>
306
+ <text xml:space="preserve" text-anchor="middle" x="901.22" y="-439.45" font-family="Helvetica,sans-Serif" font-size="9.00" fill="#cbd5e1">(tool:&#39;escalation&#39;)</text>
308
307
  </g>
309
308
  <!-- Result&#45;&gt;User -->
310
309
  <g id="edge58" class="edge">
311
310
  <title>Result&#45;&gt;User</title>
312
- <path fill="none" stroke="#38bdf8" stroke-width="2" d="M1137.68,-537.34C1119.89,-558.5 1087.21,-593.67 1051.68,-613.5 1008.65,-637.51 993.24,-634.2 944.68,-642.5 701.88,-683.98 407.35,-693.01 285.12,-694.96"/>
313
- <polygon fill="#38bdf8" stroke="#38bdf8" stroke-width="2" points="285.17,-692.16 277.21,-695.08 285.25,-697.76 285.17,-692.16"/>
314
- <text xml:space="preserve" text-anchor="middle" x="1050.06" y="-628.7" font-family="sans-Serif" font-size="9.00" fill="#cbd5e1">answer</text>
311
+ <path fill="none" stroke="#38bdf8" stroke-width="2" d="M1140.34,-537.34C1122.56,-558.5 1089.88,-593.67 1054.34,-613.5 1011.32,-637.51 995.91,-634.2 947.34,-642.5 704.55,-683.98 410.02,-693.01 287.79,-694.96"/>
312
+ <polygon fill="#38bdf8" stroke="#38bdf8" stroke-width="2" points="287.83,-692.16 279.88,-695.08 287.92,-697.76 287.83,-692.16"/>
313
+ <text xml:space="preserve" text-anchor="middle" x="1052.73" y="-628.7" font-family="Helvetica,sans-Serif" font-size="9.00" fill="#cbd5e1">answer</text>
315
314
  </g>
316
315
  <!-- Learning -->
317
316
  <g id="node11" class="node">
318
317
  <title>Learning</title>
319
- <path fill="#6ee7b7" stroke="#334155" stroke-width="1.4" d="M1764.43,-359C1764.43,-359 1620.93,-359 1620.93,-359 1614.93,-359 1608.93,-353 1608.93,-347 1608.93,-347 1608.93,-309 1608.93,-309 1608.93,-303 1614.93,-297 1620.93,-297 1620.93,-297 1764.43,-297 1764.43,-297 1770.43,-297 1776.43,-303 1776.43,-309 1776.43,-309 1776.43,-347 1776.43,-347 1776.43,-353 1770.43,-359 1764.43,-359"/>
320
- <text xml:space="preserve" text-anchor="middle" x="1692.68" y="-344.55" font-family="sans-Serif" font-size="11.00" fill="#0f172a">Learning</text>
321
- <text xml:space="preserve" text-anchor="middle" x="1692.68" y="-331.05" font-family="sans-Serif" font-size="11.00" fill="#0f172a">note_outcome · reflect</text>
322
- <text xml:space="preserve" text-anchor="middle" x="1692.68" y="-317.55" font-family="sans-Serif" font-size="11.00" fill="#0f172a">exemplars_for · export_finetune</text>
323
- <text xml:space="preserve" text-anchor="middle" x="1692.68" y="-304.05" font-family="sans-Serif" font-size="11.00" fill="#0f172a">fact_check_local_final</text>
318
+ <path fill="#6ee7b7" stroke="#334155" stroke-width="1.4" d="M1760.72,-359C1760.72,-359 1623.97,-359 1623.97,-359 1617.97,-359 1611.97,-353 1611.97,-347 1611.97,-347 1611.97,-309 1611.97,-309 1611.97,-303 1617.97,-297 1623.97,-297 1623.97,-297 1760.72,-297 1760.72,-297 1766.72,-297 1772.72,-303 1772.72,-309 1772.72,-309 1772.72,-347 1772.72,-347 1772.72,-353 1766.72,-359 1760.72,-359"/>
319
+ <text xml:space="preserve" text-anchor="middle" x="1692.34" y="-344.55" font-family="Helvetica,sans-Serif" font-size="11.00" fill="#0f172a">Learning</text>
320
+ <text xml:space="preserve" text-anchor="middle" x="1692.34" y="-331.05" font-family="Helvetica,sans-Serif" font-size="11.00" fill="#0f172a">note_outcome · reflect</text>
321
+ <text xml:space="preserve" text-anchor="middle" x="1692.34" y="-317.55" font-family="Helvetica,sans-Serif" font-size="11.00" fill="#0f172a">exemplars_for · SFT P12 gate</text>
322
+ <text xml:space="preserve" text-anchor="middle" x="1692.34" y="-304.05" font-family="Helvetica,sans-Serif" font-size="11.00" fill="#0f172a">fact_check_local_final</text>
324
323
  </g>
325
324
  <!-- Result&#45;&gt;Learning -->
326
325
  <g id="edge11" class="edge">
327
326
  <title>Result&#45;&gt;Learning</title>
328
- <path fill="none" stroke="#34d399" stroke-width="1.3" d="M1114.22,-503.76C1095.66,-497.42 1072.77,-490.47 1051.68,-486.5 962.8,-469.77 584.04,-501.76 647.68,-437.5 655.6,-429.5 1447.65,-431.82 1458.68,-429.5 1519.44,-416.69 1583.96,-387.69 1629.83,-364.11"/>
329
- <polygon fill="#34d399" stroke="#34d399" stroke-width="1.3" points="1630.9,-366.71 1636.71,-360.54 1628.32,-361.74 1630.9,-366.71"/>
330
- <text xml:space="preserve" text-anchor="middle" x="679.18" y="-444.7" font-family="sans-Serif" font-size="9.00" fill="#cbd5e1">auto_introspect</text>
327
+ <path fill="none" stroke="#34d399" stroke-width="1.3" d="M1116.88,-503.76C1098.33,-497.42 1075.44,-490.47 1054.34,-486.5 965.47,-469.77 586.71,-501.76 650.34,-437.5 658.27,-429.5 1450.33,-431.85 1461.34,-429.5 1521.29,-416.72 1584.84,-387.81 1630.08,-364.26"/>
328
+ <polygon fill="#34d399" stroke="#34d399" stroke-width="1.3" points="1631.36,-366.75 1637.13,-360.54 1628.75,-361.79 1631.36,-366.75"/>
329
+ <text xml:space="preserve" text-anchor="middle" x="681.84" y="-444.7" font-family="Helvetica,sans-Serif" font-size="9.00" fill="#cbd5e1">auto_introspect</text>
331
330
  </g>
332
331
  <!-- Reward -->
333
332
  <g id="node14" class="node">
334
333
  <title>Reward</title>
335
- <path fill="#6ee7b7" stroke="#334155" stroke-width="2" d="M1950.05,-359C1950.05,-359 1831.3,-359 1831.3,-359 1825.3,-359 1819.3,-353 1819.3,-347 1819.3,-347 1819.3,-309 1819.3,-309 1819.3,-303 1825.3,-297 1831.3,-297 1831.3,-297 1950.05,-297 1950.05,-297 1956.05,-297 1962.05,-303 1962.05,-309 1962.05,-309 1962.05,-347 1962.05,-347 1962.05,-353 1956.05,-359 1950.05,-359"/>
336
- <text xml:space="preserve" text-anchor="middle" x="1890.68" y="-344.55" font-family="sans-Serif" font-size="11.00" fill="#0f172a">Reward</text>
337
- <text xml:space="preserve" text-anchor="middle" x="1890.68" y="-331.05" font-family="sans-Serif" font-size="11.00" fill="#0f172a">judge (ORM) · prm (PRM)</text>
338
- <text xml:space="preserve" text-anchor="middle" x="1890.68" y="-317.55" font-family="sans-Serif" font-size="11.00" fill="#0f172a">sentinel ring · semantic_ok</text>
339
- <text xml:space="preserve" text-anchor="middle" x="1890.68" y="-304.05" font-family="sans-Serif" font-size="11.00" fill="#0f172a">export_dpo ≤40%/src</text>
334
+ <path fill="#6ee7b7" stroke="#334155" stroke-width="2" d="M1965.09,-359C1965.09,-359 1827.59,-359 1827.59,-359 1821.59,-359 1815.59,-353 1815.59,-347 1815.59,-347 1815.59,-309 1815.59,-309 1815.59,-303 1821.59,-297 1827.59,-297 1827.59,-297 1965.09,-297 1965.09,-297 1971.09,-297 1977.09,-303 1977.09,-309 1977.09,-309 1977.09,-347 1977.09,-347 1977.09,-353 1971.09,-359 1965.09,-359"/>
335
+ <text xml:space="preserve" text-anchor="middle" x="1896.34" y="-344.55" font-family="Helvetica,sans-Serif" font-size="11.00" fill="#0f172a">Reward</text>
336
+ <text xml:space="preserve" text-anchor="middle" x="1896.34" y="-331.05" font-family="Helvetica,sans-Serif" font-size="11.00" fill="#0f172a">judge · prm · semantic_ok</text>
337
+ <text xml:space="preserve" text-anchor="middle" x="1896.34" y="-317.55" font-family="Helvetica,sans-Serif" font-size="11.00" fill="#0f172a">sentinel warm (P10/P16)</text>
338
+ <text xml:space="preserve" text-anchor="middle" x="1896.34" y="-304.05" font-family="Helvetica,sans-Serif" font-size="11.00" fill="#0f172a">DPO P9/P14/P15 scrub ≤40%</text>
340
339
  </g>
341
340
  <!-- Result&#45;&gt;Reward -->
342
341
  <g id="edge59" class="edge">
343
342
  <title>Result&#45;&gt;Reward</title>
344
- <path fill="none" stroke="#34d399" stroke-width="2" d="M1114.42,-504.77C1076.61,-489.73 1027.06,-463.65 1052.93,-437.5 1067.48,-422.79 1778.76,-437.89 1797.68,-429.5 1825.94,-416.96 1849.49,-391.22 1865.83,-368.93"/>
345
- <polygon fill="#34d399" stroke="#34d399" stroke-width="2" points="1868.09,-370.58 1870.41,-362.43 1863.51,-367.35 1868.09,-370.58"/>
346
- <text xml:space="preserve" text-anchor="middle" x="1075.8" y="-444.7" font-family="sans-Serif" font-size="9.00" fill="#cbd5e1">judge · prm</text>
343
+ <path fill="none" stroke="#34d399" stroke-width="2" d="M1117.09,-504.77C1079.28,-489.73 1029.73,-463.65 1055.59,-437.5 1070.03,-422.91 1775.4,-437.39 1794.34,-429.5 1824.67,-416.88 1850.86,-390.52 1869.11,-367.96"/>
344
+ <polygon fill="#34d399" stroke="#34d399" stroke-width="2" points="1871.11,-369.94 1873.84,-361.92 1866.7,-366.49 1871.11,-369.94"/>
345
+ <text xml:space="preserve" text-anchor="middle" x="1078.47" y="-444.7" font-family="Helvetica,sans-Serif" font-size="9.00" fill="#cbd5e1">judge · prm</text>
347
346
  </g>
348
347
  <!-- Result&#45;&gt;Curric -->
349
348
  <g id="edge60" class="edge">
350
349
  <title>Result&#45;&gt;Curric</title>
351
- <path fill="none" stroke="#34d399" stroke-width="1.3" d="M1142.61,-500.1C1134.64,-481.83 1126.59,-453.74 1142.68,-437.5 1159.12,-420.9 1962.37,-439.07 1983.68,-429.5 2011.98,-416.79 2035.26,-390.52 2051.19,-368.03"/>
352
- <polygon fill="#34d399" stroke="#34d399" stroke-width="1.3" points="2053.4,-369.75 2055.61,-361.57 2048.78,-366.59 2053.4,-369.75"/>
353
- <text xml:space="preserve" text-anchor="middle" x="1174.18" y="-444.7" font-family="sans-Serif" font-size="9.00" fill="#cbd5e1">critic · hindsight</text>
350
+ <path fill="none" stroke="#34d399" stroke-width="1.3" d="M1145.28,-500.1C1137.31,-481.83 1129.26,-453.73 1145.34,-437.5 1162.02,-420.67 1976.13,-437.74 1998.34,-429.5 2035.79,-415.6 2069.65,-384.28 2091.58,-360.27"/>
351
+ <polygon fill="#34d399" stroke="#34d399" stroke-width="1.3" points="2093.45,-362.38 2096.69,-354.55 2089.27,-358.65 2093.45,-362.38"/>
352
+ <text xml:space="preserve" text-anchor="middle" x="1176.84" y="-444.7" font-family="Helvetica,sans-Serif" font-size="9.00" fill="#cbd5e1">critic · hindsight</text>
354
353
  </g>
355
354
  <!-- Result&#45;&gt;Observe -->
356
355
  <g id="edge15" class="edge">
357
356
  <title>Result&#45;&gt;Observe</title>
358
- <path fill="none" stroke="#f59e0b" stroke-width="1.3" d="M1189.08,-501.59C1204.46,-495.72 1222.63,-489.73 1239.68,-486.5 1609.31,-416.5 1713.27,-511.84 2085.68,-458.5 2122.81,-453.18 2130.23,-442.39 2167.43,-437.5 2189.05,-434.65 2932.86,-438.61 2952.68,-429.5 2986.08,-414.14 3011.86,-379.27 3026.65,-354.93"/>
359
- <polygon fill="#f59e0b" stroke="#f59e0b" stroke-width="1.3" points="3028.96,-356.52 3030.6,-348.2 3024.13,-353.68 3028.96,-356.52"/>
360
- <text xml:space="preserve" text-anchor="middle" x="2218.05" y="-449.95" font-family="sans-Serif" font-size="9.00" fill="#cbd5e1">auto_extrospect</text>
361
- <text xml:space="preserve" text-anchor="middle" x="2218.05" y="-439.45" font-family="sans-Serif" font-size="9.00" fill="#cbd5e1">(AUTO_SECTIONS only)</text>
357
+ <path fill="none" stroke="#f59e0b" stroke-width="1.3" d="M1191.58,-517.93C1319.16,-518.03 1750.08,-513.95 2100.34,-458.5 2137.4,-452.63 2144.9,-442.39 2182.09,-437.5 2203.69,-434.66 2946.55,-438.6 2966.34,-429.5 2999.75,-414.14 3025.53,-379.27 3040.32,-354.93"/>
358
+ <polygon fill="#f59e0b" stroke="#f59e0b" stroke-width="1.3" points="3042.63,-356.52 3044.26,-348.2 3037.8,-353.68 3042.63,-356.52"/>
359
+ <text xml:space="preserve" text-anchor="middle" x="2232.72" y="-449.95" font-family="Helvetica,sans-Serif" font-size="9.00" fill="#cbd5e1">auto_extrospect</text>
360
+ <text xml:space="preserve" text-anchor="middle" x="2232.72" y="-439.45" font-family="Helvetica,sans-Serif" font-size="9.00" fill="#cbd5e1">(AUTO_SECTIONS only)</text>
362
361
  </g>
363
362
  <!-- Result&#45;&gt;Verify -->
364
363
  <g id="edge45" class="edge">
365
364
  <title>Result&#45;&gt;Verify</title>
366
- <path fill="none" stroke="#f59e0b" stroke-width="1.3" stroke-dasharray="5,2" d="M1189.07,-501.49C1204.44,-495.6 1222.61,-489.63 1239.68,-486.5 1275.23,-479.98 2515.39,-484.33 2540.68,-458.5 2567.92,-430.66 2538.81,-388.56 2511.98,-359.98"/>
367
- <polygon fill="#f59e0b" stroke="#f59e0b" stroke-width="1.3" points="2514.19,-358.24 2506.62,-354.44 2510.17,-362.13 2514.19,-358.24"/>
368
- <text xml:space="preserve" text-anchor="middle" x="2596.03" y="-449.95" font-family="sans-Serif" font-size="9.00" fill="#cbd5e1">fact_check_local_final</text>
369
- <text xml:space="preserve" text-anchor="middle" x="2596.03" y="-439.45" font-family="sans-Serif" font-size="9.00" fill="#cbd5e1">(CVE / version claims)</text>
365
+ <path fill="none" stroke="#f59e0b" stroke-width="1.3" stroke-dasharray="5,2" d="M1191.57,-516.14C1299,-511.51 1618.83,-497.72 1884.34,-486.5 1921.62,-484.92 2529.52,-485.43 2555.34,-458.5 2582.31,-430.39 2553.12,-388.53 2526.14,-360.07"/>
366
+ <polygon fill="#f59e0b" stroke="#f59e0b" stroke-width="1.3" points="2528.33,-358.31 2520.74,-354.54 2524.33,-362.22 2528.33,-358.31"/>
367
+ <text xml:space="preserve" text-anchor="middle" x="2610.57" y="-449.95" font-family="Helvetica,sans-Serif" font-size="9.00" fill="#cbd5e1">fact_check_local_final</text>
368
+ <text xml:space="preserve" text-anchor="middle" x="2610.57" y="-439.45" font-family="Helvetica,sans-Serif" font-size="9.00" fill="#cbd5e1">(CVE / version claims)</text>
370
369
  </g>
371
370
  <!-- Correlate -->
372
371
  <g id="node20" class="node">
373
372
  <title>Correlate</title>
374
- <path fill="#fda4af" stroke="#334155" stroke-width="2" d="M2893.55,-204C2893.55,-204 2693.8,-204 2693.8,-204 2687.8,-204 2681.8,-198 2681.8,-192 2681.8,-192 2681.8,-179.5 2681.8,-179.5 2681.8,-173.5 2687.8,-167.5 2693.8,-167.5 2693.8,-167.5 2893.55,-167.5 2893.55,-167.5 2899.55,-167.5 2905.55,-173.5 2905.55,-179.5 2905.55,-179.5 2905.55,-192 2905.55,-192 2905.55,-198 2899.55,-204 2893.55,-204"/>
375
- <text xml:space="preserve" text-anchor="middle" x="2793.68" y="-188.6" font-family="sans-Serif" font-size="12.00" fill="#0f172a">extro_correlate()</text>
376
- <text xml:space="preserve" text-anchor="middle" x="2793.68" y="-174.35" font-family="sans-Serif" font-size="12.00" fill="#0f172a">&quot;I did it wrong&quot; &#160;vs &#160;&quot;the world changed&quot;</text>
373
+ <path fill="#fda4af" stroke="#334155" stroke-width="2" d="M2899.22,-204C2899.22,-204 2699.47,-204 2699.47,-204 2693.47,-204 2687.47,-198 2687.47,-192 2687.47,-192 2687.47,-179.5 2687.47,-179.5 2687.47,-173.5 2693.47,-167.5 2699.47,-167.5 2699.47,-167.5 2899.22,-167.5 2899.22,-167.5 2905.22,-167.5 2911.22,-173.5 2911.22,-179.5 2911.22,-179.5 2911.22,-192 2911.22,-192 2911.22,-198 2905.22,-204 2899.22,-204"/>
374
+ <text xml:space="preserve" text-anchor="middle" x="2799.34" y="-188.6" font-family="Helvetica,sans-Serif" font-size="12.00" fill="#0f172a">extro_correlate()</text>
375
+ <text xml:space="preserve" text-anchor="middle" x="2799.34" y="-174.35" font-family="Helvetica,sans-Serif" font-size="12.00" fill="#0f172a">&quot;I did it wrong&quot; &#160;vs &#160;&quot;the world changed&quot;</text>
377
376
  </g>
378
377
  <!-- Metrics&#45;&gt;Correlate -->
379
378
  <g id="edge21" class="edge">
380
379
  <title>Metrics&#45;&gt;Correlate</title>
381
- <path fill="none" stroke="#34d399" stroke-width="1.3" d="M2319.81,-309.78C2344.83,-303.26 2373.57,-295.79 2399.68,-289 2508.61,-260.69 2634.51,-228.02 2714.1,-207.38"/>
382
- <polygon fill="#34d399" stroke="#34d399" stroke-width="1.3" points="2714.62,-210.14 2721.66,-205.42 2713.22,-204.72 2714.62,-210.14"/>
380
+ <path fill="none" stroke="#34d399" stroke-width="1.3" d="M2376.17,-303.24C2388.26,-298.21 2401.15,-293.17 2413.34,-289 2512.47,-255.13 2629.06,-225.62 2707.97,-207.12"/>
381
+ <polygon fill="#34d399" stroke="#34d399" stroke-width="1.3" points="2708.33,-209.91 2715.48,-205.37 2707.05,-204.46 2708.33,-209.91"/>
383
382
  </g>
384
383
  <!-- Fmet -->
385
384
  <g id="node21" class="node">
386
385
  <title>Fmet</title>
387
- <path fill="#fcd34d" stroke="#334155" stroke-width="1.4" d="M2377.18,-48.73C2377.18,-50.53 2360.82,-52 2340.68,-52 2320.54,-52 2304.18,-50.53 2304.18,-48.73 2304.18,-48.73 2304.18,-19.27 2304.18,-19.27 2304.18,-17.47 2320.54,-16 2340.68,-16 2360.82,-16 2377.18,-17.47 2377.18,-19.27 2377.18,-19.27 2377.18,-48.73 2377.18,-48.73"/>
388
- <path fill="none" stroke="#334155" stroke-width="1.4" d="M2377.18,-48.73C2377.18,-46.92 2360.82,-45.45 2340.68,-45.45 2320.54,-45.45 2304.18,-46.92 2304.18,-48.73"/>
389
- <text xml:space="preserve" text-anchor="middle" x="2340.68" y="-30.3" font-family="sans-Serif" font-size="11.00" fill="#0f172a">metrics.json</text>
386
+ <path fill="#fcd34d" stroke="#334155" stroke-width="1.4" d="M2382.84,-48.73C2382.84,-50.53 2366.48,-52 2346.34,-52 2326.2,-52 2309.84,-50.53 2309.84,-48.73 2309.84,-48.73 2309.84,-19.27 2309.84,-19.27 2309.84,-17.47 2326.2,-16 2346.34,-16 2366.48,-16 2382.84,-17.47 2382.84,-19.27 2382.84,-19.27 2382.84,-48.73 2382.84,-48.73"/>
387
+ <path fill="none" stroke="#334155" stroke-width="1.4" d="M2382.84,-48.73C2382.84,-46.92 2366.48,-45.45 2346.34,-45.45 2326.2,-45.45 2309.84,-46.92 2309.84,-48.73"/>
388
+ <text xml:space="preserve" text-anchor="middle" x="2346.34" y="-30.3" font-family="Helvetica,sans-Serif" font-size="11.00" fill="#0f172a">metrics.json</text>
390
389
  </g>
391
390
  <!-- Metrics&#45;&gt;Fmet -->
392
391
  <g id="edge29" class="edge">
393
392
  <title>Metrics&#45;&gt;Fmet</title>
394
- <path fill="none" stroke="#94a3b8" stroke-width="1.3" d="M2319.85,-304.99C2406.02,-275.67 2547.41,-225.06 2561.68,-204 2640,-88.39 2418.35,-133.9 2398.68,-122.5 2375.4,-109.01 2359.68,-81.98 2350.54,-61.52"/>
395
- <polygon fill="#94a3b8" stroke="#94a3b8" stroke-width="1.3" points="2353.14,-60.47 2347.46,-54.18 2347.98,-62.64 2353.14,-60.47"/>
393
+ <path fill="none" stroke="#94a3b8" stroke-width="1.3" d="M2371.09,-303.13C2441.91,-267.68 2566.63,-205.16 2567.34,-204 2586.84,-172.33 2561.52,-145.18 2527.34,-130.5 2502.18,-119.69 2428.04,-136.23 2404.34,-122.5 2381.07,-109.01 2365.35,-81.98 2356.21,-61.52"/>
394
+ <polygon fill="#94a3b8" stroke="#94a3b8" stroke-width="1.3" points="2358.81,-60.47 2353.12,-54.18 2353.65,-62.64 2358.81,-60.47"/>
396
395
  </g>
397
396
  <!-- ReflectT -->
398
397
  <g id="node13" class="node">
399
398
  <title>ReflectT</title>
400
- <path fill="#6ee7b7" stroke="#334155" stroke-width="2" d="M1211.18,-352.25C1211.18,-352.25 1144.18,-352.25 1144.18,-352.25 1138.18,-352.25 1132.18,-346.25 1132.18,-340.25 1132.18,-340.25 1132.18,-315.75 1132.18,-315.75 1132.18,-309.75 1138.18,-303.75 1144.18,-303.75 1144.18,-303.75 1211.18,-303.75 1211.18,-303.75 1217.18,-303.75 1223.18,-309.75 1223.18,-315.75 1223.18,-315.75 1223.18,-340.25 1223.18,-340.25 1223.18,-346.25 1217.18,-352.25 1211.18,-352.25"/>
401
- <text xml:space="preserve" text-anchor="middle" x="1177.68" y="-337.8" font-family="sans-Serif" font-size="11.00" fill="#0f172a">Reflect</text>
402
- <text xml:space="preserve" text-anchor="middle" x="1177.68" y="-324.3" font-family="sans-Serif" font-size="11.00" fill="#0f172a">teacher&#45;student</text>
403
- <text xml:space="preserve" text-anchor="middle" x="1177.68" y="-310.8" font-family="sans-Serif" font-size="11.00" fill="#0f172a">(reflect_engine)</text>
399
+ <path fill="#6ee7b7" stroke="#334155" stroke-width="2" d="M1213.84,-352.25C1213.84,-352.25 1146.84,-352.25 1146.84,-352.25 1140.84,-352.25 1134.84,-346.25 1134.84,-340.25 1134.84,-340.25 1134.84,-315.75 1134.84,-315.75 1134.84,-309.75 1140.84,-303.75 1146.84,-303.75 1146.84,-303.75 1213.84,-303.75 1213.84,-303.75 1219.84,-303.75 1225.84,-309.75 1225.84,-315.75 1225.84,-315.75 1225.84,-340.25 1225.84,-340.25 1225.84,-346.25 1219.84,-352.25 1213.84,-352.25"/>
400
+ <text xml:space="preserve" text-anchor="middle" x="1180.34" y="-337.8" font-family="Helvetica,sans-Serif" font-size="11.00" fill="#0f172a">Reflect</text>
401
+ <text xml:space="preserve" text-anchor="middle" x="1180.34" y="-324.3" font-family="Helvetica,sans-Serif" font-size="11.00" fill="#0f172a">teacher&#45;student</text>
402
+ <text xml:space="preserve" text-anchor="middle" x="1180.34" y="-310.8" font-family="Helvetica,sans-Serif" font-size="11.00" fill="#0f172a">(reflect_engine)</text>
404
403
  </g>
405
404
  <!-- Learning&#45;&gt;ReflectT -->
406
405
  <g id="edge42" class="edge">
407
406
  <title>Learning&#45;&gt;ReflectT</title>
408
- <path fill="none" stroke="#34d399" stroke-width="1.3" d="M1633.07,-359.64C1586.93,-382.26 1520.63,-410.76 1458.68,-422.83 1365.32,-441.03 1329.13,-466.57 1244.68,-422.83 1220.08,-410.1 1202.59,-383.72 1191.66,-362.01"/>
409
- <polygon fill="#34d399" stroke="#34d399" stroke-width="1.3" points="1194.2,-360.83 1188.23,-354.82 1189.15,-363.25 1194.2,-360.83"/>
410
- <text xml:space="preserve" text-anchor="middle" x="1550.68" y="-444.7" font-family="sans-Serif" font-size="9.00" fill="#cbd5e1">reflect()</text>
407
+ <path fill="none" stroke="#34d399" stroke-width="1.3" d="M1633.56,-359.63C1588.02,-382.26 1522.59,-410.75 1461.34,-422.83 1368.03,-441.24 1331.8,-466.57 1247.34,-422.83 1222.75,-410.1 1205.26,-383.72 1194.33,-362.01"/>
408
+ <polygon fill="#34d399" stroke="#34d399" stroke-width="1.3" points="1196.87,-360.83 1190.89,-354.82 1191.82,-363.25 1196.87,-360.83"/>
409
+ <text xml:space="preserve" text-anchor="middle" x="1553.34" y="-444.7" font-family="Helvetica,sans-Serif" font-size="9.00" fill="#cbd5e1">reflect()</text>
411
410
  </g>
412
411
  <!-- Learning&#45;&gt;Correlate -->
413
412
  <g id="edge22" class="edge">
414
413
  <title>Learning&#45;&gt;Correlate</title>
415
- <path fill="none" stroke="#34d399" stroke-width="1.3" d="M1770.89,-296.34C1779.83,-293.54 1788.89,-291.01 1797.68,-289 1808.24,-286.58 2407.42,-225.82 2671.22,-199.13"/>
416
- <polygon fill="#34d399" stroke="#34d399" stroke-width="1.3" points="2671.21,-201.94 2678.89,-198.35 2670.65,-196.37 2671.21,-201.94"/>
414
+ <path fill="none" stroke="#34d399" stroke-width="1.3" d="M1768.28,-296.31C1776.97,-293.52 1785.79,-290.99 1794.34,-289 1799.68,-287.76 2410.25,-226.03 2676.99,-199.1"/>
415
+ <polygon fill="#34d399" stroke="#34d399" stroke-width="1.3" points="2677.08,-201.9 2684.76,-198.31 2676.52,-196.33 2677.08,-201.9"/>
417
416
  </g>
418
417
  <!-- Flrn -->
419
418
  <g id="node22" class="node">
420
419
  <title>Flrn</title>
421
- <path fill="#fcd34d" stroke="#334155" stroke-width="1.4" d="M1598.18,-48.73C1598.18,-50.53 1580.47,-52 1558.68,-52 1536.88,-52 1519.18,-50.53 1519.18,-48.73 1519.18,-48.73 1519.18,-19.27 1519.18,-19.27 1519.18,-17.47 1536.88,-16 1558.68,-16 1580.47,-16 1598.18,-17.47 1598.18,-19.27 1598.18,-19.27 1598.18,-48.73 1598.18,-48.73"/>
422
- <path fill="none" stroke="#334155" stroke-width="1.4" d="M1598.18,-48.73C1598.18,-46.92 1580.47,-45.45 1558.68,-45.45 1536.88,-45.45 1519.18,-46.92 1519.18,-48.73"/>
423
- <text xml:space="preserve" text-anchor="middle" x="1558.68" y="-30.3" font-family="sans-Serif" font-size="11.00" fill="#0f172a">learning.jsonl</text>
420
+ <path fill="#fcd34d" stroke="#334155" stroke-width="1.4" d="M1603.84,-48.73C1603.84,-50.53 1586.14,-52 1564.34,-52 1542.55,-52 1524.84,-50.53 1524.84,-48.73 1524.84,-48.73 1524.84,-19.27 1524.84,-19.27 1524.84,-17.47 1542.55,-16 1564.34,-16 1586.14,-16 1603.84,-17.47 1603.84,-19.27 1603.84,-19.27 1603.84,-48.73 1603.84,-48.73"/>
421
+ <path fill="none" stroke="#334155" stroke-width="1.4" d="M1603.84,-48.73C1603.84,-46.92 1586.14,-45.45 1564.34,-45.45 1542.55,-45.45 1524.84,-46.92 1524.84,-48.73"/>
422
+ <text xml:space="preserve" text-anchor="middle" x="1564.34" y="-30.3" font-family="Helvetica,sans-Serif" font-size="11.00" fill="#0f172a">learning.jsonl</text>
424
423
  </g>
425
424
  <!-- Learning&#45;&gt;Flrn -->
426
425
  <g id="edge30" class="edge">
427
426
  <title>Learning&#45;&gt;Flrn</title>
428
- <path fill="none" stroke="#94a3b8" stroke-width="1.3" d="M1608.57,-318.48C1538.92,-306.26 1445.34,-276.49 1406.68,-204 1390.69,-174.02 1399.34,-149.24 1427.68,-130.5 1453.8,-113.23 1470.78,-138.54 1497.68,-122.5 1521.12,-108.51 1537.79,-81.62 1547.72,-61.32"/>
429
- <polygon fill="#94a3b8" stroke="#94a3b8" stroke-width="1.3" points="1550.14,-62.75 1550.97,-54.31 1545.06,-60.39 1550.14,-62.75"/>
427
+ <path fill="none" stroke="#94a3b8" stroke-width="1.3" d="M1611.41,-318.1C1543.12,-305.61 1450.58,-275.67 1412.34,-204 1396.35,-174.02 1405,-149.24 1433.34,-130.5 1459.46,-113.23 1476.45,-138.54 1503.34,-122.5 1526.79,-108.51 1543.46,-81.62 1553.38,-61.32"/>
428
+ <polygon fill="#94a3b8" stroke="#94a3b8" stroke-width="1.3" points="1555.81,-62.75 1556.64,-54.31 1550.73,-60.39 1555.81,-62.75"/>
430
429
  </g>
431
430
  <!-- Fmem -->
432
431
  <g id="node24" class="node">
433
432
  <title>Fmem</title>
434
- <path fill="#fcd34d" stroke="#334155" stroke-width="1.4" d="M1476.43,-48.73C1476.43,-50.53 1459.06,-52 1437.68,-52 1416.29,-52 1398.93,-50.53 1398.93,-48.73 1398.93,-48.73 1398.93,-19.27 1398.93,-19.27 1398.93,-17.47 1416.29,-16 1437.68,-16 1459.06,-16 1476.43,-17.47 1476.43,-19.27 1476.43,-19.27 1476.43,-48.73 1476.43,-48.73"/>
435
- <path fill="none" stroke="#334155" stroke-width="1.4" d="M1476.43,-48.73C1476.43,-46.92 1459.06,-45.45 1437.68,-45.45 1416.29,-45.45 1398.93,-46.92 1398.93,-48.73"/>
436
- <text xml:space="preserve" text-anchor="middle" x="1437.68" y="-30.3" font-family="sans-Serif" font-size="11.00" fill="#0f172a">memory.json</text>
433
+ <path fill="#fcd34d" stroke="#334155" stroke-width="1.4" d="M1482.09,-48.73C1482.09,-50.53 1464.73,-52 1443.34,-52 1421.96,-52 1404.59,-50.53 1404.59,-48.73 1404.59,-48.73 1404.59,-19.27 1404.59,-19.27 1404.59,-17.47 1421.96,-16 1443.34,-16 1464.73,-16 1482.09,-17.47 1482.09,-19.27 1482.09,-19.27 1482.09,-48.73 1482.09,-48.73"/>
434
+ <path fill="none" stroke="#334155" stroke-width="1.4" d="M1482.09,-48.73C1482.09,-46.92 1464.73,-45.45 1443.34,-45.45 1421.96,-45.45 1404.59,-46.92 1404.59,-48.73"/>
435
+ <text xml:space="preserve" text-anchor="middle" x="1443.34" y="-30.3" font-family="Helvetica,sans-Serif" font-size="11.00" fill="#0f172a">memory.json</text>
437
436
  </g>
438
437
  <!-- Learning&#45;&gt;Fmem -->
439
438
  <g id="edge33" class="edge">
440
439
  <title>Learning&#45;&gt;Fmem</title>
441
- <path fill="none" stroke="#94a3b8" stroke-width="1.3" d="M1608.46,-317.41C1553.37,-308.53 1481.21,-291.84 1423.68,-261 1390.68,-243.32 1376.72,-238.27 1361.68,-204 1338.95,-152.24 1383.23,-91.92 1413.23,-59.17"/>
442
- <polygon fill="#94a3b8" stroke="#94a3b8" stroke-width="1.3" points="1414.97,-61.41 1418.41,-53.66 1410.89,-57.57 1414.97,-61.41"/>
443
- <text xml:space="preserve" text-anchor="middle" x="1375.18" y="-182.45" font-family="sans-Serif" font-size="9.00" fill="#cbd5e1">lesson</text>
440
+ <path fill="none" stroke="#94a3b8" stroke-width="1.3" d="M1611.46,-316.53C1558.27,-307.27 1488.4,-290.49 1432.34,-261 1398.34,-243.11 1383.2,-239 1367.34,-204 1344.01,-152.51 1388.51,-92.09 1418.72,-59.25"/>
441
+ <polygon fill="#94a3b8" stroke="#94a3b8" stroke-width="1.3" points="1420.49,-61.46 1423.94,-53.72 1416.42,-57.61 1420.49,-61.46"/>
442
+ <text xml:space="preserve" text-anchor="middle" x="1380.84" y="-182.45" font-family="Helvetica,sans-Serif" font-size="9.00" fill="#cbd5e1">lesson</text>
444
443
  </g>
445
444
  <!-- Fskl -->
446
445
  <g id="node26" class="node">
447
446
  <title>Fskl</title>
448
- <path fill="#fcd34d" stroke="#334155" stroke-width="1.4" d="M2131.68,-48.73C2131.68,-50.53 2106.58,-52 2075.68,-52 2044.78,-52 2019.68,-50.53 2019.68,-48.73 2019.68,-48.73 2019.68,-19.27 2019.68,-19.27 2019.68,-17.47 2044.78,-16 2075.68,-16 2106.58,-16 2131.68,-17.47 2131.68,-19.27 2131.68,-19.27 2131.68,-48.73 2131.68,-48.73"/>
449
- <path fill="none" stroke="#334155" stroke-width="1.4" d="M2131.68,-48.73C2131.68,-46.92 2106.58,-45.45 2075.68,-45.45 2044.78,-45.45 2019.68,-46.92 2019.68,-48.73"/>
450
- <text xml:space="preserve" text-anchor="middle" x="2075.68" y="-30.3" font-family="sans-Serif" font-size="11.00" fill="#0f172a">skills/&lt;n&gt;/SKILL.md</text>
447
+ <path fill="#fcd34d" stroke="#334155" stroke-width="1.4" d="M2137.34,-48.73C2137.34,-50.53 2112.24,-52 2081.34,-52 2050.44,-52 2025.34,-50.53 2025.34,-48.73 2025.34,-48.73 2025.34,-19.27 2025.34,-19.27 2025.34,-17.47 2050.44,-16 2081.34,-16 2112.24,-16 2137.34,-17.47 2137.34,-19.27 2137.34,-19.27 2137.34,-48.73 2137.34,-48.73"/>
448
+ <path fill="none" stroke="#334155" stroke-width="1.4" d="M2137.34,-48.73C2137.34,-46.92 2112.24,-45.45 2081.34,-45.45 2050.44,-45.45 2025.34,-46.92 2025.34,-48.73"/>
449
+ <text xml:space="preserve" text-anchor="middle" x="2081.34" y="-30.3" font-family="Helvetica,sans-Serif" font-size="11.00" fill="#0f172a">skills/&lt;n&gt;/SKILL.md</text>
451
450
  </g>
452
451
  <!-- Learning&#45;&gt;Fskl -->
453
452
  <g id="edge34" class="edge">
454
453
  <title>Learning&#45;&gt;Fskl</title>
455
- <path fill="none" stroke="#94a3b8" stroke-width="1.3" d="M1747.23,-296.37C1810.73,-259.41 1917.15,-193.36 1997.68,-122.5 2019.47,-103.33 2041.19,-78.36 2056.15,-60"/>
456
- <polygon fill="#94a3b8" stroke="#94a3b8" stroke-width="1.3" points="2058.06,-62.1 2060.9,-54.11 2053.7,-58.58 2058.06,-62.1"/>
457
- <text xml:space="preserve" text-anchor="middle" x="1949.43" y="-182.45" font-family="sans-Serif" font-size="9.00" fill="#cbd5e1">skill</text>
454
+ <path fill="none" stroke="#94a3b8" stroke-width="1.3" d="M1748.72,-296.38C1813.7,-259.68 1921.96,-194.11 2003.34,-122.5 2025.13,-103.33 2046.85,-78.36 2061.82,-60"/>
455
+ <polygon fill="#94a3b8" stroke="#94a3b8" stroke-width="1.3" points="2063.73,-62.1 2066.57,-54.11 2059.37,-58.58 2063.73,-62.1"/>
456
+ <text xml:space="preserve" text-anchor="middle" x="1955.38" y="-182.45" font-family="Helvetica,sans-Serif" font-size="9.00" fill="#cbd5e1">skill</text>
458
457
  </g>
459
458
  <!-- Fftn -->
460
459
  <g id="node28" class="node">
461
460
  <title>Fftn</title>
462
- <path fill="#fcd34d" stroke="#334155" stroke-width="1.4" d="M2260.93,-48.73C2260.93,-50.53 2241.54,-52 2217.68,-52 2193.81,-52 2174.43,-50.53 2174.43,-48.73 2174.43,-48.73 2174.43,-19.27 2174.43,-19.27 2174.43,-17.47 2193.81,-16 2217.68,-16 2241.54,-16 2260.93,-17.47 2260.93,-19.27 2260.93,-19.27 2260.93,-48.73 2260.93,-48.73"/>
463
- <path fill="none" stroke="#334155" stroke-width="1.4" d="M2260.93,-48.73C2260.93,-46.92 2241.54,-45.45 2217.68,-45.45 2193.81,-45.45 2174.43,-46.92 2174.43,-48.73"/>
464
- <text xml:space="preserve" text-anchor="middle" x="2217.68" y="-30.3" font-family="sans-Serif" font-size="11.00" fill="#0f172a">finetune/*.jsonl</text>
461
+ <path fill="#fcd34d" stroke="#334155" stroke-width="1.4" d="M2266.59,-48.73C2266.59,-50.53 2247.21,-52 2223.34,-52 2199.48,-52 2180.09,-50.53 2180.09,-48.73 2180.09,-48.73 2180.09,-19.27 2180.09,-19.27 2180.09,-17.47 2199.48,-16 2223.34,-16 2247.21,-16 2266.59,-17.47 2266.59,-19.27 2266.59,-19.27 2266.59,-48.73 2266.59,-48.73"/>
462
+ <path fill="none" stroke="#334155" stroke-width="1.4" d="M2266.59,-48.73C2266.59,-46.92 2247.21,-45.45 2223.34,-45.45 2199.48,-45.45 2180.09,-46.92 2180.09,-48.73"/>
463
+ <text xml:space="preserve" text-anchor="middle" x="2223.34" y="-30.3" font-family="Helvetica,sans-Serif" font-size="11.00" fill="#0f172a">finetune/*.jsonl</text>
465
464
  </g>
466
465
  <!-- Learning&#45;&gt;Fftn -->
467
466
  <g id="edge41" class="edge">
468
467
  <title>Learning&#45;&gt;Fftn</title>
469
- <path fill="none" stroke="#94a3b8" stroke-width="1.3" d="M1770.03,-296.34C1796.94,-285.45 1827.24,-272.93 1854.68,-261 1863.07,-257.35 2146.6,-128.3 2153.68,-122.5 2174.54,-105.4 2192.1,-80.03 2203.52,-61"/>
470
- <polygon fill="#94a3b8" stroke="#94a3b8" stroke-width="1.3" points="2205.87,-62.52 2207.48,-54.2 2201.03,-59.7 2205.87,-62.52"/>
471
- <text xml:space="preserve" text-anchor="middle" x="2088.91" y="-182.45" font-family="sans-Serif" font-size="9.00" fill="#cbd5e1">export_finetune</text>
468
+ <path fill="none" stroke="#94a3b8" stroke-width="1.3" d="M1771.64,-296.46C1799.22,-285.58 1830.26,-273.03 1858.34,-261 1866.8,-257.37 2152.22,-128.32 2159.34,-122.5 2180.23,-105.43 2197.78,-80.05 2209.2,-61.02"/>
469
+ <polygon fill="#94a3b8" stroke="#94a3b8" stroke-width="1.3" points="2211.55,-62.53 2213.16,-54.21 2206.71,-59.72 2211.55,-62.53"/>
470
+ <text xml:space="preserve" text-anchor="middle" x="2093.93" y="-182.45" font-family="Helvetica,sans-Serif" font-size="9.00" fill="#cbd5e1">export_finetune</text>
472
471
  </g>
473
472
  <!-- Mistakes&#45;&gt;Dispatch -->
474
473
  <g id="edge50" class="edge">
475
474
  <title>Mistakes&#45;&gt;Dispatch</title>
476
- <path fill="none" stroke="#fb7185" stroke-width="2" stroke-dasharray="5,2" d="M1329.62,-359.8C1305.51,-390.73 1263.84,-436.84 1215.68,-458.5 1148.35,-488.78 957.4,-473.82 884.68,-486.5 863.17,-490.25 839.86,-496.1 819.75,-501.73"/>
477
- <polygon fill="#fb7185" stroke="#fb7185" stroke-width="2" points="819.08,-499.01 812.16,-503.9 820.62,-504.39 819.08,-499.01"/>
478
- <text xml:space="preserve" text-anchor="middle" x="1283.41" y="-449.95" font-family="sans-Serif" font-size="9.00" fill="#cbd5e1">correction_hint</text>
479
- <text xml:space="preserve" text-anchor="middle" x="1283.41" y="-439.45" font-family="sans-Serif" font-size="9.00" fill="#cbd5e1">(inline, next iter)</text>
475
+ <path fill="none" stroke="#fb7185" stroke-width="2" stroke-dasharray="5,2" d="M1332.28,-359.8C1308.18,-390.73 1266.51,-436.84 1218.34,-458.5 1151.02,-488.78 960.06,-473.82 887.34,-486.5 865.84,-490.25 842.53,-496.1 822.42,-501.73"/>
476
+ <polygon fill="#fb7185" stroke="#fb7185" stroke-width="2" points="821.75,-499.01 814.82,-503.9 823.28,-504.39 821.75,-499.01"/>
477
+ <text xml:space="preserve" text-anchor="middle" x="1286.08" y="-449.95" font-family="Helvetica,sans-Serif" font-size="9.00" fill="#cbd5e1">correction_hint</text>
478
+ <text xml:space="preserve" text-anchor="middle" x="1286.08" y="-439.45" font-family="Helvetica,sans-Serif" font-size="9.00" fill="#cbd5e1">(inline, next iter)</text>
480
479
  </g>
481
480
  <!-- Mistakes&#45;&gt;Correlate -->
482
481
  <g id="edge23" class="edge">
483
482
  <title>Mistakes&#45;&gt;Correlate</title>
484
- <path fill="none" stroke="#34d399" stroke-width="1.3" d="M1437.81,-311.93C1482.45,-304.43 1537.89,-295.58 1587.68,-289 2018.46,-232.05 2128.3,-235.68 2561.68,-204 2597.21,-201.4 2635.8,-198.55 2671.12,-195.92"/>
485
- <polygon fill="#34d399" stroke="#34d399" stroke-width="1.3" points="2671.26,-198.72 2679.03,-195.33 2670.84,-193.13 2671.26,-198.72"/>
483
+ <path fill="none" stroke="#34d399" stroke-width="1.3" d="M1440.49,-311.96C1485.12,-304.46 1540.57,-295.61 1590.34,-289 2022.41,-231.59 2132.62,-235.5 2567.34,-204 2602.88,-201.42 2641.47,-198.58 2676.79,-195.95"/>
484
+ <polygon fill="#34d399" stroke="#34d399" stroke-width="1.3" points="2676.93,-198.75 2684.7,-195.36 2676.51,-193.16 2676.93,-198.75"/>
486
485
  </g>
487
486
  <!-- Fmis -->
488
487
  <g id="node23" class="node">
489
488
  <title>Fmis</title>
490
- <path fill="#fcd34d" stroke="#334155" stroke-width="1.4" d="M1861.93,-48.73C1861.93,-50.53 1843.88,-52 1821.68,-52 1799.47,-52 1781.43,-50.53 1781.43,-48.73 1781.43,-48.73 1781.43,-19.27 1781.43,-19.27 1781.43,-17.47 1799.47,-16 1821.68,-16 1843.88,-16 1861.93,-17.47 1861.93,-19.27 1861.93,-19.27 1861.93,-48.73 1861.93,-48.73"/>
491
- <path fill="none" stroke="#334155" stroke-width="1.4" d="M1861.93,-48.73C1861.93,-46.92 1843.88,-45.45 1821.68,-45.45 1799.47,-45.45 1781.43,-46.92 1781.43,-48.73"/>
492
- <text xml:space="preserve" text-anchor="middle" x="1821.68" y="-30.3" font-family="sans-Serif" font-size="11.00" fill="#0f172a">mistakes.json</text>
489
+ <path fill="#fcd34d" stroke="#334155" stroke-width="1.4" d="M1867.59,-48.73C1867.59,-50.53 1849.55,-52 1827.34,-52 1805.13,-52 1787.09,-50.53 1787.09,-48.73 1787.09,-48.73 1787.09,-19.27 1787.09,-19.27 1787.09,-17.47 1805.13,-16 1827.34,-16 1849.55,-16 1867.59,-17.47 1867.59,-19.27 1867.59,-19.27 1867.59,-48.73 1867.59,-48.73"/>
490
+ <path fill="none" stroke="#334155" stroke-width="1.4" d="M1867.59,-48.73C1867.59,-46.92 1849.55,-45.45 1827.34,-45.45 1805.13,-45.45 1787.09,-46.92 1787.09,-48.73"/>
491
+ <text xml:space="preserve" text-anchor="middle" x="1827.34" y="-30.3" font-family="Helvetica,sans-Serif" font-size="11.00" fill="#0f172a">mistakes.json</text>
493
492
  </g>
494
493
  <!-- Mistakes&#45;&gt;Fmis -->
495
494
  <g id="edge31" class="edge">
496
495
  <title>Mistakes&#45;&gt;Fmis</title>
497
- <path fill="none" stroke="#94a3b8" stroke-width="1.3" d="M1366.72,-296.02C1386.47,-258.93 1424.83,-198.01 1476.68,-167.5 1586.44,-102.91 1651.5,-189.72 1759.68,-122.5 1782.85,-108.1 1799.81,-81.51 1810.08,-61.41"/>
498
- <polygon fill="#94a3b8" stroke="#94a3b8" stroke-width="1.3" points="1812.47,-62.88 1813.46,-54.46 1807.44,-60.43 1812.47,-62.88"/>
496
+ <path fill="none" stroke="#94a3b8" stroke-width="1.3" d="M1369.94,-296.01C1390.37,-258.91 1429.84,-197.99 1482.34,-167.5 1592.48,-103.54 1657.17,-189.72 1765.34,-122.5 1788.52,-108.1 1805.48,-81.51 1815.74,-61.41"/>
497
+ <polygon fill="#94a3b8" stroke="#94a3b8" stroke-width="1.3" points="1818.14,-62.88 1819.13,-54.46 1813.11,-60.43 1818.14,-62.88"/>
499
498
  </g>
500
499
  <!-- Mistakes&#45;&gt;Fmem -->
501
500
  <g id="edge32" class="edge">
502
501
  <title>Mistakes&#45;&gt;Fmem</title>
503
- <path fill="none" stroke="#94a3b8" stroke-width="1.3" d="M1266.32,-296.01C1259.02,-293.57 1251.73,-291.2 1244.68,-289 1148.62,-259.06 998.17,-251.42 1053.68,-167.5 1127.49,-55.89 1302.83,-36.94 1388.65,-34.6"/>
504
- <polygon fill="#94a3b8" stroke="#94a3b8" stroke-width="1.3" points="1388.5,-37.41 1396.44,-34.44 1388.39,-31.81 1388.5,-37.41"/>
505
- <text xml:space="preserve" text-anchor="middle" x="1086.68" y="-182.45" font-family="sans-Serif" font-size="9.00" fill="#cbd5e1">resolve→lesson</text>
502
+ <path fill="none" stroke="#94a3b8" stroke-width="1.3" d="M1268.97,-296.07C1261.67,-293.61 1254.39,-291.23 1247.34,-289 1152.47,-259.05 1004.46,-250.48 1059.34,-167.5 1133.16,-55.89 1308.5,-36.94 1394.32,-34.6"/>
503
+ <polygon fill="#94a3b8" stroke="#94a3b8" stroke-width="1.3" points="1394.17,-37.41 1402.11,-34.44 1394.06,-31.81 1394.17,-37.41"/>
504
+ <text xml:space="preserve" text-anchor="middle" x="1092.34" y="-182.45" font-family="Helvetica,sans-Serif" font-size="9.00" fill="#cbd5e1">resolve→lesson</text>
506
505
  </g>
507
506
  <!-- ReflectT&#45;&gt;LLM -->
508
507
  <g id="edge44" class="edge">
509
508
  <title>ReflectT&#45;&gt;LLM</title>
510
- <path fill="none" stroke="#a78bfa" stroke-width="1.3" stroke-dasharray="5,2" d="M1186.55,-353.07C1196.69,-376.85 1215.73,-412.12 1244.68,-429.5 1260.18,-438.81 1313.53,-424.1 1325.68,-437.5 1357.38,-472.49 1246.52,-588.18 1206.68,-613.5 1144.55,-652.98 933.08,-679.01 827.98,-689.82"/>
511
- <polygon fill="#a78bfa" stroke="#a78bfa" stroke-width="1.3" points="827.78,-687.02 820.11,-690.62 828.35,-692.59 827.78,-687.02"/>
512
- <text xml:space="preserve" text-anchor="middle" x="1366.43" y="-515.45" font-family="sans-Serif" font-size="9.00" fill="#cbd5e1">reflect_engine ≠ active</text>
509
+ <path fill="none" stroke="#a78bfa" stroke-width="1.3" stroke-dasharray="5,2" d="M1189.22,-353.07C1199.36,-376.85 1218.4,-412.12 1247.34,-429.5 1262.85,-438.81 1316.2,-424.1 1328.34,-437.5 1391.75,-507.47 1289.04,-562.85 1209.34,-613.5 1147.22,-652.98 935.75,-679.01 830.65,-689.82"/>
510
+ <polygon fill="#a78bfa" stroke="#a78bfa" stroke-width="1.3" points="830.45,-687.02 822.77,-690.62 831.02,-692.59 830.45,-687.02"/>
511
+ <text xml:space="preserve" text-anchor="middle" x="1393.69" y="-515.45" font-family="Helvetica,sans-Serif" font-size="9.00" fill="#cbd5e1">reflect_engine ≠ active</text>
513
512
  </g>
514
513
  <!-- ReflectT&#45;&gt;Fmem -->
515
514
  <g id="edge43" class="edge">
516
515
  <title>ReflectT&#45;&gt;Fmem</title>
517
- <path fill="none" stroke="#94a3b8" stroke-width="1.3" d="M1131.44,-313.94C1056.78,-290.47 922.76,-237.05 971.68,-167.5 1020.24,-98.45 1279.16,-56.22 1388.69,-41.21"/>
518
- <polygon fill="#94a3b8" stroke="#94a3b8" stroke-width="1.3" points="1389,-43.99 1396.55,-40.14 1388.25,-38.44 1389,-43.99"/>
519
- <text xml:space="preserve" text-anchor="middle" x="1001.68" y="-182.45" font-family="sans-Serif" font-size="9.00" fill="#cbd5e1">frontier :lesson</text>
516
+ <path fill="none" stroke="#94a3b8" stroke-width="1.3" d="M1134.13,-313.62C1060.37,-289.85 929,-236.24 977.34,-167.5 1025.91,-98.45 1284.83,-56.22 1394.36,-41.21"/>
517
+ <polygon fill="#94a3b8" stroke="#94a3b8" stroke-width="1.3" points="1394.66,-43.99 1402.22,-40.14 1393.91,-38.44 1394.66,-43.99"/>
518
+ <text xml:space="preserve" text-anchor="middle" x="1007.34" y="-182.45" font-family="Helvetica,sans-Serif" font-size="9.00" fill="#cbd5e1">frontier :lesson</text>
520
519
  </g>
521
520
  <!-- Reward&#45;&gt;Mistakes -->
522
521
  <g id="edge64" class="edge">
523
522
  <title>Reward&#45;&gt;Mistakes</title>
524
- <path fill="none" stroke="#fb7185" stroke-width="1.3" stroke-dasharray="5,2" d="M1870.08,-359.66C1853.53,-381.97 1828.08,-410.07 1797.68,-422.83 1711.62,-458.97 1679.31,-440.56 1587.68,-422.83 1529.35,-411.55 1467.15,-385.94 1421.26,-364.17"/>
525
- <polygon fill="#fb7185" stroke="#fb7185" stroke-width="1.3" points="1422.5,-361.66 1414.08,-360.73 1420.08,-366.71 1422.5,-361.66"/>
526
- <text xml:space="preserve" text-anchor="middle" x="1504.68" y="-444.7" font-family="sans-Serif" font-size="9.00" fill="#cbd5e1">sentinel gap</text>
523
+ <path fill="none" stroke="#fb7185" stroke-width="1.3" stroke-dasharray="5,2" d="M1873.08,-359.73C1854.58,-382.08 1826.52,-410.18 1794.34,-422.83 1666.02,-473.27 1505.57,-409.13 1418.24,-364.4"/>
524
+ <polygon fill="#fb7185" stroke="#fb7185" stroke-width="1.3" points="1419.64,-361.97 1411.25,-360.77 1417.06,-366.94 1419.64,-361.97"/>
525
+ <text xml:space="preserve" text-anchor="middle" x="1507.34" y="-444.7" font-family="Helvetica,sans-Serif" font-size="9.00" fill="#cbd5e1">sentinel gap</text>
527
526
  </g>
528
527
  <!-- Reward&#45;&gt;Verify -->
529
528
  <g id="edge62" class="edge">
530
529
  <title>Reward&#45;&gt;Verify</title>
531
- <path fill="none" stroke="#fbbf24" stroke-width="1.3" stroke-dasharray="5,2" d="M1911.27,-359.66C1927.82,-381.97 1953.27,-410.07 1983.68,-422.83 2056.21,-453.29 2262.43,-445.78 2337.68,-422.83 2378.25,-410.46 2417.74,-382.06 2444.55,-359.55"/>
532
- <polygon fill="#fbbf24" stroke="#fbbf24" stroke-width="1.3" points="2446.36,-361.68 2450.61,-354.35 2442.72,-357.43 2446.36,-361.68"/>
533
- <text xml:space="preserve" text-anchor="middle" x="2040.68" y="-444.7" font-family="sans-Serif" font-size="9.00" fill="#cbd5e1">verify_as_reward</text>
530
+ <path fill="none" stroke="#fbbf24" stroke-width="1.3" stroke-dasharray="5,2" d="M1919.61,-359.73C1938.11,-382.08 1966.16,-410.18 1998.34,-422.83 2082.93,-456.08 2324.35,-459.9 2407.34,-422.83 2435.45,-410.28 2458.12,-383.34 2472.96,-361.36"/>
531
+ <polygon fill="#fbbf24" stroke="#fbbf24" stroke-width="1.3" points="2475.17,-363.11 2477.19,-354.88 2470.47,-360.05 2475.17,-363.11"/>
532
+ <text xml:space="preserve" text-anchor="middle" x="2055.34" y="-444.7" font-family="Helvetica,sans-Serif" font-size="9.00" fill="#cbd5e1">verify_as_reward</text>
534
533
  </g>
535
534
  <!-- Reward&#45;&gt;Fprf -->
536
535
  <g id="edge63" class="edge">
537
536
  <title>Reward&#45;&gt;Fprf</title>
538
- <path fill="none" stroke="#94a3b8" stroke-width="1.3" d="M1819.96,-296.01C1812.52,-293.38 1805,-290.98 1797.68,-289 1661.93,-252.33 1565.01,-324.73 1492.93,-204 1484.61,-190.07 1483.73,-180.86 1492.93,-167.5 1519.03,-129.58 1545.87,-144.67 1589.68,-130.5 1602.8,-126.25 1608.12,-130.04 1619.68,-122.5 1643.41,-107.01 1662.8,-80.81 1675.1,-61.11"/>
539
- <polygon fill="#94a3b8" stroke="#94a3b8" stroke-width="1.3" points="1677.5,-62.56 1679.23,-54.26 1672.7,-59.67 1677.5,-62.56"/>
540
- <text xml:space="preserve" text-anchor="middle" x="1530.8" y="-182.45" font-family="sans-Serif" font-size="9.00" fill="#cbd5e1">record_preference</text>
537
+ <path fill="none" stroke="#94a3b8" stroke-width="1.3" d="M1818.36,-296.06C1810.32,-293.44 1802.21,-291.02 1794.34,-289 1661.88,-254.97 1568.7,-321.43 1498.59,-204 1490.28,-190.07 1489.4,-180.86 1498.59,-167.5 1524.69,-129.58 1551.54,-144.67 1595.34,-130.5 1608.47,-126.25 1613.79,-130.04 1625.34,-122.5 1649.08,-107.01 1668.47,-80.81 1680.77,-61.11"/>
538
+ <polygon fill="#94a3b8" stroke="#94a3b8" stroke-width="1.3" points="1683.17,-62.56 1684.9,-54.26 1678.37,-59.67 1683.17,-62.56"/>
539
+ <text xml:space="preserve" text-anchor="middle" x="1536.47" y="-182.45" font-family="Helvetica,sans-Serif" font-size="9.00" fill="#cbd5e1">record_preference</text>
541
540
  </g>
542
541
  <!-- Curric&#45;&gt;Fmis -->
543
542
  <g id="edge66" class="edge">
544
543
  <title>Curric&#45;&gt;Fmis</title>
545
- <path fill="none" stroke="#34d399" stroke-width="1.3" stroke-dasharray="5,2" d="M2003.81,-296.73C1922.54,-261.86 1800,-208.72 1796.93,-204 1768.42,-160.2 1790.89,-96.6 1807.67,-61.23"/>
546
- <polygon fill="#34d399" stroke="#34d399" stroke-width="1.3" points="1810.09,-62.64 1811.12,-54.22 1805.07,-60.16 1810.09,-62.64"/>
547
- <text xml:space="preserve" text-anchor="middle" x="1834.8" y="-182.45" font-family="sans-Serif" font-size="9.00" fill="#cbd5e1">practice → resolve</text>
544
+ <path fill="none" stroke="#34d399" stroke-width="1.3" stroke-dasharray="5,2" d="M2042.9,-302.82C1954.41,-273.34 1816.84,-224.86 1802.59,-204 1773.12,-160.84 1795.96,-97 1813.05,-61.42"/>
545
+ <polygon fill="#34d399" stroke="#34d399" stroke-width="1.3" points="1815.51,-62.76 1816.58,-54.35 1810.5,-60.26 1815.51,-62.76"/>
546
+ <text xml:space="preserve" text-anchor="middle" x="1840.47" y="-182.45" font-family="Helvetica,sans-Serif" font-size="9.00" fill="#cbd5e1">practice → resolve</text>
548
547
  </g>
549
548
  <!-- Curric&#45;&gt;Fftn -->
550
549
  <g id="edge67" class="edge">
551
550
  <title>Curric&#45;&gt;Fftn</title>
552
- <path fill="none" stroke="#94a3b8" stroke-width="1.3" d="M2145.33,-297.32C2152.51,-294.45 2159.73,-291.63 2166.68,-289 2275.27,-247.93 2346.25,-298.51 2413.68,-204 2423.1,-190.79 2423.07,-180.73 2413.68,-167.5 2384.79,-126.82 2355,-146.33 2307.68,-130.5 2296.61,-126.8 2292.17,-129.29 2282.68,-122.5 2260.25,-106.46 2242.3,-80.34 2230.99,-60.81"/>
553
- <polygon fill="#94a3b8" stroke="#94a3b8" stroke-width="1.3" points="2233.57,-59.69 2227.23,-54.07 2228.69,-62.42 2233.57,-59.69"/>
554
- <text xml:space="preserve" text-anchor="middle" x="2451.86" y="-182.45" font-family="sans-Serif" font-size="9.00" fill="#cbd5e1">train_and_gate</text>
551
+ <path fill="none" stroke="#94a3b8" stroke-width="1.3" d="M2188.06,-302.87C2272.95,-273.2 2405.7,-224.29 2419.34,-204 2428.4,-190.54 2428.74,-180.73 2419.34,-167.5 2390.45,-126.82 2360.67,-146.33 2313.34,-130.5 2302.28,-126.8 2297.83,-129.29 2288.34,-122.5 2265.92,-106.46 2247.97,-80.34 2236.66,-60.81"/>
552
+ <polygon fill="#94a3b8" stroke="#94a3b8" stroke-width="1.3" points="2239.24,-59.69 2232.9,-54.07 2234.35,-62.42 2239.24,-59.69"/>
553
+ <text xml:space="preserve" text-anchor="middle" x="2457.39" y="-182.45" font-family="Helvetica,sans-Serif" font-size="9.00" fill="#cbd5e1">train_and_gate</text>
555
554
  </g>
556
555
  <!-- Curric&#45;&gt;Fprf -->
557
556
  <g id="edge65" class="edge">
558
557
  <title>Curric&#45;&gt;Fprf</title>
559
- <path fill="none" stroke="#94a3b8" stroke-width="1.3" d="M2004.06,-296.19C1997.23,-293.61 1990.35,-291.16 1983.68,-289 1865.91,-250.84 1796.63,-299.96 1718.43,-204 1685.26,-163.3 1684.15,-98.44 1686.67,-62.04"/>
560
- <polygon fill="#94a3b8" stroke="#94a3b8" stroke-width="1.3" points="1689.42,-62.74 1687.29,-54.54 1683.84,-62.28 1689.42,-62.74"/>
561
- <text xml:space="preserve" text-anchor="middle" x="1746.55" y="-182.45" font-family="sans-Serif" font-size="9.00" fill="#cbd5e1">(loser,winner)</text>
558
+ <path fill="none" stroke="#94a3b8" stroke-width="1.3" d="M2045.97,-302.84C2030.37,-297.94 2013.87,-293.05 1998.34,-289 1874.46,-256.66 1802.73,-304.26 1723.09,-204 1690.61,-163.1 1689.64,-98.76 1692.23,-62.4"/>
559
+ <polygon fill="#94a3b8" stroke="#94a3b8" stroke-width="1.3" points="1695.02,-62.67 1692.91,-54.46 1689.44,-62.2 1695.02,-62.67"/>
560
+ <text xml:space="preserve" text-anchor="middle" x="1751.22" y="-182.45" font-family="Helvetica,sans-Serif" font-size="9.00" fill="#cbd5e1">(loser,winner)</text>
562
561
  </g>
563
562
  <!-- Snapshot&#45;&gt;Correlate -->
564
563
  <g id="edge24" class="edge">
565
564
  <title>Snapshot&#45;&gt;Correlate</title>
566
- <path fill="none" stroke="#f59e0b" stroke-width="1.3" d="M2702.06,-296.57C2723.08,-271.38 2752.59,-236 2772.38,-212.27"/>
567
- <polygon fill="#f59e0b" stroke="#f59e0b" stroke-width="1.3" points="2774.46,-214.15 2777.44,-206.22 2770.16,-210.56 2774.46,-214.15"/>
565
+ <path fill="none" stroke="#f59e0b" stroke-width="1.3" d="M2716.51,-296.45C2725.78,-285.41 2736.18,-272.77 2745.34,-261 2757.63,-245.23 2770.83,-227.1 2781.11,-212.7"/>
566
+ <polygon fill="#f59e0b" stroke="#f59e0b" stroke-width="1.3" points="2783.3,-214.44 2785.65,-206.3 2778.74,-211.2 2783.3,-214.44"/>
568
567
  </g>
569
568
  <!-- Observe&#45;&gt;Correlate -->
570
569
  <g id="edge25" class="edge">
571
570
  <title>Observe&#45;&gt;Correlate</title>
572
- <path fill="none" stroke="#f59e0b" stroke-width="1.3" d="M3009.89,-309.52C2965.49,-284.31 2883.39,-237.69 2834.13,-209.72"/>
573
- <polygon fill="#f59e0b" stroke="#f59e0b" stroke-width="1.3" points="2835.68,-207.38 2827.34,-205.87 2832.92,-212.25 2835.68,-207.38"/>
571
+ <path fill="none" stroke="#f59e0b" stroke-width="1.3" d="M3022.31,-309.38C2976.28,-284.06 2891.41,-237.39 2840.7,-209.5"/>
572
+ <polygon fill="#f59e0b" stroke="#f59e0b" stroke-width="1.3" points="2842.34,-207.2 2833.98,-205.8 2839.64,-212.11 2842.34,-207.2"/>
574
573
  </g>
575
574
  <!-- Fext -->
576
575
  <g id="node27" class="node">
577
576
  <title>Fext</title>
578
- <path fill="#fcd34d" stroke="#334155" stroke-width="1.4" d="M2522.8,-48.73C2522.8,-50.53 2499.89,-52 2471.68,-52 2443.47,-52 2420.55,-50.53 2420.55,-48.73 2420.55,-48.73 2420.55,-19.27 2420.55,-19.27 2420.55,-17.47 2443.47,-16 2471.68,-16 2499.89,-16 2522.8,-17.47 2522.8,-19.27 2522.8,-19.27 2522.8,-48.73 2522.8,-48.73"/>
579
- <path fill="none" stroke="#334155" stroke-width="1.4" d="M2522.8,-48.73C2522.8,-46.92 2499.89,-45.45 2471.68,-45.45 2443.47,-45.45 2420.55,-46.92 2420.55,-48.73"/>
580
- <text xml:space="preserve" text-anchor="middle" x="2471.68" y="-30.3" font-family="sans-Serif" font-size="11.00" fill="#0f172a">extrospection.json</text>
577
+ <path fill="#fcd34d" stroke="#334155" stroke-width="1.4" d="M2528.47,-48.73C2528.47,-50.53 2505.55,-52 2477.34,-52 2449.13,-52 2426.22,-50.53 2426.22,-48.73 2426.22,-48.73 2426.22,-19.27 2426.22,-19.27 2426.22,-17.47 2449.13,-16 2477.34,-16 2505.55,-16 2528.47,-17.47 2528.47,-19.27 2528.47,-19.27 2528.47,-48.73 2528.47,-48.73"/>
578
+ <path fill="none" stroke="#334155" stroke-width="1.4" d="M2528.47,-48.73C2528.47,-46.92 2505.55,-45.45 2477.34,-45.45 2449.13,-45.45 2426.22,-46.92 2426.22,-48.73"/>
579
+ <text xml:space="preserve" text-anchor="middle" x="2477.34" y="-30.3" font-family="Helvetica,sans-Serif" font-size="11.00" fill="#0f172a">extrospection.json</text>
581
580
  </g>
582
581
  <!-- Observe&#45;&gt;Fext -->
583
582
  <g id="edge35" class="edge">
584
583
  <title>Observe&#45;&gt;Fext</title>
585
- <path fill="none" stroke="#94a3b8" stroke-width="1.3" d="M3047.01,-309.3C3056.94,-278.28 3072.53,-213.04 3046.68,-167.5 3030.83,-139.59 3014.7,-141.84 2984.68,-130.5 2828.38,-71.48 2631.05,-47.94 2532.91,-39.38"/>
586
- <polygon fill="#94a3b8" stroke="#94a3b8" stroke-width="1.3" points="2533.33,-36.61 2525.12,-38.72 2532.86,-42.19 2533.33,-36.61"/>
584
+ <path fill="none" stroke="#94a3b8" stroke-width="1.3" d="M3059.25,-309.75C3066.99,-278.87 3078.61,-213.09 3052.34,-167.5 3036.33,-139.69 3020.36,-141.84 2990.34,-130.5 2834.05,-71.48 2636.72,-47.94 2538.58,-39.38"/>
585
+ <polygon fill="#94a3b8" stroke="#94a3b8" stroke-width="1.3" points="2539,-36.61 2530.79,-38.72 2538.52,-42.19 2539,-36.61"/>
587
586
  </g>
588
587
  <!-- Verify&#45;&gt;Mistakes -->
589
588
  <g id="edge38" class="edge">
590
589
  <title>Verify&#45;&gt;Mistakes</title>
591
- <path fill="none" stroke="#fb7185" stroke-width="1.3" stroke-dasharray="5,2" d="M2452.11,-353.07C2425.52,-376.3 2382.26,-409.24 2337.68,-422.83 2257.97,-447.14 1669.49,-438.66 1587.68,-422.83 1529.35,-411.55 1467.15,-385.94 1421.26,-364.17"/>
592
- <polygon fill="#fb7185" stroke="#fb7185" stroke-width="1.3" points="1422.5,-361.66 1414.08,-360.73 1420.08,-366.71 1422.5,-361.66"/>
593
- <text xml:space="preserve" text-anchor="middle" x="1876.68" y="-444.7" font-family="sans-Serif" font-size="9.00" fill="#cbd5e1">:refuted</text>
590
+ <path fill="none" stroke="#fb7185" stroke-width="1.3" stroke-dasharray="5,2" d="M2478.26,-353.23C2463.83,-376.22 2439.04,-408.68 2407.34,-422.83 2324.46,-459.85 1679.47,-440.07 1590.34,-422.83 1532.02,-411.55 1469.82,-385.94 1423.93,-364.17"/>
591
+ <polygon fill="#fb7185" stroke="#fb7185" stroke-width="1.3" points="1425.17,-361.66 1416.75,-360.73 1422.75,-366.71 1425.17,-361.66"/>
592
+ <text xml:space="preserve" text-anchor="middle" x="1908.34" y="-444.7" font-family="Helvetica,sans-Serif" font-size="9.00" fill="#cbd5e1">:refuted</text>
594
593
  </g>
595
594
  <!-- Verify&#45;&gt;Correlate -->
596
595
  <g id="edge26" class="edge">
597
596
  <title>Verify&#45;&gt;Correlate</title>
598
- <path fill="none" stroke="#f59e0b" stroke-width="1.3" d="M2530.22,-302.92C2540.3,-298.26 2550.81,-293.45 2560.68,-289 2622.97,-260.9 2695.05,-229.43 2742.35,-208.92"/>
599
- <polygon fill="#f59e0b" stroke="#f59e0b" stroke-width="1.3" points="2743.44,-211.5 2749.66,-205.75 2741.21,-206.36 2743.44,-211.5"/>
597
+ <path fill="none" stroke="#f59e0b" stroke-width="1.3" d="M2542.79,-302.81C2553.15,-298.06 2564.05,-293.25 2574.34,-289 2608.01,-275.11 2617.9,-275.41 2651.34,-261 2687.71,-245.33 2727.79,-225.02 2757.06,-209.61"/>
598
+ <polygon fill="#f59e0b" stroke="#f59e0b" stroke-width="1.3" points="2758.28,-212.13 2764.04,-205.91 2755.66,-207.18 2758.28,-212.13"/>
600
599
  </g>
601
600
  <!-- Verify&#45;&gt;Fmis -->
602
601
  <g id="edge37" class="edge">
603
602
  <title>Verify&#45;&gt;Fmis</title>
604
- <path fill="none" stroke="#fb7185" stroke-width="2" d="M2451.81,-303.12C2431.03,-285.06 2401.26,-260.03 2373.68,-240 2355.27,-226.63 2222.44,-137.11 2200.68,-130.5 2166.96,-120.26 1914.77,-139.08 1883.68,-122.5 1859.64,-109.69 1842.83,-82.95 1832.84,-62.38"/>
605
- <polygon fill="#fb7185" stroke="#fb7185" stroke-width="2" points="1835.49,-61.44 1829.61,-55.33 1830.39,-63.77 1835.49,-61.44"/>
606
- <text xml:space="preserve" text-anchor="middle" x="2358.89" y="-187.7" font-family="sans-Serif" font-size="9.00" fill="#cbd5e1">:refuted →</text>
607
- <text xml:space="preserve" text-anchor="middle" x="2358.89" y="-177.2" font-family="sans-Serif" font-size="9.00" fill="#cbd5e1">assumption mistake</text>
603
+ <path fill="none" stroke="#fb7185" stroke-width="2" d="M2475.77,-302.86C2461.59,-283.7 2439.65,-257.33 2415.34,-240 2381.27,-215.71 2365.7,-222.85 2328.34,-204 2271.83,-175.48 2267.12,-148.22 2206.34,-130.5 2172.52,-120.64 1920.43,-139.08 1889.34,-122.5 1865.31,-109.69 1848.5,-82.95 1838.5,-62.38"/>
604
+ <polygon fill="#fb7185" stroke="#fb7185" stroke-width="2" points="1841.15,-61.44 1835.28,-55.33 1836.06,-63.77 1841.15,-61.44"/>
605
+ <text xml:space="preserve" text-anchor="middle" x="2368.84" y="-187.7" font-family="Helvetica,sans-Serif" font-size="9.00" fill="#cbd5e1">:refuted →</text>
606
+ <text xml:space="preserve" text-anchor="middle" x="2368.84" y="-177.2" font-family="Helvetica,sans-Serif" font-size="9.00" fill="#cbd5e1">assumption mistake</text>
608
607
  </g>
609
608
  <!-- Verify&#45;&gt;Fmem -->
610
609
  <g id="edge39" class="edge">
611
610
  <title>Verify&#45;&gt;Fmem</title>
612
- <path fill="none" stroke="#a78bfa" stroke-width="1.3" stroke-dasharray="5,2" d="M2418.72,-302.83C2361.06,-279.13 2271.78,-241.23 2196.43,-204 2166.46,-189.2 2162.71,-177.02 2130.68,-167.5 1995.5,-127.33 1620.03,-192.61 1497.68,-122.5 1473.98,-108.92 1457.6,-81.71 1448.02,-61.22"/>
613
- <polygon fill="#a78bfa" stroke="#a78bfa" stroke-width="1.3" points="1450.69,-60.33 1444.89,-54.15 1445.56,-62.6 1450.69,-60.33"/>
614
- <text xml:space="preserve" text-anchor="middle" x="2226.05" y="-187.7" font-family="sans-Serif" font-size="9.00" fill="#cbd5e1">mark stale</text>
615
- <text xml:space="preserve" text-anchor="middle" x="2226.05" y="-177.2" font-family="sans-Serif" font-size="9.00" fill="#cbd5e1">[UNVERIFIED]</text>
611
+ <path fill="none" stroke="#a78bfa" stroke-width="1.3" stroke-dasharray="5,2" d="M2438.91,-302.91C2428.46,-298.26 2417.57,-293.45 2407.34,-289 2318.3,-250.3 2294.03,-245.18 2206.09,-204 2174.05,-188.99 2169.41,-177.06 2135.34,-167.5 1999.78,-129.44 1625.5,-192.51 1503.34,-122.5 1479.65,-108.92 1463.27,-81.71 1453.69,-61.22"/>
612
+ <polygon fill="#a78bfa" stroke="#a78bfa" stroke-width="1.3" points="1456.35,-60.33 1450.55,-54.15 1451.23,-62.6 1456.35,-60.33"/>
613
+ <text xml:space="preserve" text-anchor="middle" x="2235.72" y="-187.7" font-family="Helvetica,sans-Serif" font-size="9.00" fill="#cbd5e1">mark stale</text>
614
+ <text xml:space="preserve" text-anchor="middle" x="2235.72" y="-177.2" font-family="Helvetica,sans-Serif" font-size="9.00" fill="#cbd5e1">[UNVERIFIED]</text>
616
615
  </g>
617
616
  <!-- Verify&#45;&gt;Fext -->
618
617
  <g id="edge40" class="edge">
619
618
  <title>Verify&#45;&gt;Fext</title>
620
- <path fill="none" stroke="#94a3b8" stroke-width="1.3" d="M2526.56,-302.81C2537.59,-297.8 2549.4,-292.88 2560.68,-289 2722.76,-233.29 3029.54,-304.59 2926.68,-167.5 2879.12,-104.11 2645.5,-61.1 2532.76,-43.68"/>
621
- <polygon fill="#94a3b8" stroke="#94a3b8" stroke-width="1.3" points="2533.5,-40.96 2525.17,-42.52 2532.65,-46.5 2533.5,-40.96"/>
622
- <text xml:space="preserve" text-anchor="middle" x="2967.18" y="-187.7" font-family="sans-Serif" font-size="9.00" fill="#cbd5e1">:confirmed</text>
623
- <text xml:space="preserve" text-anchor="middle" x="2967.18" y="-177.2" font-family="sans-Serif" font-size="9.00" fill="#cbd5e1">:intel obs</text>
619
+ <path fill="none" stroke="#94a3b8" stroke-width="1.3" d="M2539.74,-302.84C2550.9,-297.78 2562.88,-292.82 2574.34,-289 2733.76,-235.91 3033.19,-301.9 2932.34,-167.5 2884.78,-104.11 2651.17,-61.1 2538.43,-43.68"/>
620
+ <polygon fill="#94a3b8" stroke="#94a3b8" stroke-width="1.3" points="2539.16,-40.96 2530.83,-42.52 2538.32,-46.5 2539.16,-40.96"/>
621
+ <text xml:space="preserve" text-anchor="middle" x="2972.5" y="-187.7" font-family="Helvetica,sans-Serif" font-size="9.00" fill="#cbd5e1">:confirmed</text>
622
+ <text xml:space="preserve" text-anchor="middle" x="2972.5" y="-177.2" font-family="Helvetica,sans-Serif" font-size="9.00" fill="#cbd5e1">:intel obs</text>
624
623
  </g>
625
624
  <!-- RFTune&#45;&gt;Correlate -->
626
625
  <g id="edge27" class="edge">
627
626
  <title>RFTune&#45;&gt;Correlate</title>
628
- <path fill="none" stroke="#f59e0b" stroke-width="1.3" d="M2859.1,-302.89C2845.05,-277.95 2823.17,-239.1 2808.63,-213.3"/>
629
- <polygon fill="#f59e0b" stroke="#f59e0b" stroke-width="1.3" points="2811.15,-212.07 2804.79,-206.47 2806.27,-214.82 2811.15,-212.07"/>
627
+ <path fill="none" stroke="#f59e0b" stroke-width="1.3" d="M2871.39,-302.89C2855.85,-277.84 2831.61,-238.76 2815.6,-212.96"/>
628
+ <polygon fill="#f59e0b" stroke="#f59e0b" stroke-width="1.3" points="2818.15,-211.75 2811.55,-206.43 2813.39,-214.71 2818.15,-211.75"/>
630
629
  </g>
631
630
  <!-- RFTune&#45;&gt;Fext -->
632
631
  <g id="edge36" class="edge">
633
632
  <title>RFTune&#45;&gt;Fext</title>
634
- <path fill="none" stroke="#94a3b8" stroke-width="1.3" d="M2915.84,-302.75C2964.43,-272.23 3032.46,-217.71 2998.68,-167.5 2946.57,-90.07 2660.24,-53.18 2532.84,-40.42"/>
635
- <polygon fill="#94a3b8" stroke="#94a3b8" stroke-width="1.3" points="2533.41,-37.66 2525.17,-39.66 2532.86,-43.23 2533.41,-37.66"/>
636
- <text xml:space="preserve" text-anchor="middle" x="3022.36" y="-187.7" font-family="sans-Serif" font-size="9.00" fill="#cbd5e1">:rf obs</text>
637
- <text xml:space="preserve" text-anchor="middle" x="3022.36" y="-177.2" font-family="sans-Serif" font-size="9.00" fill="#cbd5e1">ttl 300s</text>
633
+ <path fill="none" stroke="#94a3b8" stroke-width="1.3" d="M2926.4,-302.9C2972.41,-272.08 3037.52,-216.8 3004.34,-167.5 2952.24,-90.07 2665.91,-53.18 2538.51,-40.42"/>
634
+ <polygon fill="#94a3b8" stroke="#94a3b8" stroke-width="1.3" points="2539.08,-37.66 2530.84,-39.66 2538.53,-43.23 2539.08,-37.66"/>
635
+ <text xml:space="preserve" text-anchor="middle" x="3028.03" y="-187.7" font-family="Helvetica,sans-Serif" font-size="9.00" fill="#cbd5e1">:rf obs</text>
636
+ <text xml:space="preserve" text-anchor="middle" x="3028.03" y="-177.2" font-family="Helvetica,sans-Serif" font-size="9.00" fill="#cbd5e1">ttl 300s</text>
638
637
  </g>
639
638
  <!-- Correlate&#45;&gt;Prompt -->
640
639
  <g id="edge51" class="edge">
641
640
  <title>Correlate&#45;&gt;Prompt</title>
642
- <path fill="none" stroke="#fb7185" stroke-width="2" stroke-dasharray="5,2" d="M2897.93,-204.98C2984.66,-222.51 3098.23,-251.82 3125.68,-289 3162.77,-339.23 3168.46,-384.02 3125.68,-429.5 3053.37,-506.37 2757.14,-454.63 2651.68,-458.5 2396.49,-467.86 606.95,-453.99 353.68,-486.5 336.27,-488.73 317.81,-492.5 300.53,-496.66"/>
643
- <polygon fill="#fb7185" stroke="#fb7185" stroke-width="2" points="299.97,-493.91 292.88,-498.56 301.32,-499.34 299.97,-493.91"/>
644
- <text xml:space="preserve" text-anchor="middle" x="3195.04" y="-324.7" font-family="sans-Serif" font-size="9.00" fill="#cbd5e1">findings → next run</text>
641
+ <path fill="none" stroke="#fb7185" stroke-width="2" stroke-dasharray="5,2" d="M2907.82,-204.97C2996.39,-222.31 3111.35,-251.34 3139.34,-289 3176.6,-339.11 3182.13,-384.01 3139.34,-429.5 3067.19,-506.21 2771.58,-454.64 2666.34,-458.5 2409.83,-467.91 610.94,-453.83 356.34,-486.5 338.94,-488.73 320.47,-492.5 303.19,-496.66"/>
642
+ <polygon fill="#fb7185" stroke="#fb7185" stroke-width="2" points="302.64,-493.91 295.55,-498.56 303.99,-499.34 302.64,-493.91"/>
643
+ <text xml:space="preserve" text-anchor="middle" x="3208.77" y="-324.7" font-family="Helvetica,sans-Serif" font-size="9.00" fill="#cbd5e1">findings → next run</text>
645
644
  </g>
646
645
  <!-- Correlate&#45;&gt;Fmet -->
647
646
  <!-- Fmet&#45;&gt;Router -->
648
647
  <g id="edge54" class="edge">
649
648
  <title>Fmet&#45;&gt;Router</title>
650
- <path fill="none" stroke="#fbbf24" stroke-width="1.3" stroke-dasharray="5,2" d="M2346.6,-52.53C2354.7,-73.41 2371.43,-107.37 2398.68,-122.5 2412.48,-130.16 2666.92,-129.48 2682.68,-130.5 2844.95,-141.02 2892.62,-115.45 3046.68,-167.5 3184.95,-214.22 3343.25,-321.86 3244.68,-429.5 3145.54,-537.76 3062.28,-451.19 2915.68,-458.5 2650.54,-471.72 789.29,-447.7 526.68,-486.5 508.59,-489.17 489.28,-494.07 472.07,-499.21"/>
651
- <polygon fill="#fbbf24" stroke="#fbbf24" stroke-width="1.3" points="471.45,-496.47 464.62,-501.5 473.09,-501.83 471.45,-496.47"/>
652
- <text xml:space="preserve" text-anchor="middle" x="3243.77" y="-252.45" font-family="sans-Serif" font-size="9.00" fill="#cbd5e1">success_rate</text>
653
- <text xml:space="preserve" text-anchor="middle" x="3243.77" y="-241.95" font-family="sans-Serif" font-size="9.00" fill="#cbd5e1">→ tie&#45;break</text>
649
+ <path fill="none" stroke="#fbbf24" stroke-width="1.3" stroke-dasharray="5,2" d="M2352.27,-52.53C2360.37,-73.41 2377.1,-107.37 2404.34,-122.5 2418.14,-130.16 2672.59,-129.48 2688.34,-130.5 2850.61,-141.02 2897.84,-116.8 3052.34,-167.5 3193.09,-213.69 3358.38,-320.26 3258.34,-429.5 3159.21,-537.76 3075.95,-451.19 2929.34,-458.5 2662.99,-471.77 793.17,-447.53 529.34,-486.5 511.26,-489.17 491.95,-494.07 474.74,-499.21"/>
650
+ <polygon fill="#fbbf24" stroke="#fbbf24" stroke-width="1.3" points="474.11,-496.47 467.29,-501.5 475.76,-501.83 474.11,-496.47"/>
651
+ <text xml:space="preserve" text-anchor="middle" x="3256.64" y="-252.45" font-family="Helvetica,sans-Serif" font-size="9.00" fill="#cbd5e1">success_rate</text>
652
+ <text xml:space="preserve" text-anchor="middle" x="3256.64" y="-241.95" font-family="Helvetica,sans-Serif" font-size="9.00" fill="#cbd5e1">→ tie&#45;break</text>
654
653
  </g>
655
654
  <!-- Flrn&#45;&gt;Plan -->
656
655
  <g id="edge53" class="edge">
657
656
  <title>Flrn&#45;&gt;Plan</title>
658
- <path fill="none" stroke="#fbbf24" stroke-width="1.3" stroke-dasharray="5,2" d="M1565.18,-52.54C1573.97,-73.44 1591.84,-107.41 1619.68,-122.5 1759.14,-198.1 2889.17,-148.62 3046.68,-167.5 3202.24,-186.15 3292.93,-118.35 3391.68,-240 3444.86,-305.52 3434.2,-365.08 3379.68,-429.5 3344.23,-471.38 3314.12,-451.71 3259.68,-458.5 2978.06,-493.61 986.59,-446.14 705.68,-486.5 687.7,-489.08 668.53,-493.76 651.27,-498.72"/>
659
- <polygon fill="#fbbf24" stroke="#fbbf24" stroke-width="1.3" points="650.65,-495.98 643.78,-500.93 652.24,-501.35 650.65,-495.98"/>
660
- <text xml:space="preserve" text-anchor="middle" x="3438.91" y="-252.45" font-family="sans-Serif" font-size="9.00" fill="#cbd5e1">exemplars_for</text>
661
- <text xml:space="preserve" text-anchor="middle" x="3438.91" y="-241.95" font-family="sans-Serif" font-size="9.00" fill="#cbd5e1">(few&#45;shot, local)</text>
657
+ <path fill="none" stroke="#fbbf24" stroke-width="1.3" stroke-dasharray="5,2" d="M1570.85,-52.54C1579.64,-73.44 1597.51,-107.41 1625.34,-122.5 1764.8,-198.1 2894.85,-148.48 3052.34,-167.5 3206.6,-186.13 3247.99,-187.81 3394.34,-240 3397.14,-241 3487.8,-286.46 3489.34,-289 3521.84,-342.32 3526.03,-378.97 3489.34,-429.5 3464.9,-463.17 3441.4,-451.76 3400.34,-458.5 3105.17,-506.95 1004.44,-444.04 708.34,-486.5 690.37,-489.08 671.2,-493.75 653.93,-498.71"/>
658
+ <polygon fill="#fbbf24" stroke="#fbbf24" stroke-width="1.3" points="653.32,-495.97 646.44,-500.93 654.91,-501.34 653.32,-495.97"/>
659
+ <text xml:space="preserve" text-anchor="middle" x="3468.15" y="-252.45" font-family="Helvetica,sans-Serif" font-size="9.00" fill="#cbd5e1">exemplars_for</text>
660
+ <text xml:space="preserve" text-anchor="middle" x="3468.15" y="-241.95" font-family="Helvetica,sans-Serif" font-size="9.00" fill="#cbd5e1">(few&#45;shot, local)</text>
662
661
  </g>
663
662
  <!-- Fmis&#45;&gt;Prompt -->
664
663
  <g id="edge48" class="edge">
665
664
  <title>Fmis&#45;&gt;Prompt</title>
666
- <path fill="none" stroke="#fb7185" stroke-width="2" stroke-dasharray="5,2" d="M1828.37,-52.54C1837.4,-73.44 1855.64,-107.41 1883.68,-122.5 2015.73,-193.59 3084.59,-143.77 3232.68,-167.5 3707.41,-243.57 3546.86,-132.42 3480.68,-261 3358.93,-497.52 3181.36,-445.36 2915.68,-458.5 2631.34,-472.56 636.07,-450.44 353.68,-486.5 336.27,-488.72 317.8,-492.48 300.52,-496.64"/>
667
- <polygon fill="#fb7185" stroke="#fb7185" stroke-width="2" points="299.97,-493.89 292.88,-498.54 301.32,-499.33 299.97,-493.89"/>
668
- <text xml:space="preserve" text-anchor="middle" x="3533.81" y="-252.45" font-family="sans-Serif" font-size="9.00" fill="#cbd5e1">KNOWN MISTAKES</text>
669
- <text xml:space="preserve" text-anchor="middle" x="3533.81" y="-241.95" font-family="sans-Serif" font-size="9.00" fill="#cbd5e1">+ KNOWN FIXES</text>
665
+ <path fill="none" stroke="#fb7185" stroke-width="2" stroke-dasharray="5,2" d="M1834.04,-52.54C1843.07,-73.43 1861.32,-107.39 1889.34,-122.5 2017.45,-191.55 3054.09,-148.29 3198.34,-167.5 4022.7,-277.3 3589.75,-105.74 3507.34,-261 3380.08,-500.79 3200.48,-445.09 2929.34,-458.5 2643.79,-472.62 639.95,-450.29 356.34,-486.5 338.94,-488.72 320.47,-492.48 303.19,-496.64"/>
666
+ <polygon fill="#fb7185" stroke="#fb7185" stroke-width="2" points="302.64,-493.89 295.55,-498.54 303.99,-499.33 302.64,-493.89"/>
667
+ <text xml:space="preserve" text-anchor="middle" x="3561.71" y="-252.45" font-family="Helvetica,sans-Serif" font-size="9.00" fill="#cbd5e1">KNOWN MISTAKES</text>
668
+ <text xml:space="preserve" text-anchor="middle" x="3561.71" y="-241.95" font-family="Helvetica,sans-Serif" font-size="9.00" fill="#cbd5e1">+ KNOWN FIXES</text>
670
669
  </g>
671
670
  <!-- Fmem&#45;&gt;Prompt -->
672
671
  <g id="edge46" class="edge">
673
672
  <title>Fmem&#45;&gt;Prompt</title>
674
- <path fill="none" stroke="#fbbf24" stroke-width="1.3" stroke-dasharray="5,2" d="M1443.98,-52.54C1452.54,-73.44 1470.03,-107.42 1497.68,-122.5 1535.46,-143.11 3003.75,-164.24 3046.68,-167.5 3309.23,-187.46 3460.25,-42.75 3634.68,-240 3640.86,-246.99 3636.38,-251.82 3634.68,-261 3619.98,-339.91 3627.23,-373.55 3569.68,-429.5 3541.96,-456.45 3525.75,-451.79 3487.68,-458.5 3144.72,-518.94 699.15,-442.73 353.68,-486.5 335.94,-488.75 317.1,-492.6 299.54,-496.85"/>
675
- <polygon fill="#fbbf24" stroke="#fbbf24" stroke-width="1.3" points="298.93,-494.12 291.85,-498.77 300.29,-499.55 298.93,-494.12"/>
676
- <text xml:space="preserve" text-anchor="middle" x="3670.09" y="-247.2" font-family="sans-Serif" font-size="9.00" fill="#cbd5e1">MEMORY block</text>
673
+ <path fill="none" stroke="#fbbf24" stroke-width="1.3" stroke-dasharray="5,2" d="M1449.65,-52.54C1458.21,-73.44 1475.69,-107.42 1503.34,-122.5 1541.13,-143.11 3009.42,-164.22 3052.34,-167.5 3313.57,-187.44 3397.32,-134.99 3637.34,-240 3718.04,-275.3 3740.55,-353.91 3695.34,-429.5 3681.36,-452.88 3667.73,-451.74 3641.34,-458.5 3464.54,-503.77 537.41,-463.6 356.34,-486.5 338.61,-488.74 319.77,-492.6 302.21,-496.85"/>
674
+ <polygon fill="#fbbf24" stroke="#fbbf24" stroke-width="1.3" points="301.6,-494.11 294.51,-498.76 302.95,-499.55 301.6,-494.11"/>
675
+ <text xml:space="preserve" text-anchor="middle" x="3704.1" y="-247.2" font-family="Helvetica,sans-Serif" font-size="9.00" fill="#cbd5e1">MEMORY block</text>
677
676
  </g>
678
677
  <!-- Fidx -->
679
678
  <g id="node25" class="node">
680
679
  <title>Fidx</title>
681
- <path fill="#fcd34d" stroke="#334155" stroke-width="1.4" d="M1976.43,-48.73C1976.43,-50.53 1960.4,-52 1940.68,-52 1920.95,-52 1904.93,-50.53 1904.93,-48.73 1904.93,-48.73 1904.93,-19.27 1904.93,-19.27 1904.93,-17.47 1920.95,-16 1940.68,-16 1960.4,-16 1976.43,-17.47 1976.43,-19.27 1976.43,-19.27 1976.43,-48.73 1976.43,-48.73"/>
682
- <path fill="none" stroke="#334155" stroke-width="1.4" d="M1976.43,-48.73C1976.43,-46.92 1960.4,-45.45 1940.68,-45.45 1920.95,-45.45 1904.93,-46.92 1904.93,-48.73"/>
683
- <text xml:space="preserve" text-anchor="middle" x="1940.68" y="-30.3" font-family="sans-Serif" font-size="11.00" fill="#0f172a">memory.idx</text>
680
+ <path fill="#fcd34d" stroke="#334155" stroke-width="1.4" d="M1982.09,-48.73C1982.09,-50.53 1966.07,-52 1946.34,-52 1926.62,-52 1910.59,-50.53 1910.59,-48.73 1910.59,-48.73 1910.59,-19.27 1910.59,-19.27 1910.59,-17.47 1926.62,-16 1946.34,-16 1966.07,-16 1982.09,-17.47 1982.09,-19.27 1982.09,-19.27 1982.09,-48.73 1982.09,-48.73"/>
681
+ <path fill="none" stroke="#334155" stroke-width="1.4" d="M1982.09,-48.73C1982.09,-46.92 1966.07,-45.45 1946.34,-45.45 1926.62,-45.45 1910.59,-46.92 1910.59,-48.73"/>
682
+ <text xml:space="preserve" text-anchor="middle" x="1946.34" y="-30.3" font-family="Helvetica,sans-Serif" font-size="11.00" fill="#0f172a">memory.idx</text>
684
683
  </g>
685
684
  <!-- Fidx&#45;&gt;Prompt -->
686
685
  <g id="edge52" class="edge">
687
686
  <title>Fidx&#45;&gt;Prompt</title>
688
- <path fill="none" stroke="#fbbf24" stroke-width="2" stroke-dasharray="5,2" d="M1946.61,-52.51C1954.73,-73.37 1971.47,-107.3 1998.68,-122.5 2130.29,-196 3204.95,-149.98 3354.68,-167.5 3515.92,-186.37 3609.9,-114.33 3712.68,-240 3770.66,-310.9 3699.09,-367.5 3631.68,-429.5 3605.07,-453.97 3591.2,-451.79 3555.68,-458.5 3206.06,-524.52 706.65,-441.81 353.68,-486.5 336.27,-488.7 317.8,-492.46 300.52,-496.61"/>
689
- <polygon fill="#fbbf24" stroke="#fbbf24" stroke-width="2" points="299.96,-493.87 292.87,-498.51 301.31,-499.3 299.96,-493.87"/>
690
- <text xml:space="preserve" text-anchor="middle" x="3754.07" y="-252.45" font-family="sans-Serif" font-size="9.00" fill="#cbd5e1">MemoryIndex</text>
691
- <text xml:space="preserve" text-anchor="middle" x="3754.07" y="-241.95" font-family="sans-Serif" font-size="9.00" fill="#cbd5e1">cosine top&#45;K</text>
687
+ <path fill="none" stroke="#fbbf24" stroke-width="2" stroke-dasharray="5,2" d="M1952.28,-52.5C1960.4,-73.36 1977.14,-107.29 2004.34,-122.5 2132.83,-194.32 3181.93,-152.39 3328.34,-167.5 3515.9,-186.86 3624.94,-95.73 3746.34,-240 3800.62,-304.5 3778.85,-355.58 3738.34,-429.5 3727.62,-449.07 3718.59,-451.65 3697.34,-458.5 3520.69,-515.48 540.5,-463.22 356.34,-486.5 338.94,-488.7 320.47,-492.45 303.19,-496.61"/>
688
+ <polygon fill="#fbbf24" stroke="#fbbf24" stroke-width="2" points="302.63,-493.86 295.54,-498.51 303.98,-499.3 302.63,-493.86"/>
689
+ <text xml:space="preserve" text-anchor="middle" x="3789.05" y="-252.45" font-family="Helvetica,sans-Serif" font-size="9.00" fill="#cbd5e1">MemoryIndex</text>
690
+ <text xml:space="preserve" text-anchor="middle" x="3789.05" y="-241.95" font-family="Helvetica,sans-Serif" font-size="9.00" fill="#cbd5e1">cosine top&#45;K</text>
692
691
  </g>
693
692
  <!-- Fskl&#45;&gt;Prompt -->
694
693
  <g id="edge47" class="edge">
695
694
  <title>Fskl&#45;&gt;Prompt</title>
696
- <path fill="none" stroke="#fbbf24" stroke-width="1.3" stroke-dasharray="5,2" d="M2085.15,-52.65C2097.54,-73.66 2121.38,-107.74 2152.68,-122.5 2292.94,-188.65 3394.59,-142.71 3547.68,-167.5 3659.35,-185.58 3724.03,-149.33 3791.68,-240 3846.04,-312.86 3782.98,-369.51 3714.68,-429.5 3681.83,-458.35 3663.88,-451.8 3620.68,-458.5 3261.95,-514.15 713.82,-440.94 353.68,-486.5 335.94,-488.74 317.1,-492.6 299.54,-496.85"/>
697
- <polygon fill="#fbbf24" stroke="#fbbf24" stroke-width="1.3" points="298.93,-494.11 291.85,-498.76 300.29,-499.55 298.93,-494.11"/>
698
- <text xml:space="preserve" text-anchor="middle" x="3831.19" y="-247.2" font-family="sans-Serif" font-size="9.00" fill="#cbd5e1">SKILLS block</text>
695
+ <path fill="none" stroke="#fbbf24" stroke-width="1.3" stroke-dasharray="5,2" d="M2090.82,-52.65C2103.21,-73.66 2127.05,-107.74 2158.34,-122.5 2298.4,-188.56 3398.11,-145.12 3551.34,-167.5 3676.42,-185.77 3749.2,-139.88 3826.34,-240 3878.67,-307.91 3838.32,-358.45 3790.34,-429.5 3777.44,-448.6 3769.36,-451.67 3747.34,-458.5 3567.41,-514.32 543.25,-462.88 356.34,-486.5 338.61,-488.74 319.77,-492.59 302.21,-496.84"/>
696
+ <polygon fill="#fbbf24" stroke="#fbbf24" stroke-width="1.3" points="301.6,-494.11 294.51,-498.76 302.95,-499.54 301.6,-494.11"/>
697
+ <text xml:space="preserve" text-anchor="middle" x="3866.72" y="-247.2" font-family="Helvetica,sans-Serif" font-size="9.00" fill="#cbd5e1">SKILLS block</text>
699
698
  </g>
700
699
  <!-- Fext&#45;&gt;Prompt -->
701
700
  <g id="edge49" class="edge">
702
701
  <title>Fext&#45;&gt;Prompt</title>
703
- <path fill="none" stroke="#fbbf24" stroke-width="1.3" stroke-dasharray="5,2" d="M2523.37,-35.75C2692.63,-39.25 3244.55,-58.83 3684.68,-167.5 3770.01,-188.57 3819.21,-167.34 3868.68,-240 3919.47,-314.61 3863.48,-369.93 3795.68,-429.5 3760.59,-460.32 3740.89,-451.8 3694.68,-458.5 3327.28,-511.77 721.98,-439.94 353.68,-486.5 335.94,-488.74 317.1,-492.59 299.54,-496.84"/>
704
- <polygon fill="#fbbf24" stroke="#fbbf24" stroke-width="1.3" points="298.93,-494.11 291.85,-498.76 300.29,-499.54 298.93,-494.11"/>
705
- <text xml:space="preserve" text-anchor="middle" x="3907.46" y="-247.2" font-family="sans-Serif" font-size="9.00" fill="#cbd5e1">EXTRO block</text>
702
+ <path fill="none" stroke="#fbbf24" stroke-width="1.3" stroke-dasharray="5,2" d="M2529.01,-38.07C2775.47,-53.27 3823.16,-124.41 3904.34,-240 3954.54,-311.47 3907.84,-362.07 3852.34,-429.5 3835.03,-450.53 3824.74,-451.75 3798.34,-458.5 3613.08,-505.9 546.07,-462.54 356.34,-486.5 338.61,-488.74 319.77,-492.59 302.21,-496.84"/>
703
+ <polygon fill="#fbbf24" stroke="#fbbf24" stroke-width="1.3" points="301.6,-494.11 294.51,-498.76 302.95,-499.54 301.6,-494.11"/>
704
+ <text xml:space="preserve" text-anchor="middle" x="3943.96" y="-247.2" font-family="Helvetica,sans-Serif" font-size="9.00" fill="#cbd5e1">EXTRO block</text>
706
705
  </g>
707
706
  <!-- Fftn&#45;&gt;LLM -->
708
707
  <g id="edge57" class="edge">
709
708
  <title>Fftn&#45;&gt;LLM</title>
710
- <path fill="none" stroke="#fb7185" stroke-width="2" stroke-dasharray="5,2" d="M2224.93,-52.57C2234.63,-73.5 2254,-107.5 2282.68,-122.5 2420.78,-194.75 3530.61,-143.9 3684.68,-167.5 3803.26,-185.67 3872.13,-144.46 3944.68,-240 3999.06,-311.63 3941.02,-369.89 3873.68,-429.5 3774.72,-517.09 2816.86,-470.57 2685.68,-486.5 2424.15,-518.26 2367.6,-577.12 2106.68,-613.5 2074.59,-617.97 1086.32,-676.64 828.63,-691.9"/>
711
- <polygon fill="#fb7185" stroke="#fb7185" stroke-width="2" points="828.82,-689.08 821,-692.35 829.16,-694.67 828.82,-689.08"/>
712
- <text xml:space="preserve" text-anchor="middle" x="3997.68" y="-329.95" font-family="sans-Serif" font-size="9.00" fill="#cbd5e1">LoRA (weights)</text>
713
- <text xml:space="preserve" text-anchor="middle" x="3997.68" y="-319.45" font-family="sans-Serif" font-size="9.00" fill="#cbd5e1">cron weekly</text>
709
+ <path fill="none" stroke="#fb7185" stroke-width="2" stroke-dasharray="5,2" d="M2230.6,-52.57C2240.3,-73.5 2259.67,-107.5 2288.34,-122.5 2427.74,-195.39 3547.66,-145.01 3703.34,-167.5 3829.72,-185.75 3903.27,-138.96 3981.34,-240 4035.36,-309.91 3981.88,-365.16 3921.34,-429.5 3841.54,-514.33 3516.28,-475.39 3400.34,-486.5 2964.46,-528.25 2859.51,-574.82 2423.34,-613.5 1819.25,-667.08 1665.96,-646.31 1060.34,-678.5 981.45,-682.69 890.52,-688.12 831.82,-691.7"/>
710
+ <polygon fill="#fb7185" stroke="#fb7185" stroke-width="2" points="831.72,-688.9 823.91,-692.18 832.07,-694.49 831.72,-688.9"/>
711
+ <text xml:space="preserve" text-anchor="middle" x="4035.16" y="-329.95" font-family="Helvetica,sans-Serif" font-size="9.00" fill="#cbd5e1">LoRA (weights)</text>
712
+ <text xml:space="preserve" text-anchor="middle" x="4035.16" y="-319.45" font-family="Helvetica,sans-Serif" font-size="9.00" fill="#cbd5e1">cron weekly</text>
714
713
  </g>
715
714
  <!-- Fprf&#45;&gt;LLM -->
716
715
  <g id="edge69" class="edge">
717
716
  <title>Fprf&#45;&gt;LLM</title>
718
- <path fill="none" stroke="#fb7185" stroke-width="2" stroke-dasharray="5,2" d="M1697.85,-52.63C1708.67,-73.61 1729.9,-107.67 1759.68,-122.5 1839.02,-162.02 3266.19,-162.16 3354.68,-167.5 3528.88,-178.02 4019.1,-111.02 4136.68,-240 4142.96,-246.9 4138.04,-251.77 4136.68,-261 4125.22,-338.4 4143.27,-376.54 4085.68,-429.5 4040.18,-471.33 4010.64,-448.38 3949.68,-458.5 2678.02,-669.56 2345.13,-614.52 1057.68,-678.5 978.77,-682.42 887.84,-687.91 829.15,-691.58"/>
719
- <polygon fill="#fb7185" stroke="#fb7185" stroke-width="2" points="829.05,-688.78 821.24,-692.07 829.4,-694.37 829.05,-688.78"/>
720
- <text xml:space="preserve" text-anchor="middle" x="4163.11" y="-329.95" font-family="sans-Serif" font-size="9.00" fill="#cbd5e1">DPO (weights)</text>
721
- <text xml:space="preserve" text-anchor="middle" x="4163.11" y="-319.45" font-family="sans-Serif" font-size="9.00" fill="#cbd5e1">cron weekly</text>
717
+ <path fill="none" stroke="#fb7185" stroke-width="2" stroke-dasharray="5,2" d="M1703.52,-52.63C1714.34,-73.6 1735.57,-107.66 1765.34,-122.5 1843.09,-161.25 3241.63,-162.38 3328.34,-167.5 3689.6,-188.83 3802.62,-107.42 4139.34,-240 4221.93,-272.52 4255.05,-358.09 4202.34,-429.5 3994.39,-711.28 1410.26,-664.16 1060.34,-678.5 981.4,-681.73 890.48,-687.38 831.8,-691.27"/>
718
+ <polygon fill="#fb7185" stroke="#fb7185" stroke-width="2" points="831.69,-688.47 823.89,-691.8 832.06,-694.06 831.69,-688.47"/>
719
+ <text xml:space="preserve" text-anchor="middle" x="4257.41" y="-329.95" font-family="Helvetica,sans-Serif" font-size="9.00" fill="#cbd5e1">DPO (weights)</text>
720
+ <text xml:space="preserve" text-anchor="middle" x="4257.41" y="-319.45" font-family="Helvetica,sans-Serif" font-size="9.00" fill="#cbd5e1">cron weekly</text>
722
721
  </g>
723
722
  </g>
724
723
  </svg>