pwn 0.5.620 → 0.5.621

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 (74) hide show
  1. checksums.yaml +4 -4
  2. data/README.md +1 -1
  3. data/documentation/Agent-Tool-Registry.md +2 -2
  4. data/documentation/Cron.md +13 -0
  5. data/documentation/Diagrams.md +1 -1
  6. data/documentation/Extrospection.md +71 -5
  7. data/documentation/Home.md +2 -2
  8. data/documentation/How-PWN-Works.md +1 -1
  9. data/documentation/Mistakes.md +2 -1
  10. data/documentation/Persistence.md +2 -1
  11. data/documentation/Skills-Memory-Learning.md +1 -0
  12. data/documentation/Transparent-Browser.md +18 -1
  13. data/documentation/diagrams/agent-tool-registry.svg +55 -54
  14. data/documentation/diagrams/ai-integration-tool-calling.svg +24 -24
  15. data/documentation/diagrams/aws-cloud-security.svg +25 -25
  16. data/documentation/diagrams/burp-vs-zap-preference.svg +12 -12
  17. data/documentation/diagrams/code-scanning-sast.svg +25 -25
  18. data/documentation/diagrams/cron-scheduling.svg +23 -23
  19. data/documentation/diagrams/dot/agent-tool-registry.dot +2 -2
  20. data/documentation/diagrams/dot/extrospection-world-awareness.dot +29 -8
  21. data/documentation/diagrams/dot/memory-skills-detailed.dot +4 -0
  22. data/documentation/diagrams/dot/overall-pwn-architecture.dot +2 -2
  23. data/documentation/diagrams/dot/persistence-filesystem.dot +2 -1
  24. data/documentation/diagrams/dot/pwn-ai-feedback-learning-loop.dot +10 -4
  25. data/documentation/diagrams/driver-framework.svg +13 -13
  26. data/documentation/diagrams/extrospection-world-awareness.svg +229 -99
  27. data/documentation/diagrams/fuzzing-workflow.svg +24 -24
  28. data/documentation/diagrams/hardware-hacking.svg +18 -18
  29. data/documentation/diagrams/history-to-drivers.svg +18 -18
  30. data/documentation/diagrams/memory-skills-detailed.svg +124 -101
  31. data/documentation/diagrams/mistakes-negative-feedback.svg +55 -55
  32. data/documentation/diagrams/network-infra-testing.svg +27 -27
  33. data/documentation/diagrams/overall-pwn-architecture.svg +85 -85
  34. data/documentation/diagrams/penetration-testing-workflow.svg +30 -30
  35. data/documentation/diagrams/persistence-filesystem.svg +94 -85
  36. data/documentation/diagrams/plugin-ecosystem.svg +35 -35
  37. data/documentation/diagrams/pwn-ai-feedback-learning-loop.svg +226 -180
  38. data/documentation/diagrams/pwn-repl-prototyping.svg +20 -20
  39. data/documentation/diagrams/reporting-pipeline.svg +18 -18
  40. data/documentation/diagrams/reverse-engineering-flow.svg +21 -21
  41. data/documentation/diagrams/sdr-radio-flow.svg +31 -31
  42. data/documentation/diagrams/sessions-cron-automation.svg +18 -18
  43. data/documentation/diagrams/swarm-multi-agent.svg +39 -39
  44. data/documentation/diagrams/web-application-testing.svg +26 -26
  45. data/documentation/diagrams/zero-day-research-flow.svg +25 -25
  46. data/documentation/pwn-ai-Agent.md +1 -1
  47. data/lib/pwn/ai/agent/extrospection.rb +433 -4
  48. data/lib/pwn/ai/agent/tools/extrospection.rb +88 -3
  49. data/lib/pwn/sdr/decoder/adsb.rb +14 -33
  50. data/lib/pwn/sdr/decoder/apt.rb +97 -36
  51. data/lib/pwn/sdr/decoder/base.rb +258 -171
  52. data/lib/pwn/sdr/decoder/bluetooth.rb +13 -20
  53. data/lib/pwn/sdr/decoder/dect.rb +13 -27
  54. data/lib/pwn/sdr/decoder/dsp.rb +396 -0
  55. data/lib/pwn/sdr/decoder/flex.rb +177 -210
  56. data/lib/pwn/sdr/decoder/gps.rb +12 -21
  57. data/lib/pwn/sdr/decoder/gsm.rb +21 -73
  58. data/lib/pwn/sdr/decoder/iridium.rb +11 -26
  59. data/lib/pwn/sdr/decoder/lora.rb +16 -23
  60. data/lib/pwn/sdr/decoder/lte.rb +11 -32
  61. data/lib/pwn/sdr/decoder/morse.rb +95 -21
  62. data/lib/pwn/sdr/decoder/p25.rb +19 -16
  63. data/lib/pwn/sdr/decoder/pager.rb +22 -38
  64. data/lib/pwn/sdr/decoder/pocsag.rb +175 -68
  65. data/lib/pwn/sdr/decoder/rfid.rb +24 -33
  66. data/lib/pwn/sdr/decoder/rtl433.rb +21 -30
  67. data/lib/pwn/sdr/decoder/rtty.rb +100 -27
  68. data/lib/pwn/sdr/decoder/wifi.rb +21 -42
  69. data/lib/pwn/sdr/decoder/zigbee.rb +18 -40
  70. data/lib/pwn/sdr/decoder.rb +8 -0
  71. data/lib/pwn/version.rb +1 -1
  72. data/spec/lib/pwn/sdr/decoder/dsp_spec.rb +15 -0
  73. data/third_party/pwn_rdoc.jsonl +24 -3
  74. metadata +3 -1
@@ -4,371 +4,417 @@
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="1658pt" height="723pt"
8
- viewBox="0.00 0.00 1658.00 723.00" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
7
+ <svg width="1891pt" height="723pt"
8
+ viewBox="0.00 0.00 1891.00 723.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 679.95)">
10
10
  <title>PWN_AI_Feedback_Learning_Loop</title>
11
- <polygon fill="#0f172a" stroke="none" points="-43.2,43.2 -43.2,-679.95 1614.99,-679.95 1614.99,43.2 -43.2,43.2"/>
12
- <text xml:space="preserve" text-anchor="start" x="592.4" y="-614.75" font-family="sans-Serif" font-weight="bold" font-size="20.00" fill="#e2e8f0">pwn&#45;ai — Closed Self&#45;Improvement Loop</text>
13
- <text xml:space="preserve" text-anchor="start" x="599.52" y="-603.3" font-family="sans-Serif" font-size="11.00" fill="#94a3b8">Introspection (self) &#160;⟷ &#160;Extrospection (world) &#160;· &#160;Mistakes (negative feedback)</text>
11
+ <polygon fill="#0f172a" stroke="none" points="-43.2,43.2 -43.2,-679.95 1847.84,-679.95 1847.84,43.2 -43.2,43.2"/>
12
+ <text xml:space="preserve" text-anchor="start" x="708.82" y="-614.75" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="20.00" fill="#e2e8f0">pwn&#45;ai — Closed Self&#45;Improvement Loop</text>
13
+ <text xml:space="preserve" text-anchor="start" x="715.94" y="-603.3" font-family="Helvetica,sans-Serif" font-size="11.00" fill="#94a3b8">Introspection (self) &#160;⟷ &#160;Extrospection (world) &#160;· &#160;Mistakes (negative feedback)</text>
14
14
  <g id="clust2" class="cluster">
15
15
  <title>cluster_core</title>
16
- <path fill="#2e1065" stroke="#6d28d9" stroke-width="2" d="M131.59,-424C131.59,-424 468.59,-424 468.59,-424 474.59,-424 480.59,-430 480.59,-436 480.59,-436 480.59,-495.25 480.59,-495.25 480.59,-501.25 474.59,-507.25 468.59,-507.25 468.59,-507.25 131.59,-507.25 131.59,-507.25 125.59,-507.25 119.59,-501.25 119.59,-495.25 119.59,-495.25 119.59,-436 119.59,-436 119.59,-430 125.59,-424 131.59,-424"/>
17
- <text xml:space="preserve" text-anchor="middle" x="300.09" y="-484.25" 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="M376.77,-424C376.77,-424 713.77,-424 713.77,-424 719.77,-424 725.77,-430 725.77,-436 725.77,-436 725.77,-495.25 725.77,-495.25 725.77,-501.25 719.77,-507.25 713.77,-507.25 713.77,-507.25 376.77,-507.25 376.77,-507.25 370.77,-507.25 364.77,-501.25 364.77,-495.25 364.77,-495.25 364.77,-436 364.77,-436 364.77,-430 370.77,-424 376.77,-424"/>
17
+ <text xml:space="preserve" text-anchor="middle" x="545.27" y="-484.25" 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="M416.59,-257.75C416.59,-257.75 928.59,-257.75 928.59,-257.75 934.59,-257.75 940.59,-263.75 940.59,-269.75 940.59,-269.75 940.59,-355 940.59,-355 940.59,-361 934.59,-367 928.59,-367 928.59,-367 416.59,-367 416.59,-367 410.59,-367 404.59,-361 404.59,-355 404.59,-355 404.59,-269.75 404.59,-269.75 404.59,-263.75 410.59,-257.75 416.59,-257.75"/>
22
- <text xml:space="preserve" text-anchor="middle" x="672.59" y="-344" font-family="sans-Serif" font-size="20.00" fill="#a7f3d0">INTROSPECTION &#160;(self)</text>
21
+ <path fill="#022c22" stroke="#047857" stroke-width="2" d="M666.77,-257.75C666.77,-257.75 1178.77,-257.75 1178.77,-257.75 1184.77,-257.75 1190.77,-263.75 1190.77,-269.75 1190.77,-269.75 1190.77,-355 1190.77,-355 1190.77,-361 1184.77,-367 1178.77,-367 1178.77,-367 666.77,-367 666.77,-367 660.77,-367 654.77,-361 654.77,-355 654.77,-355 654.77,-269.75 654.77,-269.75 654.77,-263.75 660.77,-257.75 666.77,-257.75"/>
22
+ <text xml:space="preserve" text-anchor="middle" x="922.77" y="-344" 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="M106.59,-264.5C106.59,-264.5 365.59,-264.5 365.59,-264.5 371.59,-264.5 377.59,-270.5 377.59,-276.5 377.59,-276.5 377.59,-348.25 377.59,-348.25 377.59,-354.25 371.59,-360.25 365.59,-360.25 365.59,-360.25 106.59,-360.25 106.59,-360.25 100.59,-360.25 94.59,-354.25 94.59,-348.25 94.59,-348.25 94.59,-276.5 94.59,-276.5 94.59,-270.5 100.59,-264.5 106.59,-264.5"/>
27
- <text xml:space="preserve" text-anchor="middle" x="236.09" y="-337.25" font-family="sans-Serif" font-size="20.00" fill="#fde68a">EXTROSPECTION &#160;(world)</text>
26
+ <path fill="#422006" stroke="#a16207" stroke-width="2" d="M182.77,-264.5C182.77,-264.5 615.77,-264.5 615.77,-264.5 621.77,-264.5 627.77,-270.5 627.77,-276.5 627.77,-276.5 627.77,-348.25 627.77,-348.25 627.77,-354.25 621.77,-360.25 615.77,-360.25 615.77,-360.25 182.77,-360.25 182.77,-360.25 176.77,-360.25 170.77,-354.25 170.77,-348.25 170.77,-348.25 170.77,-276.5 170.77,-276.5 170.77,-270.5 176.77,-264.5 182.77,-264.5"/>
27
+ <text xml:space="preserve" text-anchor="middle" x="399.27" y="-337.25" 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="M318.59,-8C318.59,-8 1002.59,-8 1002.59,-8 1008.59,-8 1014.59,-14 1014.59,-20 1014.59,-20 1014.59,-79.25 1014.59,-79.25 1014.59,-85.25 1008.59,-91.25 1002.59,-91.25 1002.59,-91.25 318.59,-91.25 318.59,-91.25 312.59,-91.25 306.59,-85.25 306.59,-79.25 306.59,-79.25 306.59,-20 306.59,-20 306.59,-14 312.59,-8 318.59,-8"/>
32
- <text xml:space="preserve" text-anchor="middle" x="660.59" y="-68.25" font-family="sans-Serif" font-size="20.00" fill="#94a3b8">~/.pwn/</text>
31
+ <path fill="#1e293b" stroke="#334155" stroke-dasharray="5,2" d="M326.77,-8C326.77,-8 1011.77,-8 1011.77,-8 1017.77,-8 1023.77,-14 1023.77,-20 1023.77,-20 1023.77,-79.25 1023.77,-79.25 1023.77,-85.25 1017.77,-91.25 1011.77,-91.25 1011.77,-91.25 326.77,-91.25 326.77,-91.25 320.77,-91.25 314.77,-85.25 314.77,-79.25 314.77,-79.25 314.77,-20 314.77,-20 314.77,-14 320.77,-8 326.77,-8"/>
32
+ <text xml:space="preserve" text-anchor="middle" x="669.27" y="-68.25" 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="M329.47,-597.75C329.47,-597.75 261.72,-597.75 261.72,-597.75 255.72,-597.75 249.72,-591.75 249.72,-585.75 249.72,-585.75 249.72,-573.75 249.72,-573.75 249.72,-567.75 255.72,-561.75 261.72,-561.75 261.72,-561.75 329.47,-561.75 329.47,-561.75 335.47,-561.75 341.47,-567.75 341.47,-573.75 341.47,-573.75 341.47,-585.75 341.47,-585.75 341.47,-591.75 335.47,-597.75 329.47,-597.75"/>
38
- <text xml:space="preserve" text-anchor="middle" x="295.59" y="-576.05" font-family="sans-Serif" font-size="11.00" fill="#0f172a">👤 &#160;Researcher</text>
37
+ <path fill="#7dd3fc" stroke="#334155" stroke-width="1.4" d="M574.64,-597.75C574.64,-597.75 506.89,-597.75 506.89,-597.75 500.89,-597.75 494.89,-591.75 494.89,-585.75 494.89,-585.75 494.89,-573.75 494.89,-573.75 494.89,-567.75 500.89,-561.75 506.89,-561.75 506.89,-561.75 574.64,-561.75 574.64,-561.75 580.64,-561.75 586.64,-567.75 586.64,-573.75 586.64,-573.75 586.64,-585.75 586.64,-585.75 586.64,-591.75 580.64,-597.75 574.64,-597.75"/>
38
+ <text xml:space="preserve" text-anchor="middle" x="540.77" y="-576.05" 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="M317.09,-468C317.09,-468 256.09,-468 256.09,-468 250.09,-468 244.09,-462 244.09,-456 244.09,-456 244.09,-444 244.09,-444 244.09,-438 250.09,-432 256.09,-432 256.09,-432 317.09,-432 317.09,-432 323.09,-432 329.09,-438 329.09,-444 329.09,-444 329.09,-456 329.09,-456 329.09,-462 323.09,-468 317.09,-468"/>
44
- <text xml:space="preserve" text-anchor="middle" x="286.59" y="-453.05" font-family="sans-Serif" font-size="11.00" fill="#0f172a">PromptBuilder</text>
45
- <text xml:space="preserve" text-anchor="middle" x="286.59" y="-439.55" font-family="sans-Serif" font-size="11.00" fill="#0f172a">inject context</text>
43
+ <path fill="#c4b5fd" stroke="#334155" stroke-width="1.4" d="M562.27,-468C562.27,-468 501.27,-468 501.27,-468 495.27,-468 489.27,-462 489.27,-456 489.27,-456 489.27,-444 489.27,-444 489.27,-438 495.27,-432 501.27,-432 501.27,-432 562.27,-432 562.27,-432 568.27,-432 574.27,-438 574.27,-444 574.27,-444 574.27,-456 574.27,-456 574.27,-462 568.27,-468 562.27,-468"/>
44
+ <text xml:space="preserve" text-anchor="middle" x="531.77" y="-453.05" font-family="Helvetica,sans-Serif" font-size="11.00" fill="#0f172a">PromptBuilder</text>
45
+ <text xml:space="preserve" text-anchor="middle" x="531.77" y="-439.55" font-family="Helvetica,sans-Serif" font-size="11.00" fill="#0f172a">inject context</text>
46
46
  </g>
