pwn 0.5.618 → 0.5.621
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/Gemfile +2 -2
- data/README.md +14 -6
- data/bin/pwn_gqrx_scanner +25 -5
- data/documentation/Agent-Tool-Registry.md +4 -4
- data/documentation/Cron.md +13 -0
- data/documentation/Diagrams.md +6 -2
- data/documentation/Extrospection.md +96 -11
- data/documentation/Home.md +5 -4
- data/documentation/How-PWN-Works.md +7 -4
- data/documentation/Mistakes.md +97 -0
- data/documentation/Persistence.md +4 -1
- data/documentation/SDR.md +23 -5
- data/documentation/Skills-Memory-Learning.md +16 -5
- data/documentation/Transparent-Browser.md +18 -1
- data/documentation/diagrams/agent-tool-registry.svg +103 -100
- data/documentation/diagrams/ai-integration-tool-calling.svg +24 -24
- data/documentation/diagrams/aws-cloud-security.svg +25 -25
- data/documentation/diagrams/burp-vs-zap-preference.svg +12 -12
- data/documentation/diagrams/code-scanning-sast.svg +25 -25
- data/documentation/diagrams/cron-scheduling.svg +23 -23
- data/documentation/diagrams/dot/agent-tool-registry.dot +3 -3
- data/documentation/diagrams/dot/extrospection-world-awareness.dot +33 -10
- data/documentation/diagrams/dot/memory-skills-detailed.dot +16 -5
- data/documentation/diagrams/dot/mistakes-negative-feedback.dot +93 -0
- data/documentation/diagrams/dot/overall-pwn-architecture.dot +7 -5
- data/documentation/diagrams/dot/persistence-filesystem.dot +4 -2
- data/documentation/diagrams/dot/pwn-ai-feedback-learning-loop.dot +25 -7
- data/documentation/diagrams/dot/sdr-radio-flow.dot +13 -11
- data/documentation/diagrams/driver-framework.svg +13 -13
- data/documentation/diagrams/extrospection-world-awareness.svg +241 -93
- data/documentation/diagrams/fuzzing-workflow.svg +24 -24
- data/documentation/diagrams/hardware-hacking.svg +18 -18
- data/documentation/diagrams/history-to-drivers.svg +18 -18
- data/documentation/diagrams/memory-skills-detailed.svg +169 -97
- data/documentation/diagrams/mistakes-negative-feedback.svg +266 -0
- data/documentation/diagrams/network-infra-testing.svg +27 -27
- data/documentation/diagrams/overall-pwn-architecture.svg +184 -173
- data/documentation/diagrams/penetration-testing-workflow.svg +30 -30
- data/documentation/diagrams/persistence-filesystem.svg +111 -87
- data/documentation/diagrams/plugin-ecosystem.svg +35 -35
- data/documentation/diagrams/pwn-ai-feedback-learning-loop.svg +263 -149
- data/documentation/diagrams/pwn-repl-prototyping.svg +20 -20
- data/documentation/diagrams/reporting-pipeline.svg +18 -18
- data/documentation/diagrams/reverse-engineering-flow.svg +21 -21
- data/documentation/diagrams/sdr-radio-flow.svg +76 -56
- data/documentation/diagrams/sessions-cron-automation.svg +18 -18
- data/documentation/diagrams/swarm-multi-agent.svg +39 -39
- data/documentation/diagrams/web-application-testing.svg +26 -26
- data/documentation/diagrams/zero-day-research-flow.svg +25 -25
- data/documentation/pwn-ai-Agent.md +28 -15
- data/lib/pwn/ai/agent/extrospection.rb +494 -6
- data/lib/pwn/ai/agent/learning.rb +67 -7
- data/lib/pwn/ai/agent/loop.rb +72 -6
- data/lib/pwn/ai/agent/mistakes.rb +369 -0
- data/lib/pwn/ai/agent/prompt_builder.rb +10 -1
- data/lib/pwn/ai/agent/tools/extrospection.rb +88 -3
- data/lib/pwn/ai/agent/tools/mistakes.rb +132 -0
- data/lib/pwn/ai/agent.rb +1 -0
- data/lib/pwn/plugins/jira_data_center.rb +2 -2
- data/lib/pwn/sdr/decoder/adsb.rb +82 -0
- data/lib/pwn/sdr/decoder/apt.rb +136 -0
- data/lib/pwn/sdr/decoder/base.rb +258 -171
- data/lib/pwn/sdr/decoder/bluetooth.rb +71 -0
- data/lib/pwn/sdr/decoder/dect.rb +70 -0
- data/lib/pwn/sdr/decoder/dsp.rb +396 -0
- data/lib/pwn/sdr/decoder/flex.rb +177 -210
- data/lib/pwn/sdr/decoder/gps.rb +74 -0
- data/lib/pwn/sdr/decoder/gsm.rb +31 -62
- data/lib/pwn/sdr/decoder/iridium.rb +66 -0
- data/lib/pwn/sdr/decoder/lora.rb +80 -0
- data/lib/pwn/sdr/decoder/lte.rb +67 -0
- data/lib/pwn/sdr/decoder/morse.rb +138 -0
- data/lib/pwn/sdr/decoder/p25.rb +74 -0
- data/lib/pwn/sdr/decoder/pager.rb +61 -0
- data/lib/pwn/sdr/decoder/pocsag.rb +176 -54
- data/lib/pwn/sdr/decoder/rfid.rb +79 -0
- data/lib/pwn/sdr/decoder/rtl433.rb +86 -0
- data/lib/pwn/sdr/decoder/rtty.rb +139 -0
- data/lib/pwn/sdr/decoder/wifi.rb +77 -0
- data/lib/pwn/sdr/decoder/zigbee.rb +74 -0
- data/lib/pwn/sdr/decoder.rb +75 -7
- data/lib/pwn/sdr/frequency_allocation.rb +82 -41
- data/lib/pwn/sdr/gqrx.rb +186 -95
- data/lib/pwn/version.rb +1 -1
- data/spec/lib/pwn/ai/agent/mistakes_spec.rb +36 -0
- data/spec/lib/pwn/ai/agent/tools/mistakes_spec.rb +12 -0
- data/spec/lib/pwn/sdr/decoder/adsb_spec.rb +15 -0
- data/spec/lib/pwn/sdr/decoder/apt_spec.rb +15 -0
- data/spec/lib/pwn/sdr/decoder/bluetooth_spec.rb +15 -0
- data/spec/lib/pwn/sdr/decoder/dect_spec.rb +15 -0
- data/spec/lib/pwn/sdr/decoder/dsp_spec.rb +15 -0
- data/spec/lib/pwn/sdr/decoder/gps_spec.rb +15 -0
- data/spec/lib/pwn/sdr/decoder/iridium_spec.rb +15 -0
- data/spec/lib/pwn/sdr/decoder/lora_spec.rb +15 -0
- data/spec/lib/pwn/sdr/decoder/lte_spec.rb +15 -0
- data/spec/lib/pwn/sdr/decoder/morse_spec.rb +15 -0
- data/spec/lib/pwn/sdr/decoder/p25_spec.rb +15 -0
- data/spec/lib/pwn/sdr/decoder/pager_spec.rb +15 -0
- data/spec/lib/pwn/sdr/decoder/rfid_spec.rb +15 -0
- data/spec/lib/pwn/sdr/decoder/rtl433_spec.rb +15 -0
- data/spec/lib/pwn/sdr/decoder/rtty_spec.rb +15 -0
- data/spec/lib/pwn/sdr/decoder/wifi_spec.rb +15 -0
- data/spec/lib/pwn/sdr/decoder/zigbee_spec.rb +15 -0
- data/third_party/pwn_rdoc.jsonl +115 -5
- metadata +46 -6
- data/README.md.bak +0 -200
|
@@ -1,29 +1,37 @@
|
|
|
1
|
-
# Memory · Skills · Learning · Metrics — Introspection
|
|
1
|
+
# Memory · Skills · Learning · Mistakes · Metrics — Introspection
|
|
2
2
|
|
|
3
3
|
The **inward-facing** half of the pwn-ai feedback loop: how the agent measures
|
|
4
|
-
its own performance
|
|
4
|
+
its own performance, turns wins into permanent capability, and — critically —
|
|
5
|
+
**learns from its own mistakes so it does not repeat them**.
|
|
5
6
|
|
|
6
7
|

