pwn 0.5.703 → 0.5.704
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/Rakefile +7 -0
- data/build_gem.sh +1 -1
- data/documentation/General-PWN-Usage.md +2 -1
- data/documentation/Installation.md +5 -3
- data/documentation/pwn-REPL.md +2 -1
- data/etc/default_skills/pwn/ai/agent/learning/SKILL.md +4 -0
- data/etc/default_skills/pwn/ai/agent/loop/SKILL.md +4 -0
- data/etc/default_skills/pwn/ai/agent/mistakes/SKILL.md +4 -0
- data/etc/default_skills/pwn/ai/agent/open_goal/SKILL.md +3 -0
- data/etc/default_skills/pwn/ai/agent/policy/SKILL.md +11 -0
- data/etc/default_skills/pwn/ai/agent/prompt_cache/SKILL.md +1 -0
- data/etc/default_skills/pwn/ai/agent/reward/SKILL.md +1 -0
- data/etc/default_skills/pwn/ai/agent/task_summarizer/SKILL.md +12 -0
- data/etc/default_skills/pwn/ai/agent/tool_guard/SKILL.md +8 -0
- data/etc/default_skills/pwn/ai/agent/turn_finalizer/SKILL.md +5 -0
- data/etc/default_skills/pwn/ai/http_retry/SKILL.md +1 -0
- data/etc/default_skills/pwn/banner/matrix/SKILL.md +1 -0
- data/etc/default_skills/pwn/cron/SKILL.md +7 -0
- data/etc/default_skills/pwn/ffi/SKILL.md +1 -0
- data/etc/default_skills/pwn/ffi/adalm_pluto/SKILL.md +2 -0
- data/etc/default_skills/pwn/ffi/fftw/SKILL.md +10 -0
- data/etc/default_skills/pwn/ffi/hack_rf/SKILL.md +22 -0
- data/etc/default_skills/pwn/ffi/liquid/SKILL.md +33 -0
- data/etc/default_skills/pwn/ffi/rtl_sdr/SKILL.md +18 -0
- data/etc/default_skills/pwn/ffi/soapy_sdr/SKILL.md +24 -0
- data/etc/default_skills/pwn/ffi/stdio/SKILL.md +4 -0
- data/etc/default_skills/pwn/ffi/volk/SKILL.md +17 -0
- data/etc/default_skills/pwn/memory/SKILL.md +4 -0
- data/etc/default_skills/pwn/memory_index/SKILL.md +1 -0
- data/etc/default_skills/pwn/migrate/SKILL.md +1 -0
- data/etc/default_skills/pwn/module_skills/SKILL.md +2 -0
- data/etc/default_skills/pwn/plugins/log/SKILL.md +16 -0
- data/etc/default_skills/pwn/plugins/pony/SKILL.md +2 -0
- data/etc/default_skills/pwn/plugins/repl/SKILL.md +4 -0
- data/etc/default_skills/pwn/plugins/tty_spinner/SKILL.md +1 -0
- data/etc/default_skills/pwn/plugins/vault/SKILL.md +1 -0
- data/etc/default_skills/pwn/sdr/decoder/adsb/SKILL.md +1 -0
- data/etc/default_skills/pwn/sdr/decoder/base/SKILL.md +1 -0
- data/etc/default_skills/pwn/sdr/decoder/dsp/SKILL.md +3 -0
- data/etc/default_skills/pwn/sdr/decoder/flex/SKILL.md +1 -0
- data/etc/default_skills/pwn/sessions/SKILL.md +1 -0
- data/etc/default_skills/pwn/version/SKILL.md +1 -1
- data/lib/pwn/ai/agent/loop.rb +25 -8
- data/lib/pwn/config.rb +90 -91
- data/lib/pwn/module_skills.rb +71 -1
- data/lib/pwn/plugins/github.rb +1 -1
- data/lib/pwn/plugins/log.rb +71 -8
- data/lib/pwn/plugins/repl.rb +35 -3
- data/lib/pwn/plugins/tty_spinner.rb +1 -1
- data/lib/pwn/plugins/zaproxy.rb +1 -1
- data/lib/pwn/version.rb +1 -1
- data/spec/integration/config_spec.rb +29 -1
- data/spec/lib/pwn/ai/agent/loop_spec.rb +12 -0
- data/spec/lib/pwn/module_skills_spec.rb +12 -0
- data/spec/lib/pwn/plugins/log_spec.rb +88 -9
- data/spec/lib/pwn/plugins/repl_pwn_vault_spec.rb +37 -1
- data/spec/lib/pwn/plugins/repl_spec.rb +16 -1
- data/third_party/pwn_rdoc.jsonl +14 -2
- metadata +1 -1
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA256:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: 4bd3437e2c7ee97e783659b63d69dd21368ce47a284c29f97b6d8ddd64631134
|
|
4
|
+
data.tar.gz: 9e71c1bbabee3abd02f3d4f252fa1eed48854f2c2379b2df914515ed2a593775
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: ffb5ae45ac796c161ab9fa29816c823e1f937404f845a23bf3757d412f82a5ccbe950d93bfe6b1771af1ee8ffefd9b8374fbda07024bec7278195c969a04f0be
|
|
7
|
+
data.tar.gz: 649a698b9da06319331c4d3289c603c0907e763f6a4a2a508f6c1a97426a969483fea38766002dbf364830a574cc0b5012d44ae8ea1881303c61acae4eb427b7
|
data/Rakefile
CHANGED
|
@@ -33,3 +33,10 @@ end
|
|
|
33
33
|
default_tasks = %i[spec rubocop]
|
|
34
34
|
default_tasks << :rerdoc if defined?(RDoc::Task)
|
|
35
35
|
task default: default_tasks
|
|
36
|
+
|
|
37
|
+
desc 'Regenerate etc/default_skills/pwn from live PWN modules'
|
|
38
|
+
task :module_skills do
|
|
39
|
+
require 'pwn'
|
|
40
|
+
PWN::ModuleSkills.refresh!
|
|
41
|
+
end
|
|
42
|
+
Rake::Task[:spec].enhance([:module_skills])
|
data/build_gem.sh
CHANGED
|
@@ -45,7 +45,8 @@ history # what you've typed → copy into a driver
|
|
|
45
45
|
| `pwn-ai-sessions` | List / view / delete transcripts |
|
|
46
46
|
| `pwn-ai-cron` | List / run scheduled jobs |
|
|
47
47
|
| `pwn-ai-delegate` | Hand a task to a Swarm persona |
|
|
48
|
-
| `toggle-debug` | Stage log per request to `/tmp/pwn-ai-DEBUG-<SESSION_ID>-RN.log`
|
|
48
|
+
| `toggle-debug` | Stage log per request to `/tmp/pwn-ai-DEBUG-<SESSION_ID>-RN.log` |
|
|
49
|
+
| `toggle-trace` | Same as `toggle-debug` plus TracePoint; ENTER after each loop step. Pry.config, not Env. Off turns both off. |
|
|
49
50
|
| `toggle-pwn-ai-speaks` | TTS every final answer on/off |
|
|
50
51
|
| `welcome-banner` | Redraw a random `PWN::Banner` |
|
|
51
52
|
| `toggle-pager` | Pry pager on/off |
|
|
@@ -265,12 +265,14 @@ The first `pwn` launch creates `~/.pwn/` and an **encrypted**
|
|
|
265
265
|
- `att&ck`
|
|
266
266
|
|
|
267
267
|
Source lives in the gem at `etc/default_skills/`. `PWN::Config.install_default_skills`
|
|
268
|
-
|
|
269
|
-
module skills under `etc/default_skills/pwn/`
|
|
268
|
+
walks every `SKILL.md` recursively (idempotent SOP copies; never overwrites an
|
|
269
|
+
edited SOP `SKILL.md`). Generated module skills under `etc/default_skills/pwn/`
|
|
270
270
|
`PWN::` module, plus `references/` when the source has CWE/NIST/URLs) are
|
|
271
271
|
copied to `~/.pwn/skills/pwn/` and **are** overwritten on
|
|
272
272
|
`pwn setup --migrate` / first launch so they stay in sync with `lib/pwn`.
|
|
273
|
-
`bundle exec rake`
|
|
273
|
+
`bundle exec rake` runs `:module_skills` (`PWN::ModuleSkills.refresh!`)
|
|
274
|
+
before spec so `etc/default_skills/pwn` matches live `PWN::` class methods.
|
|
275
|
+
`pwn setup --migrate` and `pwn-ai` start copy that tree to `~/.pwn/skills/pwn`. Add at least one
|
|
274
276
|
LLM engine key with the `pwn-vault` REPL command to enable `pwn-ai` - see
|
|
275
277
|
[Configuration](Configuration.md). `pwn setup` will report the AI-engine
|
|
276
278
|
row as `MISSING` until a key is set.
|
data/documentation/pwn-REPL.md
CHANGED
|
@@ -27,7 +27,8 @@ commands.
|
|
|
27
27
|
| `pwn-ai-cron` | `PWN::Cron` | List/run/toggle scheduled jobs |
|
|
28
28
|
| `pwn-ai-delegate` | `Agent::Swarm` | Send one request to a persona |
|
|
29
29
|
| `pwn-irc` | *(deprecated)* | Prints a pointer to `Agent::Swarm` - the IRC daemon transport is gone |
|
|
30
|
-
| `toggle-debug` | `Agent::Loop` / `Plugins::Log` | Stage log per operator request to `/tmp/pwn-ai-DEBUG-<SESSION_ID>-RN.log
|
|
30
|
+
| `toggle-debug` | `Agent::Loop` / `Plugins::Log` | Stage log per operator request to `/tmp/pwn-ai-DEBUG-<SESSION_ID>-RN.log` |
|
|
31
|
+
| `toggle-trace` | `Agent::Loop` / `Plugins::Log` | Turns `toggle-debug` on with TracePoint; ENTER after each engine/tool step. Pry.config, not Env. Off turns both off. |
|
|
31
32
|
| `toggle-pwn-ai-speaks` | `Plugins::Voice` | TTS every final answer on/off |
|
|
32
33
|
| `welcome-banner` | `PWN::Banner` | Redraw a random banner |
|
|
33
34
|
| `toggle-pager` | Pry | Page long output on/off |
|
|
@@ -63,6 +63,17 @@ PWN::AI::Agent::Policy.state(opts)
|
|
|
63
63
|
- `help`
|
|
64
64
|
- `warmup`
|
|
65
65
|
- `maybe_warmup`
|
|
66
|
+
- `attach_episode!`
|
|
67
|
+
- `cold?`
|
|
68
|
+
- `detach_episode!`
|
|
69
|
+
- `enabled?`
|
|
70
|
+
- `episode_budget_met?`
|
|
71
|
+
- `lean!`
|
|
72
|
+
- `maybe_warmup!`
|
|
73
|
+
- `update_pg!`
|
|
74
|
+
- `update_q!`
|
|
75
|
+
- `warm?`
|
|
76
|
+
- `warmup!`
|
|
66
77
|
|
|
67
78
|
## Source
|
|
68
79
|
|
|
@@ -64,6 +64,18 @@ PWN::AI::Agent::TaskSummarizer.enabled(opts)
|
|
|
64
64
|
- `flush`
|
|
65
65
|
- `authors`
|
|
66
66
|
- `help`
|
|
67
|
+
- `apply_prm_advancement!`
|
|
68
|
+
- `emit!`
|
|
69
|
+
- `emit_plan!`
|
|
70
|
+
- `enabled?`
|
|
71
|
+
- `flush!`
|
|
72
|
+
- `llm_plan_enabled?`
|
|
73
|
+
- `needs_task_breakdown?`
|
|
74
|
+
- `plan_open?`
|
|
75
|
+
- `record!`
|
|
76
|
+
- `tool_jargon_task?`
|
|
77
|
+
- `unify_plan!`
|
|
78
|
+
- `verbose?`
|
|
67
79
|
|
|
68
80
|
## Source
|
|
69
81
|
|
|
@@ -54,6 +54,14 @@ PWN::AI::Agent::ToolGuard.present(opts)
|
|
|
54
54
|
- `timeout_prior_count`
|
|
55
55
|
- `authors`
|
|
56
56
|
- `help`
|
|
57
|
+
- `bashism?`
|
|
58
|
+
- `note_timeout!`
|
|
59
|
+
- `placeholder?`
|
|
60
|
+
- `present?`
|
|
61
|
+
- `protect_core_constants!`
|
|
62
|
+
- `protect_http!`
|
|
63
|
+
- `reset_timeout_budget!`
|
|
64
|
+
- `shell_bash?`
|
|
57
65
|
|
|
58
66
|
## Source
|
|
59
67
|
|
|
@@ -100,6 +100,13 @@ PWN::Cron.cron_dir(opts)
|
|
|
100
100
|
- `uninstall_schtasks_job`
|
|
101
101
|
- `authors`
|
|
102
102
|
- `help`
|
|
103
|
+
- `apply_native?`
|
|
104
|
+
- `cron_enabled?`
|
|
105
|
+
- `crontab_available?`
|
|
106
|
+
- `due?`
|
|
107
|
+
- `schtasks_available?`
|
|
108
|
+
- `systemd_user_available?`
|
|
109
|
+
- `windows?`
|
|
103
110
|
|
|
104
111
|
## References
|
|
105
112
|
|
|
@@ -40,6 +40,16 @@ PWN::FFI::FFTW.available(opts)
|
|
|
40
40
|
- `cfft`
|
|
41
41
|
- `authors`
|
|
42
42
|
- `help`
|
|
43
|
+
- `available?`
|
|
44
|
+
- `fftwf_cleanup`
|
|
45
|
+
- `fftwf_destroy_plan`
|
|
46
|
+
- `fftwf_execute`
|
|
47
|
+
- `fftwf_free`
|
|
48
|
+
- `fftwf_malloc`
|
|
49
|
+
- `fftwf_plan_dft_1d`
|
|
50
|
+
- `fftwf_plan_dft_c2r_1d`
|
|
51
|
+
- `fftwf_plan_dft_r2c_1d`
|
|
52
|
+
- `load_error`
|
|
43
53
|
|
|
44
54
|
## Source
|
|
45
55
|
|
|
@@ -45,6 +45,28 @@ PWN::FFI::HackRF.available(opts)
|
|
|
45
45
|
- `capture`
|
|
46
46
|
- `authors`
|
|
47
47
|
- `help`
|
|
48
|
+
- `available?`
|
|
49
|
+
- `hackrf_board_id_name`
|
|
50
|
+
- `hackrf_board_id_read`
|
|
51
|
+
- `hackrf_close`
|
|
52
|
+
- `hackrf_error_name`
|
|
53
|
+
- `hackrf_exit`
|
|
54
|
+
- `hackrf_init`
|
|
55
|
+
- `hackrf_is_streaming`
|
|
56
|
+
- `hackrf_library_release`
|
|
57
|
+
- `hackrf_library_version`
|
|
58
|
+
- `hackrf_open`
|
|
59
|
+
- `hackrf_open_by_serial`
|
|
60
|
+
- `hackrf_set_amp_enable`
|
|
61
|
+
- `hackrf_set_baseband_filter_bandwidth`
|
|
62
|
+
- `hackrf_set_freq`
|
|
63
|
+
- `hackrf_set_lna_gain`
|
|
64
|
+
- `hackrf_set_sample_rate`
|
|
65
|
+
- `hackrf_set_vga_gain`
|
|
66
|
+
- `hackrf_start_rx`
|
|
67
|
+
- `hackrf_stop_rx`
|
|
68
|
+
- `hackrf_version_string_read`
|
|
69
|
+
- `load_error`
|
|
48
70
|
|
|
49
71
|
## Source
|
|
50
72
|
|
|
@@ -44,6 +44,39 @@ PWN::FFI::Liquid.available(opts)
|
|
|
44
44
|
- `mfsk_demod`
|
|
45
45
|
- `authors`
|
|
46
46
|
- `help`
|
|
47
|
+
- `available?`
|
|
48
|
+
- `firfilt_rrrf_create_dc_blocker`
|
|
49
|
+
- `firfilt_rrrf_create_kaiser`
|
|
50
|
+
- `firfilt_rrrf_destroy`
|
|
51
|
+
- `firfilt_rrrf_execute_block`
|
|
52
|
+
- `firfilt_rrrf_reset`
|
|
53
|
+
- `freqdem_create`
|
|
54
|
+
- `freqdem_demodulate_block`
|
|
55
|
+
- `freqdem_destroy`
|
|
56
|
+
- `freqdem_print`
|
|
57
|
+
- `freqdem_reset`
|
|
58
|
+
- `fskdem_create`
|
|
59
|
+
- `fskdem_demodulate`
|
|
60
|
+
- `fskdem_destroy`
|
|
61
|
+
- `gmskdem_create`
|
|
62
|
+
- `gmskdem_demodulate`
|
|
63
|
+
- `gmskdem_destroy`
|
|
64
|
+
- `gmskdem_reset`
|
|
65
|
+
- `load_error`
|
|
66
|
+
- `msresamp_crcf_create`
|
|
67
|
+
- `msresamp_crcf_destroy`
|
|
68
|
+
- `msresamp_crcf_execute`
|
|
69
|
+
- `msresamp_rrrf_create`
|
|
70
|
+
- `msresamp_rrrf_destroy`
|
|
71
|
+
- `msresamp_rrrf_execute`
|
|
72
|
+
- `msresamp_rrrf_get_delay`
|
|
73
|
+
- `msresamp_rrrf_get_num_output`
|
|
74
|
+
- `msresamp_rrrf_get_rate`
|
|
75
|
+
- `msresamp_rrrf_reset`
|
|
76
|
+
- `nco_crcf_create`
|
|
77
|
+
- `nco_crcf_destroy`
|
|
78
|
+
- `nco_crcf_mix_block_down`
|
|
79
|
+
- `nco_crcf_set_frequency`
|
|
47
80
|
|
|
48
81
|
## Source
|
|
49
82
|
|
|
@@ -42,6 +42,24 @@ PWN::FFI::RTLSdr.available(opts)
|
|
|
42
42
|
- `tuner_gains`
|
|
43
43
|
- `authors`
|
|
44
44
|
- `help`
|
|
45
|
+
- `available?`
|
|
46
|
+
- `load_error`
|
|
47
|
+
- `rtlsdr_close`
|
|
48
|
+
- `rtlsdr_get_center_freq`
|
|
49
|
+
- `rtlsdr_get_device_count`
|
|
50
|
+
- `rtlsdr_get_device_name`
|
|
51
|
+
- `rtlsdr_get_device_usb_strings`
|
|
52
|
+
- `rtlsdr_get_sample_rate`
|
|
53
|
+
- `rtlsdr_get_tuner_gains`
|
|
54
|
+
- `rtlsdr_open`
|
|
55
|
+
- `rtlsdr_read_sync`
|
|
56
|
+
- `rtlsdr_reset_buffer`
|
|
57
|
+
- `rtlsdr_set_agc_mode`
|
|
58
|
+
- `rtlsdr_set_center_freq`
|
|
59
|
+
- `rtlsdr_set_freq_correction`
|
|
60
|
+
- `rtlsdr_set_sample_rate`
|
|
61
|
+
- `rtlsdr_set_tuner_gain`
|
|
62
|
+
- `rtlsdr_set_tuner_gain_mode`
|
|
45
63
|
|
|
46
64
|
## Source
|
|
47
65
|
|
|
@@ -47,6 +47,30 @@ PWN::FFI::SoapySDR.available(opts)
|
|
|
47
47
|
- `close`
|
|
48
48
|
- `authors`
|
|
49
49
|
- `help`
|
|
50
|
+
- `SoapySDRDevice_activateStream`
|
|
51
|
+
- `SoapySDRDevice_closeStream`
|
|
52
|
+
- `SoapySDRDevice_deactivateStream`
|
|
53
|
+
- `SoapySDRDevice_enumerate`
|
|
54
|
+
- `SoapySDRDevice_getDriverKey`
|
|
55
|
+
- `SoapySDRDevice_getHardwareKey`
|
|
56
|
+
- `SoapySDRDevice_getStreamMTU`
|
|
57
|
+
- `SoapySDRDevice_lastError`
|
|
58
|
+
- `SoapySDRDevice_make`
|
|
59
|
+
- `SoapySDRDevice_makeStrArgs`
|
|
60
|
+
- `SoapySDRDevice_readStream`
|
|
61
|
+
- `SoapySDRDevice_setBandwidth`
|
|
62
|
+
- `SoapySDRDevice_setFrequency`
|
|
63
|
+
- `SoapySDRDevice_setGain`
|
|
64
|
+
- `SoapySDRDevice_setGainMode`
|
|
65
|
+
- `SoapySDRDevice_setSampleRate`
|
|
66
|
+
- `SoapySDRDevice_setupStream`
|
|
67
|
+
- `SoapySDRDevice_unmake`
|
|
68
|
+
- `SoapySDRKwargsList_clear`
|
|
69
|
+
- `SoapySDR_getABIVersion`
|
|
70
|
+
- `SoapySDR_getAPIVersion`
|
|
71
|
+
- `SoapySDR_getLibVersion`
|
|
72
|
+
- `available?`
|
|
73
|
+
- `load_error`
|
|
50
74
|
|
|
51
75
|
## Source
|
|
52
76
|
|
|
@@ -42,6 +42,23 @@ PWN::FFI::Volk.available(opts)
|
|
|
42
42
|
- `dot_prod`
|
|
43
43
|
- `authors`
|
|
44
44
|
- `help`
|
|
45
|
+
- `available?`
|
|
46
|
+
- `load_error`
|
|
47
|
+
- `volk_16i_s32f_convert_32f`
|
|
48
|
+
- `volk_16i_s32f_convert_32f=`
|
|
49
|
+
- `volk_32f_accumulator_s32f`
|
|
50
|
+
- `volk_32f_accumulator_s32f=`
|
|
51
|
+
- `volk_32f_s32f_multiply_32f`
|
|
52
|
+
- `volk_32f_s32f_multiply_32f=`
|
|
53
|
+
- `volk_32f_sqrt_32f`
|
|
54
|
+
- `volk_32f_sqrt_32f=`
|
|
55
|
+
- `volk_32f_x2_dot_prod_32f`
|
|
56
|
+
- `volk_32f_x2_dot_prod_32f=`
|
|
57
|
+
- `volk_32fc_magnitude_squared_32f`
|
|
58
|
+
- `volk_32fc_magnitude_squared_32f=`
|
|
59
|
+
- `volk_free`
|
|
60
|
+
- `volk_get_alignment`
|
|
61
|
+
- `volk_malloc`
|
|
45
62
|
|
|
46
63
|
## Source
|
|
47
64
|
|
|
@@ -37,6 +37,7 @@ PWN::Plugins::Log.append(opts)
|
|
|
37
37
|
- `debug_enabled`
|
|
38
38
|
- `debug_log_path`
|
|
39
39
|
- `start_debug`
|
|
40
|
+
- `trace_enabled`
|
|
40
41
|
- `next_request_log`
|
|
41
42
|
- `finish_request_log`
|
|
42
43
|
- `stop_debug`
|
|
@@ -51,8 +52,23 @@ PWN::Plugins::Log.append(opts)
|
|
|
51
52
|
- `mirror_tui`
|
|
52
53
|
- `start_trace`
|
|
53
54
|
- `stop_trace`
|
|
55
|
+
- `wait_trace_step`
|
|
54
56
|
- `authors`
|
|
55
57
|
- `help`
|
|
58
|
+
- `capture_stderr!`
|
|
59
|
+
- `debug_enabled?`
|
|
60
|
+
- `finish_request_log!`
|
|
61
|
+
- `loud_tui!`
|
|
62
|
+
- `mirror_tui!`
|
|
63
|
+
- `next_request_log!`
|
|
64
|
+
- `note_exception!`
|
|
65
|
+
- `note_interrupt!`
|
|
66
|
+
- `quiet_tui!`
|
|
67
|
+
- `spinner_frame?`
|
|
68
|
+
- `start_trace!`
|
|
69
|
+
- `stop_trace!`
|
|
70
|
+
- `trace_enabled?`
|
|
71
|
+
- `wait_trace_step!`
|
|
56
72
|
|
|
57
73
|
## Source
|
|
58
74
|
|