pwn 0.5.708 → 0.5.709

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 (434) hide show
  1. checksums.yaml +4 -4
  2. data/documentation/Installation.md +1 -0
  3. data/etc/default_skills/pwn/ai/agent/extrospection/osint/bridges/SKILL.md +30 -8
  4. data/etc/default_skills/pwn/ai/agent/extrospection/osint/social/SKILL.md +30 -8
  5. data/etc/default_skills/pwn/ai/agent/extrospection/osint/social/references/urls.md +1 -1
  6. data/etc/default_skills/pwn/ai/agent/extrospection/references/urls.md +0 -1
  7. data/etc/default_skills/pwn/memory_index/SKILL.md +0 -4
  8. data/etc/default_skills/pwn/plugins/aflplusplus/SKILL.md +48 -0
  9. data/etc/default_skills/pwn/plugins/android/SKILL.md +1 -0
  10. data/etc/default_skills/pwn/plugins/artifact_registry/SKILL.md +49 -0
  11. data/etc/default_skills/pwn/plugins/binary_parser/SKILL.md +54 -0
  12. data/etc/default_skills/pwn/plugins/credential_attack/SKILL.md +51 -0
  13. data/etc/default_skills/pwn/plugins/doctor/SKILL.md +57 -0
  14. data/etc/default_skills/pwn/plugins/exploit_dev/SKILL.md +61 -0
  15. data/etc/default_skills/pwn/plugins/frida/SKILL.md +49 -0
  16. data/etc/default_skills/pwn/plugins/gdb/SKILL.md +52 -0
  17. data/etc/default_skills/pwn/plugins/jobs/SKILL.md +51 -0
  18. data/etc/default_skills/pwn/plugins/nuclei/SKILL.md +48 -0
  19. data/etc/default_skills/pwn/plugins/process_tube/SKILL.md +52 -0
  20. data/etc/default_skills/pwn/plugins/radare2/SKILL.md +59 -0
  21. data/etc/default_skills/pwn/plugins/recon/SKILL.md +55 -0
  22. data/etc/default_skills/pwn/plugins/recon/references/urls.md +5 -0
  23. data/etc/default_skills/pwn/plugins/sqlmap/SKILL.md +48 -0
  24. data/etc/default_skills/pwn/plugins/transparent_browser/SKILL.md +0 -4
  25. data/etc/default_skills/pwn/plugins/volatility/SKILL.md +48 -0
  26. data/lib/pwn/ai/agent/assembly.rb +4 -1
  27. data/lib/pwn/ai/agent/btc.rb +4 -1
  28. data/lib/pwn/ai/agent/burp_suite.rb +5 -2
  29. data/lib/pwn/ai/agent/curriculum.rb +89 -30
  30. data/lib/pwn/ai/agent/dispatch.rb +27 -16
  31. data/lib/pwn/ai/agent/extrospection/osint/bridges.rb +9 -18
  32. data/lib/pwn/ai/agent/extrospection/osint/social.rb +9 -18
  33. data/lib/pwn/ai/agent/extrospection.rb +185 -60
  34. data/lib/pwn/ai/agent/gqrx.rb +4 -1
  35. data/lib/pwn/ai/agent/hacker_one.rb +5 -2
  36. data/lib/pwn/ai/agent/learning.rb +142 -25
  37. data/lib/pwn/ai/agent/loop.rb +53 -46
  38. data/lib/pwn/ai/agent/metrics.rb +133 -23
  39. data/lib/pwn/ai/agent/mistakes.rb +126 -17
  40. data/lib/pwn/ai/agent/open_goal.rb +25 -9
  41. data/lib/pwn/ai/agent/policy.rb +158 -18
  42. data/lib/pwn/ai/agent/prompt_builder.rb +21 -11
  43. data/lib/pwn/ai/agent/prompt_cache.rb +44 -13
  44. data/lib/pwn/ai/agent/reflect.rb +9 -5
  45. data/lib/pwn/ai/agent/registry.rb +65 -12
  46. data/lib/pwn/ai/agent/result.rb +19 -10
  47. data/lib/pwn/ai/agent/reward.rb +150 -32
  48. data/lib/pwn/ai/agent/sast.rb +4 -1
  49. data/lib/pwn/ai/agent/swarm.rb +72 -36
  50. data/lib/pwn/ai/agent/task_summarizer.rb +165 -36
  51. data/lib/pwn/ai/agent/tool_guard.rb +105 -6
  52. data/lib/pwn/ai/agent/transparent_browser.rb +4 -1
  53. data/lib/pwn/ai/agent/turn_finalizer.rb +41 -21
  54. data/lib/pwn/ai/agent/vuln_gen.rb +6 -3
  55. data/lib/pwn/ai/agent.rb +4 -0
  56. data/lib/pwn/ai/anthropic.rb +41 -7
  57. data/lib/pwn/ai/gemini.rb +21 -11
  58. data/lib/pwn/ai/grok.rb +44 -6
  59. data/lib/pwn/ai/http_retry.rb +40 -12
  60. data/lib/pwn/ai/ollama.rb +19 -10
  61. data/lib/pwn/ai/open_ai.rb +81 -30
  62. data/lib/pwn/ai/open_web_ui.rb +20 -14
  63. data/lib/pwn/ai/red_team/agent_protocol_abuse.rb +7 -1
  64. data/lib/pwn/ai/red_team/data_and_model_poisoning.rb +7 -1
  65. data/lib/pwn/ai/red_team/excessive_agency.rb +7 -1
  66. data/lib/pwn/ai/red_team/hidden_context_exposure.rb +7 -1
  67. data/lib/pwn/ai/red_team/insecure_output_handling.rb +7 -1
  68. data/lib/pwn/ai/red_team/jailbreak.rb +7 -1
  69. data/lib/pwn/ai/red_team/memory_poisoning.rb +7 -1
  70. data/lib/pwn/ai/red_team/multimodal_injection.rb +7 -1
  71. data/lib/pwn/ai/red_team/overreliance.rb +7 -1
  72. data/lib/pwn/ai/red_team/payload_splitting.rb +7 -1
  73. data/lib/pwn/ai/red_team/prompt_injection.rb +7 -1
  74. data/lib/pwn/ai/red_team/rag_poisoning.rb +7 -1
  75. data/lib/pwn/ai/red_team/sensitive_information_disclosure.rb +7 -1
  76. data/lib/pwn/ai/red_team/supply_chain.rb +7 -1
  77. data/lib/pwn/ai/red_team/system_prompt_extraction.rb +7 -1
  78. data/lib/pwn/ai/red_team/test_case_engine.rb +12 -9
  79. data/lib/pwn/ai/red_team/token_smuggling.rb +7 -1
  80. data/lib/pwn/ai/red_team/unbounded_consumption.rb +7 -1
  81. data/lib/pwn/ai/red_team/vector_and_embedding_weaknesses.rb +7 -1
  82. data/lib/pwn/ai/red_team.rb +4 -0
  83. data/lib/pwn/ai.rb +4 -0
  84. data/lib/pwn/aws/acm.rb +5 -2
  85. data/lib/pwn/aws/api_gateway.rb +10 -7
  86. data/lib/pwn/aws/app_stream.rb +5 -2
  87. data/lib/pwn/aws/application_auto_scaling.rb +5 -2
  88. data/lib/pwn/aws/application_discovery_service.rb +5 -2
  89. data/lib/pwn/aws/auto_scaling.rb +5 -2
  90. data/lib/pwn/aws/batch.rb +5 -2
  91. data/lib/pwn/aws/budgets.rb +5 -2
  92. data/lib/pwn/aws/cloud_formation.rb +5 -2
  93. data/lib/pwn/aws/cloud_front.rb +7 -4
  94. data/lib/pwn/aws/cloud_hsm.rb +5 -2
  95. data/lib/pwn/aws/cloud_search.rb +5 -2
  96. data/lib/pwn/aws/cloud_search_domain.rb +5 -2
  97. data/lib/pwn/aws/cloud_trail.rb +5 -2
  98. data/lib/pwn/aws/cloud_watch.rb +5 -2
  99. data/lib/pwn/aws/cloud_watch_events.rb +5 -2
  100. data/lib/pwn/aws/cloud_watch_logs.rb +5 -2
  101. data/lib/pwn/aws/code_build.rb +5 -2
  102. data/lib/pwn/aws/code_commit.rb +5 -2
  103. data/lib/pwn/aws/code_deploy.rb +5 -2
  104. data/lib/pwn/aws/code_pipeline.rb +5 -2
  105. data/lib/pwn/aws/cognito_identity.rb +5 -2
  106. data/lib/pwn/aws/cognito_identity_provider.rb +5 -2
  107. data/lib/pwn/aws/cognito_sync.rb +5 -2
  108. data/lib/pwn/aws/config_service.rb +5 -2
  109. data/lib/pwn/aws/data_pipleline.rb +5 -2
  110. data/lib/pwn/aws/database_migration_service.rb +5 -2
  111. data/lib/pwn/aws/device_farm.rb +5 -2
  112. data/lib/pwn/aws/direct_connect.rb +5 -2
  113. data/lib/pwn/aws/directory_service.rb +5 -2
  114. data/lib/pwn/aws/dynamo_db.rb +5 -2
  115. data/lib/pwn/aws/dynamo_db_streams.rb +5 -2
  116. data/lib/pwn/aws/ec2.rb +5 -2
  117. data/lib/pwn/aws/ecr.rb +5 -2
  118. data/lib/pwn/aws/ecs.rb +5 -2
  119. data/lib/pwn/aws/efs.rb +5 -2
  120. data/lib/pwn/aws/elasti_cache.rb +5 -2
  121. data/lib/pwn/aws/elastic_beanstalk.rb +8 -5
  122. data/lib/pwn/aws/elastic_load_balancing.rb +5 -2
  123. data/lib/pwn/aws/elastic_load_balancing_v2.rb +6 -3
  124. data/lib/pwn/aws/elastic_transcoder.rb +5 -2
  125. data/lib/pwn/aws/elasticsearch_service.rb +5 -2
  126. data/lib/pwn/aws/emr.rb +5 -2
  127. data/lib/pwn/aws/firehose.rb +5 -2
  128. data/lib/pwn/aws/game_lift.rb +5 -2
  129. data/lib/pwn/aws/glacier.rb +6 -3
  130. data/lib/pwn/aws/health.rb +5 -2
  131. data/lib/pwn/aws/iam.rb +10 -4
  132. data/lib/pwn/aws/import_export.rb +5 -2
  133. data/lib/pwn/aws/inspector.rb +5 -2
  134. data/lib/pwn/aws/iot.rb +5 -2
  135. data/lib/pwn/aws/iot_data_plane.rb +5 -2
  136. data/lib/pwn/aws/kinesis.rb +5 -2
  137. data/lib/pwn/aws/kinesis_analytics.rb +5 -2
  138. data/lib/pwn/aws/kms.rb +5 -2
  139. data/lib/pwn/aws/lambda.rb +5 -2
  140. data/lib/pwn/aws/lambda_preview.rb +5 -2
  141. data/lib/pwn/aws/lex.rb +5 -2
  142. data/lib/pwn/aws/lightsail.rb +5 -2
  143. data/lib/pwn/aws/machine_learning.rb +5 -2
  144. data/lib/pwn/aws/marketplace_commerce_analytics.rb +5 -2
  145. data/lib/pwn/aws/marketplace_metering.rb +5 -2
  146. data/lib/pwn/aws/ops_works.rb +5 -2
  147. data/lib/pwn/aws/ops_works_cm.rb +5 -2
  148. data/lib/pwn/aws/pinpoint.rb +5 -2
  149. data/lib/pwn/aws/polly.rb +5 -2
  150. data/lib/pwn/aws/rds.rb +5 -2
  151. data/lib/pwn/aws/redshift.rb +5 -2
  152. data/lib/pwn/aws/rekognition.rb +5 -2
  153. data/lib/pwn/aws/route53.rb +5 -2
  154. data/lib/pwn/aws/route53_domains.rb +5 -2
  155. data/lib/pwn/aws/s3.rb +5 -2
  156. data/lib/pwn/aws/service_catalog.rb +5 -2
  157. data/lib/pwn/aws/ses.rb +5 -2
  158. data/lib/pwn/aws/shield.rb +5 -2
  159. data/lib/pwn/aws/simple_db.rb +5 -2
  160. data/lib/pwn/aws/sms.rb +5 -2
  161. data/lib/pwn/aws/snowball.rb +5 -2
  162. data/lib/pwn/aws/sns.rb +5 -2
  163. data/lib/pwn/aws/sqs.rb +5 -2
  164. data/lib/pwn/aws/ssm.rb +5 -2
  165. data/lib/pwn/aws/states.rb +5 -2
  166. data/lib/pwn/aws/storage_gateway.rb +5 -2
  167. data/lib/pwn/aws/sts.rb +4 -1
  168. data/lib/pwn/aws/support.rb +5 -2
  169. data/lib/pwn/aws/swf.rb +5 -2
  170. data/lib/pwn/aws/waf.rb +5 -2
  171. data/lib/pwn/aws/waf_regional.rb +5 -2
  172. data/lib/pwn/aws/workspaces.rb +5 -2
  173. data/lib/pwn/aws/x_ray.rb +5 -2
  174. data/lib/pwn/aws.rb +4 -0
  175. data/lib/pwn/banner/anon.rb +3 -0
  176. data/lib/pwn/banner/bubble.rb +3 -0
  177. data/lib/pwn/banner/cheshire.rb +3 -0
  178. data/lib/pwn/banner/code_cave.rb +3 -0
  179. data/lib/pwn/banner/dont_panic.rb +3 -0
  180. data/lib/pwn/banner/f_society.rb +3 -0
  181. data/lib/pwn/banner/fork_bomb.rb +3 -0
  182. data/lib/pwn/banner/jmp_esp.rb +3 -0
  183. data/lib/pwn/banner/matrix.rb +5 -1
  184. data/lib/pwn/banner/ninja.rb +3 -0
  185. data/lib/pwn/banner/off_the_air.rb +3 -0
  186. data/lib/pwn/banner/pirate.rb +3 -0
  187. data/lib/pwn/banner/radare2.rb +3 -0
  188. data/lib/pwn/banner/radare2_ai.rb +3 -0
  189. data/lib/pwn/banner/white_rabbit.rb +3 -0
  190. data/lib/pwn/banner.rb +6 -2
  191. data/lib/pwn/blockchain/btc.rb +8 -3
  192. data/lib/pwn/blockchain/eth.rb +10 -3
  193. data/lib/pwn/blockchain.rb +4 -0
  194. data/lib/pwn/bounty/lifecycle_authz_replay.rb +46 -27
  195. data/lib/pwn/bounty.rb +4 -0
  196. data/lib/pwn/config.rb +79 -13
  197. data/lib/pwn/cron.rb +297 -20
  198. data/lib/pwn/driver.rb +2 -18
  199. data/lib/pwn/ffi/adalm_pluto.rb +65 -11
  200. data/lib/pwn/ffi/fftw.rb +31 -6
  201. data/lib/pwn/ffi/hack_rf.rb +59 -8
  202. data/lib/pwn/ffi/liquid.rb +63 -10
  203. data/lib/pwn/ffi/rtl_sdr.rb +35 -5
  204. data/lib/pwn/ffi/soapy_sdr.rb +60 -10
  205. data/lib/pwn/ffi/stdio.rb +5 -8
  206. data/lib/pwn/ffi/volk.rb +36 -7
  207. data/lib/pwn/ffi.rb +12 -0
  208. data/lib/pwn/memory.rb +136 -16
  209. data/lib/pwn/memory_index.rb +34 -19
  210. data/lib/pwn/migrate.rb +34 -24
  211. data/lib/pwn/module_skills.rb +39 -8
  212. data/lib/pwn/plugins/aflplusplus.rb +52 -0
  213. data/lib/pwn/plugins/android.rb +65 -245
  214. data/lib/pwn/plugins/artifact_registry.rb +71 -0
  215. data/lib/pwn/plugins/assembly.rb +9 -4
  216. data/lib/pwn/plugins/authentication_helper.rb +8 -5
  217. data/lib/pwn/plugins/baresip.rb +59 -12
  218. data/lib/pwn/plugins/basic_auth.rb +9 -3
  219. data/lib/pwn/plugins/beef.rb +28 -18
  220. data/lib/pwn/plugins/binary_parser.rb +133 -0
  221. data/lib/pwn/plugins/black_duck_binary_analysis.rb +63 -39
  222. data/lib/pwn/plugins/burp_suite.rb +98 -68
  223. data/lib/pwn/plugins/bus_pirate.rb +15 -8
  224. data/lib/pwn/plugins/char.rb +33 -3
  225. data/lib/pwn/plugins/credential_attack.rb +99 -0
  226. data/lib/pwn/plugins/credit_card.rb +6 -1
  227. data/lib/pwn/plugins/dao_ldap.rb +19 -13
  228. data/lib/pwn/plugins/dao_mongo.rb +11 -5
  229. data/lib/pwn/plugins/dao_postgres.rb +28 -19
  230. data/lib/pwn/plugins/dao_sqlite3.rb +15 -6
  231. data/lib/pwn/plugins/defect_dojo.rb +38 -22
  232. data/lib/pwn/plugins/detect_os.rb +5 -0
  233. data/lib/pwn/plugins/doctor.rb +149 -0
  234. data/lib/pwn/plugins/ein.rb +3 -0
  235. data/lib/pwn/plugins/exploit_dev.rb +264 -0
  236. data/lib/pwn/plugins/file_fu.rb +11 -8
  237. data/lib/pwn/plugins/frida.rb +61 -0
  238. data/lib/pwn/plugins/fuzz.rb +9 -6
  239. data/lib/pwn/plugins/gdb.rb +95 -0
  240. data/lib/pwn/plugins/git.rb +19 -14
  241. data/lib/pwn/plugins/github.rb +38 -15
  242. data/lib/pwn/plugins/google_workspace.rb +188 -45
  243. data/lib/pwn/plugins/hacker_one.rb +159 -35
  244. data/lib/pwn/plugins/hunter.rb +6 -3
  245. data/lib/pwn/plugins/ip_info.rb +9 -4
  246. data/lib/pwn/plugins/irc.rb +28 -15
  247. data/lib/pwn/plugins/jenkins.rb +65 -57
  248. data/lib/pwn/plugins/jira_data_center.rb +30 -22
  249. data/lib/pwn/plugins/jobs.rb +109 -0
  250. data/lib/pwn/plugins/json_pathify.rb +9 -5
  251. data/lib/pwn/plugins/log.rb +113 -13
  252. data/lib/pwn/plugins/mail_agent.rb +87 -79
  253. data/lib/pwn/plugins/metasploit.rb +11 -6
  254. data/lib/pwn/plugins/monkey_patch.rb +3 -0
  255. data/lib/pwn/plugins/msr206.rb +42 -28
  256. data/lib/pwn/plugins/nessus_cloud.rb +44 -4
  257. data/lib/pwn/plugins/nexpose_vuln_scan.rb +40 -24
  258. data/lib/pwn/plugins/nmap_it.rb +14 -34
  259. data/lib/pwn/plugins/nuclei.rb +57 -0
  260. data/lib/pwn/plugins/oauth2.rb +11 -5
  261. data/lib/pwn/plugins/ocr.rb +3 -0
  262. data/lib/pwn/plugins/open_api.rb +5 -2
  263. data/lib/pwn/plugins/openvas.rb +33 -25
  264. data/lib/pwn/plugins/packet.rb +152 -31
  265. data/lib/pwn/plugins/pdf_parse.rb +5 -2
  266. data/lib/pwn/plugins/pony.rb +86 -1
  267. data/lib/pwn/plugins/process_tube.rb +120 -0
  268. data/lib/pwn/plugins/ps.rb +7 -1
  269. data/lib/pwn/plugins/pwn_logger.rb +6 -2
  270. data/lib/pwn/plugins/rabbit_mq.rb +12 -7
  271. data/lib/pwn/plugins/radare2.rb +253 -0
  272. data/lib/pwn/plugins/recon.rb +161 -0
  273. data/lib/pwn/plugins/repl.rb +122 -1
  274. data/lib/pwn/plugins/scannable_codes.rb +5 -1
  275. data/lib/pwn/plugins/serial.rb +24 -14
  276. data/lib/pwn/plugins/shodan.rb +54 -35
  277. data/lib/pwn/plugins/slack_client.rb +11 -6
  278. data/lib/pwn/plugins/sock.rb +16 -8
  279. data/lib/pwn/plugins/spider.rb +5 -2
  280. data/lib/pwn/plugins/sqlmap.rb +49 -0
  281. data/lib/pwn/plugins/ssn.rb +3 -0
  282. data/lib/pwn/plugins/thread_pool.rb +6 -9
  283. data/lib/pwn/plugins/tor.rb +9 -4
  284. data/lib/pwn/plugins/transparent_browser.rb +62 -107
  285. data/lib/pwn/plugins/tty_spinner.rb +16 -2
  286. data/lib/pwn/plugins/twitter_api.rb +6 -2
  287. data/lib/pwn/plugins/uri_scheme.rb +4 -1
  288. data/lib/pwn/plugins/vault.rb +12 -3
  289. data/lib/pwn/plugins/vin.rb +24 -12
  290. data/lib/pwn/plugins/voice.rb +7 -2
  291. data/lib/pwn/plugins/volatility.rb +48 -0
  292. data/lib/pwn/plugins/vsphere.rb +9 -5
  293. data/lib/pwn/plugins/xxd.rb +12 -43
  294. data/lib/pwn/plugins/zaproxy.rb +30 -16
  295. data/lib/pwn/plugins.rb +19 -0
  296. data/lib/pwn/reports/ai_red_team.rb +6 -2
  297. data/lib/pwn/reports/csv.rb +8 -1
  298. data/lib/pwn/reports/fuzz.rb +5 -2
  299. data/lib/pwn/reports/html.rb +8 -1
  300. data/lib/pwn/reports/html_footer.rb +4 -3
  301. data/lib/pwn/reports/html_header.rb +6 -2
  302. data/lib/pwn/reports/json.rb +8 -1
  303. data/lib/pwn/reports/markdown.rb +8 -1
  304. data/lib/pwn/reports/pdf.rb +8 -1
  305. data/lib/pwn/reports/phone.rb +5 -2
  306. data/lib/pwn/reports/sast.rb +6 -2
  307. data/lib/pwn/reports/uri_buster.rb +5 -2
  308. data/lib/pwn/reports/xml.rb +8 -1
  309. data/lib/pwn/reports.rb +19 -0
  310. data/lib/pwn/sast/amqp_connect_as_guest.rb +9 -3
  311. data/lib/pwn/sast/apache_file_system_util_api.rb +9 -3
  312. data/lib/pwn/sast/aws.rb +9 -3
  313. data/lib/pwn/sast/banned_function_calls_c.rb +9 -3
  314. data/lib/pwn/sast/base64.rb +9 -3
  315. data/lib/pwn/sast/beef_hook.rb +9 -3
  316. data/lib/pwn/sast/cmd_execution_go_lang.rb +9 -3
  317. data/lib/pwn/sast/cmd_execution_java.rb +9 -3
  318. data/lib/pwn/sast/cmd_execution_python.rb +9 -3
  319. data/lib/pwn/sast/cmd_execution_ruby.rb +9 -3
  320. data/lib/pwn/sast/cmd_execution_scala.rb +9 -3
  321. data/lib/pwn/sast/csrf.rb +9 -3
  322. data/lib/pwn/sast/deserial_java.rb +9 -3
  323. data/lib/pwn/sast/emoticon.rb +9 -3
  324. data/lib/pwn/sast/eval.rb +9 -3
  325. data/lib/pwn/sast/factory.rb +9 -3
  326. data/lib/pwn/sast/http_authorization_header.rb +9 -3
  327. data/lib/pwn/sast/inner_html.rb +9 -3
  328. data/lib/pwn/sast/keystore.rb +9 -3
  329. data/lib/pwn/sast/local_storage.rb +9 -3
  330. data/lib/pwn/sast/location_hash.rb +9 -3
  331. data/lib/pwn/sast/log4j.rb +9 -3
  332. data/lib/pwn/sast/logger.rb +9 -3
  333. data/lib/pwn/sast/md5.rb +9 -3
  334. data/lib/pwn/sast/outer_html.rb +9 -3
  335. data/lib/pwn/sast/padding_oracle.rb +9 -3
  336. data/lib/pwn/sast/password.rb +9 -3
  337. data/lib/pwn/sast/php_input_mechanisms.rb +9 -3
  338. data/lib/pwn/sast/php_type_juggling.rb +9 -3
  339. data/lib/pwn/sast/pom_version.rb +9 -3
  340. data/lib/pwn/sast/port.rb +9 -3
  341. data/lib/pwn/sast/post_message.rb +9 -3
  342. data/lib/pwn/sast/private_key.rb +9 -3
  343. data/lib/pwn/sast/redirect.rb +9 -3
  344. data/lib/pwn/sast/redos.rb +9 -3
  345. data/lib/pwn/sast/shell.rb +9 -3
  346. data/lib/pwn/sast/signature.rb +9 -3
  347. data/lib/pwn/sast/sql.rb +9 -3
  348. data/lib/pwn/sast/ssl.rb +9 -3
  349. data/lib/pwn/sast/sudo.rb +9 -3
  350. data/lib/pwn/sast/task_tag.rb +9 -3
  351. data/lib/pwn/sast/test_case_engine.rb +11 -7
  352. data/lib/pwn/sast/throw_errors.rb +9 -3
  353. data/lib/pwn/sast/token.rb +9 -3
  354. data/lib/pwn/sast/type_script_type_juggling.rb +9 -3
  355. data/lib/pwn/sast/use_after_free.rb +9 -3
  356. data/lib/pwn/sast/version.rb +9 -3
  357. data/lib/pwn/sast/window_location_hash.rb +9 -3
  358. data/lib/pwn/sast.rb +4 -0
  359. data/lib/pwn/sdr/decoder/adsb.rb +36 -5
  360. data/lib/pwn/sdr/decoder/apt.rb +9 -6
  361. data/lib/pwn/sdr/decoder/base.rb +74 -22
  362. data/lib/pwn/sdr/decoder/bluetooth.rb +17 -5
  363. data/lib/pwn/sdr/decoder/dect.rb +12 -3
  364. data/lib/pwn/sdr/decoder/dsp.rb +229 -39
  365. data/lib/pwn/sdr/decoder/flex.rb +59 -11
  366. data/lib/pwn/sdr/decoder/gps.rb +12 -3
  367. data/lib/pwn/sdr/decoder/gsm.rb +24 -4
  368. data/lib/pwn/sdr/decoder/iridium.rb +12 -3
  369. data/lib/pwn/sdr/decoder/lora.rb +13 -4
  370. data/lib/pwn/sdr/decoder/lte.rb +27 -3
  371. data/lib/pwn/sdr/decoder/morse.rb +12 -3
  372. data/lib/pwn/sdr/decoder/p25.rb +12 -3
  373. data/lib/pwn/sdr/decoder/pager.rb +8 -5
  374. data/lib/pwn/sdr/decoder/pocsag.rb +29 -9
  375. data/lib/pwn/sdr/decoder/rds.rb +14 -8
  376. data/lib/pwn/sdr/decoder/rfid.rb +12 -3
  377. data/lib/pwn/sdr/decoder/rtl433.rb +12 -3
  378. data/lib/pwn/sdr/decoder/rtty.rb +8 -5
  379. data/lib/pwn/sdr/decoder/wifi.rb +12 -3
  380. data/lib/pwn/sdr/decoder/zigbee.rb +12 -3
  381. data/lib/pwn/sdr/decoder.rb +9 -0
  382. data/lib/pwn/sdr/flipper_zero.rb +17 -10
  383. data/lib/pwn/sdr/frequency_allocation.rb +4 -1
  384. data/lib/pwn/sdr/gqrx.rb +178 -119
  385. data/lib/pwn/sdr/rfidler.rb +4 -1
  386. data/lib/pwn/sdr/son_micro_rfid.rb +37 -24
  387. data/lib/pwn/sdr.rb +14 -0
  388. data/lib/pwn/sessions.rb +86 -16
  389. data/lib/pwn/setup.rb +94 -37
  390. data/lib/pwn/version.rb +1 -1
  391. data/lib/pwn/www/app_cobalt_io.rb +11 -5
  392. data/lib/pwn/www/bing.rb +10 -5
  393. data/lib/pwn/www/bug_crowd.rb +11 -5
  394. data/lib/pwn/www/checkip.rb +8 -4
  395. data/lib/pwn/www/coinbase_pro.rb +11 -5
  396. data/lib/pwn/www/duckduckgo.rb +12 -6
  397. data/lib/pwn/www/facebook.rb +11 -5
  398. data/lib/pwn/www/github.rb +11 -5
  399. data/lib/pwn/www/google.rb +11 -5
  400. data/lib/pwn/www/hacker_one.rb +20 -9
  401. data/lib/pwn/www/linkedin.rb +11 -5
  402. data/lib/pwn/www/pandora.rb +11 -5
  403. data/lib/pwn/www/pastebin.rb +9 -4
  404. data/lib/pwn/www/paypal.rb +19 -11
  405. data/lib/pwn/www/synack.rb +11 -5
  406. data/lib/pwn/www/torch.rb +13 -8
  407. data/lib/pwn/www/trading_view.rb +11 -5
  408. data/lib/pwn/www/twitter.rb +11 -5
  409. data/lib/pwn/www/uber.rb +11 -5
  410. data/lib/pwn/www/upwork.rb +11 -5
  411. data/lib/pwn/www/wayback_machine.rb +12 -6
  412. data/lib/pwn/www/youtube.rb +10 -5
  413. data/lib/pwn/www.rb +4 -0
  414. data/spec/conventions_spec.rb +118 -2
  415. data/spec/lib/pwn/ai/agent/reward_spec.rb +9 -0
  416. data/spec/lib/pwn/plugins/aflplusplus_spec.rb +13 -0
  417. data/spec/lib/pwn/plugins/artifact_registry_spec.rb +13 -0
  418. data/spec/lib/pwn/plugins/binary_parser_spec.rb +21 -0
  419. data/spec/lib/pwn/plugins/credential_attack_spec.rb +13 -0
  420. data/spec/lib/pwn/plugins/doctor_spec.rb +23 -0
  421. data/spec/lib/pwn/plugins/exploit_dev_spec.rb +23 -0
  422. data/spec/lib/pwn/plugins/frida_spec.rb +13 -0
  423. data/spec/lib/pwn/plugins/gdb_spec.rb +13 -0
  424. data/spec/lib/pwn/plugins/jobs_spec.rb +13 -0
  425. data/spec/lib/pwn/plugins/nuclei_spec.rb +13 -0
  426. data/spec/lib/pwn/plugins/process_tube_spec.rb +13 -0
  427. data/spec/lib/pwn/plugins/radare2_spec.rb +13 -0
  428. data/spec/lib/pwn/plugins/recon_spec.rb +26 -0
  429. data/spec/lib/pwn/plugins/sqlmap_spec.rb +13 -0
  430. data/spec/lib/pwn/plugins/volatility_spec.rb +13 -0
  431. data/third_party/pwn_rdoc.jsonl +126 -5
  432. metadata +47 -3
  433. data/etc/default_skills/pwn/memory_index/references/urls.md +0 -4
  434. data/etc/default_skills/pwn/plugins/transparent_browser/references/urls.md +0 -3
