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.
Files changed (60) hide show
  1. checksums.yaml +4 -4
  2. data/Rakefile +7 -0
  3. data/build_gem.sh +1 -1
  4. data/documentation/General-PWN-Usage.md +2 -1
  5. data/documentation/Installation.md +5 -3
  6. data/documentation/pwn-REPL.md +2 -1
  7. data/etc/default_skills/pwn/ai/agent/learning/SKILL.md +4 -0
  8. data/etc/default_skills/pwn/ai/agent/loop/SKILL.md +4 -0
  9. data/etc/default_skills/pwn/ai/agent/mistakes/SKILL.md +4 -0
  10. data/etc/default_skills/pwn/ai/agent/open_goal/SKILL.md +3 -0
  11. data/etc/default_skills/pwn/ai/agent/policy/SKILL.md +11 -0
  12. data/etc/default_skills/pwn/ai/agent/prompt_cache/SKILL.md +1 -0
  13. data/etc/default_skills/pwn/ai/agent/reward/SKILL.md +1 -0
  14. data/etc/default_skills/pwn/ai/agent/task_summarizer/SKILL.md +12 -0
  15. data/etc/default_skills/pwn/ai/agent/tool_guard/SKILL.md +8 -0
  16. data/etc/default_skills/pwn/ai/agent/turn_finalizer/SKILL.md +5 -0
  17. data/etc/default_skills/pwn/ai/http_retry/SKILL.md +1 -0
  18. data/etc/default_skills/pwn/banner/matrix/SKILL.md +1 -0
  19. data/etc/default_skills/pwn/cron/SKILL.md +7 -0
  20. data/etc/default_skills/pwn/ffi/SKILL.md +1 -0
  21. data/etc/default_skills/pwn/ffi/adalm_pluto/SKILL.md +2 -0
  22. data/etc/default_skills/pwn/ffi/fftw/SKILL.md +10 -0
  23. data/etc/default_skills/pwn/ffi/hack_rf/SKILL.md +22 -0
  24. data/etc/default_skills/pwn/ffi/liquid/SKILL.md +33 -0
  25. data/etc/default_skills/pwn/ffi/rtl_sdr/SKILL.md +18 -0
  26. data/etc/default_skills/pwn/ffi/soapy_sdr/SKILL.md +24 -0
  27. data/etc/default_skills/pwn/ffi/stdio/SKILL.md +4 -0
  28. data/etc/default_skills/pwn/ffi/volk/SKILL.md +17 -0
  29. data/etc/default_skills/pwn/memory/SKILL.md +4 -0
  30. data/etc/default_skills/pwn/memory_index/SKILL.md +1 -0
  31. data/etc/default_skills/pwn/migrate/SKILL.md +1 -0
  32. data/etc/default_skills/pwn/module_skills/SKILL.md +2 -0
  33. data/etc/default_skills/pwn/plugins/log/SKILL.md +16 -0
  34. data/etc/default_skills/pwn/plugins/pony/SKILL.md +2 -0
  35. data/etc/default_skills/pwn/plugins/repl/SKILL.md +4 -0
  36. data/etc/default_skills/pwn/plugins/tty_spinner/SKILL.md +1 -0
  37. data/etc/default_skills/pwn/plugins/vault/SKILL.md +1 -0
  38. data/etc/default_skills/pwn/sdr/decoder/adsb/SKILL.md +1 -0
  39. data/etc/default_skills/pwn/sdr/decoder/base/SKILL.md +1 -0
  40. data/etc/default_skills/pwn/sdr/decoder/dsp/SKILL.md +3 -0
  41. data/etc/default_skills/pwn/sdr/decoder/flex/SKILL.md +1 -0
  42. data/etc/default_skills/pwn/sessions/SKILL.md +1 -0
  43. data/etc/default_skills/pwn/version/SKILL.md +1 -1
  44. data/lib/pwn/ai/agent/loop.rb +25 -8
  45. data/lib/pwn/config.rb +90 -91
  46. data/lib/pwn/module_skills.rb +71 -1
  47. data/lib/pwn/plugins/github.rb +1 -1
  48. data/lib/pwn/plugins/log.rb +71 -8
  49. data/lib/pwn/plugins/repl.rb +35 -3
  50. data/lib/pwn/plugins/tty_spinner.rb +1 -1
  51. data/lib/pwn/plugins/zaproxy.rb +1 -1
  52. data/lib/pwn/version.rb +1 -1
  53. data/spec/integration/config_spec.rb +29 -1
  54. data/spec/lib/pwn/ai/agent/loop_spec.rb +12 -0
  55. data/spec/lib/pwn/module_skills_spec.rb +12 -0
  56. data/spec/lib/pwn/plugins/log_spec.rb +88 -9
  57. data/spec/lib/pwn/plugins/repl_pwn_vault_spec.rb +37 -1
  58. data/spec/lib/pwn/plugins/repl_spec.rb +16 -1
  59. data/third_party/pwn_rdoc.jsonl +14 -2
  60. metadata +1 -1
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: c7cea05c0bbdbb5df99c258d696c234071a44592665732086943b8e85a23e047
4
- data.tar.gz: 9991f785d11bfe591e4391615e5898f7f5e6a16c0c51de732db9e6f172bdd282
3
+ metadata.gz: 4bd3437e2c7ee97e783659b63d69dd21368ce47a284c29f97b6d8ddd64631134
4
+ data.tar.gz: 9e71c1bbabee3abd02f3d4f252fa1eed48854f2c2379b2df914515ed2a593775
5
5
  SHA512:
