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.
Files changed (112) hide show
  1. checksums.yaml +4 -4
  2. data/Gemfile +3 -3
  3. data/documentation/AI-Integration.md +4 -4
  4. data/documentation/AWS.md +10 -9
  5. data/documentation/Agent-Tool-Registry.md +20 -17
  6. data/documentation/Blockchain.md +3 -2
  7. data/documentation/Bounty.md +8 -6
  8. data/documentation/BurpSuite.md +6 -10
  9. data/documentation/CLI-Drivers.md +7 -4
  10. data/documentation/Capability-Broker-Sandbox.md +1 -1
  11. data/documentation/Configuration.md +23 -15
  12. data/documentation/Contributing.md +3 -3
  13. data/documentation/Cron.md +3 -2
  14. data/documentation/Diagrams.md +9 -3
  15. data/documentation/Drivers.md +12 -6
  16. data/documentation/Extrospection.md +25 -5
  17. data/documentation/FFI.md +15 -25
  18. data/documentation/Fuzzing.md +13 -13
  19. data/documentation/General-PWN-Usage.md +7 -4
  20. data/documentation/Harness-Evaluation.md +90 -3
  21. data/documentation/Home.md +6 -5
  22. data/documentation/How-PWN-Works.md +9 -10
  23. data/documentation/Installation.md +12 -11
  24. data/documentation/Metasploit.md +13 -19
  25. data/documentation/Mistakes.md +2 -2
  26. data/documentation/NmapIt.md +6 -3
  27. data/documentation/Operability.md +99 -0
  28. data/documentation/Persistence.md +3 -2
  29. data/documentation/Plugin-Degradation.md +4 -2
  30. data/documentation/Plugins.md +4 -11
  31. data/documentation/Policy-Benchmark.md +4 -0
  32. data/documentation/Reinforcement-Learning.md +19 -3
  33. data/documentation/Reporting.md +6 -5
  34. data/documentation/SAST.md +15 -10
  35. data/documentation/SDR-Decoder-Coverage.md +10 -4
  36. data/documentation/SDR.md +28 -40
  37. data/documentation/Session-Workflow.md +25 -12
  38. data/documentation/Sessions.md +7 -0
  39. data/documentation/Skills-Memory-Learning.md +11 -4
  40. data/documentation/Swarm.md +6 -0
  41. data/documentation/Transparent-Browser.md +1 -1
  42. data/documentation/Troubleshooting.md +6 -3
  43. data/documentation/What-is-PWN.md +4 -4
  44. data/documentation/Why-PWN.md +1 -1
  45. data/documentation/diagrams/agent-tool-registry.svg +219 -180
  46. data/documentation/diagrams/ai-integration-tool-calling.svg +35 -34
  47. data/documentation/diagrams/code-scanning-sast.svg +78 -78
  48. data/documentation/diagrams/cron-scheduling.svg +165 -145
  49. data/documentation/diagrams/dot/_THEME.md +6 -4
  50. data/documentation/diagrams/dot/agent-tool-registry.dot +6 -2
  51. data/documentation/diagrams/dot/ai-integration-tool-calling.dot +1 -1
  52. data/documentation/diagrams/dot/code-scanning-sast.dot +8 -8
  53. data/documentation/diagrams/dot/cron-scheduling.dot +2 -0
  54. data/documentation/diagrams/dot/driver-framework.dot +1 -1
  55. data/documentation/diagrams/dot/extrospection-world-awareness.dot +2 -2
  56. data/documentation/diagrams/dot/fuzzing-workflow.dot +3 -3
  57. data/documentation/diagrams/dot/history-to-drivers.dot +1 -1
  58. data/documentation/diagrams/dot/memory-skills-detailed.dot +3 -3
  59. data/documentation/diagrams/dot/mistakes-negative-feedback.dot +2 -2
  60. data/documentation/diagrams/dot/overall-pwn-architecture.dot +33 -121
  61. data/documentation/diagrams/dot/persistence-filesystem.dot +2 -2
  62. data/documentation/diagrams/dot/plugin-ecosystem.dot +2 -2
  63. data/documentation/diagrams/dot/pwn-ai-feedback-learning-loop.dot +31 -167
  64. data/documentation/diagrams/dot/pwn-repl-prototyping.dot +1 -1
  65. data/documentation/diagrams/dot/reinforcement-learning.dot +15 -7
  66. data/documentation/diagrams/dot/reporting-pipeline.dot +5 -3
  67. data/documentation/diagrams/dot/reverse-engineering-flow.dot +3 -3
  68. data/documentation/diagrams/dot/sdr-radio-flow.dot +5 -5
  69. data/documentation/diagrams/dot/sessions-cron-automation.dot +1 -1
  70. data/documentation/diagrams/dot/swarm-multi-agent.dot +3 -3
  71. data/documentation/diagrams/dot/task-summarizer.dot +2 -2
  72. data/documentation/diagrams/dot/web-application-testing.dot +4 -3
  73. data/documentation/diagrams/dot/zero-day-research-flow.dot +4 -3
  74. data/documentation/diagrams/driver-framework.svg +1 -1
  75. data/documentation/diagrams/extrospection-world-awareness.svg +178 -178
  76. data/documentation/diagrams/fuzzing-workflow.svg +58 -58
  77. data/documentation/diagrams/history-to-drivers.svg +42 -42
  78. data/documentation/diagrams/memory-skills-detailed.svg +210 -210
  79. data/documentation/diagrams/mistakes-negative-feedback.svg +116 -116
  80. data/documentation/diagrams/overall-pwn-architecture.svg +248 -404
  81. data/documentation/diagrams/persistence-filesystem.svg +143 -143
  82. data/documentation/diagrams/plugin-ecosystem.svg +100 -100
  83. data/documentation/diagrams/pwn-ai-feedback-learning-loop.svg +233 -752
  84. data/documentation/diagrams/pwn-repl-prototyping.svg +27 -27
  85. data/documentation/diagrams/reinforcement-learning.svg +295 -221
  86. data/documentation/diagrams/reporting-pipeline.svg +94 -80
  87. data/documentation/diagrams/reverse-engineering-flow.svg +31 -31
  88. data/documentation/diagrams/sdr-radio-flow.svg +157 -155
  89. data/documentation/diagrams/sessions-cron-automation.svg +13 -13
  90. data/documentation/diagrams/swarm-multi-agent.svg +86 -86
  91. data/documentation/diagrams/task-summarizer.svg +57 -57
  92. data/documentation/diagrams/web-application-testing.svg +81 -75
  93. data/documentation/diagrams/zero-day-research-flow.svg +101 -92
  94. data/documentation/pwn-REPL.md +5 -3
  95. data/documentation/pwn-ai-Agent.md +18 -14
  96. data/documentation/pwn_silent_help_learn_demo.gif +0 -0
  97. data/etc/default_skills/pwn/ai/agent/learning/SKILL.md +1 -0
  98. data/lib/pwn/ai/agent/learning.rb +46 -1
  99. data/lib/pwn/ai/agent/loop.rb +6 -3
  100. data/lib/pwn/ai/agent/policy_evaluation.rb +5 -1
  101. data/lib/pwn/ai/agent/reward.rb +9 -0
  102. data/lib/pwn/version.rb +1 -1
  103. data/spec/fixtures/harness/completion_regressions.json +10 -0
  104. data/spec/fixtures/harness/completion_regressions.json.sha256 +1 -0
  105. data/spec/integration/harness_evaluation_spec.rb +13 -0
  106. data/spec/lib/pwn/ai/agent/learning_spec.rb +22 -0
  107. data/spec/lib/pwn/ai/agent/loop_spec.rb +39 -0
  108. data/spec/lib/pwn/ai/agent/policy_evaluation_spec.rb +6 -1
  109. data/spec/lib/pwn/ai/agent/reward_spec.rb +21 -0
  110. data/spec/support/harness/evaluate.rb +1 -1
  111. data/third_party/pwn_rdoc.jsonl +2 -1
  112. metadata +10 -7
