pwn 0.5.615 → 0.5.618

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 (153) hide show
  1. checksums.yaml +4 -4
  2. data/README.md +109 -85
  3. data/README.md.bak +200 -0
  4. data/bin/pwn +47 -2
  5. data/bin/pwn_gqrx_scanner +75 -18
  6. data/documentation/AI-Integration.md +42 -26
  7. data/documentation/AWS.md +57 -0
  8. data/documentation/Agent-Tool-Registry.md +56 -0
  9. data/documentation/Banner.md +17 -0
  10. data/documentation/Blockchain.md +18 -0
  11. data/documentation/Bounty.md +21 -0
  12. data/documentation/BurpSuite.md +41 -16
  13. data/documentation/CLI-Drivers.md +58 -0
  14. data/documentation/Configuration.md +66 -0
  15. data/documentation/Contributing.md +33 -19
  16. data/documentation/Cron.md +47 -0
  17. data/documentation/Diagrams.md +123 -40
  18. data/documentation/Drivers.md +43 -16
  19. data/documentation/Extrospection.md +54 -0
  20. data/documentation/FFI.md +14 -0
  21. data/documentation/Fuzzing.md +36 -0
  22. data/documentation/General-PWN-Usage.md +50 -30
  23. data/documentation/Hardware.md +40 -0
  24. data/documentation/Home.md +78 -51
  25. data/documentation/How-PWN-Works.md +59 -57
  26. data/documentation/Installation.md +53 -28
  27. data/documentation/Metasploit.md +34 -0
  28. data/documentation/NmapIt.md +18 -12
  29. data/documentation/PWN.png +0 -0
  30. data/documentation/PWN_Contributors_and_Users.png +0 -0
  31. data/documentation/Persistence.md +38 -0
  32. data/documentation/Plugins.md +97 -47
  33. data/documentation/Reporting.md +25 -18
  34. data/documentation/SAST.md +39 -22
  35. data/documentation/SDR.md +40 -0
  36. data/documentation/Sessions.md +39 -0
  37. data/documentation/Skills-Memory-Learning.md +49 -29
  38. data/documentation/Swarm.md +71 -0
  39. data/documentation/Transparent-Browser.md +26 -22
  40. data/documentation/Troubleshooting.md +44 -25
  41. data/documentation/WWW.md +32 -0
  42. data/documentation/What-is-PWN.md +51 -32
  43. data/documentation/Why-PWN.md +41 -11
  44. data/documentation/diagrams/agent-tool-registry.svg +284 -0
  45. data/documentation/diagrams/ai-integration-tool-calling.svg +141 -103
  46. data/documentation/diagrams/aws-cloud-security.svg +166 -0
  47. data/documentation/diagrams/build.sh +20 -0
  48. data/documentation/diagrams/burp-vs-zap-preference.svg +47 -62
  49. data/documentation/diagrams/code-scanning-sast.svg +139 -79
  50. data/documentation/diagrams/cron-scheduling.svg +148 -0
  51. data/documentation/diagrams/dot/_THEME.md +27 -0
  52. data/documentation/diagrams/dot/agent-tool-registry.dot +59 -0
  53. data/documentation/diagrams/dot/ai-integration-tool-calling.dot +47 -20
  54. data/documentation/diagrams/dot/aws-cloud-security.dot +48 -0
  55. data/documentation/diagrams/dot/burp-vs-zap-preference.dot +23 -12
  56. data/documentation/diagrams/dot/code-scanning-sast.dot +46 -18
  57. data/documentation/diagrams/dot/cron-scheduling.dot +40 -0
  58. data/documentation/diagrams/dot/driver-framework.dot +36 -14
  59. data/documentation/diagrams/dot/extrospection-world-awareness.dot +55 -0
  60. data/documentation/diagrams/dot/fuzzing-workflow.dot +44 -24
  61. data/documentation/diagrams/dot/hardware-hacking.dot +48 -0
  62. data/documentation/diagrams/dot/history-to-drivers.dot +31 -17
  63. data/documentation/diagrams/dot/memory-skills-detailed.dot +57 -25
  64. data/documentation/diagrams/dot/network-infra-testing.dot +51 -19
  65. data/documentation/diagrams/dot/overall-pwn-architecture.dot +110 -44
  66. data/documentation/diagrams/dot/penetration-testing-workflow.dot +56 -25
  67. data/documentation/diagrams/dot/persistence-filesystem.dot +29 -0
  68. data/documentation/diagrams/dot/plugin-ecosystem.dot +41 -27
  69. data/documentation/diagrams/dot/pwn-ai-feedback-learning-loop.dot +87 -46
  70. data/documentation/diagrams/dot/pwn-repl-prototyping.dot +49 -30
  71. data/documentation/diagrams/dot/reporting-pipeline.dot +43 -14
  72. data/documentation/diagrams/dot/reverse-engineering-flow.dot +40 -18
  73. data/documentation/diagrams/dot/sdr-radio-flow.dot +45 -0
  74. data/documentation/diagrams/dot/sessions-cron-automation.dot +41 -14
  75. data/documentation/diagrams/dot/swarm-multi-agent.dot +70 -0
  76. data/documentation/diagrams/dot/web-application-testing.dot +45 -23
  77. data/documentation/diagrams/dot/zero-day-research-flow.dot +46 -24
  78. data/documentation/diagrams/driver-framework.svg +87 -66
  79. data/documentation/diagrams/extrospection-world-awareness.svg +185 -0
  80. data/documentation/diagrams/fuzzing-workflow.svg +128 -115
  81. data/documentation/diagrams/hardware-hacking.svg +163 -0
  82. data/documentation/diagrams/history-to-drivers.svg +84 -82
  83. data/documentation/diagrams/memory-skills-detailed.svg +167 -119
  84. data/documentation/diagrams/network-infra-testing.svg +146 -84
  85. data/documentation/diagrams/overall-pwn-architecture.svg +356 -185
  86. data/documentation/diagrams/penetration-testing-workflow.svg +161 -108
  87. data/documentation/diagrams/persistence-filesystem.svg +174 -0
  88. data/documentation/diagrams/plugin-ecosystem.svg +225 -121
  89. data/documentation/diagrams/pwn-ai-feedback-learning-loop.svg +257 -185
  90. data/documentation/diagrams/pwn-repl-prototyping.svg +126 -137
  91. data/documentation/diagrams/reporting-pipeline.svg +128 -68
  92. data/documentation/diagrams/reverse-engineering-flow.svg +100 -80
  93. data/documentation/diagrams/sdr-radio-flow.svg +146 -0
  94. data/documentation/diagrams/sessions-cron-automation.svg +112 -68
  95. data/documentation/diagrams/swarm-multi-agent.svg +225 -0
  96. data/documentation/diagrams/web-application-testing.svg +136 -100
  97. data/documentation/diagrams/zero-day-research-flow.svg +116 -112
  98. data/documentation/fax-spectrogram.png +0 -0
  99. data/documentation/fax-waveform.png +0 -0
  100. data/documentation/pwn-REPL.md +40 -24
  101. data/documentation/pwn-ai-Agent.md +59 -30
  102. data/documentation/pwn_android_war_dialer_session.png +0 -0
  103. data/documentation/pwn_install.png +0 -0
  104. data/documentation/pwn_wallpaper.jpg +0 -0
  105. data/documentation/ringing-spectrogram.png +0 -0
  106. data/documentation/ringing-waveform.png +0 -0
  107. data/git_commit.sh +1 -1
  108. data/lib/pwn/ai/agent/assembly.rb +1 -1
  109. data/lib/pwn/ai/agent/btc.rb +1 -1
  110. data/lib/pwn/ai/agent/burp_suite.rb +1 -1
  111. data/lib/pwn/ai/agent/extrospection.rb +618 -0
  112. data/lib/pwn/ai/agent/gqrx.rb +2 -2
  113. data/lib/pwn/ai/agent/hacker_one.rb +1 -1
  114. data/lib/pwn/ai/agent/introspection.rb +91 -0
  115. data/lib/pwn/ai/agent/learning.rb +6 -4
  116. data/lib/pwn/ai/agent/loop.rb +15 -0
  117. data/lib/pwn/ai/agent/prompt_builder.rb +10 -1
  118. data/lib/pwn/ai/agent/sast.rb +1 -1
  119. data/lib/pwn/ai/agent/swarm.rb +437 -0
  120. data/lib/pwn/ai/agent/tools/cron.rb +163 -0
  121. data/lib/pwn/ai/agent/tools/extrospection.rb +280 -0
  122. data/lib/pwn/ai/agent/tools/learning.rb +108 -0
  123. data/lib/pwn/ai/agent/tools/memory.rb +27 -0
  124. data/lib/pwn/ai/agent/tools/metrics.rb +61 -0
  125. data/lib/pwn/ai/agent/tools/sessions.rb +139 -0
  126. data/lib/pwn/ai/agent/tools/skills.rb +30 -0
  127. data/lib/pwn/ai/agent/tools/swarm.rb +229 -0
  128. data/lib/pwn/ai/agent/transparent_browser.rb +1 -1
  129. data/lib/pwn/ai/agent/vuln_gen.rb +2 -2
  130. data/lib/pwn/ai/agent.rb +3 -0
  131. data/lib/pwn/ai/anthropic.rb +19 -4
  132. data/lib/pwn/ai.rb +0 -1
  133. data/lib/pwn/config.rb +10 -23
  134. data/lib/pwn/cron.rb +16 -7
  135. data/lib/pwn/plugins/repl.rb +90 -281
  136. data/lib/pwn/sdr/decoder/base.rb +251 -0
  137. data/lib/pwn/sdr/decoder/gsm.rb +84 -185
  138. data/lib/pwn/sdr/decoder/pocsag.rb +62 -217
  139. data/lib/pwn/sdr/decoder.rb +1 -0
  140. data/lib/pwn/sdr/gqrx.rb +446 -65
  141. data/lib/pwn/version.rb +1 -1
  142. data/spec/lib/pwn/ai/agent/extrospection_spec.rb +15 -0
  143. data/spec/lib/pwn/ai/agent/introspection_spec.rb +15 -0
  144. data/spec/lib/pwn/ai/agent/swarm_spec.rb +34 -0
  145. data/spec/lib/pwn/ai/agent/tools/cron_spec.rb +40 -0
  146. data/spec/lib/pwn/ai/agent/tools/extrospection_spec.rb +40 -0
  147. data/spec/lib/pwn/ai/agent/tools/metrics_spec.rb +20 -0
  148. data/spec/lib/pwn/ai/agent/tools/sessions_spec.rb +35 -0
  149. data/spec/lib/pwn/ai/agent/tools/swarm_spec.rb +17 -0
  150. data/spec/lib/pwn/{ai/introspection_spec.rb → sdr/decoder/base_spec.rb} +3 -3
  151. data/third_party/pwn_rdoc.jsonl +199 -37
  152. metadata +65 -3
  153. data/lib/pwn/ai/introspection.rb +0 -76
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: pwn
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.5.615
4
+ version: 0.5.618
5
5
  platform: ruby
