pwn 0.5.639 → 0.5.643

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.
Files changed (38) hide show
  1. checksums.yaml +4 -4
  2. data/Gemfile +3 -3
  3. data/README.md +1 -1
  4. data/documentation/Cron.md +10 -8
  5. data/documentation/Reinforcement-Learning.md +43 -21
  6. data/documentation/diagrams/cron-scheduling.svg +134 -93
  7. data/documentation/diagrams/dot/cron-scheduling.dot +9 -3
  8. data/documentation/diagrams/dot/pwn-ai-feedback-learning-loop.dot +2 -2
  9. data/documentation/diagrams/dot/reinforcement-learning.dot +9 -3
  10. data/documentation/diagrams/pwn-ai-feedback-learning-loop.svg +103 -101
  11. data/documentation/diagrams/reinforcement-learning.svg +211 -166
  12. data/documentation/pwn-ai-Agent.md +12 -0
  13. data/lib/pwn/ai/agent/curriculum.rb +647 -56
  14. data/lib/pwn/ai/agent/learning.rb +87 -15
  15. data/lib/pwn/ai/agent/loop.rb +164 -13
  16. data/lib/pwn/ai/agent/metrics.rb +32 -13
  17. data/lib/pwn/ai/agent/mistakes.rb +139 -8
  18. data/lib/pwn/ai/agent/prompt_builder.rb +2 -2
  19. data/lib/pwn/ai/agent/registry.rb +13 -3
  20. data/lib/pwn/ai/agent/result.rb +19 -2
  21. data/lib/pwn/ai/agent/reward.rb +415 -42
  22. data/lib/pwn/ai/agent/tools/curriculum.rb +51 -0
  23. data/lib/pwn/ai/agent/tools/reward.rb +15 -4
  24. data/lib/pwn/ai/anthropic.rb +265 -4
  25. data/lib/pwn/ai/ollama.rb +274 -10
  26. data/lib/pwn/ai/open_ai.rb +307 -4
  27. data/lib/pwn/config.rb +137 -12
  28. data/lib/pwn/cron.rb +24 -2
  29. data/lib/pwn/memory.rb +13 -1
  30. data/lib/pwn/version.rb +1 -1
  31. data/spec/integration/persistence_roundtrip_spec.rb +6 -1
  32. data/spec/integration/reinforced_feedback_loop_spec.rb +144 -8
  33. data/spec/lib/pwn/ai/agent/mistakes_spec.rb +27 -0
  34. data/spec/lib/pwn/ai/agent/result_spec.rb +11 -0
  35. data/spec/lib/pwn/ai/agent/reward_spec.rb +89 -0
  36. data/spec/lib/pwn/ai/ollama_spec.rb +251 -0
  37. data/third_party/pwn_rdoc.jsonl +58 -7
  38. metadata +8 -8
@@ -4,13 +4,13 @@
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="4368pt" height="840pt"
8
- viewBox="0.00 0.00 4368.00 840.00" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
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">
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 4324.42,-796.7 4324.42,43.2 -43.2,43.2"/>
12
- <text xml:space="preserve" text-anchor="start" x="1953.86" 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="1842.11" 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 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>
14
14
  <g id="clust2" class="cluster">
15
15
  <title>cluster_core</title>
16
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"/>
@@ -18,8 +18,8 @@
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 2344.68,-289 2344.68,-289 2350.68,-289 2356.68,-295 2356.68,-301 2356.68,-301 2356.68,-417.5 2356.68,-417.5 2356.68,-423.5 2350.68,-429.5 2344.68,-429.5 2344.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="1740.18" 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="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>
23
23
  </g>
24
24
  <g id="clust5" class="cluster">
25
25
  <title>cluster_extro</title>
@@ -133,7 +133,7 @@
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="M1225.17,-685.3C1303.52,-672.75 1419.94,-648.68 1446.68,-613.5 1480.83,-568.56 1461.88,-540.86 1446.68,-486.5 1440.46,-464.3 1413.43,-453.86 1429.68,-437.5 1440.74,-426.35 2545.98,-435.04 2560.68,-429.5 2594.2,-416.86 2624.5,-389.78 2645.73,-366.91"/>
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
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"/>
138
138
  </g>
139
139
  <!-- Observe -->
@@ -146,7 +146,7 @@
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.1,-690.3C1317.23,-681.83 1465.96,-660.96 1488.68,-613.5 1513.04,-562.59 1498.31,-542.12 1488.68,-486.5 1484.88,-464.6 1463,-453.26 1478.68,-437.5 1493.11,-422.98 2934.05,-438.01 2952.68,-429.5 2986.12,-414.22 3011.89,-379.33 3026.66,-354.97"/>
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
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"/>
151
151
  </g>
