pwn 0.5.618 → 0.5.620

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 (82) hide show
  1. checksums.yaml +4 -4
  2. data/Gemfile +2 -2
  3. data/README.md +14 -6
  4. data/bin/pwn_gqrx_scanner +25 -5
  5. data/documentation/Agent-Tool-Registry.md +3 -3
  6. data/documentation/Diagrams.md +6 -2
  7. data/documentation/Extrospection.md +30 -11
  8. data/documentation/Home.md +5 -4
  9. data/documentation/How-PWN-Works.md +7 -4
  10. data/documentation/Mistakes.md +96 -0
  11. data/documentation/Persistence.md +3 -1
  12. data/documentation/SDR.md +23 -5
  13. data/documentation/Skills-Memory-Learning.md +15 -5
  14. data/documentation/diagrams/agent-tool-registry.svg +94 -92
  15. data/documentation/diagrams/dot/agent-tool-registry.dot +2 -2
  16. data/documentation/diagrams/dot/extrospection-world-awareness.dot +9 -7
  17. data/documentation/diagrams/dot/memory-skills-detailed.dot +12 -5
  18. data/documentation/diagrams/dot/mistakes-negative-feedback.dot +93 -0
  19. data/documentation/diagrams/dot/overall-pwn-architecture.dot +7 -5
  20. data/documentation/diagrams/dot/persistence-filesystem.dot +3 -2
  21. data/documentation/diagrams/dot/pwn-ai-feedback-learning-loop.dot +19 -7
  22. data/documentation/diagrams/dot/sdr-radio-flow.dot +13 -11
  23. data/documentation/diagrams/extrospection-world-awareness.svg +111 -93
  24. data/documentation/diagrams/memory-skills-detailed.svg +146 -97
  25. data/documentation/diagrams/mistakes-negative-feedback.svg +266 -0
  26. data/documentation/diagrams/overall-pwn-architecture.svg +184 -173
  27. data/documentation/diagrams/persistence-filesystem.svg +77 -62
  28. data/documentation/diagrams/pwn-ai-feedback-learning-loop.svg +217 -149
  29. data/documentation/diagrams/sdr-radio-flow.svg +76 -56
  30. data/documentation/pwn-ai-Agent.md +28 -15
  31. data/lib/pwn/ai/agent/extrospection.rb +65 -6
  32. data/lib/pwn/ai/agent/learning.rb +67 -7
  33. data/lib/pwn/ai/agent/loop.rb +72 -6
  34. data/lib/pwn/ai/agent/mistakes.rb +369 -0
  35. data/lib/pwn/ai/agent/prompt_builder.rb +10 -1
  36. data/lib/pwn/ai/agent/tools/extrospection.rb +2 -2
  37. data/lib/pwn/ai/agent/tools/mistakes.rb +132 -0
  38. data/lib/pwn/ai/agent.rb +1 -0
  39. data/lib/pwn/plugins/jira_data_center.rb +2 -2
  40. data/lib/pwn/sdr/decoder/adsb.rb +101 -0
  41. data/lib/pwn/sdr/decoder/apt.rb +75 -0
  42. data/lib/pwn/sdr/decoder/bluetooth.rb +78 -0
  43. data/lib/pwn/sdr/decoder/dect.rb +84 -0
  44. data/lib/pwn/sdr/decoder/gps.rb +83 -0
  45. data/lib/pwn/sdr/decoder/gsm.rb +50 -29
  46. data/lib/pwn/sdr/decoder/iridium.rb +81 -0
  47. data/lib/pwn/sdr/decoder/lora.rb +87 -0
  48. data/lib/pwn/sdr/decoder/lte.rb +88 -0
  49. data/lib/pwn/sdr/decoder/morse.rb +64 -0
  50. data/lib/pwn/sdr/decoder/p25.rb +71 -0
  51. data/lib/pwn/sdr/decoder/pager.rb +77 -0
  52. data/lib/pwn/sdr/decoder/pocsag.rb +26 -11
  53. data/lib/pwn/sdr/decoder/rfid.rb +88 -0
  54. data/lib/pwn/sdr/decoder/rtl433.rb +95 -0
  55. data/lib/pwn/sdr/decoder/rtty.rb +66 -0
  56. data/lib/pwn/sdr/decoder/wifi.rb +98 -0
  57. data/lib/pwn/sdr/decoder/zigbee.rb +96 -0
  58. data/lib/pwn/sdr/decoder.rb +67 -7
  59. data/lib/pwn/sdr/frequency_allocation.rb +82 -41
  60. data/lib/pwn/sdr/gqrx.rb +186 -95
  61. data/lib/pwn/version.rb +1 -1
  62. data/spec/lib/pwn/ai/agent/mistakes_spec.rb +36 -0
  63. data/spec/lib/pwn/ai/agent/tools/mistakes_spec.rb +12 -0
  64. data/spec/lib/pwn/sdr/decoder/adsb_spec.rb +15 -0
  65. data/spec/lib/pwn/sdr/decoder/apt_spec.rb +15 -0
  66. data/spec/lib/pwn/sdr/decoder/bluetooth_spec.rb +15 -0
  67. data/spec/lib/pwn/sdr/decoder/dect_spec.rb +15 -0
  68. data/spec/lib/pwn/sdr/decoder/gps_spec.rb +15 -0
  69. data/spec/lib/pwn/sdr/decoder/iridium_spec.rb +15 -0
  70. data/spec/lib/pwn/sdr/decoder/lora_spec.rb +15 -0
  71. data/spec/lib/pwn/sdr/decoder/lte_spec.rb +15 -0
  72. data/spec/lib/pwn/sdr/decoder/morse_spec.rb +15 -0
  73. data/spec/lib/pwn/sdr/decoder/p25_spec.rb +15 -0
  74. data/spec/lib/pwn/sdr/decoder/pager_spec.rb +15 -0
  75. data/spec/lib/pwn/sdr/decoder/rfid_spec.rb +15 -0
  76. data/spec/lib/pwn/sdr/decoder/rtl433_spec.rb +15 -0
  77. data/spec/lib/pwn/sdr/decoder/rtty_spec.rb +15 -0
  78. data/spec/lib/pwn/sdr/decoder/wifi_spec.rb +15 -0
  79. data/spec/lib/pwn/sdr/decoder/zigbee_spec.rb +15 -0
  80. data/third_party/pwn_rdoc.jsonl +92 -3
  81. metadata +44 -6
  82. data/README.md.bak +0 -200
@@ -4,150 +4,150 @@
4
4
  <!-- Generated by graphviz version 14.1.2 (0)
5
5
  -->
6
6
  <!-- Title: PWN_Agent_Tool_Registry Pages: 1 -->
7
- <svg width="652pt" height="785pt"
8
- viewBox="0.00 0.00 652.00 785.00" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
9
- <g id="graph0" class="graph" transform="scale(1 1) rotate(0) translate(43.2 742.2)">
7
+ <svg width="652pt" height="805pt"
8
+ viewBox="0.00 0.00 652.00 805.00" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
9
+ <g id="graph0" class="graph" transform="scale(1 1) rotate(0) translate(43.2 762.2)">
10
10
  <title>PWN_Agent_Tool_Registry</title>