@@ -0,0 +1,48 @@
1
+ ---
2
+ name: pwn-plugins-nuclei
3
+ description: Drive PWN::Plugins::Nuclei from pwn_eval.
4
+ license: MIT
5
+ allowed-tools: [pwn, pwn_eval]
6
+ metadata:
7
+ bundled: true
8
+ generated: true
9
+ module: PWN::Plugins::Nuclei
10
+ source: pwn/plugins/nuclei.rb
11
+ ---
12
+
13
+ # PWN::Plugins::Nuclei
14
+
15
+ nuclei wrapper: template/severity, JSONL findings.
16
+
17
+ ## When to use
18
+
19
+ Call `PWN::Plugins::Nuclei` from `pwn_eval` when the task needs this module.
20
+ Do not reimplement it in shell.
21
+
22
+ ## Methodologies
23
+
24
+ Generated from `pwn/plugins/nuclei.rb`. Prefer the public class methods below.
25
+ Class methods take `(opts = {})` and read `opts`.
26
+
27
+ ## How to call
28
+
29
+ ```ruby
30
+ PWN::Plugins::Nuclei.help
31
+ PWN::Plugins::Nuclei.required_bins(opts)
32
+ ```
33
+
34
+ ## Public methods
35
+
36
+ - `required_bins`
37
+ - `scan`
38
+ - `authors`
39
+ - `help`
40
+
41
+ ## Source
42
+
43
+ `pwn/plugins/nuclei.rb`
44
+
45
+ ## Verification
46
+
47
+ `PWN::Plugins::Nuclei.respond_to?(:required_bins)` after the
48
+ module is loaded. Read the source for parameter names.
@@ -0,0 +1,52 @@
1
+ ---
2
+ name: pwn-plugins-processtube
3
+ description: Drive PWN::Plugins::ProcessTube from pwn_eval.
4
+ license: MIT
5
+ allowed-tools: [pwn, pwn_eval]
6
+ metadata:
7
+ bundled: true
8
+ generated: true
9
+ module: PWN::Plugins::ProcessTube
10
+ source: pwn/plugins/process_tube.rb
11
+ ---
12
+
13
+ # PWN::Plugins::ProcessTube
14
+
15
+ PTY.spawn tube: sendline/recvuntil/recvline, persisted across pwn_eval.
16
+
17
+ ## When to use
18
+
19
+ Call `PWN::Plugins::ProcessTube` from `pwn_eval` when the task needs this module.
20
+ Do not reimplement it in shell.
21
+
22
+ ## Methodologies
23
+
24
+ Generated from `pwn/plugins/process_tube.rb`. Prefer the public class methods below.
25
+ Class methods take `(opts = {})` and read `opts`.
26
+
27
+ ## How to call
28
+
29
+ ```ruby
30
+ PWN::Plugins::ProcessTube.help
31
+ PWN::Plugins::ProcessTube.required_bins(opts)
32
+ ```
33
+
34
+ ## Public methods
35
+
36
+ - `required_bins`
37
+ - `spawn`
38
+ - `write_line`
39
+ - `recvuntil`
40
+ - `recvline`
41
+ - `close`
42
+ - `authors`
43
+ - `help`
44
+
45
+ ## Source
46
+
47
+ `pwn/plugins/process_tube.rb`
48
+
49
+ ## Verification
50
+
51
+ `PWN::Plugins::ProcessTube.respond_to?(:required_bins)` after the
52
+ module is loaded. Read the source for parameter names.
@@ -0,0 +1,59 @@
1
+ ---
2
+ name: pwn-plugins-radare2
3
+ description: Drive PWN::Plugins::Radare2 from pwn_eval.
4
+ license: MIT
5
+ allowed-tools: [pwn, pwn_eval]
6
+ metadata:
7
+ bundled: true
8
+ generated: true
9
+ module: PWN::Plugins::Radare2
10
+ source: pwn/plugins/radare2.rb
11
+ ---
12
+
13
+ # PWN::Plugins::Radare2
14
+
15
+ Persistent r2pipe-style session: open/cmd/cmdj/close plus helpers.
16
+
17
+ ## When to use
18
+
19
+ Call `PWN::Plugins::Radare2` from `pwn_eval` when the task needs this module.
20
+ Do not reimplement it in shell.
21
+
22
+ ## Methodologies
23
+
24
+ Generated from `pwn/plugins/radare2.rb`. Prefer the public class methods below.
25
+ Class methods take `(opts = {})` and read `opts`.
26
+
27
+ ## How to call
28
+
29
+ ```ruby
30
+ PWN::Plugins::Radare2.help
31
+ PWN::Plugins::Radare2.required_bins(opts)
32
+ ```
33
+
34
+ ## Public methods
35
+
36
+ - `required_bins`
37
+ - `open`
38
+ - `cmd`
39
+ - `cmdj`
40
+ - `close`
41
+ - `functions`
42
+ - `xrefs_to`
43
+ - `disasm`
44
+ - `strings`
45
+ - `imports`
46
+ - `sections`
47
+ - `binary_info`
48
+ - `decompile`
49
+ - `authors`
50
+ - `help`
51
+
52
+ ## Source
53
+
54
+ `pwn/plugins/radare2.rb`
55
+
56
+ ## Verification
57
+
58
+ `PWN::Plugins::Radare2.respond_to?(:required_bins)` after the
59
+ module is loaded. Read the source for parameter names.
@@ -0,0 +1,55 @@
1
+ ---
2
+ name: pwn-plugins-recon
3
+ description: Drive PWN::Plugins::Recon from pwn_eval.
4
+ license: MIT
5
+ allowed-tools: [pwn, pwn_eval]
6
+ metadata:
7
+ bundled: true
8
+ generated: true
9
+ module: PWN::Plugins::Recon
10
+ source: pwn/plugins/recon.rb
11
+ ---
12
+
13
+ # PWN::Plugins::Recon
14
+
15
+ subfinder/httpx/masscan wrappers + cert-transparency (crt.sh, certspotter).
16
+
17
+ ## When to use
18
+
19
+ Call `PWN::Plugins::Recon` from `pwn_eval` when the task needs this module.
20
+ Do not reimplement it in shell.
21
+
22
+ ## Methodologies
23
+
24
+ Generated from `pwn/plugins/recon.rb`. Prefer the public class methods below.
25
+ Class methods take `(opts = {})` and read `opts`.
26
+
27
+ ## How to call
28
+
29
+ ```ruby
30
+ PWN::Plugins::Recon.help
31
+ PWN::Plugins::Recon.required_bins(opts)
32
+ ```
33
+
34
+ ## Public methods
35
+
36
+ - `required_bins`
37
+ - `subdomains`
38
+ - `httpx`
39
+ - `masscan`
40
+ - `crt_sh`
41
+ - `authors`
42
+ - `help`
43
+
44
+ ## References
45
+
46
+ - `references/urls.md` — URLs from source
47
+
48
+ ## Source
49
+
50
+ `pwn/plugins/recon.rb`
51
+
52
+ ## Verification
53
+
54
+ `PWN::Plugins::Recon.respond_to?(:required_bins)` after the
55
+ module is loaded. Read the source for parameter names.
@@ -0,0 +1,5 @@
1
+ # PWN::Plugins::Recon source links
2
+
3
+ - https://api.certspotter.com/v1/issuances?domain=#{URI.encode_www_form_component(domain
4
+ - https://crt.sh/?q=#{URI.encode_www_form_component(domain
5
+ - https://crt.sh/?q=#{URI.encode_www_form_component(
@@ -0,0 +1,48 @@
1
+ ---
2
+ name: pwn-plugins-sqlmap
3
+ description: Drive PWN::Plugins::Sqlmap from pwn_eval.
4
+ license: MIT
5
+ allowed-tools: [pwn, pwn_eval]
6
+ metadata:
7
+ bundled: true
8
+ generated: true
9
+ module: PWN::Plugins::Sqlmap
10
+ source: pwn/plugins/sqlmap.rb
11
+ ---
12
+
13
+ # PWN::Plugins::Sqlmap
14
+
15
+ sqlmap wrapper to pair with SAST SQL detection.
16
+
17
+ ## When to use
18
+
19
+ Call `PWN::Plugins::Sqlmap` from `pwn_eval` when the task needs this module.
20
+ Do not reimplement it in shell.
21
+
22
+ ## Methodologies
23
+
24
+ Generated from `pwn/plugins/sqlmap.rb`. Prefer the public class methods below.
25
+ Class methods take `(opts = {})` and read `opts`.
26
+
27
+ ## How to call
28
+
29
+ ```ruby
30
+ PWN::Plugins::Sqlmap.help
31
+ PWN::Plugins::Sqlmap.required_bins(opts)
32
+ ```
33
+
34
+ ## Public methods
35
+
36
+ - `required_bins`
37
+ - `run`
38
+ - `authors`
39
+ - `help`
40
+
41
+ ## Source
42
+
43
+ `pwn/plugins/sqlmap.rb`
44
+
45
+ ## Verification
46
+
47
+ `PWN::Plugins::Sqlmap.respond_to?(:required_bins)` after the
48
+ module is loaded. Read the source for parameter names.
@@ -58,10 +58,6 @@ PWN::Plugins::TransparentBrowser.open(opts)
58
58
  - `authors`