152
152
  <!-- Verify -->
@@ -160,10 +160,10 @@
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.96,-694.1C1385.86,-690.38 1759.3,-677.99 1803.68,-642.5 1878.21,-582.88 1791.24,-494.66 1867.68,-437.5 1889.88,-420.9 2340.86,-439.62 2366.68,-429.5 2401.98,-415.66 2433.26,-385.19 2453.73,-361.41"/>
164
- <polygon fill="#38bdf8" stroke="#38bdf8" stroke-width="2" points="2455.84,-363.25 2458.83,-355.32 2451.55,-359.66 2455.84,-363.25"/>
165
- <text xml:space="preserve" text-anchor="middle" x="1878.17" y="-520.7" font-family="sans-Serif" font-size="9.00" fill="#cbd5e1">TransparentBrowser</text>
166
- <text xml:space="preserve" text-anchor="middle" x="1878.17" 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="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>
167
167
  </g>
168
168
  <!-- RFTune -->
169
169
  <g id="node19" class="node">
@@ -176,10 +176,10 @@
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.22,-696.03C1352.86,-695.58 1623.08,-688.63 1845.68,-642.5 1884.35,-634.49 1895.61,-633.49 1929.68,-613.5 2030.93,-554.07 2017.24,-480.02 2126.68,-437.5 2161.17,-424.1 2759.44,-445.77 2792.68,-429.5 2821.24,-415.52 2842.81,-385.92 2856.31,-362.45"/>
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
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="2079.77" 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="2079.77" y="-510.2" font-family="sans-Serif" font-size="9.00" fill="#cbd5e1">:7356 + SDR</text>
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>
183
183
  </g>
184
184
  <!-- Router -->
185
185
  <g id="node6" class="node">
@@ -218,17 +218,17 @@
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="M2336.43,-352.25C2336.43,-352.25 2228.93,-352.25 2228.93,-352.25 2222.93,-352.25 2216.93,-346.25 2216.93,-340.25 2216.93,-340.25 2216.93,-315.75 2216.93,-315.75 2216.93,-309.75 2222.93,-303.75 2228.93,-303.75 2228.93,-303.75 2336.43,-303.75 2336.43,-303.75 2342.43,-303.75 2348.43,-309.75 2348.43,-315.75 2348.43,-315.75 2348.43,-340.25 2348.43,-340.25 2348.43,-346.25 2342.43,-352.25 2336.43,-352.25"/>
222
- <text xml:space="preserve" text-anchor="middle" x="2282.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="2282.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="2282.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="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>
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.88,-480.57 2388.82,-488.91 2418.68,-458.5 2425.21,-451.84 2423.84,-445.28 2418.68,-437.5 2413.61,-429.87 2407.47,-434.32 2399.68,-429.5 2367.42,-409.54 2335.03,-380.89 2312.54,-359.29"/>
230
- <polygon fill="#34d399" stroke="#34d399" stroke-width="1.3" points="2314.69,-357.48 2307.01,-353.91 2310.79,-361.5 2314.69,-357.48"/>
231
- <text xml:space="preserve" text-anchor="middle" x="2454.58" 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="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>
232
232
  </g>
233
233
  <!-- Dispatch&#45;&gt;Mistakes -->
234
234
  <g id="edge12" class="edge">
@@ -241,16 +241,17 @@
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="M2161.93,-352.25C2161.93,-352.25 2015.43,-352.25 2015.43,-352.25 2009.43,-352.25 2003.43,-346.25 2003.43,-340.25 2003.43,-340.25 2003.43,-315.75 2003.43,-315.75 2003.43,-309.75 2009.43,-303.75 2015.43,-303.75 2015.43,-303.75 2161.93,-303.75 2161.93,-303.75 2167.93,-303.75 2173.93,-309.75 2173.93,-315.75 2173.93,-315.75 2173.93,-340.25 2173.93,-340.25 2173.93,-346.25 2167.93,-352.25 2161.93,-352.25"/>
245
- <text xml:space="preserve" text-anchor="middle" x="2088.68" y="-337.8" font-family="sans-Serif" font-size="11.00" fill="#0f172a">Curriculum</text>
246
- <text xml:space="preserve" text-anchor="middle" x="2088.68" y="-324.3" font-family="sans-Serif" font-size="11.00" fill="#0f172a">practice · counterfactual</text>
247
- <text xml:space="preserve" text-anchor="middle" x="2088.68" y="-310.8" font-family="sans-Serif" font-size="11.00" fill="#0f172a">critic · hindsight · train_and_gate</text>
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>
248
249
  </g>
