pwn 0.5.679 → 0.5.682
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/.gitignore +1 -0
- data/documentation/AI-Integration.md +1 -1
- data/documentation/Agent-Tool-Registry.md +1 -1
- data/documentation/Configuration.md +3 -6
- data/documentation/How-PWN-Works.md +2 -2
- data/documentation/Reinforcement-Learning.md +1 -1
- data/documentation/diagrams/dot/task-summarizer.dot +3 -3
- data/documentation/pwn-ai-Agent.md +16 -35
- data/lib/pwn/ai/agent/loop.rb +272 -196
- data/lib/pwn/ai/agent/mistakes.rb +17 -0
- data/lib/pwn/ai/agent/policy.rb +55 -5
- data/lib/pwn/ai/agent/prompt_builder.rb +38 -12
- data/lib/pwn/ai/agent/registry.rb +17 -9
- data/lib/pwn/ai/agent/task_summarizer.rb +374 -503
- data/lib/pwn/ai/anthropic.rb +1 -0
- data/lib/pwn/ai/gemini.rb +1 -0
- data/lib/pwn/ai/grok.rb +1 -0
- data/lib/pwn/ai/ollama.rb +1 -0
- data/lib/pwn/ai/open_ai.rb +1 -0
- data/lib/pwn/ai/open_web_ui.rb +1 -0
- data/lib/pwn/config.rb +1 -1
- data/lib/pwn/cron.rb +1 -1
- data/lib/pwn/plugins/repl.rb +0 -6
- data/lib/pwn/plugins/tty_spinner.rb +7 -11
- data/lib/pwn/version.rb +1 -1
- data/spec/integration/prompt_builder_spec.rb +6 -4
- data/spec/lib/pwn/ai/agent/loop_spec.rb +251 -33
- data/spec/lib/pwn/ai/agent/mistakes_spec.rb +14 -0
- data/spec/lib/pwn/ai/agent/policy_spec.rb +52 -1
- data/spec/lib/pwn/ai/agent/prompt_builder_spec.rb +4 -9
- data/spec/lib/pwn/ai/agent/registry_spec.rb +22 -2
- data/spec/lib/pwn/ai/agent/signal_hygiene_spec.rb +4 -5
- data/spec/lib/pwn/ai/agent/task_summarizer_spec.rb +321 -90
- data/spec/lib/pwn/plugins/tty_spinner_spec.rb +0 -48
- data/third_party/pwn_rdoc.jsonl +24 -9
- metadata +1 -1
data/third_party/pwn_rdoc.jsonl
CHANGED
|
@@ -339,6 +339,7 @@
|
|
|
339
339
|
{"messages":[{"role":"user","content":"PWN::AI::Agent::Loop.maybe_park_budget_scars! Usage"},{"role":"assistant","content":"`PWN::AI::Agent::Loop.maybe_park_budget_scars!`: "}]}
|
|
340
340
|
{"messages":[{"role":"user","content":"PWN::AI::Agent::Loop.maybe_refresh_extro_snapshot! Usage"},{"role":"assistant","content":"`PWN::AI::Agent::Loop.maybe_refresh_extro_snapshot!`: "}]}
|
|
341
341
|
{"messages":[{"role":"user","content":"PWN::AI::Agent::Loop.mistake_ts Usage"},{"role":"assistant","content":"`PWN::AI::Agent::Loop.mistake_ts`: "}]}
|
|
342
|
+
{"messages":[{"role":"user","content":"PWN::AI::Agent::Loop.needs_host_work? Usage"},{"role":"assistant","content":"`PWN::AI::Agent::Loop.needs_host_work?`: "}]}
|
|
342
343
|
{"messages":[{"role":"user","content":"PWN::AI::Agent::Loop.normalize_llm Usage"},{"role":"assistant","content":"`PWN::AI::Agent::Loop.normalize_llm`: Supported Method Parameters\n\nmsg = PWN::AI::Agent::Loop.normalize_llm(\n\nresponse: 'required - chat_with_tools response Hash from any provider'\n\n)\n"}]}
|
|
343
344
|
{"messages":[{"role":"user","content":"PWN::AI::Agent::Loop.ollama_wire_messages Usage"},{"role":"assistant","content":"`PWN::AI::Agent::Loop.ollama_wire_messages`: Supported Method Parameters\n\nwire = PWN::AI::Agent::Loop.ollama_wire_messages(\n\nmessages: 'required - in-memory OpenAI-ish messages (may have String args)'\n\n)\n\nReturns a deep-copied array safe for Ollama / Open WebUI ollama/api/chat:\n\nparses JSON-string function.arguments into Hash/Array objects\n\ncoerces nil assistant content to ” when tool_calls present (Open WebUI GenerateChatCompletionForm rejects content:null alone)\n\ndrops _native_content / _text_tool_coerced / thinking private keys\n\nstringifies Hash/Array message content (tool results) to JSON text\n\n"}]}
|
|
344
345
|
{"messages":[{"role":"user","content":"PWN::AI::Agent::Loop.ollama_wire_tool_call Usage"},{"role":"assistant","content":"`PWN::AI::Agent::Loop.ollama_wire_tool_call`: "}]}
|
|
@@ -351,7 +352,8 @@
|
|
|
351
352
|
{"messages":[{"role":"user","content":"PWN::AI::Agent::Loop.recon_authorized? Usage"},{"role":"assistant","content":"`PWN::AI::Agent::Loop.recon_authorized?`: "}]}
|
|
352
353
|
{"messages":[{"role":"user","content":"PWN::AI::Agent::Loop.record_metrics Usage"},{"role":"assistant","content":"`PWN::AI::Agent::Loop.record_metrics`: "}]}
|
|
353
354
|
{"messages":[{"role":"user","content":"PWN::AI::Agent::Loop.request_intent Usage"},{"role":"assistant","content":"`PWN::AI::Agent::Loop.request_intent`: "}]}
|
|
354
|
-
{"messages":[{"role":"user","content":"PWN::AI::Agent::Loop.
|
|
355
|
+
{"messages":[{"role":"user","content":"PWN::AI::Agent::Loop.request_path_evidenced? Usage"},{"role":"assistant","content":"`PWN::AI::Agent::Loop.request_path_evidenced?`: "}]}
|
|
356
|
+
{"messages":[{"role":"user","content":"PWN::AI::Agent::Loop.request_unsatisfied? Usage"},{"role":"assistant","content":"`PWN::AI::Agent::Loop.request_unsatisfied?`: "}]}
|
|
355
357
|
{"messages":[{"role":"user","content":"PWN::AI::Agent::Loop.run Usage"},{"role":"assistant","content":"`PWN::AI::Agent::Loop.run`: Supported Method Parameters\n\nfinal = PWN::AI::Agent::Loop.run(\n\nrequest: 'required - what the human typed',\nsession_id: 'optional - PWN::Sessions id (transcript is appended to it)',\nenabled_toolsets: 'optional - subset of Registry.toolsets, or nil for all',\non_tool: 'optional - ->(name, args, result) callback for live UI',\nsystem_role_content: 'optional - override default system prompt (built from session_id if not provided)'\n\n)\n"}]}
|
|
356
358
|
{"messages":[{"role":"user","content":"PWN::AI::Agent::Loop.should_auto_introspect? Usage"},{"role":"assistant","content":"`PWN::AI::Agent::Loop.should_auto_introspect?`: "}]}
|
|
357
359
|
{"messages":[{"role":"user","content":"PWN::AI::Agent::Loop.stringify_tool_arguments Usage"},{"role":"assistant","content":"`PWN::AI::Agent::Loop.stringify_tool_arguments`: "}]}
|
|
@@ -359,6 +361,7 @@
|
|
|
359
361
|
{"messages":[{"role":"user","content":"PWN::AI::Agent::Loop.task_summary_flush! Usage"},{"role":"assistant","content":"`PWN::AI::Agent::Loop.task_summary_flush!`: "}]}
|
|
360
362
|
{"messages":[{"role":"user","content":"PWN::AI::Agent::Loop.task_summary_plan! Usage"},{"role":"assistant","content":"`PWN::AI::Agent::Loop.task_summary_plan!`: "}]}
|
|
361
363
|
{"messages":[{"role":"user","content":"PWN::AI::Agent::Loop.task_summary_record! Usage"},{"role":"assistant","content":"`PWN::AI::Agent::Loop.task_summary_record!`: "}]}
|
|
364
|
+
{"messages":[{"role":"user","content":"PWN::AI::Agent::Loop.world_knowledge? Usage"},{"role":"assistant","content":"`PWN::AI::Agent::Loop.world_knowledge?`: "}]}
|
|
362
365
|
{"messages":[{"role":"user","content":"PWN::AI::Agent::Metrics.advantage Usage"},{"role":"assistant","content":"`PWN::AI::Agent::Metrics.advantage`: Supported Method Parameters\n\na = PWN::AI::Agent::Metrics.advantage(name: ‘shell’)\n\nC1 — tool.success_rate − global_rate over the rolling window.\n"}]}
|
|
363
366
|
{"messages":[{"role":"user","content":"PWN::AI::Agent::Metrics.authors Usage"},{"role":"assistant","content":"`PWN::AI::Agent::Metrics.authors`: Author(s)\n\n0day Inc. <support@0dayinc.com>\n"}]}
|
|
364
367
|
{"messages":[{"role":"user","content":"PWN::AI::Agent::Metrics.beta_sample Usage"},{"role":"assistant","content":"`PWN::AI::Agent::Metrics.beta_sample`: "}]}
|
|
@@ -389,6 +392,7 @@
|
|
|
389
392
|
{"messages":[{"role":"user","content":"PWN::AI::Agent::Metrics.ucb Usage"},{"role":"assistant","content":"`PWN::AI::Agent::Metrics.ucb`: "}]}
|
|
390
393
|
{"messages":[{"role":"user","content":"PWN::AI::Agent::Mistakes.atomic_write Usage"},{"role":"assistant","content":"`PWN::AI::Agent::Mistakes.atomic_write`: "}]}
|
|
391
394
|
{"messages":[{"role":"user","content":"PWN::AI::Agent::Mistakes.authors Usage"},{"role":"assistant","content":"`PWN::AI::Agent::Mistakes.authors`: Author(s)\n\n0day Inc. <support@0dayinc.com>\n"}]}
|
|
395
|
+
{"messages":[{"role":"user","content":"PWN::AI::Agent::Mistakes.budget_scar? Usage"},{"role":"assistant","content":"`PWN::AI::Agent::Mistakes.budget_scar?`: "}]}
|
|
392
396
|
{"messages":[{"role":"user","content":"PWN::AI::Agent::Mistakes.check_user_correction Usage"},{"role":"assistant","content":"`PWN::AI::Agent::Mistakes.check_user_correction`: Supported Method Parameters\n\nentry = PWN::AI::Agent::Mistakes.check_user_correction(\n\nrequest: 'required - the incoming user message',\nsession_id: 'optional - session to inspect for the previous answer'\n\n)\n\nWhen the user’s new message reads like a correction of the previous answer, this (a) flips the most recent Learning outcome for that session to success:false, and (b) records a mistake with source :user_correction whose “error” is the user’s own words. This is the strongest available signal that the agent was WRONG.\n"}]}
|
|
393
397
|
{"messages":[{"role":"user","content":"PWN::AI::Agent::Mistakes.correction? Usage"},{"role":"assistant","content":"`PWN::AI::Agent::Mistakes.correction?`: Supported Method Parameters\n\nbool = PWN::AI::Agent::Mistakes.correction?(request: user_text)\n"}]}
|
|
394
398
|
{"messages":[{"role":"user","content":"PWN::AI::Agent::Mistakes.correction_hint Usage"},{"role":"assistant","content":"`PWN::AI::Agent::Mistakes.correction_hint`: Supported Method Parameters\n\nstr = PWN::AI::Agent::Mistakes.correction_hint(\n\ntool: 'required - tool that just failed',\nerror: 'required - raw error it failed with'\n\n)\n\nCalled by Loop.run immediately after a failed dispatch. Returns a string to append to the tool result telling the model (a) how many times this exact failure has occurred across ALL sessions, and (b) the recorded fix if one exists — so it can self-correct on the very next iteration instead of re-discovering the fix from scratch.\n"}]}
|
|
@@ -430,6 +434,7 @@
|
|
|
430
434
|
{"messages":[{"role":"user","content":"PWN::AI::Agent::Policy.detach_episode! Usage"},{"role":"assistant","content":"`PWN::AI::Agent::Policy.detach_episode!`: "}]}
|
|
431
435
|
{"messages":[{"role":"user","content":"PWN::AI::Agent::Policy.discounted_return Usage"},{"role":"assistant","content":"`PWN::AI::Agent::Policy.discounted_return`: "}]}
|
|
432
436
|
{"messages":[{"role":"user","content":"PWN::AI::Agent::Policy.enabled? Usage"},{"role":"assistant","content":"`PWN::AI::Agent::Policy.enabled?`: "}]}
|
|
437
|
+
{"messages":[{"role":"user","content":"PWN::AI::Agent::Policy.english_step_bonus Usage"},{"role":"assistant","content":"`PWN::AI::Agent::Policy.english_step_bonus`: "}]}
|
|
433
438
|
{"messages":[{"role":"user","content":"PWN::AI::Agent::Policy.episode_budget_met? Usage"},{"role":"assistant","content":"`PWN::AI::Agent::Policy.episode_budget_met?`: "}]}
|
|
434
439
|
{"messages":[{"role":"user","content":"PWN::AI::Agent::Policy.evaluate Usage"},{"role":"assistant","content":"`PWN::AI::Agent::Policy.evaluate`: "}]}
|
|
435
440
|
{"messages":[{"role":"user","content":"PWN::AI::Agent::Policy.fail_bin Usage"},{"role":"assistant","content":"`PWN::AI::Agent::Policy.fail_bin`: "}]}
|
|
@@ -458,6 +463,8 @@
|
|
|
458
463
|
{"messages":[{"role":"user","content":"PWN::AI::Agent::Policy.terminal_reward Usage"},{"role":"assistant","content":"`PWN::AI::Agent::Policy.terminal_reward`: "}]}
|
|
459
464
|
{"messages":[{"role":"user","content":"PWN::AI::Agent::Policy.to_context Usage"},{"role":"assistant","content":"`PWN::AI::Agent::Policy.to_context`: "}]}
|
|
460
465
|
{"messages":[{"role":"user","content":"PWN::AI::Agent::Policy.trajectories Usage"},{"role":"assistant","content":"`PWN::AI::Agent::Policy.trajectories`: "}]}
|
|
466
|
+
{"messages":[{"role":"user","content":"PWN::AI::Agent::Policy.ts_idx Usage"},{"role":"assistant","content":"`PWN::AI::Agent::Policy.ts_idx`: "}]}
|
|
467
|
+
{"messages":[{"role":"user","content":"PWN::AI::Agent::Policy.ts_open? Usage"},{"role":"assistant","content":"`PWN::AI::Agent::Policy.ts_open?`: "}]}
|
|
461
468
|
{"messages":[{"role":"user","content":"PWN::AI::Agent::Policy.update_pg! Usage"},{"role":"assistant","content":"`PWN::AI::Agent::Policy.update_pg!`: Supported Method Parameters\n\nh = PWN::AI::Agent::Policy.update_pg!(\n\nstate: 'required',\naction: 'required',\nadvantage: 'required - scalar G_t − V(s)'\n\n)\n"}]}
|
|
462
469
|
{"messages":[{"role":"user","content":"PWN::AI::Agent::Policy.update_q! Usage"},{"role":"assistant","content":"`PWN::AI::Agent::Policy.update_q!`: Supported Method Parameters\n\nq = PWN::AI::Agent::Policy.update_q!(\n\ntransition: 'required - Hash with :state :action :reward :next_state :terminal'\n\n)\n"}]}
|
|
463
470
|
{"messages":[{"role":"user","content":"PWN::AI::Agent::Policy.usable_bin Usage"},{"role":"assistant","content":"`PWN::AI::Agent::Policy.usable_bin`: "}]}
|
|
@@ -603,14 +610,16 @@
|
|
|
603
610
|
{"messages":[{"role":"user","content":"PWN::AI::Agent::TaskSummarizer.active_task Usage"},{"role":"assistant","content":"`PWN::AI::Agent::TaskSummarizer.active_task`: Supported Method Parameters\n\ninfo = PWN::AI::Agent::TaskSummarizer.active_task(\n\nstate: 'required - fresh() hash'\n\n)\n\n> { idx:, n:, item:, label: “task k/n: …” } or nil\n"}]}
|
|
604
611
|
{"messages":[{"role":"user","content":"PWN::AI::Agent::TaskSummarizer.active_task_prompt Usage"},{"role":"assistant","content":"`PWN::AI::Agent::TaskSummarizer.active_task_prompt`: Supported Method Parameters\n\ntext = PWN::AI::Agent::TaskSummarizer.active_task_prompt(\n\nstate: 'required - fresh() hash',\nforce: 'optional - Boolean re-emit even if idx unchanged'\n\n)\n"}]}
|
|
605
612
|
{"messages":[{"role":"user","content":"PWN::AI::Agent::TaskSummarizer.advancement_brief Usage"},{"role":"assistant","content":"`PWN::AI::Agent::TaskSummarizer.advancement_brief`: "}]}
|
|
606
|
-
{"messages":[{"role":"user","content":"PWN::AI::Agent::TaskSummarizer.apply_prm_advancement! Usage"},{"role":"assistant","content":"`PWN::AI::Agent::TaskSummarizer.apply_prm_advancement!`: Supported Method Parameters\n\nidx = PWN::AI::Agent::TaskSummarizer.apply_prm_advancement!(\n\nstate: 'required - fresh() hash',\nrewards: 'required - Array of -1|0|1 (batch order)',\nintents: 'optional - Array of intent verb strings for the batch',\nnames: 'optional - tool names in the batch',\nmistake: 'optional - truthy when a mistake fingerprint hit this batch'\n\n)\n"}]}
|
|
613
|
+
{"messages":[{"role":"user","content":"PWN::AI::Agent::TaskSummarizer.apply_prm_advancement! Usage"},{"role":"assistant","content":"`PWN::AI::Agent::TaskSummarizer.apply_prm_advancement!`: Supported Method Parameters\n\nidx = PWN::AI::Agent::TaskSummarizer.apply_prm_advancement!(\n\nstate: 'required - fresh() hash',\nrewards: 'required - Array of -1|0|1 (batch order)',\nintents: 'optional - Array of intent verb strings for the batch',\nnames: 'optional - tool names in the batch',\nresult: 'optional - latest tool result string',\nmistake: 'optional - truthy when a mistake fingerprint hit this batch'\n\n)\n"}]}
|
|
607
614
|
{"messages":[{"role":"user","content":"PWN::AI::Agent::TaskSummarizer.arg_snippet Usage"},{"role":"assistant","content":"`PWN::AI::Agent::TaskSummarizer.arg_snippet`: "}]}
|
|
608
615
|
{"messages":[{"role":"user","content":"PWN::AI::Agent::TaskSummarizer.authors Usage"},{"role":"assistant","content":"`PWN::AI::Agent::TaskSummarizer.authors`: Author(s)\n\n0day Inc. <support@0dayinc.com>\n"}]}
|
|
609
616
|
{"messages":[{"role":"user","content":"PWN::AI::Agent::TaskSummarizer.brief_fingerprint Usage"},{"role":"assistant","content":"`PWN::AI::Agent::TaskSummarizer.brief_fingerprint`: "}]}
|
|
617
|
+
{"messages":[{"role":"user","content":"PWN::AI::Agent::TaskSummarizer.bump_plan! Usage"},{"role":"assistant","content":"`PWN::AI::Agent::TaskSummarizer.bump_plan!`: "}]}
|
|
618
|
+
{"messages":[{"role":"user","content":"PWN::AI::Agent::TaskSummarizer.canonical_request Usage"},{"role":"assistant","content":"`PWN::AI::Agent::TaskSummarizer.canonical_request`: Supported Method Parameters\n\ntext = PWN::AI::Agent::TaskSummarizer.canonical_request(\n\nrequest: 'required - raw user or wrapper string'\n\n)\n"}]}
|
|
610
619
|
{"messages":[{"role":"user","content":"PWN::AI::Agent::TaskSummarizer.capabilities_for Usage"},{"role":"assistant","content":"`PWN::AI::Agent::TaskSummarizer.capabilities_for`: "}]}
|
|
611
620
|
{"messages":[{"role":"user","content":"PWN::AI::Agent::TaskSummarizer.capability_label Usage"},{"role":"assistant","content":"`PWN::AI::Agent::TaskSummarizer.capability_label`: "}]}
|
|
612
|
-
{"messages":[{"role":"user","content":"PWN::AI::Agent::TaskSummarizer.chat_for_kind Usage"},{"role":"assistant","content":"`PWN::AI::Agent::TaskSummarizer.chat_for_kind`: "}]}
|
|
613
621
|
{"messages":[{"role":"user","content":"PWN::AI::Agent::TaskSummarizer.chat_for_plan Usage"},{"role":"assistant","content":"`PWN::AI::Agent::TaskSummarizer.chat_for_plan`: Supported Method Parameters\n\ntext = PWN::AI::Agent::TaskSummarizer.chat_for_plan(\n\nrequest: 'required - user goal to decompose'\n\n) Kept public so specs can stub the LLM boundary.\n"}]}
|
|
622
|
+
{"messages":[{"role":"user","content":"PWN::AI::Agent::TaskSummarizer.coverage_blob Usage"},{"role":"assistant","content":"`PWN::AI::Agent::TaskSummarizer.coverage_blob`: "}]}
|
|
614
623
|
{"messages":[{"role":"user","content":"PWN::AI::Agent::TaskSummarizer.duplicate_brief? Usage"},{"role":"assistant","content":"`PWN::AI::Agent::TaskSummarizer.duplicate_brief?`: "}]}
|
|
615
624
|
{"messages":[{"role":"user","content":"PWN::AI::Agent::TaskSummarizer.emit! Usage"},{"role":"assistant","content":"`PWN::AI::Agent::TaskSummarizer.emit!`: Supported Method Parameters\n\nline = PWN::AI::Agent::TaskSummarizer.emit!(\n\nstate: 'required - fresh() hash',\nfinal: 'optional - Boolean closing brief (default: false)'\n\n)\n"}]}
|
|
616
625
|
{"messages":[{"role":"user","content":"PWN::AI::Agent::TaskSummarizer.emit_plan! Usage"},{"role":"assistant","content":"`PWN::AI::Agent::TaskSummarizer.emit_plan!`: "}]}
|
|
@@ -622,36 +631,42 @@
|
|
|
622
631
|
{"messages":[{"role":"user","content":"PWN::AI::Agent::TaskSummarizer.flush! Usage"},{"role":"assistant","content":"`PWN::AI::Agent::TaskSummarizer.flush!`: Supported Method Parameters\n\nline = PWN::AI::Agent::TaskSummarizer.flush!(\n\nstate: 'required - fresh() hash'\n\n)\n"}]}
|
|
623
632
|
{"messages":[{"role":"user","content":"PWN::AI::Agent::TaskSummarizer.format_plan Usage"},{"role":"assistant","content":"`PWN::AI::Agent::TaskSummarizer.format_plan`: Supported Method Parameters\n\ntext = PWN::AI::Agent::TaskSummarizer.format_plan(\n\ntasks: 'required - Array of task strings',\nrequest: 'optional - goal string'\n\n)\n"}]}
|
|
624
633
|
{"messages":[{"role":"user","content":"PWN::AI::Agent::TaskSummarizer.fresh Usage"},{"role":"assistant","content":"`PWN::AI::Agent::TaskSummarizer.fresh`: Supported Method Parameters\n\nstate = PWN::AI::Agent::TaskSummarizer.fresh(\n\nrequest: 'optional - original user goal string'\n\n)\n"}]}
|
|
634
|
+
{"messages":[{"role":"user","content":"PWN::AI::Agent::TaskSummarizer.handoff_to_next? Usage"},{"role":"assistant","content":"`PWN::AI::Agent::TaskSummarizer.handoff_to_next?`: "}]}
|
|
625
635
|
{"messages":[{"role":"user","content":"PWN::AI::Agent::TaskSummarizer.help Usage"},{"role":"assistant","content":"`PWN::AI::Agent::TaskSummarizer.help`: "}]}
|
|
626
636
|
{"messages":[{"role":"user","content":"PWN::AI::Agent::TaskSummarizer.heuristic_decompose Usage"},{"role":"assistant","content":"`PWN::AI::Agent::TaskSummarizer.heuristic_decompose`: Supported Method Parameters\n\ntasks = PWN::AI::Agent::TaskSummarizer.heuristic_decompose(\n\ngoal: 'required - user goal string'\n\n)\n"}]}
|
|
627
|
-
{"messages":[{"role":"user","content":"PWN::AI::Agent::TaskSummarizer.heuristic_request_kind Usage"},{"role":"assistant","content":"`PWN::AI::Agent::TaskSummarizer.heuristic_request_kind`: "}]}
|
|
628
637
|
{"messages":[{"role":"user","content":"PWN::AI::Agent::TaskSummarizer.howto_goal? Usage"},{"role":"assistant","content":"`PWN::AI::Agent::TaskSummarizer.howto_goal?`: "}]}
|
|
638
|
+
{"messages":[{"role":"user","content":"PWN::AI::Agent::TaskSummarizer.immutable_request_line Usage"},{"role":"assistant","content":"`PWN::AI::Agent::TaskSummarizer.immutable_request_line`: "}]}
|
|
639
|
+
{"messages":[{"role":"user","content":"PWN::AI::Agent::TaskSummarizer.intent_phase Usage"},{"role":"assistant","content":"`PWN::AI::Agent::TaskSummarizer.intent_phase`: "}]}
|
|
629
640
|
{"messages":[{"role":"user","content":"PWN::AI::Agent::TaskSummarizer.intent_phrase Usage"},{"role":"assistant","content":"`PWN::AI::Agent::TaskSummarizer.intent_phrase`: "}]}
|
|
630
641
|
{"messages":[{"role":"user","content":"PWN::AI::Agent::TaskSummarizer.interval_s Usage"},{"role":"assistant","content":"`PWN::AI::Agent::TaskSummarizer.interval_s`: "}]}
|
|
631
|
-
{"messages":[{"role":"user","content":"PWN::AI::Agent::TaskSummarizer.
|
|
642
|
+
{"messages":[{"role":"user","content":"PWN::AI::Agent::TaskSummarizer.item_covered? Usage"},{"role":"assistant","content":"`PWN::AI::Agent::TaskSummarizer.item_covered?`: "}]}
|
|
632
643
|
{"messages":[{"role":"user","content":"PWN::AI::Agent::TaskSummarizer.llm_decompose Usage"},{"role":"assistant","content":"`PWN::AI::Agent::TaskSummarizer.llm_decompose`: "}]}
|
|
633
|
-
{"messages":[{"role":"user","content":"PWN::AI::Agent::TaskSummarizer.llm_kind_enabled? Usage"},{"role":"assistant","content":"`PWN::AI::Agent::TaskSummarizer.llm_kind_enabled?`: "}]}
|
|
634
644
|
{"messages":[{"role":"user","content":"PWN::AI::Agent::TaskSummarizer.llm_plan_enabled? Usage"},{"role":"assistant","content":"`PWN::AI::Agent::TaskSummarizer.llm_plan_enabled?`: "}]}
|
|
635
645
|
{"messages":[{"role":"user","content":"PWN::AI::Agent::TaskSummarizer.maybe_advance_plan! Usage"},{"role":"assistant","content":"`PWN::AI::Agent::TaskSummarizer.maybe_advance_plan!`: "}]}
|
|
636
|
-
{"messages":[{"role":"user","content":"PWN::AI::Agent::TaskSummarizer.needs_task_breakdown? Usage"},{"role":"assistant","content":"`PWN::AI::Agent::TaskSummarizer.needs_task_breakdown?`:
|
|
646
|
+
{"messages":[{"role":"user","content":"PWN::AI::Agent::TaskSummarizer.needs_task_breakdown? Usage"},{"role":"assistant","content":"`PWN::AI::Agent::TaskSummarizer.needs_task_breakdown?`: "}]}
|
|
637
647
|
{"messages":[{"role":"user","content":"PWN::AI::Agent::TaskSummarizer.normalize_task_list Usage"},{"role":"assistant","content":"`PWN::AI::Agent::TaskSummarizer.normalize_task_list`: "}]}
|
|
638
648
|
{"messages":[{"role":"user","content":"PWN::AI::Agent::TaskSummarizer.normalize_tools Usage"},{"role":"assistant","content":"`PWN::AI::Agent::TaskSummarizer.normalize_tools`: "}]}
|
|
639
|
-
{"messages":[{"role":"user","content":"PWN::AI::Agent::TaskSummarizer.parse_kind_label Usage"},{"role":"assistant","content":"`PWN::AI::Agent::TaskSummarizer.parse_kind_label`: "}]}
|
|
640
649
|
{"messages":[{"role":"user","content":"PWN::AI::Agent::TaskSummarizer.parse_llm_tasks Usage"},{"role":"assistant","content":"`PWN::AI::Agent::TaskSummarizer.parse_llm_tasks`: Supported Method Parameters\n\ntasks = PWN::AI::Agent::TaskSummarizer.parse_llm_tasks(\n\nraw: 'required - raw LLM response text'\n\n) Public so unit tests can exercise the parser without network I/O.\n"}]}
|
|
641
650
|
{"messages":[{"role":"user","content":"PWN::AI::Agent::TaskSummarizer.parse_outline_tasks Usage"},{"role":"assistant","content":"`PWN::AI::Agent::TaskSummarizer.parse_outline_tasks`: Supported Method Parameters\n\ntasks = PWN::AI::Agent::TaskSummarizer.parse_outline_tasks(\n\noutline: 'required - free-text plan outline'\n\n)\n"}]}
|
|
642
651
|
{"messages":[{"role":"user","content":"PWN::AI::Agent::TaskSummarizer.plan Usage"},{"role":"assistant","content":"`PWN::AI::Agent::TaskSummarizer.plan`: Supported Method Parameters\n\ntasks = PWN::AI::Agent::TaskSummarizer.plan(\n\nrequest: 'required - user goal string',\nstate: 'optional - fresh() hash to mutate',\ntasks: 'optional - injected plan array (tests)',\nllm_tasks: 'optional - injected LLM task array (tests)'\n\n)\n\n"}]}
|
|
643
652
|
{"messages":[{"role":"user","content":"PWN::AI::Agent::TaskSummarizer.plan_context Usage"},{"role":"assistant","content":"`PWN::AI::Agent::TaskSummarizer.plan_context`: Supported Method Parameters\n\ntext = PWN::AI::Agent::TaskSummarizer.plan_context(\n\nstate: 'required - fresh() hash'\n\n)\n"}]}
|
|
653
|
+
{"messages":[{"role":"user","content":"PWN::AI::Agent::TaskSummarizer.plan_open? Usage"},{"role":"assistant","content":"`PWN::AI::Agent::TaskSummarizer.plan_open?`: Supported Method Parameters\n\nopen = PWN::AI::Agent::TaskSummarizer.plan_open?(\n\nstate: 'required - fresh() hash',\nmessages: 'optional - Loop message array'\n\n)\n"}]}
|
|
654
|
+
{"messages":[{"role":"user","content":"PWN::AI::Agent::TaskSummarizer.plan_scaffold_item? Usage"},{"role":"assistant","content":"`PWN::AI::Agent::TaskSummarizer.plan_scaffold_item?`: "}]}
|
|
644
655
|
{"messages":[{"role":"user","content":"PWN::AI::Agent::TaskSummarizer.record! Usage"},{"role":"assistant","content":"`PWN::AI::Agent::TaskSummarizer.record!`: Supported Method Parameters\n\nline = PWN::AI::Agent::TaskSummarizer.record!(\n\nstate: 'required - fresh() hash',\nname: 'required - tool name',\nargs: 'optional - tool args',\nresult: 'optional - tool result string'\n\n)\n"}]}
|
|
645
656
|
{"messages":[{"role":"user","content":"PWN::AI::Agent::TaskSummarizer.reflect_available? Usage"},{"role":"assistant","content":"`PWN::AI::Agent::TaskSummarizer.reflect_available?`: "}]}
|
|
646
657
|
{"messages":[{"role":"user","content":"PWN::AI::Agent::TaskSummarizer.reflect_text Usage"},{"role":"assistant","content":"`PWN::AI::Agent::TaskSummarizer.reflect_text`: "}]}
|
|
658
|
+
{"messages":[{"role":"user","content":"PWN::AI::Agent::TaskSummarizer.reject_scaffold_tasks Usage"},{"role":"assistant","content":"`PWN::AI::Agent::TaskSummarizer.reject_scaffold_tasks`: "}]}
|
|
647
659
|
{"messages":[{"role":"user","content":"PWN::AI::Agent::TaskSummarizer.relevance_query Usage"},{"role":"assistant","content":"`PWN::AI::Agent::TaskSummarizer.relevance_query`: Supported Method Parameters\n\nq = PWN::AI::Agent::TaskSummarizer.relevance_query(\n\nstate: 'optional - fresh() hash',\nrequest: 'optional - original user goal fallback'\n\n)\n"}]}
|
|
648
660
|
{"messages":[{"role":"user","content":"PWN::AI::Agent::TaskSummarizer.remember_brief! Usage"},{"role":"assistant","content":"`PWN::AI::Agent::TaskSummarizer.remember_brief!`: "}]}
|
|
649
|
-
{"messages":[{"role":"user","content":"PWN::AI::Agent::TaskSummarizer.request_kind Usage"},{"role":"assistant","content":"`PWN::AI::Agent::TaskSummarizer.request_kind`: "}]}
|
|
650
661
|
{"messages":[{"role":"user","content":"PWN::AI::Agent::TaskSummarizer.sidecar_timeout Usage"},{"role":"assistant","content":"`PWN::AI::Agent::TaskSummarizer.sidecar_timeout`: "}]}
|
|
662
|
+
{"messages":[{"role":"user","content":"PWN::AI::Agent::TaskSummarizer.squeeze_request_ws Usage"},{"role":"assistant","content":"`PWN::AI::Agent::TaskSummarizer.squeeze_request_ws`: "}]}
|
|
663
|
+
{"messages":[{"role":"user","content":"PWN::AI::Agent::TaskSummarizer.task_complete_enough? Usage"},{"role":"assistant","content":"`PWN::AI::Agent::TaskSummarizer.task_complete_enough?`: "}]}
|
|
651
664
|
{"messages":[{"role":"user","content":"PWN::AI::Agent::TaskSummarizer.task_intent_match? Usage"},{"role":"assistant","content":"`PWN::AI::Agent::TaskSummarizer.task_intent_match?`: "}]}
|
|
665
|
+
{"messages":[{"role":"user","content":"PWN::AI::Agent::TaskSummarizer.task_phase Usage"},{"role":"assistant","content":"`PWN::AI::Agent::TaskSummarizer.task_phase`: "}]}
|
|
652
666
|
{"messages":[{"role":"user","content":"PWN::AI::Agent::TaskSummarizer.tool_counts_phrase Usage"},{"role":"assistant","content":"`PWN::AI::Agent::TaskSummarizer.tool_counts_phrase`: "}]}
|
|
653
667
|
{"messages":[{"role":"user","content":"PWN::AI::Agent::TaskSummarizer.tool_jargon_task? Usage"},{"role":"assistant","content":"`PWN::AI::Agent::TaskSummarizer.tool_jargon_task?`: Supported Method Parameters\n\nyes = PWN::AI::Agent::TaskSummarizer.tool_jargon_task?(\n\nitem: 'required - candidate task string'\n\n)\n"}]}
|
|
654
668
|
{"messages":[{"role":"user","content":"PWN::AI::Agent::TaskSummarizer.truncate_goal Usage"},{"role":"assistant","content":"`PWN::AI::Agent::TaskSummarizer.truncate_goal`: "}]}
|
|
669
|
+
{"messages":[{"role":"user","content":"PWN::AI::Agent::TaskSummarizer.unfinished_tasks Usage"},{"role":"assistant","content":"`PWN::AI::Agent::TaskSummarizer.unfinished_tasks`: Supported Method Parameters\n\nleft = PWN::AI::Agent::TaskSummarizer.unfinished_tasks(\n\nstate: 'required - fresh() hash',\nmessages: 'optional - Loop message array for extra coverage'\n\n)\n\n> [{ idx:, item:, label: }, …]\n"}]}
|
|
655
670
|
{"messages":[{"role":"user","content":"PWN::AI::Agent::TaskSummarizer.unify_plan! Usage"},{"role":"assistant","content":"`PWN::AI::Agent::TaskSummarizer.unify_plan!`: Supported Method Parameters\n\nplan = PWN::AI::Agent::TaskSummarizer.unify_plan!(\n\nstate: 'required - fresh() hash',\noutline: 'required - plan_first text and/or red_team hint',\nsource: 'optional - :plan_first|:red_team|:merged (default :merged)'\n\n)\n"}]}
|
|
656
671
|
{"messages":[{"role":"user","content":"PWN::AI::Agent::TaskSummarizer.verbose? Usage"},{"role":"assistant","content":"`PWN::AI::Agent::TaskSummarizer.verbose?`: "}]}
|
|
657
672
|
{"messages":[{"role":"user","content":"PWN::AI::Agent::TaskSummarizer.why_bit Usage"},{"role":"assistant","content":"`PWN::AI::Agent::TaskSummarizer.why_bit`: "}]}
|