59
59
  - `help`
60
60
 
61
- ## References
62
-
63
- - `references/urls.md` — URLs from source
64
-
65
61
  ## Source
66
62
 
67
63
  `pwn/plugins/transparent_browser.rb`
@@ -0,0 +1,48 @@
1
+ ---
2
+ name: pwn-plugins-volatility
3
+ description: Drive PWN::Plugins::Volatility from pwn_eval.
4
+ license: MIT
5
+ allowed-tools: [pwn, pwn_eval]
6
+ metadata:
7
+ bundled: true
8
+ generated: true
9
+ module: PWN::Plugins::Volatility
10
+ source: pwn/plugins/volatility.rb
11
+ ---
12
+
13
+ # PWN::Plugins::Volatility
14
+
15
+ volatility3 wrapper.
16
+
17
+ ## When to use
18
+
19
+ Call `PWN::Plugins::Volatility` from `pwn_eval` when the task needs this module.
20
+ Do not reimplement it in shell.
21
+
22
+ ## Methodologies
23
+
24
+ Generated from `pwn/plugins/volatility.rb`. Prefer the public class methods below.
25
+ Class methods take `(opts = {})` and read `opts`.
26
+
27
+ ## How to call
28
+
29
+ ```ruby
30
+ PWN::Plugins::Volatility.help
31
+ PWN::Plugins::Volatility.required_bins(opts)
32
+ ```
33
+
34
+ ## Public methods
35
+
36
+ - `required_bins`
37
+ - `run`
38
+ - `authors`
39
+ - `help`
40
+
41
+ ## Source
42
+
43
+ `pwn/plugins/volatility.rb`
44
+
45
+ ## Verification
46
+
47
+ `PWN::Plugins::Volatility.respond_to?(:required_bins)` after the
48
+ module is loaded. Read the source for parameter names.
@@ -56,15 +56,18 @@ module PWN
56
56
 