249
250
  <!-- Dispatch&#45;&gt;Curric -->
250
251
  <g id="edge61" class="edge">
251
252
  <title>Dispatch&#45;&gt;Curric</title>
252
- <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.07,-427.44 1966.31,-435.65 1981.68,-429.5 2016.33,-415.64 2046.35,-384.75 2065.7,-360.85"/>
253
- <polygon fill="#fb7185" stroke="#fb7185" stroke-width="1.3" points="2067.88,-362.61 2070.63,-354.59 2063.48,-359.15 2067.88,-362.61"/>
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"/>
254
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>
255
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>
256
257
  </g>
@@ -264,10 +265,10 @@
264
265
  <!-- Dispatch&#45;&gt;Observe -->
265
266
  <g id="edge20" class="edge">
266
267
  <title>Dispatch&#45;&gt;Observe</title>
267
- <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.41,-464.89 2123.76,-498.74 2272.68,-458.5 2291.21,-453.49 2291.87,-442.44 2310.43,-437.5 2344.91,-428.32 2920.27,-444.44 2952.68,-429.5 2986.06,-414.11 3011.85,-379.24 3026.64,-354.92"/>
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"/>
268
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"/>
269
- <text xml:space="preserve" text-anchor="middle" x="2359.55" y="-449.95" font-family="sans-Serif" font-size="9.00" fill="#cbd5e1">sense tools</text>
270
- <text xml:space="preserve" text-anchor="middle" x="2359.55" y="-439.45" font-family="sans-Serif" font-size="9.00" fill="#cbd5e1">verify/watch/rf_tune/intel</text>
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>
271
272
  </g>
272
273
  <!-- Plan -->
273
274
  <g id="node7" class="node">
@@ -331,40 +332,41 @@
331
332
  <!-- Reward -->
332
333
  <g id="node14" class="node">
333
334
  <title>Reward</title>
334
- <path fill="#6ee7b7" stroke="#334155" stroke-width="2" d="M1948.3,-352.25C1948.3,-352.25 1831.05,-352.25 1831.05,-352.25 1825.05,-352.25 1819.05,-346.25 1819.05,-340.25 1819.05,-340.25 1819.05,-315.75 1819.05,-315.75 1819.05,-309.75 1825.05,-303.75 1831.05,-303.75 1831.05,-303.75 1948.3,-303.75 1948.3,-303.75 1954.3,-303.75 1960.3,-309.75 1960.3,-315.75 1960.3,-315.75 1960.3,-340.25 1960.3,-340.25 1960.3,-346.25 1954.3,-352.25 1948.3,-352.25"/>
335
- <text xml:space="preserve" text-anchor="middle" x="1889.68" y="-337.8" font-family="sans-Serif" font-size="11.00" fill="#0f172a">Reward</text>
336
- <text xml:space="preserve" text-anchor="middle" x="1889.68" y="-324.3" font-family="sans-Serif" font-size="11.00" fill="#0f172a">judge (ORM) · prm (PRM)</text>
337
- <text xml:space="preserve" text-anchor="middle" x="1889.68" y="-310.8" font-family="sans-Serif" font-size="11.00" fill="#0f172a">sentinel · semantic_ok</text>
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>
338
340
  </g>
339
341
  <!-- Result&#45;&gt;Reward -->
340
342
  <g id="edge59" class="edge">
341
343
  <title>Result&#45;&gt;Reward</title>
342
- <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.79,-437.94 1797.68,-429.5 1828.75,-415.62 1853.96,-385.59 1870.08,-361.95"/>
343
- <polygon fill="#34d399" stroke="#34d399" stroke-width="2" points="1872.29,-363.68 1874.35,-355.46 1867.61,-360.6 1872.29,-363.68"/>
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"/>
344
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>
345
347
  </g>
346
348
  <!-- Result&#45;&gt;Curric -->
347
349
  <g id="edge60" class="edge">
348
350
  <title>Result&#45;&gt;Curric</title>
349
- <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.08,-420.94 1960.05,-438.18 1981.68,-429.5 2016.31,-415.59 2046.33,-384.71 2065.69,-360.82"/>
350
- <polygon fill="#34d399" stroke="#34d399" stroke-width="1.3" points="2067.86,-362.59 2070.62,-354.57 2063.47,-359.12 2067.86,-362.59"/>
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"/>
351
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>
352
354
  </g>
353
355
  <!-- Result&#45;&gt;Observe -->
354
356
  <g id="edge15" class="edge">
355
357
  <title>Result&#45;&gt;Observe</title>