6
6
  authors:
7
7
  - 0day Inc.
@@ -1398,6 +1398,7 @@ files:
1398
1398
  - Gemfile
1399
1399
  - LICENSE.txt
1400
1400
  - README.md
1401
+ - README.md.bak
1401
1402
  - Rakefile
1402
1403
  - Vagrantfile
1403
1404
  - bin/pwn
@@ -1454,61 +1455,106 @@ files:
1454
1455
  - bin/pwn_zaproxy_active_scan
1455
1456
  - build_gem.sh
1456
1457
  - documentation/AI-Integration.md
1458
+ - documentation/AWS.md
1459
+ - documentation/Agent-Tool-Registry.md
1460
+ - documentation/Banner.md
1461
+ - documentation/Blockchain.md
1462
+ - documentation/Bounty.md
1457
1463
  - documentation/BurpSuite.md
1464
+ - documentation/CLI-Drivers.md
1465
+ - documentation/Configuration.md
1458
1466
  - documentation/Contributing.md
1467
+ - documentation/Cron.md
1459
1468
  - documentation/Diagrams.md
1460
1469
  - documentation/Drivers.md
1470
+ - documentation/Extrospection.md
1471
+ - documentation/FFI.md
1472
+ - documentation/Fuzzing.md
1461
1473
  - documentation/General-PWN-Usage.md