57
57
  public_class_method def self.help
58
58
  puts "USAGE:
59
- ai_analysis = PWN::AI::Agent::Assembly.analyze(
59
+ # Run analyze and return its result
60
+ #{self}.analyze(
60
61
  request: 'required - the assembly opcodes or instructions to be analyzed',
61
62
  type: 'required - :opcodes_to_asm|:asm_to_opcodes - specify the type of analysis to perform',
62
63
  arch: 'required - name of arch returned from `PWN::Plugins::Assembly.list_supported_archs` (e.g., :i386|:i686|:x86|:x64|:arm|:arm64, etc.)',
63
64
  endian: 'required - the endianness of the assembly code (e.g., :little|:big)'
64
65
  )
65
66
 
67
+ # Print the AUTHOR(S) string for this module.
66
68
  #{self}.authors
67
69
  "
70
+ constants.sort
68
71
  end
69
72
  end
70
73
  end
@@ -37,12 +37,15 @@ module PWN
37
37
 
38
38
  public_class_method def self.help
39
39
  puts "USAGE:
40
- ai_analysis = PWN::AI::Agent::BTC.analyze(
40
+ # Run analyze and return its result
41
+ #{self}.analyze(
41
42
  request: 'required - latest block information retrieved from a bitcoin node via `PWN::Blockchain::BTC.get_latest_block`'
42
43
  )