356
- <path fill="none" stroke="#f59e0b" stroke-width="1.3" d="M1189.24,-517.88C1316.03,-517.8 1739.4,-513.16 2083.68,-458.5 2120.72,-452.62 2128.23,-442.39 2165.43,-437.5 2187.11,-434.65 2932.81,-438.63 2952.68,-429.5 2986.08,-414.14 3011.86,-379.27 3026.65,-354.93"/>
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"/>
357
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"/>
358
- <text xml:space="preserve" text-anchor="middle" x="2216.05" y="-449.95" font-family="sans-Serif" font-size="9.00" fill="#cbd5e1">auto_extrospect</text>
359
- <text xml:space="preserve" text-anchor="middle" x="2216.05" y="-439.45" font-family="sans-Serif" font-size="9.00" fill="#cbd5e1">(AUTO_SECTIONS only)</text>
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>
360
362
  </g>
361
363
  <!-- Result&#45;&gt;Verify -->
362
364
  <g id="edge45" class="edge">
363
365
  <title>Result&#45;&gt;Verify</title>
364
- <path fill="none" stroke="#f59e0b" stroke-width="1.3" stroke-dasharray="5,2" d="M1189.14,-516.5C1409.42,-509.11 2526.65,-471.05 2538.68,-458.5 2565.38,-430.63 2537.36,-388.72 2511.33,-360.18"/>
365
- <polygon fill="#f59e0b" stroke="#f59e0b" stroke-width="1.3" points="2513.66,-358.57 2506.14,-354.66 2509.58,-362.41 2513.66,-358.57"/>
366
- <text xml:space="preserve" text-anchor="middle" x="2593.9" y="-449.95" font-family="sans-Serif" font-size="9.00" fill="#cbd5e1">fact_check_local_final</text>
367
- <text xml:space="preserve" text-anchor="middle" x="2593.9" y="-439.45" font-family="sans-Serif" font-size="9.00" fill="#cbd5e1">(CVE / version claims)</text>
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>
368
370
  </g>
369
371
  <!-- Correlate -->
370
372
  <g id="node20" class="node">
@@ -376,8 +378,8 @@
376
378
  <!-- Metrics&#45;&gt;Correlate -->
377
379
  <g id="edge21" class="edge">
378
380
  <title>Metrics&#45;&gt;Correlate</title>
379
- <path fill="none" stroke="#34d399" stroke-width="1.3" d="M2348.98,-304.7C2365.48,-299.36 2383.17,-293.82 2399.68,-289 2505.44,-258.13 2628.52,-226.94 2708.59,-207.26"/>
380
- <polygon fill="#34d399" stroke="#34d399" stroke-width="1.3" points="2709.13,-210.01 2716.23,-205.39 2707.79,-204.57 2709.13,-210.01"/>
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"/>
381
383
  </g>
382
384
  <!-- Fmet -->
383
385
  <g id="node21" class="node">
@@ -389,7 +391,7 @@
389
391
  <!-- Metrics&#45;&gt;Fmet -->
390
392
  <g id="edge29" class="edge">
391
393
  <title>Metrics&#45;&gt;Fmet</title>
392
- <path fill="none" stroke="#94a3b8" stroke-width="1.3" d="M2341.12,-303.14C2421.01,-270.26 2555.2,-213.94 2561.68,-204 2581.99,-172.85 2555.85,-145.18 2521.68,-130.5 2496.51,-119.69 2422.38,-136.23 2398.68,-122.5 2375.4,-109.01 2359.68,-81.98 2350.54,-61.52"/>
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"/>
393
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"/>
394
396
  </g>
395
397
  <!-- ReflectT -->
@@ -505,9 +507,9 @@
505
507
  <!-- ReflectT&#45;&gt;LLM -->
506
508
  <g id="edge44" class="edge">
507
509
  <title>ReflectT&#45;&gt;LLM</title>
508
- <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 1389.08,-507.47 1286.37,-562.85 1206.68,-613.5 1144.55,-652.98 933.08,-679.01 827.98,-689.82"/>
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"/>
509
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"/>
510
- <text xml:space="preserve" text-anchor="middle" x="1391.02" y="-515.45" font-family="sans-Serif" font-size="9.00" fill="#cbd5e1">reflect_engine ≠ active</text>
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>
511
513
  </g>
512
514
  <!-- ReflectT&#45;&gt;Fmem -->
513
515
  <g id="edge43" class="edge">
@@ -519,44 +521,44 @@
519
521
  <!-- Reward&#45;&gt;Mistakes -->
520
522
  <g id="edge64" class="edge">