1474
+ - documentation/Hardware.md
1462
1475
  - documentation/Home.md
1463
1476
  - documentation/How-PWN-Works.md
1464
1477
  - documentation/Installation.md
1478
+ - documentation/Metasploit.md
1465
1479
  - documentation/NmapIt.md
1480
+ - documentation/PWN.png
1481
+ - documentation/PWN_Contributors_and_Users.png
1482
+ - documentation/Persistence.md
1466
1483
  - documentation/Plugins.md
1467
1484
  - documentation/Reporting.md
1468
1485
  - documentation/SAST.md
1486
+ - documentation/SDR.md
1487
+ - documentation/Sessions.md
1469
1488
  - documentation/Skills-Memory-Learning.md
1489
+ - documentation/Swarm.md
1470
1490
  - documentation/Transparent-Browser.md
1471
1491
  - documentation/Troubleshooting.md
1492
+ - documentation/WWW.md
1472
1493
  - documentation/What-is-PWN.md
1473
1494
  - documentation/Why-PWN.md
1495
+ - documentation/diagrams/agent-tool-registry.svg
1474
1496
  - documentation/diagrams/ai-integration-tool-calling.svg
1497
+ - documentation/diagrams/aws-cloud-security.svg
1498
+ - documentation/diagrams/build.sh
1475
1499
  - documentation/diagrams/burp-vs-zap-preference.svg