47
47
  <!-- User&#45;&gt;Prompt -->
48
48
  <g id="edge1" class="edge">
49
49
  <title>User&#45;&gt;Prompt</title>
50
- <path fill="none" stroke="#38bdf8" stroke-width="2" d="M294.36,-561.25C292.87,-540.16 290.36,-504.42 288.59,-479.36"/>
51
- <polygon fill="#38bdf8" stroke="#38bdf8" stroke-width="2" points="291.41,-479.5 288.05,-471.71 285.82,-479.89 291.41,-479.5"/>
52
- <text xml:space="preserve" text-anchor="middle" x="299.88" y="-517.2" font-family="sans-Serif" font-size="9.00" fill="#cbd5e1">task</text>
50
+ <path fill="none" stroke="#38bdf8" stroke-width="2" d="M539.54,-561.25C538.05,-540.16 535.53,-504.42 533.77,-479.36"/>
51
+ <polygon fill="#38bdf8" stroke="#38bdf8" stroke-width="2" points="536.58,-479.5 533.23,-471.71 531,-479.89 536.58,-479.5"/>
52
+ <text xml:space="preserve" text-anchor="middle" x="545.06" y="-517.2" font-family="Helvetica,sans-Serif" font-size="9.00" fill="#cbd5e1">task</text>
53
53
  </g>
54
54
  <!-- Mistakes -->
55
55
  <g id="node9" class="node">
56
56
  <title>Mistakes</title>
57
- <path fill="#6ee7b7" stroke="#334155" stroke-width="2" d="M751.84,-327.75C751.84,-327.75 605.34,-327.75 605.34,-327.75 599.34,-327.75 593.34,-321.75 593.34,-315.75 593.34,-315.75 593.34,-277.75 593.34,-277.75 593.34,-271.75 599.34,-265.75 605.34,-265.75 605.34,-265.75 751.84,-265.75 751.84,-265.75 757.84,-265.75 763.84,-271.75 763.84,-277.75 763.84,-277.75 763.84,-315.75 763.84,-315.75 763.84,-321.75 757.84,-327.75 751.84,-327.75"/>
58
- <text xml:space="preserve" text-anchor="middle" x="678.59" y="-313.3" font-family="sans-Serif" font-size="11.00" fill="#0f172a">Mistakes</text>
59
- <text xml:space="preserve" text-anchor="middle" x="678.59" y="-299.8" font-family="sans-Serif" font-size="11.00" fill="#0f172a">record · resolve</text>
60
- <text xml:space="preserve" text-anchor="middle" x="678.59" y="-286.3" font-family="sans-Serif" font-size="11.00" fill="#0f172a">guard · correction_hint</text>
61
- <text xml:space="preserve" text-anchor="middle" x="678.59" y="-272.8" font-family="sans-Serif" font-size="11.00" fill="#0f172a">[REPEATING] · [REGRESSED]</text>
57
+ <path fill="#6ee7b7" stroke="#334155" stroke-width="2" d="M1002.02,-327.75C1002.02,-327.75 855.52,-327.75 855.52,-327.75 849.52,-327.75 843.52,-321.75 843.52,-315.75 843.52,-315.75 843.52,-277.75 843.52,-277.75 843.52,-271.75 849.52,-265.75 855.52,-265.75 855.52,-265.75 1002.02,-265.75 1002.02,-265.75 1008.02,-265.75 1014.02,-271.75 1014.02,-277.75 1014.02,-277.75 1014.02,-315.75 1014.02,-315.75 1014.02,-321.75 1008.02,-327.75 1002.02,-327.75"/>
58
+ <text xml:space="preserve" text-anchor="middle" x="928.77" y="-313.3" font-family="Helvetica,sans-Serif" font-size="11.00" fill="#0f172a">Mistakes</text>
59
+ <text xml:space="preserve" text-anchor="middle" x="928.77" y="-299.8" font-family="Helvetica,sans-Serif" font-size="11.00" fill="#0f172a">record · resolve</text>
60
+ <text xml:space="preserve" text-anchor="middle" x="928.77" y="-286.3" font-family="Helvetica,sans-Serif" font-size="11.00" fill="#0f172a">guard · correction_hint</text>
61
+ <text xml:space="preserve" text-anchor="middle" x="928.77" y="-272.8" font-family="Helvetica,sans-Serif" font-size="11.00" fill="#0f172a">[REPEATING] · [REGRESSED]</text>
62
62
  </g>
63
63
  <!-- User&#45;&gt;Mistakes -->
64
64
  <g id="edge9" class="edge">
65
65
  <title>User&#45;&gt;Mistakes</title>
66
- <path fill="none" stroke="#fb7185" stroke-width="1.3" stroke-dasharray="5,2" d="M249.08,-567.02C169.94,-547.04 17.5,-508.42 16.59,-507.25 -6.09,-478.02 -4.75,-454.22 16.59,-424 54.13,-370.83 90.56,-386.66 154.59,-375 200.19,-366.7 527.28,-380.55 571.59,-367 594,-360.15 616.17,-347.12 634.47,-334.19"/>
67
- <polygon fill="#fb7185" stroke="#fb7185" stroke-width="1.3" points="635.65,-336.8 640.48,-329.84 632.36,-332.27 635.65,-336.8"/>
68
- <text xml:space="preserve" text-anchor="middle" x="63.09" y="-451.95" font-family="sans-Serif" font-size="9.00" fill="#cbd5e1">&quot;that&#39;s wrong&quot;</text>
69
- <text xml:space="preserve" text-anchor="middle" x="63.09" y="-441.45" font-family="sans-Serif" font-size="9.00" fill="#cbd5e1">check_user_correction</text>
66
+ <path fill="none" stroke="#fb7185" stroke-width="1.3" stroke-dasharray="5,2" d="M494.25,-567.02C415.12,-547.04 262.68,-508.42 261.77,-507.25 239.08,-478.02 240.43,-454.22 261.77,-424 299.31,-370.83 335.74,-386.66 399.77,-375 445.91,-366.6 776.92,-380.71 821.77,-367 844.17,-360.15 866.35,-347.12 884.65,-334.2"/>
67
+ <polygon fill="#fb7185" stroke="#fb7185" stroke-width="1.3" points="885.82,-336.8 890.65,-329.84 882.53,-332.27 885.82,-336.8"/>
68
+ <text xml:space="preserve" text-anchor="middle" x="308.27" y="-451.95" font-family="Helvetica,sans-Serif" font-size="9.00" fill="#cbd5e1">&quot;that&#39;s wrong&quot;</text>
69
+ <text xml:space="preserve" text-anchor="middle" x="308.27" y="-441.45" font-family="Helvetica,sans-Serif" font-size="9.00" fill="#cbd5e1">check_user_correction</text>
70
70
  </g>
71
71
  <!-- LLM -->
72
72
  <g id="node2" class="node">
73
73
  <title>LLM</title>
74
- <path fill="#c4b5fd" stroke="#334155" stroke-width="1.4" d="M481.59,-597.75C481.59,-597.75 405.59,-597.75 405.59,-597.75 399.59,-597.75 393.59,-591.75 393.59,-585.75 393.59,-585.75 393.59,-573.75 393.59,-573.75 393.59,-567.75 399.59,-561.75 405.59,-561.75 405.59,-561.75 481.59,-561.75 481.59,-561.75 487.59,-561.75 493.59,-567.75 493.59,-573.75 493.59,-573.75 493.59,-585.75 493.59,-585.75 493.59,-591.75 487.59,-597.75 481.59,-597.75"/>
75
- <text xml:space="preserve" text-anchor="middle" x="443.59" y="-576.05" font-family="sans-Serif" font-size="11.00" fill="#0f172a">🤖 &#160;LLM Provider</text>
74
+ <path fill="#c4b5fd" stroke="#334155" stroke-width="1.4" d="M726.77,-597.75C726.77,-597.75 650.77,-597.75 650.77,-597.75 644.77,-597.75 638.77,-591.75 638.77,-585.75 638.77,-585.75 638.77,-573.75 638.77,-573.75 638.77,-567.75 644.77,-561.75 650.77,-561.75 650.77,-561.75 726.77,-561.75 726.77,-561.75 732.77,-561.75 738.77,-567.75 738.77,-573.75 738.77,-573.75 738.77,-585.75 738.77,-585.75 738.77,-591.75 732.77,-597.75 726.77,-597.75"/>
75
+ <text xml:space="preserve" text-anchor="middle" x="688.77" y="-576.05" font-family="Helvetica,sans-Serif" font-size="11.00" fill="#0f172a">🤖 &#160;LLM Provider</text>
76
76
  </g>
77
77
  <!-- Dispatch -->
78
78
  <g id="node5" class="node">
79
79
  <title>Dispatch</title>
80
- <path fill="#c4b5fd" stroke="#334155" stroke-width="1.4" d="M460.59,-468C460.59,-468 426.59,-468 426.59,-468 420.59,-468 414.59,-462 414.59,-456 414.59,-456 414.59,-444 414.59,-444 414.59,-438 420.59,-432 426.59,-432 426.59,-432 460.59,-432 460.59,-432 466.59,-432 472.59,-438 472.59,-444 472.59,-444 472.59,-456 472.59,-456 472.59,-462 466.59,-468 460.59,-468"/>
81
- <text xml:space="preserve" text-anchor="middle" x="443.59" y="-453.05" font-family="sans-Serif" font-size="11.00" fill="#0f172a">Dispatch</text>
82
- <text xml:space="preserve" text-anchor="middle" x="443.59" y="-439.55" font-family="sans-Serif" font-size="11.00" fill="#0f172a">tool calls</text>
80
+ <path fill="#c4b5fd" stroke="#334155" stroke-width="1.4" d="M705.77,-468C705.77,-468 671.77,-468 671.77,-468 665.77,-468 659.77,-462 659.77,-456 659.77,-456 659.77,-444 659.77,-444 659.77,-438 665.77,-432 671.77,-432 671.77,-432 705.77,-432 705.77,-432 711.77,-432 717.77,-438 717.77,-444 717.77,-444 717.77,-456 717.77,-456 717.77,-462 711.77,-468 705.77,-468"/>
81
+ <text xml:space="preserve" text-anchor="middle" x="688.77" y="-453.05" font-family="Helvetica,sans-Serif" font-size="11.00" fill="#0f172a">Dispatch</text>
82
+ <text xml:space="preserve" text-anchor="middle" x="688.77" y="-439.55" font-family="Helvetica,sans-Serif" font-size="11.00" fill="#0f172a">tool calls</text>
83
83
  </g>