521
523
  <title>Reward&#45;&gt;Mistakes</title>
522
- <path fill="none" stroke="#fb7185" stroke-width="1.3" stroke-dasharray="5,2" d="M1874.23,-352.84C1858.28,-375.9 1831.05,-408.71 1797.68,-422.83 1711.72,-459.2 1679.31,-440.56 1587.68,-422.83 1529.35,-411.55 1467.15,-385.94 1421.26,-364.17"/>
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"/>
523
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"/>
524
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>
525
527
  </g>
526
528
  <!-- Reward&#45;&gt;Verify -->
527
529
  <g id="edge62" class="edge">
528
530
  <title>Reward&#45;&gt;Verify</title>
529
- <path fill="none" stroke="#fbbf24" stroke-width="1.3" stroke-dasharray="5,2" d="M1905.13,-352.84C1921.08,-375.9 1948.3,-408.71 1981.68,-422.83 2060.47,-456.17 2286.35,-452.27 2366.68,-422.83 2400.63,-410.39 2431.37,-382.59 2452.02,-360.28"/>
530
- <polygon fill="#fbbf24" stroke="#fbbf24" stroke-width="1.3" points="2454.02,-362.24 2457.3,-354.42 2449.86,-358.49 2454.02,-362.24"/>
531
- <text xml:space="preserve" text-anchor="middle" x="2038.68" y="-444.7" font-family="sans-Serif" font-size="9.00" fill="#cbd5e1">verify_as_reward</text>
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>
532
534
  </g>
533
535
  <!-- Reward&#45;&gt;Fprf -->
534
536
  <g id="edge63" class="edge">
535
537
  <title>Reward&#45;&gt;Fprf</title>
536
- <path fill="none" stroke="#94a3b8" stroke-width="1.3" d="M1837.44,-302.76C1824.65,-297.58 1810.85,-292.59 1797.68,-289 1662,-252.07 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"/>
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"/>
537
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"/>
538
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>
539
541
  </g>
540
542
  <!-- Curric&#45;&gt;Fmis -->
541
543
  <g id="edge66" class="edge">
542
544
  <title>Curric&#45;&gt;Fmis</title>
543
- <path fill="none" stroke="#34d399" stroke-width="1.3" stroke-dasharray="5,2" d="M2020.7,-302.84C1938.69,-273.02 1810.07,-223.81 1796.93,-204 1768.03,-160.45 1790.65,-96.76 1807.55,-61.31"/>
544
- <polygon fill="#34d399" stroke="#34d399" stroke-width="1.3" points="1809.99,-62.69 1811.03,-54.27 1804.97,-60.2 1809.99,-62.69"/>
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"/>
545
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>
546
548
  </g>
547
549
  <!-- Curric&#45;&gt;Fftn -->
548
550
  <g id="edge67" class="edge">
549
551
  <title>Curric&#45;&gt;Fftn</title>
550
- <path fill="none" stroke="#94a3b8" stroke-width="1.3" d="M2155.41,-302.82C2249.38,-268.61 2409.8,-209.61 2413.68,-204 2422.9,-190.65 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"/>
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"/>
551
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"/>
552
- <text xml:space="preserve" text-anchor="middle" x="2451.78" y="-182.45" font-family="sans-Serif" font-size="9.00" fill="#cbd5e1">train_and_gate</text>
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>
553
555
  </g>
554
556
  <!-- Curric&#45;&gt;Fprf -->
555
557
  <g id="edge65" class="edge">
556
558
  <title>Curric&#45;&gt;Fprf</title>
557
- <path fill="none" stroke="#94a3b8" stroke-width="1.3" d="M2024.89,-302.85C2010.77,-297.92 1995.8,-293.02 1981.68,-289 1863.02,-255.2 1793.78,-300.9 1717.43,-204 1685.1,-162.98 1684.07,-98.68 1686.61,-62.37"/>
558
- <polygon fill="#94a3b8" stroke="#94a3b8" stroke-width="1.3" points="1689.39,-62.64 1687.27,-54.44 1683.81,-62.18 1689.39,-62.64"/>
559
- <text xml:space="preserve" text-anchor="middle" x="1745.55" y="-182.45" font-family="sans-Serif" font-size="9.00" fill="#cbd5e1">(loser,winner)</text>
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>
560
562
  </g>
561
563
  <!-- Snapshot&#45;&gt;Correlate -->
562
564
  <g id="edge24" class="edge">
@@ -586,9 +588,9 @@
586
588
  <!-- Verify&#45;&gt;Mistakes -->
587
589
  <g id="edge38" class="edge">
588
590
  <title>Verify&#45;&gt;Mistakes</title>