1476
1500
  - documentation/diagrams/code-scanning-sast.svg
1501
+ - documentation/diagrams/cron-scheduling.svg
1502
+ - documentation/diagrams/dot/_THEME.md
1503
+ - documentation/diagrams/dot/agent-tool-registry.dot
1477
1504
  - documentation/diagrams/dot/ai-integration-tool-calling.dot
1505
+ - documentation/diagrams/dot/aws-cloud-security.dot
1478
1506
  - documentation/diagrams/dot/burp-vs-zap-preference.dot
1479
1507
  - documentation/diagrams/dot/code-scanning-sast.dot
1508
+ - documentation/diagrams/dot/cron-scheduling.dot
1480
1509
  - documentation/diagrams/dot/driver-framework.dot
1510
+ - documentation/diagrams/dot/extrospection-world-awareness.dot
1481
1511
  - documentation/diagrams/dot/fuzzing-workflow.dot
1512
+ - documentation/diagrams/dot/hardware-hacking.dot
1482
1513
  - documentation/diagrams/dot/history-to-drivers.dot
1483
1514
  - documentation/diagrams/dot/memory-skills-detailed.dot
1484
1515
  - documentation/diagrams/dot/network-infra-testing.dot
1485
1516
  - documentation/diagrams/dot/overall-pwn-architecture.dot
1486
1517
  - documentation/diagrams/dot/penetration-testing-workflow.dot
1518
+ - documentation/diagrams/dot/persistence-filesystem.dot
1487
1519
  - documentation/diagrams/dot/plugin-ecosystem.dot
1488
1520
  - documentation/diagrams/dot/pwn-ai-feedback-learning-loop.dot
1489
1521
  - documentation/diagrams/dot/pwn-repl-prototyping.dot
1490
1522
  - documentation/diagrams/dot/reporting-pipeline.dot
1491
1523
  - documentation/diagrams/dot/reverse-engineering-flow.dot