84
84
  <!-- LLM&#45;&gt;Dispatch -->
85
85
  <g id="edge2" class="edge">
86
86
  <title>LLM&#45;&gt;Dispatch</title>
87
- <path fill="none" stroke="#a78bfa" stroke-width="2" d="M440.4,-550.18C439.65,-542.28 438.97,-533.69 438.59,-525.75 437.87,-510.42 438.88,-493.35 440.17,-479.39"/>
88
- <polygon fill="#a78bfa" stroke="#a78bfa" stroke-width="2" points="437.61,-550.42 441.21,-558.1 443.18,-549.86 437.61,-550.42"/>
89
- <polygon fill="#a78bfa" stroke="#a78bfa" stroke-width="2" points="442.95,-479.77 440.98,-471.52 437.38,-479.19 442.95,-479.77"/>
90
- <text xml:space="preserve" text-anchor="middle" x="458.09" y="-517.2" font-family="sans-Serif" font-size="9.00" fill="#cbd5e1">tool_calls</text>
87
+ <path fill="none" stroke="#a78bfa" stroke-width="2" d="M688.77,-550.28C688.77,-529.21 688.77,-500.63 688.77,-479.54"/>
88
+ <polygon fill="#a78bfa" stroke="#a78bfa" stroke-width="2" points="685.97,-550.23 688.77,-558.23 691.57,-550.23 685.97,-550.23"/>
89
+ <polygon fill="#a78bfa" stroke="#a78bfa" stroke-width="2" points="691.57,-479.72 688.77,-471.72 685.97,-479.72 691.57,-479.72"/>
90
+ <text xml:space="preserve" text-anchor="middle" x="708.27" y="-517.2" font-family="Helvetica,sans-Serif" font-size="9.00" fill="#cbd5e1">tool_calls</text>
91
91
  </g>
92
92
  <!-- World -->
93
93
  <g id="node3" class="node">
94
94
  <title>World</title>
95
- <path fill="#fda4af" stroke="#334155" stroke-width="1.4" d="M194.34,-597.75C194.34,-597.75 98.84,-597.75 98.84,-597.75 92.84,-597.75 86.84,-591.75 86.84,-585.75 86.84,-585.75 86.84,-573.75 86.84,-573.75 86.84,-567.75 92.84,-561.75 98.84,-561.75 98.84,-561.75 194.34,-561.75 194.34,-561.75 200.34,-561.75 206.34,-567.75 206.34,-573.75 206.34,-573.75 206.34,-585.75 206.34,-585.75 206.34,-591.75 200.34,-597.75 194.34,-597.75"/>
96
- <text xml:space="preserve" text-anchor="middle" x="146.59" y="-582.8" font-family="sans-Serif" font-size="11.00" fill="#0f172a">🌍 &#160;Host · Net · Repo</text>
97
- <text xml:space="preserve" text-anchor="middle" x="146.59" y="-569.3" font-family="sans-Serif" font-size="11.00" fill="#0f172a">Toolchain · RF · Intel</text>
95
+ <path fill="#fda4af" stroke="#334155" stroke-width="1.4" d="M439.64,-597.75C439.64,-597.75 317.89,-597.75 317.89,-597.75 311.89,-597.75 305.89,-591.75 305.89,-585.75 305.89,-585.75 305.89,-573.75 305.89,-573.75 305.89,-567.75 311.89,-561.75 317.89,-561.75 317.89,-561.75 439.64,-561.75 439.64,-561.75 445.64,-561.75 451.64,-567.75 451.64,-573.75 451.64,-573.75 451.64,-585.75 451.64,-585.75 451.64,-591.75 445.64,-597.75 439.64,-597.75"/>
96
+ <text xml:space="preserve" text-anchor="middle" x="378.77" y="-582.8" font-family="Helvetica,sans-Serif" font-size="11.00" fill="#0f172a">🌍 &#160;Host · Net · Repo</text>
97
+ <text xml:space="preserve" text-anchor="middle" x="378.77" y="-569.3" font-family="Helvetica,sans-Serif" font-size="11.00" fill="#0f172a">Toolchain · RF · Web · Intel</text>
98
98
  </g>
99
99
  <!-- Result -->
100
100
  <g id="node6" class="node">
101
101
  <title>Result</title>
102
- <path fill="#c4b5fd" stroke="#334155" stroke-width="1.4" d="M189.47,-468C189.47,-468 139.72,-468 139.72,-468 133.72,-468 127.72,-462 127.72,-456 127.72,-456 127.72,-444 127.72,-444 127.72,-438 133.72,-432 139.72,-432 139.72,-432 189.47,-432 189.47,-432 195.47,-432 201.47,-438 201.47,-444 201.47,-444 201.47,-456 201.47,-456 201.47,-462 195.47,-468 189.47,-468"/>
103
- <text xml:space="preserve" text-anchor="middle" x="164.59" y="-453.05" font-family="sans-Serif" font-size="11.00" fill="#0f172a">Result</text>
104
- <text xml:space="preserve" text-anchor="middle" x="164.59" y="-439.55" font-family="sans-Serif" font-size="11.00" fill="#0f172a">final answer</text>
102
+ <path fill="#c4b5fd" stroke="#334155" stroke-width="1.4" d="M434.64,-468C434.64,-468 384.89,-468 384.89,-468 378.89,-468 372.89,-462 372.89,-456 372.89,-456 372.89,-444 372.89,-444 372.89,-438 378.89,-432 384.89,-432 384.89,-432 434.64,-432 434.64,-432 440.64,-432 446.64,-438 446.64,-444 446.64,-444 446.64,-456 446.64,-456 446.64,-462 440.64,-468 434.64,-468"/>
103
+ <text xml:space="preserve" text-anchor="middle" x="409.77" y="-453.05" font-family="Helvetica,sans-Serif" font-size="11.00" fill="#0f172a">Result</text>
104
+ <text xml:space="preserve" text-anchor="middle" x="409.77" y="-439.55" font-family="Helvetica,sans-Serif" font-size="11.00" fill="#0f172a">final answer</text>
105
105
  </g>
106
106
  <!-- World&#45;&gt;Result -->
107
107
  <!-- Snapshot -->
108
108
  <g id="node10" class="node">
109
109
  <title>Snapshot</title>
110
- <path fill="#fcd34d" stroke="#334155" stroke-width="1.4" d="M357.59,-321C357.59,-321 281.59,-321 281.59,-321 275.59,-321 269.59,-315 269.59,-309 269.59,-309 269.59,-284.5 269.59,-284.5 269.59,-278.5 275.59,-272.5 281.59,-272.5 281.59,-272.5 357.59,-272.5 357.59,-272.5 363.59,-272.5 369.59,-278.5 369.59,-284.5 369.59,-284.5 369.59,-309 369.59,-309 369.59,-315 363.59,-321 357.59,-321"/>
111
- <text xml:space="preserve" text-anchor="middle" x="319.59" y="-306.55" font-family="sans-Serif" font-size="11.00" fill="#0f172a">snapshot · drift</text>
112
- <text xml:space="preserve" text-anchor="middle" x="319.59" y="-293.05" font-family="sans-Serif" font-size="11.00" fill="#0f172a">host/net/toolchain</text>
113
- <text xml:space="preserve" text-anchor="middle" x="319.59" y="-279.55" font-family="sans-Serif" font-size="11.00" fill="#0f172a">repo/env/rf</text>
110
+ <path fill="#fcd34d" stroke="#334155" stroke-width="1.4" d="M607.77,-321C607.77,-321 531.77,-321 531.77,-321 525.77,-321 519.77,-315 519.77,-309 519.77,-309 519.77,-284.5 519.77,-284.5 519.77,-278.5 525.77,-272.5 531.77,-272.5 531.77,-272.5 607.77,-272.5 607.77,-272.5 613.77,-272.5 619.77,-278.5 619.77,-284.5 619.77,-284.5 619.77,-309 619.77,-309 619.77,-315 613.77,-321 607.77,-321"/>
111
+ <text xml:space="preserve" text-anchor="middle" x="569.77" y="-306.55" font-family="Helvetica,sans-Serif" font-size="11.00" fill="#0f172a">snapshot · drift</text>
112
+ <text xml:space="preserve" text-anchor="middle" x="569.77" y="-293.05" font-family="Helvetica,sans-Serif" font-size="11.00" fill="#0f172a">host/net/toolchain</text>
113
+ <text xml:space="preserve" text-anchor="middle" x="569.77" y="-279.55" font-family="Helvetica,sans-Serif" font-size="11.00" fill="#0f172a">repo/env/rf/web</text>
114
114
  </g>
115
115
  <!-- World&#45;&gt;Snapshot -->
116
116
  <g id="edge12" class="edge">
117
117
  <title>World&#45;&gt;Snapshot</title>
118
- <path fill="none" stroke="#fb7185" stroke-width="1.3" d="M206.94,-565.64C214.22,-564.24 221.56,-562.9 228.59,-561.75 294.2,-550.99 476.64,-570.73 525.59,-525.75 575.71,-479.7 599.49,-424.33 552.59,-375 540.48,-362.26 410.8,-373.81 394.59,-367 375.12,-358.81 357.52,-343.23 344.27,-328.92"/>
119
- <polygon fill="#fb7185" stroke="#fb7185" stroke-width="1.3" points="346.47,-327.18 339.06,-323.07 342.28,-330.9 346.47,-327.18"/>
118
+ <path fill="none" stroke="#fb7185" stroke-width="1.3" d="M452.34,-565.13C459.57,-563.93 466.81,-562.78 473.77,-561.75 541.5,-551.72 729.96,-572.73 779.77,-525.75 829.07,-479.24 849.47,-424.12 802.77,-375 790.66,-362.26 660.97,-373.81 644.77,-367 625.29,-358.81 607.69,-343.23 594.44,-328.92"/>
119
+ <polygon fill="#fb7185" stroke="#fb7185" stroke-width="1.3" points="596.64,-327.18 589.23,-323.07 592.46,-330.9 596.64,-327.18"/>
120
120
  </g>
121
121
  <!-- Observe -->
122
122
  <g id="node11" class="node">
123
123
  <title>Observe</title>
124
- <path fill="#fcd34d" stroke="#334155" stroke-width="1.4" d="M214.97,-314.75C214.97,-314.75 114.22,-314.75 114.22,-314.75 108.22,-314.75 102.22,-308.75 102.22,-302.75 102.22,-302.75 102.22,-290.75 102.22,-290.75 102.22,-284.75 108.22,-278.75 114.22,-278.75 114.22,-278.75 214.97,-278.75 214.97,-278.75 220.97,-278.75 226.97,-284.75 226.97,-290.75 226.97,-290.75 226.97,-302.75 226.97,-302.75 226.97,-308.75 220.97,-314.75 214.97,-314.75"/>
125
- <text xml:space="preserve" text-anchor="middle" x="164.59" y="-299.8" font-family="sans-Serif" font-size="11.00" fill="#0f172a">observe · intel</text>
126
- <text xml:space="preserve" text-anchor="middle" x="164.59" y="-286.3" font-family="sans-Serif" font-size="11.00" fill="#0f172a">recon facts · CVE feed</text>
124
+ <path fill="#fcd34d" stroke="#334155" stroke-width="1.4" d="M464.27,-314.75C464.27,-314.75 355.27,-314.75 355.27,-314.75 349.27,-314.75 343.27,-308.75 343.27,-302.75 343.27,-302.75 343.27,-290.75 343.27,-290.75 343.27,-284.75 349.27,-278.75 355.27,-278.75 355.27,-278.75 464.27,-278.75 464.27,-278.75 470.27,-278.75 476.27,-284.75 476.27,-290.75 476.27,-290.75 476.27,-302.75 476.27,-302.75 476.27,-308.75 470.27,-314.75 464.27,-314.75"/>
125
+ <text xml:space="preserve" text-anchor="middle" x="409.77" y="-299.8" font-family="Helvetica,sans-Serif" font-size="11.00" fill="#0f172a">observe · intel · watch</text>
126
+ <text xml:space="preserve" text-anchor="middle" x="409.77" y="-286.3" font-family="Helvetica,sans-Serif" font-size="11.00" fill="#0f172a">recon · CVE · web DOM</text>
127
127
  </g>
128
128
  <!-- World&#45;&gt;Observe -->
129
129
  <g id="edge13" class="edge">
130
130
  <title>World&#45;&gt;Observe</title>
