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,90 @@
|
|
|
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 Driver Framework Pages: 1 -->
|
|
7
|
+
<svg width="682pt" height="98pt"
|
|
8
|
+
viewBox="0.00 0.00 682.00 98.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 94)">
|
|
10
|
+
<title>PWN Driver Framework</title>
|
|
11
|
+
<polygon fill="white" stroke="none" points="-4,4 -4,-94 678,-94 678,4 -4,4"/>
|
|
12
|
+
<!-- Parser -->
|
|
13
|
+
<g id="node1" class="node">
|
|
14
|
+
<title>Parser</title>
|
|
15
|
+
<path fill="none" stroke="black" d="M114.25,-63C114.25,-63 12,-63 12,-63 6,-63 0,-57 0,-51 0,-51 0,-39 0,-39 0,-33 6,-27 12,-27 12,-27 114.25,-27 114.25,-27 120.25,-27 126.25,-33 126.25,-39 126.25,-39 126.25,-51 126.25,-51 126.25,-57 120.25,-63 114.25,-63"/>
|
|
16
|
+
<text xml:space="preserve" text-anchor="middle" x="63.12" y="-46.95" font-family="Arial" font-size="9.00">PWN::Driver::Parser</text>
|
|
17
|
+
<text xml:space="preserve" text-anchor="middle" x="63.12" y="-36.45" font-family="Arial" font-size="9.00">(OptionParser + auto_opts)</text>
|
|
18
|
+
</g>
|
|
19
|
+
<!-- Script -->
|
|
20
|
+
<g id="node2" class="node">
|
|
21
|
+
<title>Script</title>
|
|
22
|
+
<path fill="none" stroke="black" d="M255.5,-63C255.5,-63 174.25,-63 174.25,-63 168.25,-63 162.25,-57 162.25,-51 162.25,-51 162.25,-39 162.25,-39 162.25,-33 168.25,-27 174.25,-27 174.25,-27 255.5,-27 255.5,-27 261.5,-27 267.5,-33 267.5,-39 267.5,-39 267.5,-51 267.5,-51 267.5,-57 261.5,-63 255.5,-63"/>
|
|
23
|
+
<text xml:space="preserve" text-anchor="middle" x="214.88" y="-46.95" font-family="Arial" font-size="9.00">Driver Script</text>
|
|
24
|
+
<text xml:space="preserve" text-anchor="middle" x="214.88" y="-36.45" font-family="Arial" font-size="9.00">(bin/pwn_* or custom)</text>
|
|
25
|
+
</g>
|
|
26
|
+
<!-- Parser->Script -->
|
|
27
|
+
<g id="edge2" class="edge">
|
|
28
|
+
<title>Parser->Script</title>
|
|
29
|
+
<path fill="none" stroke="black" d="M126.33,-38.34C134.42,-38.23 142.7,-38.22 150.8,-38.33"/>
|
|
30
|
+
<polygon fill="black" stroke="black" points="150.5,-41.82 160.57,-38.51 150.64,-34.82 150.5,-41.82"/>
|
|
31
|
+
</g>
|
|
32
|
+
<!-- Script->Parser -->
|
|
33
|
+
<g id="edge1" class="edge">
|
|
34
|
+
<title>Script->Parser</title>
|
|
35
|
+
<path fill="none" stroke="black" d="M162.08,-51.46C154.16,-51.66 145.85,-51.76 137.57,-51.75"/>
|
|
36
|
+
<polygon fill="black" stroke="black" points="137.87,-48.25 127.85,-51.67 137.82,-55.25 137.87,-48.25"/>
|
|
37
|
+
</g>
|
|
38
|
+
<!-- PWNLoad -->
|
|
39
|
+
<g id="node3" class="node">
|
|
40
|
+
<title>PWNLoad</title>
|
|
41
|
+
<path fill="none" stroke="black" d="M392.62,-90C392.62,-90 335.38,-90 335.38,-90 329.38,-90 323.38,-84 323.38,-78 323.38,-78 323.38,-66 323.38,-66 323.38,-60 329.38,-54 335.38,-54 335.38,-54 392.62,-54 392.62,-54 398.62,-54 404.62,-60 404.62,-66 404.62,-66 404.62,-78 404.62,-78 404.62,-84 398.62,-90 392.62,-90"/>
|
|
42
|
+
<text xml:space="preserve" text-anchor="middle" x="364" y="-73.95" font-family="Arial" font-size="9.00">require 'pwn'</text>
|
|
43
|
+
<text xml:space="preserve" text-anchor="middle" x="364" y="-63.45" font-family="Arial" font-size="9.00">Full namespace</text>
|
|
44
|
+
</g>
|
|
45
|
+
<!-- Script->PWNLoad -->
|
|
46
|
+
<g id="edge3" class="edge">
|
|
47
|
+
<title>Script->PWNLoad</title>
|
|
48
|
+
<path fill="none" stroke="black" d="M267.75,-54.52C282.11,-57.15 297.68,-60.01 311.99,-62.64"/>
|
|
49
|
+
<polygon fill="black" stroke="black" points="311.2,-66.05 321.66,-64.41 312.46,-59.17 311.2,-66.05"/>
|
|
50
|
+
</g>
|
|
51
|
+
<!-- standalone | cron | pwn-ai -->
|
|
52
|
+
<g id="node6" class="node">
|
|
53
|
+
<title>standalone | cron | pwn-ai</title>
|
|
54
|
+
<path fill="none" stroke="black" d="M412.5,-36C412.5,-36 315.5,-36 315.5,-36 309.5,-36 303.5,-30 303.5,-24 303.5,-24 303.5,-12 303.5,-12 303.5,-6 309.5,0 315.5,0 315.5,0 412.5,0 412.5,0 418.5,0 424.5,-6 424.5,-12 424.5,-12 424.5,-24 424.5,-24 424.5,-30 418.5,-36 412.5,-36"/>
|
|
55
|
+
<text xml:space="preserve" text-anchor="middle" x="364" y="-14.7" font-family="Arial" font-size="9.00">standalone | cron | pwn-ai</text>
|
|
56
|
+
</g>
|
|
57
|
+
<!-- Script->standalone | cron | pwn-ai -->
|
|
58
|
+
<g id="edge6" class="edge">
|
|
59
|
+
<title>Script->standalone | cron | pwn-ai</title>
|
|
60
|
+
<path fill="none" stroke="black" d="M267.75,-35.48C275.59,-34.04 283.81,-32.53 291.97,-31.03"/>
|
|
61
|
+
<polygon fill="black" stroke="black" points="292.36,-34.52 301.56,-29.27 291.09,-27.64 292.36,-34.52"/>
|
|
62
|
+
</g>
|
|
63
|
+
<!-- Orchestrate -->
|
|
64
|
+
<g id="node4" class="node">
|
|
65
|
+
<title>Orchestrate</title>
|
|
66
|
+
<path fill="none" stroke="black" d="M550.75,-90C550.75,-90 472.5,-90 472.5,-90 466.5,-90 460.5,-84 460.5,-78 460.5,-78 460.5,-66 460.5,-66 460.5,-60 466.5,-54 472.5,-54 472.5,-54 550.75,-54 550.75,-54 556.75,-54 562.75,-60 562.75,-66 562.75,-66 562.75,-78 562.75,-78 562.75,-84 556.75,-90 550.75,-90"/>
|
|
67
|
+
<text xml:space="preserve" text-anchor="middle" x="511.62" y="-73.95" font-family="Arial" font-size="9.00">Orchestration Logic</text>
|
|
68
|
+
<text xml:space="preserve" text-anchor="middle" x="511.62" y="-63.45" font-family="Arial" font-size="9.00">(plugins + AI + loops)</text>
|
|
69
|
+
</g>
|
|
70
|
+
<!-- PWNLoad->Orchestrate -->
|
|
71
|
+
<g id="edge4" class="edge">
|
|
72
|
+
<title>PWNLoad->Orchestrate</title>
|
|
73
|
+
<path fill="none" stroke="black" d="M404.79,-72C418.42,-72 433.99,-72 448.93,-72"/>
|
|
74
|
+
<polygon fill="black" stroke="black" points="448.68,-75.5 458.68,-72 448.68,-68.5 448.68,-75.5"/>
|
|
75
|
+
</g>
|
|
76
|
+
<!-- Outputs -->
|
|
77
|
+
<g id="node5" class="node">
|
|
78
|
+
<title>Outputs</title>
|
|
79
|
+
<path fill="none" stroke="black" d="M662,-90C662,-90 610.75,-90 610.75,-90 604.75,-90 598.75,-84 598.75,-78 598.75,-78 598.75,-66 598.75,-66 598.75,-60 604.75,-54 610.75,-54 610.75,-54 662,-54 662,-54 668,-54 674,-60 674,-66 674,-66 674,-78 674,-78 674,-84 668,-90 662,-90"/>
|
|
80
|
+
<text xml:space="preserve" text-anchor="middle" x="636.38" y="-73.95" font-family="Arial" font-size="9.00">Reports, Logs,</text>
|
|
81
|
+
<text xml:space="preserve" text-anchor="middle" x="636.38" y="-63.45" font-family="Arial" font-size="9.00">Findings</text>
|
|
82
|
+
</g>
|
|
83
|
+
<!-- Orchestrate->Outputs -->
|
|
84
|
+
<g id="edge5" class="edge">
|
|
85
|
+
<title>Orchestrate->Outputs</title>
|
|
86
|
+
<path fill="none" stroke="black" d="M562.91,-72C570.91,-72 579.18,-72 587.14,-72"/>
|
|
87
|
+
<polygon fill="black" stroke="black" points="587,-75.5 597,-72 587,-68.5 587,-75.5"/>
|
|
88
|
+
</g>
|
|
89
|
+
</g>
|
|
90
|
+
</svg>
|
|
@@ -0,0 +1,147 @@
|
|
|
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 Fuzzing Workflows Pages: 1 -->
|
|
7
|
+
<svg width="740pt" height="247pt"
|
|
8
|
+
viewBox="0.00 0.00 740.00 247.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 243)">
|
|
10
|
+
<title>PWN Fuzzing Workflows</title>
|
|
11
|
+
<polygon fill="white" stroke="none" points="-4,4 -4,-243 736.32,-243 736.32,4 -4,4"/>
|
|
12
|
+
<!-- Input -->
|
|
13
|
+
<g id="node1" class="node">
|
|
14
|
+
<title>Input</title>
|
|
15
|
+
<path fill="none" stroke="black" d="M76,-36C76,-36 12,-36 12,-36 6,-36 0,-30 0,-24 0,-24 0,-12 0,-12 0,-6 6,0 12,0 12,0 76,0 76,0 82,0 88,-6 88,-12 88,-12 88,-24 88,-24 88,-30 82,-36 76,-36"/>
|
|
16
|
+
<text xml:space="preserve" text-anchor="middle" x="44" y="-19.95" font-family="Arial" font-size="9.00">Input Corpus</text>
|
|
17
|
+
<text xml:space="preserve" text-anchor="middle" x="44" y="-9.45" font-family="Arial" font-size="9.00">(Seeds, Mutators)</text>
|
|
18
|
+
</g>
|
|
19
|
+
<!-- PWNfuzz -->
|
|
20
|
+
<g id="node6" class="node">
|
|
21
|
+
<title>PWNfuzz</title>
|
|
22
|
+
<ellipse fill="none" stroke="black" cx="181.1" cy="-113" rx="56.1" ry="18"/>
|
|
23
|
+
<text xml:space="preserve" text-anchor="middle" x="181.1" y="-109.7" font-family="Arial" font-size="9.00">PWN::Plugins::Fuzz</text>
|
|
24
|
+
</g>
|
|
25
|
+
<!-- Input->PWNfuzz -->
|
|
26
|
+
<g id="edge1" class="edge">
|
|
27
|
+
<title>Input->PWNfuzz</title>
|
|
28
|
+
<path fill="none" stroke="black" d="M71.05,-36.32C92.88,-51.67 124.16,-73.67 147.63,-90.17"/>
|
|
29
|
+
<polygon fill="black" stroke="black" points="145.4,-92.88 155.6,-95.77 149.43,-87.16 145.4,-92.88"/>
|
|
30
|
+
</g>
|
|
31
|
+
<!-- FuzzProto -->
|
|
32
|
+
<g id="node2" class="node">
|
|
33
|
+
<title>FuzzProto</title>
|
|
34
|
+
<path fill="none" stroke="black" d="M388.45,-239C388.45,-239 286.2,-239 286.2,-239 280.2,-239 274.2,-233 274.2,-227 274.2,-227 274.2,-215 274.2,-215 274.2,-209 280.2,-203 286.2,-203 286.2,-203 388.45,-203 388.45,-203 394.45,-203 400.45,-209 400.45,-215 400.45,-215 400.45,-227 400.45,-227 400.45,-233 394.45,-239 388.45,-239"/>
|
|
35
|
+
<text xml:space="preserve" text-anchor="middle" x="337.32" y="-222.95" font-family="Arial" font-size="9.00">Protocol Fuzz</text>
|
|
36
|
+
<text xml:space="preserve" text-anchor="middle" x="337.32" y="-212.45" font-family="Arial" font-size="9.00">(pwn_fuzz_net_app_proto)</text>
|
|
37
|
+
</g>
|
|
38
|
+
<!-- Monitor -->
|
|
39
|
+
<g id="node7" class="node">
|
|
40
|
+
<title>Monitor</title>
|
|
41
|
+
<path fill="none" stroke="black" d="M547.2,-131C547.2,-131 449.45,-131 449.45,-131 443.45,-131 437.45,-125 437.45,-119 437.45,-119 437.45,-107 437.45,-107 437.45,-101 443.45,-95 449.45,-95 449.45,-95 547.2,-95 547.2,-95 553.2,-95 559.2,-101 559.2,-107 559.2,-107 559.2,-119 559.2,-119 559.2,-125 553.2,-131 547.2,-131"/>
|
|
42
|
+
<text xml:space="preserve" text-anchor="middle" x="498.32" y="-114.95" font-family="Arial" font-size="9.00">Monitor Crashes</text>
|
|
43
|
+
<text xml:space="preserve" text-anchor="middle" x="498.32" y="-104.45" font-family="Arial" font-size="9.00">(PS, logging, core dumps)</text>
|
|
44
|
+
</g>
|
|
45
|
+
<!-- FuzzProto->Monitor -->
|
|
46
|
+
<g id="edge6" class="edge">
|
|
47
|
+
<title>FuzzProto->Monitor</title>
|
|
48
|
+
<path fill="none" stroke="black" d="M384.87,-202.53C390.24,-199.89 395.55,-197.03 400.45,-194 426.05,-178.19 452.05,-156.05 470.66,-138.91"/>
|
|
49
|
+
<polygon fill="black" stroke="black" points="472.9,-141.61 477.81,-132.22 468.11,-136.5 472.9,-141.61"/>
|
|
50
|
+
</g>
|
|
51
|
+
<!-- FuzzFile -->
|
|
52
|
+
<g id="node3" class="node">
|
|
53
|
+
<title>FuzzFile</title>
|
|
54
|
+
<path fill="none" stroke="black" d="M369.32,-185C369.32,-185 305.32,-185 305.32,-185 299.32,-185 293.32,-179 293.32,-173 293.32,-173 293.32,-161 293.32,-161 293.32,-155 299.32,-149 305.32,-149 305.32,-149 369.32,-149 369.32,-149 375.32,-149 381.32,-155 381.32,-161 381.32,-161 381.32,-173 381.32,-173 381.32,-179 375.32,-185 369.32,-185"/>
|
|
55
|
+
<text xml:space="preserve" text-anchor="middle" x="337.32" y="-163.7" font-family="Arial" font-size="9.00">File / Format Fuzz</text>
|
|
56
|
+
</g>
|
|
57
|
+
<!-- FuzzFile->Monitor -->
|
|
58
|
+
<g id="edge7" class="edge">
|
|
59
|
+
<title>FuzzFile->Monitor</title>
|
|
60
|
+
<path fill="none" stroke="black" d="M381.77,-152.24C397.46,-146.92 415.52,-140.78 432.63,-134.97"/>
|
|
61
|
+
<polygon fill="black" stroke="black" points="433.36,-138.42 441.7,-131.89 431.1,-131.79 433.36,-138.42"/>
|
|
62
|
+
</g>
|
|
63
|
+
<!-- FuzzNet -->
|
|
64
|
+
<g id="node4" class="node">
|
|
65
|
+
<title>FuzzNet</title>
|
|
66
|
+
<path fill="none" stroke="black" d="M377.57,-131C377.57,-131 297.07,-131 297.07,-131 291.07,-131 285.07,-125 285.07,-119 285.07,-119 285.07,-107 285.07,-107 285.07,-101 291.07,-95 297.07,-95 297.07,-95 377.57,-95 377.57,-95 383.57,-95 389.57,-101 389.57,-107 389.57,-107 389.57,-119 389.57,-119 389.57,-125 383.57,-131 377.57,-131"/>
|
|
67
|
+
<text xml:space="preserve" text-anchor="middle" x="337.32" y="-109.7" font-family="Arial" font-size="9.00">Network Service Fuzz</text>
|
|
68
|
+
</g>
|
|
69
|
+
<!-- FuzzNet->Monitor -->
|
|
70
|
+
<g id="edge8" class="edge">
|
|
71
|
+
<title>FuzzNet->Monitor</title>
|
|
72
|
+
<path fill="none" stroke="black" d="M389.95,-113C401.35,-113 413.64,-113 425.68,-113"/>
|
|
73
|
+
<polygon fill="black" stroke="black" points="425.6,-116.5 435.6,-113 425.6,-109.5 425.6,-116.5"/>
|
|
74
|
+
</g>
|
|
75
|
+
<!-- FuzzWeb -->
|
|
76
|
+
<g id="node5" class="node">
|
|
77
|
+
<title>FuzzWeb</title>
|
|
78
|
+
<path fill="none" stroke="black" d="M370.45,-77C370.45,-77 304.2,-77 304.2,-77 298.2,-77 292.2,-71 292.2,-65 292.2,-65 292.2,-53 292.2,-53 292.2,-47 298.2,-41 304.2,-41 304.2,-41 370.45,-41 370.45,-41 376.45,-41 382.45,-47 382.45,-53 382.45,-53 382.45,-65 382.45,-65 382.45,-71 376.45,-77 370.45,-77"/>
|
|
79
|
+
<text xml:space="preserve" text-anchor="middle" x="337.32" y="-60.95" font-family="Arial" font-size="9.00">Web App Fuzz</text>
|
|
80
|
+
<text xml:space="preserve" text-anchor="middle" x="337.32" y="-50.45" font-family="Arial" font-size="9.00">(XSS vectors, etc.)</text>
|
|
81
|
+
</g>
|
|
82
|
+
<!-- FuzzWeb->Monitor -->
|
|
83
|
+
<g id="edge9" class="edge">
|
|
84
|
+
<title>FuzzWeb->Monitor</title>
|
|
85
|
+
<path fill="none" stroke="black" d="M382.61,-74.04C397.99,-79.26 415.57,-85.23 432.27,-90.91"/>
|
|
86
|
+
<polygon fill="black" stroke="black" points="431.06,-94.19 441.65,-94.09 433.31,-87.56 431.06,-94.19"/>
|
|
87
|
+
</g>
|
|
88
|
+
<!-- PWNfuzz->FuzzProto -->
|
|
89
|
+
<g id="edge2" class="edge">
|
|
90
|
+
<title>PWNfuzz->FuzzProto</title>
|
|
91
|
+
<path fill="none" stroke="black" d="M198.45,-130.26C215.93,-147.99 245.08,-175.51 274.2,-194 276.02,-195.16 277.91,-196.29 279.83,-197.39"/>
|
|
92
|
+
<polygon fill="black" stroke="black" points="277.89,-200.32 288.36,-201.94 281.18,-194.15 277.89,-200.32"/>
|
|
93
|
+
</g>
|
|
94
|
+
<!-- PWNfuzz->FuzzFile -->
|
|
95
|
+
<g id="edge3" class="edge">
|
|
96
|
+
<title>PWNfuzz->FuzzFile</title>
|
|
97
|
+
<path fill="none" stroke="black" d="M220.22,-126.35C238.9,-132.89 261.71,-140.88 282.16,-148.04"/>
|
|
98
|
+
<polygon fill="black" stroke="black" points="280.9,-151.3 291.49,-151.3 283.21,-144.69 280.9,-151.3"/>
|
|
99
|
+
</g>
|
|
100
|
+
<!-- PWNfuzz->FuzzNet -->
|
|
101
|
+
<g id="edge4" class="edge">
|
|
102
|
+
<title>PWNfuzz->FuzzNet</title>
|
|
103
|
+
<path fill="none" stroke="black" d="M237.34,-113C249.07,-113 261.53,-113 273.51,-113"/>
|
|
104
|
+
<polygon fill="black" stroke="black" points="273.3,-116.5 283.3,-113 273.3,-109.5 273.3,-116.5"/>
|
|
105
|
+
</g>
|
|
106
|
+
<!-- PWNfuzz->FuzzWeb -->
|
|
107
|
+
<g id="edge5" class="edge">
|
|
108
|
+
<title>PWNfuzz->FuzzWeb</title>
|
|
109
|
+
<path fill="none" stroke="black" d="M220.22,-99.65C238.6,-93.22 260.98,-85.38 281.17,-78.31"/>
|
|
110
|
+
<polygon fill="black" stroke="black" points="282.09,-81.7 290.38,-75.09 279.78,-75.09 282.09,-81.7"/>
|
|
111
|
+
</g>
|
|
112
|
+
<!-- Corpus -->
|
|
113
|
+
<g id="node8" class="node">
|
|
114
|
+
<title>Corpus</title>
|
|
115
|
+
<path fill="none" stroke="black" d="M707.88,-129.31C707.88,-131.31 688.33,-132.94 664.26,-132.94 640.19,-132.94 620.63,-131.31 620.63,-129.31 620.63,-129.31 620.63,-96.69 620.63,-96.69 620.63,-94.69 640.19,-93.06 664.26,-93.06 688.33,-93.06 707.88,-94.69 707.88,-96.69 707.88,-96.69 707.88,-129.31 707.88,-129.31"/>
|
|
116
|
+
<path fill="none" stroke="black" d="M707.88,-129.31C707.88,-127.31 688.33,-125.69 664.26,-125.69 640.19,-125.69 620.63,-127.31 620.63,-129.31"/>
|
|
117
|
+
<text xml:space="preserve" text-anchor="middle" x="664.26" y="-114.95" font-family="Arial" font-size="9.00">Interesting Inputs</text>
|
|
118
|
+
<text xml:space="preserve" text-anchor="middle" x="664.26" y="-104.45" font-family="Arial" font-size="9.00">(saved for replay)</text>
|
|
119
|
+
</g>
|
|
120
|
+
<!-- Monitor->Corpus -->
|
|
121
|
+
<g id="edge10" class="edge">
|
|
122
|
+
<title>Monitor->Corpus</title>
|
|
123
|
+
<path fill="none" stroke="black" d="M559.44,-113C575.69,-113 593.17,-113 609.08,-113"/>
|
|
124
|
+
<polygon fill="black" stroke="black" points="608.82,-116.5 618.82,-113 608.82,-109.5 608.82,-116.5"/>
|
|
125
|
+
</g>
|
|
126
|
+
<!-- Crash -->
|
|
127
|
+
<g id="node9" class="node">
|
|
128
|
+
<title>Crash</title>
|
|
129
|
+
<ellipse fill="none" stroke="black" cx="664.26" cy="-31" rx="68.06" ry="20.51"/>
|
|
130
|
+
<text xml:space="preserve" text-anchor="middle" x="664.26" y="-32.95" font-family="Arial" font-size="9.00">Crash Analysis</text>
|
|
131
|
+
<text xml:space="preserve" text-anchor="middle" x="664.26" y="-22.45" font-family="Arial" font-size="9.00">(identify root cause)</text>
|
|
132
|
+
</g>
|
|
133
|
+
<!-- Monitor->Crash -->
|
|
134
|
+
<g id="edge11" class="edge">
|
|
135
|
+
<title>Monitor->Crash</title>
|
|
136
|
+
<path fill="none" stroke="black" d="M536.11,-94.6C560.26,-82.52 592.01,-66.64 617.74,-53.77"/>
|
|
137
|
+
<polygon fill="black" stroke="black" points="619.26,-56.92 626.64,-49.31 616.13,-50.66 619.26,-56.92"/>
|
|
138
|
+
</g>
|
|
139
|
+
<!-- Crash->Input -->
|
|
140
|
+
<g id="edge12" class="edge">
|
|
141
|
+
<title>Crash->Input</title>
|
|
142
|
+
<path fill="none" stroke="black" d="M609.3,-18.57C577.48,-12.3 536.32,-6 499.32,-6 180.1,-6 180.1,-6 180.1,-6 153.57,-6 124.23,-8.32 99.69,-10.93"/>
|
|
143
|
+
<polygon fill="black" stroke="black" points="99.47,-7.43 89.92,-12.01 100.24,-14.39 99.47,-7.43"/>
|
|
144
|
+
<text xml:space="preserve" text-anchor="middle" x="337.32" y="-9.2" font-family="Times,serif" font-size="14.00">refine mutators</text>
|
|
145
|
+
</g>
|
|
146
|
+
</g>
|
|
147
|
+
</svg>
|
|
@@ -0,0 +1,117 @@
|
|
|
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: History Command to Driver Generation Pages: 1 -->
|
|
7
|
+
<svg width="369pt" height="455pt"
|
|
8
|
+
viewBox="0.00 0.00 369.00 455.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 451.25)">
|
|
10
|
+
<title>History Command to Driver Generation</title>
|
|
11
|
+
<polygon fill="white" stroke="none" points="-4,4 -4,-451.25 364.98,-451.25 364.98,4 -4,4"/>
|
|
12
|
+
<!-- User -->
|
|
13
|
+
<g id="node1" class="node">
|
|
14
|
+
<title>User</title>
|
|
15
|
+
<path fill="none" stroke="black" d="M125.88,-447.25C125.88,-447.25 78.38,-447.25 78.38,-447.25 72.38,-447.25 66.38,-441.25 66.38,-435.25 66.38,-435.25 66.38,-423.25 66.38,-423.25 66.38,-417.25 72.38,-411.25 78.38,-411.25 78.38,-411.25 125.88,-411.25 125.88,-411.25 131.88,-411.25 137.88,-417.25 137.88,-423.25 137.88,-423.25 137.88,-435.25 137.88,-435.25 137.88,-441.25 131.88,-447.25 125.88,-447.25"/>
|
|
16
|
+
<text xml:space="preserve" text-anchor="middle" x="102.12" y="-425.95" font-family="Arial" font-size="9.00">User in REPL</text>
|
|
17
|
+
</g>
|
|
18
|
+
<!-- Pry -->
|
|
19
|
+
<g id="node2" class="node">
|
|
20
|
+
<title>Pry</title>
|
|
21
|
+
<path fill="none" stroke="black" d="M136.38,-358.75C136.38,-358.75 67.88,-358.75 67.88,-358.75 61.88,-358.75 55.88,-352.75 55.88,-346.75 55.88,-346.75 55.88,-334.75 55.88,-334.75 55.88,-328.75 61.88,-322.75 67.88,-322.75 67.88,-322.75 136.38,-322.75 136.38,-322.75 142.38,-322.75 148.38,-328.75 148.38,-334.75 148.38,-334.75 148.38,-346.75 148.38,-346.75 148.38,-352.75 142.38,-358.75 136.38,-358.75"/>
|
|
22
|
+
<text xml:space="preserve" text-anchor="middle" x="102.12" y="-342.7" font-family="Arial" font-size="9.00">PWN REPL</text>
|
|
23
|
+
<text xml:space="preserve" text-anchor="middle" x="102.12" y="-332.2" font-family="Arial" font-size="9.00">(history, edit, save)</text>
|
|
24
|
+
</g>
|
|
25
|
+
<!-- User->Pry -->
|
|
26
|
+
<g id="edge1" class="edge">
|
|
27
|
+
<title>User->Pry</title>
|
|
28
|
+
<path fill="none" stroke="black" d="M102.12,-411.16C102.12,-399.51 102.12,-383.8 102.12,-370.27"/>
|
|
29
|
+
<polygon fill="black" stroke="black" points="105.63,-370.61 102.13,-360.61 98.63,-370.61 105.63,-370.61"/>
|
|
30
|
+
<text xml:space="preserve" text-anchor="middle" x="160.25" y="-379.95" font-family="Times,serif" font-size="14.00">run exploration cmds</text>
|
|
31
|
+
</g>
|
|
32
|
+
<!-- HistoryFile -->
|
|
33
|
+
<g id="node3" class="node">
|
|
34
|
+
<title>HistoryFile</title>
|
|
35
|
+
<path fill="none" stroke="black" d="M84.25,-250.12C84.25,-252.13 65.37,-253.75 42.12,-253.75 18.88,-253.75 0,-252.13 0,-250.12 0,-250.12 0,-217.5 0,-217.5 0,-215.5 18.88,-213.88 42.12,-213.88 65.37,-213.88 84.25,-215.5 84.25,-217.5 84.25,-217.5 84.25,-250.12 84.25,-250.12"/>
|
|
36
|
+
<path fill="none" stroke="black" d="M84.25,-250.12C84.25,-248.12 65.37,-246.5 42.12,-246.5 18.88,-246.5 0,-248.12 0,-250.12"/>
|
|
37
|
+
<text xml:space="preserve" text-anchor="middle" x="42.12" y="-235.76" font-family="Arial" font-size="9.00">~/.pry_history</text>
|
|
38
|
+
<text xml:space="preserve" text-anchor="middle" x="42.12" y="-225.26" font-family="Arial" font-size="9.00">(raw commands)</text>
|
|
39
|
+
</g>
|
|
40
|
+
<!-- Pry->HistoryFile -->
|
|
41
|
+
<g id="edge2" class="edge">
|
|
42
|
+
<title>Pry->HistoryFile</title>
|
|
43
|
+
<path fill="none" stroke="black" d="M60.46,-322.35C53.65,-317.64 47.49,-311.84 43.38,-304.75 36.56,-293.01 35.46,-278.19 36.38,-265.21"/>
|
|
44
|
+
<polygon fill="black" stroke="black" points="39.84,-265.8 37.52,-255.46 32.88,-264.99 39.84,-265.8"/>
|
|
45
|
+
<text xml:space="preserve" text-anchor="middle" x="91.75" y="-283.2" font-family="Times,serif" font-size="14.00">appends each line</text>
|
|
46
|
+
</g>
|
|
47
|
+
<!-- Script -->
|
|
48
|
+
<g id="node4" class="node">
|
|
49
|
+
<title>Script</title>
|
|
50
|
+
<path fill="none" stroke="black" d="M190.38,-251.81C190.38,-251.81 133.88,-251.81 133.88,-251.81 127.88,-251.81 121.88,-245.81 121.88,-239.81 121.88,-239.81 121.88,-227.81 121.88,-227.81 121.88,-221.81 127.88,-215.81 133.88,-215.81 133.88,-215.81 190.38,-215.81 190.38,-215.81 196.38,-215.81 202.38,-221.81 202.38,-227.81 202.38,-227.81 202.38,-239.81 202.38,-239.81 202.38,-245.81 196.38,-251.81 190.38,-251.81"/>
|
|
51
|
+
<text xml:space="preserve" text-anchor="middle" x="162.12" y="-235.76" font-family="Arial" font-size="9.00">Prototype Script</text>
|
|
52
|
+
<text xml:space="preserve" text-anchor="middle" x="162.12" y="-225.26" font-family="Arial" font-size="9.00">(.rb or bin/)</text>
|
|
53
|
+
</g>
|
|
54
|
+
<!-- Pry->Script -->
|
|
55
|
+
<g id="edge3" class="edge">
|
|
56
|
+
<title>Pry->Script</title>
|
|
57
|
+
<path fill="none" stroke="black" d="M124.67,-322.56C130.35,-317.35 135.99,-311.26 140.12,-304.75 148.09,-292.2 153.37,-276.54 156.75,-263.23"/>
|
|
58
|
+
<polygon fill="black" stroke="black" points="160.1,-264.27 158.92,-253.74 153.28,-262.71 160.1,-264.27"/>
|
|
59
|
+
<text xml:space="preserve" text-anchor="middle" x="232.35" y="-291.45" font-family="Times,serif" font-size="14.00">history | grep > my_proto.rb</text>
|
|
60
|
+
<text xml:space="preserve" text-anchor="middle" x="232.35" y="-274.95" font-family="Times,serif" font-size="14.00">or edit -n</text>
|
|
61
|
+
</g>
|
|
62
|
+
<!-- Driver -->
|
|
63
|
+
<g id="node5" class="node">
|
|
64
|
+
<title>Driver</title>
|
|
65
|
+
<path fill="none" stroke="black" d="M138.75,-144.69C138.75,-144.69 51.5,-144.69 51.5,-144.69 45.5,-144.69 39.5,-138.69 39.5,-132.69 39.5,-132.69 39.5,-117.19 39.5,-117.19 39.5,-111.19 45.5,-105.19 51.5,-105.19 51.5,-105.19 138.75,-105.19 138.75,-105.19 144.75,-105.19 150.75,-111.19 150.75,-117.19 150.75,-117.19 150.75,-132.69 150.75,-132.69 150.75,-138.69 144.75,-144.69 138.75,-144.69"/>
|
|
66
|
+
<text xml:space="preserve" text-anchor="middle" x="95.12" y="-132.14" font-family="Arial" font-size="9.00">PWN Driver</text>
|
|
67
|
+
<text xml:space="preserve" text-anchor="middle" x="95.12" y="-121.64" font-family="Arial" font-size="9.00">(/opt/pwn/bin/ example</text>
|
|
68
|
+
<text xml:space="preserve" text-anchor="middle" x="95.12" y="-111.14" font-family="Arial" font-size="9.00">or PWN::Driver::Parser)</text>
|
|
69
|
+
</g>
|
|
70
|
+
<!-- Script->Driver -->
|
|
71
|
+
<g id="edge4" class="edge">
|
|
72
|
+
<title>Script->Driver</title>
|
|
73
|
+
<path fill="none" stroke="black" d="M121.49,-221.49C109,-215.89 96.64,-207.71 89.38,-195.88 82.18,-184.15 82.45,-169.16 85,-156.07"/>
|
|
74
|
+
<polygon fill="black" stroke="black" points="88.33,-157.2 87.33,-146.65 81.53,-155.52 88.33,-157.2"/>
|
|
75
|
+
<text xml:space="preserve" text-anchor="middle" x="151.25" y="-182.57" font-family="Times,serif" font-size="14.00">wrap in PWN::Driver</text>
|
|
76
|
+
<text xml:space="preserve" text-anchor="middle" x="151.25" y="-166.07" font-family="Times,serif" font-size="14.00">add opts, orchestration</text>
|
|
77
|
+
</g>
|
|
78
|
+
<!-- Skill -->
|
|
79
|
+
<g id="node6" class="node">
|
|
80
|
+
<title>Skill</title>
|
|
81
|
+
<path fill="none" stroke="black" d="M270,-141.25C270,-143.25 253.47,-144.88 233.12,-144.88 212.78,-144.88 196.25,-143.25 196.25,-141.25 196.25,-141.25 196.25,-108.62 196.25,-108.62 196.25,-106.62 212.78,-105 233.12,-105 253.47,-105 270,-106.62 270,-108.62 270,-108.62 270,-141.25 270,-141.25"/>
|
|
82
|
+
<path fill="none" stroke="black" d="M270,-141.25C270,-139.25 253.47,-137.62 233.12,-137.62 212.78,-137.62 196.25,-139.25 196.25,-141.25"/>
|
|
83
|
+
<text xml:space="preserve" text-anchor="middle" x="233.12" y="-126.89" font-family="Arial" font-size="9.00">Distilled Skill</text>
|
|
84
|
+
<text xml:space="preserve" text-anchor="middle" x="233.12" y="-116.39" font-family="Arial" font-size="9.00">(~/.pwn/skills/)</text>
|
|
85
|
+
</g>
|
|
86
|
+
<!-- Script->Skill -->
|
|
87
|
+
<g id="edge5" class="edge">
|
|
88
|
+
<title>Script->Skill</title>
|
|
89
|
+
<path fill="none" stroke="black" d="M193.12,-215.38C200.55,-209.96 207.85,-203.4 213.12,-195.88 221.23,-184.31 226.07,-169.52 228.95,-156.51"/>
|
|
90
|
+
<polygon fill="black" stroke="black" points="232.38,-157.18 230.8,-146.7 225.51,-155.88 232.38,-157.18"/>
|
|
91
|
+
<text xml:space="preserve" text-anchor="middle" x="293.99" y="-182.57" font-family="Times,serif" font-size="14.00">manually or via</text>
|
|
92
|
+
<text xml:space="preserve" text-anchor="middle" x="293.99" y="-166.07" font-family="Times,serif" font-size="14.00">distill_skill after success</text>
|
|
93
|
+
</g>
|
|
94
|
+
<!-- Agent -->
|
|
95
|
+
<g id="node7" class="node">
|
|
96
|
+
<title>Agent</title>
|
|
97
|
+
<path fill="none" stroke="black" d="M202.75,-36C202.75,-36 133.5,-36 133.5,-36 127.5,-36 121.5,-30 121.5,-24 121.5,-24 121.5,-12 121.5,-12 121.5,-6 127.5,0 133.5,0 133.5,0 202.75,0 202.75,0 208.75,0 214.75,-6 214.75,-12 214.75,-12 214.75,-24 214.75,-24 214.75,-30 208.75,-36 202.75,-36"/>
|
|
98
|
+
<text xml:space="preserve" text-anchor="middle" x="168.12" y="-19.95" font-family="Arial" font-size="9.00">pwn-ai Agent</text>
|
|
99
|
+
<text xml:space="preserve" text-anchor="middle" x="168.12" y="-9.45" font-family="Arial" font-size="9.00">(future automation)</text>
|
|
100
|
+
</g>
|
|
101
|
+
<!-- Driver->Agent -->
|
|
102
|
+
<g id="edge6" class="edge">
|
|
103
|
+
<title>Driver->Agent</title>
|
|
104
|
+
<path fill="none" stroke="black" d="M95.29,-104.78C96.3,-89.72 99.76,-68.86 110.38,-54 113.17,-50.08 116.56,-46.52 120.27,-43.3"/>
|
|
105
|
+
<polygon fill="black" stroke="black" points="122.33,-46.14 128.2,-37.32 118.11,-40.55 122.33,-46.14"/>
|
|
106
|
+
<text xml:space="preserve" text-anchor="middle" x="157.25" y="-73.7" font-family="Times,serif" font-size="14.00">invoked by agent</text>
|
|
107
|
+
<text xml:space="preserve" text-anchor="middle" x="157.25" y="-57.2" font-family="Times,serif" font-size="14.00">or cron</text>
|
|
108
|
+
</g>
|
|
109
|
+
<!-- Skill->Agent -->
|
|
110
|
+
<g id="edge7" class="edge">
|
|
111
|
+
<title>Skill->Agent</title>
|
|
112
|
+
<path fill="none" stroke="black" d="M229.03,-104.61C225.27,-89.84 218.65,-69.46 208.12,-54 205.81,-50.6 203.08,-47.32 200.16,-44.22"/>
|
|
113
|
+
<polygon fill="black" stroke="black" points="202.85,-41.95 193.22,-37.54 198,-46.99 202.85,-41.95"/>
|
|
114
|
+
<text xml:space="preserve" text-anchor="middle" x="292.35" y="-65.45" font-family="Times,serif" font-size="14.00">loaded in prompt context</text>
|
|
115
|
+
</g>
|
|
116
|
+
</g>
|
|
117
|
+
</svg>
|
|
@@ -0,0 +1,154 @@
|
|
|
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 Memory & Skills Detailed Data Flow Pages: 1 -->
|
|
7
|
+
<svg width="368pt" height="624pt"
|
|
8
|
+
viewBox="0.00 0.00 368.00 624.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 619.81)">
|
|
10
|
+
<title>PWN Memory & Skills Detailed Data Flow</title>
|
|
11
|
+
<polygon fill="white" stroke="none" points="-4,4 -4,-619.81 363.73,-619.81 363.73,4 -4,4"/>
|
|
12
|
+
<!-- Input -->
|
|
13
|
+
<g id="node1" class="node">
|
|
14
|
+
<title>Input</title>
|
|
15
|
+
<path fill="none" stroke="black" d="M245.62,-615.81C245.62,-615.81 180.88,-615.81 180.88,-615.81 174.88,-615.81 168.88,-609.81 168.88,-603.81 168.88,-603.81 168.88,-591.81 168.88,-591.81 168.88,-585.81 174.88,-579.81 180.88,-579.81 180.88,-579.81 245.62,-579.81 245.62,-579.81 251.62,-579.81 257.62,-585.81 257.62,-591.81 257.62,-591.81 257.62,-603.81 257.62,-603.81 257.62,-609.81 251.62,-615.81 245.62,-615.81"/>
|
|
16
|
+
<text xml:space="preserve" text-anchor="middle" x="213.25" y="-599.76" font-family="Arial" font-size="9.00">Successful Task</text>
|
|
17
|
+
<text xml:space="preserve" text-anchor="middle" x="213.25" y="-589.26" font-family="Arial" font-size="9.00">Outcome in Agent</text>
|
|
18
|
+
</g>
|
|
19
|
+
<!-- Learn -->
|
|
20
|
+
<g id="node2" class="node">
|
|
21
|
+
<title>Learn</title>
|
|
22
|
+
<path fill="none" stroke="black" d="M198,-527.31C198,-527.31 102.5,-527.31 102.5,-527.31 96.5,-527.31 90.5,-521.31 90.5,-515.31 90.5,-515.31 90.5,-503.31 90.5,-503.31 90.5,-497.31 96.5,-491.31 102.5,-491.31 102.5,-491.31 198,-491.31 198,-491.31 204,-491.31 210,-497.31 210,-503.31 210,-503.31 210,-515.31 210,-515.31 210,-521.31 204,-527.31 198,-527.31"/>
|
|
23
|
+
<text xml:space="preserve" text-anchor="middle" x="150.25" y="-511.26" font-family="Arial" font-size="9.00">PWN::AI::Agent::Learning</text>
|
|
24
|
+
<text xml:space="preserve" text-anchor="middle" x="150.25" y="-500.76" font-family="Arial" font-size="9.00">note_outcome</text>
|
|
25
|
+
</g>
|
|
26
|
+
<!-- Input->Learn -->
|
|
27
|
+
<g id="edge1" class="edge">
|
|
28
|
+
<title>Input->Learn</title>
|
|
29
|
+
<path fill="none" stroke="black" d="M200.8,-579.72C191.89,-567.48 179.71,-550.76 169.54,-536.8"/>
|
|
30
|
+
<polygon fill="black" stroke="black" points="172.49,-534.91 163.78,-528.89 166.84,-539.03 172.49,-534.91"/>
|
|
31
|
+
</g>
|
|
32
|
+
<!-- MemStore -->
|
|
33
|
+
<g id="node8" class="node">
|
|
34
|
+
<title>MemStore</title>
|
|
35
|
+
<path fill="none" stroke="black" d="M326.12,-524.04C326.12,-525.85 304.22,-527.31 277.25,-527.31 250.28,-527.31 228.38,-525.85 228.38,-524.04 228.38,-524.04 228.38,-494.59 228.38,-494.59 228.38,-492.78 250.28,-491.31 277.25,-491.31 304.22,-491.31 326.12,-492.78 326.12,-494.59 326.12,-494.59 326.12,-524.04 326.12,-524.04"/>
|
|
36
|
+
<path fill="none" stroke="black" d="M326.12,-524.04C326.12,-522.23 304.22,-520.77 277.25,-520.77 250.28,-520.77 228.38,-522.23 228.38,-524.04"/>
|
|
37
|
+
<text xml:space="preserve" text-anchor="middle" x="277.25" y="-506.01" font-family="Arial" font-size="9.00">~/.pwn/memory.json</text>
|
|
38
|
+
</g>
|
|
39
|
+
<!-- Input->MemStore -->
|
|
40
|
+
<g id="edge9" class="edge">
|
|
41
|
+
<title>Input->MemStore</title>
|
|
42
|
+
<path fill="none" stroke="black" d="M225.89,-579.72C234.95,-567.48 247.32,-550.76 257.65,-536.8"/>
|
|
43
|
+
<polygon fill="black" stroke="black" points="260.38,-539 263.51,-528.88 254.75,-534.84 260.38,-539"/>
|
|
44
|
+
<text xml:space="preserve" text-anchor="middle" x="305.36" y="-548.51" font-family="Times,serif" font-size="14.00">remember key facts</text>
|
|
45
|
+
</g>
|
|
46
|
+
<!-- Metrics -->
|
|
47
|
+
<g id="node3" class="node">
|
|
48
|
+
<title>Metrics</title>
|
|
49
|
+
<path fill="none" stroke="black" d="M110.5,-454.31C110.5,-454.31 12,-454.31 12,-454.31 6,-454.31 0,-448.31 0,-442.31 0,-442.31 0,-430.31 0,-430.31 0,-424.31 6,-418.31 12,-418.31 12,-418.31 110.5,-418.31 110.5,-418.31 116.5,-418.31 122.5,-424.31 122.5,-430.31 122.5,-430.31 122.5,-442.31 122.5,-442.31 122.5,-448.31 116.5,-454.31 110.5,-454.31"/>
|
|
50
|
+
<text xml:space="preserve" text-anchor="middle" x="61.25" y="-433.01" font-family="Arial" font-size="9.00">Metrics (success/duration)</text>
|
|
51
|
+
</g>
|
|
52
|
+
<!-- Learn->Metrics -->
|
|
53
|
+
<g id="edge2" class="edge">
|
|
54
|
+
<title>Learn->Metrics</title>
|
|
55
|
+
<path fill="none" stroke="black" d="M128.71,-491.13C117.64,-482.3 103.96,-471.38 91.82,-461.7"/>
|
|
56
|
+
<polygon fill="black" stroke="black" points="94.09,-459.03 84.09,-455.53 89.72,-464.5 94.09,-459.03"/>
|
|
57
|
+
</g>
|
|
58
|
+
<!-- Introspect -->
|
|
59
|
+
<g id="node4" class="node">
|
|
60
|
+
<title>Introspect</title>
|
|
61
|
+
<path fill="none" stroke="black" d="M224.38,-454.31C224.38,-454.31 152.12,-454.31 152.12,-454.31 146.12,-454.31 140.12,-448.31 140.12,-442.31 140.12,-442.31 140.12,-430.31 140.12,-430.31 140.12,-424.31 146.12,-418.31 152.12,-418.31 152.12,-418.31 224.38,-418.31 224.38,-418.31 230.38,-418.31 236.38,-424.31 236.38,-430.31 236.38,-430.31 236.38,-442.31 236.38,-442.31 236.38,-448.31 230.38,-454.31 224.38,-454.31"/>
|
|
62
|
+
<text xml:space="preserve" text-anchor="middle" x="188.25" y="-438.26" font-family="Arial" font-size="9.00">learning_reflect</text>
|
|
63
|
+
<text xml:space="preserve" text-anchor="middle" x="188.25" y="-427.76" font-family="Arial" font-size="9.00">+ LLM introspection</text>
|
|
64
|
+
</g>
|
|
65
|
+
<!-- Learn->Introspect -->
|
|
66
|
+
<g id="edge3" class="edge">
|
|
67
|
+
<title>Learn->Introspect</title>
|
|
68
|
+
<path fill="none" stroke="black" d="M159.45,-491.13C163.74,-483.1 168.96,-473.36 173.76,-464.38"/>
|
|
69
|
+
<polygon fill="black" stroke="black" points="176.79,-466.14 178.42,-455.68 170.62,-462.84 176.79,-466.14"/>
|
|
70
|
+
</g>
|
|
71
|
+
<!-- Distill -->
|
|
72
|
+
<g id="node5" class="node">
|
|
73
|
+
<title>Distill</title>
|
|
74
|
+
<path fill="none" stroke="black" d="M224.75,-346.31C224.75,-346.31 151.75,-346.31 151.75,-346.31 145.75,-346.31 139.75,-340.31 139.75,-334.31 139.75,-334.31 139.75,-322.31 139.75,-322.31 139.75,-316.31 145.75,-310.31 151.75,-310.31 151.75,-310.31 224.75,-310.31 224.75,-310.31 230.75,-310.31 236.75,-316.31 236.75,-322.31 236.75,-322.31 236.75,-334.31 236.75,-334.31 236.75,-340.31 230.75,-346.31 224.75,-346.31"/>
|
|
75
|
+
<text xml:space="preserve" text-anchor="middle" x="188.25" y="-325.01" font-family="Arial" font-size="9.00">learning_distill_skill</text>
|
|
76
|
+
</g>
|
|
77
|
+
<!-- Introspect->Distill -->
|
|
78
|
+
<g id="edge4" class="edge">
|
|
79
|
+
<title>Introspect->Distill</title>
|
|
80
|
+
<path fill="none" stroke="black" d="M188.25,-418.28C188.25,-402.07 188.25,-377.37 188.25,-358.1"/>
|
|
81
|
+
<polygon fill="black" stroke="black" points="191.75,-358.17 188.25,-348.17 184.75,-358.17 191.75,-358.17"/>
|
|
82
|
+
</g>
|
|
83
|
+
<!-- SkillCreate -->
|
|
84
|
+
<g id="node6" class="node">
|
|
85
|
+
<title>SkillCreate</title>
|
|
86
|
+
<path fill="none" stroke="black" d="M218.38,-273.31C218.38,-273.31 158.12,-273.31 158.12,-273.31 152.12,-273.31 146.12,-267.31 146.12,-261.31 146.12,-261.31 146.12,-249.31 146.12,-249.31 146.12,-243.31 152.12,-237.31 158.12,-237.31 158.12,-237.31 218.38,-237.31 218.38,-237.31 224.38,-237.31 230.38,-243.31 230.38,-249.31 230.38,-249.31 230.38,-261.31 230.38,-261.31 230.38,-267.31 224.38,-273.31 218.38,-273.31"/>
|
|
87
|
+
<text xml:space="preserve" text-anchor="middle" x="188.25" y="-252.01" font-family="Arial" font-size="9.00">skill_create / edit</text>
|
|
88
|
+
</g>
|
|
89
|
+
<!-- Distill->SkillCreate -->
|
|
90
|
+
<g id="edge5" class="edge">
|
|
91
|
+
<title>Distill->SkillCreate</title>
|
|
92
|
+
<path fill="none" stroke="black" d="M188.25,-310.13C188.25,-302.54 188.25,-293.41 188.25,-284.85"/>
|
|
93
|
+
<polygon fill="black" stroke="black" points="191.75,-284.85 188.25,-274.85 184.75,-284.85 191.75,-284.85"/>
|
|
94
|
+
</g>
|
|
95
|
+
<!-- SkillStore -->
|
|
96
|
+
<g id="node7" class="node">
|
|
97
|
+
<title>SkillStore</title>
|
|
98
|
+
<path fill="none" stroke="black" d="M249.5,-195.38C249.5,-198.1 222.05,-200.31 188.25,-200.31 154.45,-200.31 127,-198.1 127,-195.38 127,-195.38 127,-150.94 127,-150.94 127,-148.21 154.45,-146 188.25,-146 222.05,-146 249.5,-148.21 249.5,-150.94 249.5,-150.94 249.5,-195.38 249.5,-195.38"/>
|
|
99
|
+
<path fill="none" stroke="black" d="M249.5,-195.38C249.5,-192.65 222.05,-190.44 188.25,-190.44 154.45,-190.44 127,-192.65 127,-195.38"/>
|
|
100
|
+
<text xml:space="preserve" text-anchor="middle" x="188.25" y="-180.36" font-family="Arial" font-size="9.00">~/.pwn/skills/*.md</text>
|
|
101
|
+
<text xml:space="preserve" text-anchor="middle" x="188.25" y="-169.86" font-family="Arial" font-size="9.00">(YAML frontmatter</text>
|
|
102
|
+
<text xml:space="preserve" text-anchor="middle" x="188.25" y="-159.36" font-family="Arial" font-size="9.00">+ markdown + references)</text>
|
|
103
|
+
</g>
|
|
104
|
+
<!-- SkillCreate->SkillStore -->
|
|
105
|
+
<g id="edge6" class="edge">
|
|
106
|
+
<title>SkillCreate->SkillStore</title>
|
|
107
|
+
<path fill="none" stroke="black" d="M188.25,-236.92C188.25,-229.56 188.25,-220.67 188.25,-211.93"/>
|
|
108
|
+
<polygon fill="black" stroke="black" points="191.75,-212.18 188.25,-202.18 184.75,-212.18 191.75,-212.18"/>
|
|
109
|
+
</g>
|
|
110
|
+
<!-- SkillList -->
|
|
111
|
+
<g id="node9" class="node">
|
|
112
|
+
<title>SkillList</title>
|
|
113
|
+
<path fill="none" stroke="black" d="M234.62,-109C234.62,-109 163.88,-109 163.88,-109 157.88,-109 151.88,-103 151.88,-97 151.88,-97 151.88,-85 151.88,-85 151.88,-79 157.88,-73 163.88,-73 163.88,-73 234.62,-73 234.62,-73 240.62,-73 246.62,-79 246.62,-85 246.62,-85 246.62,-97 246.62,-97 246.62,-103 240.62,-109 234.62,-109"/>
|
|
114
|
+
<text xml:space="preserve" text-anchor="middle" x="199.25" y="-87.7" font-family="Arial" font-size="9.00">skill_list / skill_view</text>
|
|
115
|
+
</g>
|
|
116
|
+
<!-- SkillStore->SkillList -->
|
|
117
|
+
<g id="edge7" class="edge">
|
|
118
|
+
<title>SkillStore->SkillList</title>
|
|
119
|
+
<path fill="none" stroke="black" d="M191.85,-145.91C192.96,-137.81 194.19,-128.85 195.32,-120.6"/>
|
|
120
|
+
<polygon fill="black" stroke="black" points="198.79,-121.09 196.68,-110.71 191.86,-120.14 198.79,-121.09"/>
|
|
121
|
+
</g>
|
|
122
|
+
<!-- Recall -->
|
|
123
|
+
<g id="node11" class="node">
|
|
124
|
+
<title>Recall</title>
|
|
125
|
+
<path fill="none" stroke="black" d="M303.62,-400.31C303.62,-400.31 250.88,-400.31 250.88,-400.31 244.88,-400.31 238.88,-394.31 238.88,-388.31 238.88,-388.31 238.88,-376.31 238.88,-376.31 238.88,-370.31 244.88,-364.31 250.88,-364.31 250.88,-364.31 303.62,-364.31 303.62,-364.31 309.62,-364.31 315.62,-370.31 315.62,-376.31 315.62,-376.31 315.62,-388.31 315.62,-388.31 315.62,-394.31 309.62,-400.31 303.62,-400.31"/>
|
|
126
|
+
<text xml:space="preserve" text-anchor="middle" x="277.25" y="-379.01" font-family="Arial" font-size="9.00">memory_recall</text>
|
|
127
|
+
</g>
|
|
128
|
+
<!-- MemStore->Recall -->
|
|
129
|
+
<g id="edge11" class="edge">
|
|
130
|
+
<title>MemStore->Recall</title>
|
|
131
|
+
<path fill="none" stroke="black" d="M277.25,-490.93C277.25,-470.5 277.25,-436.3 277.25,-411.94"/>
|
|
132
|
+
<polygon fill="black" stroke="black" points="280.75,-412.06 277.25,-402.06 273.75,-412.06 280.75,-412.06"/>
|
|
133
|
+
</g>
|
|
134
|
+
<!-- AgentPrompt -->
|
|
135
|
+
<g id="node10" class="node">
|
|
136
|
+
<title>AgentPrompt</title>
|
|
137
|
+
<path fill="none" stroke="black" d="M283,-36C283,-36 193.5,-36 193.5,-36 187.5,-36 181.5,-30 181.5,-24 181.5,-24 181.5,-12 181.5,-12 181.5,-6 187.5,0 193.5,0 193.5,0 283,0 283,0 289,0 295,-6 295,-12 295,-12 295,-24 295,-24 295,-30 289,-36 283,-36"/>
|
|
138
|
+
<text xml:space="preserve" text-anchor="middle" x="238.25" y="-19.95" font-family="Arial" font-size="9.00">Agent System Prompt</text>
|
|
139
|
+
<text xml:space="preserve" text-anchor="middle" x="238.25" y="-9.45" font-family="Arial" font-size="9.00">(injects skills + memory)</text>
|
|
140
|
+
</g>
|
|
141
|
+
<!-- SkillList->AgentPrompt -->
|
|
142
|
+
<g id="edge8" class="edge">
|
|
143
|
+
<title>SkillList->AgentPrompt</title>
|
|
144
|
+
<path fill="none" stroke="black" d="M208.69,-72.81C213.1,-64.79 218.45,-55.05 223.38,-46.07"/>
|
|
145
|
+
<polygon fill="black" stroke="black" points="226.42,-47.81 228.17,-37.36 220.29,-44.44 226.42,-47.81"/>
|
|
146
|
+
</g>
|
|
147
|
+
<!-- Recall->AgentPrompt -->
|
|
148
|
+
<g id="edge10" class="edge">
|
|
149
|
+
<title>Recall->AgentPrompt</title>
|
|
150
|
+
<path fill="none" stroke="black" d="M277.25,-363.92C277.25,-345.98 277.25,-317.19 277.25,-292.31 277.25,-292.31 277.25,-292.31 277.25,-90 277.25,-73.86 269.41,-57.93 260.77,-45.25"/>
|
|
151
|
+
<polygon fill="black" stroke="black" points="263.77,-43.43 255.01,-37.47 258.14,-47.59 263.77,-43.43"/>
|
|
152
|
+
</g>
|
|
153
|
+
</g>
|
|
154
|
+
</svg>
|