6
- metadata.gz: 319e5f02eba56e735bbf1497347750f3bbedc906919d2d96e6313c89c87dd2f439c100317f6d2c19a86b47ff8d390c15581b44b6de8ad1b45629245e4f5acb24
7
- data.tar.gz: 899c8e1bc7374a8a8fbee9c940a4650bfed391a7c787ce9e59b3a1a5ba2d2a2978b24629df31d1d35ed067445f95ced484f04cfc85093212065ac96fde60f338
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
@@ -42,4 +42,4 @@ else
42
42
  cd $pwn_root && ./upgrade_ruby.sh $new_ruby_version $old_ruby_version
43
43
  fi
44
44
 
45
- cd $pwn_root && bundle fund | grep -A 1 pwn
45
+ cd $pwn_root && pwn setup --migrate && bundle fund | grep -A 1 pwn
@@ -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` (`ai.agent.debug_trace` for TracePoint) |
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
- is idempotent and never overwrites an edited SOP `SKILL.md`. Generated
269
- module skills under `etc/default_skills/pwn/` (one `<module>/SKILL.md` per
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` rewrites the gem tree via `PWN::ModuleSkills.refresh!`. Add at least one
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.
@@ -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`. Set `ai.agent.debug_trace` for per-call TracePoint |
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 |
@@ -53,6 +53,10 @@ PWN::AI::Agent::Learning.note_outcome(opts)
53
53
  - `purge_noise`
54
54
  - `authors`
55
55
  - `help`
56
+ - `gc_stores!`
57
+ - `lean!`
58
+ - `prune_outcomes!`
59
+ - `reconcile_verdict_tags!`
56
60
 
57
61
  ## Source
58
62
 
@@ -43,6 +43,10 @@ PWN::AI::Agent::Loop.debug_on(opts)
43
43
  - `run`
44
44
  - `authors`
45
45
  - `help`
46
+ - `catalog_lookup?`
47
+ - `debug_on?`
48
+ - `needs_host_work?`
49
+ - `world_knowledge?`
46
50
 
47
51
  ## References
48
52
 
@@ -54,6 +54,10 @@ PWN::AI::Agent::Mistakes.load(opts)
54
54
  - `effective_count`
55
55
  - `authors`
56
56
  - `help`
57
+ - `correction?`
58
+ - `extinguish!`
59
+ - `extinguish_parked!`
60
+ - `lean!`
57
61
 
58
62
  ## Source
59
63
 
@@ -40,6 +40,9 @@ PWN::AI::Agent::OpenGoal.goal_file(opts)
40
40
  - `resume`
41
41
  - `authors`
42
42
  - `help`
43
+ - `begin!`
44
+ - `clear!`
45
+ - `resume?`
43
46
 
44
47
  ## Source
45
48
 
@@ -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
 
@@ -43,6 +43,7 @@ PWN::AI::Agent::PromptCache.enabled(opts)
43
43
  - `supports`
44
44
  - `authors`
45
45
  - `help`
46
+ - `enabled?`
46
47
 
47
48
  ## Source
48
49
 
@@ -58,6 +58,7 @@ PWN::AI::Agent::Reward.judge(opts)
58
58
  - `judge_sample_weight`
59
59
  - `authors`
60
60
  - `help`
61
+ - `usable_preference?`
61
62
 
62
63
  ## Source
63
64
 
@@ -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
 
@@ -43,6 +43,11 @@ PWN::AI::Agent::TurnFinalizer.enter_user_path(opts)
43
43
  - `pending`
44
44
  - `authors`
45
45
  - `help`
46
+ - `enter_user_path!`
47
+ - `join_all!`
48
+ - `leave_user_path!`
49
+ - `should_defer?`
50
+ - `user_path?`
46
51
 
47
52
  ## Source
48
53
 
@@ -40,6 +40,7 @@ PWN::AI::HttpRetry.timeout_s(opts)
40
40
  - `report_event`
41
41
  - `authors`
42
42
  - `help`
43
+ - `retryable?`
43
44
 
44
45
  ## Source
45
46
 
@@ -37,6 +37,7 @@ PWN::Banner::Matrix.get(opts)
37
37
  - `you`
38
38
  - `authors`
39
39
  - `help`
40
+ - `you?`
40
41
 
41
42
  ## Source
42
43
 
@@ -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
 
@@ -37,6 +37,7 @@ PWN::FFI.available(opts)
37
37
  - `backends`
38
38
  - `authors`
39
39
  - `help`
40
+ - `available?`
40
41
 
41
42
  ## References
42
43
 
@@ -46,6 +46,8 @@ PWN::FFI::AdalmPluto::Ad9361.available(opts)
46
46
  - `capture`
47
47
  - `authors`
48
48
  - `help`
49
+ - `ad9361_set_bb_rate`
50
+ - `load_error`
49
51
 
50
52
  ## Source
51
53
 
@@ -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
 
@@ -36,6 +36,10 @@ PWN::FFI::Stdio.available(opts)
36
36
  - `available`
37
37
  - `authors`
38
38
  - `help`
39
+ - `available?`
40
+ - `printf`
41
+ - `puts`
42
+ - `scanf`
39
43
 
40
44
  ## Source
41
45
 
@@ -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
 
@@ -55,6 +55,10 @@ PWN::Memory.load(opts)
55
55
  - `lean`
56
56
  - `authors`
57
57
  - `help`
58
+ - `lean!`
59
+ - `meta_recall_assistant?`
60
+ - `meta_recall_user?`
61
+ - `protected_entry?`
58
62
 
59
63
  ## Source
60
64
 
@@ -41,6 +41,7 @@ PWN::MemoryIndex.available(opts)
41
41
  - `reset`
42
42
  - `authors`
43
43
  - `help`
44
+ - `available?`
44
45
 
45
46
  ## References
46
47
 
@@ -43,6 +43,7 @@ PWN::Migrate.installed_schema(opts)
43
43
  - `env_template`
44
44
  - `authors`
45
45
  - `help`
46
+ - `needed?`
46
47
 
47
48
  ## Source
48
49
 
@@ -37,9 +37,11 @@ PWN::ModuleSkills.enumerate(opts)
37
37
  - `relpath`
38
38
  - `render`
39
39
  - `refresh`
40
+ - `drift`
40
41
  - `install`
41
42
  - `authors`
42
43
  - `help`
44
+ - `refresh!`
43
45
 
44
46
  ## References
45
47
 
@@ -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
 
@@ -50,6 +50,8 @@ PWN::Plugins::Pony.options(opts)
50
50
  - `sendmail_binary`
51
51
  - `authors`
52
52
  - `help`
53
+ - `options=`
54
+ - `override_options=`
53
55
 
54
56
  ## Source
55
57
 
@@ -61,6 +61,10 @@ PWN::Plugins::REPL.ready_tty(opts)
61
61
  - `start`
62
62
  - `authors`
63
63
  - `help`
64
+ - `install_pwn_ai_completer!`
65
+ - `pwn_ai_dispatch_slash!`
66
+ - `ready_tty!`
67
+ - `restore_pwn_ai_completer!`
64
68
 
65
69
  ## Source
66
70
 
@@ -38,6 +38,7 @@ PWN::Plugins::TTYSpinner.start(opts)
38
38
  - `halt_all`
39
39
  - `authors`
40
40
  - `help`
41
+ - `halt_all!`
41
42
 
42
43
  ## Source
43
44
 
@@ -42,6 +42,7 @@ PWN::Plugins::Vault.refresh_encryption_secrets(opts)
42
42
  - `file_encrypted`
43
43
  - `authors`
44
44
  - `help`
45
+ - `file_encrypted?`
45
46
 
46
47
  ## Source
47
48
 
@@ -42,6 +42,7 @@ PWN::SDR::Decoder::ADSB.crc24(opts)
42
42
  - `parse_line`
43
43
  - `authors`
44
44
  - `help`
45
+ - `crc_ok?`
45
46
 
46
47
  ## Source
47
48
 
@@ -43,6 +43,7 @@ PWN::SDR::Decoder::Base.run_native(opts)
43
43
  - `run_iq`
44
44
  - `authors`
45
45
  - `help`
46
+ - `match_line?`
46
47
 
47
48
  ## Source
48
49
 
@@ -70,6 +70,9 @@ PWN::SDR::Decoder::DSP.unpack_s16le(opts)
70
70
  - `cmul`
71
71
  - `authors`
72
72
  - `help`
73
+ - `even_parity_ok?`
74
+ - `native`
75
+ - `native=`
73
76
 
74
77
  ## Source
75
78
 
@@ -45,6 +45,7 @@ PWN::SDR::Decoder::Flex.sync_check(opts)
45
45
  - `decode`
46
46
  - `authors`
47
47
  - `help`
48
+ - `even_parity?`
48
49
 
49
50
  ## Source
50
51
 
@@ -48,6 +48,7 @@ PWN::Sessions.sessions_dir(opts)
48
48
  - `protected_session_ids`
49
49
  - `authors`
50
50
  - `help`
51
+ - `lean!`
51
52
 
52
53
  ## Source
53
54
 
@@ -33,7 +33,7 @@ PWN.help(opts)
33
33
 
34
34
  ## Public methods
35
35
 
36
- - _(no public class methods parsed)_
36
+ - `help`
37
37
 
38
38
  ## Source
39
39