@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
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
export const DEFAULT_SAMPLING = { temperature: 0.2 };
|
|
2
|
+
/** First match wins; order from most specific to least. */
|
|
3
|
+
const SAMPLING_RULES = [
|
|
4
|
+
// Kimchi exposes this as `minimax-m3`; NVIDIA uses `minimaxai/minimax-m3`.
|
|
5
|
+
// Both require near-full sampling or the model degenerates.
|
|
6
|
+
{
|
|
7
|
+
pattern: /minimax-m3/i,
|
|
8
|
+
defaults: { temperature: 1.0, topP: 0.95 },
|
|
9
|
+
},
|
|
10
|
+
// OpenAI's gpt-oss weights are trained for temperature 1.0.
|
|
11
|
+
{ pattern: /gpt-oss/i, defaults: { temperature: 1.0 } },
|
|
12
|
+
// Thinking-mode recommendations from the model cards.
|
|
13
|
+
{
|
|
14
|
+
pattern: /qwen-?3|qwen3/i,
|
|
15
|
+
reasoningOnly: true,
|
|
16
|
+
defaults: { temperature: 0.6, topP: 0.95 },
|
|
17
|
+
},
|
|
18
|
+
{
|
|
19
|
+
pattern: /deepseek-r1|deepseek-v3/i,
|
|
20
|
+
reasoningOnly: true,
|
|
21
|
+
defaults: { temperature: 0.6, topP: 0.95 },
|
|
22
|
+
},
|
|
23
|
+
];
|
|
24
|
+
export function samplingDefaults(input) {
|
|
25
|
+
for (const rule of SAMPLING_RULES) {
|
|
26
|
+
if (rule.reasoningOnly && !input.reasoningEnabled)
|
|
27
|
+
continue;
|
|
28
|
+
if (rule.providers &&
|
|
29
|
+
(!input.provider || !rule.providers.includes(input.provider))) {
|
|
30
|
+
continue;
|
|
31
|
+
}
|
|
32
|
+
if (rule.pattern.test(input.model))
|
|
33
|
+
return rule.defaults;
|
|
34
|
+
}
|
|
35
|
+
return DEFAULT_SAMPLING;
|
|
36
|
+
}
|
|
37
|
+
/**
|
|
38
|
+
* Effective sampling for a request: an explicit caller/user temperature always
|
|
39
|
+
* wins; `top_p` is only sent when the policy asks for it.
|
|
40
|
+
*/
|
|
41
|
+
export function resolveSampling(input) {
|
|
42
|
+
const policy = samplingDefaults(input);
|
|
43
|
+
return {
|
|
44
|
+
temperature: input.requestedTemperature ?? policy.temperature,
|
|
45
|
+
...(policy.topP !== undefined ? { topP: policy.topP } : {}),
|
|
46
|
+
};
|
|
47
|
+
}
|
|
48
|
+
//# sourceMappingURL=sampling.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"sampling.js","sourceRoot":"","sources":["../../src/llm/sampling.ts"],"names":[],"mappings":"AA4BA,MAAM,CAAC,MAAM,gBAAgB,GAAqB,EAAE,WAAW,EAAE,GAAG,EAAE,CAAC;AAEvE,2DAA2D;AAC3D,MAAM,cAAc,GAAmB;IACrC,2EAA2E;IAC3E,4DAA4D;IAC5D;QACE,OAAO,EAAE,aAAa;QACtB,QAAQ,EAAE,EAAE,WAAW,EAAE,GAAG,EAAE,IAAI,EAAE,IAAI,EAAE;KAC3C;IACD,4DAA4D;IAC5D,EAAE,OAAO,EAAE,UAAU,EAAE,QAAQ,EAAE,EAAE,WAAW,EAAE,GAAG,EAAE,EAAE;IACvD,sDAAsD;IACtD;QACE,OAAO,EAAE,gBAAgB;QACzB,aAAa,EAAE,IAAI;QACnB,QAAQ,EAAE,EAAE,WAAW,EAAE,GAAG,EAAE,IAAI,EAAE,IAAI,EAAE;KAC3C;IACD;QACE,OAAO,EAAE,0BAA0B;QACnC,aAAa,EAAE,IAAI;QACnB,QAAQ,EAAE,EAAE,WAAW,EAAE,GAAG,EAAE,IAAI,EAAE,IAAI,EAAE;KAC3C;CACF,CAAC;AAEF,MAAM,UAAU,gBAAgB,CAAC,KAIhC;IACC,KAAK,MAAM,IAAI,IAAI,cAAc,EAAE,CAAC;QAClC,IAAI,IAAI,CAAC,aAAa,IAAI,CAAC,KAAK,CAAC,gBAAgB;YAAE,SAAS;QAC5D,IACE,IAAI,CAAC,SAAS;YACd,CAAC,CAAC,KAAK,CAAC,QAAQ,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC,EAC7D,CAAC;YACD,SAAS;QACX,CAAC;QACD,IAAI,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC;YAAE,OAAO,IAAI,CAAC,QAAQ,CAAC;IAC3D,CAAC;IACD,OAAO,gBAAgB,CAAC;AAC1B,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,eAAe,CAAC,KAK/B;IACC,MAAM,MAAM,GAAG,gBAAgB,CAAC,KAAK,CAAC,CAAC;IACvC,OAAO;QACL,WAAW,EAAE,KAAK,CAAC,oBAAoB,IAAI,MAAM,CAAC,WAAW;QAC7D,GAAG,CAAC,MAAM,CAAC,IAAI,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,MAAM,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;KAC5D,CAAC;AACJ,CAAC"}
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
export declare function markStreamEmittedBytes<E>(error: E, bytes: number): E;
|
|
2
|
+
export declare function streamEmittedBytes(error: unknown): number;
|
|
3
|
+
/** True when the failed attempt already delivered bytes to the caller. */
|
|
4
|
+
export declare function streamAlreadyEmitted(error: unknown): boolean;
|
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Stream progress tagging.
|
|
3
|
+
*
|
|
4
|
+
* A retry is only transparent if nothing has been emitted yet. Once tokens have
|
|
5
|
+
* reached the caller's `onToken` sink (which the agent runner feeds into a
|
|
6
|
+
* single delta parser and a single assistant message), re-running the request
|
|
7
|
+
* appends a second copy of the answer — duplicated prose and, worse, duplicated
|
|
8
|
+
* or spliced tool-call JSON.
|
|
9
|
+
*
|
|
10
|
+
* Errors thrown after emission are tagged with the byte count so every retry
|
|
11
|
+
* decision (key rotation, provider fallback, the runner's recovery ladder) can
|
|
12
|
+
* refuse to retry transparently.
|
|
13
|
+
*/
|
|
14
|
+
const EMITTED_BYTES = Symbol.for("clai.stream.emittedBytes");
|
|
15
|
+
export function markStreamEmittedBytes(error, bytes) {
|
|
16
|
+
if (bytes > 0 && typeof error === "object" && error !== null) {
|
|
17
|
+
try {
|
|
18
|
+
Object.defineProperty(error, EMITTED_BYTES, {
|
|
19
|
+
value: bytes,
|
|
20
|
+
enumerable: false,
|
|
21
|
+
configurable: true,
|
|
22
|
+
writable: true,
|
|
23
|
+
});
|
|
24
|
+
}
|
|
25
|
+
catch {
|
|
26
|
+
// Frozen error objects cannot be tagged; treat as no progress.
|
|
27
|
+
}
|
|
28
|
+
}
|
|
29
|
+
return error;
|
|
30
|
+
}
|
|
31
|
+
export function streamEmittedBytes(error) {
|
|
32
|
+
if (typeof error !== "object" || error === null)
|
|
33
|
+
return 0;
|
|
34
|
+
const value = error[EMITTED_BYTES];
|
|
35
|
+
return typeof value === "number" && Number.isFinite(value) && value > 0
|
|
36
|
+
? value
|
|
37
|
+
: 0;
|
|
38
|
+
}
|
|
39
|
+
/** True when the failed attempt already delivered bytes to the caller. */
|
|
40
|
+
export function streamAlreadyEmitted(error) {
|
|
41
|
+
return streamEmittedBytes(error) > 0;
|
|
42
|
+
}
|
|
43
|
+
//# sourceMappingURL=stream-progress.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"stream-progress.js","sourceRoot":"","sources":["../../src/llm/stream-progress.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AACH,MAAM,aAAa,GAAG,MAAM,CAAC,GAAG,CAAC,0BAA0B,CAAC,CAAC;AAE7D,MAAM,UAAU,sBAAsB,CAAI,KAAQ,EAAE,KAAa;IAC/D,IAAI,KAAK,GAAG,CAAC,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,KAAK,IAAI,EAAE,CAAC;QAC7D,IAAI,CAAC;YACH,MAAM,CAAC,cAAc,CAAC,KAAK,EAAE,aAAa,EAAE;gBAC1C,KAAK,EAAE,KAAK;gBACZ,UAAU,EAAE,KAAK;gBACjB,YAAY,EAAE,IAAI;gBAClB,QAAQ,EAAE,IAAI;aACf,CAAC,CAAC;QACL,CAAC;QAAC,MAAM,CAAC;YACP,+DAA+D;QACjE,CAAC;IACH,CAAC;IACD,OAAO,KAAK,CAAC;AACf,CAAC;AAED,MAAM,UAAU,kBAAkB,CAAC,KAAc;IAC/C,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,KAAK,IAAI;QAAE,OAAO,CAAC,CAAC;IAC1D,MAAM,KAAK,GAAI,KAAiC,CAAC,aAAa,CAAC,CAAC;IAChE,OAAO,OAAO,KAAK,KAAK,QAAQ,IAAI,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,KAAK,GAAG,CAAC;QACrE,CAAC,CAAC,KAAK;QACP,CAAC,CAAC,CAAC,CAAC;AACR,CAAC;AAED,0EAA0E;AAC1E,MAAM,UAAU,oBAAoB,CAAC,KAAc;IACjD,OAAO,kBAAkB,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;AACvC,CAAC"}
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
import type { ChatMessage } from "../types.js";
|
|
2
|
+
/**
|
|
3
|
+
* Marker prefix used when a mid-conversation `system` message has to be
|
|
4
|
+
* delivered as a user turn because the provider dialect only has a single
|
|
5
|
+
* top-level system field (Anthropic `system`, Gemini `systemInstruction`).
|
|
6
|
+
*/
|
|
7
|
+
export declare const SYSTEM_TURN_MARKER = "[SYSTEM]";
|
|
8
|
+
/**
|
|
9
|
+
* One shared ordered normalization contract for dialects with a
|
|
10
|
+
* single system slot.
|
|
11
|
+
*
|
|
12
|
+
* The first system message becomes the dialect's system field. Every later
|
|
13
|
+
* system message (compaction memory, live plan, engagement scope, Responder
|
|
14
|
+
* ledger, loop-guard/progress steering) is preserved *in place* as a user turn
|
|
15
|
+
* tagged with {@link SYSTEM_TURN_MARKER}, so ordering relative to tool groups
|
|
16
|
+
* is untouched and nothing is silently dropped.
|
|
17
|
+
*
|
|
18
|
+
* The marker is applied exactly once: content that already carries it is
|
|
19
|
+
* passed through unchanged.
|
|
20
|
+
*/
|
|
21
|
+
export declare function normalizeSystemMessages(messages: ChatMessage[]): {
|
|
22
|
+
/** Content of the first system message, if any. */
|
|
23
|
+
systemPrompt: string | undefined;
|
|
24
|
+
/** History with later system messages converted to marked user turns. */
|
|
25
|
+
rest: ChatMessage[];
|
|
26
|
+
};
|
|
27
|
+
export declare function markSystemTurn(content: string): string;
|
|
28
|
+
/** Content of the first system message, matching the dialect system field. */
|
|
29
|
+
export declare function firstSystemPrompt(messages: ChatMessage[]): string | undefined;
|
|
@@ -0,0 +1,51 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Marker prefix used when a mid-conversation `system` message has to be
|
|
3
|
+
* delivered as a user turn because the provider dialect only has a single
|
|
4
|
+
* top-level system field (Anthropic `system`, Gemini `systemInstruction`).
|
|
5
|
+
*/
|
|
6
|
+
export const SYSTEM_TURN_MARKER = "[SYSTEM]";
|
|
7
|
+
/**
|
|
8
|
+
* One shared ordered normalization contract for dialects with a
|
|
9
|
+
* single system slot.
|
|
10
|
+
*
|
|
11
|
+
* The first system message becomes the dialect's system field. Every later
|
|
12
|
+
* system message (compaction memory, live plan, engagement scope, Responder
|
|
13
|
+
* ledger, loop-guard/progress steering) is preserved *in place* as a user turn
|
|
14
|
+
* tagged with {@link SYSTEM_TURN_MARKER}, so ordering relative to tool groups
|
|
15
|
+
* is untouched and nothing is silently dropped.
|
|
16
|
+
*
|
|
17
|
+
* The marker is applied exactly once: content that already carries it is
|
|
18
|
+
* passed through unchanged.
|
|
19
|
+
*/
|
|
20
|
+
export function normalizeSystemMessages(messages) {
|
|
21
|
+
let systemPrompt;
|
|
22
|
+
let seenFirstSystem = false;
|
|
23
|
+
const rest = [];
|
|
24
|
+
for (const message of messages) {
|
|
25
|
+
if (message.role !== "system") {
|
|
26
|
+
rest.push(message);
|
|
27
|
+
continue;
|
|
28
|
+
}
|
|
29
|
+
if (!seenFirstSystem) {
|
|
30
|
+
seenFirstSystem = true;
|
|
31
|
+
systemPrompt = message.content;
|
|
32
|
+
continue;
|
|
33
|
+
}
|
|
34
|
+
rest.push({
|
|
35
|
+
...message,
|
|
36
|
+
role: "user",
|
|
37
|
+
content: markSystemTurn(message.content),
|
|
38
|
+
});
|
|
39
|
+
}
|
|
40
|
+
return { systemPrompt, rest };
|
|
41
|
+
}
|
|
42
|
+
export function markSystemTurn(content) {
|
|
43
|
+
return content.startsWith(SYSTEM_TURN_MARKER)
|
|
44
|
+
? content
|
|
45
|
+
: `${SYSTEM_TURN_MARKER}\n${content}`;
|
|
46
|
+
}
|
|
47
|
+
/** Content of the first system message, matching the dialect system field. */
|
|
48
|
+
export function firstSystemPrompt(messages) {
|
|
49
|
+
return messages.find((message) => message.role === "system")?.content;
|
|
50
|
+
}
|
|
51
|
+
//# sourceMappingURL=system-messages.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"system-messages.js","sourceRoot":"","sources":["../../src/llm/system-messages.ts"],"names":[],"mappings":"AAEA;;;;GAIG;AACH,MAAM,CAAC,MAAM,kBAAkB,GAAG,UAAU,CAAC;AAE7C;;;;;;;;;;;;GAYG;AACH,MAAM,UAAU,uBAAuB,CAAC,QAAuB;IAM7D,IAAI,YAAgC,CAAC;IACrC,IAAI,eAAe,GAAG,KAAK,CAAC;IAC5B,MAAM,IAAI,GAAkB,EAAE,CAAC;IAC/B,KAAK,MAAM,OAAO,IAAI,QAAQ,EAAE,CAAC;QAC/B,IAAI,OAAO,CAAC,IAAI,KAAK,QAAQ,EAAE,CAAC;YAC9B,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;YACnB,SAAS;QACX,CAAC;QACD,IAAI,CAAC,eAAe,EAAE,CAAC;YACrB,eAAe,GAAG,IAAI,CAAC;YACvB,YAAY,GAAG,OAAO,CAAC,OAAO,CAAC;YAC/B,SAAS;QACX,CAAC;QACD,IAAI,CAAC,IAAI,CAAC;YACR,GAAG,OAAO;YACV,IAAI,EAAE,MAAM;YACZ,OAAO,EAAE,cAAc,CAAC,OAAO,CAAC,OAAO,CAAC;SACzC,CAAC,CAAC;IACL,CAAC;IACD,OAAO,EAAE,YAAY,EAAE,IAAI,EAAE,CAAC;AAChC,CAAC;AAED,MAAM,UAAU,cAAc,CAAC,OAAe;IAC5C,OAAO,OAAO,CAAC,UAAU,CAAC,kBAAkB,CAAC;QAC3C,CAAC,CAAC,OAAO;QACT,CAAC,CAAC,GAAG,kBAAkB,KAAK,OAAO,EAAE,CAAC;AAC1C,CAAC;AAED,8EAA8E;AAC9E,MAAM,UAAU,iBAAiB,CAC/B,QAAuB;IAEvB,OAAO,QAAQ,CAAC,IAAI,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,OAAO,CAAC,IAAI,KAAK,QAAQ,CAAC,EAAE,OAAO,CAAC;AACxE,CAAC"}
|
|
@@ -38,6 +38,9 @@ export declare function normalizeTokenUsage(input: {
|
|
|
38
38
|
completionTokens?: number | undefined;
|
|
39
39
|
totalTokens?: number | undefined;
|
|
40
40
|
exact?: boolean | undefined;
|
|
41
|
+
cachedPromptTokens?: number | undefined;
|
|
42
|
+
cacheCreationTokens?: number | undefined;
|
|
43
|
+
reasoningTokens?: number | undefined;
|
|
41
44
|
}): TokenUsage | undefined;
|
|
42
45
|
/**
|
|
43
46
|
* Parse OpenAI-compatible `usage` object (stream final chunk or complete body).
|
|
@@ -55,7 +58,7 @@ export declare function parseOllamaUsage(raw: {
|
|
|
55
58
|
}): TokenUsage | undefined;
|
|
56
59
|
/** Estimated usage from message list (not billing-accurate). */
|
|
57
60
|
export declare function estimateUsageFromMessages(messages: readonly ChatMessage[]): TokenUsage;
|
|
58
|
-
export declare function modelContextWindow(model: string | undefined,
|
|
61
|
+
export declare function modelContextWindow(model: string | undefined, provider?: ProviderId | undefined): number;
|
|
59
62
|
/** Compact integer: 128450 → "128,450"; large → "128.5k" when compact. */
|
|
60
63
|
export declare function formatTokenCount(n: number, compact?: boolean): string;
|
|
61
64
|
/**
|
package/dist/llm/token-usage.js
CHANGED
|
@@ -18,11 +18,17 @@ export function normalizeTokenUsage(input) {
|
|
|
18
18
|
const c = completion ?? 0;
|
|
19
19
|
if (total === undefined)
|
|
20
20
|
total = p + c;
|
|
21
|
+
const cached = nonNegInt(input.cachedPromptTokens);
|
|
22
|
+
const cacheCreation = nonNegInt(input.cacheCreationTokens);
|
|
23
|
+
const reasoning = nonNegInt(input.reasoningTokens);
|
|
21
24
|
return {
|
|
22
25
|
promptTokens: p,
|
|
23
26
|
completionTokens: c,
|
|
24
27
|
totalTokens: total,
|
|
25
28
|
exact: input.exact !== false,
|
|
29
|
+
...(cached !== undefined ? { cachedPromptTokens: cached } : {}),
|
|
30
|
+
...(cacheCreation !== undefined ? { cacheCreationTokens: cacheCreation } : {}),
|
|
31
|
+
...(reasoning !== undefined ? { reasoningTokens: reasoning } : {}),
|
|
26
32
|
};
|
|
27
33
|
}
|
|
28
34
|
function nonNegInt(value) {
|
|
@@ -50,6 +56,12 @@ export function parseOpenAiUsage(raw) {
|
|
|
50
56
|
u.outputTokens,
|
|
51
57
|
totalTokens: u.total_tokens ??
|
|
52
58
|
u.totalTokens,
|
|
59
|
+
// OpenAI, Groq, OpenRouter and DeepSeek-style gateways report cache and
|
|
60
|
+
// reasoning detail here; it used to be dropped entirely.
|
|
61
|
+
cachedPromptTokens: nonNegInt(u.prompt_tokens_details
|
|
62
|
+
?.cached_tokens),
|
|
63
|
+
reasoningTokens: nonNegInt(u.completion_tokens_details
|
|
64
|
+
?.reasoning_tokens),
|
|
53
65
|
exact: true,
|
|
54
66
|
});
|
|
55
67
|
}
|
|
@@ -66,6 +78,8 @@ export function parseAnthropicUsage(raw) {
|
|
|
66
78
|
return normalizeTokenUsage({
|
|
67
79
|
promptTokens: prompt > 0 ? prompt : undefined,
|
|
68
80
|
completionTokens: u.output_tokens,
|
|
81
|
+
...(cacheRead > 0 ? { cachedPromptTokens: cacheRead } : {}),
|
|
82
|
+
...(cacheCreate > 0 ? { cacheCreationTokens: cacheCreate } : {}),
|
|
69
83
|
exact: true,
|
|
70
84
|
});
|
|
71
85
|
}
|
|
@@ -118,11 +132,17 @@ const CONTEXT_WINDOW_RULES = [
|
|
|
118
132
|
{ pattern: /gpt-4\.1/i, tokens: 1_047_576 },
|
|
119
133
|
{ pattern: /gpt-4o/i, tokens: 128_000 },
|
|
120
134
|
{ pattern: /gpt-4-turbo/i, tokens: 128_000 },
|
|
135
|
+
// Plain gpt-4 is 8k (32k for the -32k variant); the generic 128k rule below
|
|
136
|
+
// used to over-size it, so no warning arrived before a hard context error.
|
|
137
|
+
{ pattern: /gpt-4-32k/i, tokens: 32_768 },
|
|
138
|
+
{ pattern: /^gpt-4(?:-\d{4})?$/i, tokens: 8_192 },
|
|
121
139
|
{ pattern: /gpt-4/i, tokens: 128_000 },
|
|
122
140
|
{ pattern: /o3/i, tokens: 200_000 },
|
|
123
141
|
{ pattern: /o4/i, tokens: 200_000 },
|
|
124
142
|
{ pattern: /o1/i, tokens: 200_000 },
|
|
125
|
-
// Google
|
|
143
|
+
// Google — keep explicit rules ahead of the generic /gemini/i fallback, which
|
|
144
|
+
// used to catch the shipped gemini-3.x default at an order of magnitude low.
|
|
145
|
+
{ pattern: /gemini-3/i, tokens: 1_048_576 },
|
|
126
146
|
{ pattern: /gemini-2\.5/i, tokens: 1_048_576 },
|
|
127
147
|
{ pattern: /gemini-2\.0/i, tokens: 1_048_576 },
|
|
128
148
|
{ pattern: /gemini-1\.5/i, tokens: 1_048_576 },
|
|
@@ -137,8 +157,10 @@ const CONTEXT_WINDOW_RULES = [
|
|
|
137
157
|
{ pattern: /qwen3/i, tokens: 128_000 },
|
|
138
158
|
{ pattern: /qwen2\.5/i, tokens: 128_000 },
|
|
139
159
|
{ pattern: /qwen/i, tokens: 128_000 },
|
|
160
|
+
{ pattern: /kimi-k2/i, tokens: 256_000 },
|
|
140
161
|
{ pattern: /kimi/i, tokens: 128_000 },
|
|
141
|
-
{ pattern: /glm-?5/i, tokens:
|
|
162
|
+
{ pattern: /glm-?5/i, tokens: 200_000 },
|
|
163
|
+
{ pattern: /glm-?4\.[56]/i, tokens: 200_000 },
|
|
142
164
|
{ pattern: /glm-?4/i, tokens: 128_000 },
|
|
143
165
|
{ pattern: /minimax/i, tokens: 128_000 },
|
|
144
166
|
{ pattern: /mimo/i, tokens: 128_000 },
|
|
@@ -146,9 +168,29 @@ const CONTEXT_WINDOW_RULES = [
|
|
|
146
168
|
{ pattern: /nemotron/i, tokens: 128_000 },
|
|
147
169
|
];
|
|
148
170
|
const DEFAULT_CONTEXT_WINDOW = 128_000;
|
|
149
|
-
|
|
171
|
+
/**
|
|
172
|
+
* Provider-specific served windows that are smaller than the model's nominal
|
|
173
|
+
* one. The `provider` argument used to be accepted and discarded, so `%` of
|
|
174
|
+
* context was wrong wherever a gateway serves a truncated window.
|
|
175
|
+
*/
|
|
176
|
+
const PROVIDER_CONTEXT_OVERRIDES = {
|
|
177
|
+
// Groq serves these two on a low TPM tier; the usable prompt is far below the
|
|
178
|
+
// model's nominal window (mirrors `groqInputTokenBudget`).
|
|
179
|
+
groq: [
|
|
180
|
+
{ pattern: /qwen\/qwen3-32b/i, tokens: 5_500 },
|
|
181
|
+
{ pattern: /openai\/gpt-oss-20b/i, tokens: 7_500 },
|
|
182
|
+
],
|
|
183
|
+
};
|
|
184
|
+
export function modelContextWindow(model, provider) {
|
|
150
185
|
if (!model)
|
|
151
186
|
return DEFAULT_CONTEXT_WINDOW;
|
|
187
|
+
const overrides = provider ? PROVIDER_CONTEXT_OVERRIDES[provider] : undefined;
|
|
188
|
+
if (overrides) {
|
|
189
|
+
for (const rule of overrides) {
|
|
190
|
+
if (rule.pattern.test(model))
|
|
191
|
+
return rule.tokens;
|
|
192
|
+
}
|
|
193
|
+
}
|
|
152
194
|
for (const rule of CONTEXT_WINDOW_RULES) {
|
|
153
195
|
if (rule.pattern.test(model))
|
|
154
196
|
return rule.tokens;
|
|
@@ -177,7 +219,17 @@ export function formatTokenCount(n, compact = false) {
|
|
|
177
219
|
export function formatContextChip(snapshot, opts) {
|
|
178
220
|
const compact = opts?.compact ?? false;
|
|
179
221
|
const used = formatTokenCount(snapshot.contextTokens, compact);
|
|
180
|
-
|
|
222
|
+
const approx = snapshot.exact ? "" : "~";
|
|
223
|
+
const limit = snapshot.contextLimit;
|
|
224
|
+
// The denominator is the auto-compaction trigger, so the percentage tells the
|
|
225
|
+
// user how close the next request is to being compacted.
|
|
226
|
+
if (!limit || limit <= 0)
|
|
227
|
+
return `ctx:${approx}${used}`;
|
|
228
|
+
const percent = Math.min(999, Math.round((snapshot.contextTokens / limit) * 100));
|
|
229
|
+
const budget = formatTokenCount(limit, true);
|
|
230
|
+
return compact
|
|
231
|
+
? `ctx:${approx}${used}/${budget} ${percent}%`
|
|
232
|
+
: `ctx ${approx}${used}/${budget} ${percent}%`;
|
|
181
233
|
}
|
|
182
234
|
/** Merge a new usage into session totals; prefer latest prompt as context fill. */
|
|
183
235
|
export function applyUsageToSnapshot(prev, usage, contextLimit) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"token-usage.js","sourceRoot":"","sources":["../../src/llm/token-usage.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAGH,OAAO,EAAE,sBAAsB,EAAE,MAAM,6BAA6B,CAAC;AA8BrE,0DAA0D;AAC1D,MAAM,UAAU,mBAAmB,CAAC,
|
|
1
|
+
{"version":3,"file":"token-usage.js","sourceRoot":"","sources":["../../src/llm/token-usage.ts"],"names":[],"mappings":"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"}
|
|
@@ -126,6 +126,30 @@ export function syntheticToolCallId(index) {
|
|
|
126
126
|
syntheticToolCallSequence += 1;
|
|
127
127
|
return `call_${index}_${Date.now().toString(36)}_${syntheticToolCallSequence.toString(36)}`;
|
|
128
128
|
}
|
|
129
|
+
const TOOLS_PARAMETER_NAMES = new Set([
|
|
130
|
+
"tools",
|
|
131
|
+
"tool",
|
|
132
|
+
"tool_choice",
|
|
133
|
+
"toolchoice",
|
|
134
|
+
"functions",
|
|
135
|
+
"function_call",
|
|
136
|
+
"functioncall",
|
|
137
|
+
]);
|
|
138
|
+
/** Parameter name a gateway blamed, when it says so explicitly. */
|
|
139
|
+
function offendingParameterName(hay) {
|
|
140
|
+
const patterns = [
|
|
141
|
+
/unrecognized (?:request )?(?:argument|parameter|field)(?:s)? supplied:?\s*['"`]?([a-z0-9_.]+)/,
|
|
142
|
+
/unknown (?:request )?(?:argument|parameter|field):?\s*['"`]?([a-z0-9_.]+)/,
|
|
143
|
+
/unexpected keyword argument ['"`]?([a-z0-9_.]+)/,
|
|
144
|
+
/extra inputs are not permitted[^a-z0-9_]*['"`]?([a-z0-9_.]+)/,
|
|
145
|
+
];
|
|
146
|
+
for (const pattern of patterns) {
|
|
147
|
+
const match = pattern.exec(hay);
|
|
148
|
+
if (match?.[1])
|
|
149
|
+
return match[1];
|
|
150
|
+
}
|
|
151
|
+
return undefined;
|
|
152
|
+
}
|
|
129
153
|
export function isToolsUnsupportedError(error) {
|
|
130
154
|
const status = error && typeof error === "object" && "status" in error
|
|
131
155
|
? Number(error.status)
|
|
@@ -135,6 +159,12 @@ export function isToolsUnsupportedError(error) {
|
|
|
135
159
|
: "";
|
|
136
160
|
const message = error instanceof Error ? error.message : String(error);
|
|
137
161
|
const hay = `${message}\n${body}`.toLowerCase();
|
|
162
|
+
// When the gateway names the offending parameter, only a tools parameter may
|
|
163
|
+
// downgrade the protocol. Rejecting e.g. `parallel_tool_calls` or `reasoning`
|
|
164
|
+
// says nothing about native tool support.
|
|
165
|
+
const offending = offendingParameterName(hay);
|
|
166
|
+
if (offending && !TOOLS_PARAMETER_NAMES.has(offending))
|
|
167
|
+
return false;
|
|
138
168
|
// Explicit capability rejections (any HTTP status).
|
|
139
169
|
if (/tools?\s+(is|are)\s+not\s+supported|does not support tools|function calling is not enabled|tool[_ ]?use is not supported|tools? not supported|tool calling is not supported|does not support function|function[_ ]?call(ing)? (is )?(not supported|disabled|unavailable)|unknown (request )?parameter ['"]?tools?|['"]tools?['"] is not (a )?valid|tool_choice.*(not supported|unknown|disabled)/i.test(hay)) {
|
|
140
170
|
return true;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tool-protocol.js","sourceRoot":"","sources":["../../src/llm/tool-protocol.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"tool-protocol.js","sourceRoot":"","sources":["../../src/llm/tool-protocol.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
export type TreeSignalOutcome = "sent" | "gone" | "failed";
|
|
2
|
+
/** POSIX detaches into its own group; Windows needs an explicit tree kill. */
|
|
3
|
+
export declare function supportsProcessGroups(): boolean;
|
|
4
|
+
export declare function processAlive(pid: number | undefined): boolean;
|
|
5
|
+
/**
|
|
6
|
+
* Terminate a process and its descendants. POSIX signals the process group when
|
|
7
|
+
* one is known; Windows uses `taskkill /T` because signalling the shell pid
|
|
8
|
+
* leaves the real workload (servers, scanners) holding ports and CPU.
|
|
9
|
+
*/
|
|
10
|
+
export declare function terminateProcessTree(pid: number, options: {
|
|
11
|
+
signal: NodeJS.Signals;
|
|
12
|
+
processGroupId?: number | undefined;
|
|
13
|
+
}): TreeSignalOutcome;
|
|
14
|
+
/** Best-effort synchronous-looking descendant check used by tests/diagnostics. */
|
|
15
|
+
export declare function hasLiveDescendants(pid: number): Promise<boolean>;
|
|
@@ -0,0 +1,77 @@
|
|
|
1
|
+
import { execFile, spawn } from "node:child_process";
|
|
2
|
+
/** POSIX detaches into its own group; Windows needs an explicit tree kill. */
|
|
3
|
+
export function supportsProcessGroups() {
|
|
4
|
+
return process.platform !== "win32";
|
|
5
|
+
}
|
|
6
|
+
export function processAlive(pid) {
|
|
7
|
+
if (!pid)
|
|
8
|
+
return false;
|
|
9
|
+
try {
|
|
10
|
+
process.kill(pid, 0);
|
|
11
|
+
return true;
|
|
12
|
+
}
|
|
13
|
+
catch (error) {
|
|
14
|
+
// EPERM proves the process exists but is not signalable by this user.
|
|
15
|
+
return error.code === "EPERM";
|
|
16
|
+
}
|
|
17
|
+
}
|
|
18
|
+
function windowsTaskkill(pid, force) {
|
|
19
|
+
try {
|
|
20
|
+
const args = ["/PID", String(pid), "/T"];
|
|
21
|
+
if (force)
|
|
22
|
+
args.push("/F");
|
|
23
|
+
const child = spawn("taskkill", args, {
|
|
24
|
+
stdio: "ignore",
|
|
25
|
+
windowsHide: true,
|
|
26
|
+
detached: false,
|
|
27
|
+
});
|
|
28
|
+
child.on("error", () => undefined);
|
|
29
|
+
child.unref();
|
|
30
|
+
return "sent";
|
|
31
|
+
}
|
|
32
|
+
catch {
|
|
33
|
+
return processAlive(pid) ? "failed" : "gone";
|
|
34
|
+
}
|
|
35
|
+
}
|
|
36
|
+
/**
|
|
37
|
+
* Terminate a process and its descendants. POSIX signals the process group when
|
|
38
|
+
* one is known; Windows uses `taskkill /T` because signalling the shell pid
|
|
39
|
+
* leaves the real workload (servers, scanners) holding ports and CPU.
|
|
40
|
+
*/
|
|
41
|
+
export function terminateProcessTree(pid, options) {
|
|
42
|
+
if (!processAlive(pid) && !options.processGroupId)
|
|
43
|
+
return "gone";
|
|
44
|
+
if (process.platform === "win32") {
|
|
45
|
+
return windowsTaskkill(pid, options.signal === "SIGKILL");
|
|
46
|
+
}
|
|
47
|
+
try {
|
|
48
|
+
if (options.processGroupId)
|
|
49
|
+
process.kill(-options.processGroupId, options.signal);
|
|
50
|
+
else
|
|
51
|
+
process.kill(pid, options.signal);
|
|
52
|
+
return "sent";
|
|
53
|
+
}
|
|
54
|
+
catch {
|
|
55
|
+
return processAlive(pid) ? "failed" : "gone";
|
|
56
|
+
}
|
|
57
|
+
}
|
|
58
|
+
/** Best-effort synchronous-looking descendant check used by tests/diagnostics. */
|
|
59
|
+
export async function hasLiveDescendants(pid) {
|
|
60
|
+
if (process.platform === "win32") {
|
|
61
|
+
return await new Promise((resolve) => {
|
|
62
|
+
execFile("wmic", ["process", "where", `ParentProcessId=${pid}`, "get", "ProcessId"], { windowsHide: true, timeout: 4_000 }, (error, stdout) => {
|
|
63
|
+
if (error)
|
|
64
|
+
return resolve(false);
|
|
65
|
+
resolve(/\d/.test(stdout.replace(/ProcessId/g, "")));
|
|
66
|
+
});
|
|
67
|
+
});
|
|
68
|
+
}
|
|
69
|
+
return await new Promise((resolve) => {
|
|
70
|
+
execFile("ps", ["-o", "pid=", "--ppid", String(pid)], { timeout: 4_000 }, (error, stdout) => {
|
|
71
|
+
if (error)
|
|
72
|
+
return resolve(false);
|
|
73
|
+
resolve(stdout.trim().length > 0);
|
|
74
|
+
});
|
|
75
|
+
});
|
|
76
|
+
}
|
|
77
|
+
//# sourceMappingURL=process-tree.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"process-tree.js","sourceRoot":"","sources":["../../src/os/process-tree.ts"],"names":[],"mappings":"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"}
|