43
44
 
45
+ # Print the AUTHOR(S) string for this module.
44
46
  #{self}.authors
45
47
  "
48
+ constants.sort
46
49
  end
47
50
  end
48
51
  end
@@ -71,12 +71,15 @@ module PWN
71
71
 
72
72
  public_class_method def self.help
73
73
  puts "USAGE:
74
- ai_analysis = PWN::AI::Agent::BurpSuite.analyze(
75
- request: 'required HTTP request/response pair or WebSocket message as a string'
74
+ # Run analyze and return its result
75
+ #{self}.analyze(
76
+ request: 'required - required HTTP request/response pair or WebSocket message as a string'
76
77
  )
77
78
 
79
+ # Print the AUTHOR(S) string for this module.
78
80
  #{self}.authors
79
81
  "
82
+ constants.sort
80
83
  end
81
84
  end
82
85
  end
@@ -1634,36 +1634,95 @@ module PWN
1634
1634
  # Display Usage for this Module
1635
1635
 
1636
1636
  public_class_method def self.help
1637
- puts <<~USAGE
1638
- USAGE:
1639
- # Tier 4 — self-play
1640
- PWN::AI::Agent::Curriculum.practice(limit: 3) # S1 + P14 trajectory DPO pairs + P17 budget-first
1641
- PWN::AI::Agent::Curriculum.offline_judge(since_hours: 24) # P3 offline ORM/PRM fill
1642
- PWN::AI::Agent::Curriculum.preference_balance # P5 W1 diversity report
1643
- PWN::AI::Agent::Curriculum.counterfactual(request:, name:, args:, error:, hint:) # S2 A/B → DPO pair
1644
- PWN::AI::Agent::Curriculum.critic(request:, final:) # S3 tool-armed constitutional critic
1645
- PWN::AI::Agent::Curriculum.red_team_plan(request:, plan:) # S4 telemetry-grounded plan review
1646
- PWN::AI::Agent::Curriculum.hindsight(request:, final:, session_id:) # C3 HER soft-relabel
1647
-
1648
- # Tier 5 close the weight loop
1649
- PWN::AI::Agent::Curriculum.train_and_gate(dry_run: true) # W2 export-ready; P11 gate v2 promote only with trainer+dry_run:false
1650
- PWN::AI::Agent::Curriculum.calibrate(predicted: 0.8, actual: 1.0) # W3 Brier Metrics[:calibration]
1651
-
1652
- Cron self-improvement (seeded by PWN::Cron.install_defaults):
1653
- curriculum_practice_nightly 0 3 * * * Curriculum.practice(limit: 3)
1654
- curriculum_offline_judge 30 3 * * * Curriculum.offline_judge(since_hours: 24, limit: 40)
1655
- curriculum_train_weekly 0 4 * * 0 Curriculum.train_and_gate(dry_run: true)
1656
- learning_consolidate_nightly 0 5 * * * Learning.consolidate
1657
-
1658
- Config (PWN::Env[:ai][:agent]) — nil = auto (ON for remote engines, OFF for ollama):
1659
- :critic - Boolean/nil, run S3 before every note_outcome
1660
- :red_team_plan - Boolean/nil, run S4 after every plan_first
1661
- :counterfactual - Boolean/nil, run S2 on REPEAT_THRESHOLD
1662
- :hindsight - Boolean, HER soft-relabel failures (default true)
1663
- :reward_llm - Boolean/nil, force ORM/PRM LLM teacher (nil=on for remote)
1664
-
1665
- #{self}.authors
1666
- USAGE
1637
+ puts "USAGE:
1638
+ # Run practice and return its result
1639
+ #{self}.practice(
1640
+ limit: 'optional - limit value consumed by #practice',
1641
+ prompts_per: 'optional - prompts per value consumed by #practice',
1642
+ dry_run: 'optional - dry run value consumed by #practice'
1643
+ )
1644
+
1645
+ # Priority-fix 3 — Offline ORM/PRM pass over recent sessions so
1646
+ #{self}.offline_judge(
1647
+ local: 'optional - failure_only introspect does not starve the reward corpus.',
1648
+ since_hours: 'optional - lookback window (default 24)',
1649
+ limit: 'optional - max sessions to score (default 40)',
1650
+ prm: 'optional - also run Process Reward Model (default true)',
1651
+ commit: 'optional - write scores into learning/sentinel (default true)'
1652
+ )
1653
+
1654
+ # P5 W1 diversity report so monoculture is visible before DPO export
1655
+ #{self}.preference_balance(
1656
+ limit: 'optional - limit value consumed by #preference_balance (defaults to 10_000)',
1657
+ scrub: 'optional - scrub value consumed by #preference_balance'
1658
+ )
1659
+
1660
+ # Run counterfactual and return its result
1661
+ #{self}.counterfactual(
1662
+ force: 'optional - force value consumed by #counterfactual',
1663
+ request: 'optional - request value consumed by #counterfactual',
1664
+ hint: 'optional - hint value consumed by #counterfactual',
1665
+ name: 'required - binary or identifier name',
1666
+ args: 'required - args value consumed by #counterfactual',
1667
+ error: 'optional - error value consumed by #counterfactual'
1668
+ )
1669
+
1670
+ # S3 — Constitutional critic (with tool access)
1671
+ #{self}.critic(
1672
+ request: 'required - user request',
1673
+ final: 'required - candidate final answer',
1674
+ session_id: 'optional - for evidence lookup',
1675
+ text_only: 'optional - text only value consumed by #critic',
1676
+ force: 'optional - force value consumed by #critic'
1677
+ )
1678
+
1679
+ # S4 — Adversarial plan review (grounded in telemetry)
1680
+ #{self}.red_team_plan(
1681
+ request: 'required - user goal',
1682
+ plan: 'required - numbered plan text from plan_first'
1683
+ )
1684
+
1685
+ # C3 — Hindsight Experience Replay
1686
+ #{self}.hindsight(
1687
+ request: 'required - the FAILED goal',
1688
+ final: 'required - the final produced anyway',
1689
+ session_id: 'required - trajectory to relabel'
1690
+ )
1691
+
1692
+ # W2 — Online LoRA A/B with regression gate
1693
+ #{self}.train_and_gate(
1694
+ base_model: 'optional - ollama base tag (default PWN::Env[:ai][:ollama][:model])',
1695
+ trainer: 'optional - :unsloth | :axolotl | :auto (default :auto)',
1696
+ dry_run: 'optional - export + build eval set but do not train (default true)'
1697
+ )
1698
+
1699
+ # Run reclassify backlog and return its result
1700
+ #{self}.reclassify_backlog(
1701
+ limit: 'optional - limit value consumed by #reclassify_backlog'
1702
+ )
1703
+
1704
+ # Run practice kpi and return its result
1705
+ #{self}.practice_kpi(
1706
+ results: 'optional - Array results value consumed by #practice_kpi',
1707
+ reclassified_n: 'optional - reclassified n value consumed by #practice_kpi'
1708
+ )
1709
+
1710
+ # Week-over-week (or last-N snapshots) delta on repeating_n
1711
+ #{self}.repeating_trend(
1712
+ limit: 'optional - limit value consumed by #repeating_trend'
1713
+ )
1714
+
1715
+ # Run calibrate and return its result
1716
+ #{self}.calibrate(
1717
+ predicted: 'optional - predicted value consumed by #calibrate',
1718
+ actual: 'optional - actual value consumed by #calibrate',
1719
+ engine: 'optional - engine value consumed by #calibrate'
1720
+ )
1721
+
1722
+ # Print the AUTHOR(S) string for this module.
1723
+ #{self}.authors
1724
+ "
1725
+ constants.sort
1667
1726
  end