1524
+ - documentation/diagrams/dot/sdr-radio-flow.dot
1492
1525
  - documentation/diagrams/dot/sessions-cron-automation.dot
1526
+ - documentation/diagrams/dot/swarm-multi-agent.dot
1493
1527
  - documentation/diagrams/dot/web-application-testing.dot
1494
1528
  - documentation/diagrams/dot/zero-day-research-flow.dot
1495
1529
  - documentation/diagrams/driver-framework.svg
1530
+ - documentation/diagrams/extrospection-world-awareness.svg
1496
1531
  - documentation/diagrams/fuzzing-workflow.svg
1532
+ - documentation/diagrams/hardware-hacking.svg
1497
1533
  - documentation/diagrams/history-to-drivers.svg
1498
1534
  - documentation/diagrams/memory-skills-detailed.svg
1499
1535
  - documentation/diagrams/network-infra-testing.svg
1500
1536
  - documentation/diagrams/overall-pwn-architecture.svg
1501
1537
  - documentation/diagrams/penetration-testing-workflow.svg
1538
+ - documentation/diagrams/persistence-filesystem.svg
1502
1539
  - documentation/diagrams/plugin-ecosystem.svg
1503
1540
  - documentation/diagrams/pwn-ai-feedback-learning-loop.svg
1504
1541
  - documentation/diagrams/pwn-repl-prototyping.svg
1505
1542
  - documentation/diagrams/reporting-pipeline.svg
1506
1543
  - documentation/diagrams/reverse-engineering-flow.svg
1544
+ - documentation/diagrams/sdr-radio-flow.svg
1507
1545
  - documentation/diagrams/sessions-cron-automation.svg
1546
+ - documentation/diagrams/swarm-multi-agent.svg
1508
1547
  - documentation/diagrams/web-application-testing.svg
1509
1548
  - documentation/diagrams/zero-day-research-flow.svg
1549
+ - documentation/fax-spectrogram.png
1550
+ - documentation/fax-waveform.png
1510
1551
  - documentation/pwn-REPL.md
1511
1552
  - documentation/pwn-ai-Agent.md
1553
+ - documentation/pwn_android_war_dialer_session.png
1554
+ - documentation/pwn_install.png
1555
+ - documentation/pwn_wallpaper.jpg
1556
+ - documentation/ringing-spectrogram.png
1557
+ - documentation/ringing-waveform.png
1512
1558
  - etc/systemd/msfrpcd.service
1513
1559
  - etc/systemd/openvas.service
1514
1560
  - etc/userland/aws/apache2/jenkins_443.conf
@@ -1823,8 +1869,10 @@ files:
1823
1869
  - lib/pwn/ai/agent/btc.rb
1824
1870
  - lib/pwn/ai/agent/burp_suite.rb
1825
1871
  - lib/pwn/ai/agent/dispatch.rb
1872
+ - lib/pwn/ai/agent/extrospection.rb
1826
1873
  - lib/pwn/ai/agent/gqrx.rb
1827
1874
  - lib/pwn/ai/agent/hacker_one.rb
1875
+ - lib/pwn/ai/agent/introspection.rb
1828
1876
  - lib/pwn/ai/agent/learning.rb
1829
1877
  - lib/pwn/ai/agent/loop.rb
1830
1878
  - lib/pwn/ai/agent/metrics.rb
@@ -1832,17 +1880,22 @@ files:
1832
1880
  - lib/pwn/ai/agent/registry.rb
1833
1881
  - lib/pwn/ai/agent/result.rb
1834
1882
  - lib/pwn/ai/agent/sast.rb
1883
+ - lib/pwn/ai/agent/swarm.rb
1884
+ - lib/pwn/ai/agent/tools/cron.rb
1885
+ - lib/pwn/ai/agent/tools/extrospection.rb
1835
1886
  - lib/pwn/ai/agent/tools/learning.rb
1836
1887
  - lib/pwn/ai/agent/tools/memory.rb
1888
+ - lib/pwn/ai/agent/tools/metrics.rb
1837
1889
  - lib/pwn/ai/agent/tools/ruby_eval.rb
