pwn 0.5.695 → 0.5.697

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 (69) hide show
  1. checksums.yaml +4 -4
  2. data/documentation/Session-Workflow.md +2 -1
  3. data/etc/default_skills/pwn/ai/agent/loop/SKILL.md +1 -1
  4. data/etc/default_skills/pwn/ai/agent/tool_guard/SKILL.md +5 -0
  5. data/etc/default_skills/pwn/ai/red_team/SKILL.md +1 -1
  6. data/etc/default_skills/pwn/ai/red_team/agent_protocol_abuse/SKILL.md +53 -0
  7. data/etc/default_skills/pwn/ai/red_team/agent_protocol_abuse/references/security.md +3 -0
  8. data/etc/default_skills/pwn/ai/red_team/agent_protocol_abuse/references/urls.md +6 -0
  9. data/etc/default_skills/pwn/ai/red_team/data_and_model_poisoning/SKILL.md +53 -0
  10. data/etc/default_skills/pwn/ai/red_team/data_and_model_poisoning/references/security.md +3 -0
  11. data/etc/default_skills/pwn/ai/red_team/data_and_model_poisoning/references/urls.md +6 -0
  12. data/etc/default_skills/pwn/ai/red_team/hidden_context_exposure/SKILL.md +53 -0
  13. data/etc/default_skills/pwn/ai/red_team/hidden_context_exposure/references/security.md +3 -0
  14. data/etc/default_skills/pwn/ai/red_team/hidden_context_exposure/references/urls.md +6 -0
  15. data/etc/default_skills/pwn/ai/red_team/memory_poisoning/SKILL.md +53 -0
  16. data/etc/default_skills/pwn/ai/red_team/memory_poisoning/references/security.md +3 -0
  17. data/etc/default_skills/pwn/ai/red_team/memory_poisoning/references/urls.md +6 -0
  18. data/etc/default_skills/pwn/ai/red_team/multimodal_injection/SKILL.md +53 -0
  19. data/etc/default_skills/pwn/ai/red_team/multimodal_injection/references/security.md +3 -0
  20. data/etc/default_skills/pwn/ai/red_team/multimodal_injection/references/urls.md +6 -0
  21. data/etc/default_skills/pwn/ai/red_team/rag_poisoning/SKILL.md +53 -0
  22. data/etc/default_skills/pwn/ai/red_team/rag_poisoning/references/security.md +3 -0
  23. data/etc/default_skills/pwn/ai/red_team/rag_poisoning/references/urls.md +6 -0
  24. data/etc/default_skills/pwn/ai/red_team/supply_chain/SKILL.md +53 -0
  25. data/etc/default_skills/pwn/ai/red_team/supply_chain/references/security.md +3 -0
  26. data/etc/default_skills/pwn/ai/red_team/supply_chain/references/urls.md +6 -0
  27. data/etc/default_skills/pwn/ai/red_team/unbounded_consumption/SKILL.md +53 -0
  28. data/etc/default_skills/pwn/ai/red_team/unbounded_consumption/references/security.md +3 -0
  29. data/etc/default_skills/pwn/ai/red_team/unbounded_consumption/references/urls.md +6 -0
  30. data/etc/default_skills/pwn/ai/red_team/vector_and_embedding_weaknesses/SKILL.md +53 -0
  31. data/etc/default_skills/pwn/ai/red_team/vector_and_embedding_weaknesses/references/security.md +3 -0
  32. data/etc/default_skills/pwn/ai/red_team/vector_and_embedding_weaknesses/references/urls.md +6 -0
  33. data/etc/default_skills/pwn/plugins/repl/SKILL.md +7 -0
  34. data/lib/pwn/ai/agent/loop.rb +66 -8
  35. data/lib/pwn/ai/agent/prompt_builder.rb +9 -5
  36. data/lib/pwn/ai/agent/tool_guard.rb +129 -33
  37. data/lib/pwn/ai/agent/tools/ruby_eval.rb +9 -11
  38. data/lib/pwn/ai/agent/tools/shell.rb +6 -3
  39. data/lib/pwn/ai/red_team/agent_protocol_abuse.rb +91 -0
  40. data/lib/pwn/ai/red_team/data_and_model_poisoning.rb +91 -0
  41. data/lib/pwn/ai/red_team/hidden_context_exposure.rb +91 -0
  42. data/lib/pwn/ai/red_team/memory_poisoning.rb +91 -0
  43. data/lib/pwn/ai/red_team/multimodal_injection.rb +91 -0
  44. data/lib/pwn/ai/red_team/rag_poisoning.rb +91 -0
  45. data/lib/pwn/ai/red_team/supply_chain.rb +91 -0
  46. data/lib/pwn/ai/red_team/unbounded_consumption.rb +91 -0
  47. data/lib/pwn/ai/red_team/vector_and_embedding_weaknesses.rb +91 -0
  48. data/lib/pwn/ai/red_team.rb +15 -4
  49. data/lib/pwn/plugins/nmap_it.rb +47 -4
  50. data/lib/pwn/plugins/repl.rb +183 -1
  51. data/lib/pwn/version.rb +1 -1
  52. data/spec/lib/pwn/ai/agent/loop_spec.rb +23 -3
  53. data/spec/lib/pwn/ai/agent/prompt_builder_spec.rb +1 -0
  54. data/spec/lib/pwn/ai/agent/tool_guard_spec.rb +80 -19
  55. data/spec/lib/pwn/ai/agent/tools/ruby_eval_spec.rb +2 -2
  56. data/spec/lib/pwn/ai/agent/tools/shell_spec.rb +3 -3
  57. data/spec/lib/pwn/ai/red_team/agent_protocol_abuse_spec.rb +40 -0
  58. data/spec/lib/pwn/ai/red_team/data_and_model_poisoning_spec.rb +40 -0
  59. data/spec/lib/pwn/ai/red_team/hidden_context_exposure_spec.rb +40 -0
  60. data/spec/lib/pwn/ai/red_team/memory_poisoning_spec.rb +40 -0
  61. data/spec/lib/pwn/ai/red_team/multimodal_injection_spec.rb +40 -0
  62. data/spec/lib/pwn/ai/red_team/rag_poisoning_spec.rb +40 -0
  63. data/spec/lib/pwn/ai/red_team/supply_chain_spec.rb +40 -0
  64. data/spec/lib/pwn/ai/red_team/unbounded_consumption_spec.rb +40 -0
  65. data/spec/lib/pwn/ai/red_team/vector_and_embedding_weaknesses_spec.rb +40 -0
  66. data/spec/lib/pwn/plugins/nmap_it_spec.rb +7 -0
  67. data/spec/lib/pwn/plugins/repl_spec.rb +37 -1
  68. data/third_party/pwn_rdoc.jsonl +61 -1
  69. metadata +46 -1