131
- <path fill="none" stroke="#fb7185" stroke-width="1.3" d="M206.91,-565.44C214.19,-564.07 221.55,-562.8 228.59,-561.75 271.74,-555.31 590.19,-557.98 619.59,-525.75 635.69,-508.11 806.02,-559.02 601.59,-375 587.01,-361.88 266.98,-373.84 248.59,-367 224.01,-357.86 201.4,-338.28 185.85,-322.27"/>
132
- <polygon fill="#fb7185" stroke="#fb7185" stroke-width="1.3" points="188.08,-320.56 180.56,-316.65 184,-324.39 188.08,-320.56"/>
131
+ <path fill="none" stroke="#fb7185" stroke-width="1.3" d="M452.31,-564.9C459.55,-563.74 466.79,-562.67 473.77,-561.75 520.53,-555.59 864.86,-560.49 896.77,-525.75 908.6,-512.87 967.57,-465.4 811.77,-375 781.68,-357.54 531.53,-378.71 498.77,-367 472.96,-357.77 448.76,-337.93 432.13,-321.84"/>
132
+ <polygon fill="#fb7185" stroke="#fb7185" stroke-width="1.3" points="434.52,-320.26 426.88,-316.6 430.57,-324.23 434.52,-320.26"/>
133
+ </g>
134
+ <!-- Verify -->
135
+ <g id="node12" class="node">
136
+ <title>Verify</title>
137
+ <path fill="#fcd34d" stroke="#334155" stroke-width="2" d="M288.27,-321C288.27,-321 191.27,-321 191.27,-321 185.27,-321 179.27,-315 179.27,-309 179.27,-309 179.27,-284.5 179.27,-284.5 179.27,-278.5 185.27,-272.5 191.27,-272.5 191.27,-272.5 288.27,-272.5 288.27,-272.5 294.27,-272.5 300.27,-278.5 300.27,-284.5 300.27,-284.5 300.27,-309 300.27,-309 300.27,-315 294.27,-321 288.27,-321"/>
138
+ <text xml:space="preserve" text-anchor="middle" x="239.77" y="-306.55" font-family="Helvetica,sans-Serif" font-size="11.00" fill="#0f172a">verify (browser)</text>
139
+ <text xml:space="preserve" text-anchor="middle" x="239.77" y="-293.05" font-family="Helvetica,sans-Serif" font-size="11.00" fill="#0f172a">fact&#45;check own claims</text>
140
+ <text xml:space="preserve" text-anchor="middle" x="239.77" y="-279.55" font-family="Helvetica,sans-Serif" font-size="11.00" fill="#0f172a">revalidate_memory</text>
141
+ </g>
142
+ <!-- World&#45;&gt;Verify -->
143
+ <g id="edge14" class="edge">
144
+ <title>World&#45;&gt;Verify</title>
145
+ <path fill="none" stroke="#38bdf8" stroke-width="2" d="M452.3,-564.85C459.54,-563.7 466.79,-562.65 473.77,-561.75 524.62,-555.23 898.96,-563.39 933.77,-525.75 936.94,-522.32 935.4,-519.62 933.77,-515.25 904.82,-437.87 886.67,-409.86 811.77,-375 787.08,-363.51 347.26,-376.56 321.77,-367 301.16,-359.27 282.11,-343.93 267.57,-329.65"/>
146
+ <polygon fill="#38bdf8" stroke="#38bdf8" stroke-width="2" points="269.68,-327.81 262.09,-324.04 265.68,-331.72 269.68,-327.81"/>
147
+ <text xml:space="preserve" text-anchor="middle" x="971.59" y="-451.95" font-family="Helvetica,sans-Serif" font-size="9.00" fill="#cbd5e1">TransparentBrowser</text>
148
+ <text xml:space="preserve" text-anchor="middle" x="971.59" y="-441.45" font-family="Helvetica,sans-Serif" font-size="9.00" fill="#cbd5e1">:headless</text>
133
149
  </g>
134
150
  <!-- Prompt&#45;&gt;Dispatch -->
135
151
  <g id="edge4" class="edge">
136
152
  <title>Prompt&#45;&gt;Dispatch</title>
137
- <path fill="none" stroke="#a78bfa" stroke-width="1.3" d="M329.52,-450C354.44,-450 379.35,-450 404.26,-450"/>
138
- <polygon fill="#a78bfa" stroke="#a78bfa" stroke-width="1.3" points="404.22,-452.8 412.22,-450 404.22,-447.2 404.22,-452.8"/>
153
+ <path fill="none" stroke="#a78bfa" stroke-width="1.3" d="M574.7,-450C599.61,-450 624.52,-450 649.44,-450"/>
154
+ <polygon fill="#a78bfa" stroke="#a78bfa" stroke-width="1.3" points="649.39,-452.8 657.39,-450 649.39,-447.2 649.39,-452.8"/>
139
155
  </g>
140
156
  <!-- Dispatch&#45;&gt;Result -->
141
157
  <g id="edge5" class="edge">
142
158
  <title>Dispatch&#45;&gt;Result</title>
143
- <path fill="none" stroke="#a78bfa" stroke-width="1.3" d="M426.28,-468.49C405.51,-489.19 368.52,-521.53 329.09,-534.5 293.21,-546.31 278.77,-549.49 244.09,-534.5 217.08,-522.82 195,-496.95 181.03,-476.88"/>
144
- <polygon fill="#a78bfa" stroke="#a78bfa" stroke-width="1.3" points="183.42,-475.42 176.64,-470.33 178.76,-478.54 183.42,-475.42"/>
159
+ <path fill="none" stroke="#a78bfa" stroke-width="1.3" d="M671.46,-468.49C650.68,-489.19 613.69,-521.53 574.27,-534.5 538.38,-546.31 523.95,-549.49 489.27,-534.5 462.25,-522.82 440.17,-496.95 426.2,-476.88"/>
160
+ <polygon fill="#a78bfa" stroke="#a78bfa" stroke-width="1.3" points="428.59,-475.42 421.81,-470.33 423.94,-478.54 428.59,-475.42"/>
145
161
  </g>
146
162
  <!-- Metrics -->
147
163
  <g id="node7" class="node">
148
164
  <title>Metrics</title>
149
- <path fill="#6ee7b7" stroke="#334155" stroke-width="1.4" d="M538.34,-314.75C538.34,-314.75 424.84,-314.75 424.84,-314.75 418.84,-314.75 412.84,-308.75 412.84,-302.75 412.84,-302.75 412.84,-290.75 412.84,-290.75 412.84,-284.75 418.84,-278.75 424.84,-278.75 424.84,-278.75 538.34,-278.75 538.34,-278.75 544.34,-278.75 550.34,-284.75 550.34,-290.75 550.34,-290.75 550.34,-302.75 550.34,-302.75 550.34,-308.75 544.34,-314.75 538.34,-314.75"/>
150
- <text xml:space="preserve" text-anchor="middle" x="481.59" y="-299.8" font-family="sans-Serif" font-size="11.00" fill="#0f172a">Metrics</text>
151
- <text xml:space="preserve" text-anchor="middle" x="481.59" y="-286.3" font-family="sans-Serif" font-size="11.00" fill="#0f172a">per&#45;tool success · avg ms</text>
165
+ <path fill="#6ee7b7" stroke="#334155" stroke-width="1.4" d="M788.52,-314.75C788.52,-314.75 675.02,-314.75 675.02,-314.75 669.02,-314.75 663.02,-308.75 663.02,-302.75 663.02,-302.75 663.02,-290.75 663.02,-290.75 663.02,-284.75 669.02,-278.75 675.02,-278.75 675.02,-278.75 788.52,-278.75 788.52,-278.75 794.52,-278.75 800.52,-284.75 800.52,-290.75 800.52,-290.75 800.52,-302.75 800.52,-302.75 800.52,-308.75 794.52,-314.75 788.52,-314.75"/>
166
+ <text xml:space="preserve" text-anchor="middle" x="731.77" y="-299.8" font-family="Helvetica,sans-Serif" font-size="11.00" fill="#0f172a">Metrics</text>
167
+ <text xml:space="preserve" text-anchor="middle" x="731.77" y="-286.3" font-family="Helvetica,sans-Serif" font-size="11.00" fill="#0f172a">per&#45;tool success · avg ms</text>
152
168
  </g>
153
169
  <!-- Dispatch&#45;&gt;Metrics -->
154
170
  <g id="edge6" class="edge">
155
171
  <title>Dispatch&#45;&gt;Metrics</title>
156
- <path fill="none" stroke="#34d399" stroke-width="1.3" d="M422.8,-431.36C408.23,-416.73 392.77,-395.15 401.34,-375 410.6,-353.24 429.32,-334.64 446.36,-321.15"/>
157
- <polygon fill="#34d399" stroke="#34d399" stroke-width="1.3" points="447.78,-323.58 452.46,-316.51 444.39,-319.13 447.78,-323.58"/>
158
- <text xml:space="preserve" text-anchor="middle" x="417.47" y="-382.2" font-family="sans-Serif" font-size="9.00" fill="#cbd5e1">record()</text>
172
+ <path fill="none" stroke="#34d399" stroke-width="1.3" d="M670.29,-431.36C657.12,-416.55 643.13,-394.72 651.52,-375 660.77,-353.24 679.5,-334.64 696.53,-321.15"/>
173
+ <polygon fill="#34d399" stroke="#34d399" stroke-width="1.3" points="697.96,-323.58 702.63,-316.51 694.57,-319.13 697.96,-323.58"/>
174
+ <text xml:space="preserve" text-anchor="middle" x="667.64" y="-382.2" font-family="Helvetica,sans-Serif" font-size="9.00" fill="#cbd5e1">record()</text>
159
175
  </g>
160
176
  <!-- Dispatch&#45;&gt;Mistakes -->
161
177
  <g id="edge8" class="edge">
162
178
  <title>Dispatch&#45;&gt;Mistakes</title>
163
- <path fill="none" stroke="#fb7185" stroke-width="2" d="M473.21,-448.45C542.47,-446.46 711.81,-437.4 746.59,-396 762.37,-377.23 749.08,-354.84 730.2,-336.18"/>
164
- <polygon fill="#fb7185" stroke="#fb7185" stroke-width="2" points="732.12,-334.15 724.35,-330.76 728.31,-338.25 732.12,-334.15"/>
165
- <text xml:space="preserve" text-anchor="middle" x="772.71" y="-387.45" font-family="sans-Serif" font-size="9.00" fill="#cbd5e1">on failure</text>
166
- <text xml:space="preserve" text-anchor="middle" x="772.71" y="-376.95" font-family="sans-Serif" font-size="9.00" fill="#cbd5e1">record()</text>
179
+ <path fill="none" stroke="#fb7185" stroke-width="2" d="M718.28,-439.05C743.96,-429.76 781.69,-414.55 811.77,-396 839.59,-378.84 867.75,-355.43 889.46,-335.76"/>
180
+ <polygon fill="#fb7185" stroke="#fb7185" stroke-width="2" points="891.22,-337.95 895.22,-330.48 887.44,-333.82 891.22,-337.95"/>
181
+ <text xml:space="preserve" text-anchor="middle" x="858.49" y="-387.45" font-family="Helvetica,sans-Serif" font-size="9.00" fill="#cbd5e1">on failure</text>
182
+ <text xml:space="preserve" text-anchor="middle" x="858.49" y="-376.95" font-family="Helvetica,sans-Serif" font-size="9.00" fill="#cbd5e1">record()</text>
167
183
  </g>
168
184
  <!-- Dispatch&#45;&gt;Snapshot -->
169
185
  <g id="edge10" class="edge">
170
186
  <title>Dispatch&#45;&gt;Snapshot</title>
171
- <path fill="none" stroke="#f59e0b" stroke-width="1.3" d="M413.98,-434.36C397.73,-425.15 378.18,-411.98 364.59,-396 348.44,-377 336.92,-351.24 329.59,-330.86"/>
172
- <polygon fill="#f59e0b" stroke="#f59e0b" stroke-width="1.3" points="332.31,-330.15 327.06,-323.49 327.01,-331.97 332.31,-330.15"/>
173
- <text xml:space="preserve" text-anchor="middle" x="376.59" y="-382.2" font-family="sans-Serif" font-size="9.00" fill="#cbd5e1">probe</text>
187
+ <path fill="none" stroke="#f59e0b" stroke-width="1.3" d="M659.25,-432.87C644.41,-423.61 627.03,-410.88 614.77,-396 598.9,-376.75 587.38,-351 579.97,-330.69"/>
188
+ <polygon fill="#f59e0b" stroke="#f59e0b" stroke-width="1.3" points="582.69,-329.98 577.4,-323.35 577.4,-331.83 582.69,-329.98"/>
189
+ <text xml:space="preserve" text-anchor="middle" x="626.77" y="-382.2" font-family="Helvetica,sans-Serif" font-size="9.00" fill="#cbd5e1">probe</text>
174
190
  </g>
175
191
  <!-- Result&#45;&gt;User -->
176
- <g id="edge33" class="edge">
192
+ <g id="edge38" class="edge">
177
193
  <title>Result&#45;&gt;User</title>