1890
+ - lib/pwn/ai/agent/tools/sessions.rb
1838
1891
  - lib/pwn/ai/agent/tools/shell.rb
1839
1892
  - lib/pwn/ai/agent/tools/skills.rb
1893
+ - lib/pwn/ai/agent/tools/swarm.rb
1840
1894
  - lib/pwn/ai/agent/transparent_browser.rb
1841
1895
  - lib/pwn/ai/agent/vuln_gen.rb
1842
1896
  - lib/pwn/ai/anthropic.rb
1843
1897
  - lib/pwn/ai/gemini.rb
1844
1898
  - lib/pwn/ai/grok.rb
1845
- - lib/pwn/ai/introspection.rb
1846
1899
  - lib/pwn/ai/ollama.rb
1847
1900
  - lib/pwn/ai/open_ai.rb
1848
1901
  - lib/pwn/aws.rb
@@ -2088,6 +2141,7 @@ files:
2088
2141
  - lib/pwn/sast/window_location_hash.rb
2089
2142
  - lib/pwn/sdr.rb
2090
2143
  - lib/pwn/sdr/decoder.rb
2144
+ - lib/pwn/sdr/decoder/base.rb
2091
2145
  - lib/pwn/sdr/decoder/flex.rb
2092
2146
  - lib/pwn/sdr/decoder/gsm.rb
2093
2147
  - lib/pwn/sdr/decoder/pocsag.rb
@@ -2211,8 +2265,10 @@ files:
2211
2265
  - spec/lib/pwn/ai/agent/btc_spec.rb
2212
2266
  - spec/lib/pwn/ai/agent/burp_suite_spec.rb
2213
2267
  - spec/lib/pwn/ai/agent/dispatch_spec.rb
2268
+ - spec/lib/pwn/ai/agent/extrospection_spec.rb
2214
2269
  - spec/lib/pwn/ai/agent/gqrx_spec.rb
2215
2270
  - spec/lib/pwn/ai/agent/hacker_one_spec.rb
2271
+ - spec/lib/pwn/ai/agent/introspection_spec.rb
2216
2272
  - spec/lib/pwn/ai/agent/learning_spec.rb
2217
2273
  - spec/lib/pwn/ai/agent/loop_spec.rb
2218
2274
  - spec/lib/pwn/ai/agent/metrics_spec.rb
@@ -2220,18 +2276,23 @@ files:
2220
2276
  - spec/lib/pwn/ai/agent/registry_spec.rb
2221
2277
  - spec/lib/pwn/ai/agent/result_spec.rb
2222
2278
  - spec/lib/pwn/ai/agent/sast_spec.rb
2279
+ - spec/lib/pwn/ai/agent/swarm_spec.rb
2280
+ - spec/lib/pwn/ai/agent/tools/cron_spec.rb
2281
+ - spec/lib/pwn/ai/agent/tools/extrospection_spec.rb
2223
2282
  - spec/lib/pwn/ai/agent/tools/learning_spec.rb
2224
2283
  - spec/lib/pwn/ai/agent/tools/memory_spec.rb
2284
+ - spec/lib/pwn/ai/agent/tools/metrics_spec.rb
2225
2285
  - spec/lib/pwn/ai/agent/tools/ruby_eval_spec.rb
2286
+ - spec/lib/pwn/ai/agent/tools/sessions_spec.rb
2226
2287
  - spec/lib/pwn/ai/agent/tools/shell_spec.rb
2227
2288
  - spec/lib/pwn/ai/agent/tools/skills_spec.rb
2289
+ - spec/lib/pwn/ai/agent/tools/swarm_spec.rb
2228
2290
  - spec/lib/pwn/ai/agent/transparent_browser_spec.rb
2229
2291
  - spec/lib/pwn/ai/agent/vuln_gen_spec.rb
2230
2292
  - spec/lib/pwn/ai/agent_spec.rb
2231
2293
  - spec/lib/pwn/ai/anthropic_spec.rb
