pwn 0.5.613 → 0.5.615
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 +10 -10
- data/README.md +110 -24
- data/documentation/AI-Integration.md +36 -0
- data/documentation/BurpSuite.md +26 -0
- data/documentation/Contributing.md +31 -0
- data/documentation/Diagrams.md +57 -0
- data/documentation/Drivers.md +25 -0
- data/documentation/General-PWN-Usage.md +40 -0
- data/documentation/Home.md +51 -0
- data/documentation/How-PWN-Works.md +60 -0
- data/documentation/Installation.md +50 -0
- data/documentation/NmapIt.md +18 -0
- data/documentation/Plugins.md +59 -0
- data/documentation/Reporting.md +28 -0
- data/documentation/SAST.md +32 -0
- data/documentation/Skills-Memory-Learning.md +44 -0
- data/documentation/Transparent-Browser.md +32 -0
- data/documentation/Troubleshooting.md +38 -0
- data/documentation/What-is-PWN.md +34 -0
- data/documentation/Why-PWN.md +18 -0
- data/documentation/diagrams/ai-integration-tool-calling.svg +134 -0
- data/documentation/diagrams/burp-vs-zap-preference.svg +84 -0
- data/documentation/diagrams/code-scanning-sast.svg +112 -0
- data/documentation/diagrams/dot/ai-integration-tool-calling.dot +23 -0
- data/documentation/diagrams/dot/burp-vs-zap-preference.dot +15 -0
- data/documentation/diagrams/dot/code-scanning-sast.dot +21 -0
- data/documentation/diagrams/dot/driver-framework.dot +17 -0
- data/documentation/diagrams/dot/fuzzing-workflow.dot +27 -0
- data/documentation/diagrams/dot/history-to-drivers.dot +20 -0
- data/documentation/diagrams/dot/memory-skills-detailed.dot +28 -0
- data/documentation/diagrams/dot/network-infra-testing.dot +22 -0
- data/documentation/diagrams/dot/overall-pwn-architecture.dot +49 -0
- data/documentation/diagrams/dot/penetration-testing-workflow.dot +29 -0
- data/documentation/diagrams/dot/plugin-ecosystem.dot +31 -0
- data/documentation/diagrams/dot/pwn-ai-feedback-learning-loop.dot +57 -0
- data/documentation/diagrams/dot/pwn-repl-prototyping.dot +37 -0
- data/documentation/diagrams/dot/reporting-pipeline.dot +17 -0
- data/documentation/diagrams/dot/reverse-engineering-flow.dot +21 -0
- data/documentation/diagrams/dot/sessions-cron-automation.dot +17 -0
- data/documentation/diagrams/dot/web-application-testing.dot +27 -0
- data/documentation/diagrams/dot/zero-day-research-flow.dot +27 -0
- data/documentation/diagrams/driver-framework.svg +90 -0
- data/documentation/diagrams/fuzzing-workflow.svg +147 -0
- data/documentation/diagrams/history-to-drivers.svg +117 -0
- data/documentation/diagrams/memory-skills-detailed.svg +154 -0
- data/documentation/diagrams/network-infra-testing.svg +121 -0
- data/documentation/diagrams/overall-pwn-architecture.svg +234 -0
- data/documentation/diagrams/penetration-testing-workflow.svg +148 -0
- data/documentation/diagrams/plugin-ecosystem.svg +172 -0
- data/documentation/diagrams/pwn-ai-feedback-learning-loop.svg +234 -0
- data/documentation/diagrams/pwn-repl-prototyping.svg +179 -0
- data/documentation/diagrams/reporting-pipeline.svg +91 -0
- data/documentation/diagrams/reverse-engineering-flow.svg +114 -0
- data/documentation/diagrams/sessions-cron-automation.svg +92 -0
- data/documentation/diagrams/web-application-testing.svg +137 -0
- data/documentation/diagrams/zero-day-research-flow.svg +149 -0
- data/documentation/pwn-REPL.md +33 -0
- data/documentation/pwn-ai-Agent.md +43 -0
- data/lib/pwn/ai/agent/learning.rb +377 -0
- data/lib/pwn/ai/agent/loop.rb +18 -3
- data/lib/pwn/ai/agent/metrics.rb +155 -0
- data/lib/pwn/ai/agent/prompt_builder.rb +23 -3
- data/lib/pwn/ai/agent/tools/learning.rb +113 -0
- data/lib/pwn/ai/agent/tools/skills.rb +94 -8
- data/lib/pwn/ai/agent.rb +2 -0
- data/lib/pwn/ai/grok.rb +249 -106
- data/lib/pwn/config.rb +86 -13
- data/lib/pwn/plugins/monkey_patch.rb +2 -2
- data/lib/pwn/plugins/repl.rb +68 -3
- data/lib/pwn/version.rb +1 -1
- data/spec/lib/pwn/ai/agent/learning_spec.rb +68 -0
- data/spec/lib/pwn/ai/agent/metrics_spec.rb +27 -0
- data/spec/lib/pwn/ai/agent/tools/learning_spec.rb +30 -0
- metadata +84 -34
- data/documentation/PWN.png +0 -0
- data/documentation/PWN_Contributors_and_Users.png +0 -0
- data/documentation/fax-spectrogram.png +0 -0
- data/documentation/fax-waveform.png +0 -0
- data/documentation/frozen_string_literal_files_changed_from_false_to_true.txt +0 -54
- data/documentation/lifecycle_authz_replay.example.yaml +0 -27
- data/documentation/pwn_android_war_dialer_session.png +0 -0
- data/documentation/pwn_install.png +0 -0
- data/documentation/pwn_wallpaper.jpg +0 -0
- data/documentation/ringing-spectrogram.png +0 -0
- data/documentation/ringing-waveform.png +0 -0
- data/documentation/vulnerability_report_template.md +0 -37
|
@@ -0,0 +1,172 @@
|
|
|
1
|
+
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
|
2
|
+
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN"
|
|
3
|
+
"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
|
|
4
|
+
<!-- Generated by graphviz version 14.1.2 (0)
|
|
5
|
+
-->
|
|
6
|
+
<!-- Title: PWN Plugin Ecosystem Pages: 1 -->
|
|
7
|
+
<svg width="888pt" height="220pt"
|
|
8
|
+
viewBox="0.00 0.00 888.00 220.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(4 215.75)">
|
|
10
|
+
<title>PWN Plugin Ecosystem</title>
|
|
11
|
+
<polygon fill="white" stroke="none" points="-4,4 -4,-215.75 883.88,-215.75 883.88,4 -4,4"/>
|
|
12
|
+
<!-- Hub -->
|
|
13
|
+
<g id="node1" class="node">
|
|
14
|
+
<title>Hub</title>
|
|
15
|
+
<ellipse fill="none" stroke="black" cx="423.62" cy="-193.75" rx="37.21" ry="18"/>
|
|
16
|
+
<text xml:space="preserve" text-anchor="middle" x="423.62" y="-191.03" font-family="Arial" font-size="8.00">PWN::Plugins</text>
|
|
17
|
+
</g>
|
|
18
|
+
<!-- Recon -->
|
|
19
|
+
<g id="node2" class="node">
|
|
20
|
+
<title>Recon</title>
|
|
21
|
+
<path fill="none" stroke="black" d="M93.25,-130C93.25,-130 12,-130 12,-130 6,-130 0,-124 0,-118 0,-118 0,-104.75 0,-104.75 0,-98.75 6,-92.75 12,-92.75 12,-92.75 93.25,-92.75 93.25,-92.75 99.25,-92.75 105.25,-98.75 105.25,-104.75 105.25,-104.75 105.25,-118 105.25,-118 105.25,-124 99.25,-130 93.25,-130"/>
|
|
22
|
+
<text xml:space="preserve" text-anchor="middle" x="52.62" y="-118.4" font-family="Arial" font-size="8.00">Recon & Discovery</text>
|
|
23
|
+
<text xml:space="preserve" text-anchor="middle" x="52.62" y="-108.65" font-family="Arial" font-size="8.00">(NmapIt, Shodan, IPInfo,</text>
|
|
24
|
+
<text xml:space="preserve" text-anchor="middle" x="52.62" y="-98.9" font-family="Arial" font-size="8.00">Hunter, crt.sh, Git)</text>
|
|
25
|
+
</g>
|
|
26
|
+
<!-- Hub->Recon -->
|
|
27
|
+
<g id="edge1" class="edge">
|
|
28
|
+
<title>Hub->Recon</title>
|
|
29
|
+
<path fill="none" stroke="black" d="M387.14,-189.52C328.47,-183.67 209.99,-169.09 113.62,-139.75 108.87,-138.3 104.01,-136.58 99.2,-134.7"/>
|
|
30
|
+
<polygon fill="black" stroke="black" points="100.8,-131.58 90.22,-130.99 98.13,-138.05 100.8,-131.58"/>
|
|
31
|
+
</g>
|
|
32
|
+
<!-- Web -->
|
|
33
|
+
<g id="node3" class="node">
|
|
34
|
+
<title>Web</title>
|
|
35
|
+
<path fill="none" stroke="black" d="M204.25,-134.88C204.25,-134.88 135,-134.88 135,-134.88 129,-134.88 123,-128.88 123,-122.88 123,-122.88 123,-99.88 123,-99.88 123,-93.88 129,-87.88 135,-87.88 135,-87.88 204.25,-87.88 204.25,-87.88 210.25,-87.88 216.25,-93.88 216.25,-99.88 216.25,-99.88 216.25,-122.88 216.25,-122.88 216.25,-128.88 210.25,-134.88 204.25,-134.88"/>
|
|
36
|
+
<text xml:space="preserve" text-anchor="middle" x="169.62" y="-123.28" font-family="Arial" font-size="8.00">Web & Proxy</text>
|
|
37
|
+
<text xml:space="preserve" text-anchor="middle" x="169.62" y="-113.53" font-family="Arial" font-size="8.00">(TransparentBrowser,</text>
|
|
38
|
+
<text xml:space="preserve" text-anchor="middle" x="169.62" y="-103.78" font-family="Arial" font-size="8.00">BurpSuite, Zaproxy,</text>
|
|
39
|
+
<text xml:space="preserve" text-anchor="middle" x="169.62" y="-94.03" font-family="Arial" font-size="8.00">Spider, URI Buster)</text>
|
|
40
|
+
</g>
|
|
41
|
+
<!-- Hub->Web -->
|
|
42
|
+
<g id="edge2" class="edge">
|
|
43
|
+
<title>Hub->Web</title>
|
|
44
|
+
<path fill="none" stroke="black" d="M390.36,-185.26C351.51,-176.15 285.56,-159.49 230.62,-139.75 229.48,-139.34 228.32,-138.91 227.16,-138.48"/>
|
|
45
|
+
<polygon fill="black" stroke="black" points="228.61,-135.29 218.03,-134.88 226.05,-141.8 228.61,-135.29"/>
|
|
46
|
+
</g>
|
|
47
|
+
<!-- Vuln -->
|
|
48
|
+
<g id="node4" class="node">
|
|
49
|
+
<title>Vuln</title>
|
|
50
|
+
<path fill="none" stroke="black" d="M280,-47C280,-47 209.25,-47 209.25,-47 203.25,-47 197.25,-41 197.25,-35 197.25,-35 197.25,-12 197.25,-12 197.25,-6 203.25,0 209.25,0 209.25,0 280,0 280,0 286,0 292,-6 292,-12 292,-12 292,-35 292,-35 292,-41 286,-47 280,-47"/>
|
|
51
|
+
<text xml:space="preserve" text-anchor="middle" x="244.62" y="-35.4" font-family="Arial" font-size="8.00">Vulnerability</text>
|
|
52
|
+
<text xml:space="preserve" text-anchor="middle" x="244.62" y="-25.65" font-family="Arial" font-size="8.00">(Fuzz, Metasploit,</text>
|
|
53
|
+
<text xml:space="preserve" text-anchor="middle" x="244.62" y="-15.9" font-family="Arial" font-size="8.00">Nessus, OpenVAS,</text>
|
|
54
|
+
<text xml:space="preserve" text-anchor="middle" x="244.62" y="-6.15" font-family="Arial" font-size="8.00">Nexpose, DefectDojo)</text>
|
|
55
|
+
</g>
|
|
56
|
+
<!-- Hub->Vuln -->
|
|
57
|
+
<g id="edge3" class="edge">
|
|
58
|
+
<title>Hub->Vuln</title>
|
|
59
|
+
<path fill="none" stroke="black" d="M386.52,-191.07C349.63,-187.29 294.23,-175.57 263.62,-139.75 244.63,-117.52 241,-83.78 241.46,-58.54"/>
|
|
60
|
+
<polygon fill="black" stroke="black" points="244.95,-58.92 241.88,-48.78 237.95,-58.62 244.95,-58.92"/>
|
|
61
|
+
</g>
|
|
62
|
+
<!-- Auth -->
|
|
63
|
+
<g id="node5" class="node">
|
|
64
|
+
<title>Auth</title>
|
|
65
|
+
<path fill="none" stroke="black" d="M348.62,-130C348.62,-130 284.62,-130 284.62,-130 278.62,-130 272.62,-124 272.62,-118 272.62,-118 272.62,-104.75 272.62,-104.75 272.62,-98.75 278.62,-92.75 284.62,-92.75 284.62,-92.75 348.62,-92.75 348.62,-92.75 354.62,-92.75 360.62,-98.75 360.62,-104.75 360.62,-104.75 360.62,-118 360.62,-118 360.62,-124 354.62,-130 348.62,-130"/>
|
|
66
|
+
<text xml:space="preserve" text-anchor="middle" x="316.62" y="-118.4" font-family="Arial" font-size="8.00">Auth & Access</text>
|
|
67
|
+
<text xml:space="preserve" text-anchor="middle" x="316.62" y="-108.65" font-family="Arial" font-size="8.00">(OAuth2, BasicAuth,</text>
|
|
68
|
+
<text xml:space="preserve" text-anchor="middle" x="316.62" y="-98.9" font-family="Arial" font-size="8.00">DAOs, Vault)</text>
|
|
69
|
+
</g>
|
|
70
|
+
<!-- Hub->Auth -->
|
|
71
|
+
<g id="edge4" class="edge">
|
|
72
|
+
<title>Hub->Auth</title>
|
|
73
|
+
<path fill="none" stroke="black" d="M404,-178.01C388.79,-166.58 367.38,-150.5 349.56,-137.12"/>
|
|
74
|
+
<polygon fill="black" stroke="black" points="351.93,-134.52 341.83,-131.31 347.72,-140.11 351.93,-134.52"/>
|
|
75
|
+
</g>
|
|
76
|
+
<!-- Infra -->
|
|
77
|
+
<g id="node6" class="node">
|
|
78
|
+
<title>Infra</title>
|
|
79
|
+
<path fill="none" stroke="black" d="M456.38,-130C456.38,-130 390.88,-130 390.88,-130 384.88,-130 378.88,-124 378.88,-118 378.88,-118 378.88,-104.75 378.88,-104.75 378.88,-98.75 384.88,-92.75 390.88,-92.75 390.88,-92.75 456.38,-92.75 456.38,-92.75 462.38,-92.75 468.38,-98.75 468.38,-104.75 468.38,-104.75 468.38,-118 468.38,-118 468.38,-124 462.38,-130 456.38,-130"/>
|
|
80
|
+
<text xml:space="preserve" text-anchor="middle" x="423.62" y="-118.4" font-family="Arial" font-size="8.00">Infrastructure</text>
|
|
81
|
+
<text xml:space="preserve" text-anchor="middle" x="423.62" y="-108.65" font-family="Arial" font-size="8.00">(Jenkins, AWS, Jira,</text>
|
|
82
|
+
<text xml:space="preserve" text-anchor="middle" x="423.62" y="-98.9" font-family="Arial" font-size="8.00">RabbitMQ, Vsphere)</text>
|
|
83
|
+
</g>
|
|
84
|
+
<!-- Hub->Infra -->
|
|
85
|
+
<g id="edge5" class="edge">
|
|
86
|
+
<title>Hub->Infra</title>
|
|
87
|
+
<path fill="none" stroke="black" d="M423.62,-175.31C423.62,-165.44 423.62,-152.84 423.62,-141.52"/>
|
|
88
|
+
<polygon fill="black" stroke="black" points="427.13,-141.85 423.63,-131.85 420.13,-141.85 427.13,-141.85"/>
|
|
89
|
+
</g>
|
|
90
|
+
<!-- LowLevel -->
|
|
91
|
+
<g id="node7" class="node">
|
|
92
|
+
<title>LowLevel</title>
|
|
93
|
+
<path fill="none" stroke="black" d="M559.12,-139.75C559.12,-139.75 498.12,-139.75 498.12,-139.75 492.12,-139.75 486.12,-133.75 486.12,-127.75 486.12,-127.75 486.12,-95 486.12,-95 486.12,-89 492.12,-83 498.12,-83 498.12,-83 559.12,-83 559.12,-83 565.12,-83 571.12,-89 571.12,-95 571.12,-95 571.12,-127.75 571.12,-127.75 571.12,-133.75 565.12,-139.75 559.12,-139.75"/>
|
|
94
|
+
<text xml:space="preserve" text-anchor="middle" x="528.62" y="-128.15" font-family="Arial" font-size="8.00">Low Level &</text>
|
|
95
|
+
<text xml:space="preserve" text-anchor="middle" x="528.62" y="-118.4" font-family="Arial" font-size="8.00">Hardware</text>
|
|
96
|
+
<text xml:space="preserve" text-anchor="middle" x="528.62" y="-108.65" font-family="Arial" font-size="8.00">(Serial, BusPirate,</text>
|
|
97
|
+
<text xml:space="preserve" text-anchor="middle" x="528.62" y="-98.9" font-family="Arial" font-size="8.00">Packet, Sock, Tor,</text>
|
|
98
|
+
<text xml:space="preserve" text-anchor="middle" x="528.62" y="-89.15" font-family="Arial" font-size="8.00">Android, Assembly)</text>
|
|
99
|
+
</g>
|
|
100
|
+
<!-- Hub->LowLevel -->
|
|
101
|
+
<g id="edge6" class="edge">
|
|
102
|
+
<title>Hub->LowLevel</title>
|
|
103
|
+
<path fill="none" stroke="black" d="M442.88,-178.01C454.36,-169.23 469.43,-157.69 483.73,-146.74"/>
|
|
104
|
+
<polygon fill="black" stroke="black" points="485.48,-149.81 491.29,-140.95 481.22,-144.25 485.48,-149.81"/>
|
|
105
|
+
</g>
|
|
106
|
+
<!-- Util -->
|
|
107
|
+
<g id="node8" class="node">
|
|
108
|
+
<title>Util</title>
|
|
109
|
+
<path fill="none" stroke="black" d="M668.12,-130C668.12,-130 601.12,-130 601.12,-130 595.12,-130 589.12,-124 589.12,-118 589.12,-118 589.12,-104.75 589.12,-104.75 589.12,-98.75 595.12,-92.75 601.12,-92.75 601.12,-92.75 668.12,-92.75 668.12,-92.75 674.12,-92.75 680.12,-98.75 680.12,-104.75 680.12,-104.75 680.12,-118 680.12,-118 680.12,-124 674.12,-130 668.12,-130"/>
|
|
110
|
+
<text xml:space="preserve" text-anchor="middle" x="634.62" y="-118.4" font-family="Arial" font-size="8.00">Utilities</text>
|
|
111
|
+
<text xml:space="preserve" text-anchor="middle" x="634.62" y="-108.65" font-family="Arial" font-size="8.00">(FileFu, Char, XXD,</text>
|
|
112
|
+
<text xml:space="preserve" text-anchor="middle" x="634.62" y="-98.9" font-family="Arial" font-size="8.00">PS, Reports helpers)</text>
|
|
113
|
+
</g>
|
|
114
|
+
<!-- Hub->Util -->
|
|
115
|
+
<g id="edge7" class="edge">
|
|
116
|
+
<title>Hub->Util</title>
|
|
117
|
+
<path fill="none" stroke="black" d="M455.1,-183.59C487.15,-173.91 538.05,-157.62 580.62,-139.75 583.97,-138.35 587.39,-136.82 590.81,-135.24"/>
|
|
118
|
+
<polygon fill="black" stroke="black" points="592.12,-138.5 599.62,-131.02 589.09,-132.19 592.12,-138.5"/>
|
|
119
|
+
</g>
|
|
120
|
+
<!-- SDR -->
|
|
121
|
+
<g id="node9" class="node">
|
|
122
|
+
<title>SDR</title>
|
|
123
|
+
<path fill="none" stroke="black" d="M745.38,-129.38C745.38,-129.38 709.88,-129.38 709.88,-129.38 703.88,-129.38 697.88,-123.38 697.88,-117.38 697.88,-117.38 697.88,-105.38 697.88,-105.38 697.88,-99.38 703.88,-93.38 709.88,-93.38 709.88,-93.38 745.38,-93.38 745.38,-93.38 751.38,-93.38 757.38,-99.38 757.38,-105.38 757.38,-105.38 757.38,-117.38 757.38,-117.38 757.38,-123.38 751.38,-129.38 745.38,-129.38"/>
|
|
124
|
+
<text xml:space="preserve" text-anchor="middle" x="727.62" y="-113.53" font-family="Arial" font-size="8.00">SDR & RF</text>
|
|
125
|
+
<text xml:space="preserve" text-anchor="middle" x="727.62" y="-103.78" font-family="Arial" font-size="8.00">(SDR, gqrx)</text>
|
|
126
|
+
</g>
|
|
127
|
+
<!-- Hub->SDR -->
|
|
128
|
+
<g id="edge8" class="edge">
|
|
129
|
+
<title>Hub->SDR</title>
|
|
130
|
+
<path fill="none" stroke="black" d="M460.37,-190.38C513.08,-185.9 612.34,-173.38 689.62,-139.75 692.23,-138.61 694.84,-137.28 697.4,-135.82"/>
|
|
131
|
+
<polygon fill="black" stroke="black" points="699.1,-138.88 705.62,-130.54 695.32,-132.99 699.1,-138.88"/>
|
|
132
|
+
</g>
|
|
133
|
+
<!-- Other -->
|
|
134
|
+
<g id="node10" class="node">
|
|
135
|
+
<title>Other</title>
|
|
136
|
+
<path fill="none" stroke="black" d="M867.88,-130C867.88,-130 787.38,-130 787.38,-130 781.38,-130 775.38,-124 775.38,-118 775.38,-118 775.38,-104.75 775.38,-104.75 775.38,-98.75 781.38,-92.75 787.38,-92.75 787.38,-92.75 867.88,-92.75 867.88,-92.75 873.88,-92.75 879.88,-98.75 879.88,-104.75 879.88,-104.75 879.88,-118 879.88,-118 879.88,-124 873.88,-130 867.88,-130"/>
|
|
137
|
+
<text xml:space="preserve" text-anchor="middle" x="827.62" y="-118.4" font-family="Arial" font-size="8.00">Misc</text>
|
|
138
|
+
<text xml:space="preserve" text-anchor="middle" x="827.62" y="-108.65" font-family="Arial" font-size="8.00">(BeEF, OCR, PDFParse,</text>
|
|
139
|
+
<text xml:space="preserve" text-anchor="middle" x="827.62" y="-98.9" font-family="Arial" font-size="8.00">ScannableCodes, etc.)</text>
|
|
140
|
+
</g>
|
|
141
|
+
<!-- Hub->Other -->
|
|
142
|
+
<g id="edge9" class="edge">
|
|
143
|
+
<title>Hub->Other</title>
|
|
144
|
+
<path fill="none" stroke="black" d="M460.63,-190.3C524.29,-185.37 658.14,-171.84 766.62,-139.75 771.45,-138.32 776.39,-136.59 781.27,-134.71"/>
|
|
145
|
+
<polygon fill="black" stroke="black" points="782.47,-138 790.38,-130.95 779.81,-131.52 782.47,-138"/>
|
|
146
|
+
</g>
|
|
147
|
+
<!-- Recon->Vuln -->
|
|
148
|
+
<g id="edge10" class="edge">
|
|
149
|
+
<title>Recon->Vuln</title>
|
|
150
|
+
<path fill="none" stroke="black" d="M92.98,-92.25C99.87,-89.16 106.95,-85.99 113.62,-83 137.47,-72.33 163.77,-60.58 186.5,-50.43"/>
|
|
151
|
+
<polygon fill="black" stroke="black" points="187.93,-53.63 195.63,-46.35 185.07,-47.23 187.93,-53.63"/>
|
|
152
|
+
</g>
|
|
153
|
+
<!-- Web->Vuln -->
|
|
154
|
+
<g id="edge11" class="edge">
|
|
155
|
+
<title>Web->Vuln</title>
|
|
156
|
+
<path fill="none" stroke="black" d="M189.33,-87.81C197.87,-78.03 208.02,-66.41 217.28,-55.81"/>
|
|
157
|
+
<polygon fill="black" stroke="black" points="219.85,-58.18 223.8,-48.35 214.58,-53.58 219.85,-58.18"/>
|
|
158
|
+
</g>
|
|
159
|
+
<!-- Auth->Vuln -->
|
|
160
|
+
<g id="edge12" class="edge">
|
|
161
|
+
<title>Auth->Vuln</title>
|
|
162
|
+
<path fill="none" stroke="black" d="M301.71,-92.58C292.89,-82.07 281.47,-68.44 271.16,-56.15"/>
|
|
163
|
+
<polygon fill="black" stroke="black" points="273.99,-54.07 264.88,-48.66 268.62,-58.57 273.99,-54.07"/>
|
|
164
|
+
</g>
|
|
165
|
+
<!-- Infra->Vuln -->
|
|
166
|
+
<g id="edge13" class="edge">
|
|
167
|
+
<title>Infra->Vuln</title>
|
|
168
|
+
<path fill="none" stroke="black" d="M388.27,-92.25C382.07,-89.13 375.67,-85.95 369.62,-83 347.88,-72.4 323.85,-61.07 302.72,-51.22"/>
|
|
169
|
+
<polygon fill="black" stroke="black" points="304.19,-48.05 293.65,-47.01 301.24,-54.4 304.19,-48.05"/>
|
|
170
|
+
</g>
|
|
171
|
+
</g>
|
|
172
|
+
</svg>
|
|
@@ -0,0 +1,234 @@
|
|
|
1
|
+
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
|
2
|
+
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN"
|
|
3
|
+
"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
|
|
4
|
+
<!-- Generated by graphviz version 14.1.2 (0)
|
|
5
|
+
-->
|
|
6
|
+
<!-- Title: PWN-AI Feedback Learning Loop Pages: 1 -->
|
|
7
|
+
<svg width="1079pt" height="412pt"
|
|
8
|
+
viewBox="0.00 0.00 1079.00 412.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(4 408.11)">
|
|
10
|
+
<title>PWN-AI Feedback Learning Loop</title>
|
|
11
|
+
<polygon fill="white" stroke="none" points="-4,4 -4,-408.11 1075.45,-408.11 1075.45,4 -4,4"/>
|
|
12
|
+
<g id="clust1" class="cluster">
|
|
13
|
+
<title>cluster_agent</title>
|
|
14
|
+
<path fill="none" stroke="blue" d="M237.62,-93C237.62,-93 561.62,-93 561.62,-93 567.62,-93 573.62,-99 573.62,-105 573.62,-105 573.62,-310.48 573.62,-310.48 573.62,-316.48 567.62,-322.48 561.62,-322.48 561.62,-322.48 237.62,-322.48 237.62,-322.48 231.62,-322.48 225.62,-316.48 225.62,-310.48 225.62,-310.48 225.62,-105 225.62,-105 225.62,-99 231.62,-93 237.62,-93"/>
|
|
15
|
+
<text xml:space="preserve" text-anchor="middle" x="399.62" y="-305.18" font-family="Times,serif" font-size="14.00">PWN::AI::Agent</text>
|
|
16
|
+
</g>
|
|
17
|
+
<!-- User -->
|
|
18
|
+
<g id="node1" class="node">
|
|
19
|
+
<title>User</title>
|
|
20
|
+
<path fill="none" stroke="black" d="M93.25,-260.85C93.25,-260.85 12,-260.85 12,-260.85 6,-260.85 0,-254.85 0,-248.85 0,-248.85 0,-236.85 0,-236.85 0,-230.85 6,-224.85 12,-224.85 12,-224.85 93.25,-224.85 93.25,-224.85 99.25,-224.85 105.25,-230.85 105.25,-236.85 105.25,-236.85 105.25,-248.85 105.25,-248.85 105.25,-254.85 99.25,-260.85 93.25,-260.85"/>
|
|
21
|
+
<text xml:space="preserve" text-anchor="middle" x="52.62" y="-245.35" font-family="Arial" font-size="10.00">Security Researcher</text>
|
|
22
|
+
<text xml:space="preserve" text-anchor="middle" x="52.62" y="-233.35" font-family="Arial" font-size="10.00">(User / pwn-ai)</text>
|
|
23
|
+
</g>
|
|
24
|
+
<!-- PwnAI -->
|
|
25
|
+
<g id="node3" class="node">
|
|
26
|
+
<title>PwnAI</title>
|
|
27
|
+
<ellipse fill="lightblue" stroke="black" cx="466.62" cy="-242.85" rx="98.82" ry="22.63"/>
|
|
28
|
+
<text xml:space="preserve" text-anchor="middle" x="466.62" y="-245.35" font-family="Arial" font-size="10.00">pwn-ai TUI</text>
|
|
29
|
+
<text xml:space="preserve" text-anchor="middle" x="466.62" y="-233.35" font-family="Arial" font-size="10.00">(Natural Language Interface)</text>
|
|
30
|
+
</g>
|
|
31
|
+
<!-- User->PwnAI -->
|
|
32
|
+
<g id="edge1" class="edge">
|
|
33
|
+
<title>User->PwnAI</title>
|
|
34
|
+
<path fill="none" stroke="black" d="M85.64,-261.31C119.01,-279.26 172.54,-306.16 221.62,-322.48 266.33,-337.35 327.03,-329.84 350.25,-325.63 385.14,-319.29 417.37,-294.2 439.02,-273.29"/>
|
|
35
|
+
<polygon fill="black" stroke="black" points="441.4,-275.85 445.99,-266.31 436.45,-270.91 441.4,-275.85"/>
|
|
36
|
+
<text xml:space="preserve" text-anchor="middle" x="293.62" y="-342.93" font-family="Arial" font-size="9.00">Natural language task</text>
|
|
37
|
+
<text xml:space="preserve" text-anchor="middle" x="293.62" y="-332.43" font-family="Arial" font-size="9.00">(e.g. scan + exploit + report)</text>
|
|
38
|
+
</g>
|
|
39
|
+
<!-- History -->
|
|
40
|
+
<g id="node10" class="node">
|
|
41
|
+
<title>History</title>
|
|
42
|
+
<path fill="none" stroke="black" d="M160.25,-150.11C160.25,-152.32 143.39,-154.11 122.62,-154.11 101.86,-154.11 85,-152.32 85,-150.11 85,-150.11 85,-114.11 85,-114.11 85,-111.91 101.86,-110.11 122.62,-110.11 143.39,-110.11 160.25,-111.91 160.25,-114.11 160.25,-114.11 160.25,-150.11 160.25,-150.11"/>
|
|
43
|
+
<path fill="none" stroke="black" d="M160.25,-150.11C160.25,-147.91 143.39,-146.11 122.62,-146.11 101.86,-146.11 85,-147.91 85,-150.11"/>
|
|
44
|
+
<text xml:space="preserve" text-anchor="middle" x="122.62" y="-134.61" font-family="Arial" font-size="10.00">Pry History /</text>
|
|
45
|
+
<text xml:space="preserve" text-anchor="middle" x="122.62" y="-122.61" font-family="Arial" font-size="10.00">Session Logs</text>
|
|
46
|
+
</g>
|
|
47
|
+
<!-- User->History -->
|
|
48
|
+
<g id="edge16" class="edge">
|
|
49
|
+
<title>User->History</title>
|
|
50
|
+
<path fill="none" stroke="black" d="M33.61,-224.43C22.5,-212.08 12.25,-195.26 21.12,-181.23 32.87,-162.66 53.93,-151.12 73.83,-144.01"/>
|
|
51
|
+
<polygon fill="black" stroke="black" points="74.82,-147.37 83.26,-140.97 72.67,-140.71 74.82,-147.37"/>
|
|
52
|
+
<text xml:space="preserve" text-anchor="middle" x="60.88" y="-193.68" font-family="Arial" font-size="9.00">history command to</text>
|
|
53
|
+
<text xml:space="preserve" text-anchor="middle" x="60.88" y="-183.18" font-family="Arial" font-size="9.00">inspect previous</text>
|
|
54
|
+
</g>
|
|
55
|
+
<!-- LLM -->
|
|
56
|
+
<g id="node2" class="node">
|
|
57
|
+
<title>LLM</title>
|
|
58
|
+
<path fill="none" stroke="black" d="M705.5,-264.85C705.5,-264.85 595.75,-264.85 595.75,-264.85 589.75,-264.85 583.75,-258.85 583.75,-252.85 583.75,-252.85 583.75,-232.85 583.75,-232.85 583.75,-226.85 589.75,-220.85 595.75,-220.85 595.75,-220.85 705.5,-220.85 705.5,-220.85 711.5,-220.85 717.5,-226.85 717.5,-232.85 717.5,-232.85 717.5,-252.85 717.5,-252.85 717.5,-258.85 711.5,-264.85 705.5,-264.85"/>
|
|
59
|
+
<text xml:space="preserve" text-anchor="middle" x="650.62" y="-251.35" font-family="Arial" font-size="10.00">LLM Providers</text>
|
|
60
|
+
<text xml:space="preserve" text-anchor="middle" x="650.62" y="-239.35" font-family="Arial" font-size="10.00">(Grok/OAuth, OpenAI,</text>
|
|
61
|
+
<text xml:space="preserve" text-anchor="middle" x="650.62" y="-227.35" font-family="Arial" font-size="10.00">Anthropic, Gemini, Ollama)</text>
|
|
62
|
+
</g>
|
|
63
|
+
<!-- ToolCall -->
|
|
64
|
+
<g id="node4" class="node">
|
|
65
|
+
<title>ToolCall</title>
|
|
66
|
+
<ellipse fill="lightblue" stroke="black" cx="474.62" cy="-132.11" rx="91.39" ry="31.11"/>
|
|
67
|
+
<text xml:space="preserve" text-anchor="middle" x="474.62" y="-140.61" font-family="Arial" font-size="10.00">Tool Calling Dispatcher</text>
|
|
68
|
+
<text xml:space="preserve" text-anchor="middle" x="474.62" y="-128.61" font-family="Arial" font-size="10.00">(pwn_eval, shell, memory,</text>
|
|
69
|
+
<text xml:space="preserve" text-anchor="middle" x="474.62" y="-116.61" font-family="Arial" font-size="10.00">skill_list, etc.)</text>
|
|
70
|
+
</g>
|
|
71
|
+
<!-- LLM->ToolCall -->
|
|
72
|
+
<g id="edge6" class="edge">
|
|
73
|
+
<title>LLM->ToolCall</title>
|
|
74
|
+
<path fill="none" stroke="black" d="M673.74,-220.48C684.11,-208.31 692.11,-193.15 682.62,-181.23 668.37,-163.3 619.4,-151.47 572.56,-144.02"/>
|
|
75
|
+
<polygon fill="black" stroke="black" points="573.26,-140.59 562.85,-142.54 572.2,-147.51 573.26,-140.59"/>
|
|
76
|
+
<text xml:space="preserve" text-anchor="middle" x="710.1" y="-188.43" font-family="Arial" font-size="9.00">Responses</text>
|
|
77
|
+
</g>
|
|
78
|
+
<!-- PwnAI->User -->
|
|
79
|
+
<g id="edge18" class="edge">
|
|
80
|
+
<title>PwnAI->User</title>
|
|
81
|
+
<path fill="none" stroke="black" d="M444.57,-265.15C424.25,-283.98 392.24,-309.56 358.62,-320.38 300.66,-339.02 281.11,-333.37 221.62,-320.38 174.75,-310.14 125.34,-285.66 92.14,-266.92"/>
|
|
82
|
+
<polygon fill="black" stroke="black" points="94.1,-264.02 83.69,-262.07 90.62,-270.09 94.1,-264.02"/>
|
|
83
|
+
<text xml:space="preserve" text-anchor="middle" x="177.62" y="-337.68" font-family="Arial" font-size="9.00">Results, reports, next steps</text>
|
|
84
|
+
</g>
|
|
85
|
+
<!-- PwnAI->ToolCall -->
|
|
86
|
+
<g id="edge2" class="edge">
|
|
87
|
+
<title>PwnAI->ToolCall</title>
|
|
88
|
+
<path fill="none" stroke="black" d="M464.52,-220.07C464.04,-214.28 463.61,-208.02 463.38,-202.23 462.99,-192.9 462.31,-190.5 463.38,-181.23 463.63,-179.05 463.94,-176.83 464.3,-174.6"/>
|
|
89
|
+
<polygon fill="black" stroke="black" points="467.7,-175.43 466.13,-164.96 460.83,-174.13 467.7,-175.43"/>
|
|
90
|
+
<text xml:space="preserve" text-anchor="middle" x="511" y="-188.43" font-family="Arial" font-size="9.00">Parse intent, plan steps</text>
|
|
91
|
+
</g>
|
|
92
|
+
<!-- ToolCall->LLM -->
|
|
93
|
+
<g id="edge5" class="edge">
|
|
94
|
+
<title>ToolCall->LLM</title>
|
|
95
|
+
<path fill="none" stroke="black" d="M523.24,-158.66C535.12,-165.52 547.58,-173.26 558.62,-181.23 569.99,-189.42 570.78,-194.01 582.12,-202.23 588.11,-206.56 594.59,-210.82 601.11,-214.84"/>
|
|
96
|
+
<polygon fill="black" stroke="black" points="598.96,-217.63 609.34,-219.78 602.56,-211.63 598.96,-217.63"/>
|
|
97
|
+
<text xml:space="preserve" text-anchor="middle" x="632.38" y="-188.43" font-family="Arial" font-size="9.00">If needed for decisioning</text>
|
|
98
|
+
</g>
|
|
99
|
+
<!-- Memory -->
|
|
100
|
+
<g id="node6" class="node">
|
|
101
|
+
<title>Memory</title>
|
|
102
|
+
<path fill="none" stroke="black" d="M713.5,-40C713.5,-42.21 688.9,-44 658.62,-44 628.35,-44 603.75,-42.21 603.75,-40 603.75,-40 603.75,-4 603.75,-4 603.75,-1.79 628.35,0 658.62,0 688.9,0 713.5,-1.79 713.5,-4 713.5,-4 713.5,-40 713.5,-40"/>
|
|
103
|
+
<path fill="none" stroke="black" d="M713.5,-40C713.5,-37.79 688.9,-36 658.62,-36 628.35,-36 603.75,-37.79 603.75,-40"/>
|
|
104
|
+
<text xml:space="preserve" text-anchor="middle" x="658.62" y="-24.5" font-family="Arial" font-size="10.00">PWN::Memory</text>
|
|
105
|
+
<text xml:space="preserve" text-anchor="middle" x="658.62" y="-12.5" font-family="Arial" font-size="10.00">(~/.pwn/memory.json)</text>
|
|
106
|
+
</g>
|
|
107
|
+
<!-- ToolCall->Memory -->
|
|
108
|
+
<g id="edge7" class="edge">
|
|
109
|
+
<title>ToolCall->Memory</title>
|
|
110
|
+
<path fill="none" stroke="black" d="M539.4,-109.83C557.6,-102.56 576.97,-93.56 593.62,-83 601.31,-78.13 615.79,-64.93 629.14,-52.14"/>
|
|
111
|
+
<polygon fill="black" stroke="black" points="631.39,-54.84 636.15,-45.37 626.52,-49.8 631.39,-54.84"/>
|
|
112
|
+
<text xml:space="preserve" text-anchor="middle" x="657.81" y="-69.2" font-family="Arial" font-size="9.00">remember(key, val)</text>
|
|
113
|
+
</g>
|
|
114
|
+
<!-- Metrics -->
|
|
115
|
+
<g id="node7" class="node">
|
|
116
|
+
<title>Metrics</title>
|
|
117
|
+
<path fill="none" stroke="black" d="M287.38,-40C287.38,-42.21 259.25,-44 224.62,-44 190,-44 161.88,-42.21 161.88,-40 161.88,-40 161.88,-4 161.88,-4 161.88,-1.79 190,0 224.62,0 259.25,0 287.38,-1.79 287.38,-4 287.38,-4 287.38,-40 287.38,-40"/>
|
|
118
|
+
<path fill="none" stroke="black" d="M287.38,-40C287.38,-37.79 259.25,-36 224.62,-36 190,-36 161.88,-37.79 161.88,-40"/>
|
|
119
|
+
<text xml:space="preserve" text-anchor="middle" x="224.62" y="-24.5" font-family="Arial" font-size="10.00">PWN::AI::Agent::Metrics</text>
|
|
120
|
+
<text xml:space="preserve" text-anchor="middle" x="224.62" y="-12.5" font-family="Arial" font-size="10.00">(~/.pwn/metrics.json)</text>
|
|
121
|
+
</g>
|
|
122
|
+
<!-- ToolCall->Metrics -->
|
|
123
|
+
<g id="edge9" class="edge">
|
|
124
|
+
<title>ToolCall->Metrics</title>
|
|
125
|
+
<path fill="none" stroke="black" d="M415.43,-108.05C400.31,-102.66 383.99,-97.25 368.62,-93 346.47,-86.87 339.2,-91.59 317.88,-83 297.87,-74.94 277.52,-62.44 260.96,-50.94"/>
|
|
126
|
+
<polygon fill="black" stroke="black" points="263.08,-48.15 252.91,-45.2 259.02,-53.85 263.08,-48.15"/>
|
|
127
|
+
<text xml:space="preserve" text-anchor="middle" x="369.25" y="-74.45" font-family="Arial" font-size="9.00">record(success, duration,</text>
|
|
128
|
+
<text xml:space="preserve" text-anchor="middle" x="369.25" y="-63.95" font-family="Arial" font-size="9.00">tool=...)</text>
|
|
129
|
+
</g>
|
|
130
|
+
<!-- Learning -->
|
|
131
|
+
<g id="node8" class="node">
|
|
132
|
+
<title>Learning</title>
|
|
133
|
+
<path fill="none" stroke="black" d="M460.62,-40C460.62,-42.21 431.49,-44 395.62,-44 359.76,-44 330.62,-42.21 330.62,-40 330.62,-40 330.62,-4 330.62,-4 330.62,-1.79 359.76,0 395.62,0 431.49,0 460.62,-1.79 460.62,-4 460.62,-4 460.62,-40 460.62,-40"/>
|
|
134
|
+
<path fill="none" stroke="black" d="M460.62,-40C460.62,-37.79 431.49,-36 395.62,-36 359.76,-36 330.62,-37.79 330.62,-40"/>
|
|
135
|
+
<text xml:space="preserve" text-anchor="middle" x="395.62" y="-24.5" font-family="Arial" font-size="10.00">PWN::AI::Agent::Learning</text>
|
|
136
|
+
<text xml:space="preserve" text-anchor="middle" x="395.62" y="-12.5" font-family="Arial" font-size="10.00">(~/.pwn/learning.jsonl)</text>
|
|
137
|
+
</g>
|
|
138
|
+
<!-- ToolCall->Learning -->
|
|
139
|
+
<g id="edge11" class="edge">
|
|
140
|
+
<title>ToolCall->Learning</title>
|
|
141
|
+
<path fill="none" stroke="black" d="M453.3,-101.45C444.46,-89.21 434.08,-74.9 424.62,-62 422.59,-59.23 420.48,-56.36 418.35,-53.48"/>
|
|
142
|
+
<polygon fill="black" stroke="black" points="421.3,-51.58 412.53,-45.63 415.68,-55.75 421.3,-51.58"/>
|
|
143
|
+
<text xml:space="preserve" text-anchor="middle" x="514.82" y="-69.2" font-family="Arial" font-size="9.00">note_outcome(task, success, details)</text>
|
|
144
|
+
</g>
|
|
145
|
+
<!-- REPL -->
|
|
146
|
+
<g id="node11" class="node">
|
|
147
|
+
<title>REPL</title>
|
|
148
|
+
<path fill="none" stroke="black" d="M949.62,-40C949.62,-40 855.62,-40 855.62,-40 849.62,-40 843.62,-34 843.62,-28 843.62,-28 843.62,-16 843.62,-16 843.62,-10 849.62,-4 855.62,-4 855.62,-4 949.62,-4 949.62,-4 955.62,-4 961.62,-10 961.62,-16 961.62,-16 961.62,-28 961.62,-28 961.62,-34 955.62,-40 949.62,-40"/>
|
|
149
|
+
<text xml:space="preserve" text-anchor="middle" x="902.62" y="-24.5" font-family="Arial" font-size="10.00">PWN REPL</text>
|
|
150
|
+
<text xml:space="preserve" text-anchor="middle" x="902.62" y="-12.5" font-family="Arial" font-size="10.00">(Full PWN namespace)</text>
|
|
151
|
+
</g>
|
|
152
|
+
<!-- ToolCall->REPL -->
|
|
153
|
+
<g id="edge3" class="edge">
|
|
154
|
+
<title>ToolCall->REPL</title>
|
|
155
|
+
<path fill="none" stroke="black" d="M564.63,-126.04C629.65,-120.35 718.82,-108.32 793.62,-83 794.57,-82.68 830.75,-62.73 861.17,-45.93"/>
|
|
156
|
+
<polygon fill="black" stroke="black" points="862.82,-49.01 869.88,-41.11 859.44,-42.89 862.82,-49.01"/>
|
|
157
|
+
<text xml:space="preserve" text-anchor="middle" x="890.35" y="-69.2" font-family="Arial" font-size="9.00">pwn_eval(code) or shell(cmd)</text>
|
|
158
|
+
</g>
|
|
159
|
+
<!-- Introspection -->
|
|
160
|
+
<g id="node5" class="node">
|
|
161
|
+
<title>Introspection</title>
|
|
162
|
+
<ellipse fill="lightblue" stroke="black" cx="291.62" cy="-242.85" rx="57.98" ry="22.63"/>
|
|
163
|
+
<text xml:space="preserve" text-anchor="middle" x="291.62" y="-245.35" font-family="Arial" font-size="10.00">Introspection &</text>
|
|
164
|
+
<text xml:space="preserve" text-anchor="middle" x="291.62" y="-233.35" font-family="Arial" font-size="10.00">Reflection</text>
|
|
165
|
+
</g>
|
|
166
|
+
<!-- Skills -->
|
|
167
|
+
<g id="node9" class="node">
|
|
168
|
+
<title>Skills</title>
|
|
169
|
+
<path fill="none" stroke="black" d="M836,-260.85C836,-263.06 813.42,-264.85 785.62,-264.85 757.83,-264.85 735.25,-263.06 735.25,-260.85 735.25,-260.85 735.25,-224.85 735.25,-224.85 735.25,-222.65 757.83,-220.85 785.62,-220.85 813.42,-220.85 836,-222.65 836,-224.85 836,-224.85 836,-260.85 836,-260.85"/>
|
|
170
|
+
<path fill="none" stroke="black" d="M836,-260.85C836,-258.65 813.42,-256.85 785.62,-256.85 757.83,-256.85 735.25,-258.65 735.25,-260.85"/>
|
|
171
|
+
<text xml:space="preserve" text-anchor="middle" x="785.62" y="-245.35" font-family="Arial" font-size="10.00">PWN::Skills</text>
|
|
172
|
+
<text xml:space="preserve" text-anchor="middle" x="785.62" y="-233.35" font-family="Arial" font-size="10.00">(~/.pwn/skills/*.md)</text>
|
|
173
|
+
</g>
|
|
174
|
+
<!-- Introspection->Skills -->
|
|
175
|
+
<g id="edge13" class="edge">
|
|
176
|
+
<title>Introspection->Skills</title>
|
|
177
|
+
<path fill="none" stroke="black" d="M303.33,-265.34C314.64,-284.41 333.71,-310.51 358.62,-322.48 410.92,-347.6 431.11,-324.93 489.12,-325.63 594.68,-326.9 632.91,-371.08 726.62,-322.48 746.16,-312.35 760.9,-292.47 770.76,-275.1"/>
|
|
178
|
+
<polygon fill="black" stroke="black" points="773.68,-277.07 775.29,-266.6 767.5,-273.78 773.68,-277.07"/>
|
|
179
|
+
<text xml:space="preserve" text-anchor="middle" x="541.62" y="-342.93" font-family="Arial" font-size="9.00">distill_skill(name, content,</text>
|
|
180
|
+
<text xml:space="preserve" text-anchor="middle" x="541.62" y="-332.43" font-family="Arial" font-size="9.00">references)</text>
|
|
181
|
+
</g>
|
|
182
|
+
<!-- Introspection->History -->
|
|
183
|
+
<g id="edge15" class="edge">
|
|
184
|
+
<title>Introspection->History</title>
|
|
185
|
+
<path fill="none" stroke="black" d="M235.97,-236.03C192.76,-230.23 137.91,-219.64 123.88,-202.23 115.74,-192.14 114.25,-178.27 115.24,-165.6"/>
|
|
186
|
+
<polygon fill="black" stroke="black" points="118.67,-166.32 116.53,-155.95 111.73,-165.4 118.67,-166.32"/>
|
|
187
|
+
<text xml:space="preserve" text-anchor="middle" x="155.75" y="-188.43" font-family="Arial" font-size="9.00">Update session</text>
|
|
188
|
+
</g>
|
|
189
|
+
<!-- Memory->ToolCall -->
|
|
190
|
+
<g id="edge8" class="edge">
|
|
191
|
+
<title>Memory->ToolCall</title>
|
|
192
|
+
<path fill="none" stroke="black" d="M687.64,-44.42C700,-56.15 709.54,-70.74 699.62,-83 683.44,-103.01 626.56,-115.06 574.04,-122.1"/>
|
|
193
|
+
<polygon fill="black" stroke="black" points="573.9,-118.59 564.42,-123.34 574.79,-125.54 573.9,-118.59"/>
|
|
194
|
+
<text xml:space="preserve" text-anchor="middle" x="746.87" y="-74.45" font-family="Arial" font-size="9.00">recall(query) injected</text>
|
|
195
|
+
<text xml:space="preserve" text-anchor="middle" x="746.87" y="-63.95" font-family="Arial" font-size="9.00">into prompts</text>
|
|
196
|
+
</g>
|
|
197
|
+
<!-- Metrics->Introspection -->
|
|
198
|
+
<g id="edge10" class="edge">
|
|
199
|
+
<title>Metrics->Introspection</title>
|
|
200
|
+
<path fill="none" stroke="black" d="M216.99,-44.37C208.16,-72.7 196.78,-123.73 213.12,-163.23 221.71,-183.98 238.73,-202.12 254.73,-215.73"/>
|
|
201
|
+
<polygon fill="black" stroke="black" points="252.31,-218.27 262.28,-221.86 256.72,-212.84 252.31,-218.27"/>
|
|
202
|
+
<text xml:space="preserve" text-anchor="middle" x="239.38" y="-128.81" font-family="Arial" font-size="9.00">per-tool stats</text>
|
|
203
|
+
</g>
|
|
204
|
+
<!-- Learning->Introspection -->
|
|
205
|
+
<g id="edge12" class="edge">
|
|
206
|
+
<title>Learning->Introspection</title>
|
|
207
|
+
<path fill="none" stroke="black" d="M330.35,-39.57C319.33,-45.06 309.07,-52.35 301.62,-62 269.11,-104.17 275.42,-169.82 283.3,-209.05"/>
|
|
208
|
+
<polygon fill="black" stroke="black" points="279.83,-209.58 285.38,-218.61 286.67,-208.09 279.83,-209.58"/>
|
|
209
|
+
<text xml:space="preserve" text-anchor="middle" x="323.33" y="-128.81" font-family="Arial" font-size="9.00">reflect on transcript</text>
|
|
210
|
+
</g>
|
|
211
|
+
<!-- Skills->ToolCall -->
|
|
212
|
+
<g id="edge14" class="edge">
|
|
213
|
+
<title>Skills->ToolCall</title>
|
|
214
|
+
<path fill="none" stroke="black" d="M774.19,-220.58C765.84,-207.15 753.28,-190.63 737.62,-181.23 710.08,-164.68 635.42,-151.96 572.65,-143.76"/>
|
|
215
|
+
<polygon fill="black" stroke="black" points="573.35,-140.33 562.99,-142.53 572.46,-147.27 573.35,-140.33"/>
|
|
216
|
+
<text xml:space="preserve" text-anchor="middle" x="816.11" y="-193.68" font-family="Arial" font-size="9.00">skill_list / skill_view</text>
|
|
217
|
+
<text xml:space="preserve" text-anchor="middle" x="816.11" y="-183.18" font-family="Arial" font-size="9.00">injected into future prompts</text>
|
|
218
|
+
</g>
|
|
219
|
+
<!-- History->PwnAI -->
|
|
220
|
+
<g id="edge17" class="edge">
|
|
221
|
+
<title>History->PwnAI</title>
|
|
222
|
+
<path fill="none" stroke="black" d="M155.7,-153.21C162.48,-156.86 169.67,-160.39 176.62,-163.23 243.8,-190.58 323.55,-211.42 382.4,-224.74"/>
|
|
223
|
+
<polygon fill="black" stroke="black" points="381.51,-228.13 392.03,-226.9 383.04,-221.3 381.51,-228.13"/>
|
|
224
|
+
<text xml:space="preserve" text-anchor="middle" x="340.33" y="-188.43" font-family="Arial" font-size="9.00">context from prior sessions</text>
|
|
225
|
+
</g>
|
|
226
|
+
<!-- REPL->ToolCall -->
|
|
227
|
+
<g id="edge4" class="edge">
|
|
228
|
+
<title>REPL->ToolCall</title>
|
|
229
|
+
<path fill="none" stroke="black" d="M932.83,-40.31C950.24,-52.43 966.37,-68.91 953.62,-83 928.87,-110.37 710.31,-122.87 577.13,-128"/>
|
|
230
|
+
<polygon fill="black" stroke="black" points="577.08,-124.5 567.22,-128.37 577.34,-131.49 577.08,-124.5"/>
|
|
231
|
+
<text xml:space="preserve" text-anchor="middle" x="1014.82" y="-69.2" font-family="Arial" font-size="9.00">Results / stdout / exceptions</text>
|
|
232
|
+
</g>
|
|
233
|
+
</g>
|
|
234
|
+
</svg>
|
|
@@ -0,0 +1,179 @@
|
|
|
1
|
+
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
|
2
|
+
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN"
|
|
3
|
+
"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
|
|
4
|
+
<!-- Generated by graphviz version 14.1.2 (0)
|
|
5
|
+
-->
|
|
6
|
+
<!-- Title: PWN REPL Prototyping & Development Pages: 1 -->
|
|
7
|
+
<svg width="820pt" height="382pt"
|
|
8
|
+
viewBox="0.00 0.00 820.00 382.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(4 377.67)">
|
|
10
|
+
<title>PWN REPL Prototyping & Development</title>
|
|
11
|
+
<polygon fill="white" stroke="none" points="-4,4 -4,-377.67 816.39,-377.67 816.39,4 -4,4"/>
|
|
12
|
+
<g id="clust1" class="cluster">
|
|
13
|
+
<title>cluster_pwn</title>
|
|
14
|
+
<polygon fill="none" stroke="navy" points="686.89,-54.67 686.89,-365.67 804.39,-365.67 804.39,-54.67 686.89,-54.67"/>
|
|
15
|
+
<text xml:space="preserve" text-anchor="middle" x="745.64" y="-348.37" font-family="Times,serif" font-size="14.00">PWN Namespace</text>
|
|
16
|
+
</g>
|
|
17
|
+
<!-- User -->
|
|
18
|
+
<g id="node1" class="node">
|
|
19
|
+
<title>User</title>
|
|
20
|
+
<path fill="none" stroke="black" d="M58,-159.67C58,-159.67 12,-159.67 12,-159.67 6,-159.67 0,-153.67 0,-147.67 0,-147.67 0,-135.67 0,-135.67 0,-129.67 6,-123.67 12,-123.67 12,-123.67 58,-123.67 58,-123.67 64,-123.67 70,-129.67 70,-135.67 70,-135.67 70,-147.67 70,-147.67 70,-153.67 64,-159.67 58,-159.67"/>
|
|
21
|
+
<text xml:space="preserve" text-anchor="middle" x="35" y="-143.62" font-family="Arial" font-size="9.00">User</text>
|
|
22
|
+
<text xml:space="preserve" text-anchor="middle" x="35" y="-133.12" font-family="Arial" font-size="9.00">(Researcher)</text>
|
|
23
|
+
</g>
|
|
24
|
+
<!-- Shell -->
|
|
25
|
+
<g id="node2" class="node">
|
|
26
|
+
<title>Shell</title>
|
|
27
|
+
<path fill="none" stroke="black" d="M212.75,-199.67C212.75,-199.67 133,-199.67 133,-199.67 127,-199.67 121,-193.67 121,-187.67 121,-187.67 121,-175.67 121,-175.67 121,-169.67 127,-163.67 133,-163.67 133,-163.67 212.75,-163.67 212.75,-163.67 218.75,-163.67 224.75,-169.67 224.75,-175.67 224.75,-175.67 224.75,-187.67 224.75,-187.67 224.75,-193.67 218.75,-199.67 212.75,-199.67"/>
|
|
28
|
+
<text xml:space="preserve" text-anchor="middle" x="172.88" y="-178.37" font-family="Arial" font-size="9.00">shell (pwn command)</text>
|
|
29
|
+
</g>
|
|
30
|
+
<!-- User->Shell -->
|
|
31
|
+
<g id="edge1" class="edge">
|
|
32
|
+
<title>User->Shell</title>
|
|
33
|
+
<path fill="none" stroke="black" d="M70.29,-151.76C82.32,-155.31 96.24,-159.4 109.84,-163.41"/>
|
|
34
|
+
<polygon fill="black" stroke="black" points="108.61,-166.69 119.19,-166.16 110.58,-159.98 108.61,-166.69"/>
|
|
35
|
+
<text xml:space="preserve" text-anchor="middle" x="95.5" y="-162.62" font-family="Arial" font-size="8.00">pwn</text>
|
|
36
|
+
</g>
|
|
37
|
+
<!-- Pry -->
|
|
38
|
+
<g id="node3" class="node">
|
|
39
|
+
<title>Pry</title>
|
|
40
|
+
<ellipse fill="lightgreen" stroke="black" cx="341.95" cy="-141.67" rx="61.7" ry="20.51"/>
|
|
41
|
+
<text xml:space="preserve" text-anchor="middle" x="341.95" y="-143.62" font-family="Arial" font-size="9.00">Pry REPL</text>
|
|
42
|
+
<text xml:space="preserve" text-anchor="middle" x="341.95" y="-133.12" font-family="Arial" font-size="9.00">(PWN preloaded)</text>
|
|
43
|
+
</g>
|
|
44
|
+
<!-- Shell->Pry -->
|
|
45
|
+
<g id="edge2" class="edge">
|
|
46
|
+
<title>Shell->Pry</title>
|
|
47
|
+
<path fill="none" stroke="black" d="M224.91,-169.45C242.31,-165.29 261.95,-160.58 280.05,-156.25"/>
|
|
48
|
+
<polygon fill="black" stroke="black" points="280.7,-159.69 289.61,-153.96 279.07,-152.89 280.7,-159.69"/>
|
|
49
|
+
<text xml:space="preserve" text-anchor="middle" x="252.5" y="-166.22" font-family="Arial" font-size="8.00">starts</text>
|
|
50
|
+
</g>
|
|
51
|
+
<!-- Pry->User -->
|
|
52
|
+
<g id="edge12" class="edge">
|
|
53
|
+
<title>Pry->User</title>
|
|
54
|
+
<path fill="none" stroke="black" d="M280.96,-137.67C262.9,-136.64 243.03,-135.68 224.75,-135.17 178.66,-133.88 167.08,-133.41 121,-135.17 108.2,-135.66 94.35,-136.56 81.61,-137.54"/>
|
|
55
|
+
<polygon fill="black" stroke="black" points="81.49,-134.04 71.8,-138.33 82.05,-141.01 81.49,-134.04"/>
|
|
56
|
+
<text xml:space="preserve" text-anchor="middle" x="172.88" y="-147.07" font-family="Arial" font-size="8.00">interactive results</text>
|
|
57
|
+
<text xml:space="preserve" text-anchor="middle" x="172.88" y="-137.32" font-family="Arial" font-size="8.00">inspect / pp / tab-complete</text>
|
|
58
|
+
</g>
|
|
59
|
+
<!-- Plugins -->
|
|
60
|
+
<g id="node4" class="node">
|
|
61
|
+
<title>Plugins</title>
|
|
62
|
+
<path fill="none" stroke="black" d="M784.39,-332.67C784.39,-332.67 706.89,-332.67 706.89,-332.67 700.89,-332.67 694.89,-326.67 694.89,-320.67 694.89,-320.67 694.89,-294.67 694.89,-294.67 694.89,-288.67 700.89,-282.67 706.89,-282.67 706.89,-282.67 784.39,-282.67 784.39,-282.67 790.39,-282.67 796.39,-288.67 796.39,-294.67 796.39,-294.67 796.39,-320.67 796.39,-320.67 796.39,-326.67 790.39,-332.67 784.39,-332.67"/>
|
|
63
|
+
<text xml:space="preserve" text-anchor="middle" x="745.64" y="-320.12" font-family="Arial" font-size="9.00">PWN::Plugins::</text>
|
|
64
|
+
<text xml:space="preserve" text-anchor="middle" x="745.64" y="-309.62" font-family="Arial" font-size="9.00">(Burp, NmapIt,</text>
|
|
65
|
+
<text xml:space="preserve" text-anchor="middle" x="745.64" y="-299.12" font-family="Arial" font-size="9.00">TransparentBrowser,</text>
|
|
66
|
+
<text xml:space="preserve" text-anchor="middle" x="745.64" y="-288.62" font-family="Arial" font-size="9.00">Metasploit, etc.)</text>
|
|
67
|
+
</g>
|
|
68
|
+
<!-- Pry->Plugins -->
|
|
69
|
+
<g id="edge3" class="edge">
|
|
70
|
+
<title>Pry->Plugins</title>
|
|
71
|
+
<path fill="none" stroke="black" d="M368.5,-160.44C383.57,-171.12 403.25,-184.37 421.64,-194.67 507.19,-242.59 616.7,-275.69 683.71,-293.17"/>
|
|
72
|
+
<polygon fill="black" stroke="black" points="682.47,-296.46 693.03,-295.56 684.21,-289.68 682.47,-296.46"/>
|
|
73
|
+
<text xml:space="preserve" text-anchor="middle" x="555.27" y="-273.11" font-family="Arial" font-size="8.00">direct method calls</text>
|
|
74
|
+
</g>
|
|
75
|
+
<!-- SAST -->
|
|
76
|
+
<g id="node5" class="node">
|
|
77
|
+
<title>SAST</title>
|
|
78
|
+
<path fill="none" stroke="black" d="M772.77,-264.42C772.77,-264.42 718.52,-264.42 718.52,-264.42 712.52,-264.42 706.52,-258.42 706.52,-252.42 706.52,-252.42 706.52,-236.92 706.52,-236.92 706.52,-230.92 712.52,-224.92 718.52,-224.92 718.52,-224.92 772.77,-224.92 772.77,-224.92 778.77,-224.92 784.77,-230.92 784.77,-236.92 784.77,-236.92 784.77,-252.42 784.77,-252.42 784.77,-258.42 778.77,-264.42 772.77,-264.42"/>
|
|
79
|
+
<text xml:space="preserve" text-anchor="middle" x="745.64" y="-251.87" font-family="Arial" font-size="9.00">PWN::SAST</text>
|
|
80
|
+
<text xml:space="preserve" text-anchor="middle" x="745.64" y="-241.37" font-family="Arial" font-size="9.00">(Static Analysis</text>
|
|
81
|
+
<text xml:space="preserve" text-anchor="middle" x="745.64" y="-230.87" font-family="Arial" font-size="9.00">+ Testgen)</text>
|
|
82
|
+
</g>
|
|
83
|
+
<!-- Pry->SAST -->
|
|
84
|
+
<g id="edge4" class="edge">
|
|
85
|
+
<title>Pry->SAST</title>
|
|
86
|
+
<path fill="none" stroke="black" d="M381.79,-157.73C394.38,-162.6 408.48,-167.7 421.64,-171.67 517.04,-200.48 631.34,-223.74 695.2,-235.76"/>
|
|
87
|
+
<polygon fill="black" stroke="black" points="694.18,-239.13 704.66,-237.53 695.47,-232.25 694.18,-239.13"/>
|
|
88
|
+
<text xml:space="preserve" text-anchor="middle" x="555.27" y="-219.86" font-family="Arial" font-size="8.00">PWN::SAST.analyze...</text>
|
|
89
|
+
</g>
|
|
90
|
+
<!-- Reports -->
|
|
91
|
+
<g id="node6" class="node">
|
|
92
|
+
<title>Reports</title>
|
|
93
|
+
<path fill="none" stroke="black" d="M770.52,-206.67C770.52,-206.67 720.77,-206.67 720.77,-206.67 714.77,-206.67 708.77,-200.67 708.77,-194.67 708.77,-194.67 708.77,-182.67 708.77,-182.67 708.77,-176.67 714.77,-170.67 720.77,-170.67 720.77,-170.67 770.52,-170.67 770.52,-170.67 776.52,-170.67 782.52,-176.67 782.52,-182.67 782.52,-182.67 782.52,-194.67 782.52,-194.67 782.52,-200.67 776.52,-206.67 770.52,-206.67"/>
|
|
94
|
+
<text xml:space="preserve" text-anchor="middle" x="745.64" y="-185.37" font-family="Arial" font-size="9.00">PWN::Reports</text>
|
|
95
|
+
</g>
|
|
96
|
+
<!-- Pry->Reports -->
|
|
97
|
+
<g id="edge5" class="edge">
|
|
98
|
+
<title>Pry->Reports</title>
|
|
99
|
+
<path fill="none" stroke="black" d="M398.36,-150.43C406.17,-151.57 414.1,-152.69 421.64,-153.67 519.58,-166.44 634.65,-178.11 697.6,-184.22"/>
|
|
100
|
+
<polygon fill="black" stroke="black" points="696.94,-187.67 707.23,-185.15 697.61,-180.7 696.94,-187.67"/>
|
|
101
|
+
<text xml:space="preserve" text-anchor="middle" x="555.27" y="-177.16" font-family="Arial" font-size="8.00">PWN::Reports.generate</text>
|
|
102
|
+
</g>
|
|
103
|
+
<!-- AI -->
|
|
104
|
+
<g id="node8" class="node">
|
|
105
|
+
<title>AI</title>
|
|
106
|
+
<path fill="none" stroke="black" d="M778.02,-152.67C778.02,-152.67 713.27,-152.67 713.27,-152.67 707.27,-152.67 701.27,-146.67 701.27,-140.67 701.27,-140.67 701.27,-128.67 701.27,-128.67 701.27,-122.67 707.27,-116.67 713.27,-116.67 713.27,-116.67 778.02,-116.67 778.02,-116.67 784.02,-116.67 790.02,-122.67 790.02,-128.67 790.02,-128.67 790.02,-140.67 790.02,-140.67 790.02,-146.67 784.02,-152.67 778.02,-152.67"/>
|
|
107
|
+
<text xml:space="preserve" text-anchor="middle" x="745.64" y="-136.62" font-family="Arial" font-size="9.00">PWN::AI::</text>
|
|
108
|
+
<text xml:space="preserve" text-anchor="middle" x="745.64" y="-126.12" font-family="Arial" font-size="9.00">(Agent, Grok, etc.)</text>
|
|
109
|
+
</g>
|
|
110
|
+
<!-- Pry->AI -->
|
|
111
|
+
<g id="edge6" class="edge">
|
|
112
|
+
<title>Pry->AI</title>
|
|
113
|
+
<path fill="none" stroke="black" d="M403.95,-140.61C481.66,-139.25 614.81,-136.93 689.57,-135.63"/>
|
|
114
|
+
<polygon fill="black" stroke="black" points="689.6,-139.13 699.53,-135.46 689.47,-132.13 689.6,-139.13"/>
|
|
115
|
+
<text xml:space="preserve" text-anchor="middle" x="555.27" y="-141.02" font-family="Arial" font-size="8.00">pwn-ai or direct</text>
|
|
116
|
+
</g>
|
|
117
|
+
<!-- History -->
|
|
118
|
+
<g id="node9" class="node">
|
|
119
|
+
<title>History</title>
|
|
120
|
+
<path fill="none" stroke="black" d="M607.89,-110.98C607.89,-112.98 584.3,-114.61 555.27,-114.61 526.23,-114.61 502.64,-112.98 502.64,-110.98 502.64,-110.98 502.64,-78.36 502.64,-78.36 502.64,-76.36 526.23,-74.73 555.27,-74.73 584.3,-74.73 607.89,-76.36 607.89,-78.36 607.89,-78.36 607.89,-110.98 607.89,-110.98"/>
|
|
121
|
+
<path fill="none" stroke="black" d="M607.89,-110.98C607.89,-108.98 584.3,-107.36 555.27,-107.36 526.23,-107.36 502.64,-108.98 502.64,-110.98"/>
|
|
122
|
+
<text xml:space="preserve" text-anchor="middle" x="555.27" y="-96.62" font-family="Arial" font-size="9.00">Pry Command History</text>
|
|
123
|
+
<text xml:space="preserve" text-anchor="middle" x="555.27" y="-86.12" font-family="Arial" font-size="9.00">(~/.pry_history)</text>
|
|
124
|
+
</g>
|
|
125
|
+
<!-- Pry->History -->
|
|
126
|
+
<g id="edge7" class="edge">
|
|
127
|
+
<title>Pry->History</title>
|
|
128
|
+
<path fill="none" stroke="black" d="M394.1,-130.29C423.36,-123.78 460.31,-115.57 491.34,-108.67"/>
|
|
129
|
+
<polygon fill="black" stroke="black" points="492,-112.1 501,-106.52 490.48,-105.27 492,-112.1"/>
|
|
130
|
+
<text xml:space="preserve" text-anchor="middle" x="453.14" y="-125.91" font-family="Arial" font-size="8.00">every cmd logged</text>
|
|
131
|
+
</g>
|
|
132
|
+
<!-- Scripts -->
|
|
133
|
+
<g id="node10" class="node">
|
|
134
|
+
<title>Scripts</title>
|
|
135
|
+
<path fill="none" stroke="black" d="M586.52,-52.67C586.52,-52.67 524.02,-52.67 524.02,-52.67 518.02,-52.67 512.02,-46.67 512.02,-40.67 512.02,-40.67 512.02,-28.67 512.02,-28.67 512.02,-22.67 518.02,-16.67 524.02,-16.67 524.02,-16.67 586.52,-16.67 586.52,-16.67 592.52,-16.67 598.52,-22.67 598.52,-28.67 598.52,-28.67 598.52,-40.67 598.52,-40.67 598.52,-46.67 592.52,-52.67 586.52,-52.67"/>
|
|
136
|
+
<text xml:space="preserve" text-anchor="middle" x="555.27" y="-36.62" font-family="Arial" font-size="9.00">Custom Scripts</text>
|
|
137
|
+
<text xml:space="preserve" text-anchor="middle" x="555.27" y="-26.12" font-family="Arial" font-size="9.00">& Prototypes (.rb)</text>
|
|
138
|
+
</g>
|
|
139
|
+
<!-- Pry->Scripts -->
|
|
140
|
+
<g id="edge8" class="edge">
|
|
141
|
+
<title>Pry->Scripts</title>
|
|
142
|
+
<path fill="none" stroke="black" d="M354.05,-121.09C367.1,-99.18 390.9,-65.46 421.64,-49.17 445.51,-36.52 475.16,-32.39 500.37,-31.64"/>
|
|
143
|
+
<polygon fill="black" stroke="black" points="500.13,-35.14 510.09,-31.53 500.05,-28.14 500.13,-35.14"/>
|
|
144
|
+
<text xml:space="preserve" text-anchor="middle" x="453.14" y="-61.07" font-family="Arial" font-size="8.00">save / edit</text>
|
|
145
|
+
<text xml:space="preserve" text-anchor="middle" x="453.14" y="-51.32" font-family="Arial" font-size="8.00">prototype</text>
|
|
146
|
+
</g>
|
|
147
|
+
<!-- Driver -->
|
|
148
|
+
<g id="node7" class="node">
|
|
149
|
+
<title>Driver</title>
|
|
150
|
+
<path fill="none" stroke="black" d="M780.64,-98.67C780.64,-98.67 710.64,-98.67 710.64,-98.67 704.64,-98.67 698.64,-92.67 698.64,-86.67 698.64,-86.67 698.64,-74.67 698.64,-74.67 698.64,-68.67 704.64,-62.67 710.64,-62.67 710.64,-62.67 780.64,-62.67 780.64,-62.67 786.64,-62.67 792.64,-68.67 792.64,-74.67 792.64,-74.67 792.64,-86.67 792.64,-86.67 792.64,-92.67 786.64,-98.67 780.64,-98.67"/>
|
|
151
|
+
<text xml:space="preserve" text-anchor="middle" x="745.64" y="-82.62" font-family="Arial" font-size="9.00">PWN::Driver</text>
|
|
152
|
+
<text xml:space="preserve" text-anchor="middle" x="745.64" y="-72.12" font-family="Arial" font-size="9.00">(Parser, auto_opts)</text>
|
|
153
|
+
</g>
|
|
154
|
+
<!-- History->Pry -->
|
|
155
|
+
<g id="edge9" class="edge">
|
|
156
|
+
<title>History->Pry</title>
|
|
157
|
+
<path fill="none" stroke="black" d="M502.39,-77.6C477.4,-72.05 447.35,-69.37 421.64,-78.42 401.32,-85.57 382.38,-100.43 368.17,-113.95"/>
|
|
158
|
+
<polygon fill="black" stroke="black" points="366.08,-111.09 361.45,-120.62 371.01,-116.06 366.08,-111.09"/>
|
|
159
|
+
<text xml:space="preserve" text-anchor="middle" x="453.14" y="-100.07" font-family="Arial" font-size="8.00">history</text>
|
|
160
|
+
<text xml:space="preserve" text-anchor="middle" x="453.14" y="-90.32" font-family="Arial" font-size="8.00">up-arrow</text>
|
|
161
|
+
<text xml:space="preserve" text-anchor="middle" x="453.14" y="-80.57" font-family="Arial" font-size="8.00">ctrl-r search</text>
|
|
162
|
+
</g>
|
|
163
|
+
<!-- Scripts->Pry -->
|
|
164
|
+
<g id="edge10" class="edge">
|
|
165
|
+
<title>Scripts->Pry</title>
|
|
166
|
+
<path fill="none" stroke="black" d="M520.6,-16.23C492.49,-3.52 452.21,8.23 421.64,-9.17 383.95,-30.62 362.44,-78.03 351.73,-109.92"/>
|
|
167
|
+
<polygon fill="black" stroke="black" points="348.39,-108.86 348.72,-119.45 355.07,-110.97 348.39,-108.86"/>
|
|
168
|
+
<text xml:space="preserve" text-anchor="middle" x="453.14" y="-21.07" font-family="Arial" font-size="8.00">load / require</text>
|
|
169
|
+
<text xml:space="preserve" text-anchor="middle" x="453.14" y="-11.32" font-family="Arial" font-size="8.00">copy-paste</text>
|
|
170
|
+
</g>
|
|
171
|
+
<!-- Scripts->Driver -->
|
|
172
|
+
<g id="edge11" class="edge">
|
|
173
|
+
<title>Scripts->Driver</title>
|
|
174
|
+
<path fill="none" stroke="black" d="M599.01,-45.11C625.17,-51.5 658.97,-59.75 687.42,-66.7"/>
|
|
175
|
+
<polygon fill="black" stroke="black" points="686.42,-70.06 696.97,-69.03 688.09,-63.26 686.42,-70.06"/>
|
|
176
|
+
<text xml:space="preserve" text-anchor="middle" x="651.39" y="-65.29" font-family="Arial" font-size="8.00">wrap as driver</text>
|
|
177
|
+
</g>
|
|
178
|
+
</g>
|
|
179
|
+
</svg>
|