11
- <polygon fill="#0f172a" stroke="none" points="-43.2,43.2 -43.2,-742.2 608.45,-742.2 608.45,43.2 -43.2,43.2"/>
12
- <text xml:space="preserve" text-anchor="start" x="10.38" y="-677" font-family="sans-Serif" font-weight="bold" font-size="20.00" fill="#e2e8f0">PWN::AI::Agent::Registry — Toolsets exposed to the LLM</text>
13
- <text xml:space="preserve" text-anchor="start" x="152.12" y="-665.55" font-family="sans-Serif" font-size="11.00" fill="#94a3b8">10 toolsets · 45+ callable tools · lib/pwn/ai/agent/tools/*</text>
11
+ <polygon fill="#0f172a" stroke="none" points="-43.2,43.2 -43.2,-762.2 608.45,-762.2 608.45,43.2 -43.2,43.2"/>
12
+ <text xml:space="preserve" text-anchor="start" x="10.38" y="-697" font-family="sans-Serif" font-weight="bold" font-size="20.00" fill="#e2e8f0">PWN::AI::Agent::Registry — Toolsets exposed to the LLM</text>
13
+ <text xml:space="preserve" text-anchor="start" x="155.5" y="-685.55" font-family="sans-Serif" font-size="11.00" fill="#94a3b8">10 toolsets · 52 callable tools · lib/pwn/ai/agent/tools/*</text>
14
14
  <g id="clust1" class="cluster">
15
15
  <title>cluster_ts</title>
16
- <path fill="#022c22" stroke="#047857" stroke-width="2" d="M201.25,-9C201.25,-9 267.75,-9 267.75,-9 273.75,-9 279.75,-15 279.75,-21 279.75,-21 279.75,-629 279.75,-629 279.75,-635 273.75,-641 267.75,-641 267.75,-641 201.25,-641 201.25,-641 195.25,-641 189.25,-635 189.25,-629 189.25,-629 189.25,-21 189.25,-21 189.25,-15 195.25,-9 201.25,-9"/>
17
- <text xml:space="preserve" text-anchor="middle" x="234.5" y="-618" font-family="sans-Serif" font-size="20.00" fill="#a7f3d0">Toolsets</text>
16
+ <path fill="#022c22" stroke="#047857" stroke-width="2" d="M201.25,-14C201.25,-14 267.75,-14 267.75,-14 273.75,-14 279.75,-20 279.75,-26 279.75,-26 279.75,-634 279.75,-634 279.75,-640 273.75,-646 267.75,-646 267.75,-646 201.25,-646 201.25,-646 195.25,-646 189.25,-640 189.25,-634 189.25,-634 189.25,-26 189.25,-26 189.25,-20 195.25,-14 201.25,-14"/>
17
+ <text xml:space="preserve" text-anchor="middle" x="234.5" y="-623" font-family="sans-Serif" font-size="20.00" fill="#a7f3d0">Toolsets</text>
18
18
  </g>
19
19
  <g id="clust2" class="cluster">
20
20
  <title>cluster_tools</title>
21
- <path fill="#422006" stroke="#a16207" stroke-width="2" d="M376.75,-8C376.75,-8 553.25,-8 553.25,-8 559.25,-8 565.25,-14 565.25,-20 565.25,-20 565.25,-640 565.25,-640 565.25,-646 559.25,-652 553.25,-652 553.25,-652 376.75,-652 376.75,-652 370.75,-652 364.75,-646 364.75,-640 364.75,-640 364.75,-20 364.75,-20 364.75,-14 370.75,-8 376.75,-8"/>
22
- <text xml:space="preserve" text-anchor="middle" x="465" y="-629" font-family="sans-Serif" font-size="20.00" fill="#fde68a">Tools &#160;(LLM&#45;callable)</text>
21
+ <path fill="#422006" stroke="#a16207" stroke-width="2" d="M376.75,-8C376.75,-8 553.25,-8 553.25,-8 559.25,-8 565.25,-14 565.25,-20 565.25,-20 565.25,-660 565.25,-660 565.25,-666 559.25,-672 553.25,-672 553.25,-672 376.75,-672 376.75,-672 370.75,-672 364.75,-666 364.75,-660 364.75,-660 364.75,-20 364.75,-20 364.75,-14 370.75,-8 376.75,-8"/>
22
+ <text xml:space="preserve" text-anchor="middle" x="465" y="-649" font-family="sans-Serif" font-size="20.00" fill="#fde68a">Tools &#160;(LLM&#45;callable)</text>
23
23
  </g>
24
24
  <!-- Registry -->
25
25
  <g id="node1" class="node">
26
26
  <title>Registry</title>
27
- <path fill="#c4b5fd" stroke="#334155" stroke-width="2" d="M84.25,-334.38C84.25,-334.38 12,-334.38 12,-334.38 6,-334.38 0,-328.38 0,-322.38 0,-322.38 0,-295.62 0,-295.62 0,-289.62 6,-283.62 12,-283.62 12,-283.62 84.25,-283.62 84.25,-283.62 90.25,-283.62 96.25,-289.62 96.25,-295.62 96.25,-295.62 96.25,-322.38 96.25,-322.38 96.25,-328.38 90.25,-334.38 84.25,-334.38"/>
28
- <text xml:space="preserve" text-anchor="middle" x="48.12" y="-318.98" font-family="sans-Serif" font-size="12.00" fill="#0f172a">Registry</text>
29
- <text xml:space="preserve" text-anchor="middle" x="48.12" y="-304.73" font-family="sans-Serif" font-size="12.00" fill="#0f172a">JSON&#45;Schema</text>
30
- <text xml:space="preserve" text-anchor="middle" x="48.12" y="-290.48" font-family="sans-Serif" font-size="12.00" fill="#0f172a">function defs</text>
27
+ <path fill="#c4b5fd" stroke="#334155" stroke-width="2" d="M84.25,-339.38C84.25,-339.38 12,-339.38 12,-339.38 6,-339.38 0,-333.38 0,-327.38 0,-327.38 0,-300.62 0,-300.62 0,-294.62 6,-288.62 12,-288.62 12,-288.62 84.25,-288.62 84.25,-288.62 90.25,-288.62 96.25,-294.62 96.25,-300.62 96.25,-300.62 96.25,-327.38 96.25,-327.38 96.25,-333.38 90.25,-339.38 84.25,-339.38"/>
28
+ <text xml:space="preserve" text-anchor="middle" x="48.12" y="-323.98" font-family="sans-Serif" font-size="12.00" fill="#0f172a">Registry</text>
29
+ <text xml:space="preserve" text-anchor="middle" x="48.12" y="-309.73" font-family="sans-Serif" font-size="12.00" fill="#0f172a">JSON&#45;Schema</text>
30
+ <text xml:space="preserve" text-anchor="middle" x="48.12" y="-295.48" font-family="sans-Serif" font-size="12.00" fill="#0f172a">function defs</text>
31
31
  </g>
32
32
  <!-- terminal -->
33
33
  <g id="node2" class="node">
34
34
  <title>terminal</title>
35
- <path fill="#6ee7b7" stroke="#334155" stroke-width="1.3" d="M249.5,-53C249.5,-53 219.5,-53 219.5,-53 213.5,-53 207.5,-47 207.5,-41 207.5,-41 207.5,-29 207.5,-29 207.5,-23 213.5,-17 219.5,-17 219.5,-17 249.5,-17 249.5,-17 255.5,-17 261.5,-23 261.5,-29 261.5,-29 261.5,-41 261.5,-41 261.5,-47 255.5,-53 249.5,-53"/>
36
- <text xml:space="preserve" text-anchor="middle" x="234.5" y="-31.5" font-family="sans-Serif" font-size="10.00" fill="#0f172a">terminal</text>
35
+ <path fill="#6ee7b7" stroke="#334155" stroke-width="1.3" d="M249.5,-58C249.5,-58 219.5,-58 219.5,-58 213.5,-58 207.5,-52 207.5,-46 207.5,-46 207.5,-34 207.5,-34 207.5,-28 213.5,-22 219.5,-22 219.5,-22 249.5,-22 249.5,-22 255.5,-22 261.5,-28 261.5,-34 261.5,-34 261.5,-46 261.5,-46 261.5,-52 255.5,-58 249.5,-58"/>
36
+ <text xml:space="preserve" text-anchor="middle" x="234.5" y="-36.5" font-family="sans-Serif" font-size="10.00" fill="#0f172a">terminal</text>
37
37
  </g>
38
38
  <!-- Registry&#45;&gt;terminal -->
39
39
  <g id="edge1" class="edge">
40
40
  <title>Registry&#45;&gt;terminal</title>
41
- <path fill="none" stroke="#94a3b8" stroke-width="1.1" d="M59.65,-282.85C79.6,-235.57 126.6,-134.42 189.25,-66 192.58,-62.37 196.4,-58.92 200.38,-55.73"/>
42
- <polygon fill="#94a3b8" stroke="#94a3b8" stroke-width="1.1" points="201.71,-57.8 205.83,-51.63 198.76,-53.88 201.71,-57.8"/>
41
+ <path fill="none" stroke="#94a3b8" stroke-width="1.1" d="M59.65,-287.85C79.6,-240.57 126.6,-139.42 189.25,-71 192.58,-67.37 196.4,-63.92 200.38,-60.73"/>
42
+ <polygon fill="#94a3b8" stroke="#94a3b8" stroke-width="1.1" points="201.71,-62.8 205.83,-56.63 198.76,-58.88 201.71,-62.8"/>
43
43
  </g>
44
44
  <!-- pwn -->
45
45
  <g id="node3" class="node">
46
46
  <title>pwn</title>
47
- <path fill="#6ee7b7" stroke="#334155" stroke-width="1.3" d="M249.5,-114C249.5,-114 219.5,-114 219.5,-114 213.5,-114 207.5,-108 207.5,-102 207.5,-102 207.5,-90 207.5,-90 207.5,-84 213.5,-78 219.5,-78 219.5,-78 249.5,-78 249.5,-78 255.5,-78 261.5,-84 261.5,-90 261.5,-90 261.5,-102 261.5,-102 261.5,-108 255.5,-114 249.5,-114"/>
48
- <text xml:space="preserve" text-anchor="middle" x="234.5" y="-92.5" font-family="sans-Serif" font-size="10.00" fill="#0f172a">pwn</text>
47
+ <path fill="#6ee7b7" stroke="#334155" stroke-width="1.3" d="M249.5,-119C249.5,-119 219.5,-119 219.5,-119 213.5,-119 207.5,-113 207.5,-107 207.5,-107 207.5,-95 207.5,-95 207.5,-89 213.5,-83 219.5,-83 219.5,-83 249.5,-83 249.5,-83 255.5,-83 261.5,-89 261.5,-95 261.5,-95 261.5,-107 261.5,-107 261.5,-113 255.5,-119 249.5,-119"/>
48
+ <text xml:space="preserve" text-anchor="middle" x="234.5" y="-97.5" font-family="sans-Serif" font-size="10.00" fill="#0f172a">pwn</text>
49
49
  </g>
50
50
  <!-- Registry&#45;&gt;pwn -->
51
51
  <g id="edge2" class="edge">
52
52
  <title>Registry&#45;&gt;pwn</title>
53
- <path fill="none" stroke="#94a3b8" stroke-width="1.1" d="M65.53,-282.9C89.7,-245.65 137.65,-176.32 189.25,-127 192.72,-123.68 196.58,-120.44 200.53,-117.4"/>
54
- <polygon fill="#94a3b8" stroke="#94a3b8" stroke-width="1.1" points="201.7,-119.58 205.87,-113.45 198.78,-115.64 201.7,-119.58"/>
53
+ <path fill="none" stroke="#94a3b8" stroke-width="1.1" d="M65.53,-287.9C89.7,-250.65 137.65,-181.32 189.25,-132 192.72,-128.68 196.58,-125.44 200.53,-122.4"/>
54
+ <polygon fill="#94a3b8" stroke="#94a3b8" stroke-width="1.1" points="201.7,-124.58 205.87,-118.45 198.78,-120.64 201.7,-124.58"/>
55
55
  </g>
56
56
  <!-- memory -->
57
57
  <g id="node4" class="node">
58
58
  <title>memory</title>
59
- <path fill="#6ee7b7" stroke="#334155" stroke-width="1.3" d="M249.5,-175C249.5,-175 219.5,-175 219.5,-175 213.5,-175 207.5,-169 207.5,-163 207.5,-163 207.5,-151 207.5,-151 207.5,-145 213.5,-139 219.5,-139 219.5,-139 249.5,-139 249.5,-139 255.5,-139 261.5,-145 261.5,-151 261.5,-151 261.5,-163 261.5,-163 261.5,-169 255.5,-175 249.5,-175"/>
60
- <text xml:space="preserve" text-anchor="middle" x="234.5" y="-153.5" font-family="sans-Serif" font-size="10.00" fill="#0f172a">memory</text>
59
+ <path fill="#6ee7b7" stroke="#334155" stroke-width="1.3" d="M249.5,-180C249.5,-180 219.5,-180 219.5,-180 213.5,-180 207.5,-174 207.5,-168 207.5,-168 207.5,-156 207.5,-156 207.5,-150 213.5,-144 219.5,-144 219.5,-144 249.5,-144 249.5,-144 255.5,-144 261.5,-150 261.5,-156 261.5,-156 261.5,-168 261.5,-168 261.5,-174 255.5,-180 249.5,-180"/>
60
+ <text xml:space="preserve" text-anchor="middle" x="234.5" y="-158.5" font-family="sans-Serif" font-size="10.00" fill="#0f172a">memory</text>
61
61
  </g>
62
62
  <!-- Registry&#45;&gt;memory -->
63
63
  <g id="edge3" class="edge">
64
64
  <title>Registry&#45;&gt;memory</title>
65
- <path fill="none" stroke="#94a3b8" stroke-width="1.1" d="M77.66,-282.86C105.48,-257.74 149.31,-219.11 189.25,-188 192.68,-185.33 196.31,-182.61 199.97,-179.95"/>
66
- <polygon fill="#94a3b8" stroke="#94a3b8" stroke-width="1.1" points="201.36,-181.97 205.62,-175.9 198.51,-177.99 201.36,-181.97"/>
65
+ <path fill="none" stroke="#94a3b8" stroke-width="1.1" d="M77.66,-287.86C105.48,-262.74 149.31,-224.11 189.25,-193 192.68,-190.33 196.31,-187.61 199.97,-184.95"/>
66
+ <polygon fill="#94a3b8" stroke="#94a3b8" stroke-width="1.1" points="201.36,-186.97 205.62,-180.9 198.51,-182.99 201.36,-186.97"/>
67
67
  </g>
68
68
  <!-- skills -->
69
69
  <g id="node5" class="node">
70
70
  <title>skills</title>
71
- <path fill="#6ee7b7" stroke="#334155" stroke-width="1.3" d="M249.5,-236C249.5,-236 219.5,-236 219.5,-236 213.5,-236 207.5,-230 207.5,-224 207.5,-224 207.5,-212 207.5,-212 207.5,-206 213.5,-200 219.5,-200 219.5,-200 249.5,-200 249.5,-200 255.5,-200 261.5,-206 261.5,-212 261.5,-212 261.5,-224 261.5,-224 261.5,-230 255.5,-236 249.5,-236"/>
72
- <text xml:space="preserve" text-anchor="middle" x="234.5" y="-214.5" font-family="sans-Serif" font-size="10.00" fill="#0f172a">skills</text>
71
+ <path fill="#6ee7b7" stroke="#334155" stroke-width="1.3" d="M249.5,-241C249.5,-241 219.5,-241 219.5,-241 213.5,-241 207.5,-235 207.5,-229 207.5,-229 207.5,-217 207.5,-217 207.5,-211 213.5,-205 219.5,-205 219.5,-205 249.5,-205 249.5,-205 255.5,-205 261.5,-211 261.5,-217 261.5,-217 261.5,-229 261.5,-229 261.5,-235 255.5,-241 249.5,-241"/>
72
+ <text xml:space="preserve" text-anchor="middle" x="234.5" y="-219.5" font-family="sans-Serif" font-size="10.00" fill="#0f172a">skills</text>
73
73
  </g>
74
74
  <!-- Registry&#45;&gt;skills -->
75
75
  <g id="edge4" class="edge">
76
76
  <title>Registry&#45;&gt;skills</title>
77
- <path fill="none" stroke="#94a3b8" stroke-width="1.1" d="M97.09,-285.33C129.08,-269.54 170.38,-249.16 199.11,-234.97"/>
78
- <polygon fill="#94a3b8" stroke="#94a3b8" stroke-width="1.1" points="200.18,-237.18 205.38,-231.88 198.01,-232.78 200.18,-237.18"/>
77
+ <path fill="none" stroke="#94a3b8" stroke-width="1.1" d="M97.09,-290.33C129.08,-274.54 170.38,-254.16 199.11,-239.97"/>
78
+ <polygon fill="#94a3b8" stroke="#94a3b8" stroke-width="1.1" points="200.18,-242.18 205.38,-236.88 198.01,-237.78 200.18,-242.18"/>
79
79
  </g>
80
80
  <!-- sessions -->
81
81
  <g id="node6" class="node">
82
82
  <title>sessions</title>
83
- <path fill="#6ee7b7" stroke="#334155" stroke-width="1.3" d="M250,-297C250,-297 219,-297 219,-297 213,-297 207,-291 207,-285 207,-285 207,-273 207,-273 207,-267 213,-261 219,-261 219,-261 250,-261 250,-261 256,-261 262,-267 262,-273 262,-273 262,-285 262,-285 262,-291 256,-297 250,-297"/>
84
- <text xml:space="preserve" text-anchor="middle" x="234.5" y="-275.5" font-family="sans-Serif" font-size="10.00" fill="#0f172a">sessions</text>
83
+ <path fill="#6ee7b7" stroke="#334155" stroke-width="1.3" d="M250,-302C250,-302 219,-302 219,-302 213,-302 207,-296 207,-290 207,-290 207,-278 207,-278 207,-272 213,-266 219,-266 219,-266 250,-266 250,-266 256,-266 262,-272 262,-278 262,-278 262,-290 262,-290 262,-296 256,-302 250,-302"/>
84
+ <text xml:space="preserve" text-anchor="middle" x="234.5" y="-280.5" font-family="sans-Serif" font-size="10.00" fill="#0f172a">sessions</text>
85
85
  </g>
86
86
  <!-- Registry&#45;&gt;sessions -->
87
87
  <g id="edge5" class="edge">
88
88
  <title>Registry&#45;&gt;sessions</title>
89
- <path fill="none" stroke="#94a3b8" stroke-width="1.1" d="M97.09,-301.2C128.71,-296.05 169.42,-289.43 198.11,-284.76"/>
90
- <polygon fill="#94a3b8" stroke="#94a3b8" stroke-width="1.1" points="198.45,-287.19 204.96,-283.64 197.66,-282.35 198.45,-287.19"/>
89
+ <path fill="none" stroke="#94a3b8" stroke-width="1.1" d="M97.09,-306.2C128.71,-301.05 169.42,-294.43 198.11,-289.76"/>
90
+ <polygon fill="#94a3b8" stroke="#94a3b8" stroke-width="1.1" points="198.45,-292.19 204.96,-288.64 197.66,-287.35 198.45,-292.19"/>
91
91
  </g>
92
92
  <!-- learning -->
93
93
  <g id="node7" class="node">
94
94
  <title>learning</title>
95
- <path fill="#6ee7b7" stroke="#334155" stroke-width="1.3" d="M249.5,-358C249.5,-358 219.5,-358 219.5,-358 213.5,-358 207.5,-352 207.5,-346 207.5,-346 207.5,-334 207.5,-334 207.5,-328 213.5,-322 219.5,-322 219.5,-322 249.5,-322 249.5,-322 255.5,-322 261.5,-328 261.5,-334 261.5,-334 261.5,-346 261.5,-346 261.5,-352 255.5,-358 249.5,-358"/>
96
- <text xml:space="preserve" text-anchor="middle" x="234.5" y="-336.5" font-family="sans-Serif" font-size="10.00" fill="#0f172a">learning</text>
95
+ <path fill="#6ee7b7" stroke="#334155" stroke-width="1.3" d="M249.5,-363C249.5,-363 219.5,-363 219.5,-363 213.5,-363 207.5,-357 207.5,-351 207.5,-351 207.5,-339 207.5,-339 207.5,-333 213.5,-327 219.5,-327 219.5,-327 249.5,-327 249.5,-327 255.5,-327 261.5,-333 261.5,-339 261.5,-339 261.5,-351 261.5,-351 261.5,-357 255.5,-363 249.5,-363"/>
96
+ <text xml:space="preserve" text-anchor="middle" x="234.5" y="-341.5" font-family="sans-Serif" font-size="10.00" fill="#0f172a">learning</text>
97
97
  </g>
98
98
  <!-- Registry&#45;&gt;learning -->
99
99
  <g id="edge6" class="edge">
100
100
  <title>Registry&#45;&gt;learning</title>
101
- <path fill="none" stroke="#94a3b8" stroke-width="1.1" d="M97.09,-317.06C128.8,-322.4 169.67,-329.27 198.37,-334.09"/>
102
- <polygon fill="#94a3b8" stroke="#94a3b8" stroke-width="1.1" points="197.92,-336.5 205.23,-335.25 198.73,-331.67 197.92,-336.5"/>
101
+ <path fill="none" stroke="#94a3b8" stroke-width="1.1" d="M97.09,-322.06C128.8,-327.4 169.67,-334.27 198.37,-339.09"/>
102
+ <polygon fill="#94a3b8" stroke="#94a3b8" stroke-width="1.1" points="197.92,-341.5 205.23,-340.25 198.73,-336.67 197.92,-341.5"/>
103
103
  </g>
104
104
  <!-- metrics -->
105
105
  <g id="node8" class="node">
106
106
  <title>metrics</title>
107
- <path fill="#6ee7b7" stroke="#334155" stroke-width="1.3" d="M249.5,-419C249.5,-419 219.5,-419 219.5,-419 213.5,-419 207.5,-413 207.5,-407 207.5,-407 207.5,-395 207.5,-395 207.5,-389 213.5,-383 219.5,-383 219.5,-383 249.5,-383 249.5,-383 255.5,-383 261.5,-389 261.5,-395 261.5,-395 261.5,-407 261.5,-407 261.5,-413 255.5,-419 249.5,-419"/>
108
- <text xml:space="preserve" text-anchor="middle" x="234.5" y="-397.5" font-family="sans-Serif" font-size="10.00" fill="#0f172a">metrics</text>
107
+ <path fill="#6ee7b7" stroke="#334155" stroke-width="1.3" d="M249.5,-424C249.5,-424 219.5,-424 219.5,-424 213.5,-424 207.5,-418 207.5,-412 207.5,-412 207.5,-400 207.5,-400 207.5,-394 213.5,-388 219.5,-388 219.5,-388 249.5,-388 249.5,-388 255.5,-388 261.5,-394 261.5,-400 261.5,-400 261.5,-412 261.5,-412 261.5,-418 255.5,-424 249.5,-424"/>
108
+ <text xml:space="preserve" text-anchor="middle" x="234.5" y="-402.5" font-family="sans-Serif" font-size="10.00" fill="#0f172a">metrics</text>
109
109
  </g>
110
110
  <!-- Registry&#45;&gt;metrics -->
111
111
  <g id="edge7" class="edge">
112
112
  <title>Registry&#45;&gt;metrics</title>
113
- <path fill="none" stroke="#94a3b8" stroke-width="1.1" d="M97.09,-332.93C129.21,-348.96 170.73,-369.68 199.48,-384.03"/>
114
- <polygon fill="#94a3b8" stroke="#94a3b8" stroke-width="1.1" points="198.02,-386.03 205.38,-386.97 200.21,-381.65 198.02,-386.03"/>
113
+ <path fill="none" stroke="#94a3b8" stroke-width="1.1" d="M97.09,-337.93C129.21,-353.96 170.73,-374.68 199.48,-389.03"/>
114
+ <polygon fill="#94a3b8" stroke="#94a3b8" stroke-width="1.1" points="198.02,-391.03 205.38,-391.97 200.21,-386.65 198.02,-391.03"/>
115
115
  </g>
116
116
  <!-- extro -->
117
117
  <g id="node9" class="node">
118
118
  <title>extro</title>
119
- <path fill="#6ee7b7" stroke="#334155" stroke-width="1.3" d="M259.75,-480C259.75,-480 209.25,-480 209.25,-480 203.25,-480 197.25,-474 197.25,-468 197.25,-468 197.25,-456 197.25,-456 197.25,-450 203.25,-444 209.25,-444 209.25,-444 259.75,-444 259.75,-444 265.75,-444 271.75,-450 271.75,-456 271.75,-456 271.75,-468 271.75,-468 271.75,-474 265.75,-480 259.75,-480"/>
120
- <text xml:space="preserve" text-anchor="middle" x="234.5" y="-458.5" font-family="sans-Serif" font-size="10.00" fill="#0f172a">extrospection</text>
119
+ <path fill="#6ee7b7" stroke="#334155" stroke-width="1.3" d="M259.75,-485C259.75,-485 209.25,-485 209.25,-485 203.25,-485 197.25,-479 197.25,-473 197.25,-473 197.25,-461 197.25,-461 197.25,-455 203.25,-449 209.25,-449 209.25,-449 259.75,-449 259.75,-449 265.75,-449 271.75,-455 271.75,-461 271.75,-461 271.75,-473 271.75,-473 271.75,-479 265.75,-485 259.75,-485"/>
120
+ <text xml:space="preserve" text-anchor="middle" x="234.5" y="-463.5" font-family="sans-Serif" font-size="10.00" fill="#0f172a">extrospection</text>
121
121
  </g>
122
122
  <!-- Registry&#45;&gt;extro -->
123
123
  <g id="edge8" class="edge">
124
124
  <title>Registry&#45;&gt;extro</title>
125
- <path fill="none" stroke="#94a3b8" stroke-width="1.1" d="M76.96,-335.28C104.62,-360.95 148.66,-400.62 189.25,-432 192.06,-434.17 195.02,-436.36 198.01,-438.52"/>
126
- <polygon fill="#94a3b8" stroke="#94a3b8" stroke-width="1.1" points="196.54,-440.48 203.68,-442.51 199.37,-436.48 196.54,-440.48"/>
125
+ <path fill="none" stroke="#94a3b8" stroke-width="1.1" d="M76.96,-340.28C104.62,-365.95 148.66,-405.62 189.25,-437 192.06,-439.17 195.02,-441.36 198.01,-443.52"/>
126
+ <polygon fill="#94a3b8" stroke="#94a3b8" stroke-width="1.1" points="196.54,-445.48 203.68,-447.51 199.37,-441.48 196.54,-445.48"/>
127
127
  </g>
128
128
  <!-- cron -->
129
129
  <g id="node10" class="node">
130
130
  <title>cron</title>
131
- <path fill="#6ee7b7" stroke="#334155" stroke-width="1.3" d="M249.5,-541C249.5,-541 219.5,-541 219.5,-541 213.5,-541 207.5,-535 207.5,-529 207.5,-529 207.5,-517 207.5,-517 207.5,-511 213.5,-505 219.5,-505 219.5,-505 249.5,-505 249.5,-505 255.5,-505 261.5,-511 261.5,-517 261.5,-517 261.5,-529 261.5,-529 261.5,-535 255.5,-541 249.5,-541"/>
132
- <text xml:space="preserve" text-anchor="middle" x="234.5" y="-519.5" font-family="sans-Serif" font-size="10.00" fill="#0f172a">cron</text>
131
+ <path fill="#6ee7b7" stroke="#334155" stroke-width="1.3" d="M249.5,-546C249.5,-546 219.5,-546 219.5,-546 213.5,-546 207.5,-540 207.5,-534 207.5,-534 207.5,-522 207.5,-522 207.5,-516 213.5,-510 219.5,-510 219.5,-510 249.5,-510 249.5,-510 255.5,-510 261.5,-516 261.5,-522 261.5,-522 261.5,-534 261.5,-534 261.5,-540 255.5,-546 249.5,-546"/>
132
+ <text xml:space="preserve" text-anchor="middle" x="234.5" y="-524.5" font-family="sans-Serif" font-size="10.00" fill="#0f172a">cron</text>
133
133
  </g>
134
134
  <!-- Registry&#45;&gt;cron -->
135
135
  <g id="edge9" class="edge">
136
136
  <title>Registry&#45;&gt;cron</title>
137
- <path fill="none" stroke="#94a3b8" stroke-width="1.1" d="M65.16,-335.2C89.07,-372.93 136.9,-443.46 189.25,-493 192.62,-496.19 196.36,-499.28 200.2,-502.18"/>
138
- <polygon fill="#94a3b8" stroke="#94a3b8" stroke-width="1.1" points="198.7,-504.12 205.81,-506.22 201.56,-500.14 198.7,-504.12"/>
137
+ <path fill="none" stroke="#94a3b8" stroke-width="1.1" d="M65.16,-340.2C89.07,-377.93 136.9,-448.46 189.25,-498 192.62,-501.19 196.36,-504.28 200.2,-507.18"/>
138
+ <polygon fill="#94a3b8" stroke="#94a3b8" stroke-width="1.1" points="198.7,-509.12 205.81,-511.22 201.56,-505.14 198.7,-509.12"/>
139
139
  </g>
140
140
  <!-- swarm -->
141
141
  <g id="node11" class="node">
142
142
  <title>swarm</title>
143
- <path fill="#6ee7b7" stroke="#334155" stroke-width="1.3" d="M249.5,-602C249.5,-602 219.5,-602 219.5,-602 213.5,-602 207.5,-596 207.5,-590 207.5,-590 207.5,-578 207.5,-578 207.5,-572 213.5,-566 219.5,-566 219.5,-566 249.5,-566 249.5,-566 255.5,-566 261.5,-572 261.5,-578 261.5,-578 261.5,-590 261.5,-590 261.5,-596 255.5,-602 249.5,-602"/>
144
- <text xml:space="preserve" text-anchor="middle" x="234.5" y="-580.5" font-family="sans-Serif" font-size="10.00" fill="#0f172a">swarm</text>
143
+ <path fill="#6ee7b7" stroke="#334155" stroke-width="1.3" d="M249.5,-607C249.5,-607 219.5,-607 219.5,-607 213.5,-607 207.5,-601 207.5,-595 207.5,-595 207.5,-583 207.5,-583 207.5,-577 213.5,-571 219.5,-571 219.5,-571 249.5,-571 249.5,-571 255.5,-571 261.5,-577 261.5,-583 261.5,-583 261.5,-595 261.5,-595 261.5,-601 255.5,-607 249.5,-607"/>
144
+ <text xml:space="preserve" text-anchor="middle" x="234.5" y="-585.5" font-family="sans-Serif" font-size="10.00" fill="#0f172a">swarm</text>
145
145
  </g>
146
146
  <!-- Registry&#45;&gt;swarm -->
147
147
  <g id="edge10" class="edge">
148
148
  <title>Registry&#45;&gt;swarm</title>
149
- <path fill="none" stroke="#94a3b8" stroke-width="1.1" d="M59.34,-335.09C78.95,-382.76 125.64,-485.35 189.25,-554 192.56,-557.58 196.38,-560.95 200.35,-564.05"/>
150
- <polygon fill="#94a3b8" stroke="#94a3b8" stroke-width="1.1" points="198.69,-565.87 205.79,-568.02 201.58,-561.91 198.69,-565.87"/>
149
+ <path fill="none" stroke="#94a3b8" stroke-width="1.1" d="M59.34,-340.09C78.95,-387.76 125.64,-490.35 189.25,-559 192.56,-562.58 196.38,-565.95 200.35,-569.05"/>
150
+ <polygon fill="#94a3b8" stroke="#94a3b8" stroke-width="1.1" points="198.69,-570.87 205.79,-573.02 201.58,-566.91 198.69,-570.87"/>
151
151
  </g>
152
152
  <!-- t_shell -->
153
153
  <g id="node12" class="node">
@@ -158,8 +158,8 @@
158
158
  <!-- terminal&#45;&gt;t_shell -->
159
159
  <g id="edge11" class="edge">
160
160
  <title>terminal&#45;&gt;t_shell</title>
161
- <path fill="none" stroke="#f59e0b" stroke-width="1.1" d="M262.1,-34.88C303.37,-34.7 382.84,-34.35 428.65,-34.15"/>
162
- <polygon fill="#f59e0b" stroke="#f59e0b" stroke-width="1.1" points="428.41,-36.6 435.4,-34.12 428.39,-31.7 428.41,-36.6"/>
161
+ <path fill="none" stroke="#f59e0b" stroke-width="1.1" d="M262.1,-39.3C303.37,-38.21 382.84,-36.12 428.65,-34.92"/>
162
+ <polygon fill="#f59e0b" stroke="#f59e0b" stroke-width="1.1" points="428.47,-37.37 435.4,-34.74 428.34,-32.47 428.47,-37.37"/>
163
163
  </g>
164
164
  <!-- t_eval -->
165
165
  <g id="node13" class="node">
@@ -170,8 +170,8 @@
170
170
  <!-- pwn&#45;&gt;t_eval -->
171
171
  <g id="edge12" class="edge">
172
172
  <title>pwn&#45;&gt;t_eval</title>
173
- <path fill="none" stroke="#f59e0b" stroke-width="1.1" d="M262.1,-95.88C303.04,-95.7 381.57,-95.36 427.54,-95.16"/>
174
- <polygon fill="#f59e0b" stroke="#f59e0b" stroke-width="1.1" points="427.35,-97.61 434.34,-95.13 427.33,-92.71 427.35,-97.61"/>
173
+ <path fill="none" stroke="#f59e0b" stroke-width="1.1" d="M262.1,-100.3C303.04,-99.22 381.57,-97.16 427.54,-95.95"/>
174
+ <polygon fill="#f59e0b" stroke="#f59e0b" stroke-width="1.1" points="427.41,-98.4 434.34,-95.77 427.28,-93.5 427.41,-98.4"/>
175
175
  </g>
176
176
  <!-- t_mem -->
177
177
  <g id="node14" class="node">
@@ -183,8 +183,8 @@
183
183
  <!-- memory&#45;&gt;t_mem -->
184
184
  <g id="edge13" class="edge">
185
185
  <title>memory&#45;&gt;t_mem</title>
186
- <path fill="none" stroke="#f59e0b" stroke-width="1.1" d="M262.1,-156.88C297.6,-156.73 361.35,-156.45 407.64,-156.24"/>
187
- <polygon fill="#f59e0b" stroke="#f59e0b" stroke-width="1.1" points="407.42,-158.7 414.41,-156.22 407.4,-153.8 407.42,-158.7"/>
186
+ <path fill="none" stroke="#f59e0b" stroke-width="1.1" d="M262.1,-161.3C297.6,-160.37 361.35,-158.69 407.64,-157.47"/>
187
+ <polygon fill="#f59e0b" stroke="#f59e0b" stroke-width="1.1" points="407.47,-159.93 414.41,-157.29 407.34,-155.03 407.47,-159.93"/>
188
188
  </g>
189
189
  <!-- t_skill -->
190
190
  <g id="node15" class="node">
@@ -196,8 +196,8 @@
196
196
  <!-- skills&#45;&gt;t_skill -->
197
197
  <g id="edge14" class="edge">
198
198
  <title>skills&#45;&gt;t_skill</title>
199
- <path fill="none" stroke="#f59e0b" stroke-width="1.1" d="M262.1,-217.88C292.17,-217.75 342.5,-217.53 385.32,-217.34"/>
200
- <polygon fill="#f59e0b" stroke="#f59e0b" stroke-width="1.1" points="385.13,-219.79 392.11,-217.31 385.1,-214.89 385.13,-219.79"/>
199
+ <path fill="none" stroke="#f59e0b" stroke-width="1.1" d="M262.1,-222.3C292.17,-221.51 342.5,-220.18 385.32,-219.06"/>
200
+ <polygon fill="#f59e0b" stroke="#f59e0b" stroke-width="1.1" points="385.18,-221.51 392.12,-218.88 385.05,-216.61 385.18,-221.51"/>
201
201
  </g>
202
202
  <!-- t_sess -->
203
203
  <g id="node16" class="node">
@@ -209,76 +209,78 @@
209
209
  <!-- sessions&#45;&gt;t_sess -->
210
210
  <g id="edge15" class="edge">
211
211
  <title>sessions&#45;&gt;t_sess</title>
212
- <path fill="none" stroke="#f59e0b" stroke-width="1.1" d="M262.55,-278.88C297.24,-278.73 358.36,-278.46 404.12,-278.26"/>
213
- <polygon fill="#f59e0b" stroke="#f59e0b" stroke-width="1.1" points="404.11,-280.71 411.1,-278.23 404.08,-275.81 404.11,-280.71"/>
212
+ <path fill="none" stroke="#f59e0b" stroke-width="1.1" d="M262.55,-283.29C297.24,-282.38 358.36,-280.77 404.12,-279.56"/>
213
+ <polygon fill="#f59e0b" stroke="#f59e0b" stroke-width="1.1" points="404.16,-282.01 411.1,-279.38 404.03,-277.11 404.16,-282.01"/>
214
214
  </g>
215
215
  <!-- t_learn -->
216
216
  <g id="node17" class="node">
217
217
  <title>t_learn</title>
218
- <path fill="#fcd34d" stroke="#334155" stroke-width="1.3" d="M520.88,-360.75C520.88,-360.75 408.12,-360.75 408.12,-360.75 402.12,-360.75 396.12,-354.75 396.12,-348.75 396.12,-348.75 396.12,-333.25 396.12,-333.25 396.12,-327.25 402.12,-321.25 408.12,-321.25 408.12,-321.25 520.88,-321.25 520.88,-321.25 526.88,-321.25 532.88,-327.25 532.88,-333.25 532.88,-333.25 532.88,-348.75 532.88,-348.75 532.88,-354.75 526.88,-360.75 520.88,-360.75"/>
219
- <text xml:space="preserve" text-anchor="middle" x="464.5" y="-348.2" font-family="sans-Serif" font-size="9.00" fill="#0f172a">learning_note_outcome</text>
220
- <text xml:space="preserve" text-anchor="middle" x="464.5" y="-337.7" font-family="sans-Serif" font-size="9.00" fill="#0f172a">reflect · distill_skill</text>
221
- <text xml:space="preserve" text-anchor="middle" x="464.5" y="-327.2" font-family="sans-Serif" font-size="9.00" fill="#0f172a">consolidate · outcomes · reset</text>
218
+ <path fill="#fcd34d" stroke="#334155" stroke-width="1.3" d="M520.88,-381.25C520.88,-381.25 408.12,-381.25 408.12,-381.25 402.12,-381.25 396.12,-375.25 396.12,-369.25 396.12,-369.25 396.12,-332.75 396.12,-332.75 396.12,-326.75 402.12,-320.75 408.12,-320.75 408.12,-320.75 520.88,-320.75 520.88,-320.75 526.88,-320.75 532.88,-326.75 532.88,-332.75 532.88,-332.75 532.88,-369.25 532.88,-369.25 532.88,-375.25 526.88,-381.25 520.88,-381.25"/>
219
+ <text xml:space="preserve" text-anchor="middle" x="464.5" y="-368.7" font-family="sans-Serif" font-size="9.00" fill="#0f172a">learning_note_outcome</text>
220
+ <text xml:space="preserve" text-anchor="middle" x="464.5" y="-358.2" font-family="sans-Serif" font-size="9.00" fill="#0f172a">reflect · distill_skill</text>
221
+ <text xml:space="preserve" text-anchor="middle" x="464.5" y="-347.7" font-family="sans-Serif" font-size="9.00" fill="#0f172a">consolidate · outcomes · reset</text>
222
+ <text xml:space="preserve" text-anchor="middle" x="464.5" y="-337.2" font-family="sans-Serif" font-size="9.00" fill="#0f172a">mistakes_list · record</text>
223
+ <text xml:space="preserve" text-anchor="middle" x="464.5" y="-326.7" font-family="sans-Serif" font-size="9.00" fill="#0f172a">mistakes_resolve · reset</text>
222
224
  </g>
223
225
  <!-- learning&#45;&gt;t_learn -->
224
226
  <g id="edge16" class="edge">
225
227
  <title>learning&#45;&gt;t_learn</title>
226
- <path fill="none" stroke="#f59e0b" stroke-width="1.1" d="M262.1,-340.12C292.61,-340.25 343.98,-340.48 387.2,-340.67"/>
227
- <polygon fill="#f59e0b" stroke="#f59e0b" stroke-width="1.1" points="387.05,-343.11 394.06,-340.7 387.07,-338.21 387.05,-343.11"/>
228
+ <path fill="none" stroke="#f59e0b" stroke-width="1.1" d="M262.1,-345.7C292.61,-346.5 343.98,-347.85 387.2,-348.99"/>
229
+ <polygon fill="#f59e0b" stroke="#f59e0b" stroke-width="1.1" points="387,-351.44 394.06,-349.17 387.13,-346.54 387,-351.44"/>
228
230
  </g>
229
231
  <!-- t_metric -->
230
232
  <g id="node18" class="node">
231
233
  <title>t_metric</title>
232
- <path fill="#fcd34d" stroke="#334155" stroke-width="1.3" d="M496.5,-422C496.5,-422 432.5,-422 432.5,-422 426.5,-422 420.5,-416 420.5,-410 420.5,-410 420.5,-398 420.5,-398 420.5,-392 426.5,-386 432.5,-386 432.5,-386 496.5,-386 496.5,-386 502.5,-386 508.5,-392 508.5,-398 508.5,-398 508.5,-410 508.5,-410 508.5,-416 502.5,-422 496.5,-422"/>
233
- <text xml:space="preserve" text-anchor="middle" x="464.5" y="-405.95" font-family="sans-Serif" font-size="9.00" fill="#0f172a">metrics_summary</text>
234
- <text xml:space="preserve" text-anchor="middle" x="464.5" y="-395.45" font-family="sans-Serif" font-size="9.00" fill="#0f172a">metrics_reset</text>
234
+ <path fill="#fcd34d" stroke="#334155" stroke-width="1.3" d="M496.5,-442C496.5,-442 432.5,-442 432.5,-442 426.5,-442 420.5,-436 420.5,-430 420.5,-430 420.5,-418 420.5,-418 420.5,-412 426.5,-406 432.5,-406 432.5,-406 496.5,-406 496.5,-406 502.5,-406 508.5,-412 508.5,-418 508.5,-418 508.5,-430 508.5,-430 508.5,-436 502.5,-442 496.5,-442"/>
235
+ <text xml:space="preserve" text-anchor="middle" x="464.5" y="-425.95" font-family="sans-Serif" font-size="9.00" fill="#0f172a">metrics_summary</text>
236
+ <text xml:space="preserve" text-anchor="middle" x="464.5" y="-415.45" font-family="sans-Serif" font-size="9.00" fill="#0f172a">metrics_reset</text>
235
237
  </g>
236
238
  <!-- metrics&#45;&gt;t_metric -->
237
239
  <g id="edge17" class="edge">
238
240
  <title>metrics&#45;&gt;t_metric</title>
239
- <path fill="none" stroke="#f59e0b" stroke-width="1.1" d="M262.1,-401.35C298.59,-401.83 364.95,-402.7 411.49,-403.32"/>
240
- <polygon fill="#f59e0b" stroke="#f59e0b" stroke-width="1.1" points="411.25,-405.76 418.28,-403.4 411.31,-400.86 411.25,-405.76"/>
241
+ <path fill="none" stroke="#f59e0b" stroke-width="1.1" d="M262.1,-408.1C298.59,-410.98 364.95,-416.22 411.49,-419.89"/>
242
+ <polygon fill="#f59e0b" stroke="#f59e0b" stroke-width="1.1" points="411.11,-422.32 418.28,-420.43 411.5,-417.44 411.11,-422.32"/>
241
243
  </g>
242
244
  <!-- t_extro -->
243
245
  <g id="node19" class="node">
244
246
  <title>t_extro</title>
245
- <path fill="#fcd34d" stroke="#334155" stroke-width="1.3" d="M513,-486.75C513,-486.75 416,-486.75 416,-486.75 410,-486.75 404,-480.75 404,-474.75 404,-474.75 404,-459.25 404,-459.25 404,-453.25 410,-447.25 416,-447.25 416,-447.25 513,-447.25 513,-447.25 519,-447.25 525,-453.25 525,-459.25 525,-459.25 525,-474.75 525,-474.75 525,-480.75 519,-486.75 513,-486.75"/>
246
- <text xml:space="preserve" text-anchor="middle" x="464.5" y="-474.2" font-family="sans-Serif" font-size="9.00" fill="#0f172a">extro_snapshot · drift</text>
247
- <text xml:space="preserve" text-anchor="middle" x="464.5" y="-463.7" font-family="sans-Serif" font-size="9.00" fill="#0f172a">observe · intel · correlate</text>
248
- <text xml:space="preserve" text-anchor="middle" x="464.5" y="-453.2" font-family="sans-Serif" font-size="9.00" fill="#0f172a">observations · stats · reset</text>
247
+ <path fill="#fcd34d" stroke="#334155" stroke-width="1.3" d="M513,-506.75C513,-506.75 416,-506.75 416,-506.75 410,-506.75 404,-500.75 404,-494.75 404,-494.75 404,-479.25 404,-479.25 404,-473.25 410,-467.25 416,-467.25 416,-467.25 513,-467.25 513,-467.25 519,-467.25 525,-473.25 525,-479.25 525,-479.25 525,-494.75 525,-494.75 525,-500.75 519,-506.75 513,-506.75"/>
248
+ <text xml:space="preserve" text-anchor="middle" x="464.5" y="-494.2" font-family="sans-Serif" font-size="9.00" fill="#0f172a">extro_snapshot · drift</text>
249
+ <text xml:space="preserve" text-anchor="middle" x="464.5" y="-483.7" font-family="sans-Serif" font-size="9.00" fill="#0f172a">observe · intel · correlate</text>
250
+ <text xml:space="preserve" text-anchor="middle" x="464.5" y="-473.2" font-family="sans-Serif" font-size="9.00" fill="#0f172a">observations · stats · reset</text>
249
251
  </g>
250
252
  <!-- extro&#45;&gt;t_extro -->
251
253
  <g id="edge18" class="edge">
252
254
  <title>extro&#45;&gt;t_extro</title>
253
- <path fill="none" stroke="#f59e0b" stroke-width="1.1" d="M272.39,-462.81C305.45,-463.53 354.8,-464.62 395.08,-465.5"/>
254
- <polygon fill="#f59e0b" stroke="#f59e0b" stroke-width="1.1" points="394.81,-467.94 401.86,-465.65 394.91,-463.05 394.81,-467.94"/>
255
+ <path fill="none" stroke="#f59e0b" stroke-width="1.1" d="M272.39,-470.24C305.45,-473.14 354.8,-477.47 395.08,-481"/>
256
+ <polygon fill="#f59e0b" stroke="#f59e0b" stroke-width="1.1" points="394.68,-483.42 401.86,-481.59 395.11,-478.54 394.68,-483.42"/>
255
257
  </g>
256
258
  <!-- t_cron -->
257
259
  <g id="node20" class="node">
258
260
  <title>t_cron</title>
259
- <path fill="#fcd34d" stroke="#334155" stroke-width="1.3" d="M511.88,-548C511.88,-548 417.12,-548 417.12,-548 411.12,-548 405.12,-542 405.12,-536 405.12,-536 405.12,-524 405.12,-524 405.12,-518 411.12,-512 417.12,-512 417.12,-512 511.88,-512 511.88,-512 517.88,-512 523.88,-518 523.88,-524 523.88,-524 523.88,-536 523.88,-536 523.88,-542 517.88,-548 511.88,-548"/>
260
- <text xml:space="preserve" text-anchor="middle" x="464.5" y="-531.95" font-family="sans-Serif" font-size="9.00" fill="#0f172a">cron_list · create · run</text>
261
- <text xml:space="preserve" text-anchor="middle" x="464.5" y="-521.45" font-family="sans-Serif" font-size="9.00" fill="#0f172a">enable · disable · remove</text>
261
+ <path fill="#fcd34d" stroke="#334155" stroke-width="1.3" d="M511.88,-568C511.88,-568 417.12,-568 417.12,-568 411.12,-568 405.12,-562 405.12,-556 405.12,-556 405.12,-544 405.12,-544 405.12,-538 411.12,-532 417.12,-532 417.12,-532 511.88,-532 511.88,-532 517.88,-532 523.88,-538 523.88,-544 523.88,-544 523.88,-556 523.88,-556 523.88,-562 517.88,-568 511.88,-568"/>
262
+ <text xml:space="preserve" text-anchor="middle" x="464.5" y="-551.95" font-family="sans-Serif" font-size="9.00" fill="#0f172a">cron_list · create · run</text>
263
+ <text xml:space="preserve" text-anchor="middle" x="464.5" y="-541.45" font-family="sans-Serif" font-size="9.00" fill="#0f172a">enable · disable · remove</text>
262
264
  </g>
263
265
  <!-- cron&#45;&gt;t_cron -->
264
266
  <g id="edge19" class="edge">
265
267
  <title>cron&#45;&gt;t_cron</title>
266
- <path fill="none" stroke="#f59e0b" stroke-width="1.1" d="M262.1,-523.82C294.77,-524.82 351.36,-526.56 396.25,-527.94"/>
267
- <polygon fill="#f59e0b" stroke="#f59e0b" stroke-width="1.1" points="396.04,-530.38 403.11,-528.15 396.19,-525.48 396.04,-530.38"/>
268
+ <path fill="none" stroke="#f59e0b" stroke-width="1.1" d="M262.1,-530.57C294.77,-533.72 351.36,-539.18 396.25,-543.51"/>
269
+ <polygon fill="#f59e0b" stroke="#f59e0b" stroke-width="1.1" points="395.91,-545.94 403.12,-544.17 396.39,-541.06 395.91,-545.94"/>
268
270
  </g>
269
271
  <!-- t_swarm -->
270
272
  <g id="node21" class="node">
271
273
  <title>t_swarm</title>
272
- <path fill="#fcd34d" stroke="#334155" stroke-width="1.3" d="M509.25,-612.75C509.25,-612.75 419.75,-612.75 419.75,-612.75 413.75,-612.75 407.75,-606.75 407.75,-600.75 407.75,-600.75 407.75,-585.25 407.75,-585.25 407.75,-579.25 413.75,-573.25 419.75,-573.25 419.75,-573.25 509.25,-573.25 509.25,-573.25 515.25,-573.25 521.25,-579.25 521.25,-585.25 521.25,-585.25 521.25,-600.75 521.25,-600.75 521.25,-606.75 515.25,-612.75 509.25,-612.75"/>
273
- <text xml:space="preserve" text-anchor="middle" x="464.5" y="-600.2" font-family="sans-Serif" font-size="9.00" fill="#0f172a">agent_list · spawn · ask</text>
274
- <text xml:space="preserve" text-anchor="middle" x="464.5" y="-589.7" font-family="sans-Serif" font-size="9.00" fill="#0f172a">debate · broadcast</text>
275
- <text xml:space="preserve" text-anchor="middle" x="464.5" y="-579.2" font-family="sans-Serif" font-size="9.00" fill="#0f172a">swarm_bus · swarm_list</text>
274
+ <path fill="#fcd34d" stroke="#334155" stroke-width="1.3" d="M509.25,-632.75C509.25,-632.75 419.75,-632.75 419.75,-632.75 413.75,-632.75 407.75,-626.75 407.75,-620.75 407.75,-620.75 407.75,-605.25 407.75,-605.25 407.75,-599.25 413.75,-593.25 419.75,-593.25 419.75,-593.25 509.25,-593.25 509.25,-593.25 515.25,-593.25 521.25,-599.25 521.25,-605.25 521.25,-605.25 521.25,-620.75 521.25,-620.75 521.25,-626.75 515.25,-632.75 509.25,-632.75"/>
275
+ <text xml:space="preserve" text-anchor="middle" x="464.5" y="-620.2" font-family="sans-Serif" font-size="9.00" fill="#0f172a">agent_list · spawn · ask</text>
276
+ <text xml:space="preserve" text-anchor="middle" x="464.5" y="-609.7" font-family="sans-Serif" font-size="9.00" fill="#0f172a">debate · broadcast</text>
277
+ <text xml:space="preserve" text-anchor="middle" x="464.5" y="-599.2" font-family="sans-Serif" font-size="9.00" fill="#0f172a">swarm_bus · swarm_list</text>
276
278
  </g>
277
279
  <!-- swarm&#45;&gt;t_swarm -->
278
280
  <g id="edge20" class="edge">
279
281
  <title>swarm&#45;&gt;t_swarm</title>
280
- <path fill="none" stroke="#f59e0b" stroke-width="1.1" d="M262.1,-585.05C295.43,-586.37 353.66,-588.66 398.97,-590.45"/>
281
- <polygon fill="#f59e0b" stroke="#f59e0b" stroke-width="1.1" points="398.8,-592.9 405.89,-590.73 398.99,-588 398.8,-592.9"/>
282
+ <path fill="none" stroke="#f59e0b" stroke-width="1.1" d="M262.1,-591.8C295.43,-595.31 353.66,-601.44 398.97,-606.21"/>
283
+ <polygon fill="#f59e0b" stroke="#f59e0b" stroke-width="1.1" points="398.68,-608.64 405.9,-606.94 399.19,-603.77 398.68,-608.64"/>
282
284
  </g>
283
285
  </g>
284
286
  </svg>
@@ -1,6 +1,6 @@
1
1
  digraph "PWN_Agent_Tool_Registry" {
2
2
  graph [
3
- label=<<B>PWN::AI::Agent::Registry — Toolsets exposed to the LLM</B><BR/><FONT POINT-SIZE="11" COLOR="#94a3b8">10 toolsets · 45+ callable tools · lib/pwn/ai/agent/tools/*</FONT>>,
3
+ label=<<B>PWN::AI::Agent::Registry — Toolsets exposed to the LLM</B><BR/><FONT POINT-SIZE="11" COLOR="#94a3b8">10 toolsets · 52 callable tools · lib/pwn/ai/agent/tools/*</FONT>>,
4
4
  labelloc=t, fontsize=20, fontname="Helvetica",
5
5
  rankdir=LR, splines=spline, nodesep=0.35, ranksep=1.4,
6
6
  bgcolor="#0f172a", fontcolor="#e2e8f0", pad=0.6, newrank=true
@@ -35,7 +35,7 @@ digraph "PWN_Agent_Tool_Registry" {
35
35
  t_mem [label="memory_remember\nrecall · forget · clear"];
36
36
  t_skill [label="skill_list · view\ncreate · add_reference · delete"];
37
37
  t_sess [label="sessions_list · view\ncurrent · delete · stats"];
38
- t_learn [label="learning_note_outcome\nreflect · distill_skill\nconsolidate · outcomes · reset"];
38
+ t_learn [label="learning_note_outcome\nreflect · distill_skill\nconsolidate · outcomes · reset\nmistakes_list · record\nmistakes_resolve · reset"];
39
39
  t_metric [label="metrics_summary\nmetrics_reset"];
40
40
  t_extro [label="extro_snapshot · drift\nobserve · intel · correlate\nobservations · stats · reset"];
41
41
  t_cron [label="cron_list · create · run\nenable · disable · remove"];
@@ -1,6 +1,6 @@
1
1
  digraph "PWN_Extrospection" {
2
2
  graph [
3
- label=<<B>PWN::AI::Agent::Extrospection — World Awareness</B><BR/><FONT POINT-SIZE="11" COLOR="#94a3b8">snapshot · drift · observe · intel · correlate</FONT>>,
3
+ label=<<B>PWN::AI::Agent::Extrospection — World Awareness</B><BR/><FONT POINT-SIZE="11" COLOR="#94a3b8">snapshot · drift · observe · intel · correlate — host · net · toolchain · repo · env · rf</FONT>>,
4
4
  labelloc=t, fontsize=20, fontname="Helvetica",
5
5
  rankdir=LR, splines=spline, nodesep=0.5, ranksep=1.3,
6
6
  bgcolor="#0f172a", fontcolor="#e2e8f0", pad=0.6, newrank=true
@@ -14,23 +14,24 @@ digraph "PWN_Extrospection" {
14
14
  subgraph cluster_world {
15
15
  label="Outside World"; fontcolor="#fecaca"; style="rounded,dashed";
16
16
  color="#b91c1c"; bgcolor="#450a0a";
17
- Host [label="host\nuname · distro · arch", fillcolor="#fda4af"];
17
+ Host [label="host\nuname · distro · arch", fillcolor="#fda4af"];
18
18
  Net [label="net\ninterfaces · listening ports", fillcolor="#fda4af"];
19
19
  Tool [label="toolchain\nnmap · burp · msf · git", fillcolor="#fda4af"];
20
- Repo [label="repo\nHEAD · dirty · branch", fillcolor="#fda4af"];
20
+ Repo [label="repo · env\nHEAD · dirty · ruby/gem", fillcolor="#fda4af"];
21
+ RFhw [label="rf 📡\nrtl-sdr · hackrf · flipper\ngqrx sock · serial devs", fillcolor="#fda4af"];
21
22
  Feeds [label="intel feeds\nNVD · CIRCL · Exploit-DB", fillcolor="#fda4af"];
22
23
  }
23
- {rank=same; Host; Net; Tool; Repo; Feeds}
24
+ {rank=same; Host; Net; Tool; Repo; RFhw; Feeds}
24
25
 
25
26
  /* col 1 ─ engine */
