@pentoshi/clai 3.9.2 → 3.9.3
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.
- package/dist/agent/compaction-attempt.d.ts +22 -0
- package/dist/agent/compaction-attempt.js +69 -0
- package/dist/agent/compaction-attempt.js.map +1 -0
- package/dist/agent/compaction-summary.d.ts +27 -0
- package/dist/agent/compaction-summary.js +62 -0
- package/dist/agent/compaction-summary.js.map +1 -1
- package/dist/agent/context-breakdown.d.ts +2 -0
- package/dist/agent/context-breakdown.js +37 -0
- package/dist/agent/context-breakdown.js.map +1 -1
- package/dist/agent/context-manager.d.ts +7 -1
- package/dist/agent/context-manager.js +64 -15
- package/dist/agent/context-manager.js.map +1 -1
- package/dist/agent/continue-orient.d.ts +8 -0
- package/dist/agent/continue-orient.js +26 -3
- package/dist/agent/continue-orient.js.map +1 -1
- package/dist/agent/durable-envelope.d.ts +39 -0
- package/dist/agent/durable-envelope.js +195 -0
- package/dist/agent/durable-envelope.js.map +1 -0
- package/dist/agent/events.d.ts +21 -0
- package/dist/agent/loop-guard.d.ts +13 -5
- package/dist/agent/loop-guard.js +114 -1
- package/dist/agent/loop-guard.js.map +1 -1
- package/dist/agent/outcomes.d.ts +29 -0
- package/dist/agent/outcomes.js +118 -3
- package/dist/agent/outcomes.js.map +1 -1
- package/dist/agent/plan-decision.js +8 -3
- package/dist/agent/plan-decision.js.map +1 -1
- package/dist/agent/plan-tool.d.ts +5 -0
- package/dist/agent/plan-tool.js +166 -6
- package/dist/agent/plan-tool.js.map +1 -1
- package/dist/agent/reliability-policy.d.ts +11 -6
- package/dist/agent/reliability-policy.js +19 -13
- package/dist/agent/reliability-policy.js.map +1 -1
- package/dist/agent/request-budget.d.ts +24 -0
- package/dist/agent/request-budget.js +59 -0
- package/dist/agent/request-budget.js.map +1 -0
- package/dist/agent/responder-context.js +2 -2
- package/dist/agent/responder-context.js.map +1 -1
- package/dist/agent/responder-parent.d.ts +30 -0
- package/dist/agent/responder-parent.js +82 -0
- package/dist/agent/responder-parent.js.map +1 -0
- package/dist/agent/runner.d.ts +14 -1
- package/dist/agent/runner.js +759 -211
- package/dist/agent/runner.js.map +1 -1
- package/dist/agent/scope-context.d.ts +5 -0
- package/dist/agent/scope-context.js +7 -1
- package/dist/agent/scope-context.js.map +1 -1
- package/dist/agent/session-policy.js +1 -0
- package/dist/agent/session-policy.js.map +1 -1
- package/dist/agent/stop-summary.js +13 -7
- package/dist/agent/stop-summary.js.map +1 -1
- package/dist/agent/task-analyzer.js +7 -3
- package/dist/agent/task-analyzer.js.map +1 -1
- package/dist/agent/task-evidence.js +2 -0
- package/dist/agent/task-evidence.js.map +1 -1
- package/dist/agent/task-sync.d.ts +11 -0
- package/dist/agent/task-sync.js +31 -0
- package/dist/agent/task-sync.js.map +1 -1
- package/dist/agent/tool-call-parser.d.ts +6 -13
- package/dist/agent/tool-call-parser.js +186 -82
- package/dist/agent/tool-call-parser.js.map +1 -1
- package/dist/agent/tool-history.d.ts +8 -2
- package/dist/agent/tool-history.js +8 -1
- package/dist/agent/tool-history.js.map +1 -1
- package/dist/agent/turn-outcome.d.ts +4 -1
- package/dist/agent/turn-outcome.js +16 -2
- package/dist/agent/turn-outcome.js.map +1 -1
- package/dist/app/adapters/agent-event-adapter.js +27 -0
- package/dist/app/adapters/agent-event-adapter.js.map +1 -1
- package/dist/app/adapters/current-agent-adapter.js +1 -0
- package/dist/app/adapters/current-agent-adapter.js.map +1 -1
- package/dist/app/adapters/current-jobs-adapter.js +4 -3
- package/dist/app/adapters/current-jobs-adapter.js.map +1 -1
- package/dist/app/adapters/current-store-adapter.js +4 -3
- package/dist/app/adapters/current-store-adapter.js.map +1 -1
- package/dist/app/adapters/current-updates-adapter.d.ts +1 -1
- package/dist/app/adapters/current-updates-adapter.js +34 -5
- package/dist/app/adapters/current-updates-adapter.js.map +1 -1
- package/dist/app/adapters/quiet-meta-tools.js +2 -1
- package/dist/app/adapters/quiet-meta-tools.js.map +1 -1
- package/dist/app/controllers/job-controller.d.ts +4 -3
- package/dist/app/controllers/job-controller.js +9 -6
- package/dist/app/controllers/job-controller.js.map +1 -1
- package/dist/app/controllers/plan-controller.js +14 -0
- package/dist/app/controllers/plan-controller.js.map +1 -1
- package/dist/app/controllers/responder-settlement.js +2 -2
- package/dist/app/controllers/responder-settlement.js.map +1 -1
- package/dist/app/controllers/session-compact-helper.d.ts +23 -1
- package/dist/app/controllers/session-compact-helper.js +117 -7
- package/dist/app/controllers/session-compact-helper.js.map +1 -1
- package/dist/app/controllers/session-context-usage.d.ts +24 -0
- package/dist/app/controllers/session-context-usage.js +89 -0
- package/dist/app/controllers/session-context-usage.js.map +1 -0
- package/dist/app/controllers/session-controller.d.ts +17 -17
- package/dist/app/controllers/session-controller.js +122 -124
- package/dist/app/controllers/session-controller.js.map +1 -1
- package/dist/app/controllers/session-prompt-queue.d.ts +3 -0
- package/dist/app/controllers/session-prompt-queue.js +20 -1
- package/dist/app/controllers/session-prompt-queue.js.map +1 -1
- package/dist/app/controllers/session-responder.js +16 -6
- package/dist/app/controllers/session-responder.js.map +1 -1
- package/dist/app/controllers/session-turn-request.d.ts +18 -0
- package/dist/app/controllers/session-turn-request.js +31 -0
- package/dist/app/controllers/session-turn-request.js.map +1 -0
- package/dist/app/controllers/turn-continuation.d.ts +14 -0
- package/dist/app/controllers/turn-continuation.js +46 -0
- package/dist/app/controllers/turn-continuation.js.map +1 -0
- package/dist/app/events/app-event.d.ts +21 -0
- package/dist/app/events/app-event.js +1 -0
- package/dist/app/events/app-event.js.map +1 -1
- package/dist/app/ports/agent-port.d.ts +7 -0
- package/dist/app/ports/jobs-port.d.ts +4 -3
- package/dist/app/ports/persistence-port.d.ts +11 -0
- package/dist/app/ports/updates-port.d.ts +8 -0
- package/dist/attachments/service.js +13 -2
- package/dist/attachments/service.js.map +1 -1
- package/dist/commands/providers.js +13 -10
- package/dist/commands/providers.js.map +1 -1
- package/dist/commands/update.d.ts +4 -0
- package/dist/commands/update.js +14 -0
- package/dist/commands/update.js.map +1 -1
- package/dist/llm/adapters/anthropic-tools.d.ts +14 -1
- package/dist/llm/adapters/anthropic-tools.js +36 -5
- package/dist/llm/adapters/anthropic-tools.js.map +1 -1
- package/dist/llm/adapters/gemini-tools.d.ts +3 -1
- package/dist/llm/adapters/gemini-tools.js +5 -2
- package/dist/llm/adapters/gemini-tools.js.map +1 -1
- package/dist/llm/adapters/ollama-tools.js +8 -3
- package/dist/llm/adapters/ollama-tools.js.map +1 -1
- package/dist/llm/adapters/openai-tools.js +8 -1
- package/dist/llm/adapters/openai-tools.js.map +1 -1
- package/dist/llm/agentrouter.js +2 -0
- package/dist/llm/agentrouter.js.map +1 -1
- package/dist/llm/anthropic.d.ts +8 -0
- package/dist/llm/anthropic.js +68 -9
- package/dist/llm/anthropic.js.map +1 -1
- package/dist/llm/aws-mantle.js +60 -12
- package/dist/llm/aws-mantle.js.map +1 -1
- package/dist/llm/bynara.js +2 -0
- package/dist/llm/bynara.js.map +1 -1
- package/dist/llm/capabilities.d.ts +7 -0
- package/dist/llm/capabilities.js +22 -0
- package/dist/llm/capabilities.js.map +1 -1
- package/dist/llm/gemini.d.ts +3 -0
- package/dist/llm/gemini.js +71 -11
- package/dist/llm/gemini.js.map +1 -1
- package/dist/llm/groq.d.ts +20 -1
- package/dist/llm/groq.js +32 -4
- package/dist/llm/groq.js.map +1 -1
- package/dist/llm/http.d.ts +29 -0
- package/dist/llm/http.js +122 -29
- package/dist/llm/http.js.map +1 -1
- package/dist/llm/kimchi.js +2 -0
- package/dist/llm/kimchi.js.map +1 -1
- package/dist/llm/nvidia.js +2 -0
- package/dist/llm/nvidia.js.map +1 -1
- package/dist/llm/ollama.d.ts +5 -0
- package/dist/llm/ollama.js +53 -6
- package/dist/llm/ollama.js.map +1 -1
- package/dist/llm/openai.js +2 -0
- package/dist/llm/openai.js.map +1 -1
- package/dist/llm/openrouter.js +2 -0
- package/dist/llm/openrouter.js.map +1 -1
- package/dist/llm/qwen-cloud.js +2 -0
- package/dist/llm/qwen-cloud.js.map +1 -1
- package/dist/llm/router.d.ts +16 -0
- package/dist/llm/router.js +79 -23
- package/dist/llm/router.js.map +1 -1
- package/dist/llm/sampling.d.ts +32 -0
- package/dist/llm/sampling.js +48 -0
- package/dist/llm/sampling.js.map +1 -0
- package/dist/llm/stream-progress.d.ts +4 -0
- package/dist/llm/stream-progress.js +43 -0
- package/dist/llm/stream-progress.js.map +1 -0
- package/dist/llm/system-messages.d.ts +29 -0
- package/dist/llm/system-messages.js +51 -0
- package/dist/llm/system-messages.js.map +1 -0
- package/dist/llm/token-usage.d.ts +4 -1
- package/dist/llm/token-usage.js +56 -4
- package/dist/llm/token-usage.js.map +1 -1
- package/dist/llm/tool-protocol.js +30 -0
- package/dist/llm/tool-protocol.js.map +1 -1
- package/dist/os/process-tree.d.ts +15 -0
- package/dist/os/process-tree.js +77 -0
- package/dist/os/process-tree.js.map +1 -0
- package/dist/prompts/embedded.js +1 -1
- package/dist/prompts/embedded.js.map +1 -1
- package/dist/prompts/system.agent.md +13 -12
- package/dist/repl/prompt-line.d.ts +5 -0
- package/dist/repl/prompt-line.js +7 -1
- package/dist/repl/prompt-line.js.map +1 -1
- package/dist/repl.js +61 -41
- package/dist/repl.js.map +1 -1
- package/dist/safety/classifier.js +98 -44
- package/dist/safety/classifier.js.map +1 -1
- package/dist/safety/engagement-policy.d.ts +8 -0
- package/dist/safety/engagement-policy.js +52 -7
- package/dist/safety/engagement-policy.js.map +1 -1
- package/dist/safety/patterns.d.ts +44 -0
- package/dist/safety/patterns.js +168 -37
- package/dist/safety/patterns.js.map +1 -1
- package/dist/store/config.d.ts +9 -1
- package/dist/store/config.js +51 -1
- package/dist/store/config.js.map +1 -1
- package/dist/store/history-index.d.ts +12 -0
- package/dist/store/history-index.js +47 -18
- package/dist/store/history-index.js.map +1 -1
- package/dist/store/history.d.ts +5 -2
- package/dist/store/history.js +153 -62
- package/dist/store/history.js.map +1 -1
- package/dist/store/plan.d.ts +81 -5
- package/dist/store/plan.js +406 -46
- package/dist/store/plan.js.map +1 -1
- package/dist/store/redaction-cache.d.ts +12 -0
- package/dist/store/redaction-cache.js +51 -0
- package/dist/store/redaction-cache.js.map +1 -0
- package/dist/store/responder-settlement.d.ts +5 -1
- package/dist/store/responder-settlement.js +42 -30
- package/dist/store/responder-settlement.js.map +1 -1
- package/dist/store/scope.js +36 -27
- package/dist/store/scope.js.map +1 -1
- package/dist/store/task-transitions.d.ts +19 -0
- package/dist/store/task-transitions.js +46 -0
- package/dist/store/task-transitions.js.map +1 -0
- package/dist/tools/capabilities.js +33 -18
- package/dist/tools/capabilities.js.map +1 -1
- package/dist/tools/command-intent.d.ts +24 -0
- package/dist/tools/command-intent.js +158 -4
- package/dist/tools/command-intent.js.map +1 -1
- package/dist/tools/definitions.d.ts +5 -1
- package/dist/tools/definitions.js +162 -21
- package/dist/tools/definitions.js.map +1 -1
- package/dist/tools/fs.d.ts +16 -0
- package/dist/tools/fs.js +122 -46
- package/dist/tools/fs.js.map +1 -1
- package/dist/tools/image.js +1 -1
- package/dist/tools/image.js.map +1 -1
- package/dist/tools/jobs.d.ts +78 -4
- package/dist/tools/jobs.js +542 -115
- package/dist/tools/jobs.js.map +1 -1
- package/dist/tools/net-ping-sweep.d.ts +3 -1
- package/dist/tools/net-ping-sweep.js +64 -26
- package/dist/tools/net-ping-sweep.js.map +1 -1
- package/dist/tools/nmap-runner.js +5 -2
- package/dist/tools/nmap-runner.js.map +1 -1
- package/dist/tools/pdf.js +50 -7
- package/dist/tools/pdf.js.map +1 -1
- package/dist/tools/registry.js +154 -96
- package/dist/tools/registry.js.map +1 -1
- package/dist/tools/shell.d.ts +24 -2
- package/dist/tools/shell.js +113 -28
- package/dist/tools/shell.js.map +1 -1
- package/dist/tools/tool-types.d.ts +2 -0
- package/dist/tools/validate.d.ts +8 -5
- package/dist/tools/validate.js +177 -7
- package/dist/tools/validate.js.map +1 -1
- package/dist/tools/wordlists.js +69 -17
- package/dist/tools/wordlists.js.map +1 -1
- package/dist/tui/state.d.ts +4 -0
- package/dist/tui/state.js +88 -2
- package/dist/tui/state.js.map +1 -1
- package/dist/tui-v2/actions/keymap.js +3 -8
- package/dist/tui-v2/actions/keymap.js.map +1 -1
- package/dist/tui-v2/app/App.js +52 -4
- package/dist/tui-v2/app/App.js.map +1 -1
- package/dist/tui-v2/app/commands/config-commands.js +5 -2
- package/dist/tui-v2/app/commands/config-commands.js.map +1 -1
- package/dist/tui-v2/app/commands/picker-commands.js +3 -0
- package/dist/tui-v2/app/commands/picker-commands.js.map +1 -1
- package/dist/tui-v2/app/plan-lifecycle.d.ts +1 -1
- package/dist/tui-v2/app/plan-lifecycle.js +2 -1
- package/dist/tui-v2/app/plan-lifecycle.js.map +1 -1
- package/dist/tui-v2/components/composer/composer-input-box.d.ts +1 -1
- package/dist/tui-v2/components/composer/composer-input-box.js +12 -3
- package/dist/tui-v2/components/composer/composer-input-box.js.map +1 -1
- package/dist/tui-v2/components/jobs/jobs-panel.js +19 -6
- package/dist/tui-v2/components/jobs/jobs-panel.js.map +1 -1
- package/dist/tui-v2/components/plan/plan-view.js +9 -6
- package/dist/tui-v2/components/plan/plan-view.js.map +1 -1
- package/dist/tui-v2/components/status/status-line.d.ts +15 -0
- package/dist/tui-v2/components/status/status-line.js +33 -25
- package/dist/tui-v2/components/status/status-line.js.map +1 -1
- package/dist/tui-v2/components/transcript/assistant-message.js +17 -9
- package/dist/tui-v2/components/transcript/assistant-message.js.map +1 -1
- package/dist/tui-v2/components/transcript/compacted-row.js +49 -22
- package/dist/tui-v2/components/transcript/compacted-row.js.map +1 -1
- package/dist/tui-v2/components/transcript/intro-card.js +3 -0
- package/dist/tui-v2/components/transcript/intro-card.js.map +1 -1
- package/dist/tui-v2/components/transcript/thinking-block.js +2 -1
- package/dist/tui-v2/components/transcript/thinking-block.js.map +1 -1
- package/dist/tui-v2/components/transcript/transcript-view.js +27 -2
- package/dist/tui-v2/components/transcript/transcript-view.js.map +1 -1
- package/dist/tui-v2/components/transcript/use-transcript-selection.js +57 -6
- package/dist/tui-v2/components/transcript/use-transcript-selection.js.map +1 -1
- package/dist/tui-v2/composer/composer-editor.js +12 -6
- package/dist/tui-v2/composer/composer-editor.js.map +1 -1
- package/dist/tui-v2/rendering/incremental-strip.d.ts +11 -0
- package/dist/tui-v2/rendering/incremental-strip.js +89 -0
- package/dist/tui-v2/rendering/incremental-strip.js.map +1 -0
- package/dist/tui-v2/rendering/plan-view.d.ts +12 -0
- package/dist/tui-v2/rendering/plan-view.js +71 -2
- package/dist/tui-v2/rendering/plan-view.js.map +1 -1
- package/dist/tui-v2/rendering/streaming-markdown.d.ts +25 -0
- package/dist/tui-v2/rendering/streaming-markdown.js +108 -0
- package/dist/tui-v2/rendering/streaming-markdown.js.map +1 -0
- package/dist/tui-v2/rendering/thinking-tail.d.ts +5 -0
- package/dist/tui-v2/rendering/thinking-tail.js +26 -0
- package/dist/tui-v2/rendering/thinking-tail.js.map +1 -0
- package/dist/tui-v2/state/transcript-hydrate.js +6 -2
- package/dist/tui-v2/state/transcript-hydrate.js.map +1 -1
- package/dist/tui-v2/state/transcript-reducer.js +146 -25
- package/dist/tui-v2/state/transcript-reducer.js.map +1 -1
- package/dist/tui-v2/state/transcript-types.d.ts +6 -0
- package/dist/tui-v2/state/transcript-types.js +17 -0
- package/dist/tui-v2/state/transcript-types.js.map +1 -1
- package/dist/types.d.ts +29 -0
- package/dist/types.js.map +1 -1
- package/dist/ui/intro-header.d.ts +1 -0
- package/dist/ui/intro-header.js +10 -13
- package/dist/ui/intro-header.js.map +1 -1
- package/dist/ui/markdown.js +9 -2
- package/dist/ui/markdown.js.map +1 -1
- package/dist/ui/mentions.d.ts +5 -0
- package/dist/ui/mentions.js +66 -7
- package/dist/ui/mentions.js.map +1 -1
- package/dist/ui/thinking.d.ts +5 -1
- package/dist/ui/thinking.js +3 -2
- package/dist/ui/thinking.js.map +1 -1
- package/dist/version.generated.d.ts +2 -2
- package/dist/version.generated.js +2 -2
- package/package.json +2 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"capabilities.js","sourceRoot":"","sources":["../../src/tools/capabilities.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"capabilities.js","sourceRoot":"","sources":["../../src/tools/capabilities.ts"],"names":[],"mappings":"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"}
|
|
@@ -11,3 +11,27 @@ export declare function looksLikeOneShotScaffolder(command: string): boolean;
|
|
|
11
11
|
*/
|
|
12
12
|
export declare function looksLongRunning(command: string): boolean;
|
|
13
13
|
export declare function looksLikeLongFiniteCommand(command: string): boolean;
|
|
14
|
+
/**
|
|
15
|
+
* Cost signals that make a finite command worth running as a durable job.
|
|
16
|
+
* The binary name alone is NOT enough: `nmap -p22 host`, `sqlmap --version`,
|
|
17
|
+
* and `find . -name '*.ts'` all finish in seconds and their output is needed in
|
|
18
|
+
* the same turn, while `nmap -p- 10.0.0.0/24`, `ffuf -w big.txt`, and
|
|
19
|
+
* `find / -name id_rsa` genuinely take minutes. Decisions are made from parsed
|
|
20
|
+
* argv (flags, port specs, target shape), never from prompt wording.
|
|
21
|
+
*/
|
|
22
|
+
export declare function longFiniteCommandCost(command: string): {
|
|
23
|
+
reason: string | undefined;
|
|
24
|
+
};
|
|
25
|
+
export interface ShellExecBackgroundPolicy {
|
|
26
|
+
readonly backgroundMode: "auto" | "never" | "always";
|
|
27
|
+
readonly costReason: string | undefined;
|
|
28
|
+
readonly persistent: boolean;
|
|
29
|
+
readonly wantsBackground: boolean;
|
|
30
|
+
readonly responder: boolean;
|
|
31
|
+
}
|
|
32
|
+
/** Single ownership policy shared by pre-dispatch planning and tool runtime. */
|
|
33
|
+
export declare function resolveShellExecBackgroundPolicy(input: {
|
|
34
|
+
command: string;
|
|
35
|
+
background?: unknown;
|
|
36
|
+
responder?: unknown;
|
|
37
|
+
}): ShellExecBackgroundPolicy;
|
|
@@ -184,11 +184,15 @@ export function looksLongRunning(command) {
|
|
|
184
184
|
* session-state reminders keep the job visible, and shell.tail can harvest
|
|
185
185
|
* output incrementally without re-running the command.
|
|
186
186
|
*/
|
|
187
|
-
const
|
|
187
|
+
const LONG_FINITE_JOB_BINARIES = [
|
|
188
188
|
/^(?:\S*\/)?(?:nmap|masscan)\b/i,
|
|
189
189
|
/^(?:\S*\/)?(?:ffuf|feroxbuster|gobuster|dirsearch|wfuzz|nikto|nuclei|sqlmap)\b/i,
|
|
190
190
|
/^(?:\S*\/)?find\s+/i,
|
|
191
191
|
];
|
|
192
|
+
/** True when the segment names one of the potentially expensive binaries. */
|
|
193
|
+
function namesFiniteJobBinary(executable) {
|
|
194
|
+
return LONG_FINITE_JOB_BINARIES.some((pattern) => pattern.test(executable));
|
|
195
|
+
}
|
|
192
196
|
const ENV_OPTIONS_WITH_VALUE = new Set(["-u", "--unset", "-C", "--chdir", "-S", "--split-string"]);
|
|
193
197
|
const SUDO_OPTIONS_WITH_VALUE = new Set(["-C", "--close-from", "-D", "--chdir", "-g", "--group", "-h", "--host", "-p", "--prompt", "-R", "--chroot", "-T", "--command-timeout", "-u", "--user"]);
|
|
194
198
|
const TIMEOUT_OPTIONS_WITH_VALUE = new Set(["-k", "--kill-after", "-s", "--signal"]);
|
|
@@ -238,9 +242,159 @@ function unwrapFiniteCommand(segment) {
|
|
|
238
242
|
return tokens.slice(index).join(" ");
|
|
239
243
|
}
|
|
240
244
|
export function looksLikeLongFiniteCommand(command) {
|
|
241
|
-
return
|
|
245
|
+
return Boolean(longFiniteCommandCost(command).reason);
|
|
246
|
+
}
|
|
247
|
+
/**
|
|
248
|
+
* Cost signals that make a finite command worth running as a durable job.
|
|
249
|
+
* The binary name alone is NOT enough: `nmap -p22 host`, `sqlmap --version`,
|
|
250
|
+
* and `find . -name '*.ts'` all finish in seconds and their output is needed in
|
|
251
|
+
* the same turn, while `nmap -p- 10.0.0.0/24`, `ffuf -w big.txt`, and
|
|
252
|
+
* `find / -name id_rsa` genuinely take minutes. Decisions are made from parsed
|
|
253
|
+
* argv (flags, port specs, target shape), never from prompt wording.
|
|
254
|
+
*/
|
|
255
|
+
export function longFiniteCommandCost(command) {
|
|
256
|
+
for (const segment of commandSegments(command)) {
|
|
242
257
|
const executable = unwrapFiniteCommand(segment);
|
|
243
|
-
|
|
244
|
-
|
|
258
|
+
const tokens = executable.trim().split(/\s+/).filter(Boolean);
|
|
259
|
+
if (tokens.length === 0)
|
|
260
|
+
continue;
|
|
261
|
+
const base = baseCommand(tokens[0]).toLowerCase();
|
|
262
|
+
if (!namesFiniteJobBinary(executable))
|
|
263
|
+
continue;
|
|
264
|
+
const args = tokens.slice(1);
|
|
265
|
+
if (args.some((token) => /^(?:--version|-V|--help|-h|-hh)$/i.test(token))) {
|
|
266
|
+
continue;
|
|
267
|
+
}
|
|
268
|
+
if (base === "nmap" || base === "masscan") {
|
|
269
|
+
const reason = nmapCostReason(args);
|
|
270
|
+
if (reason)
|
|
271
|
+
return { reason };
|
|
272
|
+
continue;
|
|
273
|
+
}
|
|
274
|
+
if (base === "ffuf" ||
|
|
275
|
+
base === "feroxbuster" ||
|
|
276
|
+
base === "gobuster" ||
|
|
277
|
+
base === "dirsearch" ||
|
|
278
|
+
base === "wfuzz" ||
|
|
279
|
+
base === "nikto" ||
|
|
280
|
+
base === "nuclei" ||
|
|
281
|
+
base === "sqlmap") {
|
|
282
|
+
const reason = webScannerCostReason(base, args);
|
|
283
|
+
if (reason)
|
|
284
|
+
return { reason };
|
|
285
|
+
continue;
|
|
286
|
+
}
|
|
287
|
+
if (base === "find") {
|
|
288
|
+
const reason = findCostReason(args);
|
|
289
|
+
if (reason)
|
|
290
|
+
return { reason };
|
|
291
|
+
continue;
|
|
292
|
+
}
|
|
293
|
+
}
|
|
294
|
+
return { reason: undefined };
|
|
295
|
+
}
|
|
296
|
+
/** Single ownership policy shared by pre-dispatch planning and tool runtime. */
|
|
297
|
+
export function resolveShellExecBackgroundPolicy(input) {
|
|
298
|
+
const backgroundMode = input.background === "never" || input.background === "always"
|
|
299
|
+
? input.background
|
|
300
|
+
: "auto";
|
|
301
|
+
const responderPreference = typeof input.responder === "boolean" ? input.responder : undefined;
|
|
302
|
+
const costReason = longFiniteCommandCost(input.command).reason;
|
|
303
|
+
const persistent = looksLongRunning(input.command);
|
|
304
|
+
const wantsBackground = backgroundMode === "always"
|
|
305
|
+
? true
|
|
306
|
+
: backgroundMode === "never"
|
|
307
|
+
? false
|
|
308
|
+
: persistent || Boolean(costReason) || responderPreference === true;
|
|
309
|
+
const responder = wantsBackground &&
|
|
310
|
+
!persistent &&
|
|
311
|
+
(responderPreference ??
|
|
312
|
+
(backgroundMode === "auto" && Boolean(costReason)));
|
|
313
|
+
return {
|
|
314
|
+
backgroundMode,
|
|
315
|
+
costReason,
|
|
316
|
+
persistent,
|
|
317
|
+
wantsBackground,
|
|
318
|
+
responder,
|
|
319
|
+
};
|
|
320
|
+
}
|
|
321
|
+
function portSpecIsBroad(spec) {
|
|
322
|
+
if (spec === "-" || spec.includes("-"))
|
|
323
|
+
return true;
|
|
324
|
+
const parts = spec.split(",").filter(Boolean);
|
|
325
|
+
return parts.length > 32;
|
|
326
|
+
}
|
|
327
|
+
function nmapCostReason(args) {
|
|
328
|
+
let sawPortLimit = false;
|
|
329
|
+
for (let i = 0; i < args.length; i += 1) {
|
|
330
|
+
const token = args[i];
|
|
331
|
+
if (/^-(?:A|sV|sC|sU|sO)$/.test(token))
|
|
332
|
+
return `${token} scan is expensive`;
|
|
333
|
+
if (token === "--script" || token.startsWith("--script=")) {
|
|
334
|
+
return "NSE scripts are expensive";
|
|
335
|
+
}
|
|
336
|
+
if (token === "-p" || token === "--ports") {
|
|
337
|
+
const spec = args[i + 1] ?? "";
|
|
338
|
+
if (portSpecIsBroad(spec))
|
|
339
|
+
return `broad port spec ${spec}`;
|
|
340
|
+
sawPortLimit = true;
|
|
341
|
+
continue;
|
|
342
|
+
}
|
|
343
|
+
if (token.startsWith("-p")) {
|
|
344
|
+
const spec = token.slice(2);
|
|
345
|
+
if (spec === "" || portSpecIsBroad(spec))
|
|
346
|
+
return "broad port spec";
|
|
347
|
+
sawPortLimit = true;
|
|
348
|
+
continue;
|
|
349
|
+
}
|
|
350
|
+
if (token === "--top-ports") {
|
|
351
|
+
const n = Number(args[i + 1]);
|
|
352
|
+
if (!Number.isFinite(n) || n >= 100)
|
|
353
|
+
return "top-ports sweep";
|
|
354
|
+
sawPortLimit = true;
|
|
355
|
+
continue;
|
|
356
|
+
}
|
|
357
|
+
// A CIDR or address-range target scans many hosts.
|
|
358
|
+
if (!token.startsWith("-") && (token.includes("/") || /\d-\d/.test(token))) {
|
|
359
|
+
return `multi-host target ${token}`;
|
|
360
|
+
}
|
|
361
|
+
}
|
|
362
|
+
// With no port limiter at all, nmap scans its default 1000 ports.
|
|
363
|
+
if (!sawPortLimit)
|
|
364
|
+
return "default 1000-port scan";
|
|
365
|
+
return undefined;
|
|
366
|
+
}
|
|
367
|
+
function webScannerCostReason(base, args) {
|
|
368
|
+
for (let i = 0; i < args.length; i += 1) {
|
|
369
|
+
const token = args[i];
|
|
370
|
+
if (/^(?:-w|--wordlist|--wordlists)$/i.test(token) || token.startsWith("-w=")) {
|
|
371
|
+
return "wordlist-driven fuzzing";
|
|
372
|
+
}
|
|
373
|
+
if (/^(?:-u|--url|-r|--request)$/i.test(token) && base === "sqlmap") {
|
|
374
|
+
return "sqlmap against a live target";
|
|
375
|
+
}
|
|
376
|
+
if (/FUZZ/.test(token))
|
|
377
|
+
return "fuzz placeholder";
|
|
378
|
+
}
|
|
379
|
+
if (base === "nikto" || base === "nuclei" || base === "dirsearch") {
|
|
380
|
+
// These have no cheap mode once a target is supplied.
|
|
381
|
+
return args.some((token) => !token.startsWith("-"))
|
|
382
|
+
? `${base} against a target`
|
|
383
|
+
: undefined;
|
|
384
|
+
}
|
|
385
|
+
return undefined;
|
|
386
|
+
}
|
|
387
|
+
const EXPENSIVE_FIND_ROOTS = /^(?:\/|~\/?|\/Users\/?$|\/home\/?$|\/var\b|\/usr\b|\/opt\b|\/etc\b|[A-Za-z]:[\\/])/;
|
|
388
|
+
function findCostReason(args) {
|
|
389
|
+
for (const token of args) {
|
|
390
|
+
if (/^-(?:exec|execdir|ok|okdir)$/.test(token)) {
|
|
391
|
+
return "find -exec runs a command per match";
|
|
392
|
+
}
|
|
393
|
+
}
|
|
394
|
+
const start = args.find((token) => !token.startsWith("-"));
|
|
395
|
+
if (start && EXPENSIVE_FIND_ROOTS.test(start)) {
|
|
396
|
+
return `filesystem-wide search from ${start}`;
|
|
397
|
+
}
|
|
398
|
+
return undefined;
|
|
245
399
|
}
|
|
246
400
|
//# sourceMappingURL=command-intent.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"command-intent.js","sourceRoot":"","sources":["../../src/tools/command-intent.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"command-intent.js","sourceRoot":"","sources":["../../src/tools/command-intent.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,7 +1,11 @@
|
|
|
1
1
|
import type { ToolDefinition } from "../types.js";
|
|
2
2
|
/** Plan tools dispatched specially in the runner (not in toolRegistry). */
|
|
3
3
|
export declare const PLAN_TOOL_NAMES: Set<string>;
|
|
4
|
-
/**
|
|
4
|
+
/** Plan-independent Responder receipt tools dispatched by the runner. */
|
|
5
|
+
export declare const RESPONDER_TOOL_NAMES: Set<string>;
|
|
6
|
+
/** Every runner-owned meta tool that has no registry handler. */
|
|
7
|
+
export declare const RUNNER_META_TOOL_NAMES: Set<string>;
|
|
8
|
+
/** Meta tools with no registry handler (runner-owned + ask-mode handoff). */
|
|
5
9
|
export declare const NON_REGISTRY_TOOL_NAMES: Set<string>;
|
|
6
10
|
export declare const TOOL_DEFINITIONS: ToolDefinition[];
|
|
7
11
|
export declare function getToolDefinition(name: string): ToolDefinition | undefined;
|
|
@@ -1,7 +1,33 @@
|
|
|
1
1
|
import { registerWireNamesFor, toSnakeWireName, toWireName, } from "../llm/tool-protocol.js";
|
|
2
|
+
/**
|
|
3
|
+
* Tools whose handler actually honors `timeoutMs`. The property used to be
|
|
4
|
+
* injected into every schema, which cost ~45 tokens per tool on every request
|
|
5
|
+
* and told the model it could bound operations (fs.read, pdf.read, plan.*) that
|
|
6
|
+
* silently ignored it.
|
|
7
|
+
*/
|
|
8
|
+
const TIMED_TOOLS = new Set([
|
|
9
|
+
"shell.exec",
|
|
10
|
+
"http.fetch",
|
|
11
|
+
"web.fetch",
|
|
12
|
+
"web.search",
|
|
13
|
+
"net.scan",
|
|
14
|
+
"net.pingSweep",
|
|
15
|
+
"pentest.recon",
|
|
16
|
+
"pentest.webDiscover",
|
|
17
|
+
"pentest.apiEnumerate",
|
|
18
|
+
"pentest.authCompare",
|
|
19
|
+
"pentest.scanStatus",
|
|
20
|
+
"pkg.install",
|
|
21
|
+
"tool.batch",
|
|
22
|
+
"tool.check",
|
|
23
|
+
"image.ocr",
|
|
24
|
+
"pdf.read",
|
|
25
|
+
"dns.lookup",
|
|
26
|
+
"whois.lookup",
|
|
27
|
+
"fs.search",
|
|
28
|
+
]);
|
|
2
29
|
function def(name, description, parameters, flags = {}) {
|
|
3
|
-
|
|
4
|
-
const timedParameters = name === "shell.start"
|
|
30
|
+
const timedParameters = !TIMED_TOOLS.has(name)
|
|
5
31
|
? parameters
|
|
6
32
|
: {
|
|
7
33
|
...parameters,
|
|
@@ -39,9 +65,16 @@ export const PLAN_TOOL_NAMES = new Set([
|
|
|
39
65
|
"task.read",
|
|
40
66
|
"task.update",
|
|
41
67
|
]);
|
|
42
|
-
/**
|
|
43
|
-
export const
|
|
68
|
+
/** Plan-independent Responder receipt tools dispatched by the runner. */
|
|
69
|
+
export const RESPONDER_TOOL_NAMES = new Set(["job.read"]);
|
|
70
|
+
/** Every runner-owned meta tool that has no registry handler. */
|
|
71
|
+
export const RUNNER_META_TOOL_NAMES = new Set([
|
|
44
72
|
...PLAN_TOOL_NAMES,
|
|
73
|
+
...RESPONDER_TOOL_NAMES,
|
|
74
|
+
]);
|
|
75
|
+
/** Meta tools with no registry handler (runner-owned + ask-mode handoff). */
|
|
76
|
+
export const NON_REGISTRY_TOOL_NAMES = new Set([
|
|
77
|
+
...RUNNER_META_TOOL_NAMES,
|
|
45
78
|
"agent.handoff",
|
|
46
79
|
]);
|
|
47
80
|
export const TOOL_DEFINITIONS = [
|
|
@@ -151,6 +184,33 @@ export const TOOL_DEFINITIONS = [
|
|
|
151
184
|
type: "integer",
|
|
152
185
|
description: "Max hit lines (default 50)",
|
|
153
186
|
},
|
|
187
|
+
maxPerFile: {
|
|
188
|
+
type: "integer",
|
|
189
|
+
description: "Max hits per file (default 20)",
|
|
190
|
+
},
|
|
191
|
+
glob: {
|
|
192
|
+
type: "string",
|
|
193
|
+
description: "Restrict to matching paths, ripgrep -g syntax (e.g. \"*.ts\", \"src/**/*.tsx\").",
|
|
194
|
+
},
|
|
195
|
+
caseInsensitive: { type: "boolean" },
|
|
196
|
+
fixedString: {
|
|
197
|
+
type: "boolean",
|
|
198
|
+
description: "Treat pattern as a literal string instead of a regex.",
|
|
199
|
+
},
|
|
200
|
+
context: {
|
|
201
|
+
type: "integer",
|
|
202
|
+
minimum: 0,
|
|
203
|
+
maximum: 10,
|
|
204
|
+
description: "Lines of context around each hit.",
|
|
205
|
+
},
|
|
206
|
+
filesOnly: {
|
|
207
|
+
type: "boolean",
|
|
208
|
+
description: "Return matching file paths only.",
|
|
209
|
+
},
|
|
210
|
+
hidden: {
|
|
211
|
+
type: "boolean",
|
|
212
|
+
description: "Include hidden files and directories.",
|
|
213
|
+
},
|
|
154
214
|
},
|
|
155
215
|
required: ["pattern"],
|
|
156
216
|
additionalProperties: false,
|
|
@@ -207,30 +267,35 @@ export const TOOL_DEFINITIONS = [
|
|
|
207
267
|
required: ["path"],
|
|
208
268
|
additionalProperties: false,
|
|
209
269
|
}, { mutates: true }),
|
|
210
|
-
def("shell.exec", "Run a finite shell command and wait for completion. Default timeoutMs is 40000; choose a larger timeout for builds/installs/scaffolds. Known long installs get a safe automatic budget when omitted.
|
|
270
|
+
def("shell.exec", "Run a finite shell command and wait for completion. Default timeoutMs is 40000; choose a larger timeout for builds/installs/scaffolds. Known long installs get a safe automatic budget when omitted. Expensive self-completing scans/searches (broad nmap, wordlist fuzzing, filesystem-wide find) auto-launch as Responder jobs: continue other work and do not poll; their terminal result is delivered automatically. Persistent commands auto-launch as normal background jobs that require shell.tail/shell.jobs plus a readiness probe. Pass background:\"never\" to force foreground and honor timeoutMs, or background:\"always\" to force a normal pollable job. responder:true explicitly delegates a finite background job; responder:false explicitly keeps an auto-backgrounded finite job pollable. Pass cwd instead of cd; use shell.start for persistent servers/watchers/listeners.", {
|
|
211
271
|
type: "object",
|
|
212
272
|
properties: {
|
|
213
273
|
command: { type: "string" },
|
|
214
274
|
cwd: { type: "string" },
|
|
215
275
|
timeoutMs: { type: "integer" },
|
|
276
|
+
background: {
|
|
277
|
+
type: "string",
|
|
278
|
+
enum: ["auto", "never", "always"],
|
|
279
|
+
description: "auto (default): background only persistent commands and commands whose arguments show real cost. never: always run in the foreground and honor timeoutMs. always: always run as a durable job.",
|
|
280
|
+
},
|
|
216
281
|
responder: {
|
|
217
282
|
type: "boolean",
|
|
218
|
-
description: "
|
|
283
|
+
description: "Ownership override for a finite background job. true: Responder fire-and-continue with automatic terminal delivery (never poll). false: normal pollable job, including when cost auto-backgrounds it. Omit: costly finite commands auto-delegate; persistent commands remain normal jobs.",
|
|
284
|
+
},
|
|
285
|
+
parentTaskId: {
|
|
286
|
+
type: "string",
|
|
287
|
+
description: "Plan task id that owns this delegation (e.g. \"t3\"). Required whenever more than one task could own it; the Responder child is created under exactly this task.",
|
|
219
288
|
},
|
|
220
289
|
},
|
|
221
290
|
required: ["command"],
|
|
222
291
|
additionalProperties: false,
|
|
223
292
|
}, { mutates: true }),
|
|
224
|
-
def("shell.start", "Start a persistent server/watcher/listener as a tracked background job. Returns a stable job id and persists registry/status across turns and CLI restarts. Captured output is incrementally available while this CLI process owns the child pipes; after a restart, status is reconciled but detached output pipes cannot be reattached. Launch success does not prove readiness: use shell.tail with offset/nextOffset, shell.jobs, and an application readiness probe. Do not start duplicates; use shell.stop for cleanup. Durable background jobs have no generic execution deadline and stop only naturally, by explicit cancellation, process error, or authorization expiry. Servers do not self-complete, so
|
|
293
|
+
def("shell.start", "Start a persistent server/watcher/listener as a normal tracked background job. Returns a stable job id and persists registry/status across turns and CLI restarts. Captured output is incrementally available while this CLI process owns the child pipes; after a restart, status is reconciled but detached output pipes cannot be reattached. Launch success does not prove readiness: use shell.tail with offset/nextOffset, shell.jobs, and an application readiness probe. Do not start duplicates; use shell.stop for cleanup. Durable background jobs have no generic execution deadline and stop only naturally, by explicit cancellation, process error, or authorization expiry. Servers do not self-complete, so shell.start cannot delegate to the Responder.", {
|
|
225
294
|
type: "object",
|
|
226
295
|
properties: {
|
|
227
296
|
command: { type: "string" },
|
|
228
297
|
cwd: { type: "string" },
|
|
229
298
|
name: { type: "string" },
|
|
230
|
-
responder: {
|
|
231
|
-
type: "boolean",
|
|
232
|
-
description: "Delegate to the Responder (fire-and-forget, auto-wake on completion). Default false. Only useful for a job that exits on its own; leave off for long-lived servers/watchers.",
|
|
233
|
-
},
|
|
234
299
|
},
|
|
235
300
|
required: ["command"],
|
|
236
301
|
additionalProperties: false,
|
|
@@ -269,14 +334,39 @@ export const TOOL_DEFINITIONS = [
|
|
|
269
334
|
required: ["tool"],
|
|
270
335
|
additionalProperties: false,
|
|
271
336
|
}, { mutates: true }),
|
|
272
|
-
def("net.scan", "
|
|
337
|
+
def("net.scan", "Validated nmap port/service scan. Put only the IP, hostname, or CIDR in target; put a port expression such as 1-1000 in ports without a -p prefix. Use profile for scan behavior: scanType syn/tcp/udp/ping, serviceDetect boolean, scripts as an array of safe NSE names (for -sC use [\"default\"]), timing T0-T5, or topPorts. Broad/deep scans run as Responder jobs: do not poll; continue other work and wait for automatic terminal delivery.", {
|
|
273
338
|
type: "object",
|
|
274
339
|
properties: {
|
|
275
|
-
target: {
|
|
276
|
-
|
|
340
|
+
target: {
|
|
341
|
+
type: "string",
|
|
342
|
+
description: "IP, hostname, or CIDR only; never append nmap flags",
|
|
343
|
+
},
|
|
344
|
+
ports: {
|
|
345
|
+
type: "string",
|
|
346
|
+
description: "Port or range expression, e.g. 443, 80,443, or 1-1000; omit -p",
|
|
347
|
+
},
|
|
277
348
|
profile: {
|
|
278
349
|
type: "object",
|
|
279
|
-
description: "Structured nmap
|
|
350
|
+
description: "Structured nmap options",
|
|
351
|
+
properties: {
|
|
352
|
+
scanType: {
|
|
353
|
+
type: "string",
|
|
354
|
+
enum: ["syn", "tcp", "udp", "ping"],
|
|
355
|
+
},
|
|
356
|
+
topPorts: { type: "integer", minimum: 1, maximum: 65535 },
|
|
357
|
+
serviceDetect: { type: "boolean" },
|
|
358
|
+
scripts: {
|
|
359
|
+
type: "array",
|
|
360
|
+
items: { type: "string", pattern: "^[A-Za-z0-9_-]+$" },
|
|
361
|
+
description: "Safe NSE script names; use [\"default\"] for nmap -sC",
|
|
362
|
+
},
|
|
363
|
+
timing: {
|
|
364
|
+
type: "string",
|
|
365
|
+
enum: ["T0", "T1", "T2", "T3", "T4", "T5"],
|
|
366
|
+
},
|
|
367
|
+
udp: { type: "boolean" },
|
|
368
|
+
},
|
|
369
|
+
additionalProperties: false,
|
|
280
370
|
},
|
|
281
371
|
flags: {
|
|
282
372
|
type: "string",
|
|
@@ -286,6 +376,10 @@ export const TOOL_DEFINITIONS = [
|
|
|
286
376
|
type: "boolean",
|
|
287
377
|
description: "Force durable execution; deep/full profiles are durable automatically",
|
|
288
378
|
},
|
|
379
|
+
parentTaskId: {
|
|
380
|
+
type: "string",
|
|
381
|
+
description: "Plan task id that owns this delegation (e.g. \"t3\"). Required whenever more than one task could own it; the Responder child is created under exactly this task.",
|
|
382
|
+
},
|
|
289
383
|
},
|
|
290
384
|
required: ["target"],
|
|
291
385
|
additionalProperties: false,
|
|
@@ -414,6 +508,10 @@ export const TOOL_DEFINITIONS = [
|
|
|
414
508
|
type: "boolean",
|
|
415
509
|
description: "Force durable nmap execution; deep/full scans are durable automatically",
|
|
416
510
|
},
|
|
511
|
+
parentTaskId: {
|
|
512
|
+
type: "string",
|
|
513
|
+
description: "Plan task id that owns this delegation (e.g. \"t3\"). Required whenever more than one task could own it; the Responder child is created under exactly this task.",
|
|
514
|
+
},
|
|
417
515
|
},
|
|
418
516
|
required: ["target"],
|
|
419
517
|
additionalProperties: false,
|
|
@@ -650,8 +748,16 @@ export const TOOL_DEFINITIONS = [
|
|
|
650
748
|
type: "object",
|
|
651
749
|
properties: {
|
|
652
750
|
path: { type: "string" },
|
|
653
|
-
lang: {
|
|
654
|
-
|
|
751
|
+
lang: {
|
|
752
|
+
type: "string",
|
|
753
|
+
description: "tesseract language code (default eng).",
|
|
754
|
+
},
|
|
755
|
+
psm: {
|
|
756
|
+
type: "integer",
|
|
757
|
+
minimum: 0,
|
|
758
|
+
maximum: 13,
|
|
759
|
+
description: "tesseract page-segmentation mode (default 6).",
|
|
760
|
+
},
|
|
655
761
|
},
|
|
656
762
|
required: ["path"],
|
|
657
763
|
additionalProperties: false,
|
|
@@ -660,13 +766,33 @@ export const TOOL_DEFINITIONS = [
|
|
|
660
766
|
type: "object",
|
|
661
767
|
properties: {
|
|
662
768
|
path: { type: "string" },
|
|
663
|
-
maxPages: {
|
|
664
|
-
|
|
769
|
+
maxPages: {
|
|
770
|
+
type: "integer",
|
|
771
|
+
minimum: 1,
|
|
772
|
+
maximum: 500,
|
|
773
|
+
description: "Maximum pages to OCR when the PDF is scanned. OCR costs up to 120s per page, so bound this for long scans.",
|
|
774
|
+
},
|
|
775
|
+
lang: {
|
|
776
|
+
type: "string",
|
|
777
|
+
description: "tesseract language code for OCR pages (default eng).",
|
|
778
|
+
},
|
|
779
|
+
dpi: {
|
|
780
|
+
type: "integer",
|
|
781
|
+
minimum: 72,
|
|
782
|
+
maximum: 600,
|
|
783
|
+
description: "Render resolution for OCR pages (default 200).",
|
|
784
|
+
},
|
|
785
|
+
psm: {
|
|
786
|
+
type: "integer",
|
|
787
|
+
minimum: 0,
|
|
788
|
+
maximum: 13,
|
|
789
|
+
description: "tesseract page-segmentation mode (default 6).",
|
|
790
|
+
},
|
|
665
791
|
},
|
|
666
792
|
required: ["path"],
|
|
667
793
|
additionalProperties: false,
|
|
668
794
|
}, { readOnly: true, askMode: true }),
|
|
669
|
-
def("plan.create", "Create or revise a
|
|
795
|
+
def("plan.create", "Create the initial durable plan or revise a draft awaiting approval. If a plan is already approved/in progress, use task.add; runtime preserves it and treats proposed new tasks as append-only.", {
|
|
670
796
|
type: "object",
|
|
671
797
|
properties: {
|
|
672
798
|
goal: {
|
|
@@ -738,7 +864,21 @@ export const TOOL_DEFINITIONS = [
|
|
|
738
864
|
required: ["taskId"],
|
|
739
865
|
additionalProperties: false,
|
|
740
866
|
}, { mutates: true }),
|
|
741
|
-
def("
|
|
867
|
+
def("job.read", "Mark one delivered Responder job result read after analysis. This is plan-independent and mandatory before a final response. Identify the receipt by jobId or notificationId; reading atomically records delivery and prevents duplicate notification of the same result revision.", {
|
|
868
|
+
type: "object",
|
|
869
|
+
properties: {
|
|
870
|
+
jobId: {
|
|
871
|
+
type: "string",
|
|
872
|
+
description: "Canonical background job id from the delivered result",
|
|
873
|
+
},
|
|
874
|
+
notificationId: {
|
|
875
|
+
type: "string",
|
|
876
|
+
description: "Exact notification id from the delivered Responder result",
|
|
877
|
+
},
|
|
878
|
+
},
|
|
879
|
+
additionalProperties: false,
|
|
880
|
+
}, { mutates: true }),
|
|
881
|
+
def("task.read", "Compatibility alias for job.read using notificationId. It does not require an active plan. Call only after analyzing the delivered Responder result.", {
|
|
742
882
|
type: "object",
|
|
743
883
|
properties: {
|
|
744
884
|
notificationId: {
|
|
@@ -831,6 +971,7 @@ export function getToolDefinitions(filter) {
|
|
|
831
971
|
"plan.create",
|
|
832
972
|
"task.add",
|
|
833
973
|
"task.move",
|
|
974
|
+
"job.read",
|
|
834
975
|
"task.read",
|
|
835
976
|
"task.update",
|
|
836
977
|
]);
|