589
- <path fill="none" stroke="#fb7185" stroke-width="1.3" stroke-dasharray="5,2" d="M2458.62,-352.96C2438.28,-376.1 2404.47,-408.98 2366.68,-422.83 2285.41,-452.62 1672.66,-439.27 1587.68,-422.83 1529.35,-411.55 1467.15,-385.94 1421.26,-364.17"/>
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"/>
590
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"/>
591
- <text xml:space="preserve" text-anchor="middle" x="1892.68" y="-444.7" font-family="sans-Serif" font-size="9.00" fill="#cbd5e1">:refuted</text>
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>
592
594
  </g>
593
595
  <!-- Verify&#45;&gt;Correlate -->
594
596
  <g id="edge26" class="edge">
@@ -599,18 +601,18 @@
599
601
  <!-- Verify&#45;&gt;Fmis -->
600
602
  <g id="edge37" class="edge">
601
603
  <title>Verify&#45;&gt;Fmis</title>
602
- <path fill="none" stroke="#fb7185" stroke-width="2" d="M2457.27,-303.02C2439.92,-284.45 2414.24,-258.79 2388.68,-240 2361.75,-220.21 2351.66,-220.63 2322.68,-204 2267.77,-172.5 2261.45,-148.22 2200.68,-130.5 2166.85,-120.64 1914.77,-139.08 1883.68,-122.5 1859.64,-109.69 1842.83,-82.95 1832.84,-62.38"/>
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"/>
603
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"/>
604
- <text xml:space="preserve" text-anchor="middle" x="2363.18" y="-187.7" font-family="sans-Serif" font-size="9.00" fill="#cbd5e1">:refuted →</text>
605
- <text xml:space="preserve" text-anchor="middle" x="2363.18" y="-177.2" font-family="sans-Serif" font-size="9.00" fill="#cbd5e1">assumption mistake</text>
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>
606
608
  </g>
607
609
  <!-- Verify&#45;&gt;Fmem -->
608
610
  <g id="edge39" class="edge">
609
611
  <title>Verify&#45;&gt;Fmem</title>
610
- <path fill="none" stroke="#a78bfa" stroke-width="1.3" stroke-dasharray="5,2" d="M2421.94,-302.76C2365.82,-278.54 2277.66,-239.86 2202.43,-204 2170.13,-188.61 2165.15,-177.07 2130.68,-167.5 1994.79,-129.78 1620.03,-192.61 1497.68,-122.5 1473.98,-108.92 1457.6,-81.71 1448.02,-61.22"/>
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"/>
611
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"/>
612
- <text xml:space="preserve" text-anchor="middle" x="2232.05" y="-187.7" font-family="sans-Serif" font-size="9.00" fill="#cbd5e1">mark stale</text>
613
- <text xml:space="preserve" text-anchor="middle" x="2232.05" y="-177.2" font-family="sans-Serif" font-size="9.00" fill="#cbd5e1">[UNVERIFIED]</text>
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>
614
616
  </g>
615
617
  <!-- Verify&#45;&gt;Fext -->
616
618
  <g id="edge40" class="edge">
@@ -637,7 +639,7 @@
637
639
  <!-- Correlate&#45;&gt;Prompt -->
638
640
  <g id="edge51" class="edge">
639
641
  <title>Correlate&#45;&gt;Prompt</title>
640
- <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.47,-384.02 3125.68,-429.5 3053.05,-506.68 2755.58,-454.63 2649.68,-458.5 2394.72,-467.82 606.73,-454.02 353.68,-486.5 336.27,-488.73 317.81,-492.5 300.53,-496.66"/>
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"/>
641
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"/>
642
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>
643
645
  </g>
@@ -645,7 +647,7 @@
645
647
  <!-- Fmet&#45;&gt;Router -->
646
648
  <g id="edge54" class="edge">
647
649
  <title>Fmet&#45;&gt;Router</title>
648
- <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.26,-321.87 3244.68,-429.5 3145.23,-538.07 3061.73,-451.19 2914.68,-458.5 2649.65,-471.68 789.18,-447.71 526.68,-486.5 508.59,-489.17 489.28,-494.07 472.07,-499.21"/>
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"/>
649
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"/>
650
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>
651
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>
@@ -653,25 +655,25 @@
653
655
  <!-- Flrn&#45;&gt;Plan -->
654
656
  <g id="edge53" class="edge">
655
657
  <title>Flrn&#45;&gt;Plan</title>