178
- <path fill="none" stroke="#38bdf8" stroke-width="2" d="M176.86,-468.54C187.3,-481.86 203.6,-499.21 222.59,-507.25 235.95,-512.9 473.49,-504.84 483.59,-515.25 486.84,-518.6 486.41,-522.03 483.59,-525.75 475.46,-536.5 404.87,-554.35 352.57,-566.33"/>
179
- <polygon fill="#38bdf8" stroke="#38bdf8" stroke-width="2" points="352.18,-563.54 345,-568.05 353.42,-569.01 352.18,-563.54"/>
180
- <text xml:space="preserve" text-anchor="middle" x="500.87" y="-517.2" font-family="sans-Serif" font-size="9.00" fill="#cbd5e1">answer</text>
194
+ <path fill="none" stroke="#38bdf8" stroke-width="2" d="M422.03,-468.54C432.47,-481.87 448.77,-499.22 467.77,-507.25 481.59,-513.09 727.32,-504.48 737.77,-515.25 741.02,-518.6 740.61,-522.05 737.77,-525.75 733.37,-531.49 654.26,-551.51 597.65,-565.23"/>
195
+ <polygon fill="#38bdf8" stroke="#38bdf8" stroke-width="2" points="597.08,-562.49 589.96,-567.09 598.39,-567.94 597.08,-562.49"/>
196
+ <text xml:space="preserve" text-anchor="middle" x="755.05" y="-517.2" font-family="Helvetica,sans-Serif" font-size="9.00" fill="#cbd5e1">answer</text>
181
197
  </g>
182
198
  <!-- Learning -->
183
199
  <g id="node8" class="node">
184
200
  <title>Learning</title>
185
- <path fill="#6ee7b7" stroke="#334155" stroke-width="1.4" d="M920.34,-321C920.34,-321 818.84,-321 818.84,-321 812.84,-321 806.84,-315 806.84,-309 806.84,-309 806.84,-284.5 806.84,-284.5 806.84,-278.5 812.84,-272.5 818.84,-272.5 818.84,-272.5 920.34,-272.5 920.34,-272.5 926.34,-272.5 932.34,-278.5 932.34,-284.5 932.34,-284.5 932.34,-309 932.34,-309 932.34,-315 926.34,-321 920.34,-321"/>
186
- <text xml:space="preserve" text-anchor="middle" x="869.59" y="-306.55" font-family="sans-Serif" font-size="11.00" fill="#0f172a">Learning</text>
187
- <text xml:space="preserve" text-anchor="middle" x="869.59" y="-293.05" font-family="sans-Serif" font-size="11.00" fill="#0f172a">note_outcome · reflect</text>
188
- <text xml:space="preserve" text-anchor="middle" x="869.59" y="-279.55" font-family="sans-Serif" font-size="11.00" fill="#0f172a">consolidate · distill_skill</text>
201
+ <path fill="#6ee7b7" stroke="#334155" stroke-width="1.4" d="M1170.52,-321C1170.52,-321 1069.02,-321 1069.02,-321 1063.02,-321 1057.02,-315 1057.02,-309 1057.02,-309 1057.02,-284.5 1057.02,-284.5 1057.02,-278.5 1063.02,-272.5 1069.02,-272.5 1069.02,-272.5 1170.52,-272.5 1170.52,-272.5 1176.52,-272.5 1182.52,-278.5 1182.52,-284.5 1182.52,-284.5 1182.52,-309 1182.52,-309 1182.52,-315 1176.52,-321 1170.52,-321"/>
202
+ <text xml:space="preserve" text-anchor="middle" x="1119.77" y="-306.55" font-family="Helvetica,sans-Serif" font-size="11.00" fill="#0f172a">Learning</text>
203
+ <text xml:space="preserve" text-anchor="middle" x="1119.77" y="-293.05" font-family="Helvetica,sans-Serif" font-size="11.00" fill="#0f172a">note_outcome · reflect</text>
204
+ <text xml:space="preserve" text-anchor="middle" x="1119.77" y="-279.55" font-family="Helvetica,sans-Serif" font-size="11.00" fill="#0f172a">consolidate · distill_skill</text>
189
205
  </g>
190
206
  <!-- Result&#45;&gt;Learning -->
191
207
  <g id="edge7" class="edge">
192
208
  <title>Result&#45;&gt;Learning</title>
193
- <path fill="none" stroke="#34d399" stroke-width="1.3" d="M200.45,-431.32C207.64,-428.42 215.24,-425.78 222.59,-424 400.11,-381.01 454.09,-434.7 632.59,-396 658.57,-390.37 662.66,-380.81 688.59,-375 730.8,-365.54 745.52,-383.28 785.59,-367 806.66,-358.44 826.48,-342.63 841.57,-328.28"/>
194
- <polygon fill="#34d399" stroke="#34d399" stroke-width="1.3" points="843.44,-330.37 847.18,-322.77 839.51,-326.38 843.44,-330.37"/>
195
- <text xml:space="preserve" text-anchor="middle" x="712.59" y="-382.2" font-family="sans-Serif" font-size="9.00" fill="#cbd5e1">auto_reflect</text>
209
+ <path fill="none" stroke="#34d399" stroke-width="1.3" d="M445.63,-431.31C452.81,-428.41 460.41,-425.77 467.77,-424 714.4,-364.49 806.38,-475.4 1035.77,-367 1055.89,-357.49 1075.27,-342.08 1090.33,-328.21"/>
210
+ <polygon fill="#34d399" stroke="#34d399" stroke-width="1.3" points="1092.05,-330.44 1095.94,-322.91 1088.2,-326.37 1092.05,-330.44"/>
211
+ <text xml:space="preserve" text-anchor="middle" x="1032.88" y="-382.2" font-family="Helvetica,sans-Serif" font-size="9.00" fill="#cbd5e1">auto_reflect</text>
196
212
  </g>
197
213
  <!-- Result&#45;&gt;Observe -->
198
214
  <g id="edge11" class="edge">
199
215
  <title>Result&#45;&gt;Observe</title>
200
- <path fill="none" stroke="#f59e0b" stroke-width="1.3" d="M164.59,-431.35C164.59,-405.17 164.59,-355.81 164.59,-324.97"/>
201
- <polygon fill="#f59e0b" stroke="#f59e0b" stroke-width="1.3" points="167.39,-325.25 164.59,-317.25 161.79,-325.25 167.39,-325.25"/>
202
- <text xml:space="preserve" text-anchor="middle" x="197.22" y="-382.2" font-family="sans-Serif" font-size="9.00" fill="#cbd5e1">auto_extrospect</text>
216
+ <path fill="none" stroke="#f59e0b" stroke-width="1.3" d="M409.77,-431.35C409.77,-405.17 409.77,-355.81 409.77,-324.97"/>
217
+ <polygon fill="#f59e0b" stroke="#f59e0b" stroke-width="1.3" points="412.57,-325.25 409.77,-317.25 406.97,-325.25 412.57,-325.25"/>
218
+ <text xml:space="preserve" text-anchor="middle" x="442.39" y="-382.2" font-family="Helvetica,sans-Serif" font-size="9.00" fill="#cbd5e1">auto_extrospect</text>
203
219
  </g>
204
220
  <!-- Correlate -->
205
- <g id="node12" class="node">
221
+ <g id="node13" class="node">
206
222
  <title>Correlate</title>
207
- <path fill="#fda4af" stroke="#334155" stroke-width="2" d="M435.47,-172.75C435.47,-172.75 235.72,-172.75 235.72,-172.75 229.72,-172.75 223.72,-166.75 223.72,-160.75 223.72,-160.75 223.72,-148.25 223.72,-148.25 223.72,-142.25 229.72,-136.25 235.72,-136.25 235.72,-136.25 435.47,-136.25 435.47,-136.25 441.47,-136.25 447.47,-142.25 447.47,-148.25 447.47,-148.25 447.47,-160.75 447.47,-160.75 447.47,-166.75 441.47,-172.75 435.47,-172.75"/>
208
- <text xml:space="preserve" text-anchor="middle" x="335.59" y="-157.35" font-family="sans-Serif" font-size="12.00" fill="#0f172a">extro_correlate()</text>
209
- <text xml:space="preserve" text-anchor="middle" x="335.59" y="-143.1" 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>
223
+ <path fill="#fda4af" stroke="#334155" stroke-width="2" d="M675.64,-172.75C675.64,-172.75 475.89,-172.75 475.89,-172.75 469.89,-172.75 463.89,-166.75 463.89,-160.75 463.89,-160.75 463.89,-148.25 463.89,-148.25 463.89,-142.25 469.89,-136.25 475.89,-136.25 475.89,-136.25 675.64,-136.25 675.64,-136.25 681.64,-136.25 687.64,-142.25 687.64,-148.25 687.64,-148.25 687.64,-160.75 687.64,-160.75 687.64,-166.75 681.64,-172.75 675.64,-172.75"/>
224
+ <text xml:space="preserve" text-anchor="middle" x="575.77" y="-157.35" font-family="Helvetica,sans-Serif" font-size="12.00" fill="#0f172a">extro_correlate()</text>
225
+ <text xml:space="preserve" text-anchor="middle" x="575.77" y="-143.1" 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>
210
226
  </g>
211
227
  <!-- Metrics&#45;&gt;Correlate -->
212
- <g id="edge14" class="edge">
228
+ <g id="edge15" class="edge">
213
229
  <title>Metrics&#45;&gt;Correlate</title>
214
- <path fill="none" stroke="#34d399" stroke-width="1.3" d="M463.4,-278.27C437.75,-253.63 390.82,-208.55 361.53,-180.41"/>
215
- <polygon fill="#34d399" stroke="#34d399" stroke-width="1.3" points="363.61,-178.53 355.9,-175.01 359.73,-182.57 363.61,-178.53"/>
230
+ <path fill="none" stroke="#34d399" stroke-width="1.3" d="M712.33,-278.27C684.8,-253.53 634.35,-208.17 603.08,-180.05"/>
231
+ <polygon fill="#34d399" stroke="#34d399" stroke-width="1.3" points="605.23,-178.23 597.41,-174.96 601.49,-182.39 605.23,-178.23"/>
216
232
  </g>
217
233
  <!-- Fmet -->
218
- <g id="node13" class="node">
234
+ <g id="node14" class="node">
219
235
  <title>Fmet</title>
220
- <path fill="#fcd34d" stroke="#334155" stroke-width="1.4" d="M533.09,-48.73C533.09,-50.53 516.73,-52 496.59,-52 476.45,-52 460.09,-50.53 460.09,-48.73 460.09,-48.73 460.09,-19.27 460.09,-19.27 460.09,-17.47 476.45,-16 496.59,-16 516.73,-16 533.09,-17.47 533.09,-19.27 533.09,-19.27 533.09,-48.73 533.09,-48.73"/>
221
- <path fill="none" stroke="#334155" stroke-width="1.4" d="M533.09,-48.73C533.09,-46.92 516.73,-45.45 496.59,-45.45 476.45,-45.45 460.09,-46.92 460.09,-48.73"/>
222
- <text xml:space="preserve" text-anchor="middle" x="496.59" y="-30.3" font-family="sans-Serif" font-size="11.00" fill="#0f172a">metrics.json</text>
236
+ <path fill="#fcd34d" stroke="#334155" stroke-width="1.4" d="M541.27,-48.73C541.27,-50.53 524.91,-52 504.77,-52 484.63,-52 468.27,-50.53 468.27,-48.73 468.27,-48.73 468.27,-19.27 468.27,-19.27 468.27,-17.47 484.63,-16 504.77,-16 524.91,-16 541.27,-17.47 541.27,-19.27 541.27,-19.27 541.27,-48.73 541.27,-48.73"/>
237
+ <path fill="none" stroke="#334155" stroke-width="1.4" d="M541.27,-48.73C541.27,-46.92 524.91,-45.45 504.77,-45.45 484.63,-45.45 468.27,-46.92 468.27,-48.73"/>
238
+ <text xml:space="preserve" text-anchor="middle" x="504.77" y="-30.3" font-family="Helvetica,sans-Serif" font-size="11.00" fill="#0f172a">metrics.json</text>
223
239
  </g>
224
240
  <!-- Metrics&#45;&gt;Fmet -->
225
- <g id="edge20" class="edge">
241
+ <g id="edge22" class="edge">
226
242
  <title>Metrics&#45;&gt;Fmet</title>
227
- <path fill="none" stroke="#94a3b8" stroke-width="1.3" d="M482.6,-278.24C485.16,-233.7 491.94,-115.88 495.03,-62.26"/>
228
- <polygon fill="#94a3b8" stroke="#94a3b8" stroke-width="1.3" points="497.81,-62.55 495.48,-54.4 492.22,-62.23 497.81,-62.55"/>
243
+ <path fill="none" stroke="#94a3b8" stroke-width="1.3" d="M734.76,-278.23C739.19,-246.02 743.59,-176.97 708.77,-136.25 664.64,-84.65 621.2,-125.84 562.77,-91.25 548.84,-83.01 535.69,-70.77 525.44,-59.81"/>
244
+ <polygon fill="#94a3b8" stroke="#94a3b8" stroke-width="1.3" points="527.59,-58.01 520.15,-53.95 523.43,-61.77 527.59,-58.01"/>
229
245
  </g>