|
|
7
8
|
|
|
8
|
-
## The
|
|
9
|
+
## The five stores
|
|
9
10
|
|
|
10
11
|
| Store | File | Write tool | Read tool | Injected as |
|
|
11
12
|
|---|---|---|---|---|
|
|
12
13
|
| **Memory** | `memory.json` | `memory_remember` | `memory_recall` | `MEMORY` block — durable facts / prefs / lessons / env |
|
|
13
14
|
| **Skills** | `skills/*.md` | `skill_create` · `learning_distill_skill` | `skill_list` · `skill_view` | `SKILLS` list — reusable procedures + `references:` (CWE/CVE/ATT&CK/NIST/URL) |
|
|
14
15
|
| **Learning** | `learning.jsonl` | `learning_note_outcome` · `learning_reflect` | `learning_outcomes` · `learning_stats` | `LEARNING` block — recent outcomes + success_rate |
|
|
16
|
+
| **Mistakes** | `mistakes.json` | `mistakes_record` · `mistakes_resolve` · *auto on failure* | `mistakes_list` | `KNOWN MISTAKES` + `KNOWN FIXES` blocks — do-NOT-repeat + do-THIS-instead |
|
|
15
17
|
| **Metrics** | `metrics.json` | *automatic* (every Dispatch) | `metrics_summary` | `TOOL EFFECTIVENESS` block — steer tool choice |
|
|
16
18
|
|
|
17
19
|
## The lifecycle of a lesson
|
|
18
20
|
|
|
19
21
|
```text
|
|
20
22
|
1. Dispatch runs a tool → Metrics.record(tool, ok?, ms)
|
|
23
|
+
↳ tool FAILED? → Mistakes.record(tool, error) (count++, cross-session)
|
|
24
|
+
↳ same sig ≥3×? → guard_repeated_failure + inline correction_hint
|
|
21
25
|
2. Final answer produced → Learning.auto_reflect(session_id)
|
|
22
26
|
3. Reflect finds a durable insight → Memory.remember(lesson_xxxx, …)
|
|
23
27
|
4. A whole workflow succeeded → Learning.distill_skill(name, session_id, references:)
|
|
24
|
-
5.
|
|
28
|
+
5. Found a fix for a mistake → mistakes_resolve(sig, fix) → Memory :lesson "AVOID X — FIX: Y"
|
|
29
|
+
6. Next launch: PromptBuilder injects all five blocks → the model already knows.
|
|
25
30
|
```
|
|
26
31
|
|
|
32
|
+
See **[Mistakes](Mistakes.md)** for the full negative-feedback mechanics
|
|
33
|
+
(fingerprinting, `[REPEATING]`, `[REGRESSED]`, user-correction detection).
|
|
34
|
+
|
|
27
35
|
## Skill file format
|
|
28
36
|
|
|
29
37
|
```markdown
|
|
@@ -53,12 +61,15 @@ the `## References` section, deduplicates, and exposes them via
|
|
|
53
61
|
| Tool | When |
|
|
54
62
|
|---|---|
|
|
55
63
|
| `learning_consolidate(max_entries: 200)` | MEMORY block getting long/noisy |
|
|
64
|
+
| `PWN::AI::Agent::Extrospection.revalidate_memory` *(cron)* | MEMORY `:fact` entries getting **stale** — browser-verifies every one containing a CVE/version/URL and prefixes refuted ones `[UNVERIFIED yyyy-mm-dd]` |
|
|
56
65
|
| `learning_reset(confirm: true)` | dev-experiment noise polluted success_rate |
|
|
66
|
+
| `mistakes_reset(confirm: true)` | new host/engagement — prior failure patterns no longer apply |
|
|
57
67
|
| `metrics_reset(confirm: true)` | fixed a broken tool; stale 0 % is misleading |
|
|
58
68
|
| `skill_delete(name)` | auto-distilled skill turned out low-quality |
|
|
59
69
|
| `learning_auto_reflect_toggle(enabled: false)` | during noisy fuzz loops |
|
|
60
70
|
|
|
61
|
-
**See also:** [
|
|
71
|
+
**See also:** [Mistakes](Mistakes.md) — the negative-feedback half ·
|
|
72
|
+
[Extrospection](Extrospection.md) — the outward-facing half ·
|
|
62
73
|
[Sessions](Sessions.md) · [Persistence](Persistence.md)
|
|
63
74
|
|
|
64
75
|
[← Home](Home.md)
|
|
@@ -33,4 +33,21 @@ PWN::Plugins::TransparentBrowser.close(browser_obj: b)
|
|
|
33
33
|
`browser_type: :rest` returns a `RestClient`-backed object with the same proxy
|
|
34
34
|
plumbing — for APIs where a full browser is overkill.
|
|
35
35
|
|
|
36
|
-
|
|
36
|
+
## Agent integration — Extrospection's eyes
|
|
37
|
+
|
|
38
|
+
`PWN::AI::Agent::Extrospection` drives this plugin (`:headless`, `:rest`
|
|
39
|
+
fallback) as its **web sense organ** — the counterpart to `probe_rf`'s ears:
|
|
40
|
+
|
|
41
|
+
| Agent tool | Uses TransparentBrowser to… |
|
|
42
|
+
|---|---|
|
|
43
|
+
| `extro_snapshot(sections: %i[web])` → `probe_web` | Fingerprint config-declared `web_anchors`: status · title · meta[generator] · SHA-256 of *rendered* DOM text · TLS cert fp/notAfter · optional screenshot |
|
|
44
|
+
| `extro_watch(url:, selector:)` | Passive change-detection on a target page — re-hash the rendered DOM and diff vs the prior `:web` observation |
|
|
45
|
+
| `extro_verify(claim:, kind:)` | **Proactive self fact-check** — render NVD/CVE.org, rubygems/PyPI, a cited URL, or DuckDuckGo HTML and return `:confirmed` / `:refuted` / `:unknown`. `:refuted` → `Mistakes.record(tool:'assumption', …)` |
|
|
46
|
+
| `revalidate_memory` (cron) | Garbage-collect stale `PWN::Memory` `:fact` entries by re-`verify()`ing every one containing a CVE / version / URL |
|
|
47
|
+
|
|
48
|
+
All four honour `proxy:` (Burp / `tor`) so attribution stays controlled, reuse
|
|
49
|
+
**one** browser handle across anchors, and `close` in an `ensure`. See
|
|
50
|
+
[Extrospection](Extrospection.md) for the full loop.
|
|
51
|
+
|
|
52
|
+
|
|
53
|
+
[← Home](Home.md) · [BurpSuite](BurpSuite.md) · [WWW](WWW.md) · [Extrospection](Extrospection.md)
|
|
@@ -4,281 +4,284 @@
|
|
|
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="
|
|
8
|
-
viewBox="0.00 0.00 652.00
|
|
9
|
-
<g id="graph0" class="graph" transform="scale(1 1) rotate(0) translate(43.2
|
|
7
|
+
<svg width="652pt" height="815pt"
|
|
8
|
+
viewBox="0.00 0.00 652.00 815.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 772.2)">
|
|
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="10.38" y="-
|
|
13
|
-
<text xml:space="preserve" text-anchor="start" x="
|
|
11
|
+
<polygon fill="#0f172a" stroke="none" points="-43.2,43.2 -43.2,-772.2 608.45,-772.2 608.45,43.2 -43.2,43.2"/>
|
|
12
|
+
<text xml:space="preserve" text-anchor="start" x="10.38" y="-707" font-family="Helvetica,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="-695.55" font-family="Helvetica,sans-Serif" font-size="11.00" fill="#94a3b8">10 toolsets · 54 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,-
|
|
17
|
-
<text xml:space="preserve" text-anchor="middle" x="234.5" y="-
|
|
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="Helvetica,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,-
|
|
22
|
-
<text xml:space="preserve" text-anchor="middle" x="465" y="-
|
|
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,-670 565.25,-670 565.25,-676 559.25,-682 553.25,-682 553.25,-682 376.75,-682 376.75,-682 370.75,-682 364.75,-676 364.75,-670 364.75,-670 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="-659" font-family="Helvetica,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="M84.25,-
|
|
28
|
-
<text xml:space="preserve" text-anchor="middle" x="48.12" y="-
|
|
29
|
-
<text xml:space="preserve" text-anchor="middle" x="48.12" y="-
|
|
30
|
-
<text xml:space="preserve" text-anchor="middle" x="48.12" y="-
|
|
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="Helvetica,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="Helvetica,sans-Serif" font-size="12.00" fill="#0f172a">JSON-Schema</text>
|
|
30
|
+
<text xml:space="preserve" text-anchor="middle" x="48.12" y="-295.48" font-family="Helvetica,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,-
|
|
36
|
-
<text xml:space="preserve" text-anchor="middle" x="234.5" y="-
|
|
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="Helvetica,sans-Serif" font-size="10.00" fill="#0f172a">terminal</text>
|
|
37
37
|
</g>
|
|
38
38
|
<!-- Registry->terminal -->
|
|
39
39
|
<g id="edge1" class="edge">
|
|
40
40
|
<title>Registry->terminal</title>
|
|
41
|
-
<path fill="none" stroke="#94a3b8" stroke-width="1.1" d="M59.65,-
|
|
42
|
-
<polygon fill="#94a3b8" stroke="#94a3b8" stroke-width="1.1" points="201.71,-
|
|
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,-
|
|
48
|
-
<text xml:space="preserve" text-anchor="middle" x="234.5" y="-
|
|
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="Helvetica,sans-Serif" font-size="10.00" fill="#0f172a">pwn</text>
|
|
49
49
|
</g>
|
|
50
50
|
<!-- Registry->pwn -->
|
|
51
51
|
<g id="edge2" class="edge">
|
|
52
52
|
<title>Registry->pwn</title>
|
|
53
|
-
<path fill="none" stroke="#94a3b8" stroke-width="1.1" d="M65.53,-
|
|
54
|
-
<polygon fill="#94a3b8" stroke="#94a3b8" stroke-width="1.1" points="201.7,-
|
|
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,-
|
|
60
|
-
<text xml:space="preserve" text-anchor="middle" x="234.5" y="-
|
|
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="Helvetica,sans-Serif" font-size="10.00" fill="#0f172a">memory</text>
|
|
61
61
|
</g>
|
|
62
62
|
<!-- Registry->memory -->
|
|
63
63
|
<g id="edge3" class="edge">
|
|
64
64
|
<title>Registry->memory</title>
|
|
65
|
-
<path fill="none" stroke="#94a3b8" stroke-width="1.1" d="M77.66,-
|
|
66
|
-
<polygon fill="#94a3b8" stroke="#94a3b8" stroke-width="1.1" points="201.36,-
|
|
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,-
|
|
72
|
-
<text xml:space="preserve" text-anchor="middle" x="234.5" y="-
|
|
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="Helvetica,sans-Serif" font-size="10.00" fill="#0f172a">skills</text>
|
|
73
73
|
</g>
|
|
74
74
|
<!-- Registry->skills -->
|
|
75
75
|
<g id="edge4" class="edge">
|
|
76
76
|
<title>Registry->skills</title>
|
|
77
|
-
<path fill="none" stroke="#94a3b8" stroke-width="1.1" d="M97.09,-
|
|
78
|
-
<polygon fill="#94a3b8" stroke="#94a3b8" stroke-width="1.1" points="200.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,-
|
|
84
|
-
<text xml:space="preserve" text-anchor="middle" x="234.5" y="-
|
|
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="Helvetica,sans-Serif" font-size="10.00" fill="#0f172a">sessions</text>
|
|
85
85
|
</g>
|
|
86
86
|
<!-- Registry->sessions -->
|
|
87
87
|
<g id="edge5" class="edge">
|
|
88
88
|
<title>Registry->sessions</title>
|
|
89
|
-
<path fill="none" stroke="#94a3b8" stroke-width="1.1" d="M97.09,-
|
|
90
|
-
<polygon fill="#94a3b8" stroke="#94a3b8" stroke-width="1.1" points="198.45,-
|
|
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,-
|
|
96
|
-
<text xml:space="preserve" text-anchor="middle" x="234.5" y="-
|
|
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="Helvetica,sans-Serif" font-size="10.00" fill="#0f172a">learning</text>
|
|
97
97
|
</g>
|
|
98
98
|
<!-- Registry->learning -->
|
|
99
99
|
<g id="edge6" class="edge">
|
|
100
100
|
<title>Registry->learning</title>
|
|
101
|
-
<path fill="none" stroke="#94a3b8" stroke-width="1.1" d="M97.09,-
|
|
102
|
-
<polygon fill="#94a3b8" stroke="#94a3b8" stroke-width="1.1" points="197.92,-
|
|
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,-
|
|
108
|
-
<text xml:space="preserve" text-anchor="middle" x="234.5" y="-
|
|
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="Helvetica,sans-Serif" font-size="10.00" fill="#0f172a">metrics</text>
|
|
109
109
|
</g>
|
|
110
110
|
<!-- Registry->metrics -->
|
|
111
111
|
<g id="edge7" class="edge">
|
|
112
112
|
<title>Registry->metrics</title>
|
|
113
|
-
<path fill="none" stroke="#94a3b8" stroke-width="1.1" d="M97.09,-
|
|
114
|
-
<polygon fill="#94a3b8" stroke="#94a3b8" stroke-width="1.1" points="198.02,-
|
|
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,-
|
|
120
|
-
<text xml:space="preserve" text-anchor="middle" x="234.5" y="-
|
|
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="Helvetica,sans-Serif" font-size="10.00" fill="#0f172a">extrospection</text>
|
|
121
121
|
</g>
|
|
122
122
|
<!-- Registry->extro -->
|
|
123
123
|
<g id="edge8" class="edge">
|
|
124
124
|
<title>Registry->extro</title>
|
|
125
|
-
<path fill="none" stroke="#94a3b8" stroke-width="1.1" d="M76.96,-
|
|
126
|
-
<polygon fill="#94a3b8" stroke="#94a3b8" stroke-width="1.1" points="196.54,-
|
|
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,-
|
|
132
|
-
<text xml:space="preserve" text-anchor="middle" x="234.5" y="-
|
|
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="Helvetica,sans-Serif" font-size="10.00" fill="#0f172a">cron</text>
|
|
133
133
|
</g>
|
|
134
134
|
<!-- Registry->cron -->
|
|
135
135
|
<g id="edge9" class="edge">
|
|
136
136
|
<title>Registry->cron</title>
|
|
137
|
-
<path fill="none" stroke="#94a3b8" stroke-width="1.1" d="M65.16,-
|
|
138
|
-
<polygon fill="#94a3b8" stroke="#94a3b8" stroke-width="1.1" points="198.7,-
|
|
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,-
|
|
144
|
-
<text xml:space="preserve" text-anchor="middle" x="234.5" y="-
|
|
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="Helvetica,sans-Serif" font-size="10.00" fill="#0f172a">swarm</text>
|
|
145
145
|
</g>
|
|
146
146
|
<!-- Registry->swarm -->
|
|
147
147
|
<g id="edge10" class="edge">
|
|
148
148
|
<title>Registry->swarm</title>
|
|
149
|
-
<path fill="none" stroke="#94a3b8" stroke-width="1.1" d="M59.34,-
|
|
150
|
-
<polygon fill="#94a3b8" stroke="#94a3b8" stroke-width="1.1" points="198.69,-
|
|
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">
|
|
154
154
|
<title>t_shell</title>
|
|
155
155
|
<path fill="#fcd34d" stroke="#334155" stroke-width="1.3" d="M479.5,-52C479.5,-52 449.5,-52 449.5,-52 443.5,-52 437.5,-46 437.5,-40 437.5,-40 437.5,-28 437.5,-28 437.5,-22 443.5,-16 449.5,-16 449.5,-16 479.5,-16 479.5,-16 485.5,-16 491.5,-22 491.5,-28 491.5,-28 491.5,-40 491.5,-40 491.5,-46 485.5,-52 479.5,-52"/>
|
|
156
|
-
<text xml:space="preserve" text-anchor="middle" x="464.5" y="-30.7" font-family="sans-Serif" font-size="9.00" fill="#0f172a">shell</text>
|
|
156
|
+
<text xml:space="preserve" text-anchor="middle" x="464.5" y="-30.7" font-family="Helvetica,sans-Serif" font-size="9.00" fill="#0f172a">shell</text>
|
|
157
157
|
</g>
|
|
158
158
|
<!-- terminal->t_shell -->
|
|
159
159
|
<g id="edge11" class="edge">
|
|
160
160
|
<title>terminal->t_shell</title>
|
|
161
|
-
<path fill="none" stroke="#f59e0b" stroke-width="1.1" d="M262.1,-
|
|
162
|
-
<polygon fill="#f59e0b" stroke="#f59e0b" stroke-width="1.1" points="428.
|
|
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">
|
|
166
166
|
<title>t_eval</title>
|
|
167
167
|
<path fill="#fcd34d" stroke="#334155" stroke-width="1.3" d="M480.38,-113C480.38,-113 448.62,-113 448.62,-113 442.62,-113 436.62,-107 436.62,-101 436.62,-101 436.62,-89 436.62,-89 436.62,-83 442.62,-77 448.62,-77 448.62,-77 480.38,-77 480.38,-77 486.38,-77 492.38,-83 492.38,-89 492.38,-89 492.38,-101 492.38,-101 492.38,-107 486.38,-113 480.38,-113"/>
|
|
168
|
-
<text xml:space="preserve" text-anchor="middle" x="464.5" y="-91.7" font-family="sans-Serif" font-size="9.00" fill="#0f172a">pwn_eval</text>
|
|
168
|
+
<text xml:space="preserve" text-anchor="middle" x="464.5" y="-91.7" font-family="Helvetica,sans-Serif" font-size="9.00" fill="#0f172a">pwn_eval</text>
|
|
169
169
|
</g>
|
|
170
170
|
<!-- pwn->t_eval -->
|
|
171
171
|
<g id="edge12" class="edge">
|
|
172
172
|
<title>pwn->t_eval</title>
|
|
173
|
-
<path fill="none" stroke="#f59e0b" stroke-width="1.1" d="M262.1,-
|
|
174
|
-
<polygon fill="#f59e0b" stroke="#f59e0b" stroke-width="1.1" points="427.
|
|
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">
|
|
178
178
|
<title>t_mem</title>
|
|
179
179
|
<path fill="#fcd34d" stroke="#334155" stroke-width="1.3" d="M500.62,-174C500.62,-174 428.38,-174 428.38,-174 422.38,-174 416.38,-168 416.38,-162 416.38,-162 416.38,-150 416.38,-150 416.38,-144 422.38,-138 428.38,-138 428.38,-138 500.62,-138 500.62,-138 506.62,-138 512.62,-144 512.62,-150 512.62,-150 512.62,-162 512.62,-162 512.62,-168 506.62,-174 500.62,-174"/>
|
|
180
|
-
<text xml:space="preserve" text-anchor="middle" x="464.5" y="-157.95" font-family="sans-Serif" font-size="9.00" fill="#0f172a">memory_remember</text>
|
|
181
|
-
<text xml:space="preserve" text-anchor="middle" x="464.5" y="-147.45" font-family="sans-Serif" font-size="9.00" fill="#0f172a">recall · forget · clear</text>
|
|
180
|
+
<text xml:space="preserve" text-anchor="middle" x="464.5" y="-157.95" font-family="Helvetica,sans-Serif" font-size="9.00" fill="#0f172a">memory_remember</text>
|
|
181
|
+
<text xml:space="preserve" text-anchor="middle" x="464.5" y="-147.45" font-family="Helvetica,sans-Serif" font-size="9.00" fill="#0f172a">recall · forget · clear</text>
|
|
182
182
|
</g>
|
|
183
183
|
<!-- memory->t_mem -->
|
|
184
184
|
<g id="edge13" class="edge">
|
|
185
185
|
<title>memory->t_mem</title>
|
|
186
|
-
<path fill="none" stroke="#f59e0b" stroke-width="1.1" d="M262.1,-
|
|
187
|
-
<polygon fill="#f59e0b" stroke="#f59e0b" stroke-width="1.1" points="407.
|
|
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">
|
|
191
191
|
<title>t_skill</title>
|
|
192
192
|
<path fill="#fcd34d" stroke="#334155" stroke-width="1.3" d="M522.75,-235C522.75,-235 406.25,-235 406.25,-235 400.25,-235 394.25,-229 394.25,-223 394.25,-223 394.25,-211 394.25,-211 394.25,-205 400.25,-199 406.25,-199 406.25,-199 522.75,-199 522.75,-199 528.75,-199 534.75,-205 534.75,-211 534.75,-211 534.75,-223 534.75,-223 534.75,-229 528.75,-235 522.75,-235"/>
|
|
193
|
-
<text xml:space="preserve" text-anchor="middle" x="464.5" y="-218.95" font-family="sans-Serif" font-size="9.00" fill="#0f172a">skill_list · view</text>
|
|
194
|
-
<text xml:space="preserve" text-anchor="middle" x="464.5" y="-208.45" font-family="sans-Serif" font-size="9.00" fill="#0f172a">create · add_reference · delete</text>
|
|
193
|
+
<text xml:space="preserve" text-anchor="middle" x="464.5" y="-218.95" font-family="Helvetica,sans-Serif" font-size="9.00" fill="#0f172a">skill_list · view</text>
|
|
194
|
+
<text xml:space="preserve" text-anchor="middle" x="464.5" y="-208.45" font-family="Helvetica,sans-Serif" font-size="9.00" fill="#0f172a">create · add_reference · delete</text>
|
|
195
195
|
</g>
|
|
196
196
|
<!-- skills->t_skill -->
|
|
197
197
|
<g id="edge14" class="edge">
|
|
198
198
|
<title>skills->t_skill</title>
|
|
199
|
-
<path fill="none" stroke="#f59e0b" stroke-width="1.1" d="M262.1,-
|
|
200
|
-
<polygon fill="#f59e0b" stroke="#f59e0b" stroke-width="1.1" points="385.
|
|
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">
|
|
204
204
|
<title>t_sess</title>
|
|
205
205
|
<path fill="#fcd34d" stroke="#334155" stroke-width="1.3" d="M503.62,-296C503.62,-296 425.38,-296 425.38,-296 419.38,-296 413.38,-290 413.38,-284 413.38,-284 413.38,-272 413.38,-272 413.38,-266 419.38,-260 425.38,-260 425.38,-260 503.62,-260 503.62,-260 509.62,-260 515.62,-266 515.62,-272 515.62,-272 515.62,-284 515.62,-284 515.62,-290 509.62,-296 503.62,-296"/>
|
|
206
|
-
<text xml:space="preserve" text-anchor="middle" x="464.5" y="-279.95" font-family="sans-Serif" font-size="9.00" fill="#0f172a">sessions_list · view</text>
|
|
207
|
-
<text xml:space="preserve" text-anchor="middle" x="464.5" y="-269.45" font-family="sans-Serif" font-size="9.00" fill="#0f172a">current · delete · stats</text>
|
|
206
|
+
<text xml:space="preserve" text-anchor="middle" x="464.5" y="-279.95" font-family="Helvetica,sans-Serif" font-size="9.00" fill="#0f172a">sessions_list · view</text>
|
|
207
|
+
<text xml:space="preserve" text-anchor="middle" x="464.5" y="-269.45" font-family="Helvetica,sans-Serif" font-size="9.00" fill="#0f172a">current · delete · stats</text>
|
|
208
208
|
</g>
|
|
209
209
|
<!-- sessions->t_sess -->
|
|
210
210
|
<g id="edge15" class="edge">
|
|
211
211
|
<title>sessions->t_sess</title>
|
|
212
|
-
<path fill="none" stroke="#f59e0b" stroke-width="1.1" d="M262.55,-
|
|
213
|
-
<polygon fill="#f59e0b" stroke="#f59e0b" stroke-width="1.1" points="404.
|
|
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,-
|
|
219
|
-
<text xml:space="preserve" text-anchor="middle" x="464.5" y="-
|
|
220
|
-
<text xml:space="preserve" text-anchor="middle" x="464.5" y="-
|
|
221
|
-
<text xml:space="preserve" text-anchor="middle" x="464.5" y="-
|
|
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="Helvetica,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="Helvetica,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="Helvetica,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="Helvetica,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="Helvetica,sans-Serif" font-size="9.00" fill="#0f172a">mistakes_resolve · reset</text>
|
|
222
224
|
</g>
|
|
223
225
|
<!-- learning->t_learn -->
|
|
224
226
|
<g id="edge16" class="edge">
|
|
225
227
|
<title>learning->t_learn</title>
|
|
226
|
-
<path fill="none" stroke="#f59e0b" stroke-width="1.1" d="M262.1,-
|
|
227
|
-
<polygon fill="#f59e0b" stroke="#f59e0b" stroke-width="1.1" points="387
|
|
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,-
|
|
233
|
-
<text xml:space="preserve" text-anchor="middle" x="464.5" y="-
|
|
234
|
-
<text xml:space="preserve" text-anchor="middle" x="464.5" y="-
|
|
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="Helvetica,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="Helvetica,sans-Serif" font-size="9.00" fill="#0f172a">metrics_reset</text>
|
|
235
237
|
</g>
|
|
236
238
|
<!-- metrics->t_metric -->
|
|
237
239
|
<g id="edge17" class="edge">
|
|
238
240
|
<title>metrics->t_metric</title>
|
|
239
|
-
<path fill="none" stroke="#f59e0b" stroke-width="1.1" d="M262.1,-
|
|
240
|
-
<polygon fill="#f59e0b" stroke="#f59e0b" stroke-width="1.1" points="411.
|
|
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,-
|
|
246
|
-
<text xml:space="preserve" text-anchor="middle" x="464.5" y="-
|
|
247
|
-
<text xml:space="preserve" text-anchor="middle" x="464.5" y="-
|
|
248
|
-
<text xml:space="preserve" text-anchor="middle" x="464.5" y="-
|
|
247
|
+
<path fill="#fcd34d" stroke="#334155" stroke-width="1.3" d="M513,-517C513,-517 416,-517 416,-517 410,-517 404,-511 404,-505 404,-505 404,-479 404,-479 404,-473 410,-467 416,-467 416,-467 513,-467 513,-467 519,-467 525,-473 525,-479 525,-479 525,-505 525,-505 525,-511 519,-517 513,-517"/>
|
|
248
|
+
<text xml:space="preserve" text-anchor="middle" x="464.5" y="-504.45" font-family="Helvetica,sans-Serif" font-size="9.00" fill="#0f172a">extro_snapshot · drift</text>
|
|
249
|
+
<text xml:space="preserve" text-anchor="middle" x="464.5" y="-493.95" font-family="Helvetica,sans-Serif" font-size="9.00" fill="#0f172a">observe · intel · correlate</text>
|
|
250
|
+
<text xml:space="preserve" text-anchor="middle" x="464.5" y="-483.45" font-family="Helvetica,sans-Serif" font-size="9.00" fill="#0f172a">watch · verify (browser)</text>
|
|
251
|
+
<text xml:space="preserve" text-anchor="middle" x="464.5" y="-472.95" font-family="Helvetica,sans-Serif" font-size="9.00" fill="#0f172a">observations · stats · reset</text>
|
|
249
252
|
</g>
|
|
250
253
|
<!-- extro->t_extro -->
|
|
251
254
|
<g id="edge18" class="edge">
|
|
252
255
|
<title>extro->t_extro</title>
|
|
253
|
-
<path fill="none" stroke="#f59e0b" stroke-width="1.1" d="M272.39,-
|
|
254
|
-
<polygon fill="#f59e0b" stroke="#f59e0b" stroke-width="1.1" points="394.
|
|
256
|
+
<path fill="none" stroke="#f59e0b" stroke-width="1.1" d="M272.39,-471.04C305.45,-474.67 354.8,-480.08 395.08,-484.5"/>
|
|
257
|
+
<polygon fill="#f59e0b" stroke="#f59e0b" stroke-width="1.1" points="394.64,-486.91 401.87,-485.24 395.18,-482.04 394.64,-486.91"/>
|
|
255
258
|
</g>
|
|
256
259
|
<!-- t_cron -->
|
|
257
260
|
<g id="node20" class="node">
|
|
258
261
|
<title>t_cron</title>
|
|
259
|
-
<path fill="#fcd34d" stroke="#334155" stroke-width="1.3" d="M511.88,-
|
|
260
|
-
<text xml:space="preserve" text-anchor="middle" x="464.5" y="-
|
|
261
|
-
<text xml:space="preserve" text-anchor="middle" x="464.5" y="-
|
|
262
|
+
<path fill="#fcd34d" stroke="#334155" stroke-width="1.3" d="M511.88,-578C511.88,-578 417.12,-578 417.12,-578 411.12,-578 405.12,-572 405.12,-566 405.12,-566 405.12,-554 405.12,-554 405.12,-548 411.12,-542 417.12,-542 417.12,-542 511.88,-542 511.88,-542 517.88,-542 523.88,-548 523.88,-554 523.88,-554 523.88,-566 523.88,-566 523.88,-572 517.88,-578 511.88,-578"/>
|
|
263
|
+
<text xml:space="preserve" text-anchor="middle" x="464.5" y="-561.95" font-family="Helvetica,sans-Serif" font-size="9.00" fill="#0f172a">cron_list · create · run</text>
|
|
264
|
+
<text xml:space="preserve" text-anchor="middle" x="464.5" y="-551.45" font-family="Helvetica,sans-Serif" font-size="9.00" fill="#0f172a">enable · disable · remove</text>
|
|
262
265
|
</g>
|
|
263
266
|
<!-- cron->t_cron -->
|
|
264
267
|
<g id="edge19" class="edge">
|
|
265
268
|
<title>cron->t_cron</title>
|
|
266
|
-
<path fill="none" stroke="#f59e0b" stroke-width="1.1" d="M262.1,-
|
|
267
|
-
<polygon fill="#f59e0b" stroke="#f59e0b" stroke-width="1.1" points="
|
|
269
|
+
<path fill="none" stroke="#f59e0b" stroke-width="1.1" d="M262.1,-531.73C294.77,-536.32 351.36,-544.26 396.25,-550.56"/>
|
|
270
|
+
<polygon fill="#f59e0b" stroke="#f59e0b" stroke-width="1.1" points="395.85,-552.98 403.13,-551.53 396.53,-548.13 395.85,-552.98"/>
|
|
268
271
|
</g>
|
|
269
272
|
<!-- t_swarm -->
|
|
270
273
|
<g id="node21" class="node">
|
|
271
274
|
<title>t_swarm</title>
|
|
272
|
-
<path fill="#fcd34d" stroke="#334155" stroke-width="1.3" d="M509.25,-
|
|
273
|
-
<text xml:space="preserve" text-anchor="middle" x="464.5" y="-
|
|
274
|
-
<text xml:space="preserve" text-anchor="middle" x="464.5" y="-
|
|
275
|
-
<text xml:space="preserve" text-anchor="middle" x="464.5" y="-
|
|
275
|
+
<path fill="#fcd34d" stroke="#334155" stroke-width="1.3" d="M509.25,-642.75C509.25,-642.75 419.75,-642.75 419.75,-642.75 413.75,-642.75 407.75,-636.75 407.75,-630.75 407.75,-630.75 407.75,-615.25 407.75,-615.25 407.75,-609.25 413.75,-603.25 419.75,-603.25 419.75,-603.25 509.25,-603.25 509.25,-603.25 515.25,-603.25 521.25,-609.25 521.25,-615.25 521.25,-615.25 521.25,-630.75 521.25,-630.75 521.25,-636.75 515.25,-642.75 509.25,-642.75"/>
|
|
276
|
+
<text xml:space="preserve" text-anchor="middle" x="464.5" y="-630.2" font-family="Helvetica,sans-Serif" font-size="9.00" fill="#0f172a">agent_list · spawn · ask</text>
|
|
277
|
+
<text xml:space="preserve" text-anchor="middle" x="464.5" y="-619.7" font-family="Helvetica,sans-Serif" font-size="9.00" fill="#0f172a">debate · broadcast</text>
|
|
278
|
+
<text xml:space="preserve" text-anchor="middle" x="464.5" y="-609.2" font-family="Helvetica,sans-Serif" font-size="9.00" fill="#0f172a">swarm_bus · swarm_list</text>
|
|
276
279
|
</g>
|
|
277
280
|
<!-- swarm->t_swarm -->
|
|
278
281
|
<g id="edge20" class="edge">
|
|
279
282
|
<title>swarm->t_swarm</title>
|
|
280
|
-
<path fill="none" stroke="#f59e0b" stroke-width="1.1" d="M262.1,-
|
|
281
|
-
<polygon fill="#f59e0b" stroke="#f59e0b" stroke-width="1.1" points="398.
|
|
283
|
+
<path fill="none" stroke="#f59e0b" stroke-width="1.1" d="M262.1,-592.97C295.5,-597.95 353.9,-606.66 399.25,-613.42"/>
|
|
284
|
+
<polygon fill="#f59e0b" stroke="#f59e0b" stroke-width="1.1" points="398.62,-615.8 405.91,-614.41 399.35,-610.96 398.62,-615.8"/>
|
|
282
285
|
</g>
|
|
283
286
|
</g>
|
|
284
287
|
</svg>
|