26
27
  subgraph cluster_eng {
27
28
  label="Extrospection Engine"; fontcolor="#fde68a"; style=rounded;
28
29
  color="#a16207"; bgcolor="#422006"; penwidth=2;
29
- Snap [label="extro_snapshot\nfingerprint host", fillcolor="#fcd34d"];
30
+ Snap [label="extro_snapshot\nprobe_host/net/toolchain\nprobe_repo/env/rf", fillcolor="#fcd34d"];
30
31
  Drift [label="extro_drift\ndelta vs baseline", fillcolor="#fcd34d"];
31
- Obs [label="extro_observe\nrecord recon fact", fillcolor="#fcd34d"];
32
+ Obs [label="extro_observe\nrecon · vuln · intel\ntarget · network · env · rf", fillcolor="#fcd34d"];
32
33
  Intel [label="extro_intel\nCVE / exploit lookup", fillcolor="#fcd34d"];
33
- Corr [label="extro_correlate\njoin with Learning", fillcolor="#fcd34d", penwidth=2];
34
+ Corr [label="extro_correlate\njoin with Learning\n+ Mistakes", fillcolor="#fcd34d", penwidth=2];
34
35
  }
35
36
  {rank=same; Snap; Drift; Obs; Intel; Corr}
36
37
 
@@ -43,6 +44,7 @@ digraph "PWN_Extrospection" {
43
44
  Net -> Snap [color="#fb7185"];
44
45
  Tool -> Drift [color="#fb7185"];
45
46
  Repo -> Drift [color="#fb7185"];
47
+ RFhw -> Obs [label="probe_rf", color="#fb7185"];
46
48
  Feeds -> Intel [color="#fb7185"];
47
49
 
48
50
  Snap -> Store [color="#f59e0b"];
@@ -1,6 +1,6 @@
1
1
  digraph "PWN_MemorySkills" {
2
2
  graph [
3
- label=<<B>Persistent Knowledge — Memory · Skills · Sessions</B><BR/><FONT POINT-SIZE="11" COLOR="#94a3b8">everything under ~/.pwn/ that shapes future prompts</FONT>>,
3
+ label=<<B>Persistent Knowledge — Memory · Skills · Learning · Mistakes · Sessions</B><BR/><FONT POINT-SIZE="11" COLOR="#94a3b8">everything under ~/.pwn/ that shapes future prompts</FONT>>,
4
4
  labelloc=t, fontsize=20, fontname="Helvetica",
5
5
  rankdir=TB, splines=spline, nodesep=0.55, ranksep=0.95,
6
6
  bgcolor="#0f172a", fontcolor="#e2e8f0", pad=0.6, newrank=true
@@ -17,8 +17,9 @@ digraph "PWN_MemorySkills" {
17
17
  Skc [label="skill_create\nskill_add_reference", fillcolor="#6ee7b7"];
18
18
  Note [label="learning_note_outcome\nlearning_reflect", fillcolor="#6ee7b7"];
19
19
  Dist [label="learning_distill_skill\n(session → skill)", fillcolor="#6ee7b7"];
20
+ Mrec [label="mistakes_record\nmistakes_resolve", fillcolor="#6ee7b7"];
20
21
  }
21
- {rank=same; Rem; Skc; Note; Dist}
22
+ {rank=same; Rem; Skc; Note; Dist; Mrec}
22
23
 
23
24
  subgraph cluster_files {
24
25
  label="~/.pwn/"; fontcolor="#fde68a"; style=rounded;
@@ -27,8 +28,9 @@ digraph "PWN_MemorySkills" {
27
28
  Fskl [label="skills/*.md\nYAML front-matter refs", shape=cylinder, fillcolor="#fcd34d"];
28
29
  Flrn [label="learning.jsonl\noutcome log", shape=cylinder, fillcolor="#fcd34d"];
29
30
  Fses [label="sessions/*.jsonl\ntranscripts", shape=cylinder, fillcolor="#fcd34d"];
31
+ Fmis [label="mistakes.json\nsig → count · fix · regressed", shape=cylinder, fillcolor="#fcd34d"];
30
32
  }
31
- {rank=same; Fmem; Fskl; Flrn; Fses}
33
+ {rank=same; Fmem; Fskl; Flrn; Fses; Fmis}
32
34
 
33
35
  subgraph cluster_read {
34
36
  label="Read-Side / Injection"; fontcolor="#ddd6fe"; style=rounded;
@@ -37,24 +39,29 @@ digraph "PWN_MemorySkills" {
37
39
  Skv [label="skill_list · view", fillcolor="#c4b5fd"];
38
40
  Out [label="learning_outcomes\nlearning_stats", fillcolor="#c4b5fd"];
39
41
  Sesv [label="sessions_view\nsessions_current", fillcolor="#c4b5fd"];
42
+ Mlst [label="mistakes_list\ncorrection_hint", fillcolor="#c4b5fd"];
40
43
  }
41
- {rank=same; Rec; Skv; Out; Sesv}
44
+ {rank=same; Rec; Skv; Out; Sesv; Mlst}
42
45
 
43
- Prompt [label="PromptBuilder\nMEMORY + SKILLS + LEARNING blocks", fillcolor="#7dd3fc", penwidth=2];
46
+ Prompt [label="PromptBuilder\nMEMORY + SKILLS + LEARNING\n+ KNOWN MISTAKES / KNOWN FIXES", fillcolor="#7dd3fc", penwidth=2];
44
47
 
45
48
  Rem -> Fmem [color="#f59e0b"];
46
49
  Skc -> Fskl [color="#f59e0b"];
47
50
  Note -> Flrn [color="#f59e0b"];
48
51
  Dist -> Fskl [color="#f59e0b"];
49
52
  Dist -> Fses [dir=back, style=dashed, color="#fbbf24", label="mine"];
53
+ Mrec -> Fmis [color="#f59e0b"];
54
+ Mrec -> Fmem [label="resolve→lesson", style=dashed, color="#fbbf24"];
50
55
 
51
56
  Fmem -> Rec [color="#a78bfa"];
52
57
  Fskl -> Skv [color="#a78bfa"];
53
58
  Flrn -> Out [color="#a78bfa"];
54
59
  Fses -> Sesv [color="#a78bfa"];
60
+ Fmis -> Mlst [color="#a78bfa"];
55
61
 
56
62
  Rec -> Prompt [color="#38bdf8"];
57
63
  Skv -> Prompt [color="#38bdf8"];
58
64
  Out -> Prompt [color="#38bdf8"];
59
65
  Sesv -> Prompt [color="#38bdf8"];
66
+ Mlst -> Prompt [label="do NOT repeat", color="#fb7185", penwidth=2];
60
67
  }