230
246
  <!-- Learning&#45;&gt;Correlate -->
231
- <g id="edge15" class="edge">
247
+ <g id="edge16" class="edge">
232
248
  <title>Learning&#45;&gt;Correlate</title>
233
- <path fill="none" stroke="#34d399" stroke-width="1.3" d="M821.4,-271.95C809.85,-266.81 797.43,-261.73 785.59,-257.75 675.2,-220.66 545.09,-192.73 453.25,-175.51"/>
234
- <polygon fill="#34d399" stroke="#34d399" stroke-width="1.3" points="453.96,-172.79 445.58,-174.08 452.93,-178.29 453.96,-172.79"/>
249
+ <path fill="none" stroke="#34d399" stroke-width="1.3" d="M1071.59,-271.91C1060.04,-266.77 1047.61,-261.7 1035.77,-257.75 923.4,-220.29 791.01,-192.5 697.18,-175.42"/>
250
+ <polygon fill="#34d399" stroke="#34d399" stroke-width="1.3" points="697.96,-172.71 689.58,-174.05 696.96,-178.23 697.96,-172.71"/>
235
251
  </g>
236
252
  <!-- Flrn -->
237
- <g id="node14" class="node">
253
+ <g id="node15" class="node">
238
254
  <title>Flrn</title>
239
- <path fill="#fcd34d" stroke="#334155" stroke-width="1.4" d="M899.09,-48.73C899.09,-50.53 881.39,-52 859.59,-52 837.8,-52 820.09,-50.53 820.09,-48.73 820.09,-48.73 820.09,-19.27 820.09,-19.27 820.09,-17.47 837.8,-16 859.59,-16 881.39,-16 899.09,-17.47 899.09,-19.27 899.09,-19.27 899.09,-48.73 899.09,-48.73"/>
240
- <path fill="none" stroke="#334155" stroke-width="1.4" d="M899.09,-48.73C899.09,-46.92 881.39,-45.45 859.59,-45.45 837.8,-45.45 820.09,-46.92 820.09,-48.73"/>
241
- <text xml:space="preserve" text-anchor="middle" x="859.59" y="-30.3" font-family="sans-Serif" font-size="11.00" fill="#0f172a">learning.jsonl</text>
255
+ <path fill="#fcd34d" stroke="#334155" stroke-width="1.4" d="M1015.27,-48.73C1015.27,-50.53 997.56,-52 975.77,-52 953.97,-52 936.27,-50.53 936.27,-48.73 936.27,-48.73 936.27,-19.27 936.27,-19.27 936.27,-17.47 953.97,-16 975.77,-16 997.56,-16 1015.27,-17.47 1015.27,-19.27 1015.27,-19.27 1015.27,-48.73 1015.27,-48.73"/>
256
+ <path fill="none" stroke="#334155" stroke-width="1.4" d="M1015.27,-48.73C1015.27,-46.92 997.56,-45.45 975.77,-45.45 953.97,-45.45 936.27,-46.92 936.27,-48.73"/>
257
+ <text xml:space="preserve" text-anchor="middle" x="975.77" y="-30.3" font-family="Helvetica,sans-Serif" font-size="11.00" fill="#0f172a">learning.jsonl</text>
242
258
  </g>
243
259
  <!-- Learning&#45;&gt;Flrn -->
244
- <g id="edge21" class="edge">
260
+ <g id="edge23" class="edge">
245
261
  <title>Learning&#45;&gt;Flrn</title>
246
- <path fill="none" stroke="#94a3b8" stroke-width="1.3" d="M879.02,-271.98C883.55,-259.59 888.62,-244.06 891.59,-229.75 903.38,-172.96 908.63,-154.69 891.59,-99.25 887.58,-86.19 881.13,-72.52 875.07,-61.17"/>
247
- <polygon fill="#94a3b8" stroke="#94a3b8" stroke-width="1.3" points="877.62,-59.99 871.3,-54.34 872.71,-62.7 877.62,-59.99"/>
262
+ <path fill="none" stroke="#94a3b8" stroke-width="1.3" d="M1164.03,-271.94C1172.88,-267.22 1182.11,-262.31 1190.77,-257.75 1214.69,-245.15 1230.72,-252.85 1244.77,-229.75 1274.9,-180.19 1280.7,-144.78 1244.77,-99.25 1217.95,-65.28 1095.51,-47.29 1025.42,-39.62"/>
263
+ <polygon fill="#94a3b8" stroke="#94a3b8" stroke-width="1.3" points="1026.1,-36.88 1017.85,-38.82 1025.51,-42.45 1026.1,-36.88"/>
248
264
  </g>
249
265
  <!-- Fmem -->
250
- <g id="node16" class="node">
266
+ <g id="node17" class="node">
251
267
  <title>Fmem</title>
252
- <path fill="#fcd34d" stroke="#334155" stroke-width="1.4" d="M777.34,-48.73C777.34,-50.53 759.98,-52 738.59,-52 717.21,-52 699.84,-50.53 699.84,-48.73 699.84,-48.73 699.84,-19.27 699.84,-19.27 699.84,-17.47 717.21,-16 738.59,-16 759.98,-16 777.34,-17.47 777.34,-19.27 777.34,-19.27 777.34,-48.73 777.34,-48.73"/>
253
- <path fill="none" stroke="#334155" stroke-width="1.4" d="M777.34,-48.73C777.34,-46.92 759.98,-45.45 738.59,-45.45 717.21,-45.45 699.84,-46.92 699.84,-48.73"/>
254
- <text xml:space="preserve" text-anchor="middle" x="738.59" y="-30.3" font-family="sans-Serif" font-size="11.00" fill="#0f172a">memory.json</text>
268
+ <path fill="#fcd34d" stroke="#334155" stroke-width="1.4" d="M785.52,-48.73C785.52,-50.53 768.15,-52 746.77,-52 725.39,-52 708.02,-50.53 708.02,-48.73 708.02,-48.73 708.02,-19.27 708.02,-19.27 708.02,-17.47 725.39,-16 746.77,-16 768.15,-16 785.52,-17.47 785.52,-19.27 785.52,-19.27 785.52,-48.73 785.52,-48.73"/>
269
+ <path fill="none" stroke="#334155" stroke-width="1.4" d="M785.52,-48.73C785.52,-46.92 768.15,-45.45 746.77,-45.45 725.39,-45.45 708.02,-46.92 708.02,-48.73"/>
270
+ <text xml:space="preserve" text-anchor="middle" x="746.77" y="-30.3" font-family="Helvetica,sans-Serif" font-size="11.00" fill="#0f172a">memory.json</text>
255
271
  </g>
256
272
  <!-- Learning&#45;&gt;Fmem -->
257
- <g id="edge24" class="edge">
273
+ <g id="edge26" class="edge">
258
274
  <title>Learning&#45;&gt;Fmem</title>
259
- <path fill="none" stroke="#94a3b8" stroke-width="1.3" d="M858.17,-271.87C843.14,-240.59 815.81,-184.1 791.59,-136.25 778.62,-110.61 763.36,-81.58 752.56,-61.2"/>
260
- <polygon fill="#94a3b8" stroke="#94a3b8" stroke-width="1.3" points="755.08,-59.97 748.85,-54.22 750.13,-62.6 755.08,-59.97"/>
261
- <text xml:space="preserve" text-anchor="middle" x="823.24" y="-151.2" font-family="sans-Serif" font-size="9.00" fill="#cbd5e1">lesson</text>
275
+ <path fill="none" stroke="#94a3b8" stroke-width="1.3" d="M1105.94,-271.82C1085.11,-237.61 1042.65,-174.63 991.77,-136.25 957.9,-110.7 944.97,-109.36 903.77,-99.25 862.19,-89.05 846.97,-108.47 807.77,-91.25 791.97,-84.31 777.61,-71.55 766.79,-59.94"/>
276
+ <polygon fill="#94a3b8" stroke="#94a3b8" stroke-width="1.3" points="768.93,-58.13 761.52,-54.02 764.74,-61.85 768.93,-58.13"/>
277
+ <text xml:space="preserve" text-anchor="middle" x="1044.3" y="-151.2" font-family="Helvetica,sans-Serif" font-size="9.00" fill="#cbd5e1">lesson</text>
262
278
  </g>
263
279
  <!-- Fskl -->
264
- <g id="node17" class="node">
280
+ <g id="node18" class="node">
265
281
  <title>Fskl</title>