1668
1727
  end
1669
1728
  end
@@ -352,22 +352,33 @@ module PWN
352
352
  # Display Usage for this Module
353
353
 
354
354
  public_class_method def self.help
355
- puts <<~USAGE
356
- USAGE:
357
- json_str = PWN::AI::Agent::Dispatch.call(
358
- tool_call: {
359
- id: 'call_1',
360
- type: 'function',
361
- function: { name: 'shell', arguments: '{"command":"id"}' }
362
- }
363
- )
364
-
365
- PWN::AI::Agent::Dispatch.repair_name(name: 'run_shell') # => 'shell'
366
- PWN::AI::Agent::Dispatch.effect(name: 'shell', args: { command: 'ls' })
367
- PWN::AI::Agent::Dispatch.tool_calls_from_text(text: 'shell(command="id")')
368
-
369
- #{self}.authors
370
- USAGE
355
+ puts "USAGE:
356
+ # Run call and return its result
357
+ #{self}.call(
358
+ tool_call: 'required - Hash { id:, type:, function: { name:, arguments: } }'
359
+ )
360
+
361
+ # Run repair name and return its result
362
+ #{self}.repair_name(
363
+ name: 'required - possibly-wrong tool name emitted by the model'
364
+ )
365
+
366
+ # Run tool calls from text and return its result
367
+ #{self}.tool_calls_from_text(
368
+ text: 'required - assistant plain-text that may embed shell(...) / JSON tool forms',
369
+ call: 'optional - shell{command: uname -s} / tool:shell{command:id}'
370
+ )
371
+
372
+ # Run effect and return its result
373
+ #{self}.effect(
374
+ name: 'required - binary or identifier name',
375
+ args: 'optional - args value consumed by #effect'
376
+ )
377
+
378
+ # Print the AUTHOR(S) string for this module.
379
+ #{self}.authors
380
+ "
381
+ constants.sort
371
382
  end
