@pentoshi/clai 3.5.1 → 3.7.2
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/README.md +1 -1
- package/dist/agent/compaction-summary.d.ts +17 -0
- package/dist/agent/compaction-summary.js +64 -0
- package/dist/agent/compaction-summary.js.map +1 -0
- package/dist/agent/confirm-port.d.ts +3 -1
- package/dist/agent/confirm-port.js +5 -1
- package/dist/agent/confirm-port.js.map +1 -1
- package/dist/agent/context-manager.js +53 -24
- package/dist/agent/context-manager.js.map +1 -1
- package/dist/agent/events.d.ts +6 -0
- package/dist/agent/evidence-governor.d.ts +37 -0
- package/dist/agent/evidence-governor.js +70 -0
- package/dist/agent/evidence-governor.js.map +1 -0
- package/dist/agent/loop-guard.d.ts +29 -9
- package/dist/agent/loop-guard.js +117 -26
- package/dist/agent/loop-guard.js.map +1 -1
- package/dist/agent/must-continue.d.ts +56 -0
- package/dist/agent/must-continue.js +240 -0
- package/dist/agent/must-continue.js.map +1 -0
- package/dist/agent/outcomes.d.ts +101 -0
- package/dist/agent/outcomes.js +359 -0
- package/dist/agent/outcomes.js.map +1 -0
- package/dist/agent/plan-decision.d.ts +33 -0
- package/dist/agent/plan-decision.js +104 -0
- package/dist/agent/plan-decision.js.map +1 -0
- package/dist/agent/plan-tool.d.ts +34 -0
- package/dist/agent/plan-tool.js +594 -76
- package/dist/agent/plan-tool.js.map +1 -1
- package/dist/agent/project-root.d.ts +33 -0
- package/dist/agent/project-root.js +161 -0
- package/dist/agent/project-root.js.map +1 -0
- package/dist/agent/prompt-composer.d.ts +21 -0
- package/dist/agent/prompt-composer.js +46 -0
- package/dist/agent/prompt-composer.js.map +1 -0
- package/dist/agent/runner.d.ts +11 -1
- package/dist/agent/runner.js +1915 -886
- package/dist/agent/runner.js.map +1 -1
- package/dist/agent/scope-context.d.ts +3 -0
- package/dist/agent/scope-context.js +24 -0
- package/dist/agent/scope-context.js.map +1 -0
- package/dist/agent/scratch-write.d.ts +4 -0
- package/dist/agent/scratch-write.js +54 -0
- package/dist/agent/scratch-write.js.map +1 -0
- package/dist/agent/session-policy.d.ts +7 -0
- package/dist/agent/session-policy.js +61 -0
- package/dist/agent/session-policy.js.map +1 -1
- package/dist/agent/session-state.d.ts +41 -0
- package/dist/agent/session-state.js +107 -0
- package/dist/agent/session-state.js.map +1 -0
- package/dist/agent/step-budget.d.ts +14 -0
- package/dist/agent/step-budget.js +26 -0
- package/dist/agent/step-budget.js.map +1 -0
- package/dist/agent/task-analyzer.d.ts +12 -3
- package/dist/agent/task-analyzer.js +263 -23
- package/dist/agent/task-analyzer.js.map +1 -1
- package/dist/agent/task-evidence.d.ts +173 -0
- package/dist/agent/task-evidence.js +802 -0
- package/dist/agent/task-evidence.js.map +1 -0
- package/dist/agent/task-plan.d.ts +57 -0
- package/dist/agent/task-plan.js +147 -1
- package/dist/agent/task-plan.js.map +1 -1
- package/dist/agent/tool-call-parser.d.ts +19 -11
- package/dist/agent/tool-call-parser.js +96 -71
- package/dist/agent/tool-call-parser.js.map +1 -1
- package/dist/agent/tool-history.d.ts +34 -0
- package/dist/agent/tool-history.js +200 -0
- package/dist/agent/tool-history.js.map +1 -0
- package/dist/agent/tool-output-formatting.d.ts +13 -1
- package/dist/agent/tool-output-formatting.js +75 -22
- package/dist/agent/tool-output-formatting.js.map +1 -1
- package/dist/agent/turn-outcome.d.ts +11 -0
- package/dist/agent/turn-outcome.js +17 -0
- package/dist/agent/turn-outcome.js.map +1 -0
- package/dist/agent/turn-state.d.ts +11 -0
- package/dist/agent/turn-state.js +28 -0
- package/dist/agent/turn-state.js.map +1 -0
- package/dist/agent/workspace-orient.d.ts +75 -0
- package/dist/agent/workspace-orient.js +509 -0
- package/dist/agent/workspace-orient.js.map +1 -0
- package/dist/app/adapters/agent-event-adapter.d.ts +2 -13
- package/dist/app/adapters/agent-event-adapter.js +63 -25
- package/dist/app/adapters/agent-event-adapter.js.map +1 -1
- package/dist/app/adapters/current-agent-adapter.d.ts +0 -5
- package/dist/app/adapters/current-agent-adapter.js +4 -7
- package/dist/app/adapters/current-agent-adapter.js.map +1 -1
- package/dist/app/adapters/current-jobs-adapter.js +1 -0
- package/dist/app/adapters/current-jobs-adapter.js.map +1 -1
- package/dist/app/adapters/current-terminal-adapter.d.ts +0 -7
- package/dist/app/adapters/current-terminal-adapter.js +0 -7
- package/dist/app/adapters/current-terminal-adapter.js.map +1 -1
- package/dist/app/adapters/current-updates-adapter.d.ts +0 -5
- package/dist/app/adapters/current-updates-adapter.js +0 -5
- package/dist/app/adapters/current-updates-adapter.js.map +1 -1
- package/dist/app/adapters/in-memory-clipboard-adapter.d.ts +0 -5
- package/dist/app/adapters/in-memory-clipboard-adapter.js +0 -5
- package/dist/app/adapters/in-memory-clipboard-adapter.js.map +1 -1
- package/dist/app/commands/command.d.ts +0 -5
- package/dist/app/commands/command.js.map +1 -1
- package/dist/app/commands/registry.d.ts +0 -14
- package/dist/app/commands/registry.js +0 -20
- package/dist/app/commands/registry.js.map +1 -1
- package/dist/app/controllers/disposable.d.ts +0 -5
- package/dist/app/controllers/disposable.js +0 -5
- package/dist/app/controllers/disposable.js.map +1 -1
- package/dist/app/controllers/job-controller.d.ts +1 -5
- package/dist/app/controllers/job-controller.js +0 -4
- package/dist/app/controllers/job-controller.js.map +1 -1
- package/dist/app/controllers/plan-controller.d.ts +5 -8
- package/dist/app/controllers/plan-controller.js +30 -12
- package/dist/app/controllers/plan-controller.js.map +1 -1
- package/dist/app/controllers/session-controller.d.ts +17 -32
- package/dist/app/controllers/session-controller.js +60 -35
- package/dist/app/controllers/session-controller.js.map +1 -1
- package/dist/app/controllers/turn-controller.d.ts +2 -6
- package/dist/app/controllers/turn-controller.js +8 -8
- package/dist/app/controllers/turn-controller.js.map +1 -1
- package/dist/app/events/app-event.d.ts +4 -7
- package/dist/app/events/app-event.js +0 -6
- package/dist/app/events/app-event.js.map +1 -1
- package/dist/app/events/event-buffer.d.ts +6 -17
- package/dist/app/events/event-buffer.js +27 -24
- package/dist/app/events/event-buffer.js.map +1 -1
- package/dist/app/events/sequencer.d.ts +0 -9
- package/dist/app/events/sequencer.js +0 -4
- package/dist/app/events/sequencer.js.map +1 -1
- package/dist/app/ports/agent-port.d.ts +13 -3
- package/dist/app/ports/clipboard-port.d.ts +0 -5
- package/dist/app/ports/confirm-port.d.ts +0 -7
- package/dist/app/ports/jobs-port.d.ts +2 -5
- package/dist/app/ports/persistence-port.d.ts +0 -4
- package/dist/app/ports/secret-port.d.ts +0 -5
- package/dist/app/ports/terminal-port.d.ts +0 -6
- package/dist/app/ports/updates-port.d.ts +0 -4
- package/dist/attachments/service.d.ts +29 -0
- package/dist/attachments/service.js +47 -0
- package/dist/attachments/service.js.map +1 -0
- package/dist/commands/doctor.js +3 -0
- package/dist/commands/doctor.js.map +1 -1
- package/dist/commands/providers.js +0 -3
- package/dist/commands/providers.js.map +1 -1
- package/dist/commands/search-providers.d.ts +0 -33
- package/dist/commands/search-providers.js +0 -33
- package/dist/commands/search-providers.js.map +1 -1
- package/dist/commands/update.js +1 -9
- package/dist/commands/update.js.map +1 -1
- package/dist/index.js +22 -42
- package/dist/index.js.map +1 -1
- package/dist/llm/adapters/anthropic-tools.d.ts +99 -0
- package/dist/llm/adapters/anthropic-tools.js +225 -0
- package/dist/llm/adapters/anthropic-tools.js.map +1 -0
- package/dist/llm/adapters/gemini-tools.d.ts +54 -0
- package/dist/llm/adapters/gemini-tools.js +139 -0
- package/dist/llm/adapters/gemini-tools.js.map +1 -0
- package/dist/llm/adapters/ollama-tools.d.ts +18 -0
- package/dist/llm/adapters/ollama-tools.js +58 -0
- package/dist/llm/adapters/ollama-tools.js.map +1 -0
- package/dist/llm/adapters/openai-tools.d.ts +39 -0
- package/dist/llm/adapters/openai-tools.js +71 -0
- package/dist/llm/adapters/openai-tools.js.map +1 -0
- package/dist/llm/agentrouter.js +23 -4
- package/dist/llm/agentrouter.js.map +1 -1
- package/dist/llm/anthropic.js +93 -92
- package/dist/llm/anthropic.js.map +1 -1
- package/dist/llm/aws-mantle.js +93 -56
- package/dist/llm/aws-mantle.js.map +1 -1
- package/dist/llm/bynara.js +23 -4
- package/dist/llm/bynara.js.map +1 -1
- package/dist/llm/capabilities.d.ts +13 -6
- package/dist/llm/capabilities.js +113 -13
- package/dist/llm/capabilities.js.map +1 -1
- package/dist/llm/gemini.js +63 -48
- package/dist/llm/gemini.js.map +1 -1
- package/dist/llm/groq.js +23 -10
- package/dist/llm/groq.js.map +1 -1
- package/dist/llm/http.d.ts +22 -34
- package/dist/llm/http.js +97 -69
- package/dist/llm/http.js.map +1 -1
- package/dist/llm/kimchi.js +23 -4
- package/dist/llm/kimchi.js.map +1 -1
- package/dist/llm/nvidia.js +23 -4
- package/dist/llm/nvidia.js.map +1 -1
- package/dist/llm/ollama.js +49 -31
- package/dist/llm/ollama.js.map +1 -1
- package/dist/llm/openai.js +23 -4
- package/dist/llm/openai.js.map +1 -1
- package/dist/llm/openrouter.js +23 -4
- package/dist/llm/openrouter.js.map +1 -1
- package/dist/llm/qwen-cloud.js +23 -4
- package/dist/llm/qwen-cloud.js.map +1 -1
- package/dist/llm/router.d.ts +0 -6
- package/dist/llm/router.js +48 -21
- package/dist/llm/router.js.map +1 -1
- package/dist/llm/tool-protocol.d.ts +67 -0
- package/dist/llm/tool-protocol.js +278 -0
- package/dist/llm/tool-protocol.js.map +1 -0
- package/dist/modes/agent.d.ts +2 -1
- package/dist/modes/agent.js +4 -2
- package/dist/modes/agent.js.map +1 -1
- package/dist/modes/ask.d.ts +0 -18
- package/dist/modes/ask.js +71 -66
- package/dist/modes/ask.js.map +1 -1
- package/dist/os/cwd.d.ts +0 -21
- package/dist/os/cwd.js +0 -24
- package/dist/os/cwd.js.map +1 -1
- package/dist/os/pkgmgr.js +0 -6
- package/dist/os/pkgmgr.js.map +1 -1
- package/dist/prompts/index.d.ts +17 -21
- package/dist/prompts/index.js +131 -259
- package/dist/prompts/index.js.map +1 -1
- package/dist/prompts/system.agent.md +242 -0
- package/dist/prompts/system.ask.md +56 -0
- package/dist/repl/prompt-line.js +0 -36
- package/dist/repl/prompt-line.js.map +1 -1
- package/dist/repl/slash-commands.d.ts +0 -9
- package/dist/repl/slash-commands.js +2 -23
- package/dist/repl/slash-commands.js.map +1 -1
- package/dist/repl.d.ts +5 -0
- package/dist/repl.js +176 -55
- package/dist/repl.js.map +1 -1
- package/dist/safety/classifier.js +17 -9
- package/dist/safety/classifier.js.map +1 -1
- package/dist/safety/engagement-policy.d.ts +46 -0
- package/dist/safety/engagement-policy.js +198 -0
- package/dist/safety/engagement-policy.js.map +1 -0
- package/dist/store/config.d.ts +7 -0
- package/dist/store/config.js +1 -0
- package/dist/store/config.js.map +1 -1
- package/dist/store/engagement.d.ts +115 -0
- package/dist/store/engagement.js +278 -0
- package/dist/store/engagement.js.map +1 -0
- package/dist/store/logs.d.ts +5 -0
- package/dist/store/logs.js +52 -2
- package/dist/store/logs.js.map +1 -1
- package/dist/store/plan.d.ts +59 -5
- package/dist/store/plan.js +182 -8
- package/dist/store/plan.js.map +1 -1
- package/dist/store/scope.d.ts +4 -1
- package/dist/store/scope.js +2 -2
- package/dist/store/scope.js.map +1 -1
- package/dist/tools/capabilities.d.ts +2 -0
- package/dist/tools/capabilities.js +101 -6
- package/dist/tools/capabilities.js.map +1 -1
- package/dist/tools/command-intent.d.ts +1 -0
- package/dist/tools/command-intent.js +31 -0
- package/dist/tools/command-intent.js.map +1 -1
- package/dist/tools/definitions.d.ts +20 -0
- package/dist/tools/definitions.js +578 -0
- package/dist/tools/definitions.js.map +1 -0
- package/dist/tools/elevated-shell.d.ts +60 -0
- package/dist/tools/elevated-shell.js +233 -0
- package/dist/tools/elevated-shell.js.map +1 -0
- package/dist/tools/file-diff.d.ts +125 -0
- package/dist/tools/file-diff.js +495 -0
- package/dist/tools/file-diff.js.map +1 -0
- package/dist/tools/fs.d.ts +11 -13
- package/dist/tools/fs.js +280 -80
- package/dist/tools/fs.js.map +1 -1
- package/dist/tools/http.d.ts +15 -0
- package/dist/tools/http.js +202 -61
- package/dist/tools/http.js.map +1 -1
- package/dist/tools/jobs.d.ts +71 -10
- package/dist/tools/jobs.js +403 -124
- package/dist/tools/jobs.js.map +1 -1
- package/dist/tools/net-ping-sweep.js +69 -16
- package/dist/tools/net-ping-sweep.js.map +1 -1
- package/dist/tools/nmap-runner.d.ts +19 -7
- package/dist/tools/nmap-runner.js +182 -80
- package/dist/tools/nmap-runner.js.map +1 -1
- package/dist/tools/pentest-workflows.d.ts +8 -0
- package/dist/tools/pentest-workflows.js +71 -0
- package/dist/tools/pentest-workflows.js.map +1 -0
- package/dist/tools/registry.d.ts +9 -0
- package/dist/tools/registry.js +272 -63
- package/dist/tools/registry.js.map +1 -1
- package/dist/tools/shell.d.ts +3 -0
- package/dist/tools/shell.js +35 -13
- package/dist/tools/shell.js.map +1 -1
- package/dist/tools/tool-types.d.ts +11 -0
- package/dist/tools/validate.d.ts +11 -0
- package/dist/tools/validate.js +53 -0
- package/dist/tools/validate.js.map +1 -1
- package/dist/tools/web/search.js +48 -4
- package/dist/tools/web/search.js.map +1 -1
- package/dist/tui-v2/app/App.js +25 -39
- package/dist/tui-v2/app/App.js.map +1 -1
- package/dist/tui-v2/app/command-handlers.js +20 -1
- package/dist/tui-v2/app/command-handlers.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/commands/session-commands.js +5 -0
- package/dist/tui-v2/app/commands/session-commands.js.map +1 -1
- package/dist/tui-v2/app/plan-lifecycle.d.ts +25 -3
- package/dist/tui-v2/app/plan-lifecycle.js +87 -24
- package/dist/tui-v2/app/plan-lifecycle.js.map +1 -1
- package/dist/tui-v2/bootstrap/patch-opentui-text.d.ts +6 -0
- package/dist/tui-v2/bootstrap/patch-opentui-text.js +53 -0
- package/dist/tui-v2/bootstrap/patch-opentui-text.js.map +1 -0
- package/dist/tui-v2/bootstrap/start-tui-v2.js +7 -0
- package/dist/tui-v2/bootstrap/start-tui-v2.js.map +1 -1
- package/dist/tui-v2/components/jobs/jobs-panel.js +23 -14
- package/dist/tui-v2/components/jobs/jobs-panel.js.map +1 -1
- package/dist/tui-v2/components/modal/confirm-modal.d.ts +1 -1
- package/dist/tui-v2/components/modal/confirm-modal.js +18 -7
- package/dist/tui-v2/components/modal/confirm-modal.js.map +1 -1
- package/dist/tui-v2/components/overlay/overlay-host.js +1 -1
- package/dist/tui-v2/components/overlay/overlay-host.js.map +1 -1
- package/dist/tui-v2/components/pager/pager.d.ts +6 -0
- package/dist/tui-v2/components/pager/pager.js +313 -67
- package/dist/tui-v2/components/pager/pager.js.map +1 -1
- package/dist/tui-v2/components/status/status-line.d.ts +9 -0
- package/dist/tui-v2/components/status/status-line.js +17 -3
- package/dist/tui-v2/components/status/status-line.js.map +1 -1
- package/dist/tui-v2/components/transcript/assistant-message.js +1 -1
- package/dist/tui-v2/components/transcript/assistant-message.js.map +1 -1
- package/dist/tui-v2/components/transcript/compacted-row.js +1 -1
- package/dist/tui-v2/components/transcript/compacted-row.js.map +1 -1
- package/dist/tui-v2/components/transcript/tool-card.d.ts +9 -1
- package/dist/tui-v2/components/transcript/tool-card.js +115 -10
- package/dist/tui-v2/components/transcript/tool-card.js.map +1 -1
- package/dist/tui-v2/components/transcript/transcript-row.js +2 -2
- package/dist/tui-v2/components/transcript/transcript-row.js.map +1 -1
- package/dist/tui-v2/composer/composer-editor.js +16 -0
- package/dist/tui-v2/composer/composer-editor.js.map +1 -1
- package/dist/tui-v2/controllers/overlay-controller.d.ts +16 -2
- package/dist/tui-v2/controllers/overlay-controller.js +92 -12
- package/dist/tui-v2/controllers/overlay-controller.js.map +1 -1
- package/dist/tui-v2/rendering/artifact-pager-source.d.ts +19 -0
- package/dist/tui-v2/rendering/artifact-pager-source.js +103 -0
- package/dist/tui-v2/rendering/artifact-pager-source.js.map +1 -0
- package/dist/tui-v2/rendering/file-diff-view.d.ts +63 -0
- package/dist/tui-v2/rendering/file-diff-view.js +263 -0
- package/dist/tui-v2/rendering/file-diff-view.js.map +1 -0
- package/dist/tui-v2/rendering/open-tool-output.d.ts +9 -1
- package/dist/tui-v2/rendering/open-tool-output.js +65 -12
- package/dist/tui-v2/rendering/open-tool-output.js.map +1 -1
- package/dist/tui-v2/rendering/pager-chrome.d.ts +12 -0
- package/dist/tui-v2/rendering/pager-chrome.js +56 -0
- package/dist/tui-v2/rendering/pager-chrome.js.map +1 -0
- package/dist/tui-v2/rendering/plan-view.js +1 -1
- package/dist/tui-v2/rendering/plan-view.js.map +1 -1
- package/dist/tui-v2/rendering/syntax-highlight.d.ts +37 -0
- package/dist/tui-v2/rendering/syntax-highlight.js +1303 -0
- package/dist/tui-v2/rendering/syntax-highlight.js.map +1 -0
- package/dist/tui-v2/rendering/theme.d.ts +28 -0
- package/dist/tui-v2/rendering/theme.js +28 -0
- package/dist/tui-v2/rendering/theme.js.map +1 -1
- package/dist/tui-v2/rendering/tool-presenter.d.ts +11 -1
- package/dist/tui-v2/rendering/tool-presenter.js +101 -5
- package/dist/tui-v2/rendering/tool-presenter.js.map +1 -1
- package/dist/tui-v2/state/transcript-hydrate.js +5 -0
- package/dist/tui-v2/state/transcript-hydrate.js.map +1 -1
- package/dist/tui-v2/state/transcript-reducer.js +12 -2
- package/dist/tui-v2/state/transcript-reducer.js.map +1 -1
- package/dist/tui-v2/state/transcript-store.d.ts +7 -0
- package/dist/tui-v2/state/transcript-store.js +46 -0
- package/dist/tui-v2/state/transcript-store.js.map +1 -1
- package/dist/tui-v2/state/transcript-types.d.ts +12 -0
- package/dist/tui-v2/state/transcript-types.js +9 -0
- package/dist/tui-v2/state/transcript-types.js.map +1 -1
- package/dist/types.d.ts +75 -1
- package/dist/ui/ansi-box.d.ts +2 -0
- package/dist/ui/ansi-box.js +8 -1
- package/dist/ui/ansi-box.js.map +1 -1
- package/dist/ui/mentions.d.ts +6 -0
- package/dist/ui/mentions.js +50 -12
- package/dist/ui/mentions.js.map +1 -1
- package/dist/ui/plan-pane.js +1 -1
- package/dist/ui/plan-pane.js.map +1 -1
- package/package.json +16 -11
package/dist/llm/bynara.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"bynara.js","sourceRoot":"","sources":["../../src/llm/bynara.ts"],"names":[],"mappings":"AACA,OAAO,EACL,aAAa,GAGd,MAAM,eAAe,CAAC;AACvB,OAAO,EACL,wBAAwB,EACxB,oBAAoB,EACpB,sBAAsB,EACtB,QAAQ,GACT,MAAM,WAAW,CAAC;AAEnB,qEAAqE;AACrE,oEAAoE;AACpE,MAAM,OAAO,GAAG,6BAA6B,CAAC;AAQ9C,MAAM,UAAU,GAAG,IAAI,GAAG,EAAsB,CAAC;AACjD,MAAM,YAAY,GAAG,EAAE,GAAG,EAAE,GAAG,IAAI,CAAC,CAAC,SAAS;AAE9C,MAAM,CAAC,MAAM,cAAc,GAAgB;IACzC,EAAE,EAAE,QAAQ;IACZ,WAAW,EAAE,QAAQ;IACrB,YAAY,EAAE,aAAa,CAAC,MAAM;IAClC,MAAM,EAAE,gBAAgB;IACxB,WAAW,EAAE,CAAC,GAAW,EAAE,EAAE,CAAC,qBAAqB,CAAC,IAAI,CAAC,GAAG,CAAC;IAC7D,KAAK,CAAC,UAAU,CAAC,IAAkB;QACjC,MAAM,GAAG,GAAG,IAAI,CAAC,MAAM,IAAI,EAAE,CAAC;QAC9B,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;QACvB,MAAM,MAAM,GAAG,UAAU,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;QACnC,IAAI,MAAM,IAAI,GAAG,GAAG,MAAM,CAAC,SAAS,GAAG,YAAY,EAAE,CAAC;YACpD,OAAO,MAAM,CAAC,MAAM,CAAC;QACvB,CAAC;QACD,IAAI,CAAC;YACH,MAAM,IAAI,GAAG,MAAM,KAAK,CAAC,GAAG,OAAO,SAAS,EAAE;gBAC5C,OAAO,EAAE,GAAG,CAAC,CAAC,CAAC,EAAE,aAAa,EAAE,UAAU,GAAG,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE;aACvD,CAAC,CAAC;YACH,MAAM,IAAI,GAAG,MAAM,QAAQ,CAAmC,IAAI,CAAC,CAAC;YACpE,MAAM,MAAM,GAAG,IAAI,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,IAAI,EAAE,IAAI,EAAE,CAAC;YACxD,IAAI,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBACtB,UAAU,CAAC,GAAG,CAAC,GAAG,EAAE,EAAE,MAAM,EAAE,SAAS,EAAE,GAAG,EAAE,CAAC,CAAC;YAClD,CAAC;YACD,OAAO,MAAM,CAAC;QAChB,CAAC;QAAC,MAAM,CAAC;YACP,8DAA8D;YAC9D,OAAO,EAAE,CAAC;QACZ,CAAC;IACH,CAAC;IACD,KAAK,CAAC,IAAI,CAAC,IAAkB;QAC3B,IAAI,CAAC,IAAI,CAAC,MAAM;YAAE,MAAM,IAAI,KAAK,CAAC,4BAA4B,CAAC,CAAC;QAChE,MAAM,oBAAoB,CAAC,OAAO,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC;IACnD,CAAC;IACD,KAAK,CAAC,QAAQ,CACZ,OAA0B,EAC1B,IAAkB;QAElB,IAAI,CAAC,IAAI,CAAC,MAAM;YAAE,MAAM,IAAI,KAAK,CAAC,4BAA4B,CAAC,CAAC;QAChE,MAAM,KAAK,GAAG,OAAO,CAAC,KAAK,IAAI,aAAa,CAAC,MAAM,CAAC;QACpD,MAAM,
|
|
1
|
+
{"version":3,"file":"bynara.js","sourceRoot":"","sources":["../../src/llm/bynara.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,15 +1,22 @@
|
|
|
1
1
|
import type { ProviderId } from "../types.js";
|
|
2
|
+
import type { ToolDialect, ToolCallingMode } from "./tool-protocol.js";
|
|
2
3
|
export declare function modelSupportsThinking(provider: ProviderId, model: string): boolean;
|
|
4
|
+
/** Provider discovery/user overrides can refresh capability knowledge at runtime. */
|
|
5
|
+
export declare function registerModelVisionCapability(input: {
|
|
6
|
+
provider: ProviderId;
|
|
7
|
+
model: string;
|
|
8
|
+
vision: boolean;
|
|
9
|
+
source?: "provider" | "user";
|
|
10
|
+
observedAt?: string;
|
|
11
|
+
}): void;
|
|
12
|
+
export declare function clearModelVisionCapabilities(): void;
|
|
13
|
+
export declare function visionCapabilitySource(provider: ProviderId, model: string): "provider" | "user" | "fallback-table";
|
|
3
14
|
/**
|
|
4
15
|
* Whether the given provider/model can accept image input. When true, the
|
|
5
16
|
* agent attaches real image bytes to the user message; when false, it falls
|
|
6
17
|
* back to a text note and OCR/inspection tools.
|
|
7
18
|
*/
|
|
8
19
|
export declare function modelSupportsVision(provider: ProviderId, model: string): boolean;
|
|
9
|
-
/**
|
|
10
|
-
* Return a same-provider vision model to use for an image request. If the
|
|
11
|
-
* current model already supports vision, it is returned unchanged. If the
|
|
12
|
-
* provider has no known vision fallback, returns undefined so callers can
|
|
13
|
-
* fall back to OCR/text notes.
|
|
14
|
-
*/
|
|
15
20
|
export declare function preferredVisionModel(provider: ProviderId, currentModel: string): string | undefined;
|
|
21
|
+
export declare function resolveToolDialect(provider: ProviderId, model: string, toolCalling?: ToolCallingMode): ToolDialect;
|
|
22
|
+
export declare function modelSupportsNativeTools(provider: ProviderId, model: string, toolCalling?: ToolCallingMode): boolean;
|
package/dist/llm/capabilities.js
CHANGED
|
@@ -1,3 +1,5 @@
|
|
|
1
|
+
import { isTextOnlyModel } from "./tool-protocol.js";
|
|
2
|
+
import { getConfig } from "../store/config.js";
|
|
1
3
|
// Patterns of model names that support an explicit reasoning/thinking
|
|
2
4
|
// toggle. The match is case-insensitive substring or regex.
|
|
3
5
|
const reasoningPatterns = {
|
|
@@ -43,9 +45,6 @@ export function modelSupportsThinking(provider, model) {
|
|
|
43
45
|
const patterns = reasoningPatterns[provider] ?? [];
|
|
44
46
|
return patterns.some((pattern) => pattern.test(model));
|
|
45
47
|
}
|
|
46
|
-
// Patterns of model names that accept image input (multimodal vision).
|
|
47
|
-
// Used to decide whether to send actual image bytes to the model (like
|
|
48
|
-
// Claude Code) versus falling back to a text note + OCR tools.
|
|
49
48
|
const visionPatterns = {
|
|
50
49
|
groq: [
|
|
51
50
|
// Llama 4 (scout/maverick) and llama-3.2 vision models on Groq.
|
|
@@ -108,24 +107,54 @@ const visionPatterns = {
|
|
|
108
107
|
/llama-4/i,
|
|
109
108
|
/qwen2?\.?5?-vl/i,
|
|
110
109
|
/glm-4\.?\d*v/i,
|
|
110
|
+
/glm-?5/i,
|
|
111
111
|
],
|
|
112
112
|
kimchi: [/kimi-k2/i, /minimax-m2/i, /minimax-m3/i, /nemotron-3-super/i],
|
|
113
|
-
"aws-mantle": [
|
|
113
|
+
"aws-mantle": [
|
|
114
|
+
/claude-(?:opus|sonnet|haiku)-(?:3|3-5|3-7|4|4-\d)/i,
|
|
115
|
+
/claude-3(?:-|\.|$)/i,
|
|
116
|
+
/gpt-4o/i,
|
|
117
|
+
/gpt-4\.1/i,
|
|
118
|
+
/gpt-5/i,
|
|
119
|
+
/gemini-/i,
|
|
120
|
+
/llama-4/i,
|
|
121
|
+
/qwen2?\.?5?-vl/i,
|
|
122
|
+
/qwen-vl/i,
|
|
123
|
+
/glm-4\.?\d*v/i,
|
|
124
|
+
/glm-?5/i,
|
|
125
|
+
/vision/i,
|
|
126
|
+
],
|
|
114
127
|
bynara: [/mimo-v2\.5-free/i, /mistral-medium-3-5/i],
|
|
115
128
|
"qwen-cloud": [/qwen3\.7-(?:plus|max)/i, /qwen3\.5-(?:plus|flash)/i, /qwen-vl/i],
|
|
116
129
|
};
|
|
130
|
+
const visionCapabilityCache = new Map();
|
|
131
|
+
const capabilityKey = (provider, model) => `${provider}:${model.trim().toLowerCase()}`;
|
|
132
|
+
/** Provider discovery/user overrides can refresh capability knowledge at runtime. */
|
|
133
|
+
export function registerModelVisionCapability(input) {
|
|
134
|
+
visionCapabilityCache.set(capabilityKey(input.provider, input.model), {
|
|
135
|
+
vision: input.vision,
|
|
136
|
+
source: input.source ?? "provider",
|
|
137
|
+
observedAt: input.observedAt ?? new Date().toISOString(),
|
|
138
|
+
});
|
|
139
|
+
}
|
|
140
|
+
export function clearModelVisionCapabilities() {
|
|
141
|
+
visionCapabilityCache.clear();
|
|
142
|
+
}
|
|
143
|
+
export function visionCapabilitySource(provider, model) {
|
|
144
|
+
return visionCapabilityCache.get(capabilityKey(provider, model))?.source ?? "fallback-table";
|
|
145
|
+
}
|
|
117
146
|
/**
|
|
118
147
|
* Whether the given provider/model can accept image input. When true, the
|
|
119
148
|
* agent attaches real image bytes to the user message; when false, it falls
|
|
120
149
|
* back to a text note and OCR/inspection tools.
|
|
121
150
|
*/
|
|
122
151
|
export function modelSupportsVision(provider, model) {
|
|
152
|
+
const cached = visionCapabilityCache.get(capabilityKey(provider, model));
|
|
153
|
+
if (cached)
|
|
154
|
+
return cached.vision;
|
|
123
155
|
const patterns = visionPatterns[provider] ?? [];
|
|
124
156
|
return patterns.some((pattern) => pattern.test(model));
|
|
125
157
|
}
|
|
126
|
-
// Fast same-provider fallback for image prompts when the user's selected
|
|
127
|
-
// model is text-only. This keeps drag-and-drop images working like Claude
|
|
128
|
-
// Code/Codex without changing the user's configured default model.
|
|
129
158
|
const preferredVisionModels = {
|
|
130
159
|
groq: "meta-llama/llama-4-scout-17b-16e-instruct",
|
|
131
160
|
gemini: "gemini-3.5-flash",
|
|
@@ -140,18 +169,89 @@ const preferredVisionModels = {
|
|
|
140
169
|
bynara: "mimo-v2.5-free",
|
|
141
170
|
"qwen-cloud": "qwen3.7-plus",
|
|
142
171
|
};
|
|
143
|
-
/**
|
|
144
|
-
* Return a same-provider vision model to use for an image request. If the
|
|
145
|
-
* current model already supports vision, it is returned unchanged. If the
|
|
146
|
-
* provider has no known vision fallback, returns undefined so callers can
|
|
147
|
-
* fall back to OCR/text notes.
|
|
148
|
-
*/
|
|
149
172
|
export function preferredVisionModel(provider, currentModel) {
|
|
150
173
|
if (modelSupportsVision(provider, currentModel))
|
|
151
174
|
return currentModel;
|
|
175
|
+
const envKey = `CLAI_VISION_MODEL_${provider.toUpperCase().replace(/-/g, "_")}`;
|
|
176
|
+
const override = process.env[envKey]?.trim();
|
|
177
|
+
if (override && modelSupportsVision(provider, override))
|
|
178
|
+
return override;
|
|
179
|
+
const discovered = [...visionCapabilityCache.entries()]
|
|
180
|
+
.filter(([key, value]) => key.startsWith(`${provider}:`) && value.vision)
|
|
181
|
+
.sort((a, b) => b[1].observedAt.localeCompare(a[1].observedAt))[0];
|
|
182
|
+
if (discovered)
|
|
183
|
+
return discovered[0].slice(provider.length + 1);
|
|
152
184
|
const fallback = preferredVisionModels[provider];
|
|
153
185
|
if (!fallback)
|
|
154
186
|
return undefined;
|
|
155
187
|
return modelSupportsVision(provider, fallback) ? fallback : undefined;
|
|
156
188
|
}
|
|
189
|
+
/** Default wire dialect for each provider. */
|
|
190
|
+
const providerToolDialect = {
|
|
191
|
+
openai: "openai",
|
|
192
|
+
groq: "openai",
|
|
193
|
+
openrouter: "openai",
|
|
194
|
+
nvidia: "openai",
|
|
195
|
+
agentrouter: "openai",
|
|
196
|
+
kimchi: "openai",
|
|
197
|
+
bynara: "openai",
|
|
198
|
+
"qwen-cloud": "openai",
|
|
199
|
+
anthropic: "anthropic",
|
|
200
|
+
"aws-mantle": "openai", // refined by model below
|
|
201
|
+
gemini: "gemini",
|
|
202
|
+
ollama: "ollama",
|
|
203
|
+
};
|
|
204
|
+
/** Known non-tool / embedding / tiny models (light denylist). */
|
|
205
|
+
const nativeToolsDenylist = [
|
|
206
|
+
/embed/i,
|
|
207
|
+
/embedding/i,
|
|
208
|
+
/whisper/i,
|
|
209
|
+
/tts/i,
|
|
210
|
+
/dall-e/i,
|
|
211
|
+
/moderation/i,
|
|
212
|
+
/text-embedding/i,
|
|
213
|
+
];
|
|
214
|
+
/** Ollama families known to support tools. */
|
|
215
|
+
const ollamaToolFamilies = [
|
|
216
|
+
/llama3\.1/i,
|
|
217
|
+
/llama3\.2/i,
|
|
218
|
+
/llama3\.3/i,
|
|
219
|
+
/llama-?4/i,
|
|
220
|
+
/qwen/i,
|
|
221
|
+
/mistral/i,
|
|
222
|
+
/command-r/i,
|
|
223
|
+
/firefunction/i,
|
|
224
|
+
/tool/i,
|
|
225
|
+
/nemotron/i,
|
|
226
|
+
/deepseek/i,
|
|
227
|
+
/gpt-oss/i,
|
|
228
|
+
/gemma3/i,
|
|
229
|
+
];
|
|
230
|
+
function isAwsMantleAnthropicModel(model) {
|
|
231
|
+
return /(?:^|[./-])(?:anthropic|claude)(?:[./-]|$)/i.test(model);
|
|
232
|
+
}
|
|
233
|
+
export function resolveToolDialect(provider, model, toolCalling) {
|
|
234
|
+
const mode = toolCalling ?? getConfig().toolCalling ?? "auto";
|
|
235
|
+
if (mode === "text")
|
|
236
|
+
return "none";
|
|
237
|
+
if (isTextOnlyModel(provider, model))
|
|
238
|
+
return "none";
|
|
239
|
+
if (nativeToolsDenylist.some((re) => re.test(model)))
|
|
240
|
+
return "none";
|
|
241
|
+
if (provider === "aws-mantle") {
|
|
242
|
+
return isAwsMantleAnthropicModel(model) ? "anthropic" : "openai";
|
|
243
|
+
}
|
|
244
|
+
if (provider === "ollama") {
|
|
245
|
+
if (mode === "native")
|
|
246
|
+
return "ollama";
|
|
247
|
+
// native-preferred: only attach for known tool-capable families
|
|
248
|
+
if (ollamaToolFamilies.some((re) => re.test(model)))
|
|
249
|
+
return "ollama";
|
|
250
|
+
return "none";
|
|
251
|
+
}
|
|
252
|
+
return providerToolDialect[provider] ?? "none";
|
|
253
|
+
}
|
|
254
|
+
export function modelSupportsNativeTools(provider, model, toolCalling) {
|
|
255
|
+
return resolveToolDialect(provider, model, toolCalling) !== "none";
|
|
256
|
+
}
|
|
157
257
|
//# sourceMappingURL=capabilities.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"capabilities.js","sourceRoot":"","sources":["../../src/llm/capabilities.ts"],"names":[],"mappings":"AAEA,sEAAsE;AACtE,4DAA4D;AAC5D,MAAM,iBAAiB,GAAiC;IACtD,IAAI,EAAE,CAAC,kBAAkB,EAAE,UAAU,CAAC;IACtC,MAAM,EAAE,CAAC,cAAc,EAAE,WAAW,EAAE,cAAc,CAAC;IACrD,UAAU,EAAE;QACV,YAAY;QACZ,cAAc;QACd,QAAQ;QACR,UAAU;QACV,iCAAiC;QACjC,QAAQ;QACR,SAAS;QACT,iBAAiB;KAClB;IACD,MAAM,EAAE,CAAC,QAAQ,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,CAAC;IACvC,SAAS,EAAE,CAAC,8CAA8C,EAAE,aAAa,CAAC;IAC1E,MAAM,EAAE;QACN,UAAU;QACV,cAAc;QACd,iBAAiB;QACjB,QAAQ;QACR,WAAW;QACX,SAAS;QACT,UAAU;KACX;IACD,MAAM,EAAE,CAAC,cAAc,EAAE,QAAQ,EAAE,MAAM,CAAC;IAC1C,WAAW,EAAE;QACX,QAAQ;QACR,iCAAiC;QACjC,wBAAwB;QACxB,YAAY;QACZ,QAAQ;QACR,UAAU;QACV,SAAS;KACV;IACD,MAAM,EAAE,CAAC,UAAU,EAAE,aAAa,EAAE,aAAa,EAAE,mBAAmB,CAAC;IACvE,YAAY,EAAE,CAAC,iCAAiC,CAAC;IACjD,MAAM,EAAE,CAAC,QAAQ,EAAE,cAAc,EAAE,cAAc,EAAE,aAAa,CAAC;IACjE,YAAY,EAAE,CAAC,QAAQ,EAAE,QAAQ,CAAC;CACnC,CAAC;AAEF,MAAM,UAAU,qBAAqB,CACnC,QAAoB,EACpB,KAAa;IAEb,MAAM,QAAQ,GAAG,iBAAiB,CAAC,QAAQ,CAAC,IAAI,EAAE,CAAC;IACnD,OAAO,QAAQ,CAAC,IAAI,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC;AACzD,CAAC;
|
|
1
|
+
{"version":3,"file":"capabilities.js","sourceRoot":"","sources":["../../src/llm/capabilities.ts"],"names":[],"mappings":"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"}
|
package/dist/llm/gemini.js
CHANGED
|
@@ -1,36 +1,9 @@
|
|
|
1
1
|
import { defaultModels, } from "./provider.js";
|
|
2
2
|
import { ProviderError, readJson, readStreamLines } from "./http.js";
|
|
3
|
+
import { geminiToolBodyFields, parseGeminiFunctionCalls, toGeminiToolContents, } from "./adapters/gemini-tools.js";
|
|
4
|
+
import { fromWireName } from "./tool-protocol.js";
|
|
3
5
|
function geminiContents(messages) {
|
|
4
|
-
|
|
5
|
-
for (const message of messages) {
|
|
6
|
-
if (message.role === "system")
|
|
7
|
-
continue;
|
|
8
|
-
const role = message.role === "assistant" ? "model" : "user";
|
|
9
|
-
const parts = [];
|
|
10
|
-
if (message.content.trim())
|
|
11
|
-
parts.push({ text: message.content });
|
|
12
|
-
if (role === "user" && message.images) {
|
|
13
|
-
for (const img of message.images) {
|
|
14
|
-
parts.push({
|
|
15
|
-
inlineData: { mimeType: img.mediaType, data: img.dataBase64 },
|
|
16
|
-
});
|
|
17
|
-
}
|
|
18
|
-
}
|
|
19
|
-
// Never serialize an empty content part. Apart from being meaningless,
|
|
20
|
-
// Gemini can subsequently return empty candidates after an empty `model`
|
|
21
|
-
// turn. If a caller omitted an assistant turn, merge the adjacent user
|
|
22
|
-
// instructions instead to retain Gemini's alternating-role invariant.
|
|
23
|
-
if (parts.length === 0)
|
|
24
|
-
continue;
|
|
25
|
-
const previous = contents.at(-1);
|
|
26
|
-
if (previous?.role === role) {
|
|
27
|
-
previous.parts.push(...parts);
|
|
28
|
-
}
|
|
29
|
-
else {
|
|
30
|
-
contents.push({ role, parts });
|
|
31
|
-
}
|
|
32
|
-
}
|
|
33
|
-
return contents;
|
|
6
|
+
return toGeminiToolContents(messages);
|
|
34
7
|
}
|
|
35
8
|
function systemInstruction(messages) {
|
|
36
9
|
const system = messages.find((message) => message.role === "system");
|
|
@@ -99,6 +72,10 @@ export function geminiBody(request) {
|
|
|
99
72
|
? { thinkingConfig }
|
|
100
73
|
: {}),
|
|
101
74
|
},
|
|
75
|
+
...geminiToolBodyFields({
|
|
76
|
+
tools: request.tools,
|
|
77
|
+
toolChoice: request.toolChoice,
|
|
78
|
+
}),
|
|
102
79
|
};
|
|
103
80
|
const sys = systemInstruction(request.messages);
|
|
104
81
|
if (sys)
|
|
@@ -147,16 +124,24 @@ export const geminiProvider = {
|
|
|
147
124
|
.map((part) => part.text ?? "")
|
|
148
125
|
.join("")
|
|
149
126
|
.trim();
|
|
150
|
-
const
|
|
151
|
-
|
|
152
|
-
.map((part) => part.text ?? "")
|
|
153
|
-
.join("")
|
|
154
|
-
.trim();
|
|
155
|
-
if (!text) {
|
|
127
|
+
const parsed = parseGeminiFunctionCalls(parts);
|
|
128
|
+
if (!parsed.text && parsed.toolCalls.length === 0) {
|
|
156
129
|
throw new ProviderError("Gemini completed without a visible answer.");
|
|
157
130
|
}
|
|
158
|
-
const final = thought
|
|
159
|
-
|
|
131
|
+
const final = thought
|
|
132
|
+
? `<think>${thought}</think>${parsed.text}`
|
|
133
|
+
: parsed.text;
|
|
134
|
+
return {
|
|
135
|
+
text: final,
|
|
136
|
+
provider: "gemini",
|
|
137
|
+
model,
|
|
138
|
+
...(parsed.toolCalls.length ? { toolCalls: parsed.toolCalls } : {}),
|
|
139
|
+
...(data.candidates?.[0]?.finishReason
|
|
140
|
+
? { finishReason: data.candidates[0].finishReason }
|
|
141
|
+
: parsed.toolCalls.length
|
|
142
|
+
? { finishReason: "tool_calls" }
|
|
143
|
+
: {}),
|
|
144
|
+
};
|
|
160
145
|
},
|
|
161
146
|
async stream(request, auth, onToken) {
|
|
162
147
|
if (!auth.apiKey)
|
|
@@ -177,6 +162,8 @@ export const geminiProvider = {
|
|
|
177
162
|
let full = "";
|
|
178
163
|
let visible = "";
|
|
179
164
|
let inThought = false;
|
|
165
|
+
const collectedParts = [];
|
|
166
|
+
let finishReason;
|
|
180
167
|
const enterThought = () => {
|
|
181
168
|
if (inThought)
|
|
182
169
|
return;
|
|
@@ -198,17 +185,32 @@ export const geminiProvider = {
|
|
|
198
185
|
if (!trimmed.startsWith("data:"))
|
|
199
186
|
continue;
|
|
200
187
|
const payload = trimmed.slice(5).trim();
|
|
201
|
-
if (payload === "[DONE]")
|
|
202
|
-
|
|
203
|
-
if (!visible.trim()) {
|
|
204
|
-
throw new ProviderError("Gemini completed without a visible answer.");
|
|
205
|
-
}
|
|
206
|
-
return { text: full, provider: "gemini", model };
|
|
207
|
-
}
|
|
188
|
+
if (payload === "[DONE]")
|
|
189
|
+
break;
|
|
208
190
|
try {
|
|
209
191
|
const parsed = JSON.parse(payload);
|
|
210
|
-
const
|
|
192
|
+
const candidate = parsed.candidates?.[0];
|
|
193
|
+
if (candidate?.finishReason)
|
|
194
|
+
finishReason = candidate.finishReason;
|
|
195
|
+
const parts = candidate?.content?.parts ?? [];
|
|
211
196
|
for (const part of parts) {
|
|
197
|
+
collectedParts.push(part);
|
|
198
|
+
if (part.functionCall) {
|
|
199
|
+
if (request.onToolCallDelta && part.functionCall.name) {
|
|
200
|
+
const idx = collectedParts.filter((p) => p.functionCall).length - 1;
|
|
201
|
+
const wire = part.functionCall.name;
|
|
202
|
+
request.onToolCallDelta({
|
|
203
|
+
index: idx,
|
|
204
|
+
...(part.functionCall.id
|
|
205
|
+
? { id: part.functionCall.id }
|
|
206
|
+
: {}),
|
|
207
|
+
name: fromWireName(wire) ?? wire,
|
|
208
|
+
argumentsBytes: JSON.stringify(part.functionCall.args ?? {})
|
|
209
|
+
.length,
|
|
210
|
+
});
|
|
211
|
+
}
|
|
212
|
+
continue;
|
|
213
|
+
}
|
|
212
214
|
if (!part.text)
|
|
213
215
|
continue;
|
|
214
216
|
if (part.thought) {
|
|
@@ -230,10 +232,23 @@ export const geminiProvider = {
|
|
|
230
232
|
}
|
|
231
233
|
}
|
|
232
234
|
exitThought();
|
|
233
|
-
|
|
235
|
+
const toolParsed = parseGeminiFunctionCalls(collectedParts);
|
|
236
|
+
if (!visible.trim() && toolParsed.toolCalls.length === 0) {
|
|
234
237
|
throw new ProviderError("Gemini completed without a visible answer.");
|
|
235
238
|
}
|
|
236
|
-
return {
|
|
239
|
+
return {
|
|
240
|
+
text: full,
|
|
241
|
+
provider: "gemini",
|
|
242
|
+
model,
|
|
243
|
+
...(toolParsed.toolCalls.length
|
|
244
|
+
? { toolCalls: toolParsed.toolCalls }
|
|
245
|
+
: {}),
|
|
246
|
+
...(finishReason
|
|
247
|
+
? { finishReason }
|
|
248
|
+
: toolParsed.toolCalls.length
|
|
249
|
+
? { finishReason: "tool_calls" }
|
|
250
|
+
: {}),
|
|
251
|
+
};
|
|
237
252
|
},
|
|
238
253
|
};
|
|
239
254
|
//# sourceMappingURL=gemini.js.map
|
package/dist/llm/gemini.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"gemini.js","sourceRoot":"","sources":["../../src/llm/gemini.ts"],"names":[],"mappings":"AAMA,OAAO,EACL,aAAa,GAGd,MAAM,eAAe,CAAC;AACvB,OAAO,EAAE,aAAa,EAAE,QAAQ,EAAE,eAAe,EAAE,MAAM,WAAW,CAAC;
|
|
1
|
+
{"version":3,"file":"gemini.js","sourceRoot":"","sources":["../../src/llm/gemini.ts"],"names":[],"mappings":"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"}
|
package/dist/llm/groq.js
CHANGED
|
@@ -12,12 +12,6 @@ export const groqFallbackModels = [
|
|
|
12
12
|
"groq/compound-mini",
|
|
13
13
|
"groq/compound",
|
|
14
14
|
];
|
|
15
|
-
/**
|
|
16
|
-
* Conservative input budgets for Groq models whose free-tier TPM limit is
|
|
17
|
-
* smaller than clai's normal agent prompt. Leave room for the current user
|
|
18
|
-
* message and protocol overhead instead of treating the published TPM number
|
|
19
|
-
* as usable prompt space.
|
|
20
|
-
*/
|
|
21
15
|
const groqInputTokenBudgets = [
|
|
22
16
|
{ pattern: /qwen\/qwen3-32b/i, tokens: 5_500 },
|
|
23
17
|
{ pattern: /openai\/gpt-oss-20b/i, tokens: 7_500 },
|
|
@@ -85,7 +79,7 @@ export const groqProvider = {
|
|
|
85
79
|
if (!auth.apiKey)
|
|
86
80
|
throw new Error("Groq API key is required");
|
|
87
81
|
const model = request.model ?? defaultModels.groq;
|
|
88
|
-
const
|
|
82
|
+
const payload = await openAiCompatibleComplete({
|
|
89
83
|
provider: "Groq",
|
|
90
84
|
baseUrl,
|
|
91
85
|
apiKey: auth.apiKey,
|
|
@@ -96,14 +90,23 @@ export const groqProvider = {
|
|
|
96
90
|
signal: request.signal,
|
|
97
91
|
reasoning: request.thinking,
|
|
98
92
|
reasoningStyle: "groq",
|
|
93
|
+
tools: request.tools,
|
|
94
|
+
toolChoice: request.toolChoice,
|
|
95
|
+
parallelToolCalls: request.parallelToolCalls,
|
|
99
96
|
});
|
|
100
|
-
return {
|
|
97
|
+
return {
|
|
98
|
+
text: payload.text,
|
|
99
|
+
provider: "groq",
|
|
100
|
+
model,
|
|
101
|
+
...(payload.toolCalls?.length ? { toolCalls: payload.toolCalls } : {}),
|
|
102
|
+
...(payload.finishReason ? { finishReason: payload.finishReason } : {}),
|
|
103
|
+
};
|
|
101
104
|
},
|
|
102
105
|
async stream(request, auth, onToken) {
|
|
103
106
|
if (!auth.apiKey)
|
|
104
107
|
throw new Error("Groq API key is required");
|
|
105
108
|
const model = request.model ?? defaultModels.groq;
|
|
106
|
-
const
|
|
109
|
+
const payload = await openAiCompatibleStream({
|
|
107
110
|
provider: "Groq",
|
|
108
111
|
baseUrl,
|
|
109
112
|
apiKey: auth.apiKey,
|
|
@@ -113,10 +116,20 @@ export const groqProvider = {
|
|
|
113
116
|
temperature: request.temperature,
|
|
114
117
|
signal: request.signal,
|
|
115
118
|
onToken,
|
|
119
|
+
onToolCallDelta: request.onToolCallDelta,
|
|
116
120
|
reasoning: request.thinking,
|
|
117
121
|
reasoningStyle: "groq",
|
|
122
|
+
tools: request.tools,
|
|
123
|
+
toolChoice: request.toolChoice,
|
|
124
|
+
parallelToolCalls: request.parallelToolCalls,
|
|
118
125
|
});
|
|
119
|
-
return {
|
|
126
|
+
return {
|
|
127
|
+
text: payload.text,
|
|
128
|
+
provider: "groq",
|
|
129
|
+
model,
|
|
130
|
+
...(payload.toolCalls?.length ? { toolCalls: payload.toolCalls } : {}),
|
|
131
|
+
...(payload.finishReason ? { finishReason: payload.finishReason } : {}),
|
|
132
|
+
};
|
|
120
133
|
},
|
|
121
134
|
};
|
|
122
135
|
//# sourceMappingURL=groq.js.map
|
package/dist/llm/groq.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"groq.js","sourceRoot":"","sources":["../../src/llm/groq.ts"],"names":[],"mappings":"AACA,OAAO,EACL,aAAa,GAGd,MAAM,eAAe,CAAC;AACvB,OAAO,EACL,wBAAwB,EACxB,oBAAoB,EACpB,sBAAsB,EACtB,QAAQ,GACT,MAAM,WAAW,CAAC;AAEnB,MAAM,OAAO,GAAG,gCAAgC,CAAC;AAEjD,MAAM,CAAC,MAAM,kBAAkB,GAAG;IAChC,oBAAoB;IACpB,qBAAqB;IACrB,8BAA8B;IAC9B,gBAAgB;IAChB,yBAAyB;IACzB,sBAAsB;IACtB,2CAA2C;IAC3C,oBAAoB;IACpB,eAAe;CAChB,CAAC;
|
|
1
|
+
{"version":3,"file":"groq.js","sourceRoot":"","sources":["../../src/llm/groq.ts"],"names":[],"mappings":"AACA,OAAO,EACL,aAAa,GAGd,MAAM,eAAe,CAAC;AACvB,OAAO,EACL,wBAAwB,EACxB,oBAAoB,EACpB,sBAAsB,EACtB,QAAQ,GACT,MAAM,WAAW,CAAC;AAEnB,MAAM,OAAO,GAAG,gCAAgC,CAAC;AAEjD,MAAM,CAAC,MAAM,kBAAkB,GAAG;IAChC,oBAAoB;IACpB,qBAAqB;IACrB,8BAA8B;IAC9B,gBAAgB;IAChB,yBAAyB;IACzB,sBAAsB;IACtB,2CAA2C;IAC3C,oBAAoB;IACpB,eAAe;CAChB,CAAC;AAGF,MAAM,qBAAqB,GAA+C;IACxE,EAAE,OAAO,EAAE,kBAAkB,EAAE,MAAM,EAAE,KAAK,EAAE;IAC9C,EAAE,OAAO,EAAE,sBAAsB,EAAE,MAAM,EAAE,KAAK,EAAE;CACnD,CAAC;AAEF,MAAM,UAAU,oBAAoB,CAAC,KAAa;IAChD,OAAO,qBAAqB,CAAC,IAAI,CAAC,CAAC,EAAE,OAAO,EAAE,EAAE,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QACrE,EAAE,MAAM,CAAC;AACb,CAAC;AAED,IAAI,YAAY,GAAoB,IAAI,CAAC;AACzC,IAAI,aAAa,GAAG,CAAC,CAAC;AACtB,MAAM,YAAY,GAAG,EAAE,GAAG,EAAE,GAAG,IAAI,CAAC,CAAC,mBAAmB;AAExD,MAAM,UAAU,aAAa,CAC3B,KAAa,EACb,SAA6B;IAE7B,MAAM,CAAC,GAAG,KAAK,CAAC,WAAW,EAAE,CAAC;IAC9B,MAAM,GAAG,GAAG,sBAAsB,CAAC,IAAI,CAAC,CAAC,CAAC;QACxC,CAAC,CAAC,KAAK;QACP,CAAC,CAAC,qCAAqC,CAAC,IAAI,CAAC,CAAC,CAAC;YAC7C,CAAC,CAAC,KAAK;YACP,CAAC,CAAC,SAAS,CAAC;IAChB,IAAI,CAAC,GAAG;QAAE,OAAO,SAAS,CAAC;IAC3B,OAAO,IAAI,CAAC,GAAG,CAAC,SAAS,IAAI,GAAG,EAAE,GAAG,CAAC,CAAC;AACzC,CAAC;AAED,MAAM,CAAC,MAAM,YAAY,GAAgB;IACvC,EAAE,EAAE,MAAM;IACV,WAAW,EAAE,MAAM;IACnB,YAAY,EAAE,aAAa,CAAC,IAAI;IAChC,MAAM,EAAE,cAAc;IACtB,WAAW,EAAE,CAAC,GAAW,EAAE,EAAE,CAAC,yBAAyB,CAAC,IAAI,CAAC,GAAG,CAAC;IACjE,KAAK,CAAC,UAAU,CAAC,IAAkB;QACjC,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC;YACjB,OAAO,kBAAkB,CAAC;QAC5B,CAAC;QACD,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;QACvB,IAAI,YAAY,IAAI,GAAG,GAAG,aAAa,GAAG,YAAY,EAAE,CAAC;YACvD,OAAO,YAAY,CAAC;QACtB,CAAC;QACD,IAAI,CAAC;YACH,MAAM,QAAQ,GAAG,MAAM,KAAK,CAAC,GAAG,OAAO,SAAS,EAAE;gBAChD,OAAO,EAAE;oBACP,aAAa,EAAE,UAAU,IAAI,CAAC,MAAM,EAAE;iBACvC;aACF,CAAC,CAAC;YACH,IAAI,CAAC,QAAQ,CAAC,EAAE,EAAE,CAAC;gBACjB,MAAM,IAAI,KAAK,CAAC,QAAQ,QAAQ,CAAC,MAAM,IAAI,QAAQ,CAAC,UAAU,EAAE,CAAC,CAAC;YACpE,CAAC;YACD,MAAM,IAAI,GAAG,MAAM,QAAQ,CAAmC,QAAQ,CAAC,CAAC;YACxE,MAAM,MAAM,GAAG,IAAI,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,IAAI,EAAE,IAAI,EAAE,CAAC;YACxD,IAAI,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBACtB,YAAY,GAAG,MAAM,CAAC;gBACtB,aAAa,GAAG,GAAG,CAAC;gBACpB,OAAO,MAAM,CAAC;YAChB,CAAC;YACD,OAAO,kBAAkB,CAAC;QAC5B,CAAC;QAAC,MAAM,CAAC;YACP,OAAO,kBAAkB,CAAC;QAC5B,CAAC;IACH,CAAC;IACD,KAAK,CAAC,IAAI,CAAC,IAAkB;QAC3B,IAAI,CAAC,IAAI,CAAC,MAAM;YAAE,MAAM,IAAI,KAAK,CAAC,0BAA0B,CAAC,CAAC;QAC9D,MAAM,oBAAoB,CAAC,OAAO,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC;IACnD,CAAC;IACD,KAAK,CAAC,QAAQ,CACZ,OAA0B,EAC1B,IAAkB;QAElB,IAAI,CAAC,IAAI,CAAC,MAAM;YAAE,MAAM,IAAI,KAAK,CAAC,0BAA0B,CAAC,CAAC;QAC9D,MAAM,KAAK,GAAG,OAAO,CAAC,KAAK,IAAI,aAAa,CAAC,IAAI,CAAC;QAClD,MAAM,OAAO,GAAG,MAAM,wBAAwB,CAAC;YAC7C,QAAQ,EAAE,MAAM;YAChB,OAAO;YACP,MAAM,EAAE,IAAI,CAAC,MAAM;YACnB,KAAK;YACL,QAAQ,EAAE,OAAO,CAAC,QAAQ;YAC1B,SAAS,EAAE,aAAa,CAAC,KAAK,EAAE,OAAO,CAAC,SAAS,CAAC;YAClD,WAAW,EAAE,OAAO,CAAC,WAAW;YAChC,MAAM,EAAE,OAAO,CAAC,MAAM;YACtB,SAAS,EAAE,OAAO,CAAC,QAAQ;YAC3B,cAAc,EAAE,MAAM;YACtB,KAAK,EAAE,OAAO,CAAC,KAAK;YACpB,UAAU,EAAE,OAAO,CAAC,UAAU;YAC9B,iBAAiB,EAAE,OAAO,CAAC,iBAAiB;SAC7C,CAAC,CAAC;QACH,OAAO;YACL,IAAI,EAAE,OAAO,CAAC,IAAI;YAClB,QAAQ,EAAE,MAAM;YAChB,KAAK;YACL,GAAG,CAAC,OAAO,CAAC,SAAS,EAAE,MAAM,CAAC,CAAC,CAAC,EAAE,SAAS,EAAE,OAAO,CAAC,SAAS,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;YACtE,GAAG,CAAC,OAAO,CAAC,YAAY,CAAC,CAAC,CAAC,EAAE,YAAY,EAAE,OAAO,CAAC,YAAY,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;SACxE,CAAC;IACJ,CAAC;IACD,KAAK,CAAC,MAAM,CACV,OAA0B,EAC1B,IAAkB,EAClB,OAAgC;QAEhC,IAAI,CAAC,IAAI,CAAC,MAAM;YAAE,MAAM,IAAI,KAAK,CAAC,0BAA0B,CAAC,CAAC;QAC9D,MAAM,KAAK,GAAG,OAAO,CAAC,KAAK,IAAI,aAAa,CAAC,IAAI,CAAC;QAClD,MAAM,OAAO,GAAG,MAAM,sBAAsB,CAAC;YAC3C,QAAQ,EAAE,MAAM;YAChB,OAAO;YACP,MAAM,EAAE,IAAI,CAAC,MAAM;YACnB,KAAK;YACL,QAAQ,EAAE,OAAO,CAAC,QAAQ;YAC1B,SAAS,EAAE,aAAa,CAAC,KAAK,EAAE,OAAO,CAAC,SAAS,CAAC;YAClD,WAAW,EAAE,OAAO,CAAC,WAAW;YAChC,MAAM,EAAE,OAAO,CAAC,MAAM;YACtB,OAAO;YACP,eAAe,EAAE,OAAO,CAAC,eAAe;YACxC,SAAS,EAAE,OAAO,CAAC,QAAQ;YAC3B,cAAc,EAAE,MAAM;YACtB,KAAK,EAAE,OAAO,CAAC,KAAK;YACpB,UAAU,EAAE,OAAO,CAAC,UAAU;YAC9B,iBAAiB,EAAE,OAAO,CAAC,iBAAiB;SAC7C,CAAC,CAAC;QACH,OAAO;YACL,IAAI,EAAE,OAAO,CAAC,IAAI;YAClB,QAAQ,EAAE,MAAM;YAChB,KAAK;YACL,GAAG,CAAC,OAAO,CAAC,SAAS,EAAE,MAAM,CAAC,CAAC,CAAC,EAAE,SAAS,EAAE,OAAO,CAAC,SAAS,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;YACtE,GAAG,CAAC,OAAO,CAAC,YAAY,CAAC,CAAC,CAAC,EAAE,YAAY,EAAE,OAAO,CAAC,YAAY,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;SACxE,CAAC;IACJ,CAAC;CACF,CAAC"}
|
package/dist/llm/http.d.ts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import type { ChatMessage, ReasoningPreference } from "../types.js";
|
|
1
|
+
import type { ChatMessage, NativeToolCall, ReasoningPreference, ToolChoice, ToolDefinition } from "../types.js";
|
|
2
2
|
export declare class ProviderError extends Error {
|
|
3
3
|
readonly status?: number | undefined;
|
|
4
4
|
readonly body?: string | undefined;
|
|
@@ -8,18 +8,6 @@ export declare class ProviderError extends Error {
|
|
|
8
8
|
export declare function readJson<T>(response: Response): Promise<T>;
|
|
9
9
|
/** Default no-byte watchdog for provider streams. */
|
|
10
10
|
export declare const DEFAULT_STREAM_IDLE_TIMEOUT_MS = 30000;
|
|
11
|
-
/**
|
|
12
|
-
* Shared SSE/JSONL stream reader. Wraps a fetch response body in:
|
|
13
|
-
* - an idle watchdog (default 30s, configurable per call) that aborts
|
|
14
|
-
* when no bytes arrive,
|
|
15
|
-
* - a hard total-byte cap (default 16MB) so a runaway provider can't
|
|
16
|
-
* grow our memory unbounded,
|
|
17
|
-
* - a caller-provided abort signal.
|
|
18
|
-
*
|
|
19
|
-
* Yields lines as they arrive. Caller is responsible for parsing JSON /
|
|
20
|
-
* SSE `data:` framing. Cleans up timers and reader locks on every exit
|
|
21
|
-
* path so callers don't have to.
|
|
22
|
-
*/
|
|
23
11
|
export interface StreamLineReaderOptions {
|
|
24
12
|
signal?: AbortSignal | undefined;
|
|
25
13
|
idleTimeoutMs?: number | undefined;
|
|
@@ -29,20 +17,13 @@ export interface StreamLineReaderOptions {
|
|
|
29
17
|
onActivity?: (() => void) | undefined;
|
|
30
18
|
}
|
|
31
19
|
export declare function readStreamLines(response: Response, options?: StreamLineReaderOptions): AsyncGenerator<string, void, void>;
|
|
32
|
-
|
|
33
|
-
|
|
20
|
+
/** Result of OpenAI-compatible complete/stream (text + optional native tools). */
|
|
21
|
+
export interface OpenAiCompatibleResult {
|
|
34
22
|
text: string;
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
detail: "high";
|
|
40
|
-
};
|
|
41
|
-
};
|
|
42
|
-
export declare function toOpenAiMessages(messages: ChatMessage[], supportsVision?: boolean): Array<{
|
|
43
|
-
role: string;
|
|
44
|
-
content: string | OpenAiContentPart[];
|
|
45
|
-
}>;
|
|
23
|
+
toolCalls?: NativeToolCall[] | undefined;
|
|
24
|
+
finishReason?: string | undefined;
|
|
25
|
+
}
|
|
26
|
+
export declare function toOpenAiMessages(messages: ChatMessage[], supportsVision?: boolean): Array<Record<string, unknown>>;
|
|
46
27
|
export type ReasoningStyle = "openai" | "nvidia" | "groq" | "openrouter" | "none";
|
|
47
28
|
export type NvidiaReasoningKind = "kimi-thinking" | "deepseek-v4" | "thinking" | "nemotron-3" | "glm-thinking" | "enable-thinking" | "effort-only" | "none";
|
|
48
29
|
export declare function classifyNvidiaModel(model: string): NvidiaReasoningKind;
|
|
@@ -59,7 +40,10 @@ export declare function openAiCompatibleComplete(options: {
|
|
|
59
40
|
signal?: AbortSignal | undefined;
|
|
60
41
|
reasoning?: ReasoningPreference | undefined;
|
|
61
42
|
reasoningStyle?: ReasoningStyle | undefined;
|
|
62
|
-
|
|
43
|
+
tools?: ToolDefinition[] | undefined;
|
|
44
|
+
toolChoice?: ToolChoice | undefined;
|
|
45
|
+
parallelToolCalls?: boolean | undefined;
|
|
46
|
+
}): Promise<OpenAiCompatibleResult>;
|
|
63
47
|
export declare function openAiCompatibleStream(options: {
|
|
64
48
|
provider: string;
|
|
65
49
|
baseUrl: string;
|
|
@@ -73,14 +57,18 @@ export declare function openAiCompatibleStream(options: {
|
|
|
73
57
|
onToken: (token: string) => void;
|
|
74
58
|
reasoning?: ReasoningPreference | undefined;
|
|
75
59
|
reasoningStyle?: ReasoningStyle | undefined;
|
|
60
|
+
tools?: ToolDefinition[] | undefined;
|
|
61
|
+
toolChoice?: ToolChoice | undefined;
|
|
62
|
+
parallelToolCalls?: boolean | undefined;
|
|
63
|
+
/** Early native tool-call name/args progress (P2-3). */
|
|
64
|
+
onToolCallDelta?: ((delta: {
|
|
65
|
+
index: number;
|
|
66
|
+
id?: string;
|
|
67
|
+
name?: string;
|
|
68
|
+
argumentsBytes?: number;
|
|
69
|
+
}) => void) | undefined;
|
|
76
70
|
/** Abort a stream that produces no bytes for this long. Default 30s. */
|
|
77
71
|
idleTimeoutMs?: number | undefined;
|
|
78
|
-
/**
|
|
79
|
-
* Allow a slower cold start before the first SSE byte. Once streaming has
|
|
80
|
-
* begun, `idleTimeoutMs` takes over so a wedged connection still aborts
|
|
81
|
-
* promptly. Defaults to the regular idle timeout.
|
|
82
|
-
*/
|
|
83
72
|
initialIdleTimeoutMs?: number | undefined;
|
|
84
|
-
}): Promise<
|
|
73
|
+
}): Promise<OpenAiCompatibleResult>;
|
|
85
74
|
export declare function openAiCompatiblePing(baseUrl: string, apiKey: string, headers?: Record<string, string> | undefined): Promise<void>;
|
|
86
|
-
export {};
|