@@ -0,0 +1,40 @@
1
+ # frozen_string_literal: true
2
+
3
+ require 'spec_helper'
4
+
5
+ describe PWN::AI::RedTeam::MemoryPoisoning do
6
+ it 'scan method should exist' do
7
+ scan_response = PWN::AI::RedTeam::MemoryPoisoning
8
+ expect(scan_response).to respond_to :scan
9
+ end
10
+
11
+ it 'should display information for security_references' do
12
+ security_references_response = PWN::AI::RedTeam::MemoryPoisoning
13
+ expect(security_references_response).to respond_to :security_references
14
+ end
15
+
16
+ it 'should display information for authors' do
17
+ authors_response = PWN::AI::RedTeam::MemoryPoisoning
18
+ expect(authors_response).to respond_to :authors
19
+ end
20
+
21
+ it 'should display information for existing help method' do
22
+ help_response = PWN::AI::RedTeam::MemoryPoisoning
23
+ expect(help_response).to respond_to :help
24
+ end
25
+
26
+ it 'defines strategies instead of a static attack_payloads list' do
27
+ src = File.read(described_class.method(:scan).source_location.first)
28
+ expect(src).to include('strategies = [')
29
+ expect(src).not_to match(/attack_payloads\s*=\s*\[/)
30
+ expect(src).to include('payload_count')
31
+ end
32
+
33
+ it 'maps an OWASP 2026 / ATLAS reference' do
34
+ refs = described_class.security_references
35
+ expect(refs[:section]).to include('LLM')
36
+ expect(refs[:owasp_llm_uri]).to include('genai.owasp.org')
37
+ expect(refs[:atlas_id]).to match(/\AAML\.T\d+\z/)
38
+ expect(refs[:red_team_module]).to eq(described_class)
39
+ end
40
+ end
@@ -0,0 +1,40 @@
1
+ # frozen_string_literal: true
2
+
3
+ require 'spec_helper'
4
+
5
+ describe PWN::AI::RedTeam::MultimodalInjection do
6
+ it 'scan method should exist' do
7
+ scan_response = PWN::AI::RedTeam::MultimodalInjection
8
+ expect(scan_response).to respond_to :scan
9
+ end
10
+
11
+ it 'should display information for security_references' do
12
+ security_references_response = PWN::AI::RedTeam::MultimodalInjection
13
+ expect(security_references_response).to respond_to :security_references
14
+ end
15
+
16
+ it 'should display information for authors' do
17
+ authors_response = PWN::AI::RedTeam::MultimodalInjection
18
+ expect(authors_response).to respond_to :authors
19
+ end
20
+
21
+ it 'should display information for existing help method' do
22
+ help_response = PWN::AI::RedTeam::MultimodalInjection
23
+ expect(help_response).to respond_to :help
24
+ end
25
+
26
+ it 'defines strategies instead of a static attack_payloads list' do
27
+ src = File.read(described_class.method(:scan).source_location.first)
28
+ expect(src).to include('strategies = [')
29
+ expect(src).not_to match(/attack_payloads\s*=\s*\[/)
30
+ expect(src).to include('payload_count')
31
+ end
32
+
33
+ it 'maps an OWASP 2026 / ATLAS reference' do
34
+ refs = described_class.security_references
35
+ expect(refs[:section]).to include('LLM')
36
+ expect(refs[:owasp_llm_uri]).to include('genai.owasp.org')
37
+ expect(refs[:atlas_id]).to match(/\AAML\.T\d+\z/)
38
+ expect(refs[:red_team_module]).to eq(described_class)
39
+ end
40
+ end
@@ -0,0 +1,40 @@
1
+ # frozen_string_literal: true
2
+
3
+ require 'spec_helper'
4
+
5
+ describe PWN::AI::RedTeam::RagPoisoning do
6
+ it 'scan method should exist' do
7
+ scan_response = PWN::AI::RedTeam::RagPoisoning
8
+ expect(scan_response).to respond_to :scan
9
+ end
10
+
11
+ it 'should display information for security_references' do
12
+ security_references_response = PWN::AI::RedTeam::RagPoisoning
13
+ expect(security_references_response).to respond_to :security_references
14
+ end
15
+
16
+ it 'should display information for authors' do
17
+ authors_response = PWN::AI::RedTeam::RagPoisoning
18
+ expect(authors_response).to respond_to :authors
19
+ end
20
+
21
+ it 'should display information for existing help method' do
22
+ help_response = PWN::AI::RedTeam::RagPoisoning
23
+ expect(help_response).to respond_to :help
24
+ end
25
+
26
+ it 'defines strategies instead of a static attack_payloads list' do
27
+ src = File.read(described_class.method(:scan).source_location.first)
28
+ expect(src).to include('strategies = [')
29
+ expect(src).not_to match(/attack_payloads\s*=\s*\[/)
30
+ expect(src).to include('payload_count')
31
+ end
32
+
33
+ it 'maps an OWASP 2026 / ATLAS reference' do
34
+ refs = described_class.security_references
35
+ expect(refs[:section]).to include('LLM')
36
+ expect(refs[:owasp_llm_uri]).to include('genai.owasp.org')
37
+ expect(refs[:atlas_id]).to match(/\AAML\.T\d+\z/)
38
+ expect(refs[:red_team_module]).to eq(described_class)
39
+ end
40
+ end
@@ -0,0 +1,40 @@
1
+ # frozen_string_literal: true
2
+
3
+ require 'spec_helper'
4
+
5
+ describe PWN::AI::RedTeam::SupplyChain do
6
+ it 'scan method should exist' do
7
+ scan_response = PWN::AI::RedTeam::SupplyChain
8
+ expect(scan_response).to respond_to :scan
9
+ end
10
+
11
+ it 'should display information for security_references' do
12
+ security_references_response = PWN::AI::RedTeam::SupplyChain
13
+ expect(security_references_response).to respond_to :security_references
14
+ end
15
+
16
+ it 'should display information for authors' do
17
+ authors_response = PWN::AI::RedTeam::SupplyChain
18
+ expect(authors_response).to respond_to :authors
19
+ end
20
+
21
+ it 'should display information for existing help method' do
22
+ help_response = PWN::AI::RedTeam::SupplyChain
23
+ expect(help_response).to respond_to :help
24
+ end
25
+
26
+ it 'defines strategies instead of a static attack_payloads list' do
27
+ src = File.read(described_class.method(:scan).source_location.first)
28
+ expect(src).to include('strategies = [')
29
+ expect(src).not_to match(/attack_payloads\s*=\s*\[/)
30
+ expect(src).to include('payload_count')
31
+ end
32
+
33
+ it 'maps an OWASP 2026 / ATLAS reference' do
34
+ refs = described_class.security_references
35
+ expect(refs[:section]).to include('LLM')
36
+ expect(refs[:owasp_llm_uri]).to include('genai.owasp.org')
37
+ expect(refs[:atlas_id]).to match(/\AAML\.T\d+\z/)
38
+ expect(refs[:red_team_module]).to eq(described_class)
39
+ end
40
+ end
@@ -0,0 +1,40 @@
1
+ # frozen_string_literal: true
2
+
3
+ require 'spec_helper'
4
+
5
+ describe PWN::AI::RedTeam::UnboundedConsumption do
6
+ it 'scan method should exist' do
7
+ scan_response = PWN::AI::RedTeam::UnboundedConsumption
8
+ expect(scan_response).to respond_to :scan
9
+ end
10
+
11
+ it 'should display information for security_references' do
12
+ security_references_response = PWN::AI::RedTeam::UnboundedConsumption
13
+ expect(security_references_response).to respond_to :security_references
14
+ end
15
+
16
+ it 'should display information for authors' do
17
+ authors_response = PWN::AI::RedTeam::UnboundedConsumption
18
+ expect(authors_response).to respond_to :authors
19
+ end
20
+
21
+ it 'should display information for existing help method' do
22
+ help_response = PWN::AI::RedTeam::UnboundedConsumption
23
+ expect(help_response).to respond_to :help
24
+ end
25
+
26
+ it 'defines strategies instead of a static attack_payloads list' do
27
+ src = File.read(described_class.method(:scan).source_location.first)
28
+ expect(src).to include('strategies = [')
29
+ expect(src).not_to match(/attack_payloads\s*=\s*\[/)
30
+ expect(src).to include('payload_count')
31
+ end
32
+
33
+ it 'maps an OWASP 2026 / ATLAS reference' do
34
+ refs = described_class.security_references
35
+ expect(refs[:section]).to include('LLM')
36
+ expect(refs[:owasp_llm_uri]).to include('genai.owasp.org')
37
+ expect(refs[:atlas_id]).to match(/\AAML\.T\d+\z/)
38
+ expect(refs[:red_team_module]).to eq(described_class)
39
+ end
40
+ end
@@ -0,0 +1,40 @@
1
+ # frozen_string_literal: true
2
+
3
+ require 'spec_helper'
4
+
5
+ describe PWN::AI::RedTeam::VectorAndEmbeddingWeaknesses do
6
+ it 'scan method should exist' do
7
+ scan_response = PWN::AI::RedTeam::VectorAndEmbeddingWeaknesses
8
+ expect(scan_response).to respond_to :scan
9
+ end
10
+
11
+ it 'should display information for security_references' do
12
+ security_references_response = PWN::AI::RedTeam::VectorAndEmbeddingWeaknesses
13
+ expect(security_references_response).to respond_to :security_references
14
+ end
15
+
16
+ it 'should display information for authors' do
17
+ authors_response = PWN::AI::RedTeam::VectorAndEmbeddingWeaknesses
18
+ expect(authors_response).to respond_to :authors
19
+ end
20
+
21
+ it 'should display information for existing help method' do
22
+ help_response = PWN::AI::RedTeam::VectorAndEmbeddingWeaknesses
23
+ expect(help_response).to respond_to :help
24
+ end
25
+
26
+ it 'defines strategies instead of a static attack_payloads list' do
27
+ src = File.read(described_class.method(:scan).source_location.first)
28
+ expect(src).to include('strategies = [')
29
+ expect(src).not_to match(/attack_payloads\s*=\s*\[/)
30
+ expect(src).to include('payload_count')
31
+ end
32
+
33
+ it 'maps an OWASP 2026 / ATLAS reference' do
34
+ refs = described_class.security_references
35
+ expect(refs[:section]).to include('LLM')
36
+ expect(refs[:owasp_llm_uri]).to include('genai.owasp.org')
37
+ expect(refs[:atlas_id]).to match(/\AAML\.T\d+\z/)
38
+ expect(refs[:red_team_module]).to eq(described_class)
39
+ end
40
+ end
@@ -12,4 +12,11 @@ describe PWN::Plugins::NmapIt do
12
12
  help_response = PWN::Plugins::NmapIt
13
13
  expect(help_response).to respond_to :help
14
14
  end
15
+
16
+ it 'port_scan accepts opts = {} and aliases xml to output_xml' do
17
+ expect(described_class.method(:port_scan).parameters).to include(%i[opt opts])
18
+ src = File.read(described_class.method(:port_scan).source_location.first)
19
+ expect(src).to include('opts[')
20
+ expect(src).to include('output_xml')
21
+ end
15
22
  end
@@ -67,11 +67,15 @@ describe PWN::Plugins::REPL do
67
67
  hits = described_class.pwn_ai_complete(target: '/sk', line: '/sk')
68
68
  expect(hits).to include('/skills')
69
69
  hits = described_class.pwn_ai_complete(target: '/', line: '/')
70
- %w[/cron /skills /sessions /memory /debug /back /help].each do |cmd|
70
+ %w[/cron /skills /sessions /memory /debug /back /help /model].each do |cmd|
71
71
  expect(hits).to include(cmd)
72
72
  end
73
73
  hits = described_class.pwn_ai_complete(target: 'li', line: '/cron li')
74
74
  expect(hits).to include('list')
75
+ hits = described_class.pwn_ai_complete(target: 'li', line: '/model li')
76
+ expect(hits).to include('list')
77
+ hits = described_class.pwn_ai_complete(target: 'll', line: '/model list ll')
78
+ expect(hits).to include('llms')
75
79
  end
76
80
 
77
81
  it 'completes host-native paths when slash is not the first character' do
@@ -101,5 +105,37 @@ describe PWN::Plugins::REPL do
101
105
  expect(hook).to match(/pwn_ai_dispatch_slash!/)
102
106
  expect(described_class).to respond_to(:pwn_ai_dispatch_slash!)
103
107
  end
108
+
109
+ it 'switches the live engine and model via /model without Loop.run' do
110
+ expect(described_class).to respond_to(:pwn_ai_run_model)
111
+ PWN::Env[:ai] ||= {}
112
+ PWN::Env[:ai][:grok] ||= {}
113
+ prev_active = PWN::Env[:ai][:active]
114
+ prev_model = PWN::Env[:ai][:grok][:model]
115
+ allow(described_class).to receive(:persist_ai_selection).and_return(false)
116
+ out = described_class.pwn_ai_run_model(args: %w[grok pwn-ai-test-model])
117
+ expect(PWN::Env[:ai][:active].to_s).to eq('grok')
118
+ expect(PWN::Env[:ai][:grok][:model]).to eq('pwn-ai-test-model')
119
+ expect(out.to_s).to match(/grok/i)
120
+ ensure
121
+ if PWN::Env.is_a?(Hash) && PWN::Env[:ai].is_a?(Hash)
122
+ PWN::Env[:ai][:active] = prev_active if defined?(prev_active)
123
+ PWN::Env[:ai][:grok][:model] = prev_model if defined?(prev_model) && PWN::Env[:ai][:grok].is_a?(Hash)
124
+ end
125
+ end
126
+
127
+ it 'lists llm ids from the active provider via /model list llms' do
128
+ expect(described_class).to respond_to(:pwn_ai_list_llms)
129
+ PWN::Env[:ai] ||= {}
130
+ prev_active = PWN::Env[:ai][:active]
131
+ PWN::Env[:ai][:active] = 'grok'
132
+ allow(PWN::AI::Grok).to receive(:get_models).and_return(
133
+ [{ id: 'grok-test-a' }, { id: 'grok-test-b' }]
134
+ )
135
+ ids = described_class.pwn_ai_run_model(args: %w[list llms])
136
+ expect(ids).to eq(%w[grok-test-a grok-test-b])
137
+ ensure
138
+ PWN::Env[:ai][:active] = prev_active if PWN::Env.is_a?(Hash) && PWN::Env[:ai].is_a?(Hash)
139
+ end
104
140
  end
105
141
  end
@@ -318,7 +318,9 @@
318
318
  {"messages":[{"role":"user","content":"PWN::AI::Agent::Loop.answer_statement Usage"},{"role":"assistant","content":"`PWN::AI::Agent::Loop.answer_statement`: "}]}
319
319
  {"messages":[{"role":"user","content":"PWN::AI::Agent::Loop.append_session Usage"},{"role":"assistant","content":"`PWN::AI::Agent::Loop.append_session`: "}]}
320
320
  {"messages":[{"role":"user","content":"PWN::AI::Agent::Loop.attribute_cause Usage"},{"role":"assistant","content":"`PWN::AI::Agent::Loop.attribute_cause`: "}]}
321
+ {"messages":[{"role":"user","content":"PWN::AI::Agent::Loop.authorization_refuse? Usage"},{"role":"assistant","content":"`PWN::AI::Agent::Loop.authorization_refuse?`: "}]}
321
322
  {"messages":[{"role":"user","content":"PWN::AI::Agent::Loop.authors Usage"},{"role":"assistant","content":"`PWN::AI::Agent::Loop.authors`: Author(s)\n\n0day Inc. <support@0dayinc.com>\n"}]}
323
+ {"messages":[{"role":"user","content":"PWN::AI::Agent::Loop.bounce_incomplete_nudge Usage"},{"role":"assistant","content":"`PWN::AI::Agent::Loop.bounce_incomplete_nudge`: "}]}
322
324
  {"messages":[{"role":"user","content":"PWN::AI::Agent::Loop.budget_exhaustion_hot? Usage"},{"role":"assistant","content":"`PWN::AI::Agent::Loop.budget_exhaustion_hot?`: "}]}
323
325
  {"messages":[{"role":"user","content":"PWN::AI::Agent::Loop.budget_hit? Usage"},{"role":"assistant","content":"`PWN::AI::Agent::Loop.budget_hit?`: "}]}
324
326
  {"messages":[{"role":"user","content":"PWN::AI::Agent::Loop.calibration_state Usage"},{"role":"assistant","content":"`PWN::AI::Agent::Loop.calibration_state`: "}]}
@@ -381,6 +383,7 @@
381
383
  {"messages":[{"role":"user","content":"PWN::AI::Agent::Loop.task_summary_flush! Usage"},{"role":"assistant","content":"`PWN::AI::Agent::Loop.task_summary_flush!`: "}]}
382
384
  {"messages":[{"role":"user","content":"PWN::AI::Agent::Loop.task_summary_plan! Usage"},{"role":"assistant","content":"`PWN::AI::Agent::Loop.task_summary_plan!`: "}]}
383
385
  {"messages":[{"role":"user","content":"PWN::AI::Agent::Loop.task_summary_record! Usage"},{"role":"assistant","content":"`PWN::AI::Agent::Loop.task_summary_record!`: "}]}
386
+ {"messages":[{"role":"user","content":"PWN::AI::Agent::Loop.timeout_task Usage"},{"role":"assistant","content":"`PWN::AI::Agent::Loop.timeout_task`: "}]}
384
387
  {"messages":[{"role":"user","content":"PWN::AI::Agent::Loop.tool_effects Usage"},{"role":"assistant","content":"`PWN::AI::Agent::Loop.tool_effects`: "}]}
385
388
  {"messages":[{"role":"user","content":"PWN::AI::Agent::Loop.world_knowledge? Usage"},{"role":"assistant","content":"`PWN::AI::Agent::Loop.world_knowledge?`: "}]}
386
389
  {"messages":[{"role":"user","content":"PWN::AI::Agent::Loop.write_verified? Usage"},{"role":"assistant","content":"`PWN::AI::Agent::Loop.write_verified?`: "}]}
@@ -704,18 +707,30 @@
704
707
  {"messages":[{"role":"user","content":"PWN::AI::Agent::TaskSummarizer.why_bit Usage"},{"role":"assistant","content":"`PWN::AI::Agent::TaskSummarizer.why_bit`: "}]}
705
708
  {"messages":[{"role":"user","content":"PWN::AI::Agent::ToolGuard.authors Usage"},{"role":"assistant","content":"`PWN::AI::Agent::ToolGuard.authors`: "}]}
706
709
  {"messages":[{"role":"user","content":"PWN::AI::Agent::ToolGuard.bashism? Usage"},{"role":"assistant","content":"`PWN::AI::Agent::ToolGuard.bashism?`: "}]}
710
+ {"messages":[{"role":"user","content":"PWN::AI::Agent::ToolGuard.budget_exhausted? Usage"},{"role":"assistant","content":"`PWN::AI::Agent::ToolGuard.budget_exhausted?`: "}]}
707
711
  {"messages":[{"role":"user","content":"PWN::AI::Agent::ToolGuard.coerce_args Usage"},{"role":"assistant","content":"`PWN::AI::Agent::ToolGuard.coerce_args`: "}]}
708
712
  {"messages":[{"role":"user","content":"PWN::AI::Agent::ToolGuard.deadline_s Usage"},{"role":"assistant","content":"`PWN::AI::Agent::ToolGuard.deadline_s`: "}]}
709
713
  {"messages":[{"role":"user","content":"PWN::AI::Agent::ToolGuard.help Usage"},{"role":"assistant","content":"`PWN::AI::Agent::ToolGuard.help`: "}]}
710
714
  {"messages":[{"role":"user","content":"PWN::AI::Agent::ToolGuard.host_load Usage"},{"role":"assistant","content":"`PWN::AI::Agent::ToolGuard.host_load`: "}]}
711
715
  {"messages":[{"role":"user","content":"PWN::AI::Agent::ToolGuard.invalid_payload Usage"},{"role":"assistant","content":"`PWN::AI::Agent::ToolGuard.invalid_payload`: "}]}
716
+ {"messages":[{"role":"user","content":"PWN::AI::Agent::ToolGuard.mutation_count Usage"},{"role":"assistant","content":"`PWN::AI::Agent::ToolGuard.mutation_count`: "}]}
717
+ {"messages":[{"role":"user","content":"PWN::AI::Agent::ToolGuard.next_timeout Usage"},{"role":"assistant","content":"`PWN::AI::Agent::ToolGuard.next_timeout`: "}]}
718
+ {"messages":[{"role":"user","content":"PWN::AI::Agent::ToolGuard.note_timeout! Usage"},{"role":"assistant","content":"`PWN::AI::Agent::ToolGuard.note_timeout!`: "}]}
719
+ {"messages":[{"role":"user","content":"PWN::AI::Agent::ToolGuard.payload_key Usage"},{"role":"assistant","content":"`PWN::AI::Agent::ToolGuard.payload_key`: "}]}
720
+ {"messages":[{"role":"user","content":"PWN::AI::Agent::ToolGuard.payload_spent Usage"},{"role":"assistant","content":"`PWN::AI::Agent::ToolGuard.payload_spent`: "}]}
712
721
  {"messages":[{"role":"user","content":"PWN::AI::Agent::ToolGuard.placeholder? Usage"},{"role":"assistant","content":"`PWN::AI::Agent::ToolGuard.placeholder?`: "}]}
713
722
  {"messages":[{"role":"user","content":"PWN::AI::Agent::ToolGuard.present? Usage"},{"role":"assistant","content":"`PWN::AI::Agent::ToolGuard.present?`: "}]}
723
+ {"messages":[{"role":"user","content":"PWN::AI::Agent::ToolGuard.reset_timeout_budget Usage"},{"role":"assistant","content":"`PWN::AI::Agent::ToolGuard.reset_timeout_budget`: "}]}
724
+ {"messages":[{"role":"user","content":"PWN::AI::Agent::ToolGuard.reset_timeout_budget! Usage"},{"role":"assistant","content":"`PWN::AI::Agent::ToolGuard.reset_timeout_budget!`: "}]}
714
725
  {"messages":[{"role":"user","content":"PWN::AI::Agent::ToolGuard.shell_bash? Usage"},{"role":"assistant","content":"`PWN::AI::Agent::ToolGuard.shell_bash?`: "}]}
715
726
  {"messages":[{"role":"user","content":"PWN::AI::Agent::ToolGuard.shell_name Usage"},{"role":"assistant","content":"`PWN::AI::Agent::ToolGuard.shell_name`: "}]}
727
+ {"messages":[{"role":"user","content":"PWN::AI::Agent::ToolGuard.task_key Usage"},{"role":"assistant","content":"`PWN::AI::Agent::ToolGuard.task_key`: "}]}
716
728
  {"messages":[{"role":"user","content":"PWN::AI::Agent::ToolGuard.timeout_lesson Usage"},{"role":"assistant","content":"`PWN::AI::Agent::ToolGuard.timeout_lesson`: "}]}
729
+ {"messages":[{"role":"user","content":"PWN::AI::Agent::ToolGuard.timeout_mutated Usage"},{"role":"assistant","content":"`PWN::AI::Agent::ToolGuard.timeout_mutated`: "}]}
730
+ {"messages":[{"role":"user","content":"PWN::AI::Agent::ToolGuard.timeout_mutations Usage"},{"role":"assistant","content":"`PWN::AI::Agent::ToolGuard.timeout_mutations`: "}]}
717
731
  {"messages":[{"role":"user","content":"PWN::AI::Agent::ToolGuard.timeout_prior_count Usage"},{"role":"assistant","content":"`PWN::AI::Agent::ToolGuard.timeout_prior_count`: "}]}
718
732
  {"messages":[{"role":"user","content":"PWN::AI::Agent::ToolGuard.timeout_result Usage"},{"role":"assistant","content":"`PWN::AI::Agent::ToolGuard.timeout_result`: "}]}
733
+ {"messages":[{"role":"user","content":"PWN::AI::Agent::ToolGuard.timeout_spent Usage"},{"role":"assistant","content":"`PWN::AI::Agent::ToolGuard.timeout_spent`: "}]}
719
734
  {"messages":[{"role":"user","content":"PWN::AI::Agent::TransparentBrowser.analyze Usage"},{"role":"assistant","content":"`PWN::AI::Agent::TransparentBrowser.analyze`: Supported Method Parameters\n\nai_analysis = PWN::AI::Agent::TransparentBrowser.analyze(\n\nrequest: 'required - current step in the JavaScript debugging session to analyze',\nsource_to_review: 'required - the block of JavaScript code in which the current step resides'\n\n)\n"}]}
720
735
  {"messages":[{"role":"user","content":"PWN::AI::Agent::TransparentBrowser.authors Usage"},{"role":"assistant","content":"`PWN::AI::Agent::TransparentBrowser.authors`: Author(s)\n\n0day Inc. <support@0dayinc.com>\n"}]}
721
736
  {"messages":[{"role":"user","content":"PWN::AI::Agent::TransparentBrowser.help Usage"},{"role":"assistant","content":"`PWN::AI::Agent::TransparentBrowser.help`: "}]}
@@ -834,10 +849,22 @@
834
849
  {"messages":[{"role":"user","content":"PWN::AI::OpenWebUI.visible_from_thinking Usage"},{"role":"assistant","content":"`PWN::AI::OpenWebUI.visible_from_thinking`: "}]}
835
850
  {"messages":[{"role":"user","content":"PWN::AI::RedTeam.authors Usage"},{"role":"assistant","content":"`PWN::AI::RedTeam.authors`: Author(s)\n\n0day Inc. <support@0dayinc.com>\n"}]}
836
851
  {"messages":[{"role":"user","content":"PWN::AI::RedTeam.help Usage"},{"role":"assistant","content":"`PWN::AI::RedTeam.help`: "}]}
852
+ {"messages":[{"role":"user","content":"PWN::AI::RedTeam::AgentProtocolAbuse.authors Usage"},{"role":"assistant","content":"`PWN::AI::RedTeam::AgentProtocolAbuse.authors`: Author(s)\n\n0day Inc. <support@0dayinc.com>\n"}]}
853
+ {"messages":[{"role":"user","content":"PWN::AI::RedTeam::AgentProtocolAbuse.help Usage"},{"role":"assistant","content":"`PWN::AI::RedTeam::AgentProtocolAbuse.help`: "}]}
854
+ {"messages":[{"role":"user","content":"PWN::AI::RedTeam::AgentProtocolAbuse.scan Usage"},{"role":"assistant","content":"`PWN::AI::RedTeam::AgentProtocolAbuse.scan`: Supported Method Parameters\n\nPWN::AI::RedTeam::AgentProtocolAbuse.scan(\n\ntarget_engine: 'optional - Symbol - AI engine under test (Defaults to PWN::Env[:ai][:active])',\ntarget_model: 'optional - String - Specific model on the target engine',\nsystem_role_content: 'optional - String - System prompt applied to the target for every payload',\nattacker_engine: 'optional - Symbol - AI engine that generates adaptive payloads and judges responses (Defaults to PWN::Env[:ai][:active])',\nattacker_model: 'optional - String - Specific model on the attacker engine',\npayload_count: 'optional - Integer - Number of LLM-generated payloads to produce from strategies (default 10)',\nmax_adaptive_rounds: 'optional - Integer - AI-generated rounds after seed when module_reflection is true (default 5; 0 disables)',\nstop_on_severity: 'optional - String - Halt on first finding >= this severity (default CRITICAL)'\n\n)\n"}]}
855
+ {"messages":[{"role":"user","content":"PWN::AI::RedTeam::AgentProtocolAbuse.security_references Usage"},{"role":"assistant","content":"`PWN::AI::RedTeam::AgentProtocolAbuse.security_references`: "}]}
856
+ {"messages":[{"role":"user","content":"PWN::AI::RedTeam::DataAndModelPoisoning.authors Usage"},{"role":"assistant","content":"`PWN::AI::RedTeam::DataAndModelPoisoning.authors`: Author(s)\n\n0day Inc. <support@0dayinc.com>\n"}]}
857
+ {"messages":[{"role":"user","content":"PWN::AI::RedTeam::DataAndModelPoisoning.help Usage"},{"role":"assistant","content":"`PWN::AI::RedTeam::DataAndModelPoisoning.help`: "}]}
858
+ {"messages":[{"role":"user","content":"PWN::AI::RedTeam::DataAndModelPoisoning.scan Usage"},{"role":"assistant","content":"`PWN::AI::RedTeam::DataAndModelPoisoning.scan`: Supported Method Parameters\n\nPWN::AI::RedTeam::DataAndModelPoisoning.scan(\n\ntarget_engine: 'optional - Symbol - AI engine under test (Defaults to PWN::Env[:ai][:active])',\ntarget_model: 'optional - String - Specific model on the target engine',\nsystem_role_content: 'optional - String - System prompt applied to the target for every payload',\nattacker_engine: 'optional - Symbol - AI engine that generates adaptive payloads and judges responses (Defaults to PWN::Env[:ai][:active])',\nattacker_model: 'optional - String - Specific model on the attacker engine',\npayload_count: 'optional - Integer - Number of LLM-generated payloads to produce from strategies (default 10)',\nmax_adaptive_rounds: 'optional - Integer - AI-generated rounds after seed when module_reflection is true (default 5; 0 disables)',\nstop_on_severity: 'optional - String - Halt on first finding >= this severity (default CRITICAL)'\n\n)\n"}]}
859
+ {"messages":[{"role":"user","content":"PWN::AI::RedTeam::DataAndModelPoisoning.security_references Usage"},{"role":"assistant","content":"`PWN::AI::RedTeam::DataAndModelPoisoning.security_references`: "}]}
837
860
  {"messages":[{"role":"user","content":"PWN::AI::RedTeam::ExcessiveAgency.authors Usage"},{"role":"assistant","content":"`PWN::AI::RedTeam::ExcessiveAgency.authors`: Author(s)\n\n0day Inc. <support@0dayinc.com>\n"}]}
838
861
  {"messages":[{"role":"user","content":"PWN::AI::RedTeam::ExcessiveAgency.help Usage"},{"role":"assistant","content":"`PWN::AI::RedTeam::ExcessiveAgency.help`: "}]}
839
862
  {"messages":[{"role":"user","content":"PWN::AI::RedTeam::ExcessiveAgency.scan Usage"},{"role":"assistant","content":"`PWN::AI::RedTeam::ExcessiveAgency.scan`: Supported Method Parameters\n\nPWN::AI::RedTeam::ExcessiveAgency.scan(\n\ntarget_engine: 'optional - Symbol - AI engine under test (Defaults to PWN::Env[:ai][:active])',\ntarget_model: 'optional - String - Specific model on the target engine',\nsystem_role_content: 'optional - String - System prompt applied to the target for every payload',\nattacker_engine: 'optional - Symbol - AI engine that generates adaptive payloads and judges responses (Defaults to PWN::Env[:ai][:active])',\nattacker_model: 'optional - String - Specific model on the attacker engine',\npayload_count: 'optional - Integer - Number of LLM-generated payloads to produce from strategies (default 10)',\nmax_adaptive_rounds: 'optional - Integer - AI-generated rounds after seed when module_reflection is true (default 5; 0 disables)',\nstop_on_severity: 'optional - String - Halt on first finding >= this severity (default CRITICAL)'\n\n)\n"}]}
840
863
  {"messages":[{"role":"user","content":"PWN::AI::RedTeam::ExcessiveAgency.security_references Usage"},{"role":"assistant","content":"`PWN::AI::RedTeam::ExcessiveAgency.security_references`: "}]}
864
+ {"messages":[{"role":"user","content":"PWN::AI::RedTeam::HiddenContextExposure.authors Usage"},{"role":"assistant","content":"`PWN::AI::RedTeam::HiddenContextExposure.authors`: Author(s)\n\n0day Inc. <support@0dayinc.com>\n"}]}
865
+ {"messages":[{"role":"user","content":"PWN::AI::RedTeam::HiddenContextExposure.help Usage"},{"role":"assistant","content":"`PWN::AI::RedTeam::HiddenContextExposure.help`: "}]}
866
+ {"messages":[{"role":"user","content":"PWN::AI::RedTeam::HiddenContextExposure.scan Usage"},{"role":"assistant","content":"`PWN::AI::RedTeam::HiddenContextExposure.scan`: Supported Method Parameters\n\nPWN::AI::RedTeam::HiddenContextExposure.scan(\n\ntarget_engine: 'optional - Symbol - AI engine under test (Defaults to PWN::Env[:ai][:active])',\ntarget_model: 'optional - String - Specific model on the target engine',\nsystem_role_content: 'optional - String - System prompt applied to the target for every payload',\nattacker_engine: 'optional - Symbol - AI engine that generates adaptive payloads and judges responses (Defaults to PWN::Env[:ai][:active])',\nattacker_model: 'optional - String - Specific model on the attacker engine',\npayload_count: 'optional - Integer - Number of LLM-generated payloads to produce from strategies (default 10)',\nmax_adaptive_rounds: 'optional - Integer - AI-generated rounds after seed when module_reflection is true (default 5; 0 disables)',\nstop_on_severity: 'optional - String - Halt on first finding >= this severity (default CRITICAL)'\n\n)\n"}]}
867
+ {"messages":[{"role":"user","content":"PWN::AI::RedTeam::HiddenContextExposure.security_references Usage"},{"role":"assistant","content":"`PWN::AI::RedTeam::HiddenContextExposure.security_references`: "}]}
841
868
  {"messages":[{"role":"user","content":"PWN::AI::RedTeam::InsecureOutputHandling.authors Usage"},{"role":"assistant","content":"`PWN::AI::RedTeam::InsecureOutputHandling.authors`: Author(s)\n\n0day Inc. <support@0dayinc.com>\n"}]}
842
869
  {"messages":[{"role":"user","content":"PWN::AI::RedTeam::InsecureOutputHandling.help Usage"},{"role":"assistant","content":"`PWN::AI::RedTeam::InsecureOutputHandling.help`: "}]}
843
870
  {"messages":[{"role":"user","content":"PWN::AI::RedTeam::InsecureOutputHandling.scan Usage"},{"role":"assistant","content":"`PWN::AI::RedTeam::InsecureOutputHandling.scan`: Supported Method Parameters\n\nPWN::AI::RedTeam::InsecureOutputHandling.scan(\n\ntarget_engine: 'optional - Symbol - AI engine under test (Defaults to PWN::Env[:ai][:active])',\ntarget_model: 'optional - String - Specific model on the target engine',\nsystem_role_content: 'optional - String - System prompt applied to the target for every payload',\nattacker_engine: 'optional - Symbol - AI engine that generates adaptive payloads and judges responses (Defaults to PWN::Env[:ai][:active])',\nattacker_model: 'optional - String - Specific model on the attacker engine',\npayload_count: 'optional - Integer - Number of LLM-generated payloads to produce from strategies (default 10)',\nmax_adaptive_rounds: 'optional - Integer - AI-generated rounds after seed when module_reflection is true (default 5; 0 disables)',\nstop_on_severity: 'optional - String - Halt on first finding >= this severity (default CRITICAL)'\n\n)\n"}]}
@@ -846,6 +873,14 @@
846
873
  {"messages":[{"role":"user","content":"PWN::AI::RedTeam::Jailbreak.help Usage"},{"role":"assistant","content":"`PWN::AI::RedTeam::Jailbreak.help`: "}]}
847
874
  {"messages":[{"role":"user","content":"PWN::AI::RedTeam::Jailbreak.scan Usage"},{"role":"assistant","content":"`PWN::AI::RedTeam::Jailbreak.scan`: Supported Method Parameters\n\nPWN::AI::RedTeam::Jailbreak.scan(\n\ntarget_engine: 'optional - Symbol - AI engine under test (Defaults to PWN::Env[:ai][:active])',\ntarget_model: 'optional - String - Specific model on the target engine',\nsystem_role_content: 'optional - String - System prompt applied to the target for every payload',\nattacker_engine: 'optional - Symbol - AI engine that generates adaptive payloads and judges responses (Defaults to PWN::Env[:ai][:active])',\nattacker_model: 'optional - String - Specific model on the attacker engine',\npayload_count: 'optional - Integer - Number of LLM-generated payloads to produce from strategies (default 10)',\nmax_adaptive_rounds: 'optional - Integer - AI-generated rounds after seed when module_reflection is true (default 5; 0 disables)',\nstop_on_severity: 'optional - String - Halt on first finding >= this severity (default CRITICAL)'\n\n)\n"}]}
848
875
  {"messages":[{"role":"user","content":"PWN::AI::RedTeam::Jailbreak.security_references Usage"},{"role":"assistant","content":"`PWN::AI::RedTeam::Jailbreak.security_references`: "}]}
876
+ {"messages":[{"role":"user","content":"PWN::AI::RedTeam::MemoryPoisoning.authors Usage"},{"role":"assistant","content":"`PWN::AI::RedTeam::MemoryPoisoning.authors`: Author(s)\n\n0day Inc. <support@0dayinc.com>\n"}]}
877
+ {"messages":[{"role":"user","content":"PWN::AI::RedTeam::MemoryPoisoning.help Usage"},{"role":"assistant","content":"`PWN::AI::RedTeam::MemoryPoisoning.help`: "}]}
878
+ {"messages":[{"role":"user","content":"PWN::AI::RedTeam::MemoryPoisoning.scan Usage"},{"role":"assistant","content":"`PWN::AI::RedTeam::MemoryPoisoning.scan`: Supported Method Parameters\n\nPWN::AI::RedTeam::MemoryPoisoning.scan(\n\ntarget_engine: 'optional - Symbol - AI engine under test (Defaults to PWN::Env[:ai][:active])',\ntarget_model: 'optional - String - Specific model on the target engine',\nsystem_role_content: 'optional - String - System prompt applied to the target for every payload',\nattacker_engine: 'optional - Symbol - AI engine that generates adaptive payloads and judges responses (Defaults to PWN::Env[:ai][:active])',\nattacker_model: 'optional - String - Specific model on the attacker engine',\npayload_count: 'optional - Integer - Number of LLM-generated payloads to produce from strategies (default 10)',\nmax_adaptive_rounds: 'optional - Integer - AI-generated rounds after seed when module_reflection is true (default 5; 0 disables)',\nstop_on_severity: 'optional - String - Halt on first finding >= this severity (default CRITICAL)'\n\n)\n"}]}
879
+ {"messages":[{"role":"user","content":"PWN::AI::RedTeam::MemoryPoisoning.security_references Usage"},{"role":"assistant","content":"`PWN::AI::RedTeam::MemoryPoisoning.security_references`: "}]}
880
+ {"messages":[{"role":"user","content":"PWN::AI::RedTeam::MultimodalInjection.authors Usage"},{"role":"assistant","content":"`PWN::AI::RedTeam::MultimodalInjection.authors`: Author(s)\n\n0day Inc. <support@0dayinc.com>\n"}]}
881
+ {"messages":[{"role":"user","content":"PWN::AI::RedTeam::MultimodalInjection.help Usage"},{"role":"assistant","content":"`PWN::AI::RedTeam::MultimodalInjection.help`: "}]}
882
+ {"messages":[{"role":"user","content":"PWN::AI::RedTeam::MultimodalInjection.scan Usage"},{"role":"assistant","content":"`PWN::AI::RedTeam::MultimodalInjection.scan`: Supported Method Parameters\n\nPWN::AI::RedTeam::MultimodalInjection.scan(\n\ntarget_engine: 'optional - Symbol - AI engine under test (Defaults to PWN::Env[:ai][:active])',\ntarget_model: 'optional - String - Specific model on the target engine',\nsystem_role_content: 'optional - String - System prompt applied to the target for every payload',\nattacker_engine: 'optional - Symbol - AI engine that generates adaptive payloads and judges responses (Defaults to PWN::Env[:ai][:active])',\nattacker_model: 'optional - String - Specific model on the attacker engine',\npayload_count: 'optional - Integer - Number of LLM-generated payloads to produce from strategies (default 10)',\nmax_adaptive_rounds: 'optional - Integer - AI-generated rounds after seed when module_reflection is true (default 5; 0 disables)',\nstop_on_severity: 'optional - String - Halt on first finding >= this severity (default CRITICAL)'\n\n)\n"}]}
883
+ {"messages":[{"role":"user","content":"PWN::AI::RedTeam::MultimodalInjection.security_references Usage"},{"role":"assistant","content":"`PWN::AI::RedTeam::MultimodalInjection.security_references`: "}]}
849
884
  {"messages":[{"role":"user","content":"PWN::AI::RedTeam::Overreliance.authors Usage"},{"role":"assistant","content":"`PWN::AI::RedTeam::Overreliance.authors`: Author(s)\n\n0day Inc. <support@0dayinc.com>\n"}]}
850
885
  {"messages":[{"role":"user","content":"PWN::AI::RedTeam::Overreliance.help Usage"},{"role":"assistant","content":"`PWN::AI::RedTeam::Overreliance.help`: "}]}
851
886
  {"messages":[{"role":"user","content":"PWN::AI::RedTeam::Overreliance.scan Usage"},{"role":"assistant","content":"`PWN::AI::RedTeam::Overreliance.scan`: Supported Method Parameters\n\nPWN::AI::RedTeam::Overreliance.scan(\n\ntarget_engine: 'optional - Symbol - AI engine under test (Defaults to PWN::Env[:ai][:active])',\ntarget_model: 'optional - String - Specific model on the target engine',\nsystem_role_content: 'optional - String - System prompt applied to the target for every payload',\nattacker_engine: 'optional - Symbol - AI engine that generates adaptive payloads and judges responses (Defaults to PWN::Env[:ai][:active])',\nattacker_model: 'optional - String - Specific model on the attacker engine',\npayload_count: 'optional - Integer - Number of LLM-generated payloads to produce from strategies (default 10)',\nmax_adaptive_rounds: 'optional - Integer - AI-generated rounds after seed when module_reflection is true (default 5; 0 disables)',\nstop_on_severity: 'optional - String - Halt on first finding >= this severity (default CRITICAL)'\n\n)\n"}]}
@@ -858,10 +893,18 @@
858
893
  {"messages":[{"role":"user","content":"PWN::AI::RedTeam::PromptInjection.help Usage"},{"role":"assistant","content":"`PWN::AI::RedTeam::PromptInjection.help`: "}]}
859
894
  {"messages":[{"role":"user","content":"PWN::AI::RedTeam::PromptInjection.scan Usage"},{"role":"assistant","content":"`PWN::AI::RedTeam::PromptInjection.scan`: Supported Method Parameters\n\nPWN::AI::RedTeam::PromptInjection.scan(\n\ntarget_engine: 'optional - Symbol - AI engine under test (Defaults to PWN::Env[:ai][:active])',\ntarget_model: 'optional - String - Specific model on the target engine',\nsystem_role_content: 'optional - String - System prompt applied to the target for every payload',\nattacker_engine: 'optional - Symbol - AI engine that generates adaptive payloads and judges responses (Defaults to PWN::Env[:ai][:active])',\nattacker_model: 'optional - String - Specific model on the attacker engine',\npayload_count: 'optional - Integer - Number of LLM-generated payloads to produce from strategies (default 10)',\nmax_adaptive_rounds: 'optional - Integer - AI-generated rounds after seed when module_reflection is true (default 5; 0 disables)',\nstop_on_severity: 'optional - String - Halt on first finding >= this severity (default CRITICAL)'\n\n)\n"}]}
860
895
  {"messages":[{"role":"user","content":"PWN::AI::RedTeam::PromptInjection.security_references Usage"},{"role":"assistant","content":"`PWN::AI::RedTeam::PromptInjection.security_references`: "}]}
896
+ {"messages":[{"role":"user","content":"PWN::AI::RedTeam::RagPoisoning.authors Usage"},{"role":"assistant","content":"`PWN::AI::RedTeam::RagPoisoning.authors`: Author(s)\n\n0day Inc. <support@0dayinc.com>\n"}]}
897
+ {"messages":[{"role":"user","content":"PWN::AI::RedTeam::RagPoisoning.help Usage"},{"role":"assistant","content":"`PWN::AI::RedTeam::RagPoisoning.help`: "}]}
898
+ {"messages":[{"role":"user","content":"PWN::AI::RedTeam::RagPoisoning.scan Usage"},{"role":"assistant","content":"`PWN::AI::RedTeam::RagPoisoning.scan`: Supported Method Parameters\n\nPWN::AI::RedTeam::RagPoisoning.scan(\n\ntarget_engine: 'optional - Symbol - AI engine under test (Defaults to PWN::Env[:ai][:active])',\ntarget_model: 'optional - String - Specific model on the target engine',\nsystem_role_content: 'optional - String - System prompt applied to the target for every payload',\nattacker_engine: 'optional - Symbol - AI engine that generates adaptive payloads and judges responses (Defaults to PWN::Env[:ai][:active])',\nattacker_model: 'optional - String - Specific model on the attacker engine',\npayload_count: 'optional - Integer - Number of LLM-generated payloads to produce from strategies (default 10)',\nmax_adaptive_rounds: 'optional - Integer - AI-generated rounds after seed when module_reflection is true (default 5; 0 disables)',\nstop_on_severity: 'optional - String - Halt on first finding >= this severity (default CRITICAL)'\n\n)\n"}]}
899
+ {"messages":[{"role":"user","content":"PWN::AI::RedTeam::RagPoisoning.security_references Usage"},{"role":"assistant","content":"`PWN::AI::RedTeam::RagPoisoning.security_references`: "}]}
861
900
  {"messages":[{"role":"user","content":"PWN::AI::RedTeam::SensitiveInformationDisclosure.authors Usage"},{"role":"assistant","content":"`PWN::AI::RedTeam::SensitiveInformationDisclosure.authors`: Author(s)\n\n0day Inc. <support@0dayinc.com>\n"}]}
862
901
  {"messages":[{"role":"user","content":"PWN::AI::RedTeam::SensitiveInformationDisclosure.help Usage"},{"role":"assistant","content":"`PWN::AI::RedTeam::SensitiveInformationDisclosure.help`: "}]}
863
902
  {"messages":[{"role":"user","content":"PWN::AI::RedTeam::SensitiveInformationDisclosure.scan Usage"},{"role":"assistant","content":"`PWN::AI::RedTeam::SensitiveInformationDisclosure.scan`: Supported Method Parameters\n\nPWN::AI::RedTeam::SensitiveInformationDisclosure.scan(\n\ntarget_engine: 'optional - Symbol - AI engine under test (Defaults to PWN::Env[:ai][:active])',\ntarget_model: 'optional - String - Specific model on the target engine',\nsystem_role_content: 'optional - String - System prompt applied to the target for every payload',\nattacker_engine: 'optional - Symbol - AI engine that generates adaptive payloads and judges responses (Defaults to PWN::Env[:ai][:active])',\nattacker_model: 'optional - String - Specific model on the attacker engine',\npayload_count: 'optional - Integer - Number of LLM-generated payloads to produce from strategies (default 10)',\nmax_adaptive_rounds: 'optional - Integer - AI-generated rounds after seed when module_reflection is true (default 5; 0 disables)',\nstop_on_severity: 'optional - String - Halt on first finding >= this severity (default CRITICAL)'\n\n)\n"}]}
864
903
  {"messages":[{"role":"user","content":"PWN::AI::RedTeam::SensitiveInformationDisclosure.security_references Usage"},{"role":"assistant","content":"`PWN::AI::RedTeam::SensitiveInformationDisclosure.security_references`: "}]}
904
+ {"messages":[{"role":"user","content":"PWN::AI::RedTeam::SupplyChain.authors Usage"},{"role":"assistant","content":"`PWN::AI::RedTeam::SupplyChain.authors`: Author(s)\n\n0day Inc. <support@0dayinc.com>\n"}]}
905
+ {"messages":[{"role":"user","content":"PWN::AI::RedTeam::SupplyChain.help Usage"},{"role":"assistant","content":"`PWN::AI::RedTeam::SupplyChain.help`: "}]}
906
+ {"messages":[{"role":"user","content":"PWN::AI::RedTeam::SupplyChain.scan Usage"},{"role":"assistant","content":"`PWN::AI::RedTeam::SupplyChain.scan`: Supported Method Parameters\n\nPWN::AI::RedTeam::SupplyChain.scan(\n\ntarget_engine: 'optional - Symbol - AI engine under test (Defaults to PWN::Env[:ai][:active])',\ntarget_model: 'optional - String - Specific model on the target engine',\nsystem_role_content: 'optional - String - System prompt applied to the target for every payload',\nattacker_engine: 'optional - Symbol - AI engine that generates adaptive payloads and judges responses (Defaults to PWN::Env[:ai][:active])',\nattacker_model: 'optional - String - Specific model on the attacker engine',\npayload_count: 'optional - Integer - Number of LLM-generated payloads to produce from strategies (default 10)',\nmax_adaptive_rounds: 'optional - Integer - AI-generated rounds after seed when module_reflection is true (default 5; 0 disables)',\nstop_on_severity: 'optional - String - Halt on first finding >= this severity (default CRITICAL)'\n\n)\n"}]}
907
+ {"messages":[{"role":"user","content":"PWN::AI::RedTeam::SupplyChain.security_references Usage"},{"role":"assistant","content":"`PWN::AI::RedTeam::SupplyChain.security_references`: "}]}
865
908
  {"messages":[{"role":"user","content":"PWN::AI::RedTeam::SystemPromptExtraction.authors Usage"},{"role":"assistant","content":"`PWN::AI::RedTeam::SystemPromptExtraction.authors`: Author(s)\n\n0day Inc. <support@0dayinc.com>\n"}]}
866
909
  {"messages":[{"role":"user","content":"PWN::AI::RedTeam::SystemPromptExtraction.help Usage"},{"role":"assistant","content":"`PWN::AI::RedTeam::SystemPromptExtraction.help`: "}]}
867
910
  {"messages":[{"role":"user","content":"PWN::AI::RedTeam::SystemPromptExtraction.scan Usage"},{"role":"assistant","content":"`PWN::AI::RedTeam::SystemPromptExtraction.scan`: Supported Method Parameters\n\nPWN::AI::RedTeam::SystemPromptExtraction.scan(\n\ntarget_engine: 'optional - Symbol - AI engine under test (Defaults to PWN::Env[:ai][:active])',\ntarget_model: 'optional - String - Specific model on the target engine',\nsystem_role_content: 'optional - String - System prompt applied to the target for every payload',\nattacker_engine: 'optional - Symbol - AI engine that generates adaptive payloads and judges responses (Defaults to PWN::Env[:ai][:active])',\nattacker_model: 'optional - String - Specific model on the attacker engine',\npayload_count: 'optional - Integer - Number of LLM-generated payloads to produce from strategies (default 10)',\nmax_adaptive_rounds: 'optional - Integer - AI-generated rounds after seed when module_reflection is true (default 5; 0 disables)',\nstop_on_severity: 'optional - String - Halt on first finding >= this severity (default CRITICAL)'\n\n)\n"}]}
@@ -882,6 +925,14 @@
882
925
  {"messages":[{"role":"user","content":"PWN::AI::RedTeam::TokenSmuggling.help Usage"},{"role":"assistant","content":"`PWN::AI::RedTeam::TokenSmuggling.help`: "}]}
883
926
  {"messages":[{"role":"user","content":"PWN::AI::RedTeam::TokenSmuggling.scan Usage"},{"role":"assistant","content":"`PWN::AI::RedTeam::TokenSmuggling.scan`: Supported Method Parameters\n\nPWN::AI::RedTeam::TokenSmuggling.scan(\n\ntarget_engine: 'optional - Symbol - AI engine under test (Defaults to PWN::Env[:ai][:active])',\ntarget_model: 'optional - String - Specific model on the target engine',\nsystem_role_content: 'optional - String - System prompt applied to the target for every payload',\nattacker_engine: 'optional - Symbol - AI engine that generates adaptive payloads and judges responses (Defaults to PWN::Env[:ai][:active])',\nattacker_model: 'optional - String - Specific model on the attacker engine',\npayload_count: 'optional - Integer - Number of LLM-generated payloads to produce from strategies (default 10)',\nmax_adaptive_rounds: 'optional - Integer - AI-generated rounds after seed when module_reflection is true (default 5; 0 disables)',\nstop_on_severity: 'optional - String - Halt on first finding >= this severity (default CRITICAL)'\n\n)\n"}]}
884
927
  {"messages":[{"role":"user","content":"PWN::AI::RedTeam::TokenSmuggling.security_references Usage"},{"role":"assistant","content":"`PWN::AI::RedTeam::TokenSmuggling.security_references`: "}]}
928
+ {"messages":[{"role":"user","content":"PWN::AI::RedTeam::UnboundedConsumption.authors Usage"},{"role":"assistant","content":"`PWN::AI::RedTeam::UnboundedConsumption.authors`: Author(s)\n\n0day Inc. <support@0dayinc.com>\n"}]}
929
+ {"messages":[{"role":"user","content":"PWN::AI::RedTeam::UnboundedConsumption.help Usage"},{"role":"assistant","content":"`PWN::AI::RedTeam::UnboundedConsumption.help`: "}]}
930
+ {"messages":[{"role":"user","content":"PWN::AI::RedTeam::UnboundedConsumption.scan Usage"},{"role":"assistant","content":"`PWN::AI::RedTeam::UnboundedConsumption.scan`: Supported Method Parameters\n\nPWN::AI::RedTeam::UnboundedConsumption.scan(\n\ntarget_engine: 'optional - Symbol - AI engine under test (Defaults to PWN::Env[:ai][:active])',\ntarget_model: 'optional - String - Specific model on the target engine',\nsystem_role_content: 'optional - String - System prompt applied to the target for every payload',\nattacker_engine: 'optional - Symbol - AI engine that generates adaptive payloads and judges responses (Defaults to PWN::Env[:ai][:active])',\nattacker_model: 'optional - String - Specific model on the attacker engine',\npayload_count: 'optional - Integer - Number of LLM-generated payloads to produce from strategies (default 10)',\nmax_adaptive_rounds: 'optional - Integer - AI-generated rounds after seed when module_reflection is true (default 5; 0 disables)',\nstop_on_severity: 'optional - String - Halt on first finding >= this severity (default CRITICAL)'\n\n)\n"}]}
931
+ {"messages":[{"role":"user","content":"PWN::AI::RedTeam::UnboundedConsumption.security_references Usage"},{"role":"assistant","content":"`PWN::AI::RedTeam::UnboundedConsumption.security_references`: "}]}
932
+ {"messages":[{"role":"user","content":"PWN::AI::RedTeam::VectorAndEmbeddingWeaknesses.authors Usage"},{"role":"assistant","content":"`PWN::AI::RedTeam::VectorAndEmbeddingWeaknesses.authors`: Author(s)\n\n0day Inc. <support@0dayinc.com>\n"}]}
933
+ {"messages":[{"role":"user","content":"PWN::AI::RedTeam::VectorAndEmbeddingWeaknesses.help Usage"},{"role":"assistant","content":"`PWN::AI::RedTeam::VectorAndEmbeddingWeaknesses.help`: "}]}
934
+ {"messages":[{"role":"user","content":"PWN::AI::RedTeam::VectorAndEmbeddingWeaknesses.scan Usage"},{"role":"assistant","content":"`PWN::AI::RedTeam::VectorAndEmbeddingWeaknesses.scan`: Supported Method Parameters\n\nPWN::AI::RedTeam::VectorAndEmbeddingWeaknesses.scan(\n\ntarget_engine: 'optional - Symbol - AI engine under test (Defaults to PWN::Env[:ai][:active])',\ntarget_model: 'optional - String - Specific model on the target engine',\nsystem_role_content: 'optional - String - System prompt applied to the target for every payload',\nattacker_engine: 'optional - Symbol - AI engine that generates adaptive payloads and judges responses (Defaults to PWN::Env[:ai][:active])',\nattacker_model: 'optional - String - Specific model on the attacker engine',\npayload_count: 'optional - Integer - Number of LLM-generated payloads to produce from strategies (default 10)',\nmax_adaptive_rounds: 'optional - Integer - AI-generated rounds after seed when module_reflection is true (default 5; 0 disables)',\nstop_on_severity: 'optional - String - Halt on first finding >= this severity (default CRITICAL)'\n\n)\n"}]}
935
+ {"messages":[{"role":"user","content":"PWN::AI::RedTeam::VectorAndEmbeddingWeaknesses.security_references Usage"},{"role":"assistant","content":"`PWN::AI::RedTeam::VectorAndEmbeddingWeaknesses.security_references`: "}]}
885
936
  {"messages":[{"role":"user","content":"PWN::AWS.authors Usage"},{"role":"assistant","content":"`PWN::AWS.authors`: Author(s)\n\n0day Inc. <support@0dayinc.com>\n"}]}
886
937
  {"messages":[{"role":"user","content":"PWN::AWS.help Usage"},{"role":"assistant","content":"`PWN::AWS.help`: "}]}
887
938
  {"messages":[{"role":"user","content":"PWN::AWS::ACM.authors Usage"},{"role":"assistant","content":"`PWN::AWS::ACM.authors`: Author(s)\n\n0day Inc. <support@0dayinc.com>\n"}]}
@@ -2102,11 +2153,13 @@
2102
2153
  {"messages":[{"role":"user","content":"PWN::Plugins::NexposeVulnScan.logout Usage"},{"role":"assistant","content":"`PWN::Plugins::NexposeVulnScan.logout`: Supported Method Parameters\n\nPWN::Plugins::NexposeVulnScan.logout(\n\nnsc_obj: 'required nsc_obj returned from login method'\n\n)\n"}]}
2103
2154
  {"messages":[{"role":"user","content":"PWN::Plugins::NexposeVulnScan.scan_site_by_name Usage"},{"role":"assistant","content":"`PWN::Plugins::NexposeVulnScan.scan_site_by_name`: Supported Method Parameters\n\nPWN::Plugins::NexposeVulnScan.scan_site_by_name(\n\nnsc_obj: 'required nsc_obj returned from login method',\nsite_name: 'required Nexpose site name to scan (case-sensitive),\npoll_interval: 'optional poll interval to check the completion status of the scan (defaults to 3 minutes)\n\n)\n"}]}
2104
2155
  {"messages":[{"role":"user","content":"PWN::Plugins::NexposeVulnScan.update_site_assets Usage"},{"role":"assistant","content":"`PWN::Plugins::NexposeVulnScan.update_site_assets`: Supported Method Parameters\n\nPWN::Plugins::NexposeVulnScan.update_site_assets(\n\nnsc_obj: 'required nsc_obj returned from login method',\nsite_name: 'required Nexpose site name to update (case-sensitive),\nassets: 'required array of hashes containing called :ip => values being IP address (All IPs not included in the :assets parameter will be removed from Nexpose)'\n\n)\n"}]}
2156
+ {"messages":[{"role":"user","content":"PWN::Plugins::NmapIt.apply_port_scan_opts Usage"},{"role":"assistant","content":"`PWN::Plugins::NmapIt.apply_port_scan_opts`: "}]}
2105
2157
  {"messages":[{"role":"user","content":"PWN::Plugins::NmapIt.authors Usage"},{"role":"assistant","content":"`PWN::Plugins::NmapIt.authors`: Author(s)\n\n0day Inc. <support@0dayinc.com>\n"}]}
2106
2158
  {"messages":[{"role":"user","content":"PWN::Plugins::NmapIt.diff_xml_results Usage"},{"role":"assistant","content":"`PWN::Plugins::NmapIt.diff_xml_results`: Supported Method Parameters\n\nPWN::Plugins::NmapIt.diff_xml_results(\n\nxml_a: 'required - path to nmap xml results',\nxml_b: 'required - path to nmap xml results',\ndiff: 'required - path to nmap xml results diff'\n\n)\n"}]}
2107
2159
  {"messages":[{"role":"user","content":"PWN::Plugins::NmapIt.help Usage"},{"role":"assistant","content":"`PWN::Plugins::NmapIt.help`: "}]}
2160
+ {"messages":[{"role":"user","content":"PWN::Plugins::NmapIt.nmap_compat Usage"},{"role":"assistant","content":"`PWN::Plugins::NmapIt.nmap_compat`: "}]}
2108
2161
  {"messages":[{"role":"user","content":"PWN::Plugins::NmapIt.parse_xml_results Usage"},{"role":"assistant","content":"`PWN::Plugins::NmapIt.parse_xml_results`: Supported Method Parameters\n\nPWN::Plugins::NmapIt.parse_xml_results(:xml_file => ‘required - path to nmap xml results’) do |xml|\n\nputs xml.public_methods\nxml.each_host do |host|\n puts \"[#{host.ip}]\"\n\n host.scripts.each do |name,output|\n output.each_line { |line| puts \" #{line}\" }\n end\n\n host.each_port do |port|\n puts \" [#{port.number}/#{port.protocol}]\"\n\n port.scripts.each do |name,output|\n puts \" [#{name}]\"\n output.each_line { |line| puts \" #{line}\" }\n end\n end\nend\n\n\nend\n"}]}
2109
- {"messages":[{"role":"user","content":"PWN::Plugins::NmapIt.port_scan Usage"},{"role":"assistant","content":"`PWN::Plugins::NmapIt.port_scan`: Supported Method Parameters\n\nPWN::Plugins::NmapIt.port_scan do |nmap|\n\nputs nmap.public_methods\nnmap.connect_scan = true\nnmap.service_scan = true\nnmap.verbose = true\nnmap.ports = [1..1024,1337]\nnmap.targets = '127.0.0.1'\nnmap.xml = '/tmp/nmap_port_scan_res.xml'\n\n\nend\n"}]}
2162
+ {"messages":[{"role":"user","content":"PWN::Plugins::NmapIt.port_scan Usage"},{"role":"assistant","content":"`PWN::Plugins::NmapIt.port_scan`: Supported Method Parameters\n\nPWN::Plugins::NmapIt.port_scan do |nmap|\n\nputs nmap.public_methods\nnmap.connect_scan = true\nnmap.service_scan = true\nnmap.verbose = true\nnmap.ports = [1..1024, 1337]\nnmap.targets = '127.0.0.1'\nnmap.xml = '/tmp/nmap_port_scan_res.xml' # alias of output_xml\n\n\nend\n\nPWN::Plugins::NmapIt.port_scan(\n\ntargets: '127.0.0.1',\nports: '1-65535',\nconnect_scan: true,\nservice_scan: true,\nscript: 'vuln,safe',\nxml: '/tmp/nmap_port_scan_res.xml'\n\n)\n"}]}
2110
2163
  {"messages":[{"role":"user","content":"PWN::Plugins::OAuth2.authors Usage"},{"role":"assistant","content":"`PWN::Plugins::OAuth2.authors`: Author(s)\n\n0day Inc. <support@0dayinc.com>\n"}]}
2111
2164
  {"messages":[{"role":"user","content":"PWN::Plugins::OAuth2.decode Usage"},{"role":"assistant","content":"`PWN::Plugins::OAuth2.decode`: Supported Method Parameters\n\nPWN::Plugins::OAuth2.decode(\n\noauth2_token: 'required oauth2 token'\n\n)\n"}]}
2112
2165
  {"messages":[{"role":"user","content":"PWN::Plugins::OAuth2.get_value_by_key Usage"},{"role":"assistant","content":"`PWN::Plugins::OAuth2.get_value_by_key`: Supported Method Parameters\n\nPWN::Plugins::OAuth2.get_value_by_key(\n\noauth2_token: 'required oauth2 token',\nkey: 'required oauth2 token key name located within the Base64 encoded token as symbol, e.g. :company_id'\n\n)\n"}]}
@@ -2190,14 +2243,21 @@
2190
2243
  {"messages":[{"role":"user","content":"PWN::Plugins::REPL.enable_autocomplete Usage"},{"role":"assistant","content":"`PWN::Plugins::REPL.enable_autocomplete`: Supported Method Parameters\n\nPWN::Plugins::REPL.enable_autocomplete(\n\nenabled: 'optional - Boolean (default true). false reverts to single-line cycling.'\n\n)\n\nIRB-style suggest-as-you-type for the pwn REPL.\n\nReplaces Pry’s default input (rb-readline — single-candidate TAB cycling) with Reline and turns on Reline.autocompletion, which renders a live dropdown of candidates below the cursor as you type (the same widget IRB uses). Pry already wires Reline.completion_proc → @pry.complete (Pry::InputCompleter) when input == Reline, so the menu is fed by the full Ruby/PWN object graph: constants (PWN::Plugins::Nm<TAB>), instance methods, local/global variables, and Pry slash-commands.\n\nNavigate with ↑/↓ or TAB, accept with → or ENTER, dismiss with ESC.\n\nScope: this drives the MAIN pwn REPL (Ruby). pwn-ai swaps PWNMultiLineInput onto Reline.readmultiline and installs install_pwn_ai_completer! so TAB is command / path / Ruby menus. pwn-asm keeps opcode input without those menus.\n"}]}
2191
2244
  {"messages":[{"role":"user","content":"PWN::Plugins::REPL.help Usage"},{"role":"assistant","content":"`PWN::Plugins::REPL.help`: "}]}
2192
2245
  {"messages":[{"role":"user","content":"PWN::Plugins::REPL.install_pwn_ai_completer! Usage"},{"role":"assistant","content":"`PWN::Plugins::REPL.install_pwn_ai_completer!`: "}]}
2246
+ {"messages":[{"role":"user","content":"PWN::Plugins::REPL.persist_ai_selection Usage"},{"role":"assistant","content":"`PWN::Plugins::REPL.persist_ai_selection`: "}]}
2193
2247
  {"messages":[{"role":"user","content":"PWN::Plugins::REPL.pwn_ai_complete Usage"},{"role":"assistant","content":"`PWN::Plugins::REPL.pwn_ai_complete`: Supported Method Parameters\n\nhits = PWN::Plugins::REPL.pwn_ai_complete(\n\ntarget: 'required - token Reline is completing',\nline: 'optional - full line buffer',\npry: 'optional - Pry instance for Ruby completion'\n\n)\n"}]}
2194
2248
  {"messages":[{"role":"user","content":"PWN::Plugins::REPL.pwn_ai_complete_command Usage"},{"role":"assistant","content":"`PWN::Plugins::REPL.pwn_ai_complete_command`: "}]}
2195
2249
  {"messages":[{"role":"user","content":"PWN::Plugins::REPL.pwn_ai_complete_kind Usage"},{"role":"assistant","content":"`PWN::Plugins::REPL.pwn_ai_complete_kind`: Supported Method Parameters\n\nkind = PWN::Plugins::REPL.pwn_ai_complete_kind(line: ‘optional - current input buffer’)\n\nfirst char is ‘/’ → :command (pwn-ai slash menu)\n\n‘/’ anywhere else → :path (host-native file nav)\n\nelse → :ruby (same Pry::InputCompleter menu as the pwn REPL)\n\n"}]}
2196
2250
  {"messages":[{"role":"user","content":"PWN::Plugins::REPL.pwn_ai_complete_path Usage"},{"role":"assistant","content":"`PWN::Plugins::REPL.pwn_ai_complete_path`: "}]}
2197
2251
  {"messages":[{"role":"user","content":"PWN::Plugins::REPL.pwn_ai_complete_ruby Usage"},{"role":"assistant","content":"`PWN::Plugins::REPL.pwn_ai_complete_ruby`: "}]}
2198
2252
  {"messages":[{"role":"user","content":"PWN::Plugins::REPL.pwn_ai_dispatch_slash! Usage"},{"role":"assistant","content":"`PWN::Plugins::REPL.pwn_ai_dispatch_slash!`: "}]}
2253
+ {"messages":[{"role":"user","content":"PWN::Plugins::REPL.pwn_ai_engine_model Usage"},{"role":"assistant","content":"`PWN::Plugins::REPL.pwn_ai_engine_model`: "}]}
2254
+ {"messages":[{"role":"user","content":"PWN::Plugins::REPL.pwn_ai_engines Usage"},{"role":"assistant","content":"`PWN::Plugins::REPL.pwn_ai_engines`: "}]}
2255
+ {"messages":[{"role":"user","content":"PWN::Plugins::REPL.pwn_ai_list_llms Usage"},{"role":"assistant","content":"`PWN::Plugins::REPL.pwn_ai_list_llms`: "}]}
2256
+ {"messages":[{"role":"user","content":"PWN::Plugins::REPL.pwn_ai_model_ids Usage"},{"role":"assistant","content":"`PWN::Plugins::REPL.pwn_ai_model_ids`: "}]}
2257
+ {"messages":[{"role":"user","content":"PWN::Plugins::REPL.pwn_ai_provider_class Usage"},{"role":"assistant","content":"`PWN::Plugins::REPL.pwn_ai_provider_class`: "}]}
2199
2258
  {"messages":[{"role":"user","content":"PWN::Plugins::REPL.pwn_ai_run_cron Usage"},{"role":"assistant","content":"`PWN::Plugins::REPL.pwn_ai_run_cron`: "}]}
2200
2259
  {"messages":[{"role":"user","content":"PWN::Plugins::REPL.pwn_ai_run_memory Usage"},{"role":"assistant","content":"`PWN::Plugins::REPL.pwn_ai_run_memory`: "}]}
2260
+ {"messages":[{"role":"user","content":"PWN::Plugins::REPL.pwn_ai_run_model Usage"},{"role":"assistant","content":"`PWN::Plugins::REPL.pwn_ai_run_model`: "}]}
2201
2261
  {"messages":[{"role":"user","content":"PWN::Plugins::REPL.pwn_ai_run_sessions Usage"},{"role":"assistant","content":"`PWN::Plugins::REPL.pwn_ai_run_sessions`: "}]}
2202
2262
  {"messages":[{"role":"user","content":"PWN::Plugins::REPL.pwn_ai_run_skills Usage"},{"role":"assistant","content":"`PWN::Plugins::REPL.pwn_ai_run_skills`: "}]}
2203
2263
  {"messages":[{"role":"user","content":"PWN::Plugins::REPL.ready_tty! Usage"},{"role":"assistant","content":"`PWN::Plugins::REPL.ready_tty!`: "}]}