2232
2294
  - spec/lib/pwn/ai/gemini_spec.rb
2233
2295
  - spec/lib/pwn/ai/grok_spec.rb
2234
- - spec/lib/pwn/ai/introspection_spec.rb
2235
2296
  - spec/lib/pwn/ai/ollama_spec.rb
2236
2297
  - spec/lib/pwn/ai/open_ai_spec.rb
2237
2298
  - spec/lib/pwn/ai_spec.rb
@@ -2476,6 +2537,7 @@ files:
2476
2537
  - spec/lib/pwn/sast/version_spec.rb
2477
2538
  - spec/lib/pwn/sast/window_location_hash_spec.rb
2478
2539
  - spec/lib/pwn/sast_spec.rb
2540
+ - spec/lib/pwn/sdr/decoder/base_spec.rb
2479
2541
  - spec/lib/pwn/sdr/decoder/flex_spec.rb
2480
2542
  - spec/lib/pwn/sdr/decoder/gsm_spec.rb
2481
2543
  - spec/lib/pwn/sdr/decoder/pocsag_spec.rb
@@ -1,76 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- require 'json'
4
- require 'rest-client'
5
-
6
- module PWN
7
- module AI
8
- # This plugin interacts with PWN::Env's `ai` data structure
9
- # when `PWN::Env[:ai][:introspection]` is set to `true`.
10
- module Introspection
11
- # Supported Method Parameters::
12
- # response = PWN::AI::Introspection.reflect_on(
13
- # request: 'required - String - What you want the AI to reflect on',
14
- # system_role_content: 'optional - context to set up the model behavior for reflection',
15
- # spinner: 'optional - Boolean - Display spinner during operation (default: false)',
16
- # suppress_pii_warning: 'optional - Boolean - Suppress PII Warnings (default: false)'
17
- # )
18
-
19
- public_class_method def self.reflect_on(opts = {})
20
- request = opts[:request]
21
- raise 'ERROR: request must be provided' if request.nil?
22
-
23
- system_role_content = opts[:system_role_content]
24
-
25
- spinner = opts[:spinner] || false
26
-
27
- suppress_pii_warning = opts[:suppress_pii_warning] || false
28
-
29
- response = nil
30
-
31
- ai_introspection = PWN::Env[:ai][:introspection]
32
-
33
- if ai_introspection && request.length.positive?
34
- engine = PWN::Env[:ai][:active].to_s.downcase.to_sym
35
- valid_ai_engines = PWN::AI.help.reject { |e| e.downcase == :introspection }.map(&:downcase)
36
- raise "ERROR: Unsupported AI engine. Supported engines are: #{valid_ai_engines}" unless valid_ai_engines.include?(engine)
37
-
38
- warn "AI Introspection is enabled. Ensure #{engine} has been authorized for use and/or requests are sanitized properly." unless suppress_pii_warning
39
- response = PWN::AI::Agent::Loop.run(
40
- request: request.chomp,
41
- system_role_content: system_role_content,
42
- enabled_toolsets: [],
43
- spinner: spinner
44
- )
45
- end
46
-
47
- response
48
- rescue StandardError => e
49
- raise e
50
- end
51
-
52
- # Author(s):: 0day Inc. <support@0dayinc.com>
53
-
54
- public_class_method def self.authors
55
- "AUTHOR(S):
56
- 0day Inc. <support@0dayinc.com>
57
- "
58
- end
59
-
60
- # Display Usage for this Module
61
-
62
- public_class_method def self.help
63
- puts "USAGE:
64
- #{self}.reflect_on(
65
- request: 'required - String - What you want the AI to reflect on',
66
- system_role_content: 'optional - context to set up the model behavior for reflection',
67
- spinner: 'optional - Boolean - Display spinner during operation (default: false)',
68
- suppress_pii_warning: 'optional - Boolean - Suppress PII Warnings (default: false)'
69
- )
70
-
71
- #{self}.authors
72
- "
73
- end
74
- end
75
- end
76
- end