pwn 0.5.669 → 0.5.673
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.
- checksums.yaml +4 -4
- data/.rubocop.yml +1 -1
- data/Gemfile +1 -1
- data/README.md +13 -9
- data/documentation/AI-Integration.md +1 -1
- data/documentation/Agent-Tool-Registry.md +17 -5
- data/documentation/Configuration.md +19 -8
- data/documentation/Diagrams.md +2 -2
- data/documentation/Home.md +2 -2
- data/documentation/How-PWN-Works.md +12 -10
- data/documentation/Installation.md +3 -1
- data/documentation/Mistakes.md +3 -0
- data/documentation/Persistence.md +4 -1
- data/documentation/Reinforcement-Learning.md +90 -73
- data/documentation/Skills-Memory-Learning.md +28 -4
- data/documentation/What-is-PWN.md +8 -7
- data/documentation/Why-PWN.md +3 -2
- data/documentation/diagrams/agent-tool-registry.svg +188 -160
- data/documentation/diagrams/dot/agent-tool-registry.dot +7 -4
- data/documentation/diagrams/dot/memory-skills-detailed.dot +12 -5
- data/documentation/diagrams/dot/overall-pwn-architecture.dot +4 -3
- data/documentation/diagrams/dot/persistence-filesystem.dot +2 -1
- data/documentation/diagrams/dot/pwn-ai-feedback-learning-loop.dot +11 -4
- data/documentation/diagrams/dot/reinforcement-learning.dot +8 -3
- data/documentation/diagrams/dot/task-summarizer.dot +24 -12
- data/documentation/diagrams/memory-skills-detailed.svg +252 -210
- data/documentation/diagrams/overall-pwn-architecture.svg +21 -12
- data/documentation/diagrams/persistence-filesystem.svg +127 -113
- data/documentation/diagrams/pwn-ai-feedback-learning-loop.svg +449 -397
- data/documentation/diagrams/reinforcement-learning.svg +276 -239
- data/documentation/diagrams/task-summarizer.svg +178 -126
- data/documentation/pwn-ai-Agent.md +66 -32
- data/lib/pwn/ai/agent/curriculum.rb +13 -4
- data/lib/pwn/ai/agent/dispatch.rb +3 -0
- data/lib/pwn/ai/agent/learning.rb +100 -14
- data/lib/pwn/ai/agent/loop.rb +692 -25
- data/lib/pwn/ai/agent/metrics.rb +52 -4
- data/lib/pwn/ai/agent/mistakes.rb +158 -1
- data/lib/pwn/ai/agent/policy.rb +935 -0
- data/lib/pwn/ai/agent/prompt_builder.rb +82 -6
- data/lib/pwn/ai/agent/reflect.rb +11 -3
- data/lib/pwn/ai/agent/registry.rb +18 -3
- data/lib/pwn/ai/agent/reward.rb +360 -48
- data/lib/pwn/ai/agent/task_summarizer.rb +415 -33
- data/lib/pwn/ai/agent/tool_guard.rb +157 -0
- data/lib/pwn/ai/agent/tools/policy.rb +76 -0
- data/lib/pwn/ai/agent/tools/ruby_eval.rb +27 -1
- data/lib/pwn/ai/agent/tools/shell.rb +28 -32
- data/lib/pwn/ai/agent.rb +2 -0
- data/lib/pwn/config.rb +14 -2
- data/lib/pwn/memory.rb +188 -0
- data/lib/pwn/sessions.rb +9 -4
- data/lib/pwn/version.rb +1 -1
- data/spec/integration/reinforced_feedback_loop_spec.rb +35 -9
- data/spec/lib/pwn/ai/agent/learning_spec.rb +119 -3
- data/spec/lib/pwn/ai/agent/loop_spec.rb +215 -3
- data/spec/lib/pwn/ai/agent/metrics_spec.rb +10 -0
- data/spec/lib/pwn/ai/agent/mistakes_spec.rb +33 -0
- data/spec/lib/pwn/ai/agent/policy_spec.rb +165 -0
- data/spec/lib/pwn/ai/agent/prompt_builder_spec.rb +51 -0
- data/spec/lib/pwn/ai/agent/reward_spec.rb +75 -0
- data/spec/lib/pwn/ai/agent/signal_hygiene_spec.rb +118 -0
- data/spec/lib/pwn/ai/agent/task_summarizer_spec.rb +111 -6
- data/spec/lib/pwn/ai/agent/tool_guard_spec.rb +61 -0
- data/spec/lib/pwn/ai/agent/tools/policy_spec.rb +18 -0
- data/spec/lib/pwn/memory_spec.rb +62 -0
- data/spec/support/sandbox.rb +2 -0
- data/third_party/pwn_rdoc.jsonl +108 -4
- metadata +10 -3
|
@@ -4,347 +4,375 @@
|
|
|
4
4
|
<!-- Generated by graphviz version 14.1.2 (0)
|
|
5
5
|
-->
|
|
6
6
|
<!-- Title: PWN_Agent_Tool_Registry Pages: 1 -->
|
|
7
|
-
<svg width="755pt" height="
|
|
8
|
-
viewBox="0.00 0.00 755.00
|
|
9
|
-
<g id="graph0" class="graph" transform="scale(1 1) rotate(0) translate(43.2
|
|
7
|
+
<svg width="755pt" height="1058pt"
|
|
8
|
+
viewBox="0.00 0.00 755.00 1058.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 1014.36)">
|
|
10
10
|
<title>PWN_Agent_Tool_Registry</title>
|
|
11
|
-
<polygon fill="#0f172a" stroke="none" points="-43.2,43.2 -43.2,-
|
|
12
|
-
<text xml:space="preserve" text-anchor="start" x="68.88" y="-
|
|
13
|
-
<text xml:space="preserve" text-anchor="start" x="207.25" y="-
|
|
11
|
+
<polygon fill="#0f172a" stroke="none" points="-43.2,43.2 -43.2,-1014.36 711.95,-1014.36 711.95,43.2 -43.2,43.2"/>
|
|
12
|
+
<text xml:space="preserve" text-anchor="start" x="68.88" y="-949.16" 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="207.25" y="-937.71" font-family="sans-Serif" font-size="11.00" fill="#94a3b8">13 toolsets · 85 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="M289,-
|
|
17
|
-
<text xml:space="preserve" text-anchor="middle" x="322.25" y="-
|
|
16
|
+
<path fill="#022c22" stroke="#047857" stroke-width="2" d="M289,-62.16C289,-62.16 355.5,-62.16 355.5,-62.16 361.5,-62.16 367.5,-68.16 367.5,-74.16 367.5,-74.16 367.5,-865.16 367.5,-865.16 367.5,-871.16 361.5,-877.16 355.5,-877.16 355.5,-877.16 289,-877.16 289,-877.16 283,-877.16 277,-871.16 277,-865.16 277,-865.16 277,-74.16 277,-74.16 277,-68.16 283,-62.16 289,-62.16"/>
|
|
17
|
+
<text xml:space="preserve" text-anchor="middle" x="322.25" y="-854.16" 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="M480.25,-
|
|
22
|
-
<text xml:space="preserve" text-anchor="middle" x="568.5" y="-
|
|
21
|
+
<path fill="#422006" stroke="#a16207" stroke-width="2" d="M480.25,-18.16C480.25,-18.16 656.75,-18.16 656.75,-18.16 662.75,-18.16 668.75,-24.16 668.75,-30.16 668.75,-30.16 668.75,-912.16 668.75,-912.16 668.75,-918.16 662.75,-924.16 656.75,-924.16 656.75,-924.16 480.25,-924.16 480.25,-924.16 474.25,-924.16 468.25,-918.16 468.25,-912.16 468.25,-912.16 468.25,-30.16 468.25,-30.16 468.25,-24.16 474.25,-18.16 480.25,-18.16"/>
|
|
22
|
+
<text xml:space="preserve" text-anchor="middle" x="568.5" y="-901.16" font-family="sans-Serif" font-size="20.00" fill="#fde68a">Tools  (LLM-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="M156.25,-
|
|
28
|
-
<text xml:space="preserve" text-anchor="middle" x="84.12" y="-
|
|
29
|
-
<text xml:space="preserve" text-anchor="middle" x="84.12" y="-
|
|
30
|
-
<text xml:space="preserve" text-anchor="middle" x="84.12" y="-
|
|
31
|
-
<text xml:space="preserve" text-anchor="middle" x="84.12" y="-
|
|
27
|
+
<path fill="#c4b5fd" stroke="#334155" stroke-width="2" d="M156.25,-486.66C156.25,-486.66 12,-486.66 12,-486.66 6,-486.66 0,-480.66 0,-474.66 0,-474.66 0,-433.66 0,-433.66 0,-427.66 6,-421.66 12,-421.66 12,-421.66 156.25,-421.66 156.25,-421.66 162.25,-421.66 168.25,-427.66 168.25,-433.66 168.25,-433.66 168.25,-474.66 168.25,-474.66 168.25,-480.66 162.25,-486.66 156.25,-486.66"/>
|
|
28
|
+
<text xml:space="preserve" text-anchor="middle" x="84.12" y="-471.26" font-family="sans-Serif" font-size="12.00" fill="#0f172a">Registry</text>
|
|
29
|
+
<text xml:space="preserve" text-anchor="middle" x="84.12" y="-457.01" font-family="sans-Serif" font-size="12.00" fill="#0f172a">JSON-Schema function defs</text>
|
|
30
|
+
<text xml:space="preserve" text-anchor="middle" x="84.12" y="-442.76" font-family="sans-Serif" font-size="12.00" fill="#0f172a">rank(query) · CORE_TOOLS</text>
|
|
31
|
+
<text xml:space="preserve" text-anchor="middle" x="84.12" y="-428.51" font-family="sans-Serif" font-size="12.00" fill="#0f172a">tool_router → CORE + top-K</text>
|
|
32
32
|
</g>
|
|
33
33
|
<!-- terminal -->
|
|
34
34
|
<g id="node2" class="node">
|
|
35
35
|
<title>terminal</title>
|
|
36
|
-
<path fill="#6ee7b7" stroke="#334155" stroke-width="1.3" d="M337.25,-
|
|
37
|
-
<text xml:space="preserve" text-anchor="middle" x="322.25" y="-
|
|
36
|
+
<path fill="#6ee7b7" stroke="#334155" stroke-width="1.3" d="M337.25,-838.16C337.25,-838.16 307.25,-838.16 307.25,-838.16 301.25,-838.16 295.25,-832.16 295.25,-826.16 295.25,-826.16 295.25,-814.16 295.25,-814.16 295.25,-808.16 301.25,-802.16 307.25,-802.16 307.25,-802.16 337.25,-802.16 337.25,-802.16 343.25,-802.16 349.25,-808.16 349.25,-814.16 349.25,-814.16 349.25,-826.16 349.25,-826.16 349.25,-832.16 343.25,-838.16 337.25,-838.16"/>
|
|
37
|
+
<text xml:space="preserve" text-anchor="middle" x="322.25" y="-816.66" font-family="sans-Serif" font-size="10.00" fill="#0f172a">terminal</text>
|
|
38
38
|
</g>
|
|
39
39
|
<!-- Registry->terminal -->
|
|
40
40
|
<g id="edge1" class="edge">
|
|
41
41
|
<title>Registry->terminal</title>
|
|
42
|
-
<path fill="none" stroke="#94a3b8" stroke-width="1.1" d="
|
|
43
|
-
<polygon fill="#94a3b8" stroke="#94a3b8" stroke-width="1.1" points="286.
|
|
42
|
+
<path fill="none" stroke="#94a3b8" stroke-width="1.1" d="M96.87,-487.62C120.98,-552.51 181.48,-697.24 271.25,-790.16 275.95,-795.03 281.6,-799.4 287.38,-803.19"/>
|
|
43
|
+
<polygon fill="#94a3b8" stroke="#94a3b8" stroke-width="1.1" points="286.06,-805.26 293.31,-806.83 288.62,-801.08 286.06,-805.26"/>
|
|
44
44
|
</g>
|
|
45
45
|
<!-- pwn -->
|
|
46
46
|
<g id="node3" class="node">
|
|
47
47
|
<title>pwn</title>
|
|
48
|
-
<path fill="#6ee7b7" stroke="#334155" stroke-width="1.3" d="M337.25,-
|
|
49
|
-
<text xml:space="preserve" text-anchor="middle" x="322.25" y="-
|
|
48
|
+
<path fill="#6ee7b7" stroke="#334155" stroke-width="1.3" d="M337.25,-777.16C337.25,-777.16 307.25,-777.16 307.25,-777.16 301.25,-777.16 295.25,-771.16 295.25,-765.16 295.25,-765.16 295.25,-753.16 295.25,-753.16 295.25,-747.16 301.25,-741.16 307.25,-741.16 307.25,-741.16 337.25,-741.16 337.25,-741.16 343.25,-741.16 349.25,-747.16 349.25,-753.16 349.25,-753.16 349.25,-765.16 349.25,-765.16 349.25,-771.16 343.25,-777.16 337.25,-777.16"/>
|
|
49
|
+
<text xml:space="preserve" text-anchor="middle" x="322.25" y="-755.66" font-family="sans-Serif" font-size="10.00" fill="#0f172a">pwn</text>
|
|
50
50
|
</g>
|
|
51
51
|
<!-- Registry->pwn -->
|
|
52
52
|
<g id="edge2" class="edge">
|
|
53
53
|
<title>Registry->pwn</title>
|
|
54
|
-
<path fill="none" stroke="#94a3b8" stroke-width="1.1" d="
|
|
55
|
-
<polygon fill="#94a3b8" stroke="#94a3b8" stroke-width="1.1" points="286.
|
|
54
|
+
<path fill="none" stroke="#94a3b8" stroke-width="1.1" d="M101.57,-487.62C130.08,-543.07 193.18,-655.24 271.25,-729.16 276.11,-733.76 281.79,-737.99 287.55,-741.72"/>
|
|
55
|
+
<polygon fill="#94a3b8" stroke="#94a3b8" stroke-width="1.1" points="286.16,-743.75 293.41,-745.32 288.72,-739.57 286.16,-743.75"/>
|
|
56
56
|
</g>
|
|
57
57
|
<!-- memory -->
|
|
58
58
|
<g id="node4" class="node">
|
|
59
59
|
<title>memory</title>
|
|
60
|
-
<path fill="#6ee7b7" stroke="#334155" stroke-width="1.3" d="M337.25,-
|
|
61
|
-
<text xml:space="preserve" text-anchor="middle" x="322.25" y="-
|
|
60
|
+
<path fill="#6ee7b7" stroke="#334155" stroke-width="1.3" d="M337.25,-716.16C337.25,-716.16 307.25,-716.16 307.25,-716.16 301.25,-716.16 295.25,-710.16 295.25,-704.16 295.25,-704.16 295.25,-692.16 295.25,-692.16 295.25,-686.16 301.25,-680.16 307.25,-680.16 307.25,-680.16 337.25,-680.16 337.25,-680.16 343.25,-680.16 349.25,-686.16 349.25,-692.16 349.25,-692.16 349.25,-704.16 349.25,-704.16 349.25,-710.16 343.25,-716.16 337.25,-716.16"/>
|
|
61
|
+
<text xml:space="preserve" text-anchor="middle" x="322.25" y="-694.66" font-family="sans-Serif" font-size="10.00" fill="#0f172a">memory</text>
|
|
62
62
|
</g>
|
|
63
63
|
<!-- Registry->memory -->
|
|
64
64
|
<g id="edge3" class="edge">
|
|
65
65
|
<title>Registry->memory</title>
|
|
66
|
-
<path fill="none" stroke="#94a3b8" stroke-width="1.1" d="
|
|
67
|
-
<polygon fill="#94a3b8" stroke="#94a3b8" stroke-width="1.1" points="286.
|
|
66
|
+
<path fill="none" stroke="#94a3b8" stroke-width="1.1" d="M108.84,-487.49C141.77,-532.22 204.84,-612.49 271.25,-668.16 276.27,-672.37 281.94,-676.37 287.62,-679.99"/>
|
|
67
|
+
<polygon fill="#94a3b8" stroke="#94a3b8" stroke-width="1.1" points="286.1,-681.93 293.35,-683.5 288.66,-677.75 286.1,-681.93"/>
|
|
68
68
|
</g>
|
|
69
69
|
<!-- skills -->
|
|
70
70
|
<g id="node5" class="node">
|
|
71
71
|
<title>skills</title>
|
|
72
|
-
<path fill="#6ee7b7" stroke="#334155" stroke-width="1.3" d="M337.25,-
|
|
73
|
-
<text xml:space="preserve" text-anchor="middle" x="322.25" y="-
|
|
72
|
+
<path fill="#6ee7b7" stroke="#334155" stroke-width="1.3" d="M337.25,-655.16C337.25,-655.16 307.25,-655.16 307.25,-655.16 301.25,-655.16 295.25,-649.16 295.25,-643.16 295.25,-643.16 295.25,-631.16 295.25,-631.16 295.25,-625.16 301.25,-619.16 307.25,-619.16 307.25,-619.16 337.25,-619.16 337.25,-619.16 343.25,-619.16 349.25,-625.16 349.25,-631.16 349.25,-631.16 349.25,-643.16 349.25,-643.16 349.25,-649.16 343.25,-655.16 337.25,-655.16"/>
|
|
73
|
+
<text xml:space="preserve" text-anchor="middle" x="322.25" y="-633.66" font-family="sans-Serif" font-size="10.00" fill="#0f172a">skills</text>
|
|
74
74
|
</g>
|
|
75
75
|
<!-- Registry->skills -->
|
|
76
76
|
<g id="edge4" class="edge">
|
|
77
77
|
<title>Registry->skills</title>
|
|
78
|
-
<path fill="none" stroke="#94a3b8" stroke-width="1.1" d="
|
|
79
|
-
<polygon fill="#94a3b8" stroke="#94a3b8" stroke-width="1.1" points="286.
|
|
78
|
+
<path fill="none" stroke="#94a3b8" stroke-width="1.1" d="M122.32,-487.52C159,-519.72 217.24,-569.07 271.25,-607.16 276.49,-610.86 282.19,-614.56 287.81,-618.03"/>
|
|
79
|
+
<polygon fill="#94a3b8" stroke="#94a3b8" stroke-width="1.1" points="286.16,-619.9 293.41,-621.44 288.7,-615.71 286.16,-619.9"/>
|
|
80
80
|
</g>
|
|
81
81
|
<!-- sessions -->
|
|
82
82
|
<g id="node6" class="node">
|
|
83
83
|
<title>sessions</title>
|
|
84
|
-
<path fill="#6ee7b7" stroke="#334155" stroke-width="1.3" d="M337.75,-
|
|
85
|
-
<text xml:space="preserve" text-anchor="middle" x="322.25" y="-
|
|
84
|
+
<path fill="#6ee7b7" stroke="#334155" stroke-width="1.3" d="M337.75,-594.16C337.75,-594.16 306.75,-594.16 306.75,-594.16 300.75,-594.16 294.75,-588.16 294.75,-582.16 294.75,-582.16 294.75,-570.16 294.75,-570.16 294.75,-564.16 300.75,-558.16 306.75,-558.16 306.75,-558.16 337.75,-558.16 337.75,-558.16 343.75,-558.16 349.75,-564.16 349.75,-570.16 349.75,-570.16 349.75,-582.16 349.75,-582.16 349.75,-588.16 343.75,-594.16 337.75,-594.16"/>
|
|
85
|
+
<text xml:space="preserve" text-anchor="middle" x="322.25" y="-572.66" font-family="sans-Serif" font-size="10.00" fill="#0f172a">sessions</text>
|
|
86
86
|
</g>
|
|
87
87
|
<!-- Registry->sessions -->
|
|
88
88
|
<g id="edge5" class="edge">
|
|
89
89
|
<title>Registry->sessions</title>
|
|
90
|
-
<path fill="none" stroke="#94a3b8" stroke-width="1.1" d="
|
|
91
|
-
<polygon fill="#94a3b8" stroke="#94a3b8" stroke-width="1.1" points="285.
|
|
90
|
+
<path fill="none" stroke="#94a3b8" stroke-width="1.1" d="M149.96,-487.66C194.19,-510.51 251.02,-539.88 286.8,-558.37"/>
|
|
91
|
+
<polygon fill="#94a3b8" stroke="#94a3b8" stroke-width="1.1" points="285.29,-560.34 292.63,-561.38 287.53,-555.99 285.29,-560.34"/>
|
|
92
92
|
</g>
|
|
93
93
|
<!-- learning -->
|
|
94
94
|
<g id="node7" class="node">
|
|
95
95
|
<title>learning</title>
|
|
96
|
-
<path fill="#6ee7b7" stroke="#334155" stroke-width="1.3" d="M337.25,-
|
|
97
|
-
<text xml:space="preserve" text-anchor="middle" x="322.25" y="-
|
|
96
|
+
<path fill="#6ee7b7" stroke="#334155" stroke-width="1.3" d="M337.25,-533.16C337.25,-533.16 307.25,-533.16 307.25,-533.16 301.25,-533.16 295.25,-527.16 295.25,-521.16 295.25,-521.16 295.25,-509.16 295.25,-509.16 295.25,-503.16 301.25,-497.16 307.25,-497.16 307.25,-497.16 337.25,-497.16 337.25,-497.16 343.25,-497.16 349.25,-503.16 349.25,-509.16 349.25,-509.16 349.25,-521.16 349.25,-521.16 349.25,-527.16 343.25,-533.16 337.25,-533.16"/>
|
|
97
|
+
<text xml:space="preserve" text-anchor="middle" x="322.25" y="-511.66" font-family="sans-Serif" font-size="10.00" fill="#0f172a">learning</text>
|
|
98
98
|
</g>
|
|
99
99
|
<!-- Registry->learning -->
|
|
100
100
|
<g id="edge6" class="edge">
|
|
101
101
|
<title>Registry->learning</title>
|
|
102
|
-
<path fill="none" stroke="#94a3b8" stroke-width="1.1" d="M169.04,-
|
|
103
|
-
<polygon fill="#94a3b8" stroke="#94a3b8" stroke-width="1.1" points="285.
|
|
102
|
+
<path fill="none" stroke="#94a3b8" stroke-width="1.1" d="M169.04,-475.84C209.39,-486.27 255.56,-498.19 286.37,-506.15"/>
|
|
103
|
+
<polygon fill="#94a3b8" stroke="#94a3b8" stroke-width="1.1" points="285.63,-508.49 293.02,-507.87 286.85,-503.75 285.63,-508.49"/>
|
|
104
104
|
</g>
|
|
105
105
|
<!-- metrics -->
|
|
106
106
|
<g id="node8" class="node">
|
|
107
107
|
<title>metrics</title>
|
|
108
|
-
<path fill="#6ee7b7" stroke="#334155" stroke-width="1.3" d="M337.25,-
|
|
109
|
-
<text xml:space="preserve" text-anchor="middle" x="322.25" y="-
|
|
108
|
+
<path fill="#6ee7b7" stroke="#334155" stroke-width="1.3" d="M337.25,-472.16C337.25,-472.16 307.25,-472.16 307.25,-472.16 301.25,-472.16 295.25,-466.16 295.25,-460.16 295.25,-460.16 295.25,-448.16 295.25,-448.16 295.25,-442.16 301.25,-436.16 307.25,-436.16 307.25,-436.16 337.25,-436.16 337.25,-436.16 343.25,-436.16 349.25,-442.16 349.25,-448.16 349.25,-448.16 349.25,-460.16 349.25,-460.16 349.25,-466.16 343.25,-472.16 337.25,-472.16"/>
|
|
109
|
+
<text xml:space="preserve" text-anchor="middle" x="322.25" y="-450.66" font-family="sans-Serif" font-size="10.00" fill="#0f172a">metrics</text>
|
|
110
110
|
</g>
|
|
111
111
|
<!-- Registry->metrics -->
|
|
112
112
|
<g id="edge7" class="edge">
|
|
113
113
|
<title>Registry->metrics</title>
|
|
114
|
-
<path fill="none" stroke="#94a3b8" stroke-width="1.1" d="M169.04,-
|
|
115
|
-
<polygon fill="#94a3b8" stroke="#94a3b8" stroke-width="1.1" points="
|
|
114
|
+
<path fill="none" stroke="#94a3b8" stroke-width="1.1" d="M169.04,-454.16C209.21,-454.16 255.16,-454.16 285.97,-454.16"/>
|
|
115
|
+
<polygon fill="#94a3b8" stroke="#94a3b8" stroke-width="1.1" points="285.97,-456.61 292.97,-454.16 285.97,-451.71 285.97,-456.61"/>
|
|
116
116
|
</g>
|
|
117
117
|
<!-- extro -->
|
|
118
118
|
<g id="node9" class="node">
|
|
119
119
|
<title>extro</title>
|
|
120
|
-
<path fill="#6ee7b7" stroke="#334155" stroke-width="1.3" d="M347.5,-
|
|
121
|
-
<text xml:space="preserve" text-anchor="middle" x="322.25" y="-
|
|
120
|
+
<path fill="#6ee7b7" stroke="#334155" stroke-width="1.3" d="M347.5,-411.16C347.5,-411.16 297,-411.16 297,-411.16 291,-411.16 285,-405.16 285,-399.16 285,-399.16 285,-387.16 285,-387.16 285,-381.16 291,-375.16 297,-375.16 297,-375.16 347.5,-375.16 347.5,-375.16 353.5,-375.16 359.5,-381.16 359.5,-387.16 359.5,-387.16 359.5,-399.16 359.5,-399.16 359.5,-405.16 353.5,-411.16 347.5,-411.16"/>
|
|
121
|
+
<text xml:space="preserve" text-anchor="middle" x="322.25" y="-389.66" font-family="sans-Serif" font-size="10.00" fill="#0f172a">extrospection</text>
|
|
122
122
|
</g>
|
|
123
123
|
<!-- Registry->extro -->
|
|
124
124
|
<g id="edge8" class="edge">
|
|
125
125
|
<title>Registry->extro</title>
|
|
126
|
-
<path fill="none" stroke="#94a3b8" stroke-width="1.1" d="M169.04,-
|
|
127
|
-
<polygon fill="#94a3b8" stroke="#94a3b8" stroke-width="1.1" points="
|
|
126
|
+
<path fill="none" stroke="#94a3b8" stroke-width="1.1" d="M169.04,-432.49C205.15,-423.16 245.92,-412.63 276.17,-404.81"/>
|
|
127
|
+
<polygon fill="#94a3b8" stroke="#94a3b8" stroke-width="1.1" points="276.63,-407.22 282.8,-403.1 275.41,-402.48 276.63,-407.22"/>
|
|
128
128
|
</g>
|
|
129
129
|
<!-- cron -->
|
|
130
130
|
<g id="node10" class="node">
|
|
131
131
|
<title>cron</title>
|
|
132
|
-
<path fill="#6ee7b7" stroke="#334155" stroke-width="1.3" d="M337.25,-
|
|
133
|
-
<text xml:space="preserve" text-anchor="middle" x="322.25" y="-
|
|
132
|
+
<path fill="#6ee7b7" stroke="#334155" stroke-width="1.3" d="M337.25,-350.16C337.25,-350.16 307.25,-350.16 307.25,-350.16 301.25,-350.16 295.25,-344.16 295.25,-338.16 295.25,-338.16 295.25,-326.16 295.25,-326.16 295.25,-320.16 301.25,-314.16 307.25,-314.16 307.25,-314.16 337.25,-314.16 337.25,-314.16 343.25,-314.16 349.25,-320.16 349.25,-326.16 349.25,-326.16 349.25,-338.16 349.25,-338.16 349.25,-344.16 343.25,-350.16 337.25,-350.16"/>
|
|
133
|
+
<text xml:space="preserve" text-anchor="middle" x="322.25" y="-328.66" font-family="sans-Serif" font-size="10.00" fill="#0f172a">cron</text>
|
|
134
134
|
</g>
|
|
135
135
|
<!-- Registry->cron -->
|
|
136
136
|
<g id="edge9" class="edge">
|
|
137
137
|
<title>Registry->cron</title>
|
|
138
|
-
<path fill="none" stroke="#94a3b8" stroke-width="1.1" d="
|
|
139
|
-
<polygon fill="#94a3b8" stroke="#94a3b8" stroke-width="1.1" points="288.
|
|
138
|
+
<path fill="none" stroke="#94a3b8" stroke-width="1.1" d="M149.96,-420.67C194.44,-397.68 251.68,-368.11 287.42,-349.64"/>
|
|
139
|
+
<polygon fill="#94a3b8" stroke="#94a3b8" stroke-width="1.1" points="288.14,-352.03 293.23,-346.64 285.89,-347.68 288.14,-352.03"/>
|
|
140
140
|
</g>
|
|
141
141
|
<!-- swarm -->
|
|
142
142
|
<g id="node11" class="node">
|
|
143
143
|
<title>swarm</title>
|
|
144
|
-
<path fill="#6ee7b7" stroke="#334155" stroke-width="1.3" d="M337.25,-
|
|
145
|
-
<text xml:space="preserve" text-anchor="middle" x="322.25" y="-
|
|
144
|
+
<path fill="#6ee7b7" stroke="#334155" stroke-width="1.3" d="M337.25,-289.16C337.25,-289.16 307.25,-289.16 307.25,-289.16 301.25,-289.16 295.25,-283.16 295.25,-277.16 295.25,-277.16 295.25,-265.16 295.25,-265.16 295.25,-259.16 301.25,-253.16 307.25,-253.16 307.25,-253.16 337.25,-253.16 337.25,-253.16 343.25,-253.16 349.25,-259.16 349.25,-265.16 349.25,-265.16 349.25,-277.16 349.25,-277.16 349.25,-283.16 343.25,-289.16 337.25,-289.16"/>
|
|
145
|
+
<text xml:space="preserve" text-anchor="middle" x="322.25" y="-267.66" font-family="sans-Serif" font-size="10.00" fill="#0f172a">swarm</text>
|
|
146
146
|
</g>
|
|
147
147
|
<!-- Registry->swarm -->
|
|
148
148
|
<g id="edge10" class="edge">
|
|
149
149
|
<title>Registry->swarm</title>
|
|
150
|
-
<path fill="none" stroke="#94a3b8" stroke-width="1.1" d="
|
|
151
|
-
<polygon fill="#94a3b8" stroke="#94a3b8" stroke-width="1.1" points="288.
|
|
150
|
+
<path fill="none" stroke="#94a3b8" stroke-width="1.1" d="M122.83,-420.93C159.64,-389.07 217.77,-340.34 271.25,-302.16 276.34,-298.53 281.85,-294.87 287.29,-291.39"/>
|
|
151
|
+
<polygon fill="#94a3b8" stroke="#94a3b8" stroke-width="1.1" points="288.59,-293.47 293.21,-287.67 285.98,-289.32 288.59,-293.47"/>
|
|
152
152
|
</g>
|
|
153
153
|
<!-- reward -->
|
|
154
154
|
<g id="node12" class="node">
|
|
155
155
|
<title>reward</title>
|
|
156
|
-
<path fill="#6ee7b7" stroke="#334155" stroke-width="1.3" d="M337.25,-
|
|
157
|
-
<text xml:space="preserve" text-anchor="middle" x="322.25" y="-
|
|
156
|
+
<path fill="#6ee7b7" stroke="#334155" stroke-width="1.3" d="M337.25,-228.16C337.25,-228.16 307.25,-228.16 307.25,-228.16 301.25,-228.16 295.25,-222.16 295.25,-216.16 295.25,-216.16 295.25,-204.16 295.25,-204.16 295.25,-198.16 301.25,-192.16 307.25,-192.16 307.25,-192.16 337.25,-192.16 337.25,-192.16 343.25,-192.16 349.25,-198.16 349.25,-204.16 349.25,-204.16 349.25,-216.16 349.25,-216.16 349.25,-222.16 343.25,-228.16 337.25,-228.16"/>
|
|
157
|
+
<text xml:space="preserve" text-anchor="middle" x="322.25" y="-206.66" font-family="sans-Serif" font-size="10.00" fill="#0f172a">reward</text>
|
|
158
158
|
</g>
|
|
159
159
|
<!-- Registry->reward -->
|
|
160
160
|
<g id="edge11" class="edge">
|
|
161
161
|
<title>Registry->reward</title>
|
|
162
|
-
<path fill="none" stroke="#94a3b8" stroke-width="1.1" d="
|
|
163
|
-
<polygon fill="#94a3b8" stroke="#94a3b8" stroke-width="1.1" points="288.
|
|
162
|
+
<path fill="none" stroke="#94a3b8" stroke-width="1.1" d="M109.27,-420.77C142.45,-376.34 205.54,-296.94 271.25,-241.16 276.29,-236.89 281.97,-232.79 287.65,-229.06"/>
|
|
163
|
+
<polygon fill="#94a3b8" stroke="#94a3b8" stroke-width="1.1" points="288.79,-231.24 293.39,-225.43 286.17,-227.1 288.79,-231.24"/>
|
|
164
164
|
</g>
|
|
165
165
|
<!-- curric -->
|
|
166
166
|
<g id="node13" class="node">
|
|
167
167
|
<title>curric</title>
|
|
168
|
-
<path fill="#6ee7b7" stroke="#334155" stroke-width="1.3" d="M340.75,-
|
|
169
|
-
<text xml:space="preserve" text-anchor="middle" x="322.25" y="-
|
|
168
|
+
<path fill="#6ee7b7" stroke="#334155" stroke-width="1.3" d="M340.75,-167.16C340.75,-167.16 303.75,-167.16 303.75,-167.16 297.75,-167.16 291.75,-161.16 291.75,-155.16 291.75,-155.16 291.75,-143.16 291.75,-143.16 291.75,-137.16 297.75,-131.16 303.75,-131.16 303.75,-131.16 340.75,-131.16 340.75,-131.16 346.75,-131.16 352.75,-137.16 352.75,-143.16 352.75,-143.16 352.75,-155.16 352.75,-155.16 352.75,-161.16 346.75,-167.16 340.75,-167.16"/>
|
|
169
|
+
<text xml:space="preserve" text-anchor="middle" x="322.25" y="-145.66" font-family="sans-Serif" font-size="10.00" fill="#0f172a">curriculum</text>
|
|
170
170
|
</g>
|
|
171
171
|
<!-- Registry->curric -->
|
|
172
172
|
<g id="edge12" class="edge">
|
|
173
173
|
<title>Registry->curric</title>
|
|
174
|
-
<path fill="none" stroke="#94a3b8" stroke-width="1.1" d="
|
|
175
|
-
<polygon fill="#94a3b8" stroke="#94a3b8" stroke-width="1.1" points="285.
|
|
174
|
+
<path fill="none" stroke="#94a3b8" stroke-width="1.1" d="M101.72,-420.96C130.44,-365.9 193.85,-254.4 271.25,-180.16 275.12,-176.45 279.51,-172.96 284.03,-169.75"/>
|
|
175
|
+
<polygon fill="#94a3b8" stroke="#94a3b8" stroke-width="1.1" points="285.37,-171.81 289.82,-165.88 282.64,-167.73 285.37,-171.81"/>
|
|
176
176
|
</g>
|
|
177
|
-
<!--
|
|
177
|
+
<!-- policy -->
|
|
178
178
|
<g id="node14" class="node">
|
|
179
|
+
<title>policy</title>
|
|
180
|
+
<path fill="#6ee7b7" stroke="#334155" stroke-width="1.3" d="M337.25,-106.16C337.25,-106.16 307.25,-106.16 307.25,-106.16 301.25,-106.16 295.25,-100.16 295.25,-94.16 295.25,-94.16 295.25,-82.16 295.25,-82.16 295.25,-76.16 301.25,-70.16 307.25,-70.16 307.25,-70.16 337.25,-70.16 337.25,-70.16 343.25,-70.16 349.25,-76.16 349.25,-82.16 349.25,-82.16 349.25,-94.16 349.25,-94.16 349.25,-100.16 343.25,-106.16 337.25,-106.16"/>
|
|
181
|
+
<text xml:space="preserve" text-anchor="middle" x="322.25" y="-84.66" font-family="sans-Serif" font-size="10.00" fill="#0f172a">policy</text>
|
|
182
|
+
</g>
|
|
183
|
+
<!-- Registry->policy -->
|
|
184
|
+
<g id="edge13" class="edge">
|
|
185
|
+
<title>Registry->policy</title>
|
|
186
|
+
<path fill="none" stroke="#94a3b8" stroke-width="1.1" d="M97.11,-420.67C121.54,-356.06 182.42,-212.35 271.25,-119.16 276.06,-114.12 281.86,-109.56 287.79,-105.58"/>
|
|
187
|
+
<polygon fill="#94a3b8" stroke="#94a3b8" stroke-width="1.1" points="288.72,-107.89 293.33,-102.08 286.11,-103.75 288.72,-107.89"/>
|
|
188
|
+
</g>
|
|
189
|
+
<!-- t_shell -->
|
|
190
|
+
<g id="node15" class="node">
|
|
179
191
|
<title>t_shell</title>
|
|
180
|
-
<path fill="#fcd34d" stroke="#334155" stroke-width="1.3" d="
|
|
181
|
-
<text xml:space="preserve" text-anchor="middle" x="568" y="-
|
|
192
|
+
<path fill="#fcd34d" stroke="#334155" stroke-width="1.3" d="M588.38,-885.16C588.38,-885.16 547.62,-885.16 547.62,-885.16 541.62,-885.16 535.62,-879.16 535.62,-873.16 535.62,-873.16 535.62,-861.16 535.62,-861.16 535.62,-855.16 541.62,-849.16 547.62,-849.16 547.62,-849.16 588.38,-849.16 588.38,-849.16 594.38,-849.16 600.38,-855.16 600.38,-861.16 600.38,-861.16 600.38,-873.16 600.38,-873.16 600.38,-879.16 594.38,-885.16 588.38,-885.16"/>
|
|
193
|
+
<text xml:space="preserve" text-anchor="middle" x="568" y="-869.11" font-family="sans-Serif" font-size="9.00" fill="#0f172a">shell</text>
|
|
194
|
+
<text xml:space="preserve" text-anchor="middle" x="568" y="-858.61" font-family="sans-Serif" font-size="9.00" fill="#0f172a">(ToolGuard)</text>
|
|
182
195
|
</g>
|
|
183
196
|
<!-- terminal->t_shell -->
|
|
184
|
-
<g id="
|
|
197
|
+
<g id="edge14" class="edge">
|
|
185
198
|
<title>terminal->t_shell</title>
|
|
186
|
-
<path fill="none" stroke="#f59e0b" stroke-width="1.1" d="M349.8,-
|
|
187
|
-
<polygon fill="#f59e0b" stroke="#f59e0b" stroke-width="1.1" points="
|
|
199
|
+
<path fill="none" stroke="#f59e0b" stroke-width="1.1" d="M349.8,-825.28C392.49,-833.51 476.67,-849.75 526.77,-859.41"/>
|
|
200
|
+
<polygon fill="#f59e0b" stroke="#f59e0b" stroke-width="1.1" points="526.13,-861.78 533.47,-860.7 527.06,-856.97 526.13,-861.78"/>
|
|
188
201
|
</g>
|
|
189
202
|
<!-- t_eval -->
|
|
190
|
-
<g id="
|
|
203
|
+
<g id="node16" class="node">
|
|
191
204
|
<title>t_eval</title>
|
|
192
|
-
<path fill="#fcd34d" stroke="#334155" stroke-width="1.3" d="
|
|
193
|
-
<text xml:space="preserve" text-anchor="middle" x="568" y="-
|
|
205
|
+
<path fill="#fcd34d" stroke="#334155" stroke-width="1.3" d="M588.38,-824.16C588.38,-824.16 547.62,-824.16 547.62,-824.16 541.62,-824.16 535.62,-818.16 535.62,-812.16 535.62,-812.16 535.62,-800.16 535.62,-800.16 535.62,-794.16 541.62,-788.16 547.62,-788.16 547.62,-788.16 588.38,-788.16 588.38,-788.16 594.38,-788.16 600.38,-794.16 600.38,-800.16 600.38,-800.16 600.38,-812.16 600.38,-812.16 600.38,-818.16 594.38,-824.16 588.38,-824.16"/>
|
|
206
|
+
<text xml:space="preserve" text-anchor="middle" x="568" y="-808.11" font-family="sans-Serif" font-size="9.00" fill="#0f172a">pwn_eval</text>
|
|
207
|
+
<text xml:space="preserve" text-anchor="middle" x="568" y="-797.61" font-family="sans-Serif" font-size="9.00" fill="#0f172a">(ToolGuard)</text>
|
|
194
208
|
</g>
|
|
195
209
|
<!-- pwn->t_eval -->
|
|
196
|
-
<g id="
|
|
210
|
+
<g id="edge15" class="edge">
|
|
197
211
|
<title>pwn->t_eval</title>
|
|
198
|
-
<path fill="none" stroke="#f59e0b" stroke-width="1.1" d="M349.8,-
|
|
199
|
-
<polygon fill="#f59e0b" stroke="#f59e0b" stroke-width="1.1" points="
|
|
212
|
+
<path fill="none" stroke="#f59e0b" stroke-width="1.1" d="M349.8,-764.28C392.49,-772.51 476.67,-788.75 526.77,-798.41"/>
|
|
213
|
+
<polygon fill="#f59e0b" stroke="#f59e0b" stroke-width="1.1" points="526.13,-800.78 533.47,-799.7 527.06,-795.97 526.13,-800.78"/>
|
|
200
214
|
</g>
|
|
201
215
|
<!-- t_mem -->
|
|
202
|
-
<g id="
|
|
216
|
+
<g id="node17" class="node">
|
|
203
217
|
<title>t_mem</title>
|
|
204
|
-
<path fill="#fcd34d" stroke="#334155" stroke-width="1.3" d="M604.12,-
|
|
205
|
-
<text xml:space="preserve" text-anchor="middle" x="568" y="-
|
|
206
|
-
<text xml:space="preserve" text-anchor="middle" x="568" y="-
|
|
207
|
-
<text xml:space="preserve" text-anchor="middle" x="568" y="-
|
|
218
|
+
<path fill="#fcd34d" stroke="#334155" stroke-width="1.3" d="M604.12,-762.91C604.12,-762.91 531.88,-762.91 531.88,-762.91 525.88,-762.91 519.88,-756.91 519.88,-750.91 519.88,-750.91 519.88,-735.41 519.88,-735.41 519.88,-729.41 525.88,-723.41 531.88,-723.41 531.88,-723.41 604.12,-723.41 604.12,-723.41 610.12,-723.41 616.12,-729.41 616.12,-735.41 616.12,-735.41 616.12,-750.91 616.12,-750.91 616.12,-756.91 610.12,-762.91 604.12,-762.91"/>
|
|
219
|
+
<text xml:space="preserve" text-anchor="middle" x="568" y="-750.36" font-family="sans-Serif" font-size="9.00" fill="#0f172a">memory_remember</text>
|
|
220
|
+
<text xml:space="preserve" text-anchor="middle" x="568" y="-739.86" font-family="sans-Serif" font-size="9.00" fill="#0f172a">recall · forget · clear</text>
|
|
221
|
+
<text xml:space="preserve" text-anchor="middle" x="568" y="-729.36" font-family="sans-Serif" font-size="9.00" fill="#0f172a">lean</text>
|
|
208
222
|
</g>
|
|
209
223
|
<!-- memory->t_mem -->
|
|
210
|
-
<g id="
|
|
224
|
+
<g id="edge16" class="edge">
|
|
211
225
|
<title>memory->t_mem</title>
|
|
212
|
-
<path fill="none" stroke="#f59e0b" stroke-width="1.1" d="M349.8,-
|
|
213
|
-
<polygon fill="#f59e0b" stroke="#f59e0b" stroke-width="1.1" points="510.
|
|
226
|
+
<path fill="none" stroke="#f59e0b" stroke-width="1.1" d="M349.8,-703.07C388.37,-710.19 460.81,-723.56 511.38,-732.9"/>
|
|
227
|
+
<polygon fill="#f59e0b" stroke="#f59e0b" stroke-width="1.1" points="510.65,-735.25 517.97,-734.11 511.54,-730.43 510.65,-735.25"/>
|
|
214
228
|
</g>
|
|
215
229
|
<!-- t_skill -->
|
|
216
|
-
<g id="
|
|
230
|
+
<g id="node18" class="node">
|
|
217
231
|
<title>t_skill</title>
|
|
218
|
-
<path fill="#fcd34d" stroke="#334155" stroke-width="1.3" d="M610.12,-
|
|
219
|
-
<text xml:space="preserve" text-anchor="middle" x="568" y="-
|
|
220
|
-
<text xml:space="preserve" text-anchor="middle" x="568" y="-
|
|
221
|
-
<text xml:space="preserve" text-anchor="middle" x="568" y="-
|
|
232
|
+
<path fill="#fcd34d" stroke="#334155" stroke-width="1.3" d="M610.12,-697.91C610.12,-697.91 525.88,-697.91 525.88,-697.91 519.88,-697.91 513.88,-691.91 513.88,-685.91 513.88,-685.91 513.88,-670.41 513.88,-670.41 513.88,-664.41 519.88,-658.41 525.88,-658.41 525.88,-658.41 610.12,-658.41 610.12,-658.41 616.12,-658.41 622.12,-664.41 622.12,-670.41 622.12,-670.41 622.12,-685.91 622.12,-685.91 622.12,-691.91 616.12,-697.91 610.12,-697.91"/>
|
|
233
|
+
<text xml:space="preserve" text-anchor="middle" x="568" y="-685.36" font-family="sans-Serif" font-size="9.00" fill="#0f172a">skill_list · view · create</text>
|
|
234
|
+
<text xml:space="preserve" text-anchor="middle" x="568" y="-674.86" font-family="sans-Serif" font-size="9.00" fill="#0f172a">add_reference · delete</text>
|
|
235
|
+
<text xml:space="preserve" text-anchor="middle" x="568" y="-664.36" font-family="sans-Serif" font-size="9.00" fill="#0f172a">migrate_legacy</text>
|
|
222
236
|
</g>
|
|
223
237
|
<!-- skills->t_skill -->
|
|
224
|
-
<g id="
|
|
238
|
+
<g id="edge17" class="edge">
|
|
225
239
|
<title>skills->t_skill</title>
|
|
226
|
-
<path fill="none" stroke="#f59e0b" stroke-width="1.1" d="M349.8,-
|
|
227
|
-
<polygon fill="#f59e0b" stroke="#f59e0b" stroke-width="1.1" points="504.
|
|
240
|
+
<path fill="none" stroke="#f59e0b" stroke-width="1.1" d="M349.8,-641.63C386.77,-647.85 454.87,-659.3 504.99,-667.73"/>
|
|
241
|
+
<polygon fill="#f59e0b" stroke="#f59e0b" stroke-width="1.1" points="504.55,-670.14 511.86,-668.89 505.36,-665.31 504.55,-670.14"/>
|
|
228
242
|
</g>
|
|
229
243
|
<!-- t_sess -->
|
|
230
|
-
<g id="
|
|
244
|
+
<g id="node19" class="node">
|
|
231
245
|
<title>t_sess</title>
|
|
232
|
-
<path fill="#fcd34d" stroke="#334155" stroke-width="1.3" d="M607.12,-
|
|
233
|
-
<text xml:space="preserve" text-anchor="middle" x="568" y="-
|
|
234
|
-
<text xml:space="preserve" text-anchor="middle" x="568" y="-
|
|
235
|
-
<text xml:space="preserve" text-anchor="middle" x="568" y="-
|
|
246
|
+
<path fill="#fcd34d" stroke="#334155" stroke-width="1.3" d="M607.12,-632.91C607.12,-632.91 528.88,-632.91 528.88,-632.91 522.88,-632.91 516.88,-626.91 516.88,-620.91 516.88,-620.91 516.88,-605.41 516.88,-605.41 516.88,-599.41 522.88,-593.41 528.88,-593.41 528.88,-593.41 607.12,-593.41 607.12,-593.41 613.12,-593.41 619.12,-599.41 619.12,-605.41 619.12,-605.41 619.12,-620.91 619.12,-620.91 619.12,-626.91 613.12,-632.91 607.12,-632.91"/>
|
|
247
|
+
<text xml:space="preserve" text-anchor="middle" x="568" y="-620.36" font-family="sans-Serif" font-size="9.00" fill="#0f172a">sessions_list · view</text>
|
|
248
|
+
<text xml:space="preserve" text-anchor="middle" x="568" y="-609.86" font-family="sans-Serif" font-size="9.00" fill="#0f172a">current · delete · stats</text>
|
|
249
|
+
<text xml:space="preserve" text-anchor="middle" x="568" y="-599.36" font-family="sans-Serif" font-size="9.00" fill="#0f172a">lean</text>
|
|
236
250
|
</g>
|
|
237
251
|
<!-- sessions->t_sess -->
|
|
238
|
-
<g id="
|
|
252
|
+
<g id="edge18" class="edge">
|
|
239
253
|
<title>sessions->t_sess</title>
|
|
240
|
-
<path fill="none" stroke="#f59e0b" stroke-width="1.1" d="M350.27,-
|
|
241
|
-
<polygon fill="#f59e0b" stroke="#f59e0b" stroke-width="1.1" points="507.
|
|
254
|
+
<path fill="none" stroke="#f59e0b" stroke-width="1.1" d="M350.27,-580.26C388.11,-586.01 457.9,-596.6 508.07,-604.22"/>
|
|
255
|
+
<polygon fill="#f59e0b" stroke="#f59e0b" stroke-width="1.1" points="507.64,-606.63 514.93,-605.26 508.37,-601.79 507.64,-606.63"/>
|
|
242
256
|
</g>
|
|
243
257
|
<!-- t_learn -->
|
|
244
|
-
<g id="
|
|
258
|
+
<g id="node20" class="node">
|
|
245
259
|
<title>t_learn</title>
|
|
246
|
-
<path fill="#fcd34d" stroke="#334155" stroke-width="1.3" d="M623.25,-
|
|
247
|
-
<text xml:space="preserve" text-anchor="middle" x="568" y="-
|
|
248
|
-
<text xml:space="preserve" text-anchor="middle" x="568" y="-
|
|
249
|
-
<text xml:space="preserve" text-anchor="middle" x="568" y="-
|
|
250
|
-
<text xml:space="preserve" text-anchor="middle" x="568" y="-
|
|
251
|
-
<text xml:space="preserve" text-anchor="middle" x="568" y="-
|
|
252
|
-
<text xml:space="preserve" text-anchor="middle" x="568" y="-
|
|
260
|
+
<path fill="#fcd34d" stroke="#334155" stroke-width="1.3" d="M623.25,-568.66C623.25,-568.66 512.75,-568.66 512.75,-568.66 506.75,-568.66 500.75,-562.66 500.75,-556.66 500.75,-556.66 500.75,-509.66 500.75,-509.66 500.75,-503.66 506.75,-497.66 512.75,-497.66 512.75,-497.66 623.25,-497.66 623.25,-497.66 629.25,-497.66 635.25,-503.66 635.25,-509.66 635.25,-509.66 635.25,-556.66 635.25,-556.66 635.25,-562.66 629.25,-568.66 623.25,-568.66"/>
|
|
261
|
+
<text xml:space="preserve" text-anchor="middle" x="568" y="-556.11" font-family="sans-Serif" font-size="9.00" fill="#0f172a">learning_* · mistakes_*</text>
|
|
262
|
+
<text xml:space="preserve" text-anchor="middle" x="568" y="-545.61" font-family="sans-Serif" font-size="9.00" fill="#0f172a">reward_judge · prm · sentinel</text>
|
|
263
|
+
<text xml:space="preserve" text-anchor="middle" x="568" y="-535.11" font-family="sans-Serif" font-size="9.00" fill="#0f172a">export_dpo · scrub · balance</text>
|
|
264
|
+
<text xml:space="preserve" text-anchor="middle" x="568" y="-524.61" font-family="sans-Serif" font-size="9.00" fill="#0f172a">curriculum_practice · train</text>
|
|
265
|
+
<text xml:space="preserve" text-anchor="middle" x="568" y="-514.11" font-family="sans-Serif" font-size="9.00" fill="#0f172a">hindsight · offline_judge</text>
|
|
266
|
+
<text xml:space="preserve" text-anchor="middle" x="568" y="-503.61" font-family="sans-Serif" font-size="9.00" fill="#0f172a">gc_stores · lean helpers</text>
|
|
253
267
|
</g>
|
|
254
268
|
<!-- learning->t_learn -->
|
|
255
|
-
<g id="
|
|
269
|
+
<g id="edge19" class="edge">
|
|
256
270
|
<title>learning->t_learn</title>
|
|
257
|
-
<path fill="none" stroke="#f59e0b" stroke-width="1.1" d="M349.8,-
|
|
258
|
-
<polygon fill="#f59e0b" stroke="#f59e0b" stroke-width="1.1" points="491.
|
|
271
|
+
<path fill="none" stroke="#f59e0b" stroke-width="1.1" d="M349.8,-517.12C383.61,-519.62 443.46,-524.04 491.77,-527.61"/>
|
|
272
|
+
<polygon fill="#f59e0b" stroke="#f59e0b" stroke-width="1.1" points="491.52,-530.05 498.69,-528.12 491.88,-525.16 491.52,-530.05"/>
|
|
259
273
|
</g>
|
|
260
274
|
<!-- t_metric -->
|
|
261
|
-
<g id="
|
|
275
|
+
<g id="node21" class="node">
|
|
262
276
|
<title>t_metric</title>
|
|
263
|
-
<path fill="#fcd34d" stroke="#334155" stroke-width="1.3" d="M600,-
|
|
264
|
-
<text xml:space="preserve" text-anchor="middle" x="568" y="-
|
|
265
|
-
<text xml:space="preserve" text-anchor="middle" x="568" y="-
|
|
277
|
+
<path fill="#fcd34d" stroke="#334155" stroke-width="1.3" d="M600,-472.16C600,-472.16 536,-472.16 536,-472.16 530,-472.16 524,-466.16 524,-460.16 524,-460.16 524,-448.16 524,-448.16 524,-442.16 530,-436.16 536,-436.16 536,-436.16 600,-436.16 600,-436.16 606,-436.16 612,-442.16 612,-448.16 612,-448.16 612,-460.16 612,-460.16 612,-466.16 606,-472.16 600,-472.16"/>
|
|
278
|
+
<text xml:space="preserve" text-anchor="middle" x="568" y="-456.11" font-family="sans-Serif" font-size="9.00" fill="#0f172a">metrics_summary</text>
|
|
279
|
+
<text xml:space="preserve" text-anchor="middle" x="568" y="-445.61" font-family="sans-Serif" font-size="9.00" fill="#0f172a">metrics_reset</text>
|
|
266
280
|
</g>
|
|
267
281
|
<!-- metrics->t_metric -->
|
|
268
|
-
<g id="
|
|
282
|
+
<g id="edge20" class="edge">
|
|
269
283
|
<title>metrics->t_metric</title>
|
|
270
|
-
<path fill="none" stroke="#f59e0b" stroke-width="1.1" d="M349.8,-
|
|
271
|
-
<polygon fill="#f59e0b" stroke="#f59e0b" stroke-width="1.1" points="515.
|
|
284
|
+
<path fill="none" stroke="#f59e0b" stroke-width="1.1" d="M349.8,-454.16C389.34,-454.16 464.47,-454.16 515.15,-454.16"/>
|
|
285
|
+
<polygon fill="#f59e0b" stroke="#f59e0b" stroke-width="1.1" points="515.03,-456.61 522.03,-454.16 515.03,-451.71 515.03,-456.61"/>
|
|
272
286
|
</g>
|
|
273
287
|
<!-- t_extro -->
|
|
274
|
-
<g id="
|
|
288
|
+
<g id="node22" class="node">
|
|
275
289
|
<title>t_extro</title>
|
|
276
|
-
<path fill="#fcd34d" stroke="#334155" stroke-width="1.3" d="M622.12,-
|
|
277
|
-
<text xml:space="preserve" text-anchor="middle" x="568" y="-
|
|
278
|
-
<text xml:space="preserve" text-anchor="middle" x="568" y="-
|
|
279
|
-
<text xml:space="preserve" text-anchor="middle" x="568" y="-
|
|
280
|
-
<text xml:space="preserve" text-anchor="middle" x="568" y="-
|
|
281
|
-
<text xml:space="preserve" text-anchor="middle" x="568" y="-
|
|
282
|
-
<text xml:space="preserve" text-anchor="middle" x="568" y="-
|
|
290
|
+
<path fill="#fcd34d" stroke="#334155" stroke-width="1.3" d="M622.12,-410.66C622.12,-410.66 513.88,-410.66 513.88,-410.66 507.88,-410.66 501.88,-404.66 501.88,-398.66 501.88,-398.66 501.88,-351.66 501.88,-351.66 501.88,-345.66 507.88,-339.66 513.88,-339.66 513.88,-339.66 622.12,-339.66 622.12,-339.66 628.12,-339.66 634.12,-345.66 634.12,-351.66 634.12,-351.66 634.12,-398.66 634.12,-398.66 634.12,-404.66 628.12,-410.66 622.12,-410.66"/>
|
|
291
|
+
<text xml:space="preserve" text-anchor="middle" x="568" y="-398.11" font-family="sans-Serif" font-size="9.00" fill="#0f172a">extro_snapshot · drift</text>
|
|
292
|
+
<text xml:space="preserve" text-anchor="middle" x="568" y="-387.61" font-family="sans-Serif" font-size="9.00" fill="#0f172a">observe · observations · intel</text>
|
|
293
|
+
<text xml:space="preserve" text-anchor="middle" x="568" y="-377.11" font-family="sans-Serif" font-size="9.00" fill="#0f172a">watch · verify · rf_tune · osint</text>
|
|
294
|
+
<text xml:space="preserve" text-anchor="middle" x="568" y="-366.61" font-family="sans-Serif" font-size="9.00" fill="#0f172a">serial · telecomm · packet</text>
|
|
295
|
+
<text xml:space="preserve" text-anchor="middle" x="568" y="-356.11" font-family="sans-Serif" font-size="9.00" fill="#0f172a">vision · voice · correlate</text>
|
|
296
|
+
<text xml:space="preserve" text-anchor="middle" x="568" y="-345.61" font-family="sans-Serif" font-size="9.00" fill="#0f172a">stats · reset · auto_toggle</text>
|
|
283
297
|
</g>
|
|
284
298
|
<!-- extro->t_extro -->
|
|
285
|
-
<g id="
|
|
299
|
+
<g id="edge21" class="edge">
|
|
286
300
|
<title>extro->t_extro</title>
|
|
287
|
-
<path fill="none" stroke="#f59e0b" stroke-width="1.1" d="M360.01,-
|
|
288
|
-
<polygon fill="#f59e0b" stroke="#f59e0b" stroke-width="1.1" points="
|
|
301
|
+
<path fill="none" stroke="#f59e0b" stroke-width="1.1" d="M360.01,-390.45C395.11,-387.86 449.05,-383.87 493.06,-380.62"/>
|
|
302
|
+
<polygon fill="#f59e0b" stroke="#f59e0b" stroke-width="1.1" points="492.98,-383.09 499.78,-380.13 492.62,-378.2 492.98,-383.09"/>
|
|
289
303
|
</g>
|
|
290
304
|
<!-- t_cron -->
|
|
291
|
-
<g id="
|
|
305
|
+
<g id="node23" class="node">
|
|
292
306
|
<title>t_cron</title>
|
|
293
|
-
<path fill="#fcd34d" stroke="#334155" stroke-width="1.3" d="M615.38,-
|
|
294
|
-
<text xml:space="preserve" text-anchor="middle" x="568" y="-
|
|
295
|
-
<text xml:space="preserve" text-anchor="middle" x="568" y="-
|
|
307
|
+
<path fill="#fcd34d" stroke="#334155" stroke-width="1.3" d="M615.38,-314.16C615.38,-314.16 520.62,-314.16 520.62,-314.16 514.62,-314.16 508.62,-308.16 508.62,-302.16 508.62,-302.16 508.62,-290.16 508.62,-290.16 508.62,-284.16 514.62,-278.16 520.62,-278.16 520.62,-278.16 615.38,-278.16 615.38,-278.16 621.38,-278.16 627.38,-284.16 627.38,-290.16 627.38,-290.16 627.38,-302.16 627.38,-302.16 627.38,-308.16 621.38,-314.16 615.38,-314.16"/>
|
|
308
|
+
<text xml:space="preserve" text-anchor="middle" x="568" y="-298.11" font-family="sans-Serif" font-size="9.00" fill="#0f172a">cron_list · create · run</text>
|
|
309
|
+
<text xml:space="preserve" text-anchor="middle" x="568" y="-287.61" font-family="sans-Serif" font-size="9.00" fill="#0f172a">enable · disable · remove</text>
|
|
296
310
|
</g>
|
|
297
311
|
<!-- cron->t_cron -->
|
|
298
|
-
<g id="
|
|
312
|
+
<g id="edge22" class="edge">
|
|
299
313
|
<title>cron->t_cron</title>
|
|
300
|
-
<path fill="none" stroke="#f59e0b" stroke-width="1.1" d="M349.8,-
|
|
301
|
-
<polygon fill="#f59e0b" stroke="#f59e0b" stroke-width="1.1" points="499.
|
|
314
|
+
<path fill="none" stroke="#f59e0b" stroke-width="1.1" d="M349.8,-328.24C385.49,-322.97 450.18,-313.42 499.71,-306.1"/>
|
|
315
|
+
<polygon fill="#f59e0b" stroke="#f59e0b" stroke-width="1.1" points="499.93,-308.55 506.5,-305.1 499.22,-303.7 499.93,-308.55"/>
|
|
302
316
|
</g>
|
|
303
317
|
<!-- t_swarm -->
|
|
304
|
-
<g id="
|
|
318
|
+
<g id="node24" class="node">
|
|
305
319
|
<title>t_swarm</title>
|
|
306
|
-
<path fill="#fcd34d" stroke="#334155" stroke-width="1.3" d="M612.75,-
|
|
307
|
-
<text xml:space="preserve" text-anchor="middle" x="568" y="-
|
|
308
|
-
<text xml:space="preserve" text-anchor="middle" x="568" y="-
|
|
309
|
-
<text xml:space="preserve" text-anchor="middle" x="568" y="-
|
|
320
|
+
<path fill="#fcd34d" stroke="#334155" stroke-width="1.3" d="M612.75,-252.91C612.75,-252.91 523.25,-252.91 523.25,-252.91 517.25,-252.91 511.25,-246.91 511.25,-240.91 511.25,-240.91 511.25,-225.41 511.25,-225.41 511.25,-219.41 517.25,-213.41 523.25,-213.41 523.25,-213.41 612.75,-213.41 612.75,-213.41 618.75,-213.41 624.75,-219.41 624.75,-225.41 624.75,-225.41 624.75,-240.91 624.75,-240.91 624.75,-246.91 618.75,-252.91 612.75,-252.91"/>
|
|
321
|
+
<text xml:space="preserve" text-anchor="middle" x="568" y="-240.36" font-family="sans-Serif" font-size="9.00" fill="#0f172a">agent_list · spawn · ask</text>
|
|
322
|
+
<text xml:space="preserve" text-anchor="middle" x="568" y="-229.86" font-family="sans-Serif" font-size="9.00" fill="#0f172a">debate · broadcast</text>
|
|
323
|
+
<text xml:space="preserve" text-anchor="middle" x="568" y="-219.36" font-family="sans-Serif" font-size="9.00" fill="#0f172a">swarm_bus · swarm_list</text>
|
|
310
324
|
</g>
|
|
311
325
|
<!-- swarm->t_swarm -->
|
|
312
|
-
<g id="
|
|
326
|
+
<g id="edge23" class="edge">
|
|
313
327
|
<title>swarm->t_swarm</title>
|
|
314
|
-
<path fill="none" stroke="#f59e0b" stroke-width="1.1" d="M349.8,-
|
|
315
|
-
<polygon fill="#f59e0b" stroke="#f59e0b" stroke-width="1.1" points="502.
|
|
328
|
+
<path fill="none" stroke="#f59e0b" stroke-width="1.1" d="M349.8,-267.02C386.07,-261.37 452.3,-251.04 502.13,-243.28"/>
|
|
329
|
+
<polygon fill="#f59e0b" stroke="#f59e0b" stroke-width="1.1" points="502.42,-245.71 508.96,-242.21 501.66,-240.87 502.42,-245.71"/>
|
|
316
330
|
</g>
|
|
317
331
|
<!-- t_reward -->
|
|
318
|
-
<g id="
|
|
332
|
+
<g id="node25" class="node">
|
|
319
333
|
<title>t_reward</title>
|
|
320
|
-
<path fill="#fcd34d" stroke="#334155" stroke-width="1.3" d="M610.5,-
|
|
321
|
-
<text xml:space="preserve" text-anchor="middle" x="568" y="-
|
|
334
|
+
<path fill="#fcd34d" stroke="#334155" stroke-width="1.3" d="M610.5,-188.16C610.5,-188.16 525.5,-188.16 525.5,-188.16 519.5,-188.16 513.5,-182.16 513.5,-176.16 513.5,-176.16 513.5,-164.16 513.5,-164.16 513.5,-158.16 519.5,-152.16 525.5,-152.16 525.5,-152.16 610.5,-152.16 610.5,-152.16 616.5,-152.16 622.5,-158.16 622.5,-164.16 622.5,-164.16 622.5,-176.16 622.5,-176.16 622.5,-182.16 616.5,-188.16 610.5,-188.16"/>
|
|
335
|
+
<text xml:space="preserve" text-anchor="middle" x="568" y="-166.86" font-family="sans-Serif" font-size="9.00" fill="#0f172a">reward_generator_mix</text>
|
|
322
336
|
</g>
|
|
323
337
|
<!-- reward->t_reward -->
|
|
324
|
-
<g id="
|
|
338
|
+
<g id="edge24" class="edge">
|
|
325
339
|
<title>reward->t_reward</title>
|
|
326
|
-
<path fill="none" stroke="#f59e0b" stroke-width="1.1" d="M349.8,-
|
|
327
|
-
<polygon fill="#f59e0b" stroke="#f59e0b" stroke-width="1.1" points="504.
|
|
340
|
+
<path fill="none" stroke="#f59e0b" stroke-width="1.1" d="M349.8,-205.81C386.66,-199.76 454.44,-188.63 504.52,-180.42"/>
|
|
341
|
+
<polygon fill="#f59e0b" stroke="#f59e0b" stroke-width="1.1" points="504.87,-182.84 511.38,-179.29 504.07,-178.01 504.87,-182.84"/>
|
|
328
342
|
</g>
|
|
329
343
|
<!-- t_curric -->
|
|
330
|
-
<g id="
|
|
344
|
+
<g id="node26" class="node">
|
|
331
345
|
<title>t_curric</title>
|
|
332
|
-
<path fill="#fcd34d" stroke="#334155" stroke-width="1.3" d="M612.75,-
|
|
333
|
-
<text xml:space="preserve" text-anchor="middle" x="568" y="-
|
|
346
|
+
<path fill="#fcd34d" stroke="#334155" stroke-width="1.3" d="M612.75,-127.16C612.75,-127.16 523.25,-127.16 523.25,-127.16 517.25,-127.16 511.25,-121.16 511.25,-115.16 511.25,-115.16 511.25,-103.16 511.25,-103.16 511.25,-97.16 517.25,-91.16 523.25,-91.16 523.25,-91.16 612.75,-91.16 612.75,-91.16 618.75,-91.16 624.75,-97.16 624.75,-103.16 624.75,-103.16 624.75,-115.16 624.75,-115.16 624.75,-121.16 618.75,-127.16 612.75,-127.16"/>
|
|
347
|
+
<text xml:space="preserve" text-anchor="middle" x="568" y="-105.86" font-family="sans-Serif" font-size="9.00" fill="#0f172a">curriculum_practice_kpi</text>
|
|
334
348
|
</g>
|
|
335
349
|
<!-- curric->t_curric -->
|
|
336
|
-
<g id="
|
|
350
|
+
<g id="edge26" class="edge">
|
|
337
351
|
<title>curric->t_curric</title>
|
|
338
|
-
<path fill="none" stroke="#f59e0b" stroke-width="1.1" d="M353.14,-
|
|
339
|
-
<polygon fill="#f59e0b" stroke="#f59e0b" stroke-width="1.1" points="502.
|
|
352
|
+
<path fill="none" stroke="#f59e0b" stroke-width="1.1" d="M353.14,-144.26C390.08,-138.2 453.96,-127.71 502.32,-119.78"/>
|
|
353
|
+
<polygon fill="#f59e0b" stroke="#f59e0b" stroke-width="1.1" points="502.7,-122.2 509.21,-118.65 501.9,-117.36 502.7,-122.2"/>
|
|
354
|
+
</g>
|
|
355
|
+
<!-- t_policy -->
|
|
356
|
+
<g id="node27" class="node">
|
|
357
|
+
<title>t_policy</title>
|
|
358
|
+
<path fill="#fcd34d" stroke="#334155" stroke-width="1.3" d="M603,-65.91C603,-65.91 533,-65.91 533,-65.91 527,-65.91 521,-59.91 521,-53.91 521,-53.91 521,-38.41 521,-38.41 521,-32.41 527,-26.41 533,-26.41 533,-26.41 603,-26.41 603,-26.41 609,-26.41 615,-32.41 615,-38.41 615,-38.41 615,-53.91 615,-53.91 615,-59.91 609,-65.91 603,-65.91"/>
|
|
359
|
+
<text xml:space="preserve" text-anchor="middle" x="568" y="-53.36" font-family="sans-Serif" font-size="9.00" fill="#0f172a">policy_stats</text>
|
|
360
|
+
<text xml:space="preserve" text-anchor="middle" x="568" y="-42.86" font-family="sans-Serif" font-size="9.00" fill="#0f172a">policy_evaluate</text>
|
|
361
|
+
<text xml:space="preserve" text-anchor="middle" x="568" y="-32.36" font-family="sans-Serif" font-size="9.00" fill="#0f172a">policy_recommend</text>
|
|
362
|
+
</g>
|
|
363
|
+
<!-- policy->t_policy -->
|
|
364
|
+
<g id="edge25" class="edge">
|
|
365
|
+
<title>policy->t_policy</title>
|
|
366
|
+
<path fill="none" stroke="#f59e0b" stroke-width="1.1" d="M349.8,-83.59C388.6,-76.9 461.69,-64.31 512.3,-55.59"/>
|
|
367
|
+
<polygon fill="#f59e0b" stroke="#f59e0b" stroke-width="1.1" points="512.41,-58.06 518.89,-54.45 511.57,-53.23 512.41,-58.06"/>
|
|
340
368
|
</g>
|
|
341
369
|
<!-- t_metric->Registry -->
|
|
342
|
-
<g id="
|
|
370
|
+
<g id="edge27" class="edge">
|
|
343
371
|
<title>t_metric->Registry</title>
|
|
344
|
-
<path fill="none" stroke="#fbbf24" stroke-width="1.1" stroke-dasharray="5,2" d="M523.
|
|
345
|
-
<polygon fill="#fbbf24" stroke="#fbbf24" stroke-width="1.1" points="
|
|
346
|
-
<text xml:space="preserve" text-anchor="middle" x="322.25" y="-
|
|
347
|
-
<text xml:space="preserve" text-anchor="middle" x="322.25" y="-
|
|
372
|
+
<path fill="none" stroke="#fbbf24" stroke-width="1.1" stroke-dasharray="5,2" d="M523.45,-450.18C504.06,-446.21 482.46,-438.42 468.25,-423.16 343.71,-289.45 516.61,-136.46 373.25,-23.16 222.44,96.02 122.74,-283.59 93.82,-412.73"/>
|
|
373
|
+
<polygon fill="#fbbf24" stroke="#fbbf24" stroke-width="1.1" points="91.5,-411.88 92.38,-419.24 96.28,-412.94 91.5,-411.88"/>
|
|
374
|
+
<text xml:space="preserve" text-anchor="middle" x="322.25" y="-42.86" font-family="serif" font-size="14.00">success_rate</text>
|
|
375
|
+
<text xml:space="preserve" text-anchor="middle" x="322.25" y="-26.36" font-family="serif" font-size="14.00">→ router tie-break</text>
|
|
348
376
|
</g>
|
|
349
377
|
</g>
|
|
350
378
|
</svg>
|