266
- <path fill="#fcd34d" stroke="#334155" stroke-width="1.4" d="M1006.59,-48.73C1006.59,-50.53 992.25,-52 974.59,-52 956.94,-52 942.59,-50.53 942.59,-48.73 942.59,-48.73 942.59,-19.27 942.59,-19.27 942.59,-17.47 956.94,-16 974.59,-16 992.25,-16 1006.59,-17.47 1006.59,-19.27 1006.59,-19.27 1006.59,-48.73 1006.59,-48.73"/>
267
- <path fill="none" stroke="#334155" stroke-width="1.4" d="M1006.59,-48.73C1006.59,-46.92 992.25,-45.45 974.59,-45.45 956.94,-45.45 942.59,-46.92 942.59,-48.73"/>
268
- <text xml:space="preserve" text-anchor="middle" x="974.59" y="-30.3" font-family="sans-Serif" font-size="11.00" fill="#0f172a">skills/*.md</text>
282
+ <path fill="#fcd34d" stroke="#334155" stroke-width="1.4" d="M892.77,-48.73C892.77,-50.53 878.43,-52 860.77,-52 843.11,-52 828.77,-50.53 828.77,-48.73 828.77,-48.73 828.77,-19.27 828.77,-19.27 828.77,-17.47 843.11,-16 860.77,-16 878.43,-16 892.77,-17.47 892.77,-19.27 892.77,-19.27 892.77,-48.73 892.77,-48.73"/>
283
+ <path fill="none" stroke="#334155" stroke-width="1.4" d="M892.77,-48.73C892.77,-46.92 878.43,-45.45 860.77,-45.45 843.11,-45.45 828.77,-46.92 828.77,-48.73"/>
284
+ <text xml:space="preserve" text-anchor="middle" x="860.77" y="-30.3" font-family="Helvetica,sans-Serif" font-size="11.00" fill="#0f172a">skills/*.md</text>
269
285
  </g>
270
286
  <!-- Learning&#45;&gt;Fskl -->
271
- <g id="edge25" class="edge">
287
+ <g id="edge27" class="edge">
272
288
  <title>Learning&#45;&gt;Fskl</title>
273
- <path fill="none" stroke="#94a3b8" stroke-width="1.3" d="M894.37,-272.03C905.38,-260.26 917.62,-245.25 925.59,-229.75 954.14,-174.25 966.72,-101.15 971.71,-62.19"/>
274
- <polygon fill="#94a3b8" stroke="#94a3b8" stroke-width="1.3" points="974.45,-62.84 972.63,-54.56 968.89,-62.16 974.45,-62.84"/>
275
- <text xml:space="preserve" text-anchor="middle" x="965.73" y="-151.2" font-family="sans-Serif" font-size="9.00" fill="#cbd5e1">skill</text>
289
+ <path fill="none" stroke="#94a3b8" stroke-width="1.3" d="M1131.34,-272C1149.96,-229.99 1179.87,-142.88 1131.77,-99.25 1113.9,-83.04 936.79,-101.12 914.77,-91.25 900.01,-84.64 887.27,-71.95 877.88,-60.3"/>
290
+ <polygon fill="#94a3b8" stroke="#94a3b8" stroke-width="1.3" points="880.19,-58.72 873.12,-54.05 875.74,-62.11 880.19,-58.72"/>
291
+ <text xml:space="preserve" text-anchor="middle" x="1165.63" y="-151.2" font-family="Helvetica,sans-Serif" font-size="9.00" fill="#cbd5e1">skill</text>
276
292
  </g>
277
293
  <!-- Mistakes&#45;&gt;Dispatch -->
278
- <g id="edge31" class="edge">
294
+ <g id="edge36" class="edge">
279
295
  <title>Mistakes&#45;&gt;Dispatch</title>
280
- <path fill="none" stroke="#fb7185" stroke-width="2" stroke-dasharray="5,2" d="M630.95,-328.65C612.43,-340.64 591.04,-354.48 571.59,-367 540.76,-386.85 505.7,-409.31 480.07,-425.69"/>
281
- <polygon fill="#fb7185" stroke="#fb7185" stroke-width="2" points="478.87,-423.14 473.63,-429.81 481.88,-427.86 478.87,-423.14"/>
282
- <text xml:space="preserve" text-anchor="middle" x="590.35" y="-387.45" font-family="sans-Serif" font-size="9.00" fill="#cbd5e1">correction_hint</text>
283
- <text xml:space="preserve" text-anchor="middle" x="590.35" y="-376.95" font-family="sans-Serif" font-size="9.00" fill="#cbd5e1">(inline, next iter)</text>
296
+ <path fill="none" stroke="#fb7185" stroke-width="2" stroke-dasharray="5,2" d="M891.01,-328.6C871.51,-342.8 846.64,-358.37 821.77,-367 803.79,-373.24 752.78,-365.12 736.52,-375 718.98,-385.65 706.71,-405.46 699.01,-421.9"/>
297
+ <polygon fill="#fb7185" stroke="#fb7185" stroke-width="2" points="696.62,-420.37 696,-428.82 701.76,-422.6 696.62,-420.37"/>
298
+ <text xml:space="preserve" text-anchor="middle" x="769.14" y="-387.45" font-family="Helvetica,sans-Serif" font-size="9.00" fill="#cbd5e1">correction_hint</text>
299
+ <text xml:space="preserve" text-anchor="middle" x="769.14" y="-376.95" font-family="Helvetica,sans-Serif" font-size="9.00" fill="#cbd5e1">(inline, next iter)</text>
284
300
  </g>
285
301
  <!-- Mistakes&#45;&gt;Correlate -->
286
- <g id="edge16" class="edge">
302
+ <g id="edge17" class="edge">
287
303
  <title>Mistakes&#45;&gt;Correlate</title>
288
- <path fill="none" stroke="#34d399" stroke-width="1.3" d="M602.9,-264.8C538.1,-238.3 446.45,-200.83 389.05,-177.36"/>
289
- <polygon fill="#34d399" stroke="#34d399" stroke-width="1.3" points="390.43,-174.9 381.96,-174.46 388.31,-180.08 390.43,-174.9"/>
304
+ <path fill="none" stroke="#34d399" stroke-width="1.3" d="M850.86,-264.8C784.18,-238.3 689.85,-200.83 630.78,-177.36"/>
305
+ <polygon fill="#34d399" stroke="#34d399" stroke-width="1.3" points="631.91,-174.79 623.44,-174.44 629.84,-180 631.91,-174.79"/>
290
306
  </g>
291
307
  <!-- Fmis -->
292
- <g id="node15" class="node">
308
+ <g id="node16" class="node">
293
309
  <title>Fmis</title>
294
- <path fill="#fcd34d" stroke="#334155" stroke-width="1.4" d="M656.84,-48.73C656.84,-50.53 638.8,-52 616.59,-52 594.38,-52 576.34,-50.53 576.34,-48.73 576.34,-48.73 576.34,-19.27 576.34,-19.27 576.34,-17.47 594.38,-16 616.59,-16 638.8,-16 656.84,-17.47 656.84,-19.27 656.84,-19.27 656.84,-48.73 656.84,-48.73"/>
295
- <path fill="none" stroke="#334155" stroke-width="1.4" d="M656.84,-48.73C656.84,-46.92 638.8,-45.45 616.59,-45.45 594.38,-45.45 576.34,-46.92 576.34,-48.73"/>
296
- <text xml:space="preserve" text-anchor="middle" x="616.59" y="-30.3" font-family="sans-Serif" font-size="11.00" fill="#0f172a">mistakes.json</text>
310
+ <path fill="#fcd34d" stroke="#334155" stroke-width="1.4" d="M665.02,-48.73C665.02,-50.53 646.98,-52 624.77,-52 602.56,-52 584.52,-50.53 584.52,-48.73 584.52,-48.73 584.52,-19.27 584.52,-19.27 584.52,-17.47 602.56,-16 624.77,-16 646.98,-16 665.02,-17.47 665.02,-19.27 665.02,-19.27 665.02,-48.73 665.02,-48.73"/>
311
+ <path fill="none" stroke="#334155" stroke-width="1.4" d="M665.02,-48.73C665.02,-46.92 646.98,-45.45 624.77,-45.45 602.56,-45.45 584.52,-46.92 584.52,-48.73"/>
312
+ <text xml:space="preserve" text-anchor="middle" x="624.77" y="-30.3" font-family="Helvetica,sans-Serif" font-size="11.00" fill="#0f172a">mistakes.json</text>
297
313
  </g>
298
314
  <!-- Mistakes&#45;&gt;Fmis -->
299
- <g id="edge22" class="edge">
315
+ <g id="edge24" class="edge">
300
316
  <title>Mistakes&#45;&gt;Fmis</title>
301
- <path fill="none" stroke="#94a3b8" stroke-width="1.3" d="M671.24,-264.81C658.99,-213.3 634.62,-110.8 623.02,-62.02"/>
302
- <polygon fill="#94a3b8" stroke="#94a3b8" stroke-width="1.3" points="625.78,-61.51 621.2,-54.38 620.33,-62.81 625.78,-61.51"/>
317
+ <path fill="none" stroke="#94a3b8" stroke-width="1.3" d="M896.64,-264.86C861.75,-231.82 803.87,-178.47 750.77,-136.25 723.55,-114.61 713.92,-112.97 686.77,-91.25 674.32,-81.29 661.16,-69.54 650.18,-59.36"/>
318
+ <polygon fill="#94a3b8" stroke="#94a3b8" stroke-width="1.3" points="652.15,-57.37 644.4,-53.95 648.32,-61.46 652.15,-57.37"/>
303
319
  </g>
304
320
  <!-- Mistakes&#45;&gt;Fmem -->
305
- <g id="edge23" class="edge">
321
+ <g id="edge25" class="edge">
306
322
  <title>Mistakes&#45;&gt;Fmem</title>
307
- <path fill="none" stroke="#94a3b8" stroke-width="1.3" d="M685.71,-264.81C697.56,-213.3 721.15,-110.8 732.38,-62.02"/>
308
- <polygon fill="#94a3b8" stroke="#94a3b8" stroke-width="1.3" points="735.07,-62.8 734.13,-54.38 729.61,-61.55 735.07,-62.8"/>
309
- <text xml:space="preserve" text-anchor="middle" x="748.29" y="-151.2" font-family="sans-Serif" font-size="9.00" fill="#cbd5e1">resolve→lesson</text>
323
+ <path fill="none" stroke="#94a3b8" stroke-width="1.3" d="M929.54,-265.05C928.83,-221.04 920.41,-140.75 871.77,-99.25 849.96,-80.64 833.77,-103.32 807.77,-91.25 792.23,-84.03 777.96,-71.38 767.14,-59.9"/>
324
+ <polygon fill="#94a3b8" stroke="#94a3b8" stroke-width="1.3" points="769.3,-58.12 761.86,-54.05 765.14,-61.87 769.3,-58.12"/>
325
+ <text xml:space="preserve" text-anchor="middle" x="948.53" y="-151.2" font-family="Helvetica,sans-Serif" font-size="9.00" fill="#cbd5e1">resolve→lesson</text>
310
326
  </g>
311
327
  <!-- Snapshot&#45;&gt;Correlate -->
312
- <g id="edge17" class="edge">
328
+ <g id="edge18" class="edge">
313
329
  <title>Snapshot&#45;&gt;Correlate</title>
314
- <path fill="none" stroke="#f59e0b" stroke-width="1.3" d="M322.31,-271.96C325.11,-247.4 329.48,-209.11 332.43,-183.2"/>
315
- <polygon fill="#f59e0b" stroke="#f59e0b" stroke-width="1.3" points="335.18,-183.82 333.31,-175.55 329.62,-183.18 335.18,-183.82"/>
330
+ <path fill="none" stroke="#f59e0b" stroke-width="1.3" d="M570.79,-271.96C571.83,-247.51 573.46,-209.45 574.57,-183.54"/>
331
+ <polygon fill="#f59e0b" stroke="#f59e0b" stroke-width="1.3" points="577.37,-183.68 574.91,-175.56 571.77,-183.44 577.37,-183.68"/>
316
332
  </g>
317
333
  <!-- Observe&#45;&gt;Correlate -->
318
- <g id="edge18" class="edge">
334
+ <g id="edge19" class="edge">
319
335
  <title>Observe&#45;&gt;Correlate</title>
320
- <path fill="none" stroke="#f59e0b" stroke-width="1.3" d="M185.91,-278.27C216.2,-253.42 271.84,-207.79 306.09,-179.7"/>
321
- <polygon fill="#f59e0b" stroke="#f59e0b" stroke-width="1.3" points="307.54,-182.13 311.95,-174.89 303.99,-177.8 307.54,-182.13"/>
336
+ <path fill="none" stroke="#f59e0b" stroke-width="1.3" d="M430.46,-278.27C459.74,-253.53 513.43,-208.17 546.71,-180.05"/>
337
+ <polygon fill="#f59e0b" stroke="#f59e0b" stroke-width="1.3" points="548.49,-182.22 552.79,-174.91 544.87,-177.94 548.49,-182.22"/>
322
338
  </g>
323
339
  <!-- Fext -->
324
- <g id="node18" class="node">
340
+ <g id="node19" class="node">
325
341
  <title>Fext</title>
326
- <path fill="#fcd34d" stroke="#334155" stroke-width="1.4" d="M416.72,-48.73C416.72,-50.53 393.8,-52 365.59,-52 337.38,-52 314.47,-50.53 314.47,-48.73 314.47,-48.73 314.47,-19.27 314.47,-19.27 314.47,-17.47 337.38,-16 365.59,-16 393.8,-16 416.72,-17.47 416.72,-19.27 416.72,-19.27 416.72,-48.73 416.72,-48.73"/>
327
- <path fill="none" stroke="#334155" stroke-width="1.4" d="M416.72,-48.73C416.72,-46.92 393.8,-45.45 365.59,-45.45 337.38,-45.45 314.47,-46.92 314.47,-48.73"/>
328
- <text xml:space="preserve" text-anchor="middle" x="365.59" y="-30.3" font-family="sans-Serif" font-size="11.00" fill="#0f172a">extrospection.json</text>
342
+ <path fill="#fcd34d" stroke="#334155" stroke-width="1.4" d="M424.89,-48.73C424.89,-50.53 401.98,-52 373.77,-52 345.56,-52 322.64,-50.53 322.64,-48.73 322.64,-48.73 322.64,-19.27 322.64,-19.27 322.64,-17.47 345.56,-16 373.77,-16 401.98,-16 424.89,-17.47 424.89,-19.27 424.89,-19.27 424.89,-48.73 424.89,-48.73"/>
343
+ <path fill="none" stroke="#334155" stroke-width="1.4" d="M424.89,-48.73C424.89,-46.92 401.98,-45.45 373.77,-45.45 345.56,-45.45 322.64,-46.92 322.64,-48.73"/>
344
+ <text xml:space="preserve" text-anchor="middle" x="373.77" y="-30.3" font-family="Helvetica,sans-Serif" font-size="11.00" fill="#0f172a">extrospection.json</text>
329
345
  </g>
330
346
  <!-- Observe&#45;&gt;Fext -->
331
- <g id="edge26" class="edge">
347
+ <g id="edge28" class="edge">
332
348
  <title>Observe&#45;&gt;Fext</title>
333
- <path fill="none" stroke="#94a3b8" stroke-width="1.3" d="M164.56,-278.16C165.36,-246.73 170.97,-180.13 202.59,-136.25 229.7,-98.63 275.53,-71.98 311.7,-55.5"/>
334
- <polygon fill="#94a3b8" stroke="#94a3b8" stroke-width="1.3" points="312.69,-58.13 318.87,-52.33 310.42,-53.01 312.69,-58.13"/>
349
+ <path fill="none" stroke="#94a3b8" stroke-width="1.3" d="M388.59,-278.41C363.94,-256.7 324.6,-216.97 308.77,-172.75 294.11,-131.79 325.14,-86.58 349.19,-59.5"/>
350
+ <polygon fill="#94a3b8" stroke="#94a3b8" stroke-width="1.3" points="351.06,-61.6 354.41,-53.81 346.94,-57.81 351.06,-61.6"/>
351
+ </g>
352
+ <!-- Verify&#45;&gt;Correlate -->
353
+ <g id="edge20" class="edge">
354
+ <title>Verify&#45;&gt;Correlate</title>
355
+ <path fill="none" stroke="#f59e0b" stroke-width="1.3" d="M290.76,-271.63C300.99,-266.93 311.69,-262.11 321.77,-257.75 389.27,-228.55 467.95,-197.3 519.64,-177.14"/>
356
+ <polygon fill="#f59e0b" stroke="#f59e0b" stroke-width="1.3" points="520.38,-179.86 526.82,-174.35 518.35,-174.64 520.38,-179.86"/>
357
+ </g>
358
+ <!-- Verify&#45;&gt;Fmis -->
359
+ <g id="edge29" class="edge">
360
+ <title>Verify&#45;&gt;Fmis</title>
361
+ <path fill="none" stroke="#fb7185" stroke-width="2" d="M228.4,-271.58C214.05,-237.09 194.95,-173.77 227.77,-136.25 277.22,-79.71 494.66,-122.92 562.77,-91.25 578.15,-84.1 592.39,-71.78 603.33,-60.49"/>
362
+ <polygon fill="#fb7185" stroke="#fb7185" stroke-width="2" points="605.25,-62.54 608.63,-54.77 601.14,-58.74 605.25,-62.54"/>
363
+ <text xml:space="preserve" text-anchor="middle" x="268.27" y="-156.45" font-family="Helvetica,sans-Serif" font-size="9.00" fill="#cbd5e1">:refuted →</text>
364
+ <text xml:space="preserve" text-anchor="middle" x="268.27" y="-145.95" font-family="Helvetica,sans-Serif" font-size="9.00" fill="#cbd5e1">assumption mistake</text>
365
+ </g>
366
+ <!-- Verify&#45;&gt;Fmem -->
367
+ <g id="edge30" class="edge">
368
+ <title>Verify&#45;&gt;Fmem</title>
369
+ <path fill="none" stroke="#a78bfa" stroke-width="1.3" stroke-dasharray="5,2" d="M253.87,-271.51C276.3,-235.41 323.73,-168.32 383.52,-136.25 503.59,-71.85 564.09,-150.54 686.77,-91.25 702.06,-83.86 716.09,-71.19 726.74,-59.75"/>
370
+ <polygon fill="#a78bfa" stroke="#a78bfa" stroke-width="1.3" points="728.68,-61.78 731.91,-53.94 724.5,-58.05 728.68,-61.78"/>
371
+ <text xml:space="preserve" text-anchor="middle" x="413.14" y="-156.45" font-family="Helvetica,sans-Serif" font-size="9.00" fill="#cbd5e1">mark stale</text>
372
+ <text xml:space="preserve" text-anchor="middle" x="413.14" y="-145.95" font-family="Helvetica,sans-Serif" font-size="9.00" fill="#cbd5e1">[UNVERIFIED]</text>
373
+ </g>
374
+ <!-- Verify&#45;&gt;Fext -->
375
+ <g id="edge31" class="edge">
376
+ <title>Verify&#45;&gt;Fext</title>
377
+ <path fill="none" stroke="#94a3b8" stroke-width="1.3" d="M178.28,-280.43C94.18,-256.49 -40.64,-205.67 12.02,-136.25 48.28,-88.45 219.27,-57.06 312.61,-43.18"/>
378
+ <polygon fill="#94a3b8" stroke="#94a3b8" stroke-width="1.3" points="312.76,-45.99 320.27,-42.06 311.95,-40.45 312.76,-45.99"/>
379
+ <text xml:space="preserve" text-anchor="middle" x="33.39" y="-156.45" font-family="Helvetica,sans-Serif" font-size="9.00" fill="#cbd5e1">:confirmed</text>
380
+ <text xml:space="preserve" text-anchor="middle" x="33.39" y="-145.95" font-family="Helvetica,sans-Serif" font-size="9.00" fill="#cbd5e1">:intel obs</text>
335
381
  </g>
336
382
  <!-- Correlate&#45;&gt;Prompt -->
337
- <g id="edge32" class="edge">
383
+ <g id="edge37" class="edge">
338
384
  <title>Correlate&#45;&gt;Prompt</title>
339
- <path fill="none" stroke="#fb7185" stroke-width="2" stroke-dasharray="5,2" d="M448.33,-166.31C617.02,-183.66 918.83,-219.63 950.59,-257.75 981.67,-295.05 981.47,-329.53 950.59,-367 911.03,-415.01 455.12,-414.76 393.59,-424 376.02,-426.64 357.06,-430.67 340.06,-434.73"/>
340
- <polygon fill="#fb7185" stroke="#fb7185" stroke-width="2" points="339.8,-431.91 332.7,-436.53 341.13,-437.35 339.8,-431.91"/>
341
- <text xml:space="preserve" text-anchor="middle" x="1013.2" y="-293.45" font-family="sans-Serif" font-size="9.00" fill="#cbd5e1">findings → next run</text>
385
+ <path fill="none" stroke="#fb7185" stroke-width="2" stroke-dasharray="5,2" d="M688.58,-166C859.66,-183.09 1168.35,-218.92 1200.77,-257.75 1231.89,-295.02 1231.26,-329.21 1200.77,-367 1161.36,-415.85 700.85,-414.78 638.77,-424 621.19,-426.61 602.23,-430.63 585.23,-434.69"/>
386
+ <polygon fill="#fb7185" stroke="#fb7185" stroke-width="2" points="584.97,-431.87 577.87,-436.49 586.3,-437.31 584.97,-431.87"/>
387
+ <text xml:space="preserve" text-anchor="middle" x="1263.25" y="-293.45" font-family="Helvetica,sans-Serif" font-size="9.00" fill="#cbd5e1">findings → next run</text>
342
388
  </g>
343
389
  <!-- Correlate&#45;&gt;Fmet -->
344
390
  <!-- Fmis&#45;&gt;Prompt -->
345
- <g id="edge29" class="edge">
391
+ <g id="edge34" class="edge">
346
392
  <title>Fmis&#45;&gt;Prompt</title>
347
- <path fill="none" stroke="#fb7185" stroke-width="2" stroke-dasharray="5,2" d="M630.71,-52.47C642.18,-65.39 659.54,-82.24 678.59,-91.25 802.47,-149.82 868.26,-62.26 983.59,-136.25 1074.83,-194.78 1130.78,-282.74 1062.59,-367 1015.66,-424.99 467.46,-413.52 393.59,-424 376,-426.5 357.04,-430.49 340.04,-434.55"/>
348
- <polygon fill="#fb7185" stroke="#fb7185" stroke-width="2" points="339.78,-431.74 332.67,-436.36 341.11,-437.17 339.78,-431.74"/>
349
- <text xml:space="preserve" text-anchor="middle" x="1117.63" y="-221.2" font-family="sans-Serif" font-size="9.00" fill="#cbd5e1">KNOWN MISTAKES</text>
350
- <text xml:space="preserve" text-anchor="middle" x="1117.63" y="-210.7" font-family="sans-Serif" font-size="9.00" fill="#cbd5e1">+ KNOWN FIXES</text>
393
+ <path fill="none" stroke="#fb7185" stroke-width="2" stroke-dasharray="5,2" d="M638.51,-52.51C649.9,-65.63 667.34,-82.72 686.77,-91.25 712.15,-102.39 1158.49,-124.87 1183.77,-136.25 1290.91,-184.47 1386.68,-275.67 1312.77,-367 1265.49,-425.42 713.18,-413.46 638.77,-424 621.17,-426.49 602.21,-430.48 585.21,-434.55"/>
394
+ <polygon fill="#fb7185" stroke="#fb7185" stroke-width="2" points="584.95,-431.73 577.85,-436.36 586.28,-437.17 584.95,-431.73"/>
395
+ <text xml:space="preserve" text-anchor="middle" x="1351.6" y="-221.2" font-family="Helvetica,sans-Serif" font-size="9.00" fill="#cbd5e1">KNOWN MISTAKES</text>
396
+ <text xml:space="preserve" text-anchor="middle" x="1351.6" y="-210.7" font-family="Helvetica,sans-Serif" font-size="9.00" fill="#cbd5e1">+ KNOWN FIXES</text>
351
397
  </g>
352
398
  <!-- Fmem&#45;&gt;Prompt -->
353
- <g id="edge27" class="edge">
399
+ <g id="edge32" class="edge">
354
400
  <title>Fmem&#45;&gt;Prompt</title>
355
- <path fill="none" stroke="#fbbf24" stroke-width="1.3" stroke-dasharray="5,2" d="M752.47,-52.54C763.56,-65.32 780.26,-81.95 798.59,-91.25 952.48,-169.27 1081.22,-59.97 1168.59,-208.75 1206.61,-273.48 1162.46,-313.71 1109.59,-367 1087.03,-389.75 1074.8,-388.74 1043.59,-396 761.95,-461.51 680.07,-384.71 393.59,-424 375.65,-426.46 356.31,-430.53 339.06,-434.68"/>
356
- <polygon fill="#fbbf24" stroke="#fbbf24" stroke-width="1.3" points="338.73,-431.88 331.63,-436.52 340.07,-437.32 338.73,-431.88"/>
357
- <text xml:space="preserve" text-anchor="middle" x="1210.36" y="-215.95" font-family="sans-Serif" font-size="9.00" fill="#cbd5e1">MEMORY block</text>
401
+ <path fill="none" stroke="#fbbf24" stroke-width="1.3" stroke-dasharray="5,2" d="M760.26,-52.44C771.45,-65.53 788.59,-82.61 807.77,-91.25 986.98,-172.02 1058.3,-83.87 1247.77,-136.25 1325.31,-157.69 1415.46,-150.31 1402.77,-229.75 1392.64,-293.14 1400.63,-319.21 1357.77,-367 1336.92,-390.25 1324.14,-388.76 1293.77,-396 1152.05,-429.79 783.11,-404.23 638.77,-424 620.83,-426.46 601.48,-430.53 584.24,-434.68"/>
402
+ <polygon fill="#fbbf24" stroke="#fbbf24" stroke-width="1.3" points="583.9,-431.88 576.81,-436.51 585.24,-437.32 583.9,-431.88"/>
403
+ <text xml:space="preserve" text-anchor="middle" x="1436.22" y="-215.95" font-family="Helvetica,sans-Serif" font-size="9.00" fill="#cbd5e1">MEMORY block</text>
358
404
  </g>
359
405
  <!-- Fskl&#45;&gt;Prompt -->
360
- <g id="edge28" class="edge">
406
+ <g id="edge33" class="edge">
361
407
  <title>Fskl&#45;&gt;Prompt</title>
362
- <path fill="none" stroke="#fbbf24" stroke-width="1.3" stroke-dasharray="5,2" d="M1007.1,-43.55C1068.89,-61.81 1201.64,-111.12 1252.59,-208.75 1288.52,-277.58 1236.71,-315.52 1178.59,-367 1152.15,-390.42 1139.17,-388.76 1104.59,-396 795.06,-460.82 706.98,-381.61 393.59,-424 375.65,-426.43 356.3,-430.49 339.06,-434.65"/>
363
- <polygon fill="#fbbf24" stroke="#fbbf24" stroke-width="1.3" points="338.72,-431.84 331.63,-436.48 340.06,-437.28 338.72,-431.84"/>
364
- <text xml:space="preserve" text-anchor="middle" x="1288.2" y="-215.95" font-family="sans-Serif" font-size="9.00" fill="#cbd5e1">SKILLS block</text>
408
+ <path fill="none" stroke="#fbbf24" stroke-width="1.3" stroke-dasharray="5,2" d="M872.48,-52.69C882.15,-65.73 897.13,-82.63 914.77,-91.25 1088.18,-176.05 1162.52,-78.65 1346.77,-136.25 1415.39,-157.7 1495.16,-159.75 1478.77,-229.75 1457.69,-319.76 1443.23,-372.69 1353.77,-396 1199.89,-436.09 796.35,-402.7 638.77,-424 620.82,-426.43 601.48,-430.49 584.23,-434.64"/>
409
+ <polygon fill="#fbbf24" stroke="#fbbf24" stroke-width="1.3" points="583.9,-431.84 576.8,-436.48 585.24,-437.28 583.9,-431.84"/>
410
+ <text xml:space="preserve" text-anchor="middle" x="1508.31" y="-215.95" font-family="Helvetica,sans-Serif" font-size="9.00" fill="#cbd5e1">SKILLS block</text>
365
411
  </g>
366
412
  <!-- Fext&#45;&gt;Prompt -->
367
- <g id="edge30" class="edge">
413
+ <g id="edge35" class="edge">
368
414
  <title>Fext&#45;&gt;Prompt</title>
369
- <path fill="none" stroke="#fbbf24" stroke-width="1.3" stroke-dasharray="5,2" d="M382.38,-52.56C396.13,-65.71 416.81,-82.81 438.59,-91.25 663.41,-178.31 1570.24,4.82 1514.59,-229.75 1498.83,-296.18 1497.91,-323.13 1445.59,-367 1411.11,-395.91 1393.02,-388.84 1348.59,-396 929.38,-463.61 814.67,-369.2 393.59,-424 375.64,-426.34 356.29,-430.38 339.04,-434.54"/>
370
- <polygon fill="#fbbf24" stroke="#fbbf24" stroke-width="1.3" points="338.7,-431.74 331.61,-436.38 340.05,-437.17 338.7,-431.74"/>
371
- <text xml:space="preserve" text-anchor="middle" x="1544.42" y="-215.95" font-family="sans-Serif" font-size="9.00" fill="#cbd5e1">EXTRO block</text>
415
+ <path fill="none" stroke="#fbbf24" stroke-width="1.3" stroke-dasharray="5,2" d="M390.5,-52.69C404.23,-65.91 424.9,-83.05 446.77,-91.25 600.4,-148.86 1020.44,-120.56 1183.77,-136.25 1430.07,-159.92 1572.59,-22.74 1735.77,-208.75 1800.33,-282.34 1713.42,-367.49 1619.77,-396 1515.45,-427.76 746.91,-409.97 638.77,-424 620.81,-426.33 601.46,-430.37 584.22,-434.53"/>
416
+ <polygon fill="#fbbf24" stroke="#fbbf24" stroke-width="1.3" points="583.88,-431.73 576.79,-436.37 585.22,-437.16 583.88,-431.73"/>
417
+ <text xml:space="preserve" text-anchor="middle" x="1777.26" y="-215.95" font-family="Helvetica,sans-Serif" font-size="9.00" fill="#cbd5e1">EXTRO block</text>
372
418
  </g>
373
419
  </g>
374
420
  </svg>