372
383
  end
373
384
  end
@@ -214,25 +214,16 @@ module PWN
214
214
  { source: 'recon-ng', error: "#{e.class}: #{e.message.to_s[0, 160]}" }
215
215
  end
216
216
  # Marker submodule so this file satisfies PWN module conventions
217
- # (def self.help / def self.authors per-file) WITHOUT clobbering
218
- # PWN::AI::Agent::Extrospection.help defined in the parent file.
219
- module OSINTBridges
220
- # Author(s):: 0day Inc. <support@0dayinc.com>
221
-
222
- public_class_method def self.authors
223
- "AUTHOR(S):\n0day Inc. <support@0dayinc.com>\n"
224
- end
225
-
226
- # Display Usage for this Module
217
+ public_class_method def self.authors
218
+ "AUTHOR(S):\n 0day Inc. <support@0dayinc.com>\n"
219
+ end
227
220
 
228
- public_class_method def self.help
229
- <<~USAGE
230
- Local-tool OSINT bridge feeds for PWN::AI::Agent::Extrospection.osint.
231
- Feeds: #{BRIDGE_FEEDS.join(', ')}
232
- Bins probed: theHarvester, spiderfoot, amass, recon-ng (skips cleanly when absent).
233
- See PWN::AI::Agent::Extrospection.help / documentation/Extrospection.md.
234
- USAGE
235
- end
221
+ public_class_method def self.help
222
+ puts "USAGE:
223
+ # Marker submodule so this file satisfies PWN module conventions
224
+ #{self}.authors
225
+ "
226
+ constants.sort
236
227
  end