@@ -1,168 +1,32 @@
1
- digraph "PWN_AI_Feedback_Learning_Loop" {
2
- graph [
3
- label=<<B>pwn-ai - Closed Self-Improvement Loop</B><BR/><FONT POINT-SIZE="11" COLOR="#94a3b8">Introspection (self) ⟷ Extrospection (world) · Mistakes (negative) · Reward + Curriculum + Policy (RL) · Local-model scaffolding</FONT>>,
4
- labelloc=t, fontsize=20, fontname="Helvetica",
5
- rankdir=TB, splines=spline, nodesep=0.6, ranksep=1.0,
6
- bgcolor="#0f172a", fontcolor="#e2e8f0", pad=0.6, newrank=true, compound=true
7
- ];
8
- node [fontname="Helvetica", fontsize=11, style="filled,rounded",
9
- shape=box, penwidth=1.4, color="#334155", fontcolor="#0f172a"];
10
- edge [fontname="Helvetica", fontsize=9, color="#94a3b8",
11
- fontcolor="#cbd5e1", penwidth=1.3, arrowsize=0.8];
12
-
13
- /* L0 ─ actors */
14
- User [label="👤 Researcher", fillcolor="#7dd3fc"];
15
- LLM [label="🤖 LLM Provider", fillcolor="#c4b5fd"];
16
- World [label="🌍 Host · Net · Repo\nToolchain · RF · Web · Intel", fillcolor="#fda4af"];
17
- {rank=same; User; LLM; World}
18
-
19
- /* L1 ─ agent core */
20
- subgraph cluster_core {
21
- label="PWN::AI::Agent::Loop · budget pressure · TaskSummarizer"; fontcolor="#ddd6fe";
22
- style=rounded; color="#6d28d9"; bgcolor="#2e1065"; penwidth=2;
23
- Prompt [label="PromptBuilder\nbudget · MemoryIndex\nrelevance-ranked ctx", fillcolor="#c4b5fd"];
24
- Dispatch [label="Dispatch\ntolerant parse\nToolGuard · repair_name", fillcolor="#c4b5fd"];
25
- Router [label="Registry\ntool_router\nCORE + top-K", fillcolor="#c4b5fd"];
26
- Plan [label="plan_first\n(pre-pass, local)", fillcolor="#c4b5fd"];
27
- TaskSum [label="TaskSummarizer\nemit_plan! · about_to\ndedup last_brief_fp", fillcolor="#c4b5fd", penwidth=2];
28
- Escalate [label="escalate\n>=N fails → Swarm hint", fillcolor="#c4b5fd", penwidth=2];
29
- Result [label="Result\nfinal answer", fillcolor="#c4b5fd"];
30
- }
31
- {rank=same; Prompt; Router; Plan; TaskSum; Dispatch; Escalate; Result}
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\nextro_verify caps/floors judge", fillcolor="#c4b5fd"];
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 -> R5 [label="terminal", color="#a78bfa"];
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:true", color="#f59e0b"];
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="LoRA", color="#fb7185", penwidth=2];
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="handoff", color="#34d399"];
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 -> DD [color="#a78bfa"];
51
- Rphone -> Jira [color="#a78bfa"];
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 &amp; Binary Exploitation</B><BR/><FONT POINT-SIZE="11" COLOR="#94a3b8">pwn-asm · Assembly · XXD · FFI · Radare2 banners</FONT>>,
3
+ label=<<B>Reverse Engineering &amp; 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="Plugins::XXD\nhex dump / patch", fillcolor="#6ee7b7"];
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="PWN::FFI::Stdio\nnative calls", fillcolor="#fda4af"];
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 &amp; RF Hacking</B><BR/><FONT POINT-SIZE="11" COLOR="#94a3b8">GQRX · FlipperZero · RFIDler · FrequencyAllocation · Decoder::* (20+Base/DSP) · Base.run_iq (true-air) · FFI::{Volk,Liquid,FFTW,RTLSdr,HackRF,AdalmPluto,SoapySDR}</FONT>>,
3
+ label=<<B>PWN::SDR - Software-Defined Radio &amp; 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 (TRUE-AIR I/Q)\nrun_native (48 kHz UDP)\nrun_detector (energy)\nresolve_iq_source :auto", fillcolor="#c4b5fd", penwidth=2];
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 -> Freq [color="#f59e0b"];
67
- RFID -> Scan [color="#f59e0b"];
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\ncontext restored", fillcolor="#7dd3fc"];
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.escalate\n(local stuck ≥N fails)\n→ frontier hint", fillcolor="#c4b5fd", penwidth=2];
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="Personas (each = full PWN::AI::Agent::Loop)"; fontcolor="#a7f3d0";
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,extro", fillcolor="#6ee7b7"];
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">every request is a goal: emit_plan! then about_to then tools (no request type)</FONT>>,
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!\nadvance plan_idx\n(silent unless verbose)", fillcolor="#fcd34d"];
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">TransparentBrowser → BurpSuite (preferred) → SAST → Reports</FONT>>,
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 rules on source", fillcolor="#c4b5fd"];
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
- Burp -> SAST [color="#a78bfa"];
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 -> Ver [label="lead, not a finding", color="#f59e0b"];
47
- Ver -> Fuzz [color="#f59e0b"];
48
- Ver -> TB [color="#f59e0b"];
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 &#45; bin/pwn_*</text>
13
- <text xml:space="preserve" text-anchor="start" x="169.5" y="-320.55" font-family="sans-Serif" font-size="11.00" fill="#94a3b8">54 executables (pwn + 53 pwn_*) · thin CLI over PWN::Plugins</text>
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&#45;ai / pwn&#45;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"/>