656
- <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.19,-148.48 3046.68,-167.5 3200.93,-186.13 3242.32,-187.81 3388.68,-240 3391.47,-241 3482.13,-286.46 3483.68,-289 3516.17,-342.32 3520.27,-378.9 3483.68,-429.5 3459.54,-462.87 3436.3,-451.76 3395.68,-458.5 3100.8,-507.41 1001.55,-444.07 705.68,-486.5 687.7,-489.08 668.53,-493.75 651.26,-498.71"/>
657
- <polygon fill="#fbbf24" stroke="#fbbf24" stroke-width="1.3" points="650.65,-495.97 643.78,-500.93 652.24,-501.34 650.65,-495.97"/>
658
- <text xml:space="preserve" text-anchor="middle" x="3462.48" y="-252.45" font-family="sans-Serif" font-size="9.00" fill="#cbd5e1">exemplars_for</text>
659
- <text xml:space="preserve" text-anchor="middle" x="3462.48" y="-241.95" font-family="sans-Serif" font-size="9.00" fill="#cbd5e1">(few&#45;shot, local)</text>
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>
660
662
  </g>
661
663
  <!-- Fmis&#45;&gt;Prompt -->
662
664
  <g id="edge48" class="edge">
663
665
  <title>Fmis&#45;&gt;Prompt</title>
664
- <path fill="none" stroke="#fb7185" stroke-width="2" stroke-dasharray="5,2" d="M1828.37,-52.54C1837.4,-73.43 1855.65,-107.39 1883.68,-122.5 2011.78,-191.55 3048.42,-148.29 3192.68,-167.5 4037.58,-280.03 3585.44,-105.92 3501.68,-261 3370.86,-503.19 3189.6,-444.94 2914.68,-458.5 2630.45,-472.52 635.96,-450.45 353.68,-486.5 336.27,-488.72 317.8,-492.48 300.52,-496.64"/>
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"/>
665
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"/>
666
- <text xml:space="preserve" text-anchor="middle" x="3556.34" y="-252.45" font-family="sans-Serif" font-size="9.00" fill="#cbd5e1">KNOWN MISTAKES</text>
667
- <text xml:space="preserve" text-anchor="middle" x="3556.34" y="-241.95" font-family="sans-Serif" font-size="9.00" fill="#cbd5e1">+ KNOWN FIXES</text>
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>
668
670
  </g>
669
671
  <!-- Fmem&#45;&gt;Prompt -->
670
672
  <g id="edge46" class="edge">
671
673
  <title>Fmem&#45;&gt;Prompt</title>
672
- <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.22 3046.68,-167.5 3307.9,-187.44 3391.65,-134.99 3631.68,-240 3712.37,-275.3 3733.97,-353.37 3689.68,-429.5 3676.56,-452.04 3663.86,-451.73 3638.68,-458.5 3462.43,-505.91 534.74,-463.6 353.68,-486.5 335.94,-488.74 317.1,-492.6 299.54,-496.85"/>
673
- <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"/>
674
- <text xml:space="preserve" text-anchor="middle" x="3698.38" y="-247.2" font-family="sans-Serif" font-size="9.00" fill="#cbd5e1">MEMORY block</text>
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>
675
677
  </g>
676
678
  <!-- Fidx -->
677
679
  <g id="node25" class="node">
@@ -683,40 +685,40 @@
683
685
  <!-- Fidx&#45;&gt;Prompt -->
684
686
  <g id="edge52" class="edge">
685
687
  <title>Fidx&#45;&gt;Prompt</title>
686
- <path fill="none" stroke="#fbbf24" stroke-width="2" stroke-dasharray="5,2" d="M1946.61,-52.5C1954.73,-73.36 1971.47,-107.29 1998.68,-122.5 2127.16,-194.32 3176.26,-152.39 3322.68,-167.5 3510.23,-186.86 3619.28,-95.73 3740.68,-240 3794.95,-304.5 3772.31,-355.1 3732.68,-429.5 3722.52,-448.56 3714.15,-451.63 3693.68,-458.5 3605.72,-488.03 445.72,-474.86 353.68,-486.5 336.27,-488.7 317.8,-492.45 300.52,-496.61"/>
687
- <polygon fill="#fbbf24" stroke="#fbbf24" stroke-width="2" points="299.96,-493.86 292.87,-498.51 301.31,-499.3 299.96,-493.86"/>
688
- <text xml:space="preserve" text-anchor="middle" x="3783.36" y="-252.45" font-family="sans-Serif" font-size="9.00" fill="#cbd5e1">MemoryIndex</text>
689
- <text xml:space="preserve" text-anchor="middle" x="3783.36" y="-241.95" font-family="sans-Serif" font-size="9.00" fill="#cbd5e1">cosine top&#45;K</text>
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>
690
692
  </g>
691
693
  <!-- Fskl&#45;&gt;Prompt -->
692
694
  <g id="edge47" class="edge">
693
695
  <title>Fskl&#45;&gt;Prompt</title>
694
- <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.74,-188.56 3392.44,-145.12 3545.68,-167.5 3670.75,-185.77 3743.53,-139.88 3820.68,-240 3873,-307.91 3832.26,-358.19 3784.68,-429.5 3772.08,-448.37 3764.3,-451.66 3742.68,-458.5 3563.15,-515.27 540.47,-462.9 353.68,-486.5 335.94,-488.74 317.1,-492.59 299.54,-496.84"/>
695
- <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"/>
696
- <text xml:space="preserve" text-anchor="middle" x="3861.04" y="-247.2" font-family="sans-Serif" font-size="9.00" fill="#cbd5e1">SKILLS block</text>
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>
697
699
  </g>
698
700
  <!-- Fext&#45;&gt;Prompt -->
699
701
  <g id="edge49" class="edge">
700
702
  <title>Fext&#45;&gt;Prompt</title>
701
- <path fill="none" stroke="#fbbf24" stroke-width="1.3" stroke-dasharray="5,2" d="M2523.34,-38.07C2769.8,-53.27 3817.49,-124.41 3898.68,-240 3948.87,-311.47 3902.18,-362.07 3846.68,-429.5 3829.36,-450.53 3819.07,-451.75 3792.68,-458.5 3607.58,-505.86 543.23,-462.56 353.68,-486.5 335.94,-488.74 317.1,-492.59 299.54,-496.84"/>
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"/>
702
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"/>
703
- <text xml:space="preserve" text-anchor="middle" x="3938.29" y="-247.2" font-family="sans-Serif" font-size="9.00" fill="#cbd5e1">EXTRO block</text>
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>
704
706
  </g>
705
707
  <!-- Fftn&#45;&gt;LLM -->
706
708
  <g id="edge57" class="edge">
707
709
  <title>Fftn&#45;&gt;LLM</title>
708
- <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 2422.07,-195.39 3541.99,-145.01 3697.68,-167.5 3824.05,-185.75 3897.61,-138.96 3975.68,-240 4029.69,-309.91 3976.21,-365.16 3915.68,-429.5 3893.16,-453.43 3879.65,-450.93 3847.68,-458.5 3651.82,-504.87 3596.3,-470.32 3395.68,-486.5 2827.17,-532.36 2687.21,-567.99 2118.68,-613.5 1989.2,-623.86 1075.61,-677.49 828.93,-691.92"/>
709
- <polygon fill="#fb7185" stroke="#fb7185" stroke-width="2" points="828.88,-689.12 821.06,-692.38 829.21,-694.71 828.88,-689.12"/>
710
- <text xml:space="preserve" text-anchor="middle" x="4029.5" y="-329.95" font-family="sans-Serif" font-size="9.00" fill="#cbd5e1">LoRA (weights)</text>
711
- <text xml:space="preserve" text-anchor="middle" x="4029.5" y="-319.45" font-family="sans-Serif" font-size="9.00" fill="#cbd5e1">cron weekly</text>
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>
712
714
  </g>
713
715
  <!-- Fprf&#45;&gt;LLM -->
714
716
  <g id="edge69" class="edge">
715
717
  <title>Fprf&#45;&gt;LLM</title>
716
- <path fill="none" stroke="#fb7185" stroke-width="2" stroke-dasharray="5,2" d="M1697.86,-52.63C1708.67,-73.6 1729.9,-107.66 1759.68,-122.5 1837.42,-161.25 3235.96,-162.38 3322.68,-167.5 3683.93,-188.83 3796.96,-107.42 4133.68,-240 4216.26,-272.52 4249.05,-357.84 4196.68,-429.5 3990.23,-711.97 1407.21,-663.2 1057.68,-678.5 978.75,-681.96 887.82,-687.55 829.14,-691.37"/>
717
- <polygon fill="#fb7185" stroke="#fb7185" stroke-width="2" points="829.03,-688.57 821.23,-691.89 829.39,-694.16 829.03,-688.57"/>
718
- <text xml:space="preserve" text-anchor="middle" x="4251.6" y="-329.95" font-family="sans-Serif" font-size="9.00" fill="#cbd5e1">DPO (weights)</text>
719
- <text xml:space="preserve" text-anchor="middle" x="4251.6" y="-319.45" font-family="sans-Serif" font-size="9.00" fill="#cbd5e1">cron weekly</text>
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>
720
722
  </g>
721
723
  </g>
722
724
  </svg>