pwn 0.5.779 → 0.5.781
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 +3 -3
- data/documentation/AI-Integration.md +4 -4
- data/documentation/AWS.md +10 -9
- data/documentation/Agent-Tool-Registry.md +20 -17
- data/documentation/Blockchain.md +3 -2
- data/documentation/Bounty.md +8 -6
- data/documentation/BurpSuite.md +6 -10
- data/documentation/CLI-Drivers.md +7 -4
- data/documentation/Capability-Broker-Sandbox.md +1 -1
- data/documentation/Configuration.md +23 -15
- data/documentation/Contributing.md +3 -3
- data/documentation/Cron.md +3 -2
- data/documentation/Diagrams.md +9 -3
- data/documentation/Drivers.md +12 -6
- data/documentation/Extrospection.md +25 -5
- data/documentation/FFI.md +15 -25
- data/documentation/Fuzzing.md +13 -13
- data/documentation/General-PWN-Usage.md +7 -4
- data/documentation/Harness-Evaluation.md +90 -3
- data/documentation/Home.md +6 -5
- data/documentation/How-PWN-Works.md +9 -10
- data/documentation/Installation.md +12 -11
- data/documentation/Metasploit.md +13 -19
- data/documentation/Mistakes.md +2 -2
- data/documentation/NmapIt.md +6 -3
- data/documentation/Operability.md +99 -0
- data/documentation/Persistence.md +3 -2
- data/documentation/Plugin-Degradation.md +4 -2
- data/documentation/Plugins.md +4 -11
- data/documentation/Policy-Benchmark.md +4 -0
- data/documentation/Reinforcement-Learning.md +19 -3
- data/documentation/Reporting.md +6 -5
- data/documentation/SAST.md +15 -10
- data/documentation/SDR-Decoder-Coverage.md +10 -4
- data/documentation/SDR.md +28 -40
- data/documentation/Session-Workflow.md +25 -12
- data/documentation/Sessions.md +7 -0
- data/documentation/Skills-Memory-Learning.md +11 -4
- data/documentation/Swarm.md +6 -0
- data/documentation/Transparent-Browser.md +1 -1
- data/documentation/Troubleshooting.md +6 -3
- data/documentation/What-is-PWN.md +4 -4
- data/documentation/Why-PWN.md +1 -1
- data/documentation/diagrams/agent-tool-registry.svg +219 -180
- data/documentation/diagrams/ai-integration-tool-calling.svg +35 -34
- data/documentation/diagrams/code-scanning-sast.svg +78 -78
- data/documentation/diagrams/cron-scheduling.svg +165 -145
- data/documentation/diagrams/dot/_THEME.md +6 -4
- data/documentation/diagrams/dot/agent-tool-registry.dot +6 -2
- data/documentation/diagrams/dot/ai-integration-tool-calling.dot +1 -1
- data/documentation/diagrams/dot/code-scanning-sast.dot +8 -8
- data/documentation/diagrams/dot/cron-scheduling.dot +2 -0
- data/documentation/diagrams/dot/driver-framework.dot +1 -1
- data/documentation/diagrams/dot/extrospection-world-awareness.dot +2 -2
- data/documentation/diagrams/dot/fuzzing-workflow.dot +3 -3
- data/documentation/diagrams/dot/history-to-drivers.dot +1 -1
- data/documentation/diagrams/dot/memory-skills-detailed.dot +3 -3
- data/documentation/diagrams/dot/mistakes-negative-feedback.dot +2 -2
- data/documentation/diagrams/dot/overall-pwn-architecture.dot +33 -121
- data/documentation/diagrams/dot/persistence-filesystem.dot +2 -2
- data/documentation/diagrams/dot/plugin-ecosystem.dot +2 -2
- data/documentation/diagrams/dot/pwn-ai-feedback-learning-loop.dot +31 -167
- data/documentation/diagrams/dot/pwn-repl-prototyping.dot +1 -1
- data/documentation/diagrams/dot/reinforcement-learning.dot +15 -7
- data/documentation/diagrams/dot/reporting-pipeline.dot +5 -3
- data/documentation/diagrams/dot/reverse-engineering-flow.dot +3 -3
- data/documentation/diagrams/dot/sdr-radio-flow.dot +5 -5
- data/documentation/diagrams/dot/sessions-cron-automation.dot +1 -1
- data/documentation/diagrams/dot/swarm-multi-agent.dot +3 -3
- data/documentation/diagrams/dot/task-summarizer.dot +2 -2
- data/documentation/diagrams/dot/web-application-testing.dot +4 -3
- data/documentation/diagrams/dot/zero-day-research-flow.dot +4 -3
- data/documentation/diagrams/driver-framework.svg +1 -1
- data/documentation/diagrams/extrospection-world-awareness.svg +178 -178
- data/documentation/diagrams/fuzzing-workflow.svg +58 -58
- data/documentation/diagrams/history-to-drivers.svg +42 -42
- data/documentation/diagrams/memory-skills-detailed.svg +210 -210
- data/documentation/diagrams/mistakes-negative-feedback.svg +116 -116
- data/documentation/diagrams/overall-pwn-architecture.svg +248 -404
- data/documentation/diagrams/persistence-filesystem.svg +143 -143
- data/documentation/diagrams/plugin-ecosystem.svg +100 -100
- data/documentation/diagrams/pwn-ai-feedback-learning-loop.svg +233 -752
- data/documentation/diagrams/pwn-repl-prototyping.svg +27 -27
- data/documentation/diagrams/reinforcement-learning.svg +295 -221
- data/documentation/diagrams/reporting-pipeline.svg +94 -80
- data/documentation/diagrams/reverse-engineering-flow.svg +31 -31
- data/documentation/diagrams/sdr-radio-flow.svg +157 -155
- data/documentation/diagrams/sessions-cron-automation.svg +13 -13
- data/documentation/diagrams/swarm-multi-agent.svg +86 -86
- data/documentation/diagrams/task-summarizer.svg +57 -57
- data/documentation/diagrams/web-application-testing.svg +81 -75
- data/documentation/diagrams/zero-day-research-flow.svg +101 -92
- data/documentation/pwn-REPL.md +5 -3
- data/documentation/pwn-ai-Agent.md +18 -14
- data/documentation/pwn_silent_help_learn_demo.gif +0 -0
- data/etc/default_skills/pwn/ai/agent/learning/SKILL.md +1 -0
- data/lib/pwn/ai/agent/learning.rb +46 -1
- data/lib/pwn/ai/agent/loop.rb +6 -3
- data/lib/pwn/ai/agent/policy_evaluation.rb +5 -1
- data/lib/pwn/ai/agent/reward.rb +9 -0
- data/lib/pwn/version.rb +1 -1
- data/spec/fixtures/harness/completion_regressions.json +10 -0
- data/spec/fixtures/harness/completion_regressions.json.sha256 +1 -0
- data/spec/integration/harness_evaluation_spec.rb +13 -0
- data/spec/lib/pwn/ai/agent/learning_spec.rb +22 -0
- data/spec/lib/pwn/ai/agent/loop_spec.rb +39 -0
- data/spec/lib/pwn/ai/agent/policy_evaluation_spec.rb +6 -1
- data/spec/lib/pwn/ai/agent/reward_spec.rb +21 -0
- data/spec/support/harness/evaluate.rb +1 -1
- data/third_party/pwn_rdoc.jsonl +2 -1
- metadata +10 -7
|
@@ -4,27 +4,27 @@
|
|
|
4
4
|
<!-- Generated by graphviz version 14.1.2 (0)
|
|
5
5
|
-->
|
|
6
6
|
<!-- Title: PWN_Fuzz Pages: 1 -->
|
|
7
|
-
<svg width="
|
|
8
|
-
viewBox="0.00 0.00
|
|
7
|
+
<svg width="958pt" height="389pt"
|
|
8
|
+
viewBox="0.00 0.00 958.00 389.00" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
|
|
9
9
|
<g id="graph0" class="graph" transform="scale(1 1) rotate(0) translate(43.2 346.07)">
|
|
10
10
|
<title>PWN_Fuzz</title>
|
|
11
|
-
<polygon fill="#0f172a" stroke="none" points="-43.2,43.2 -43.2,-346.07
|
|
12
|
-
<text xml:space="preserve" text-anchor="start" x="
|
|
13
|
-
<text xml:space="preserve" text-anchor="start" x="
|
|
11
|
+
<polygon fill="#0f172a" stroke="none" points="-43.2,43.2 -43.2,-346.07 914.45,-346.07 914.45,43.2 -43.2,43.2"/>
|
|
12
|
+
<text xml:space="preserve" text-anchor="start" x="350.88" y="-280.87" font-family="sans-Serif" font-weight="bold" font-size="20.00" fill="#e2e8f0">Fuzzing with PWN</text>
|
|
13
|
+
<text xml:space="preserve" text-anchor="start" x="327.62" y="-269.42" font-family="sans-Serif" font-size="11.00" fill="#94a3b8">Plugins::Fuzz · Sock · Packet · Reports::Fuzz</text>
|
|
14
14
|
<g id="clust1" class="cluster">
|
|
15
15
|
<title>cluster_gen</title>
|
|
16
|
-
<path fill="#022c22" stroke="#047857" d="M182.75,-36.87C182.75,-36.87
|
|
17
|
-
<text xml:space="preserve" text-anchor="middle" x="
|
|
16
|
+
<path fill="#022c22" stroke="#047857" d="M182.75,-36.87C182.75,-36.87 300.25,-36.87 300.25,-36.87 306.25,-36.87 312.25,-42.87 312.25,-48.87 312.25,-48.87 312.25,-175.87 312.25,-175.87 312.25,-181.87 306.25,-187.87 300.25,-187.87 300.25,-187.87 182.75,-187.87 182.75,-187.87 176.75,-187.87 170.75,-181.87 170.75,-175.87 170.75,-175.87 170.75,-48.87 170.75,-48.87 170.75,-42.87 176.75,-36.87 182.75,-36.87"/>
|
|
17
|
+
<text xml:space="preserve" text-anchor="middle" x="241.5" y="-164.87" font-family="sans-Serif" font-size="20.00" fill="#a7f3d0">Generate</text>
|
|
18
18
|
</g>
|
|
19
19
|
<g id="clust2" class="cluster">
|
|
20
20
|
<title>cluster_deliver</title>
|
|
21
|
-
<path fill="#422006" stroke="#a16207" d="
|
|
22
|
-
<text xml:space="preserve" text-anchor="middle" x="
|
|
21
|
+
<path fill="#422006" stroke="#a16207" d="M395.25,-36.87C395.25,-36.87 512,-36.87 512,-36.87 518,-36.87 524,-42.87 524,-48.87 524,-48.87 524,-243.87 524,-243.87 524,-249.87 518,-255.87 512,-255.87 512,-255.87 395.25,-255.87 395.25,-255.87 389.25,-255.87 383.25,-249.87 383.25,-243.87 383.25,-243.87 383.25,-48.87 383.25,-48.87 383.25,-42.87 389.25,-36.87 395.25,-36.87"/>
|
|
22
|
+
<text xml:space="preserve" text-anchor="middle" x="453.62" y="-232.87" font-family="sans-Serif" font-size="20.00" fill="#fde68a">Deliver</text>
|
|
23
23
|
</g>
|
|
24
24
|
<g id="clust3" class="cluster">
|
|
25
25
|
<title>cluster_mon</title>
|
|
26
|
-
<path fill="#450a0a" stroke="#b91c1c" d="
|
|
27
|
-
<text xml:space="preserve" text-anchor="middle" x="
|
|
26
|
+
<path fill="#450a0a" stroke="#b91c1c" d="M607,-104.87C607,-104.87 678.75,-104.87 678.75,-104.87 684.75,-104.87 690.75,-110.87 690.75,-116.87 690.75,-116.87 690.75,-243.87 690.75,-243.87 690.75,-249.87 684.75,-255.87 678.75,-255.87 678.75,-255.87 607,-255.87 607,-255.87 601,-255.87 595,-249.87 595,-243.87 595,-243.87 595,-116.87 595,-116.87 595,-110.87 601,-104.87 607,-104.87"/>
|
|
27
|
+
<text xml:space="preserve" text-anchor="middle" x="642.88" y="-232.87" font-family="sans-Serif" font-size="20.00" fill="#fecaca">Monitor</text>
|
|
28
28
|
</g>
|
|
29
29
|
<!-- Seed -->
|
|
30
30
|
<g id="node1" class="node">
|
|
@@ -36,125 +36,125 @@
|
|
|
36
36
|
<!-- Fuzz -->
|
|
37
37
|
<g id="node2" class="node">
|
|
38
38
|
<title>Fuzz</title>
|
|
39
|
-
<path fill="#6ee7b7" stroke="#334155" stroke-width="1.3" d="
|
|
40
|
-
<text xml:space="preserve" text-anchor="middle" x="
|
|
41
|
-
<text xml:space="preserve" text-anchor="middle" x="
|
|
39
|
+
<path fill="#6ee7b7" stroke="#334155" stroke-width="1.3" d="M292.25,-148.87C292.25,-148.87 190.75,-148.87 190.75,-148.87 184.75,-148.87 178.75,-142.87 178.75,-136.87 178.75,-136.87 178.75,-124.87 178.75,-124.87 178.75,-118.87 184.75,-112.87 190.75,-112.87 190.75,-112.87 292.25,-112.87 292.25,-112.87 298.25,-112.87 304.25,-118.87 304.25,-124.87 304.25,-124.87 304.25,-136.87 304.25,-136.87 304.25,-142.87 298.25,-148.87 292.25,-148.87"/>
|
|
40
|
+
<text xml:space="preserve" text-anchor="middle" x="241.5" y="-133.37" font-family="sans-Serif" font-size="10.00" fill="#0f172a">Plugins::Fuzz</text>
|
|
41
|
+
<text xml:space="preserve" text-anchor="middle" x="241.5" y="-121.37" font-family="sans-Serif" font-size="10.00" fill="#0f172a">http · file_format · socket</text>
|
|
42
42
|
</g>
|
|
43
43
|
<!-- Seed->Fuzz -->
|
|
44
44
|
<g id="edge1" class="edge">
|
|
45
45
|
<title>Seed->Fuzz</title>
|
|
46
|
-
<path fill="none" stroke="#38bdf8" stroke-width="1.3" d="M92.
|
|
47
|
-
<polygon fill="#38bdf8" stroke="#38bdf8" stroke-width="1.3" points="167.
|
|
46
|
+
<path fill="none" stroke="#38bdf8" stroke-width="1.3" d="M92.27,-104.08C114.97,-108.18 142.98,-113.25 168.51,-117.86"/>
|
|
47
|
+
<polygon fill="#38bdf8" stroke="#38bdf8" stroke-width="1.3" points="167.86,-120.59 176.23,-119.26 168.85,-115.08 167.86,-120.59"/>
|
|
48
48
|
</g>
|
|
49
49
|
<!-- Char -->
|
|
50
50
|
<g id="node3" class="node">
|
|
51
51
|
<title>Char</title>
|
|
52
|
-
<path fill="#6ee7b7" stroke="#334155" stroke-width="1.3" d="
|
|
53
|
-
<text xml:space="preserve" text-anchor="middle" x="
|
|
54
|
-
<text xml:space="preserve" text-anchor="middle" x="
|
|
52
|
+
<path fill="#6ee7b7" stroke="#334155" stroke-width="1.3" d="M267.12,-80.87C267.12,-80.87 215.88,-80.87 215.88,-80.87 209.88,-80.87 203.88,-74.87 203.88,-68.87 203.88,-68.87 203.88,-56.87 203.88,-56.87 203.88,-50.87 209.88,-44.87 215.88,-44.87 215.88,-44.87 267.12,-44.87 267.12,-44.87 273.12,-44.87 279.12,-50.87 279.12,-56.87 279.12,-56.87 279.12,-68.87 279.12,-68.87 279.12,-74.87 273.12,-80.87 267.12,-80.87"/>
|
|
53
|
+
<text xml:space="preserve" text-anchor="middle" x="241.5" y="-65.37" font-family="sans-Serif" font-size="10.00" fill="#0f172a">Plugins::Char</text>
|
|
54
|
+
<text xml:space="preserve" text-anchor="middle" x="241.5" y="-53.37" font-family="sans-Serif" font-size="10.00" fill="#0f172a">encodings</text>
|
|
55
55
|
</g>
|
|
56
56
|
<!-- Seed->Char -->
|
|
57
57
|
<g id="edge2" class="edge">
|
|
58
58
|
<title>Seed->Char</title>
|
|
59
|
-
<path fill="none" stroke="#38bdf8" stroke-width="1.3" d="M92.
|
|
60
|
-
<polygon fill="#38bdf8" stroke="#38bdf8" stroke-width="1.3" points="
|
|
59
|
+
<path fill="none" stroke="#38bdf8" stroke-width="1.3" d="M92.27,-88.14C122.83,-82.93 163.02,-76.08 193.84,-70.83"/>
|
|
60
|
+
<polygon fill="#38bdf8" stroke="#38bdf8" stroke-width="1.3" points="194.14,-73.61 201.56,-69.51 193.2,-68.09 194.14,-73.61"/>
|
|
61
61
|
</g>
|
|
62
62
|
<!-- Sock -->
|
|
63
63
|
<g id="node4" class="node">
|
|
64
64
|
<title>Sock</title>
|
|
65
|
-
<path fill="#fcd34d" stroke="#334155" stroke-width="1.3" d="
|
|
66
|
-
<text xml:space="preserve" text-anchor="middle" x="
|
|
67
|
-
<text xml:space="preserve" text-anchor="middle" x="
|
|
65
|
+
<path fill="#fcd34d" stroke="#334155" stroke-width="1.3" d="M480,-216.87C480,-216.87 427.25,-216.87 427.25,-216.87 421.25,-216.87 415.25,-210.87 415.25,-204.87 415.25,-204.87 415.25,-192.87 415.25,-192.87 415.25,-186.87 421.25,-180.87 427.25,-180.87 427.25,-180.87 480,-180.87 480,-180.87 486,-180.87 492,-186.87 492,-192.87 492,-192.87 492,-204.87 492,-204.87 492,-210.87 486,-216.87 480,-216.87"/>
|
|
66
|
+
<text xml:space="preserve" text-anchor="middle" x="453.62" y="-201.37" font-family="sans-Serif" font-size="10.00" fill="#0f172a">Plugins::Sock</text>
|
|
67
|
+
<text xml:space="preserve" text-anchor="middle" x="453.62" y="-189.37" font-family="sans-Serif" font-size="10.00" fill="#0f172a">TCP/UDP</text>
|
|
68
68
|
</g>
|
|
69
69
|
<!-- Fuzz->Sock -->
|
|
70
70
|
<g id="edge3" class="edge">
|
|
71
71
|
<title>Fuzz->Sock</title>
|
|
72
|
-
<path fill="none" stroke="#f59e0b" stroke-width="1.3" d="
|
|
73
|
-
<polygon fill="#f59e0b" stroke="#f59e0b" stroke-width="1.3" points="
|
|
72
|
+
<path fill="none" stroke="#f59e0b" stroke-width="1.3" d="M299.92,-149.45C333.06,-160.18 374.24,-173.51 405.48,-183.62"/>
|
|
73
|
+
<polygon fill="#f59e0b" stroke="#f59e0b" stroke-width="1.3" points="404.49,-186.24 412.96,-186.04 406.21,-180.91 404.49,-186.24"/>
|
|
74
74
|
</g>
|
|
75
75
|
<!-- Packet -->
|
|
76
76
|
<g id="node5" class="node">
|
|
77
77
|
<title>Packet</title>
|
|
78
|
-
<path fill="#fcd34d" stroke="#334155" stroke-width="1.3" d="
|
|
79
|
-
<text xml:space="preserve" text-anchor="middle" x="
|
|
80
|
-
<text xml:space="preserve" text-anchor="middle" x="
|
|
78
|
+
<path fill="#fcd34d" stroke="#334155" stroke-width="1.3" d="M484.12,-148.87C484.12,-148.87 423.12,-148.87 423.12,-148.87 417.12,-148.87 411.12,-142.87 411.12,-136.87 411.12,-136.87 411.12,-124.87 411.12,-124.87 411.12,-118.87 417.12,-112.87 423.12,-112.87 423.12,-112.87 484.12,-112.87 484.12,-112.87 490.12,-112.87 496.12,-118.87 496.12,-124.87 496.12,-124.87 496.12,-136.87 496.12,-136.87 496.12,-142.87 490.12,-148.87 484.12,-148.87"/>
|
|
79
|
+
<text xml:space="preserve" text-anchor="middle" x="453.62" y="-133.37" font-family="sans-Serif" font-size="10.00" fill="#0f172a">Plugins::Packet</text>
|
|
80
|
+
<text xml:space="preserve" text-anchor="middle" x="453.62" y="-121.37" font-family="sans-Serif" font-size="10.00" fill="#0f172a">raw L2/L3</text>
|
|
81
81
|
</g>
|
|
82
82
|
<!-- Fuzz->Packet -->
|
|
83
83
|
<g id="edge4" class="edge">
|
|
84
84
|
<title>Fuzz->Packet</title>
|
|
85
|
-
<path fill="none" stroke="#f59e0b" stroke-width="1.3" d="
|
|
86
|
-
<polygon fill="#f59e0b" stroke="#f59e0b" stroke-width="1.3" points="
|
|
85
|
+
<path fill="none" stroke="#f59e0b" stroke-width="1.3" d="M304.69,-130.87C335.22,-130.87 371.58,-130.87 400.61,-130.87"/>
|
|
86
|
+
<polygon fill="#f59e0b" stroke="#f59e0b" stroke-width="1.3" points="400.58,-133.67 408.58,-130.87 400.58,-128.07 400.58,-133.67"/>
|
|
87
87
|
</g>
|
|
88
88
|
<!-- NetApp -->
|
|
89
89
|
<g id="node6" class="node">
|
|
90
90
|
<title>NetApp</title>
|
|
91
|
-
<path fill="#fcd34d" stroke="#334155" stroke-width="1.3" d="
|
|
92
|
-
<text xml:space="preserve" text-anchor="middle" x="
|
|
93
|
-
<text xml:space="preserve" text-anchor="middle" x="
|
|
91
|
+
<path fill="#fcd34d" stroke="#334155" stroke-width="1.3" d="M504,-80.87C504,-80.87 403.25,-80.87 403.25,-80.87 397.25,-80.87 391.25,-74.87 391.25,-68.87 391.25,-68.87 391.25,-56.87 391.25,-56.87 391.25,-50.87 397.25,-44.87 403.25,-44.87 403.25,-44.87 504,-44.87 504,-44.87 510,-44.87 516,-50.87 516,-56.87 516,-56.87 516,-68.87 516,-68.87 516,-74.87 510,-80.87 504,-80.87"/>
|
|
92
|
+
<text xml:space="preserve" text-anchor="middle" x="453.62" y="-65.37" font-family="sans-Serif" font-size="10.00" fill="#0f172a">pwn_fuzz_net_app_proto</text>
|
|
93
|
+
<text xml:space="preserve" text-anchor="middle" x="453.62" y="-53.37" font-family="sans-Serif" font-size="10.00" fill="#0f172a">CLI driver</text>
|
|
94
94
|
</g>
|
|
95
95
|
<!-- Char->NetApp -->
|
|
96
96
|
<g id="edge5" class="edge">
|
|
97
97
|
<title>Char->NetApp</title>
|
|
98
|
-
<path fill="none" stroke="#f59e0b" stroke-width="1.3" d="
|
|
99
|
-
<polygon fill="#f59e0b" stroke="#f59e0b" stroke-width="1.3" points="
|
|
98
|
+
<path fill="none" stroke="#f59e0b" stroke-width="1.3" d="M279.58,-62.87C307.57,-62.87 346.84,-62.87 380.89,-62.87"/>
|
|
99
|
+
<polygon fill="#f59e0b" stroke="#f59e0b" stroke-width="1.3" points="380.84,-65.67 388.84,-62.87 380.84,-60.07 380.84,-65.67"/>
|
|
100
100
|
</g>
|
|
101
101
|
<!-- PS -->
|
|
102
102
|
<g id="node7" class="node">
|
|
103
103
|
<title>PS</title>
|
|
104
|
-
<path fill="#fda4af" stroke="#334155" stroke-width="1.3" d="
|
|
105
|
-
<text xml:space="preserve" text-anchor="middle" x="
|
|
106
|
-
<text xml:space="preserve" text-anchor="middle" x="
|
|
104
|
+
<path fill="#fda4af" stroke="#334155" stroke-width="1.3" d="M670.75,-216.87C670.75,-216.87 615,-216.87 615,-216.87 609,-216.87 603,-210.87 603,-204.87 603,-204.87 603,-192.87 603,-192.87 603,-186.87 609,-180.87 615,-180.87 615,-180.87 670.75,-180.87 670.75,-180.87 676.75,-180.87 682.75,-186.87 682.75,-192.87 682.75,-192.87 682.75,-204.87 682.75,-204.87 682.75,-210.87 676.75,-216.87 670.75,-216.87"/>
|
|
105
|
+
<text xml:space="preserve" text-anchor="middle" x="642.88" y="-201.37" font-family="sans-Serif" font-size="10.00" fill="#0f172a">Plugins::PS</text>
|
|
106
|
+
<text xml:space="preserve" text-anchor="middle" x="642.88" y="-189.37" font-family="sans-Serif" font-size="10.00" fill="#0f172a">process health</text>
|
|
107
107
|
</g>
|
|
108
108
|
<!-- Sock->PS -->
|
|
109
109
|
<g id="edge6" class="edge">
|
|
110
110
|
<title>Sock->PS</title>
|
|
111
|
-
<path fill="none" stroke="#fb7185" stroke-width="1.3" d="
|
|
112
|
-
<polygon fill="#fb7185" stroke="#fb7185" stroke-width="1.3" points="
|
|
111
|
+
<path fill="none" stroke="#fb7185" stroke-width="1.3" d="M492.52,-198.87C521.35,-198.87 561.27,-198.87 592.58,-198.87"/>
|
|
112
|
+
<polygon fill="#fb7185" stroke="#fb7185" stroke-width="1.3" points="592.46,-201.67 600.46,-198.87 592.46,-196.07 592.46,-201.67"/>
|
|
113
113
|
</g>
|
|
114
114
|
<!-- Log -->
|
|
115
115
|
<g id="node8" class="node">
|
|
116
116
|
<title>Log</title>
|
|
117
|
-
<path fill="#fda4af" stroke="#334155" stroke-width="1.3" d="
|
|
118
|
-
<text xml:space="preserve" text-anchor="middle" x="
|
|
119
|
-
<text xml:space="preserve" text-anchor="middle" x="
|
|
117
|
+
<path fill="#fda4af" stroke="#334155" stroke-width="1.3" d="M665.88,-148.87C665.88,-148.87 619.88,-148.87 619.88,-148.87 613.88,-148.87 607.88,-142.87 607.88,-136.87 607.88,-136.87 607.88,-124.87 607.88,-124.87 607.88,-118.87 613.88,-112.87 619.88,-112.87 619.88,-112.87 665.88,-112.87 665.88,-112.87 671.88,-112.87 677.88,-118.87 677.88,-124.87 677.88,-124.87 677.88,-136.87 677.88,-136.87 677.88,-142.87 671.88,-148.87 665.88,-148.87"/>
|
|
118
|
+
<text xml:space="preserve" text-anchor="middle" x="642.88" y="-133.37" font-family="sans-Serif" font-size="10.00" fill="#0f172a">Plugins::Log</text>
|
|
119
|
+
<text xml:space="preserve" text-anchor="middle" x="642.88" y="-121.37" font-family="sans-Serif" font-size="10.00" fill="#0f172a">crash detect</text>
|
|
120
120
|
</g>
|
|
121
121
|
<!-- Packet->Log -->
|
|
122
122
|
<g id="edge7" class="edge">
|
|
123
123
|
<title>Packet->Log</title>
|
|
124
|
-
<path fill="none" stroke="#fb7185" stroke-width="1.3" d="
|
|
125
|
-
<polygon fill="#fb7185" stroke="#fb7185" stroke-width="1.3" points="
|
|
124
|
+
<path fill="none" stroke="#fb7185" stroke-width="1.3" d="M496.65,-130.87C526.68,-130.87 567.01,-130.87 597.55,-130.87"/>
|
|
125
|
+
<polygon fill="#fb7185" stroke="#fb7185" stroke-width="1.3" points="597.54,-133.67 605.54,-130.87 597.54,-128.07 597.54,-133.67"/>
|
|
126
126
|
</g>
|
|
127
127
|
<!-- NetApp->Log -->
|
|
128
128
|
<g id="edge8" class="edge">
|
|
129
129
|
<title>NetApp->Log</title>
|
|
130
|
-
<path fill="none" stroke="#fb7185" stroke-width="1.3" d="
|
|
131
|
-
<polygon fill="#fb7185" stroke="#fb7185" stroke-width="1.3" points="
|
|
130
|
+
<path fill="none" stroke="#fb7185" stroke-width="1.3" d="M505.79,-81.45C534.78,-91.98 570.67,-105.01 598.3,-115.05"/>
|
|
131
|
+
<polygon fill="#fb7185" stroke="#fb7185" stroke-width="1.3" points="597.01,-117.56 605.49,-117.66 598.93,-112.3 597.01,-117.56"/>
|
|
132
132
|
</g>
|
|
133
133
|
<!-- Report -->
|
|
134
134
|
<g id="node9" class="node">
|
|
135
135
|
<title>Report</title>
|
|
136
|
-
<path fill="#7dd3fc" stroke="#334155" stroke-width="1.3" d="
|
|
137
|
-
<text xml:space="preserve" text-anchor="middle" x="
|
|
138
|
-
<text xml:space="preserve" text-anchor="middle" x="
|
|
136
|
+
<path fill="#7dd3fc" stroke="#334155" stroke-width="1.3" d="M859.25,-185.87C859.25,-185.87 781.75,-185.87 781.75,-185.87 775.75,-185.87 769.75,-179.87 769.75,-173.87 769.75,-173.87 769.75,-161.87 769.75,-161.87 769.75,-155.87 775.75,-149.87 781.75,-149.87 781.75,-149.87 859.25,-149.87 859.25,-149.87 865.25,-149.87 871.25,-155.87 871.25,-161.87 871.25,-161.87 871.25,-173.87 871.25,-173.87 871.25,-179.87 865.25,-185.87 859.25,-185.87"/>
|
|
137
|
+
<text xml:space="preserve" text-anchor="middle" x="820.5" y="-170.37" font-family="sans-Serif" font-size="10.00" fill="#0f172a">Reports::Fuzz</text>
|
|
138
|
+
<text xml:space="preserve" text-anchor="middle" x="820.5" y="-158.37" font-family="sans-Serif" font-size="10.00" fill="#0f172a">render results_hash</text>
|
|
139
139
|
</g>
|
|
140
140
|
<!-- PS->Report -->
|
|
141
141
|
<g id="edge9" class="edge">
|
|
142
142
|
<title>PS->Report</title>
|
|
143
|
-
<path fill="none" stroke="#38bdf8" stroke-width="1.3" d="
|
|
144
|
-
<polygon fill="#38bdf8" stroke="#38bdf8" stroke-width="1.3" points="
|
|
143
|
+
<path fill="none" stroke="#38bdf8" stroke-width="1.3" d="M683.29,-191.92C705.7,-187.96 734.22,-182.93 759.37,-178.49"/>
|
|
144
|
+
<polygon fill="#38bdf8" stroke="#38bdf8" stroke-width="1.3" points="759.86,-181.24 767.25,-177.1 758.89,-175.73 759.86,-181.24"/>
|
|
145
145
|
</g>
|
|
146
146
|
<!-- Log->Fuzz -->
|
|
147
147
|
<g id="edge11" class="edge">
|
|
148
148
|
<title>Log->Fuzz</title>
|
|
149
|
-
<path fill="none" stroke="#fbbf24" stroke-width="1.3" stroke-dasharray="5,2" d="
|
|
150
|
-
<polygon fill="#fbbf24" stroke="#fbbf24" stroke-width="1.3" points="
|
|
151
|
-
<text xml:space="preserve" text-anchor="middle" x="
|
|
149
|
+
<path fill="none" stroke="#fbbf24" stroke-width="1.3" stroke-dasharray="5,2" d="M629.69,-112.47C610.77,-85.77 571.53,-37.41 524,-18.37 465.93,4.89 440.43,7.01 383.25,-18.37 340.25,-37.46 349.85,-68.61 312.25,-96.87 307.11,-100.73 301.47,-104.34 295.68,-107.64"/>
|
|
150
|
+
<polygon fill="#fbbf24" stroke="#fbbf24" stroke-width="1.3" points="294.58,-105.06 288.88,-111.33 297.25,-109.98 294.58,-105.06"/>
|
|
151
|
+
<text xml:space="preserve" text-anchor="middle" x="453.62" y="-20.32" font-family="sans-Serif" font-size="9.00" fill="#cbd5e1">operator triage + reseed</text>
|
|
152
152
|
</g>
|
|
153
153
|
<!-- Log->Report -->
|
|
154
154
|
<g id="edge10" class="edge">
|
|
155
155
|
<title>Log->Report</title>
|
|
156
|
-
<path fill="none" stroke="#38bdf8" stroke-width="1.3" d="
|
|
157
|
-
<polygon fill="#38bdf8" stroke="#38bdf8" stroke-width="1.3" points="
|
|
156
|
+
<path fill="none" stroke="#38bdf8" stroke-width="1.3" d="M678.15,-138.1C701.37,-142.99 732.66,-149.58 759.9,-155.32"/>
|
|
157
|
+
<polygon fill="#38bdf8" stroke="#38bdf8" stroke-width="1.3" points="759.01,-157.99 767.42,-156.9 760.17,-152.51 759.01,-157.99"/>
|
|
158
158
|
</g>
|
|
159
159
|
</g>
|
|
160
160
|
</svg>
|
|
@@ -4,17 +4,17 @@
|
|
|
4
4
|
<!-- Generated by graphviz version 14.1.2 (0)
|
|
5
5
|
-->
|
|
6
6
|
<!-- Title: PWN_HistToDriver Pages: 1 -->
|
|
7
|
-
<svg width="
|
|
8
|
-
viewBox="0.00 0.00
|
|
7
|
+
<svg width="1037pt" height="368pt"
|
|
8
|
+
viewBox="0.00 0.00 1037.00 368.00" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
|
|
9
9
|
<g id="graph0" class="graph" transform="scale(1 1) rotate(0) translate(43.2 325.2)">
|
|
10
10
|
<title>PWN_HistToDriver</title>
|
|
11
|
-
<polygon fill="#0f172a" stroke="none" points="-43.2,43.2 -43.2,-325.2
|
|
12
|
-
<text xml:space="preserve" text-anchor="start" x="
|
|
13
|
-
<text xml:space="preserve" text-anchor="start" x="
|
|
11
|
+
<polygon fill="#0f172a" stroke="none" points="-43.2,43.2 -43.2,-325.2 993.95,-325.2 993.95,43.2 -43.2,43.2"/>
|
|
12
|
+
<text xml:space="preserve" text-anchor="start" x="265.75" y="-260" font-family="sans-Serif" font-weight="bold" font-size="20.00" fill="#e2e8f0">From REPL History → Reusable Driver / Skill</text>
|
|
13
|
+
<text xml:space="preserve" text-anchor="start" x="353.88" y="-248.55" font-family="sans-Serif" font-size="11.00" fill="#94a3b8">explore → history → bin/pwn_* driver → distill_skill</text>
|
|
14
14
|
<g id="clust1" class="cluster">
|
|
15
15
|
<title>cluster_out</title>
|
|
16
|
-
<path fill="#2e1065" stroke="#6d28d9" d="
|
|
17
|
-
<text xml:space="preserve" text-anchor="middle" x="
|
|
16
|
+
<path fill="#2e1065" stroke="#6d28d9" d="M603.75,-8C603.75,-8 756.25,-8 756.25,-8 762.25,-8 768.25,-14 768.25,-20 768.25,-20 768.25,-223 768.25,-223 768.25,-229 762.25,-235 756.25,-235 756.25,-235 603.75,-235 603.75,-235 597.75,-235 591.75,-229 591.75,-223 591.75,-223 591.75,-20 591.75,-20 591.75,-14 597.75,-8 603.75,-8"/>
|
|
17
|
+
<text xml:space="preserve" text-anchor="middle" x="680" y="-212" font-family="sans-Serif" font-size="20.00" fill="#ddd6fe">Reusable Artifacts</text>
|
|
18
18
|
</g>
|
|
19
19
|
<!-- Explore -->
|
|
20
20
|
<g id="node1" class="node">
|
|
@@ -26,94 +26,94 @@
|
|
|
26
26
|
<!-- Hist -->
|
|
27
27
|
<g id="node2" class="node">
|
|
28
28
|
<title>Hist</title>
|
|
29
|
-
<path fill="#fcd34d" stroke="#334155" stroke-width="1.3" d="
|
|
30
|
-
<path fill="none" stroke="#334155" stroke-width="1.3" d="
|
|
31
|
-
<text xml:space="preserve" text-anchor="middle" x="
|
|
32
|
-
<text xml:space="preserve" text-anchor="middle" x="
|
|
29
|
+
<path fill="#fcd34d" stroke="#334155" stroke-width="1.3" d="M328.75,-124C328.75,-126.21 306,-128 278,-128 250,-128 227.25,-126.21 227.25,-124 227.25,-124 227.25,-88 227.25,-88 227.25,-85.79 250,-84 278,-84 306,-84 328.75,-85.79 328.75,-88 328.75,-88 328.75,-124 328.75,-124"/>
|
|
30
|
+
<path fill="none" stroke="#334155" stroke-width="1.3" d="M328.75,-124C328.75,-121.79 306,-120 278,-120 250,-120 227.25,-121.79 227.25,-124"/>
|
|
31
|
+
<text xml:space="preserve" text-anchor="middle" x="278" y="-108.5" font-family="sans-Serif" font-size="10.00" fill="#0f172a">~/.pwn/pwn_history</text>
|
|
32
|
+
<text xml:space="preserve" text-anchor="middle" x="278" y="-96.5" font-family="sans-Serif" font-size="10.00" fill="#0f172a">Pry `history` cmd</text>
|
|
33
33
|
</g>
|
|
34
34
|
<!-- Explore->Hist -->
|
|
35
35
|
<g id="edge1" class="edge">
|
|
36
36
|
<title>Explore->Hist</title>
|
|
37
|
-
<path fill="none" stroke="#38bdf8" stroke-width="1.3" d="
|
|
38
|
-
<polygon fill="#38bdf8" stroke="#38bdf8" stroke-width="1.3" points="216.
|
|
37
|
+
<path fill="none" stroke="#38bdf8" stroke-width="1.3" d="M107.98,-106C140.83,-106 183.03,-106 217.05,-106"/>
|
|
38
|
+
<polygon fill="#38bdf8" stroke="#38bdf8" stroke-width="1.3" points="216.9,-108.8 224.9,-106 216.9,-103.2 216.9,-108.8"/>
|
|
39
39
|
<text xml:space="preserve" text-anchor="middle" x="167.38" y="-107.95" font-family="sans-Serif" font-size="9.00" fill="#cbd5e1">auto-log</text>
|
|
40
40
|
</g>
|
|
41
41
|
<!-- Extract -->
|
|
42
42
|
<g id="node3" class="node">
|
|
43
43
|
<title>Extract</title>
|
|
44
|
-
<path fill="#6ee7b7" stroke="#334155" stroke-width="1.3" d="
|
|
45
|
-
<text xml:space="preserve" text-anchor="middle" x="
|
|
44
|
+
<path fill="#6ee7b7" stroke="#334155" stroke-width="1.3" d="M500.75,-124C500.75,-124 427.75,-124 427.75,-124 421.75,-124 415.75,-118 415.75,-112 415.75,-112 415.75,-100 415.75,-100 415.75,-94 421.75,-88 427.75,-88 427.75,-88 500.75,-88 500.75,-88 506.75,-88 512.75,-94 512.75,-100 512.75,-100 512.75,-112 512.75,-112 512.75,-118 506.75,-124 500.75,-124"/>
|
|
45
|
+
<text xml:space="preserve" text-anchor="middle" x="464.25" y="-102.5" font-family="sans-Serif" font-size="10.00" fill="#0f172a">copy working lines</text>
|
|
46
46
|
</g>
|
|
47
47
|
<!-- Hist->Extract -->
|
|
48
48
|
<g id="edge2" class="edge">
|
|
49
49
|
<title>Hist->Extract</title>
|
|
50
|
-
<path fill="none" stroke="#f59e0b" stroke-width="1.3" d="
|
|
51
|
-
<polygon fill="#f59e0b" stroke="#f59e0b" stroke-width="1.3" points="
|
|
50
|
+
<path fill="none" stroke="#f59e0b" stroke-width="1.3" d="M329.35,-106C352.85,-106 380.96,-106 405.34,-106"/>
|
|
51
|
+
<polygon fill="#f59e0b" stroke="#f59e0b" stroke-width="1.3" points="405.22,-108.8 413.22,-106 405.22,-103.2 405.22,-108.8"/>
|
|
52
52
|
</g>
|
|
53
53
|
<!-- Driver -->
|
|
54
54
|
<g id="node4" class="node">
|
|
55
55
|
<title>Driver</title>
|
|
56
|
-
<path fill="#c4b5fd" stroke="#334155" stroke-width="1.3" d="
|
|
57
|
-
<text xml:space="preserve" text-anchor="middle" x="
|
|
58
|
-
<text xml:space="preserve" text-anchor="middle" x="
|
|
56
|
+
<path fill="#c4b5fd" stroke="#334155" stroke-width="1.3" d="M733.62,-196C733.62,-196 625.38,-196 625.38,-196 619.38,-196 613.38,-190 613.38,-184 613.38,-184 613.38,-172 613.38,-172 613.38,-166 619.38,-160 625.38,-160 625.38,-160 733.62,-160 733.62,-160 739.62,-160 745.62,-166 745.62,-172 745.62,-172 745.62,-184 745.62,-184 745.62,-190 739.62,-196 733.62,-196"/>
|
|
57
|
+
<text xml:space="preserve" text-anchor="middle" x="679.5" y="-180.5" font-family="sans-Serif" font-size="10.00" fill="#0f172a">bin/pwn_<name></text>
|
|
58
|
+
<text xml:space="preserve" text-anchor="middle" x="679.5" y="-168.5" font-family="sans-Serif" font-size="10.00" fill="#0f172a">OptionParser + PWN calls</text>
|
|
59
59
|
</g>
|
|
60
60
|
<!-- Extract->Driver -->
|
|
61
61
|
<g id="edge3" class="edge">
|
|
62
62
|
<title>Extract->Driver</title>
|
|
63
|
-
<path fill="none" stroke="#a78bfa" stroke-width="1.3" d="
|
|
64
|
-
<polygon fill="#a78bfa" stroke="#a78bfa" stroke-width="1.3" points="
|
|
63
|
+
<path fill="none" stroke="#a78bfa" stroke-width="1.3" d="M513.37,-122.25C543.11,-132.29 581.65,-145.3 614.01,-156.23"/>
|
|
64
|
+
<polygon fill="#a78bfa" stroke="#a78bfa" stroke-width="1.3" points="613.06,-158.86 621.54,-158.77 614.85,-153.56 613.06,-158.86"/>
|
|
65
65
|
</g>
|
|
66
66
|
<!-- Skill -->
|
|
67
67
|
<g id="node5" class="node">
|
|
68
68
|
<title>Skill</title>
|
|
69
|
-
<path fill="#c4b5fd" stroke="#334155" stroke-width="1.3" d="
|
|
70
|
-
<text xml:space="preserve" text-anchor="middle" x="
|
|
71
|
-
<text xml:space="preserve" text-anchor="middle" x="
|
|
69
|
+
<path fill="#c4b5fd" stroke="#334155" stroke-width="1.3" d="M746,-124C746,-124 613,-124 613,-124 607,-124 601,-118 601,-112 601,-112 601,-100 601,-100 601,-94 607,-88 613,-88 613,-88 746,-88 746,-88 752,-88 758,-94 758,-100 758,-100 758,-112 758,-112 758,-118 752,-124 746,-124"/>
|
|
70
|
+
<text xml:space="preserve" text-anchor="middle" x="679.5" y="-108.5" font-family="sans-Serif" font-size="10.00" fill="#0f172a">~/.pwn/skills/<name>/SKILL.md</text>
|
|
71
|
+
<text xml:space="preserve" text-anchor="middle" x="679.5" y="-96.5" font-family="sans-Serif" font-size="10.00" fill="#0f172a">learning_distill_skill</text>
|
|
72
72
|
</g>
|
|
73
73
|
<!-- Extract->Skill -->
|
|
74
74
|
<g id="edge4" class="edge">
|
|
75
75
|
<title>Extract->Skill</title>
|
|
76
|
-
<path fill="none" stroke="#a78bfa" stroke-width="1.3" d="
|
|
77
|
-
<polygon fill="#a78bfa" stroke="#a78bfa" stroke-width="1.3" points="
|
|
76
|
+
<path fill="none" stroke="#a78bfa" stroke-width="1.3" d="M513.37,-106C536.24,-106 564.3,-106 590.77,-106"/>
|
|
77
|
+
<polygon fill="#a78bfa" stroke="#a78bfa" stroke-width="1.3" points="590.46,-108.8 598.46,-106 590.46,-103.2 590.46,-108.8"/>
|
|
78
78
|
</g>
|
|
79
79
|
<!-- Cron -->
|
|
80
80
|
<g id="node6" class="node">
|
|
81
81
|
<title>Cron</title>
|
|
82
|
-
<path fill="#c4b5fd" stroke="#334155" stroke-width="1.3" d="
|
|
83
|
-
<text xml:space="preserve" text-anchor="middle" x="
|
|
84
|
-
<text xml:space="preserve" text-anchor="middle" x="
|
|
82
|
+
<path fill="#c4b5fd" stroke="#334155" stroke-width="1.3" d="M707,-52C707,-52 652,-52 652,-52 646,-52 640,-46 640,-40 640,-40 640,-28 640,-28 640,-22 646,-16 652,-16 652,-16 707,-16 707,-16 713,-16 719,-22 719,-28 719,-28 719,-40 719,-40 719,-46 713,-52 707,-52"/>
|
|
83
|
+
<text xml:space="preserve" text-anchor="middle" x="679.5" y="-36.5" font-family="sans-Serif" font-size="10.00" fill="#0f172a">cron_create</text>
|
|
84
|
+
<text xml:space="preserve" text-anchor="middle" x="679.5" y="-24.5" font-family="sans-Serif" font-size="10.00" fill="#0f172a">prompt: | ruby:</text>
|
|
85
85
|
</g>
|
|
86
86
|
<!-- Extract->Cron -->
|
|
87
87
|
<g id="edge5" class="edge">
|
|
88
88
|
<title>Extract->Cron</title>
|
|
89
|
-
<path fill="none" stroke="#a78bfa" stroke-width="1.3" d="
|
|
90
|
-
<polygon fill="#a78bfa" stroke="#a78bfa" stroke-width="1.3" points="
|
|
89
|
+
<path fill="none" stroke="#a78bfa" stroke-width="1.3" d="M513.37,-89.75C548.33,-77.95 595.44,-62.04 630.39,-50.24"/>
|
|
90
|
+
<polygon fill="#a78bfa" stroke="#a78bfa" stroke-width="1.3" points="630.91,-53.02 637.59,-47.81 629.12,-47.72 630.91,-53.02"/>
|
|
91
91
|
</g>
|
|
92
92
|
<!-- CI -->
|
|
93
93
|
<g id="node7" class="node">
|
|
94
94
|
<title>CI</title>
|
|
95
|
-
<path fill="#7dd3fc" stroke="#334155" stroke-width="1.3" d="
|
|
96
|
-
<text xml:space="preserve" text-anchor="middle" x="
|
|
97
|
-
<text xml:space="preserve" text-anchor="middle" x="
|
|
95
|
+
<path fill="#7dd3fc" stroke="#334155" stroke-width="1.3" d="M938.75,-124C938.75,-124 891.25,-124 891.25,-124 885.25,-124 879.25,-118 879.25,-112 879.25,-112 879.25,-100 879.25,-100 879.25,-94 885.25,-88 891.25,-88 891.25,-88 938.75,-88 938.75,-88 944.75,-88 950.75,-94 950.75,-100 950.75,-100 950.75,-112 950.75,-112 950.75,-118 944.75,-124 938.75,-124"/>
|
|
96
|
+
<text xml:space="preserve" text-anchor="middle" x="915" y="-108.88" font-family="sans-Serif" font-size="10.00" fill="#0f172a">⚙️  CI / CD</text>
|
|
97
|
+
<text xml:space="preserve" text-anchor="middle" x="915" y="-96.12" font-family="sans-Serif" font-size="10.00" fill="#0f172a">headless run</text>
|
|
98
98
|
</g>
|
|
99
99
|
<!-- Driver->CI -->
|
|
100
100
|
<g id="edge6" class="edge">
|
|
101
101
|
<title>Driver->CI</title>
|
|
102
|
-
<path fill="none" stroke="#38bdf8" stroke-width="2" d="
|
|
103
|
-
<polygon fill="#38bdf8" stroke="#38bdf8" stroke-width="2" points="
|
|
102
|
+
<path fill="none" stroke="#38bdf8" stroke-width="2" d="M740.94,-159.36C780.78,-147.08 832.14,-131.24 868.53,-120.02"/>
|
|
103
|
+
<polygon fill="#38bdf8" stroke="#38bdf8" stroke-width="2" points="869.13,-122.77 875.95,-117.73 867.48,-117.41 869.13,-122.77"/>
|
|
104
104
|
</g>
|
|
105
105
|
<!-- Skill->CI -->
|
|
106
106
|
<g id="edge7" class="edge">
|
|
107
107
|
<title>Skill->CI</title>
|
|
108
|
-
<path fill="none" stroke="#38bdf8" stroke-width="1.3" d="
|
|
109
|
-
<polygon fill="#38bdf8" stroke="#38bdf8" stroke-width="1.3" points="
|
|
110
|
-
<text xml:space="preserve" text-anchor="middle" x="
|
|
108
|
+
<path fill="none" stroke="#38bdf8" stroke-width="1.3" d="M758.58,-106C795.3,-106 837.79,-106 869.05,-106"/>
|
|
109
|
+
<polygon fill="#38bdf8" stroke="#38bdf8" stroke-width="1.3" points="868.81,-108.8 876.81,-106 868.81,-103.2 868.81,-108.8"/>
|
|
110
|
+
<text xml:space="preserve" text-anchor="middle" x="819.75" y="-107.95" font-family="sans-Serif" font-size="9.00" fill="#cbd5e1">pwn --ai</text>
|
|
111
111
|
</g>
|
|
112
112
|
<!-- Cron->CI -->
|
|
113
113
|
<g id="edge8" class="edge">
|
|
114
114
|
<title>Cron->CI</title>
|
|
115
|
-
<path fill="none" stroke="#38bdf8" stroke-width="1.3" d="
|
|
116
|
-
<polygon fill="#38bdf8" stroke="#38bdf8" stroke-width="1.3" points="
|
|
115
|
+
<path fill="none" stroke="#38bdf8" stroke-width="1.3" d="M719.58,-46.05C760.86,-58.78 825.85,-78.82 869.18,-92.18"/>
|
|
116
|
+
<polygon fill="#38bdf8" stroke="#38bdf8" stroke-width="1.3" points="868.27,-94.83 876.74,-94.51 869.92,-89.48 868.27,-94.83"/>
|
|
117
117
|
</g>
|
|
118
118
|
</g>
|
|
119
119
|
</svg>
|