237
228
  end
238
229
  end
@@ -379,25 +379,16 @@ module PWN
379
379
  }
380
380
  end
381
381
  # Marker submodule so this file satisfies PWN module conventions
382
- # (def self.help / def self.authors per-file) WITHOUT clobbering
383
- # PWN::AI::Agent::Extrospection.help defined in the parent file.
384
- module OSINTSocial
385
- # Author(s):: 0day Inc. <support@0dayinc.com>
386
-
387
- public_class_method def self.authors
388
- "AUTHOR(S):\n0day Inc. <support@0dayinc.com>\n"
389
- end
390
-
391
- # Display Usage for this Module
382
+ public_class_method def self.authors
383
+ "AUTHOR(S):\n 0day Inc. <support@0dayinc.com>\n"
384
+ end
392
385
 
393
- public_class_method def self.help
394
- <<~USAGE
395
- Social / identity OSINT feeds for PWN::AI::Agent::Extrospection.osint.
396
- Feeds: #{SOCIAL_FEEDS.join(', ')}
397
- Sites file: #{SOCIAL_SITES_FILE}
398
- See PWN::AI::Agent::Extrospection.help / documentation/Extrospection.md.
399
- USAGE
400
- end
386
+ public_class_method def self.help
387
+ puts "USAGE:
388
+ # Marker submodule so this file satisfies PWN module conventions
389
+ #{self}.authors
390
+ "
391
+ constants.sort
401
392
  end
402
393
  end
403
394
  end