pwn 0.5.779 → 0.5.781
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/Gemfile +3 -3
- data/documentation/AI-Integration.md +4 -4
- data/documentation/AWS.md +10 -9
- data/documentation/Agent-Tool-Registry.md +20 -17
- data/documentation/Blockchain.md +3 -2
- data/documentation/Bounty.md +8 -6
- data/documentation/BurpSuite.md +6 -10
- data/documentation/CLI-Drivers.md +7 -4
- data/documentation/Capability-Broker-Sandbox.md +1 -1
- data/documentation/Configuration.md +23 -15
- data/documentation/Contributing.md +3 -3
- data/documentation/Cron.md +3 -2
- data/documentation/Diagrams.md +9 -3
- data/documentation/Drivers.md +12 -6
- data/documentation/Extrospection.md +25 -5
- data/documentation/FFI.md +15 -25
- data/documentation/Fuzzing.md +13 -13
- data/documentation/General-PWN-Usage.md +7 -4
- data/documentation/Harness-Evaluation.md +90 -3
- data/documentation/Home.md +6 -5
- data/documentation/How-PWN-Works.md +9 -10
- data/documentation/Installation.md +12 -11
- data/documentation/Metasploit.md +13 -19
- data/documentation/Mistakes.md +2 -2
- data/documentation/NmapIt.md +6 -3
- data/documentation/Operability.md +99 -0
- data/documentation/Persistence.md +3 -2
- data/documentation/Plugin-Degradation.md +4 -2
- data/documentation/Plugins.md +4 -11
- data/documentation/Policy-Benchmark.md +4 -0
- data/documentation/Reinforcement-Learning.md +19 -3
- data/documentation/Reporting.md +6 -5
- data/documentation/SAST.md +15 -10
- data/documentation/SDR-Decoder-Coverage.md +10 -4
- data/documentation/SDR.md +28 -40
- data/documentation/Session-Workflow.md +25 -12
- data/documentation/Sessions.md +7 -0
- data/documentation/Skills-Memory-Learning.md +11 -4
- data/documentation/Swarm.md +6 -0
- data/documentation/Transparent-Browser.md +1 -1
- data/documentation/Troubleshooting.md +6 -3
- data/documentation/What-is-PWN.md +4 -4
- data/documentation/Why-PWN.md +1 -1
- data/documentation/diagrams/agent-tool-registry.svg +219 -180
- data/documentation/diagrams/ai-integration-tool-calling.svg +35 -34
- data/documentation/diagrams/code-scanning-sast.svg +78 -78
- data/documentation/diagrams/cron-scheduling.svg +165 -145
- data/documentation/diagrams/dot/_THEME.md +6 -4
- data/documentation/diagrams/dot/agent-tool-registry.dot +6 -2
- data/documentation/diagrams/dot/ai-integration-tool-calling.dot +1 -1
- data/documentation/diagrams/dot/code-scanning-sast.dot +8 -8
- data/documentation/diagrams/dot/cron-scheduling.dot +2 -0
- data/documentation/diagrams/dot/driver-framework.dot +1 -1
- data/documentation/diagrams/dot/extrospection-world-awareness.dot +2 -2
- data/documentation/diagrams/dot/fuzzing-workflow.dot +3 -3
- data/documentation/diagrams/dot/history-to-drivers.dot +1 -1
- data/documentation/diagrams/dot/memory-skills-detailed.dot +3 -3
- data/documentation/diagrams/dot/mistakes-negative-feedback.dot +2 -2
- data/documentation/diagrams/dot/overall-pwn-architecture.dot +33 -121
- data/documentation/diagrams/dot/persistence-filesystem.dot +2 -2
- data/documentation/diagrams/dot/plugin-ecosystem.dot +2 -2
- data/documentation/diagrams/dot/pwn-ai-feedback-learning-loop.dot +31 -167
- data/documentation/diagrams/dot/pwn-repl-prototyping.dot +1 -1
- data/documentation/diagrams/dot/reinforcement-learning.dot +15 -7
- data/documentation/diagrams/dot/reporting-pipeline.dot +5 -3
- data/documentation/diagrams/dot/reverse-engineering-flow.dot +3 -3
- data/documentation/diagrams/dot/sdr-radio-flow.dot +5 -5
- data/documentation/diagrams/dot/sessions-cron-automation.dot +1 -1
- data/documentation/diagrams/dot/swarm-multi-agent.dot +3 -3
- data/documentation/diagrams/dot/task-summarizer.dot +2 -2
- data/documentation/diagrams/dot/web-application-testing.dot +4 -3
- data/documentation/diagrams/dot/zero-day-research-flow.dot +4 -3
- data/documentation/diagrams/driver-framework.svg +1 -1
- data/documentation/diagrams/extrospection-world-awareness.svg +178 -178
- data/documentation/diagrams/fuzzing-workflow.svg +58 -58
- data/documentation/diagrams/history-to-drivers.svg +42 -42
- data/documentation/diagrams/memory-skills-detailed.svg +210 -210
- data/documentation/diagrams/mistakes-negative-feedback.svg +116 -116
- data/documentation/diagrams/overall-pwn-architecture.svg +248 -404
- data/documentation/diagrams/persistence-filesystem.svg +143 -143
- data/documentation/diagrams/plugin-ecosystem.svg +100 -100
- data/documentation/diagrams/pwn-ai-feedback-learning-loop.svg +233 -752
- data/documentation/diagrams/pwn-repl-prototyping.svg +27 -27
- data/documentation/diagrams/reinforcement-learning.svg +295 -221
- data/documentation/diagrams/reporting-pipeline.svg +94 -80
- data/documentation/diagrams/reverse-engineering-flow.svg +31 -31
- data/documentation/diagrams/sdr-radio-flow.svg +157 -155
- data/documentation/diagrams/sessions-cron-automation.svg +13 -13
- data/documentation/diagrams/swarm-multi-agent.svg +86 -86
- data/documentation/diagrams/task-summarizer.svg +57 -57
- data/documentation/diagrams/web-application-testing.svg +81 -75
- data/documentation/diagrams/zero-day-research-flow.svg +101 -92
- data/documentation/pwn-REPL.md +5 -3
- data/documentation/pwn-ai-Agent.md +18 -14
- data/documentation/pwn_silent_help_learn_demo.gif +0 -0
- data/etc/default_skills/pwn/ai/agent/learning/SKILL.md +1 -0
- data/lib/pwn/ai/agent/learning.rb +46 -1
- data/lib/pwn/ai/agent/loop.rb +6 -3
- data/lib/pwn/ai/agent/policy_evaluation.rb +5 -1
- data/lib/pwn/ai/agent/reward.rb +9 -0
- data/lib/pwn/version.rb +1 -1
- data/spec/fixtures/harness/completion_regressions.json +10 -0
- data/spec/fixtures/harness/completion_regressions.json.sha256 +1 -0
- data/spec/integration/harness_evaluation_spec.rb +13 -0
- data/spec/lib/pwn/ai/agent/learning_spec.rb +22 -0
- data/spec/lib/pwn/ai/agent/loop_spec.rb +39 -0
- data/spec/lib/pwn/ai/agent/policy_evaluation_spec.rb +6 -1
- data/spec/lib/pwn/ai/agent/reward_spec.rb +21 -0
- data/spec/support/harness/evaluate.rb +1 -1
- data/third_party/pwn_rdoc.jsonl +2 -1
- metadata +10 -7
|
@@ -1,168 +1,32 @@
|
|
|
1
|
-
digraph
|
|
2
|
-
graph [
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
];
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
/* L2 ─ triple engines */
|
|
34
|
-
subgraph cluster_intro {
|
|
35
|
-
label="INTROSPECTION (self)"; fontcolor="#a7f3d0";
|
|
36
|
-
style=rounded; color="#047857"; bgcolor="#022c22"; penwidth=2;
|
|
37
|
-
Metrics [label="Metrics\nESR = verified exploit tools / vulnerable tools\nASR = successful attacks / attempts", fillcolor="#6ee7b7"];
|
|
38
|
-
Learning [label="Learning\nnote_outcome · reflect\nexemplars_for · SFT quality gate\nfact_check_local_final", fillcolor="#6ee7b7"];
|
|
39
|
-
Mistakes [label="Mistakes\nrecord · resolve\nguard · correction_hint\n[REPEATING] · [REGRESSED]", fillcolor="#6ee7b7", penwidth=2];
|
|
40
|
-
ReflectT [label="Reflect\nteacher-student\n(reflect_engine)", fillcolor="#6ee7b7", penwidth=2];
|
|
41
|
-
Reward [label="Reward\njudge · prm · semantic_ok\nsentinel warm\nDPO scrub <=40%/src", fillcolor="#6ee7b7", penwidth=2];
|
|
42
|
-
Curric [label="Curriculum\npractice · offline_judge\ncritic/CF geometry · gate + diet", fillcolor="#6ee7b7", penwidth=2];
|
|
43
|
-
Policy [label="Policy\nlive Q / REINFORCE\nbegin · observe · finish\nadvisory rank only", fillcolor="#6ee7b7", penwidth=2];
|
|
44
|
-
}
|
|
45
|
-
subgraph cluster_extro {
|
|
46
|
-
label="EXTROSPECTION (world)"; fontcolor="#fde68a";
|
|
47
|
-
style=rounded; color="#a16207"; bgcolor="#422006"; penwidth=2;
|
|
48
|
-
Snapshot [label="snapshot · drift\nhost/net/toolchain\nrepo/env/rf/web\n(AUTO_SECTIONS=host/repo/env)", fillcolor="#fcd34d"];
|
|
49
|
-
Observe [label="observe · intel · watch\nrecon · CVE · web DOM", fillcolor="#fcd34d"];
|
|
50
|
-
Verify [label="verify (browser)\nfact-check own claims\nrevalidate_memory", fillcolor="#fcd34d", penwidth=2];
|
|
51
|
-
RFTune [label="rf_tune 📡\ntune GQRX · demod\nRDS → now_playing", fillcolor="#fcd34d", penwidth=2];
|
|
52
|
-
}
|
|
53
|
-
{rank=same; Metrics; Learning; Mistakes; ReflectT; Reward; Curric; Policy; Snapshot; Observe; Verify; RFTune}
|
|
54
|
-
|
|
55
|
-
/* L3 ─ correlate */
|
|
56
|
-
Correlate [label="extro_correlate()\n\"I did it wrong\" vs \"the world changed\"",
|
|
57
|
-
fillcolor="#fda4af", penwidth=2, fontsize=12];
|
|
58
|
-
|
|
59
|
-
/* L4 ─ persistence */
|
|
60
|
-
subgraph cluster_store {
|
|
61
|
-
label="~/.pwn/"; fontcolor="#94a3b8";
|
|
62
|
-
style="rounded,dashed"; color="#334155"; bgcolor="#1e293b";
|
|
63
|
-
Fmet [label="metrics.json", shape=cylinder, fillcolor="#fcd34d"];
|
|
64
|
-
Flrn [label="learning.jsonl", shape=cylinder, fillcolor="#fcd34d"];
|
|
65
|
-
Fmis [label="mistakes.json", shape=cylinder, fillcolor="#fcd34d"];
|
|
66
|
-
Fmem [label="memory.json", shape=cylinder, fillcolor="#fcd34d"];
|
|
67
|
-
Fidx [label="memory.idx", shape=cylinder, fillcolor="#fcd34d"];
|
|
68
|
-
Fskl [label="skills/<n>/SKILL.md", shape=cylinder, fillcolor="#fcd34d"];
|
|
69
|
-
Fext [label="extrospection.json", shape=cylinder, fillcolor="#fcd34d"];
|
|
70
|
-
Fftn [label="finetune/*.jsonl", shape=cylinder, fillcolor="#fcd34d"];
|
|
71
|
-
Fprf [label="preferences.jsonl", shape=cylinder, fillcolor="#fcd34d"];
|
|
72
|
-
Fpol [label="policy.json\npolicy_traj.jsonl", shape=cylinder, fillcolor="#fcd34d"];
|
|
73
|
-
}
|
|
74
|
-
{rank=same; Fmet; Flrn; Fmis; Fmem; Fidx; Fskl; Fext; Fftn; Fprf; Fpol}
|
|
75
|
-
|
|
76
|
-
/* L0 → L1 */
|
|
77
|
-
User -> Prompt [label="task", color="#38bdf8", penwidth=2];
|
|
78
|
-
LLM -> Dispatch [label="tool_calls", dir=both, color="#a78bfa", penwidth=2];
|
|
79
|
-
World-> Result [style=invis];
|
|
80
|
-
|
|
81
|
-
/* L1 internal */
|
|
82
|
-
Prompt -> Router [color="#a78bfa"];
|
|
83
|
-
Router -> Plan [color="#a78bfa"];
|
|
84
|
-
Plan -> TaskSum [color="#a78bfa"];
|
|
85
|
-
TaskSum -> Dispatch [color="#a78bfa"];
|
|
86
|
-
Dispatch -> Escalate [label="turn_fails >= N", color="#fb7185", style=dashed];
|
|
87
|
-
Dispatch -> Result [color="#a78bfa"];
|
|
88
|
-
Escalate -> Result [style=invis];
|
|
89
|
-
|
|
90
|
-
/* L1 → L2 */
|
|
91
|
-
Dispatch -> Metrics [label="record(engine:)", color="#34d399"];
|
|
92
|
-
Dispatch -> Policy [label="observe_step", color="#34d399"];
|
|
93
|
-
Result -> Learning [label="auto_introspect\n(deferred after reply)", color="#34d399"];
|
|
94
|
-
Result -> Policy [label="finish (judge)", color="#34d399"];
|
|
95
|
-
Dispatch -> Mistakes [label="on failure\nrecord()", color="#fb7185", penwidth=2];
|
|
96
|
-
User -> Mistakes [label="\"that's wrong\"\ncheck_user_correction", color="#fb7185",
|
|
97
|
-
style=dashed, constraint=false];
|
|
98
|
-
Dispatch -> Snapshot [label="probe", color="#f59e0b"];
|
|
99
|
-
Result -> Observe [label="auto_extrospect\n(AUTO_SECTIONS only)", color="#f59e0b"];
|
|
100
|
-
World -> Snapshot [color="#fb7185", constraint=false];
|
|
101
|
-
World -> Observe [color="#fb7185", constraint=false];
|
|
102
|
-
World -> Verify [label="TransparentBrowser\n:headless", color="#38bdf8", constraint=false, penwidth=2];
|
|
103
|
-
World -> RFTune [label="GQRX remote\n:7356 + SDR", color="#fb7185", constraint=false, penwidth=2];
|
|
104
|
-
Dispatch -> Observe [label="sense tools\nverify/watch/rf_tune/intel", color="#f59e0b", style=dashed, constraint=false];
|
|
105
|
-
|
|
106
|
-
/* L2 → L3 */
|
|
107
|
-
Metrics -> Correlate [color="#34d399"];
|
|
108
|
-
Learning -> Correlate [color="#34d399"];
|
|
109
|
-
Learning -> Metrics [label="rsi_tick\nESR drop writes a lesson", style=dashed, color="#34d399", constraint=false];
|
|
110
|
-
Mistakes -> Correlate [color="#34d399"];
|
|
111
|
-
Snapshot -> Correlate [color="#f59e0b"];
|
|
112
|
-
Observe -> Correlate [color="#f59e0b"];
|
|
113
|
-
Verify -> Correlate [color="#f59e0b"];
|
|
114
|
-
RFTune -> Correlate [color="#f59e0b"];
|
|
115
|
-
|
|
116
|
-
/* L3 → L4 */
|
|
117
|
-
Correlate -> Fmet [style=invis];
|
|
118
|
-
Metrics -> Fmet [color="#94a3b8"];
|
|
119
|
-
Policy -> Fpol [color="#94a3b8"];
|
|
120
|
-
Learning -> Flrn [color="#94a3b8"];
|
|
121
|
-
Mistakes -> Fmis [color="#94a3b8"];
|
|
122
|
-
Mistakes -> Fmem [label="resolve→lesson", color="#94a3b8"];
|
|
123
|
-
Learning -> Fmem [label="lesson", color="#94a3b8"];
|
|
124
|
-
Learning -> Fskl [label="skill", color="#94a3b8"];
|
|
125
|
-
Observe -> Fext [color="#94a3b8"];
|
|
126
|
-
RFTune -> Fext [label=":rf obs\nttl 300s", color="#94a3b8"];
|
|
127
|
-
Verify -> Fmis [label=":refuted →\nassumption mistake", color="#fb7185", penwidth=2];
|
|
128
|
-
Verify -> Mistakes [label=":refuted", color="#fb7185", style=dashed, constraint=false];
|
|
129
|
-
Verify -> Fmem [label="mark stale\n[UNVERIFIED]", color="#a78bfa", style=dashed];
|
|
130
|
-
Verify -> Fext [label=":confirmed\n:intel obs", color="#94a3b8"];
|
|
131
|
-
Learning -> Fftn [label="export_finetune", color="#94a3b8"];
|
|
132
|
-
Learning -> ReflectT [label="reflect()", color="#34d399", constraint=false];
|
|
133
|
-
ReflectT -> Fmem [label="frontier :lesson", color="#94a3b8"];
|
|
134
|
-
ReflectT -> LLM [label="reflect_engine ≠ active", style=dashed, color="#a78bfa", constraint=false];
|
|
135
|
-
Result -> Verify [label="fact_check_local_final\n(CVE / version claims)", color="#f59e0b", style=dashed, constraint=false];
|
|
136
|
-
|
|
137
|
-
/* feedback (dashed, non-constraining) */
|
|
138
|
-
Fmem -> Prompt [label="MEMORY block", style=dashed, color="#fbbf24", constraint=false];
|
|
139
|
-
Fskl -> Prompt [label="SKILLS block", style=dashed, color="#fbbf24", constraint=false];
|
|
140
|
-
Fmis -> Prompt [label="KNOWN MISTAKES\n+ KNOWN FIXES", style=dashed, color="#fb7185",
|
|
141
|
-
constraint=false, penwidth=2];
|
|
142
|
-
Fext -> Prompt [label="EXTRO block", style=dashed, color="#fbbf24", constraint=false];
|
|
143
|
-
Mistakes -> Dispatch [label="correction_hint\n(inline, next iter)", style=dashed,
|
|
144
|
-
color="#fb7185", constraint=false, penwidth=2];
|
|
145
|
-
Correlate -> Prompt [label="findings → next run", style=dashed, color="#fb7185",
|
|
146
|
-
constraint=false, penwidth=2];
|
|
147
|
-
Fidx -> Prompt [label="MemoryIndex\ncosine top-K", style=dashed, color="#fbbf24", constraint=false, penwidth=2];
|
|
148
|
-
Flrn -> Plan [label="exemplars_for\n(few-shot, local)", style=dashed, color="#fbbf24", constraint=false];
|
|
149
|
-
Fmet -> Router [label="success_rate\n→ tie-break", style=dashed, color="#fbbf24", constraint=false];
|
|
150
|
-
Fpol -> Prompt [label="POLICY block", style=dashed, color="#fbbf24", constraint=false];
|
|
151
|
-
Fpol -> Router [label="Q-advantage\nvisits≥2", style=dashed, color="#fbbf24", constraint=false];
|
|
152
|
-
Escalate -> LLM [label="Swarm.ask(persona)\nfrontier hint", color="#a78bfa", constraint=false, penwidth=2, style=dashed];
|
|
153
|
-
Escalate -> Mistakes [label="record\n(tool:'escalation')", color="#fb7185", constraint=false, style=dashed];
|
|
154
|
-
Fftn -> LLM [label="LoRA (weights)\ncron weekly", style=dashed, color="#fb7185", constraint=false, penwidth=2];
|
|
155
|
-
Result -> User [label="answer", color="#38bdf8", constraint=false, penwidth=2];
|
|
156
|
-
Result -> Reward [label="judge · prm", color="#34d399", penwidth=2];
|
|
157
|
-
Result -> Curric [label="critic · hindsight", color="#34d399"];
|
|
158
|
-
Dispatch -> Curric [label="counterfactual\n[REPEATING]", color="#fb7185", style=dashed, constraint=false];
|
|
159
|
-
Reward -> Verify [label="verify_as_reward", style=dashed, color="#fbbf24", constraint=false];
|
|
160
|
-
Reward -> Fprf [label="record_preference", color="#94a3b8"];
|
|
161
|
-
Reward -> Mistakes [label="sentinel gap", color="#fb7185", style=dashed, constraint=false];
|
|
162
|
-
Curric -> Fprf [label="(loser,winner)", color="#94a3b8"];
|
|
163
|
-
Curric -> Fmis [label="practice → resolve", color="#34d399", style=dashed];
|
|
164
|
-
Curric -> Fftn [label="train_and_gate", color="#94a3b8"];
|
|
165
|
-
User -> Fprf [label="user_correction\n→ DPO pair", color="#fb7185", style=dashed, constraint=false];
|
|
166
|
-
Fprf -> LLM [label="DPO (weights)\ncron weekly", style=dashed, color="#fb7185", constraint=false, penwidth=2];
|
|
167
|
-
|
|
1
|
+
digraph PWN_Feedback {
|
|
2
|
+
graph [label="pwn-ai - evidence-backed feedback, not automatic improvement", labelloc=t,
|
|
3
|
+
fontsize=20, fontname="Helvetica", rankdir=TB, bgcolor="#0f172a", fontcolor="#e2e8f0", pad=0.6];
|
|
4
|
+
node [fontname="Helvetica", fontsize=11, shape=box, style="rounded,filled", fillcolor="#c4b5fd", color="#334155"];
|
|
5
|
+
edge [fontname="Helvetica", fontsize=9, color="#94a3b8", fontcolor="#cbd5e1"];
|
|
6
|
+
Request [label="Original request + additive amendments", fillcolor="#7dd3fc"];
|
|
7
|
+
Host [label="Living off the land\nDetectOS native PATH inventory API\nHOST injects OS summary + PreflightChecker health", fillcolor="#6ee7b7"];
|
|
8
|
+
Prompt [label="PromptBuilder\nbudgeted memory / skills / lessons / mistakes / policy"];
|
|
9
|
+
Loop [label="Loop / request-owned runtime\nTaskSummarizer compass is UX, not acceptance"];
|
|
10
|
+
Tools [label="Registry -> Dispatch -> actual tools\npermissions / confirmation / sandbox"];
|
|
11
|
+
World [label="Extrospection\non-demand observe / intel / watch / verify / RF etc.\nauto baseline: host / repo / env only", fillcolor="#fcd34d"];
|
|
12
|
+
Evidence [label="Host receipts / exact-target stat + digest\nexecuted authored checks; failed/unknown stay distinct", shape=cylinder, fillcolor="#fcd34d"];
|
|
13
|
+
Final [label="Completion arbiter\nno tool calls != done; all original obligations apply"];
|
|
14
|
+
Reward [label="Reward + Learning\nclaimed_completion (judge claim)\nverified_completion / false_completion\nrate denominator: checked claims", fillcolor="#6ee7b7"];
|
|
15
|
+
Mistakes [label="Mistakes / Metrics / Reflect\nfailures, fixes and diagnostic lessons\ncorrelation is not causal proof", fillcolor="#6ee7b7"];
|
|
16
|
+
Policy [label="Policy accounting + advisory ranking\npositive training credit requires independent action attribution", fillcolor="#6ee7b7"];
|
|
17
|
+
Regression [label="Learning.regression_task\nexact failure/request digest + operator-authored expected bytes\ninert file/JSON recipe; split remains regression"];
|
|
18
|
+
Eval [label="Frozen local snapshot evaluation\nnew HOME / off + baseline + candidate\npublic held-out tasks; no live LLM gain claim"];
|
|
19
|
+
Promote [label="Operator approval + stopped writers + explicit target\nfresh replay / per-task + aggregate gates\nversioned receipt / digest-bound rollback"];
|
|
20
|
+
Skill [label="SkillReview default recommend\nauto-safe limited to proven additions to existing SOPs"];
|
|
21
|
+
Weights [label="Curriculum export / optional trainer path\nseparate from routing-policy promotion\nnot proof that a live adapter improved"];
|
|
22
|
+
Request -> Loop; Host -> Prompt; Prompt -> Loop; Loop -> Tools;
|
|
23
|
+
Tools -> Evidence; Tools -> World; World -> Prompt [style=dashed];
|
|
24
|
+
Evidence -> Final; Loop -> Final; Final -> Reward;
|
|
25
|
+
Tools -> Mistakes; World -> Mistakes [label="correlate", style=dashed];
|
|
26
|
+
Reward -> Policy; Reward -> Regression [label="persisted verifier failure"];
|
|
27
|
+
Regression -> Eval [label="regression replay only; never relabel held-out", style=dashed];
|
|
28
|
+
Policy -> Eval [label="explicit frozen snapshots"]; Eval -> Promote;
|
|
29
|
+
Promote -> Policy [label="explicit local replace / rollback", style=dashed];
|
|
30
|
+
Mistakes -> Prompt [style=dashed]; Reward -> Skill; Skill -> Prompt [style=dashed];
|
|
31
|
+
Reward -> Weights [label="explicit opt-in"]; Policy -> Prompt [style=dashed];
|
|
168
32
|
}
|
|
@@ -17,7 +17,7 @@ digraph "PWN_REPL" {
|
|
|
17
17
|
color="#6d28d9"; bgcolor="#2e1065"; penwidth=2;
|
|
18
18
|
Prompt [label="pwn[v0.5.x]:001 >>>", fillcolor="#c4b5fd"];
|
|
19
19
|
Preload [label="autoload PWN::*\nBanner · MonkeyPatch", fillcolor="#c4b5fd"];
|
|
20
|
-
Hist [label="~/.pwn_history\nreplay · edit", fillcolor="#c4b5fd"];
|
|
20
|
+
Hist [label="~/.pwn/pwn_history\nreplay · edit", fillcolor="#c4b5fd"];
|
|
21
21
|
}
|
|
22
22
|
{rank=same; Prompt; Preload; Hist}
|
|
23
23
|
|
|
@@ -24,7 +24,7 @@ digraph "PWN_Reinforcement_Learning" {
|
|
|
24
24
|
R3 [label="sentinel (ring N=40)\nproxy != judge != (1-corr)\nwarm + proxy distrust", fillcolor="#c4b5fd"];
|
|
25
25
|
R4 [label="semantic_ok\ngrep exit 1 != failure", fillcolor="#c4b5fd"];
|
|
26
26
|
R5 [label="Policy (live MDP)\nplan · complete · usable\nwarm Q + episode budget", fillcolor="#c4b5fd", penwidth=2];
|
|
27
|
-
E3 [label="verify_as_reward\
|
|
27
|
+
E3 [label="verify_as_reward\nclaim diagnostics; refutation caps", fillcolor="#c4b5fd"];
|
|
28
28
|
}
|
|
29
29
|
{rank=same; R1; R2; R3; R4; R5; E3}
|
|
30
30
|
|
|
@@ -75,7 +75,7 @@ digraph "PWN_Reinforcement_Learning" {
|
|
|
75
75
|
Loop -> R2 [label="session", color="#a78bfa"];
|
|
76
76
|
Loop -> R3 [color="#a78bfa"];
|
|
77
77
|
R1 -> E3 [label="ground", style=dashed, color="#fbbf24"];
|
|
78
|
-
R1
|
|
78
|
+
R1 -> Claims [label="fallible judgment", color="#a78bfa"];
|
|
79
79
|
R5 -> Fpol [color="#f59e0b"];
|
|
80
80
|
Loop -> S4 [label="plan_first", color="#34d399"];
|
|
81
81
|
Loop -> S3 [label="final", color="#34d399"];
|
|
@@ -89,13 +89,13 @@ digraph "PWN_Reinforcement_Learning" {
|
|
|
89
89
|
S1 -> Fcur [color="#f59e0b"];
|
|
90
90
|
S2 -> W1 [label="(loser,winner)", color="#fb7185"];
|
|
91
91
|
S3 -> W1 [color="#fb7185"];
|
|
92
|
-
C3 -> Fses [label="success:
|
|
92
|
+
C3 -> Fses [label="success:soft", color="#f59e0b"];
|
|
93
93
|
|
|
94
94
|
W1 -> Fprf [color="#f59e0b", penwidth=2];
|
|
95
95
|
Fprf -> W2 [label="export_dpo", color="#f59e0b"];
|
|
96
96
|
Fses -> W2 [label="export_finetune", color="#f59e0b"];
|
|
97
97
|
W2 -> Fftn [color="#f59e0b"];
|
|
98
|
-
W2 -> Ollama [label="
|
|
98
|
+
W2 -> Ollama [label="optional configured trainer", color="#fb7185", penwidth=2];
|
|
99
99
|
Fmis -> W2 [label="eval set", style=dashed, color="#fbbf24", constraint=false];
|
|
100
100
|
W3 -> Loop [label="calibration", style=dashed, color="#fbbf24", constraint=false];
|
|
101
101
|
Loop -> Rates [label="rsi_tick", color="#34d399", style=dashed, constraint=false];
|
|
@@ -104,12 +104,20 @@ digraph "PWN_Reinforcement_Learning" {
|
|
|
104
104
|
Cron [label="⏱ PWN::Cron.install_defaults\npractice · offline_judge\ntrain dry_run · consolidate", fillcolor="#7dd3fc"];
|
|
105
105
|
OJ [label="offline_judge\njudges + calibrate + warm sentinel", fillcolor="#6ee7b7"];
|
|
106
106
|
MemGC [label="Learning.consolidate\nnightly memory GC", fillcolor="#6ee7b7"];
|
|
107
|
-
Cron -> S1 [label="0 3 * * *", color="#38bdf8", constraint=false];
|
|
108
|
-
Cron -> OJ [label="30 3 * * *", color="#38bdf8", constraint=false];
|
|
109
|
-
Cron -> W2 [label="0 4 * * 0", color="#38bdf8", constraint=false];
|
|
107
|
+
Cron -> S1 [label="OFF by default: 0 3 * * *", color="#38bdf8", constraint=false];
|
|
108
|
+
Cron -> OJ [label="OFF by default: 30 3 * * *", color="#38bdf8", constraint=false];
|
|
109
|
+
Cron -> W2 [label="OFF by default: 0 4 * * 0", color="#38bdf8", constraint=false];
|
|
110
110
|
Cron -> MemGC [label="0 5 * * *", color="#38bdf8", constraint=false];
|
|
111
111
|
OJ -> R1 [label="backfill", style=dashed, color="#a78bfa", constraint=false];
|
|
112
112
|
OJ -> W3 [label="p(success)", style=dashed, color="#fbbf24", constraint=false];
|
|
113
113
|
|
|
114
114
|
Ollama -> Loop [label="promoted vN+1\n(next session)", style=dashed, color="#fb7185", constraint=false, penwidth=2];
|
|
115
|
+
|
|
116
|
+
Checks [label="Host Verification\ncomplete pass / fail / unknown", fillcolor="#7dd3fc"];
|
|
117
|
+
Claims [label="Judge claim != verified completion\nfalse rate = refuted / checked claims", fillcolor="#fcd34d"];
|
|
118
|
+
Frozen [label="Explicit frozen PolicyEvaluation\npublic local held-out / two filesystem suites", fillcolor="#c4b5fd"];
|
|
119
|
+
Promotion [label="Fresh replay + per-task nonregression\noperator approval / stopped writers\nreceipt v1 + rollback refuses intervening writes", fillcolor="#6ee7b7"];
|
|
120
|
+
Loop -> Checks; Checks -> Claims; R1 -> Claims; Claims -> R5 [label="attributed eligible credit only"];
|
|
121
|
+
Fpol -> Frozen [label="snapshot, not live writes"]; Frozen -> Promotion;
|
|
122
|
+
Promotion -> Fpol [label="explicit target", style=dashed];
|
|
115
123
|
}
|
|
@@ -42,11 +42,13 @@ digraph "PWN_Reports" {
|
|
|
42
42
|
Fuzz -> Rfuzz [color="#f59e0b"];
|
|
43
43
|
Uri -> Ruri [color="#f59e0b"];
|
|
44
44
|
Phone -> Rphone [color="#f59e0b"];
|
|
45
|
-
Obs -> Find [label="
|
|
45
|
+
Obs -> Find [label="explicit structured record", color="#34d399"];
|
|
46
46
|
Find -> Gate [label="verify transcript", color="#f59e0b"];
|
|
47
47
|
Gate -> HTML [color="#a78bfa"];
|
|
48
48
|
Rsast -> HTML [color="#a78bfa"];
|
|
49
49
|
Rfuzz -> JSON [color="#a78bfa"];
|
|
50
|
-
Ruri
|
|
51
|
-
|
|
50
|
+
Ruri -> HTML [color="#a78bfa"];
|
|
51
|
+
JSON -> DD [label="explicit authenticated import", style=dashed];
|
|
52
|
+
Rphone -> HTML [color="#a78bfa"];
|
|
53
|
+
HTML -> Jira [label="operator delivery", style=dashed];
|
|
52
54
|
}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
digraph "PWN_RE" {
|
|
2
2
|
graph [
|
|
3
|
-
label=<<B>Reverse Engineering & Binary Exploitation</B><BR/><FONT POINT-SIZE="11" COLOR="#94a3b8">pwn-asm · Assembly · XXD ·
|
|
3
|
+
label=<<B>Reverse Engineering & Binary Exploitation</B><BR/><FONT POINT-SIZE="11" COLOR="#94a3b8">pwn-asm · Assembly · XXD · REDB · Radare2 · GDBMI · ExploitDev</FONT>>,
|
|
4
4
|
labelloc=t, fontsize=20, fontname="Helvetica",
|
|
5
5
|
rankdir=LR, splines=spline, nodesep=0.45, ranksep=1.2,
|
|
6
6
|
bgcolor="#0f172a", fontcolor="#e2e8f0", pad=0.6, newrank=true
|
|
@@ -15,7 +15,7 @@ digraph "PWN_RE" {
|
|
|
15
15
|
subgraph cluster_static {
|
|
16
16
|
label="Static"; fontcolor="#a7f3d0"; style=rounded;
|
|
17
17
|
color="#047857"; bgcolor="#022c22";
|
|
18
|
-
XXD [label="
|
|
18
|
+
XXD [label="XXD · REDB · Radare2\nhex / binary analysis", fillcolor="#6ee7b7"];
|
|
19
19
|
BDBA [label="BlackDuckBinaryAnalysis\nSBOM · CVE match", fillcolor="#6ee7b7"];
|
|
20
20
|
}
|
|
21
21
|
subgraph cluster_disasm {
|
|
@@ -27,7 +27,7 @@ digraph "PWN_RE" {
|
|
|
27
27
|
subgraph cluster_dyn {
|
|
28
28
|
label="Dynamic"; fontcolor="#fecaca"; style=rounded;
|
|
29
29
|
color="#b91c1c"; bgcolor="#450a0a";
|
|
30
|
-
FFI [label="
|
|
30
|
+
FFI [label="GDBMI · ProcessTube\ndebug / process I/O", fillcolor="#fda4af"];
|
|
31
31
|
Fuzz [label="Plugins::Fuzz\ntargeted crashes", fillcolor="#fda4af"];
|
|
32
32
|
}
|
|
33
33
|
Xpl [label="Exploit PoC\nMetasploit module", fillcolor="#c4b5fd"];
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
digraph "PWN_SDR" {
|
|
2
2
|
graph [
|
|
3
|
-
label=<<B>PWN::SDR - Software-Defined Radio & RF Hacking</B><BR/><FONT POINT-SIZE="11" COLOR="#94a3b8">GQRX · FlipperZero · RFIDler · FrequencyAllocation · Decoder::* (
|
|
3
|
+
label=<<B>PWN::SDR - Software-Defined Radio & RF Hacking</B><BR/><FONT POINT-SIZE="11" COLOR="#94a3b8">GQRX · FlipperZero · RFIDler · FrequencyAllocation · Decoder::* (21+Base/DSP) · mode-specific input boundaries · FFI::{Volk,Liquid,FFTW,RTLSdr,HackRF,AdalmPluto,SoapySDR}</FONT>>,
|
|
4
4
|
labelloc=t, fontsize=20, fontname="Helvetica",
|
|
5
5
|
rankdir=LR, splines=spline, nodesep=0.45, ranksep=1.1,
|
|
6
6
|
bgcolor="#0f172a", fontcolor="#e2e8f0", pad=0.6, newrank=true
|
|
@@ -37,9 +37,9 @@ digraph "PWN_SDR" {
|
|
|
37
37
|
subgraph cluster_dec {
|
|
38
38
|
label="Decode · Sense · Record"; fontcolor="#ddd6fe"; style=rounded;
|
|
39
39
|
color="#6d28d9"; bgcolor="#2e1065";
|
|
40
|
-
Base [label="Decoder::Base\nrun_iq (
|
|
40
|
+
Base [label="Decoder::Base\nrun_iq (supported IQ modes)\nrun_native (48 kHz UDP)\nrun_detector (energy)\nresolve_iq_source :auto", fillcolor="#c4b5fd", penwidth=2];
|
|
41
41
|
DSP [label="Decoder::DSP\npure-Ruby + FFI accel\n(unpack · resample · FSK · FM)", fillcolor="#c4b5fd"];
|
|
42
|
-
Dec [label="SDR::Decoder::*\nADSB · APT · BT · DECT · GPS\nGSM · Iridium · LoRa · LTE\nMorse · P25 · POCSAG/FLEX\nRDS · RFID · rtl_433 · RTTY\nWiFi · ZigBee", fillcolor="#c4b5fd"];
|
|
42
|
+
Dec [label="SDR::Decoder::*\nADSB · APT · BT · DECT · GPS\nGSM · Iridium · LoRa · LTE\nMorse · P25 · POCSAG/FLEX\nRDS · RFID · rtl_433 · RTTY\nWiFi · ZigBee · Tempest", fillcolor="#c4b5fd"];
|
|
43
43
|
Obs [label="extro_observe\ncategory: :rf", fillcolor="#c4b5fd"];
|
|
44
44
|
Xrf [label="extro_snapshot :rf\nprobe_rf → hw inventory", fillcolor="#c4b5fd"];
|
|
45
45
|
Tune [label="extro_rf_tune 📡\ntune · demod · strength\nRDS.sample → now_playing", fillcolor="#c4b5fd", penwidth=2];
|
|
@@ -63,8 +63,8 @@ digraph "PWN_SDR" {
|
|
|
63
63
|
DSP -> Dec [color="#a78bfa"];
|
|
64
64
|
Base -> Dec [label="feed_iq / feed", color="#a78bfa", penwidth=2];
|
|
65
65
|
Freq -> Dec [color="#a78bfa"];
|
|
66
|
-
Flipper ->
|
|
67
|
-
RFID
|
|
66
|
+
Flipper -> Obs [label="operator observation", color="#f59e0b"];
|
|
67
|
+
RFID -> Obs [label="operator observation", color="#f59e0b"];
|
|
68
68
|
Freq -> Scan [label="plan_bw/step", color="#f59e0b"];
|
|
69
69
|
Scan -> Obs [color="#a78bfa"];
|
|
70
70
|
Front -> Xrf [style=dashed, color="#fbbf24", constraint=false];
|
|
@@ -30,7 +30,7 @@ digraph "PWN_SessionsCron" {
|
|
|
30
30
|
}
|
|
31
31
|
{rank=same; Reflect; Fire; Resume}
|
|
32
32
|
|
|
33
|
-
Next [label="Next pwn-ai session\
|
|
33
|
+
Next [label="Next pwn-ai session\nselected context / new prompt jobs", fillcolor="#7dd3fc"];
|
|
34
34
|
|
|
35
35
|
Now -> Sess [label="append", color="#f59e0b"];
|
|
36
36
|
Now -> Cron [label="cron_create", color="#f59e0b"];
|
|
@@ -23,16 +23,16 @@ digraph "PWN_Swarm" {
|
|
|
23
23
|
Ask [label="agent_ask\n1 turn → 1 persona", fillcolor="#c4b5fd"];
|
|
24
24
|
Debate [label="agent_debate\nround-robin critique", fillcolor="#c4b5fd"];
|
|
25
25
|
Broadcast [label="agent_broadcast\nfan-out ensemble", fillcolor="#c4b5fd"];
|
|
26
|
-
Escalate [label="Loop
|
|
26
|
+
Escalate [label="Loop escalation (private)\n(local stuck ≥N fails)\n→ frontier hint", fillcolor="#c4b5fd", penwidth=2];
|
|
27
27
|
}
|
|
28
28
|
{rank=same; Spawn; Ask; Debate; Broadcast; Escalate}
|
|
29
29
|
|
|
30
30
|
/* L2 ─ personas */
|
|
31
31
|
subgraph cluster_personas {
|
|
32
|
-
label="
|
|
32
|
+
label="Illustrative personas (each = nested Loop; not completion proof)"; fontcolor="#a7f3d0";
|
|
33
33
|
style=rounded; color="#047857"; bgcolor="#022c22"; penwidth=2;
|
|
34
34
|
Red [label="🔴 red_team\nengine: grok\ntoolsets: terminal,pwn", fillcolor="#6ee7b7"];
|
|
35
|
-
Blue [label="🔵 blue_team\nengine: anthropic\ntoolsets: pwn,
|
|
35
|
+
Blue [label="🔵 blue_team\nengine: anthropic\ntoolsets: pwn,extrospection", fillcolor="#6ee7b7"];
|
|
36
36
|
Recon [label="🛰 recon\nengine: ollama\ntoolsets: terminal,memory", fillcolor="#6ee7b7"];
|
|
37
37
|
Xpl [label="💥 exploit_dev\nengine: openai\ntoolsets: pwn,skills", fillcolor="#6ee7b7"];
|
|
38
38
|
}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
digraph "PWN_TaskSummarizer" {
|
|
2
2
|
graph [
|
|
3
|
-
label=<<B>PWN::AI::Agent::TaskSummarizer - executive briefs</B><BR/><FONT POINT-SIZE="11" COLOR="#94a3b8">
|
|
3
|
+
label=<<B>PWN::AI::Agent::TaskSummarizer - executive briefs</B><BR/><FONT POINT-SIZE="11" COLOR="#94a3b8">Task compass and UI only; request evidence governs completion</FONT>>,
|
|
4
4
|
labelloc=t, fontsize=20, fontname="Helvetica",
|
|
5
5
|
rankdir=TB, splines=spline, nodesep=0.55, ranksep=0.9,
|
|
6
6
|
bgcolor="#0f172a", fontcolor="#e2e8f0", pad=0.6, newrank=true, compound=true
|
|
@@ -47,7 +47,7 @@ digraph "PWN_TaskSummarizer" {
|
|
|
47
47
|
label="Execution (not on task row)"; fontcolor="#fde68a";
|
|
48
48
|
style=rounded; color="#a16207"; bgcolor="#422006"; penwidth=2;
|
|
49
49
|
Tools [label="Dispatch tools\nshell · pwn_eval · CORE_TOOLS\nown REPL lines", fillcolor="#fcd34d"];
|
|
50
|
-
Rec [label="record!\
|
|
50
|
+
Rec [label="record!\nevidence/phase-guided plan_idx\n(silent unless verbose)", fillcolor="#fcd34d"];
|
|
51
51
|
Flush [label="flush! / emit!\noptional closing brief", fillcolor="#fcd34d"];
|
|
52
52
|
}
|
|
53
53
|
{rank=same; Tools; Rec; Flush}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
digraph "PWN_Web" {
|
|
2
2
|
graph [
|
|
3
|
-
label=<<B>Web Application Testing</B><BR/><FONT POINT-SIZE="11" COLOR="#94a3b8">
|
|
3
|
+
label=<<B>Web Application Testing</B><BR/><FONT POINT-SIZE="11" COLOR="#94a3b8">Operator workflow: proxy evidence and separate source scans → reports</FONT>>,
|
|
4
4
|
labelloc=t, fontsize=20, fontname="Helvetica",
|
|
5
5
|
rankdir=LR, splines=spline, nodesep=0.45, ranksep=1.2,
|
|
6
6
|
bgcolor="#0f172a", fontcolor="#e2e8f0", pad=0.6, newrank=true
|
|
@@ -28,7 +28,7 @@ digraph "PWN_Web" {
|
|
|
28
28
|
subgraph cluster_deep {
|
|
29
29
|
label="Deep Analysis"; fontcolor="#ddd6fe"; style=rounded;
|
|
30
30
|
color="#6d28d9"; bgcolor="#2e1065";
|
|
31
|
-
SAST [label="PWN::SAST\n48
|
|
31
|
+
SAST [label="PWN::SAST\n48 modules; source tree input", fillcolor="#c4b5fd"];
|
|
32
32
|
XSS [label="pwn_xss_dom_vectors\nweb_cache_deception", fillcolor="#c4b5fd"];
|
|
33
33
|
API [label="Plugins::OpenAPI\nGraphQL introspection", fillcolor="#c4b5fd"];
|
|
34
34
|
}
|
|
@@ -40,7 +40,8 @@ digraph "PWN_Web" {
|
|
|
40
40
|
TB -> Burp [label="proxy 127.0.0.1:8080", color="#f59e0b", penwidth=2];
|
|
41
41
|
Spider -> Burp [color="#f59e0b"];
|
|
42
42
|
WWW -> Zap [color="#f59e0b"];
|
|
43
|
-
|
|
43
|
+
Source [label="Separately supplied source tree", fillcolor="#7dd3fc"];
|
|
44
|
+
Source -> SAST [color="#a78bfa"];
|
|
44
45
|
Burp -> XSS [color="#a78bfa"];
|
|
45
46
|
Zap -> API [color="#a78bfa"];
|
|
46
47
|
SAST -> Report [color="#38bdf8"];
|
|
@@ -43,9 +43,10 @@ digraph "PWN_ZeroDay" {
|
|
|
43
43
|
Surface -> AI [color="#38bdf8"];
|
|
44
44
|
SAST -> Obs [color="#f59e0b"];
|
|
45
45
|
AI -> Obs [color="#f59e0b"];
|
|
46
|
-
Obs
|
|
47
|
-
|
|
48
|
-
|
|
46
|
+
Obs -> Fuzz [label="lead, not a finding", color="#f59e0b"];
|
|
47
|
+
Obs -> TB [label="lead", color="#f59e0b"];
|
|
48
|
+
Fuzz -> Ver [label="stored PoC", color="#f59e0b"];
|
|
49
|
+
TB -> Ver [label="reproduction", color="#f59e0b"];
|
|
49
50
|
Fuzz -> Asm [color="#fb7185"];
|
|
50
51
|
TB -> MSF [color="#fb7185"];
|
|
51
52
|
Asm -> H1 [color="#a78bfa"];
|
|
@@ -10,7 +10,7 @@
|
|
|
10
10
|
<title>PWN_Driver</title>
|
|
11
11
|
<polygon fill="#0f172a" stroke="none" points="-43.2,43.2 -43.2,-397.2 684.45,-397.2 684.45,43.2 -43.2,43.2"/>
|
|
12
12
|
<text xml:space="preserve" text-anchor="start" x="191.62" y="-332" font-family="sans-Serif" font-weight="bold" font-size="20.00" fill="#e2e8f0">Driver Anatomy - bin/pwn_*</text>
|
|
13
|
-
<text xml:space="preserve" text-anchor="start" x="
|
|
13
|
+
<text xml:space="preserve" text-anchor="start" x="120.75" y="-320.55" font-family="sans-Serif" font-size="11.00" fill="#94a3b8">56 executables (pwn / pwn-ai / pwn-capd + 53 pwn_*) · thin CLI over PWN::Plugins</text>
|
|
14
14
|
<g id="clust1" class="cluster">
|
|
15
15
|
<title>cluster_d</title>
|
|
16
16
|
<path fill="#022c22" stroke="#047857" d="M276,-8C276,-8 419,-8 419,-8 425,-8 431,-14 431,-20 431,-20 431,-223 431,-223 431,-229 425,-235 419,-235 419,-235 276,-235 276,-235 270,-235 264,-229 264,-223 264,-223 264,-20 264,-20 264,-14 270,-8 276,-8"/>
|