shortcutxl 0.3.76 → 0.3.78
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/BINARY-INVENTORY.json +813 -813
- package/CHANGELOG.md +14 -0
- package/dist/ai/models.d.ts +10 -6
- package/dist/ai/models.generated.d.ts +72 -0
- package/dist/ai/models.generated.js +33 -0
- package/dist/ai/models.js +36 -13
- package/dist/ai/providers/anthropic.d.ts +4 -2
- package/dist/ai/providers/anthropic.js +59 -29
- package/dist/ai/providers/azure-openai-responses.d.ts +2 -1
- package/dist/ai/providers/azure-openai-responses.js +4 -20
- package/dist/ai/providers/google-vertex.d.ts +8 -2
- package/dist/ai/providers/google-vertex.js +66 -54
- package/dist/ai/providers/google.js +15 -48
- package/dist/ai/providers/openai-completions.d.ts +4 -1
- package/dist/ai/providers/openai-completions.js +26 -10
- package/dist/ai/providers/openai-reasoning.d.ts +5 -0
- package/dist/ai/providers/openai-reasoning.js +13 -0
- package/dist/ai/providers/openai-responses-shared.js +1 -1
- package/dist/ai/providers/openai-responses.d.ts +6 -2
- package/dist/ai/providers/openai-responses.js +28 -23
- package/dist/ai/providers/simple-options.d.ts +2 -3
- package/dist/ai/providers/simple-options.js +4 -6
- package/dist/ai/types.d.ts +19 -2
- package/dist/app/agent-session-runtime-adapter.js +7 -6
- package/dist/app/agent-session.d.ts +0 -15
- package/dist/app/agent-session.js +0 -37
- package/dist/app/approvals/approval-errors.d.ts +15 -0
- package/dist/app/approvals/approval-errors.js +14 -0
- package/dist/app/approvals/runtime-approval-gates.d.ts +1 -2
- package/dist/app/approvals/tool-approval.d.ts +1 -0
- package/dist/app/approvals/tool-approval.js +11 -23
- package/dist/app/approvals/types.d.ts +0 -14
- package/dist/app/approvals/types.js +0 -2
- package/dist/app/background/tool-summaries.js +0 -2
- package/dist/app/extensions/slash-commands.js +1 -3
- package/dist/app/local/tools/execute-code/executor.d.ts +1 -1
- package/dist/app/local/tools/execute-code/executor.js +20 -10
- package/dist/app/local/tools/execute-code/tool.js +21 -2
- package/dist/app/modes/action/agent.js +4 -5
- package/dist/app/modes/ask/agent.js +4 -6
- package/dist/app/modes/index.js +20 -10
- package/dist/app/modes/installation/agent.js +4 -5
- package/dist/app/modes/manage/agent.js +3 -4
- package/dist/app/modes/manage/prompt.js +1 -2
- package/dist/app/modes/metadata.d.ts +31 -0
- package/dist/app/modes/metadata.js +35 -0
- package/dist/app/modes/plan/agent.js +5 -8
- package/dist/app/modes/plan/prompt.js +3 -3
- package/dist/app/permissions/runtime-approval-flow.d.ts +1 -5
- package/dist/app/permissions/runtime-approval-flow.js +0 -28
- package/dist/app/permissions/tool-gates.d.ts +2 -3
- package/dist/app/permissions/tool-gates.js +3 -81
- package/dist/app/prompts/com-api.js +1 -1
- package/dist/app/prompts/shared-guidelines.js +7 -3
- package/dist/app/providers/google-vertex-gateway.js +4 -51
- package/dist/app/providers/model-registry.d.ts +1 -0
- package/dist/app/providers/model-registry.js +39 -0
- package/dist/app/providers/model-resolver.js +10 -7
- package/dist/app/providers/register-shortcut-provider.js +6 -6
- package/dist/app/providers/shortcut-api-v2-transport.js +4 -0
- package/dist/app/providers/shortcut-llm-proxy-client.d.ts +2 -2
- package/dist/app/providers/shortcut-llm-proxy-client.js +1 -0
- package/dist/app/resources/package-manager.js +2 -123
- package/dist/app/resources/resource-patterns.d.ts +9 -0
- package/dist/app/resources/resource-patterns.js +120 -0
- package/dist/app/session/forked-agent.d.ts +2 -2
- package/dist/app/session/model-manager.js +3 -2
- package/dist/app/session/session-lifecycle.js +3 -2
- package/dist/app/session/session-models.d.ts +2 -0
- package/dist/app/session/session-models.js +14 -6
- package/dist/app/settings-manager.d.ts +3 -3
- package/dist/app/shared/tools/execute-code/mog.d.ts +3 -1
- package/dist/app/shared/tools/execute-code/mog.js +18 -2
- package/dist/app/tools/bash.js +3 -3
- package/dist/app/tools/execute-code/index.d.ts +1 -0
- package/dist/app/tools/execute-code/index.js +3 -1
- package/dist/app/tools/find-ignore-files.d.ts +3 -0
- package/dist/app/tools/find-ignore-files.js +33 -0
- package/dist/app/tools/find.js +2 -21
- package/dist/app/tools/llm-analysis.js +0 -2
- package/dist/app/tools/refresh-context.d.ts +1 -1
- package/dist/app/tools/session-settings/update-session-settings.js +2 -2
- package/dist/app/tools/switch-mode.js +2 -2
- package/dist/app/tools/take-screenshot.js +0 -2
- package/dist/app/tools/task/runner.js +1 -2
- package/dist/app/tools/task/task.d.ts +1 -3
- package/dist/app/tools/task/task.js +20 -40
- package/dist/app/tools/web-search.js +12 -2
- package/dist/autocomplete/core.d.ts +33 -0
- package/dist/autocomplete/core.js +113 -0
- package/dist/{tui → autocomplete}/fuzzy.d.ts +0 -1
- package/dist/{tui → autocomplete}/fuzzy.js +0 -1
- package/dist/{tui/autocomplete.d.ts → autocomplete/index.d.ts} +0 -1
- package/dist/{tui/autocomplete.js → autocomplete/index.js} +62 -158
- package/dist/cli/args.js +1 -1
- package/dist/cli/list-models.js +1 -1
- package/dist/cli.js +26227 -30480
- package/dist/constants.d.ts +0 -2
- package/dist/constants.js +0 -3
- package/dist/contracts/agent-session-store.d.ts +1 -1
- package/dist/contracts/agent-settings.d.ts +1 -0
- package/dist/contracts/agent-settings.js +2 -1
- package/dist/contracts/model-call.d.ts +1 -2
- package/dist/contracts/model-call.js +1 -2
- package/dist/contracts/model-stream.d.ts +1 -0
- package/dist/contracts/model-stream.js +1 -0
- package/dist/contracts/wire.d.ts +10 -7
- package/dist/contracts/wire.js +8 -0
- package/dist/core/agent-engine.js +1 -1
- package/dist/core/core-types.d.ts +1 -21
- package/dist/core/defaults.d.ts +1 -1
- package/dist/core/defaults.js +9 -1
- package/dist/core/prompts/agent-guidelines.d.ts +4 -5
- package/dist/core/prompts/agent-guidelines.js +28 -42
- package/dist/core/session-schema.d.ts +1 -1
- package/dist/embedded-agent/ai-invoke.d.ts +1 -2
- package/dist/embedded-agent/ai-invoke.js +2 -70
- package/dist/embedded-agent/anthropic-messages-transport.d.ts +4 -20
- package/dist/embedded-agent/anthropic-messages-transport.js +23 -786
- package/dist/embedded-agent/bootstrap.js +2 -2
- package/dist/embedded-agent/compose.js +8 -7
- package/dist/embedded-agent/gateway-base-url.d.ts +3 -0
- package/dist/embedded-agent/gateway-base-url.js +35 -0
- package/dist/embedded-agent/google-vertex-transport.d.ts +2 -11
- package/dist/embedded-agent/google-vertex-transport.js +20 -117
- package/dist/embedded-agent/host-runtime-options.d.ts +0 -8
- package/dist/embedded-agent/host-runtime-options.js +10 -2
- package/dist/embedded-agent/host-tools/invoke-llm/contract.d.ts +2 -2
- package/dist/embedded-agent/host-tools/invoke-llm/contract.js +4 -2
- package/dist/embedded-agent/host-tools/sandbox-llm/contract.d.ts +8 -3
- package/dist/embedded-agent/host-tools/sandbox-llm/contract.js +12 -8
- package/dist/embedded-agent/host-tools/sandbox-llm/index.d.ts +1 -1
- package/dist/embedded-agent/host-tools/sandbox-llm/index.js +1 -1
- package/dist/embedded-agent/host-tools/shared/index.d.ts +1 -1
- package/dist/embedded-agent/host-tools/shared/index.js +1 -1
- package/dist/embedded-agent/host-tools/shared/llm-stream-error.d.ts +7 -0
- package/dist/embedded-agent/host-tools/shared/llm-stream-error.js +10 -0
- package/dist/embedded-agent/host-tools/take-screenshot/contract.d.ts +0 -2
- package/dist/embedded-agent/host-tools/take-screenshot/contract.js +1 -3
- package/dist/embedded-agent/host-tools/take-screenshot/index.d.ts +1 -1
- package/dist/embedded-agent/host-tools/take-screenshot/index.js +1 -1
- package/dist/embedded-agent/host-tools/task/agents/clone.js +1 -2
- package/dist/embedded-agent/host-tools/task/contract.js +1 -1
- package/dist/embedded-agent/index.d.ts +3 -4
- package/dist/embedded-agent/index.js +2 -3
- package/dist/embedded-agent/model-selection.d.ts +0 -6
- package/dist/embedded-agent/model-selection.js +15 -8
- package/dist/embedded-agent/openai-completions-transport.d.ts +2 -11
- package/dist/embedded-agent/openai-completions-transport.js +20 -120
- package/dist/embedded-agent/openai-responses-transport.d.ts +2 -11
- package/dist/embedded-agent/openai-responses-transport.js +15 -170
- package/dist/embedded-agent/prompt/build.js +1 -2
- package/dist/embedded-agent/prompt/sections.d.ts +1 -1
- package/dist/embedded-agent/prompt/sections.js +2 -0
- package/dist/embedded-agent/provider-native-request.d.ts +29 -0
- package/dist/embedded-agent/provider-native-request.js +65 -0
- package/dist/embedded-agent/run-stats.d.ts +1 -1
- package/dist/embedded-agent/stream.d.ts +10 -96
- package/dist/embedded-agent/stream.js +31 -556
- package/dist/embedded-agent/suggestions.d.ts +1 -1
- package/dist/embedded-agent/suggestions.js +1 -1
- package/dist/embedded-agent/worker-bridge/host-client.d.ts +7 -0
- package/dist/embedded-agent/worker-bridge/host-client.js +15 -0
- package/dist/embedded-agent/worker-bridge/worker-port.js +17 -1
- package/dist/main.js +18 -14
- package/dist/rpc/index.d.ts +1 -1
- package/dist/rpc/rpc-approval-gates.js +1 -2
- package/dist/rpc/rpc-host.d.ts +4 -0
- package/dist/rpc/rpc-host.js +13 -24
- package/dist/rpc/rpc-types.d.ts +6 -17
- package/dist/shared/platform/open.d.ts +4 -1
- package/dist/shared/platform/open.js +14 -2
- package/dist/shell/approvals/runtime-approval-gates.js +1 -3
- package/dist/shell/components/selectors/model-selector.js +2 -1
- package/dist/shell/components/selectors/session-selector-search.js +1 -1
- package/dist/shell/components/selectors/thinking-selector.js +7 -6
- package/dist/shell/index.d.ts +0 -1
- package/dist/shell/index.js +0 -1
- package/dist/shell/interactive/interactive-mode-options.d.ts +10 -0
- package/dist/shell/interactive/interactive-mode.d.ts +6 -12
- package/dist/shell/interactive/interactive-mode.js +39 -158
- package/dist/shell/interactive/slash-commands.d.ts +0 -34
- package/dist/shell/interactive/slash-commands.js +0 -2
- package/dist/shell/links/local-file-link-input.d.ts +15 -0
- package/dist/shell/links/local-file-link-input.js +38 -0
- package/dist/shell/links/local-file-link.d.ts +7 -0
- package/dist/shell/links/local-file-link.js +35 -0
- package/dist/shell/links/local-file-opener.d.ts +16 -0
- package/dist/shell/links/local-file-opener.js +90 -0
- package/dist/shell/session-client.d.ts +0 -1
- package/dist/shell/session-client.js +0 -6
- package/dist/shell/status/update-check-scheduler.d.ts +30 -0
- package/dist/shell/status/update-check-scheduler.js +71 -0
- package/dist/shell/status/update-reminder-controller.d.ts +22 -0
- package/dist/shell/status/update-reminder-controller.js +40 -0
- package/dist/shell/status/update-reminder.d.ts +6 -0
- package/dist/shell/status/update-reminder.js +4 -0
- package/dist/shell/theme/dark.json +1 -2
- package/dist/shell/theme/light.json +1 -2
- package/dist/shell/theme/runtime.d.ts +2 -3
- package/dist/shell/theme/runtime.js +2 -6
- package/dist/shell/theme/theme-schema.json +1 -6
- package/dist/shortcut-model-catalog.d.ts +7 -2
- package/dist/shortcut-model-catalog.js +134 -10
- package/dist/startup/update-manager.d.ts +6 -6
- package/dist/startup/update-manager.js +23 -38
- package/dist/startup/update-prompt.d.ts +1 -0
- package/dist/startup/update-prompt.js +2 -2
- package/dist/tui/components/editor.d.ts +1 -1
- package/dist/tui/components/editor.js +1 -1
- package/dist/tui/components/markdown.js +15 -6
- package/dist/tui/components/settings-list.js +1 -1
- package/dist/tui/editor-component.d.ts +1 -1
- package/dist/tui/index.d.ts +7 -8
- package/dist/tui/index.js +7 -6
- package/dist/tui/tui.d.ts +2 -0
- package/dist/tui/tui.js +16 -1
- package/dist/tui/utils.d.ts +7 -0
- package/dist/tui/utils.js +58 -8
- package/native-app/main/index.js +3200 -48
- package/native-app/main/{photon_rs-SoVDgheu.js → photon_rs-XkYyYTVA.js} +2 -2
- package/native-app/package.json +1 -1
- package/native-app/preload/index.cjs +2 -0
- package/native-app/renderer/assets/{index-CFc-oZuS.js → index-B4jz6epR.js} +825 -155
- package/native-app/renderer/assets/{index-OhGE0UY4.css → index-C__g36ft.css} +412 -162
- package/native-app/renderer/assets/shortcutagent-DxFsGSkw.png +0 -0
- package/native-app/renderer/index.html +2 -2
- package/package.json +17 -3
- package/skills/add-custom-model/SKILL.md +52 -0
- package/user-docs/dist/index.html +1 -1
- package/user-docs/dist/shortcutxl-docs.pdf +0 -0
- package/xll/ShortcutXL.xll +0 -0
- package/xll/modules/shortcut_xl/_managed.py +26 -7
- package/xll/modules/shortcut_xl/_tracking.py +141 -251
- package/xll/modules/shortcut_xl/api/__init__.py +60 -0
- package/xll/modules/shortcut_xl/api/workbook.py +9 -1
- package/xll/modules/shortcut_xl/api/worksheet.py +4 -1
- package/xll/python/Lib/site-packages/httpx-0.28.1.dist-info/RECORD +1 -1
- package/xll/python/Lib/site-packages/idna-3.18.dist-info/RECORD +1 -1
- package/xll/python/Lib/site-packages/pip/__init__.py +1 -1
- package/xll/python/Lib/site-packages/pip/_internal/build_env/__init__.py +25 -0
- package/xll/python/Lib/site-packages/pip/_internal/build_env/base.py +103 -0
- package/xll/python/Lib/site-packages/pip/_internal/build_env/installer.py +333 -0
- package/xll/python/Lib/site-packages/pip/_internal/build_env/noop.py +42 -0
- package/xll/python/Lib/site-packages/pip/_internal/build_env/venv.py +145 -0
- package/xll/python/Lib/site-packages/pip/_internal/build_env/virtual.py +139 -0
- package/xll/python/Lib/site-packages/pip/_internal/cache.py +4 -1
- package/xll/python/Lib/site-packages/pip/_internal/cli/autocompletion.py +4 -1
- package/xll/python/Lib/site-packages/pip/_internal/cli/base_command.py +11 -14
- package/xll/python/Lib/site-packages/pip/_internal/cli/cmdoptions.py +133 -22
- package/xll/python/Lib/site-packages/pip/_internal/cli/index_command.py +11 -6
- package/xll/python/Lib/site-packages/pip/_internal/cli/main.py +2 -1
- package/xll/python/Lib/site-packages/pip/_internal/cli/main_parser.py +1 -2
- package/xll/python/Lib/site-packages/pip/_internal/cli/parser.py +10 -2
- package/xll/python/Lib/site-packages/pip/_internal/cli/progress_bars.py +2 -2
- package/xll/python/Lib/site-packages/pip/_internal/cli/req_command.py +57 -25
- package/xll/python/Lib/site-packages/pip/_internal/cli/status_codes.py +1 -0
- package/xll/python/Lib/site-packages/pip/_internal/commands/cache.py +7 -6
- package/xll/python/Lib/site-packages/pip/_internal/commands/configuration.py +2 -1
- package/xll/python/Lib/site-packages/pip/_internal/commands/debug.py +4 -5
- package/xll/python/Lib/site-packages/pip/_internal/commands/download.py +4 -0
- package/xll/python/Lib/site-packages/pip/_internal/commands/freeze.py +1 -1
- package/xll/python/Lib/site-packages/pip/_internal/commands/index.py +10 -3
- package/xll/python/Lib/site-packages/pip/_internal/commands/inspect.py +1 -1
- package/xll/python/Lib/site-packages/pip/_internal/commands/install.py +6 -6
- package/xll/python/Lib/site-packages/pip/_internal/commands/list.py +11 -6
- package/xll/python/Lib/site-packages/pip/_internal/commands/lock.py +4 -6
- package/xll/python/Lib/site-packages/pip/_internal/commands/show.py +14 -8
- package/xll/python/Lib/site-packages/pip/_internal/commands/wheel.py +7 -1
- package/xll/python/Lib/site-packages/pip/_internal/configuration.py +2 -3
- package/xll/python/Lib/site-packages/pip/_internal/distributions/base.py +5 -3
- package/xll/python/Lib/site-packages/pip/_internal/distributions/installed.py +3 -2
- package/xll/python/Lib/site-packages/pip/_internal/distributions/sdist.py +45 -20
- package/xll/python/Lib/site-packages/pip/_internal/distributions/wheel.py +3 -2
- package/xll/python/Lib/site-packages/pip/_internal/exceptions.py +174 -0
- package/xll/python/Lib/site-packages/pip/_internal/index/collector.py +70 -48
- package/xll/python/Lib/site-packages/pip/_internal/index/package_finder.py +46 -7
- package/xll/python/Lib/site-packages/pip/_internal/index/sources.py +1 -2
- package/xll/python/Lib/site-packages/pip/_internal/locations/_sysconfig.py +1 -1
- package/xll/python/Lib/site-packages/pip/_internal/locations/base.py +1 -1
- package/xll/python/Lib/site-packages/pip/_internal/metadata/base.py +10 -5
- package/xll/python/Lib/site-packages/pip/_internal/metadata/importlib/_dists.py +1 -1
- package/xll/python/Lib/site-packages/pip/_internal/metadata/importlib/_envs.py +8 -3
- package/xll/python/Lib/site-packages/pip/_internal/models/candidate.py +5 -1
- package/xll/python/Lib/site-packages/pip/_internal/models/link.py +53 -13
- package/xll/python/Lib/site-packages/pip/_internal/network/auth.py +38 -21
- package/xll/python/Lib/site-packages/pip/_internal/network/cache.py +2 -2
- package/xll/python/Lib/site-packages/pip/_internal/network/download.py +58 -11
- package/xll/python/Lib/site-packages/pip/_internal/network/session.py +35 -40
- package/xll/python/Lib/site-packages/pip/_internal/network/utils.py +109 -1
- package/xll/python/Lib/site-packages/pip/_internal/operations/check.py +2 -3
- package/xll/python/Lib/site-packages/pip/_internal/operations/install/wheel.py +23 -18
- package/xll/python/Lib/site-packages/pip/_internal/operations/prepare.py +152 -7
- package/xll/python/Lib/site-packages/pip/_internal/req/__init__.py +2 -0
- package/xll/python/Lib/site-packages/pip/_internal/req/constructors.py +54 -69
- package/xll/python/Lib/site-packages/pip/_internal/req/req_file.py +6 -6
- package/xll/python/Lib/site-packages/pip/_internal/req/req_install.py +25 -21
- package/xll/python/Lib/site-packages/pip/_internal/req/req_uninstall.py +13 -8
- package/xll/python/Lib/site-packages/pip/_internal/resolution/base.py +2 -2
- package/xll/python/Lib/site-packages/pip/_internal/resolution/legacy/resolver.py +2 -2
- package/xll/python/Lib/site-packages/pip/_internal/resolution/resolvelib/base.py +1 -1
- package/xll/python/Lib/site-packages/pip/_internal/resolution/resolvelib/candidates.py +0 -1
- package/xll/python/Lib/site-packages/pip/_internal/resolution/resolvelib/factory.py +39 -52
- package/xll/python/Lib/site-packages/pip/_internal/resolution/resolvelib/found_candidates.py +3 -3
- package/xll/python/Lib/site-packages/pip/_internal/resolution/resolvelib/provider.py +3 -0
- package/xll/python/Lib/site-packages/pip/_internal/resolution/resolvelib/resolver.py +9 -0
- package/xll/python/Lib/site-packages/pip/_internal/utils/compat.py +15 -9
- package/xll/python/Lib/site-packages/pip/_internal/utils/deprecation.py +6 -1
- package/xll/python/Lib/site-packages/pip/_internal/utils/filesystem.py +2 -2
- package/xll/python/Lib/site-packages/pip/_internal/utils/logging.py +11 -3
- package/xll/python/Lib/site-packages/pip/_internal/utils/misc.py +48 -4
- package/xll/python/Lib/site-packages/pip/_internal/utils/pylock.py +18 -2
- package/xll/python/Lib/site-packages/pip/_internal/utils/retry.py +2 -1
- package/xll/python/Lib/site-packages/pip/_internal/utils/subprocess.py +4 -3
- package/xll/python/Lib/site-packages/pip/_internal/utils/temp_dir.py +1 -2
- package/xll/python/Lib/site-packages/pip/_internal/utils/unpacking.py +30 -4
- package/xll/python/Lib/site-packages/pip/_internal/utils/urls.py +5 -2
- package/xll/python/Lib/site-packages/pip/_internal/utils/virtualenv.py +2 -36
- package/xll/python/Lib/site-packages/pip/_internal/vcs/git.py +8 -5
- package/xll/python/Lib/site-packages/pip/_internal/vcs/versioncontrol.py +1 -2
- package/xll/python/Lib/site-packages/pip/_internal/wheel_builder.py +5 -1
- package/xll/python/Lib/site-packages/pip/_vendor/bom.cdx.json +231 -0
- package/xll/python/Lib/site-packages/pip/_vendor/certifi/__init__.py +1 -1
- package/xll/python/Lib/site-packages/pip/_vendor/certifi/cacert.pem +0 -631
- package/xll/python/Lib/site-packages/pip/_vendor/distlib/__init__.py +1 -1
- package/xll/python/Lib/site-packages/pip/_vendor/distlib/compat.py +34 -64
- package/xll/python/Lib/site-packages/pip/_vendor/distlib/resources.py +28 -14
- package/xll/python/Lib/site-packages/pip/_vendor/distlib/scripts.py +7 -3
- package/xll/python/Lib/site-packages/pip/_vendor/distlib/util.py +48 -11
- package/xll/python/Lib/site-packages/pip/_vendor/idna/LICENSE.md +1 -1
- package/xll/python/Lib/site-packages/pip/_vendor/idna/__main__.py +6 -0
- package/xll/python/Lib/site-packages/pip/_vendor/idna/cli.py +128 -0
- package/xll/python/Lib/site-packages/pip/_vendor/idna/codec.py +50 -13
- package/xll/python/Lib/site-packages/pip/_vendor/idna/compat.py +26 -0
- package/xll/python/Lib/site-packages/pip/_vendor/idna/core.py +352 -141
- package/xll/python/Lib/site-packages/pip/_vendor/idna/idnadata.py +571 -2983
- package/xll/python/Lib/site-packages/pip/_vendor/idna/intranges.py +5 -7
- package/xll/python/Lib/site-packages/pip/_vendor/idna/package_data.py +1 -1
- package/xll/python/Lib/site-packages/pip/_vendor/idna/uts46data.py +16887 -8832
- package/xll/python/Lib/site-packages/pip/_vendor/platformdirs/__init__.py +352 -66
- package/xll/python/Lib/site-packages/pip/_vendor/platformdirs/__main__.py +11 -0
- package/xll/python/Lib/site-packages/pip/_vendor/platformdirs/_xdg.py +171 -0
- package/xll/python/Lib/site-packages/pip/_vendor/platformdirs/android.py +92 -41
- package/xll/python/Lib/site-packages/pip/_vendor/platformdirs/api.py +213 -49
- package/xll/python/Lib/site-packages/pip/_vendor/platformdirs/macos.py +128 -51
- package/xll/python/Lib/site-packages/pip/_vendor/platformdirs/unix.py +176 -127
- package/xll/python/Lib/site-packages/pip/_vendor/platformdirs/version.py +8 -18
- package/xll/python/Lib/site-packages/pip/_vendor/platformdirs/windows.py +185 -68
- package/xll/python/Lib/site-packages/pip/_vendor/pygments/__init__.py +2 -2
- package/xll/python/Lib/site-packages/pip/_vendor/pygments/__main__.py +1 -1
- package/xll/python/Lib/site-packages/pip/_vendor/pygments/console.py +1 -1
- package/xll/python/Lib/site-packages/pip/_vendor/pygments/filter.py +1 -1
- package/xll/python/Lib/site-packages/pip/_vendor/pygments/filters/__init__.py +10 -8
- package/xll/python/Lib/site-packages/pip/_vendor/pygments/formatter.py +1 -1
- package/xll/python/Lib/site-packages/pip/_vendor/pygments/formatters/__init__.py +1 -1
- package/xll/python/Lib/site-packages/pip/_vendor/pygments/lexer.py +7 -5
- package/xll/python/Lib/site-packages/pip/_vendor/pygments/lexers/__init__.py +1 -1
- package/xll/python/Lib/site-packages/pip/_vendor/pygments/lexers/_mapping.py +9 -8
- package/xll/python/Lib/site-packages/pip/_vendor/pygments/lexers/python.py +35 -32
- package/xll/python/Lib/site-packages/pip/_vendor/pygments/modeline.py +1 -1
- package/xll/python/Lib/site-packages/pip/_vendor/pygments/plugin.py +3 -1
- package/xll/python/Lib/site-packages/pip/_vendor/pygments/regexopt.py +13 -2
- package/xll/python/Lib/site-packages/pip/_vendor/pygments/scanner.py +1 -1
- package/xll/python/Lib/site-packages/pip/_vendor/pygments/sphinxext.py +1 -1
- package/xll/python/Lib/site-packages/pip/_vendor/pygments/style.py +1 -1
- package/xll/python/Lib/site-packages/pip/_vendor/pygments/styles/__init__.py +1 -1
- package/xll/python/Lib/site-packages/pip/_vendor/pygments/token.py +1 -1
- package/xll/python/Lib/site-packages/pip/_vendor/pygments/unistring.py +1 -1
- package/xll/python/Lib/site-packages/pip/_vendor/pygments/util.py +2 -2
- package/xll/python/Lib/site-packages/pip/_vendor/requests/__init__.py +52 -16
- package/xll/python/Lib/site-packages/pip/_vendor/requests/__version__.py +2 -2
- package/xll/python/Lib/site-packages/pip/_vendor/requests/_internal_utils.py +2 -2
- package/xll/python/Lib/site-packages/pip/_vendor/requests/_types.py +183 -0
- package/xll/python/Lib/site-packages/pip/_vendor/requests/adapters.py +101 -50
- package/xll/python/Lib/site-packages/pip/_vendor/requests/api.py +31 -8
- package/xll/python/Lib/site-packages/pip/_vendor/requests/auth.py +80 -40
- package/xll/python/Lib/site-packages/pip/_vendor/requests/compat.py +9 -3
- package/xll/python/Lib/site-packages/pip/_vendor/requests/cookies.py +143 -79
- package/xll/python/Lib/site-packages/pip/_vendor/requests/exceptions.py +15 -5
- package/xll/python/Lib/site-packages/pip/_vendor/requests/help.py +13 -10
- package/xll/python/Lib/site-packages/pip/_vendor/requests/hooks.py +23 -9
- package/xll/python/Lib/site-packages/pip/_vendor/requests/models.py +265 -126
- package/xll/python/Lib/site-packages/pip/_vendor/requests/py.typed +0 -0
- package/xll/python/Lib/site-packages/pip/_vendor/requests/sessions.py +164 -78
- package/xll/python/Lib/site-packages/pip/_vendor/requests/status_codes.py +2 -2
- package/xll/python/Lib/site-packages/pip/_vendor/requests/structures.py +51 -20
- package/xll/python/Lib/site-packages/pip/_vendor/requests/utils.py +161 -89
- package/xll/python/Lib/site-packages/pip/_vendor/tomli/__init__.py +1 -1
- package/xll/python/Lib/site-packages/pip/_vendor/tomli/_parser.py +9 -4
- package/xll/python/Lib/site-packages/pip/_vendor/tomli/_re.py +13 -9
- package/xll/python/Lib/site-packages/pip/_vendor/urllib3/_base_connection.py +3 -1
- package/xll/python/Lib/site-packages/pip/_vendor/urllib3/_collections.py +0 -1
- package/xll/python/Lib/site-packages/pip/_vendor/urllib3/_version.py +8 -18
- package/xll/python/Lib/site-packages/pip/_vendor/urllib3/connection.py +4 -4
- package/xll/python/Lib/site-packages/pip/_vendor/urllib3/connectionpool.py +23 -10
- package/xll/python/Lib/site-packages/pip/_vendor/urllib3/contrib/emscripten/response.py +5 -1
- package/xll/python/Lib/site-packages/pip/_vendor/urllib3/contrib/pyopenssl.py +7 -8
- package/xll/python/Lib/site-packages/pip/_vendor/urllib3/contrib/socks.py +1 -1
- package/xll/python/Lib/site-packages/pip/_vendor/urllib3/exceptions.py +2 -2
- package/xll/python/Lib/site-packages/pip/_vendor/urllib3/fields.py +14 -14
- package/xll/python/Lib/site-packages/pip/_vendor/urllib3/poolmanager.py +8 -6
- package/xll/python/Lib/site-packages/pip/_vendor/urllib3/response.py +35 -22
- package/xll/python/Lib/site-packages/pip/_vendor/urllib3/util/retry.py +8 -0
- package/xll/python/Lib/site-packages/pip/_vendor/urllib3/util/ssl_.py +11 -61
- package/xll/python/Lib/site-packages/pip/_vendor/urllib3/util/ssl_match_hostname.py +5 -11
- package/xll/python/Lib/site-packages/pip/_vendor/vendor.txt +8 -8
- package/xll/python/Lib/site-packages/{pip-26.1.2.dist-info → pip-26.2.dist-info}/METADATA +3 -2
- package/xll/python/Lib/site-packages/{pip-26.1.2.dist-info → pip-26.2.dist-info}/RECORD +208 -188
- package/xll/python/Lib/site-packages/{pip-26.1.2.dist-info → pip-26.2.dist-info}/licenses/AUTHORS.txt +20 -0
- package/xll/python/Lib/site-packages/{pip-26.1.2.dist-info → pip-26.2.dist-info}/licenses/src/pip/_vendor/idna/LICENSE.md +1 -1
- package/xll/python/Lib/site-packages/pywin32-311.dist-info/RECORD +2 -2
- package/xll/python/Scripts/httpx.exe +0 -0
- package/xll/python/Scripts/idna.exe +0 -0
- package/xll/python/Scripts/pip.exe +0 -0
- package/xll/python/Scripts/pip3.13.exe +0 -0
- package/xll/python/Scripts/pip3.exe +0 -0
- package/xll/python/Scripts/pywin32_postinstall.exe +0 -0
- package/xll/python/Scripts/pywin32_testall.exe +0 -0
- package/dist/app/collab/awareness.d.ts +0 -32
- package/dist/app/collab/awareness.js +0 -52
- package/dist/app/collab/collab-client.d.ts +0 -37
- package/dist/app/collab/collab-client.js +0 -208
- package/dist/app/collab/collab-manager.d.ts +0 -91
- package/dist/app/collab/collab-manager.js +0 -218
- package/dist/app/collab/collab-sync.d.ts +0 -62
- package/dist/app/collab/collab-sync.js +0 -215
- package/dist/app/collab/index.d.ts +0 -9
- package/dist/app/collab/index.js +0 -6
- package/dist/app/collab/super-fight.d.ts +0 -90
- package/dist/app/collab/super-fight.js +0 -310
- package/dist/app/collab/sync-bridge.d.ts +0 -35
- package/dist/app/collab/sync-bridge.js +0 -109
- package/dist/app/collab/types.d.ts +0 -75
- package/dist/app/collab/types.js +0 -5
- package/dist/embedded-agent/ai-content.d.ts +0 -52
- package/dist/embedded-agent/ai-content.js +0 -101
- package/dist/embedded-agent/host-tools/shared/llm-stream.d.ts +0 -31
- package/dist/embedded-agent/host-tools/shared/llm-stream.js +0 -136
- package/dist/embedded-agent/model-call-orchestrator.d.ts +0 -22
- package/dist/embedded-agent/model-call-orchestrator.js +0 -22
- package/dist/embedded-agent/stream-errors.d.ts +0 -10
- package/dist/embedded-agent/stream-errors.js +0 -73
- package/dist/embedded-agent/stream-message-state.d.ts +0 -14
- package/dist/embedded-agent/stream-message-state.js +0 -271
- package/dist/embedded-agent/stream-sse.d.ts +0 -78
- package/dist/embedded-agent/stream-sse.js +0 -73
- package/dist/shell/approvals/task-spawn-approval.d.ts +0 -20
- package/dist/shell/approvals/task-spawn-approval.js +0 -93
- package/dist/shell/interactive/collab-command.d.ts +0 -9
- package/dist/shell/interactive/collab-command.js +0 -115
- package/dist/shell/interactive/super-fight-ui.d.ts +0 -80
- package/dist/shell/interactive/super-fight-ui.js +0 -484
- package/dist/shell/status/collab-status.d.ts +0 -18
- package/dist/shell/status/collab-status.js +0 -46
- package/xll/python/Lib/site-packages/pip/_internal/build_env.py +0 -606
- /package/dist/{tui → autocomplete}/skill-autocomplete.js +0 -0
- /package/xll/python/Lib/site-packages/{pip-26.1.2.dist-info → pip-26.2.dist-info}/INSTALLER +0 -0
- /package/xll/python/Lib/site-packages/{pip-26.1.2.dist-info → pip-26.2.dist-info}/REQUESTED +0 -0
- /package/xll/python/Lib/site-packages/{pip-26.1.2.dist-info → pip-26.2.dist-info}/WHEEL +0 -0
- /package/xll/python/Lib/site-packages/{pip-26.1.2.dist-info → pip-26.2.dist-info}/entry_points.txt +0 -0
- /package/xll/python/Lib/site-packages/{pip-26.1.2.dist-info → pip-26.2.dist-info}/licenses/LICENSE.txt +0 -0
- /package/xll/python/Lib/site-packages/{pip-26.1.2.dist-info → pip-26.2.dist-info}/licenses/src/pip/_vendor/cachecontrol/LICENSE.txt +0 -0
- /package/xll/python/Lib/site-packages/{pip-26.1.2.dist-info → pip-26.2.dist-info}/licenses/src/pip/_vendor/certifi/LICENSE +0 -0
- /package/xll/python/Lib/site-packages/{pip-26.1.2.dist-info → pip-26.2.dist-info}/licenses/src/pip/_vendor/distlib/LICENSE.txt +0 -0
- /package/xll/python/Lib/site-packages/{pip-26.1.2.dist-info → pip-26.2.dist-info}/licenses/src/pip/_vendor/distro/LICENSE +0 -0
- /package/xll/python/Lib/site-packages/{pip-26.1.2.dist-info → pip-26.2.dist-info}/licenses/src/pip/_vendor/msgpack/COPYING +0 -0
- /package/xll/python/Lib/site-packages/{pip-26.1.2.dist-info → pip-26.2.dist-info}/licenses/src/pip/_vendor/packaging/LICENSE +0 -0
- /package/xll/python/Lib/site-packages/{pip-26.1.2.dist-info → pip-26.2.dist-info}/licenses/src/pip/_vendor/packaging/LICENSE.APACHE +0 -0
- /package/xll/python/Lib/site-packages/{pip-26.1.2.dist-info → pip-26.2.dist-info}/licenses/src/pip/_vendor/packaging/LICENSE.BSD +0 -0
- /package/xll/python/Lib/site-packages/{pip-26.1.2.dist-info → pip-26.2.dist-info}/licenses/src/pip/_vendor/pkg_resources/LICENSE +0 -0
- /package/xll/python/Lib/site-packages/{pip-26.1.2.dist-info → pip-26.2.dist-info}/licenses/src/pip/_vendor/platformdirs/LICENSE +0 -0
- /package/xll/python/Lib/site-packages/{pip-26.1.2.dist-info → pip-26.2.dist-info}/licenses/src/pip/_vendor/pygments/LICENSE +0 -0
- /package/xll/python/Lib/site-packages/{pip-26.1.2.dist-info → pip-26.2.dist-info}/licenses/src/pip/_vendor/pyproject_hooks/LICENSE +0 -0
- /package/xll/python/Lib/site-packages/{pip-26.1.2.dist-info → pip-26.2.dist-info}/licenses/src/pip/_vendor/requests/LICENSE +0 -0
- /package/xll/python/Lib/site-packages/{pip-26.1.2.dist-info → pip-26.2.dist-info}/licenses/src/pip/_vendor/resolvelib/LICENSE +0 -0
- /package/xll/python/Lib/site-packages/{pip-26.1.2.dist-info → pip-26.2.dist-info}/licenses/src/pip/_vendor/rich/LICENSE +0 -0
- /package/xll/python/Lib/site-packages/{pip-26.1.2.dist-info → pip-26.2.dist-info}/licenses/src/pip/_vendor/tomli/LICENSE +0 -0
- /package/xll/python/Lib/site-packages/{pip-26.1.2.dist-info → pip-26.2.dist-info}/licenses/src/pip/_vendor/tomli_w/LICENSE +0 -0
- /package/xll/python/Lib/site-packages/{pip-26.1.2.dist-info → pip-26.2.dist-info}/licenses/src/pip/_vendor/truststore/LICENSE +0 -0
- /package/xll/python/Lib/site-packages/{pip-26.1.2.dist-info → pip-26.2.dist-info}/licenses/src/pip/_vendor/urllib3/LICENSE.txt +0 -0
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,19 @@
|
|
|
1
1
|
# Changelog
|
|
2
2
|
|
|
3
|
+
## [0.3.78]
|
|
4
|
+
|
|
5
|
+
- **More performant spreadsheet operations** - Read/write operations should be much faster and less buggy.
|
|
6
|
+
- **Linked local files** - Open local file links from agent responses in both the CLI and native app.
|
|
7
|
+
- **Safer read-only modes** - Ask and Plan modes no longer expose shell execution, and mode switching avoids unnecessary skill scans.
|
|
8
|
+
- **Native app polish** - Refreshed the native app design and improved chat autoscrolling during active sessions.
|
|
9
|
+
- **Auto-update reminders** - Update reminders will be surfaced in open terminal windows.
|
|
10
|
+
|
|
11
|
+
## [0.3.77]
|
|
12
|
+
|
|
13
|
+
- **Native app file mentions** - Type `@` in the native app to search and attach workspace files with the same completion behavior as the CLI.
|
|
14
|
+
- **Custom model setup** - A bundled skill now guides configuration of compatible custom model providers.
|
|
15
|
+
- **Subagent permissions** - CLI subagents inherit the active permission policy and surface nested approval requests more clearly.
|
|
16
|
+
|
|
3
17
|
## [0.3.76]
|
|
4
18
|
|
|
5
19
|
- **Claude Opus 5** - Claude Opus 5 is now available as ShortcutXL's high-accuracy Opus option.
|
package/dist/ai/models.d.ts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { MODELS } from './models.generated.js';
|
|
2
|
-
import type { Api, KnownProvider, Model, Usage } from './types.js';
|
|
2
|
+
import type { Api, KnownProvider, Model, ModelCapabilities, ReasoningLevel, Usage } from './types.js';
|
|
3
3
|
type ModelApi<TProvider extends KnownProvider, TModelId extends keyof (typeof MODELS)[TProvider]> = (typeof MODELS)[TProvider][TModelId] extends {
|
|
4
4
|
api: infer TApi;
|
|
5
5
|
} ? TApi extends Api ? TApi : never : never;
|
|
@@ -8,13 +8,17 @@ export declare function getProviders(): KnownProvider[];
|
|
|
8
8
|
export declare function getModels<TProvider extends KnownProvider>(provider: TProvider): Model<ModelApi<TProvider, keyof (typeof MODELS)[TProvider]>>[];
|
|
9
9
|
export declare function calculateCost<TApi extends Api>(model: Model<TApi>, usage: Usage): Usage['cost'];
|
|
10
10
|
/**
|
|
11
|
-
*
|
|
11
|
+
* Return the model's declared reasoning contract.
|
|
12
12
|
*
|
|
13
|
-
*
|
|
14
|
-
*
|
|
15
|
-
* -
|
|
13
|
+
* Models that only declare `reasoning: true` expose no configurable wire
|
|
14
|
+
* control: the provider default is represented as a fixed `high` product state.
|
|
15
|
+
* Shortcut-served models always provide an explicit contract in the catalog.
|
|
16
16
|
*/
|
|
17
|
-
export declare function
|
|
17
|
+
export declare function getModelReasoningCapabilities<TApi extends Api>(model: Model<TApi>): ModelCapabilities['reasoning'] | undefined;
|
|
18
|
+
export declare function getModelReasoningLevels<TApi extends Api>(model: Model<TApi>): ReasoningLevel[];
|
|
19
|
+
export declare function assertModelSupportsReasoningLevel<TApi extends Api>(model: Model<TApi>, level: ReasoningLevel): void;
|
|
20
|
+
/** Resolve a stale/cross-model selection to the target model's declared default. */
|
|
21
|
+
export declare function resolveModelReasoningLevel<TApi extends Api>(model: Model<TApi>, requested: ReasoningLevel | undefined): ReasoningLevel;
|
|
18
22
|
/**
|
|
19
23
|
* Check if two models are equal by comparing both their id and provider.
|
|
20
24
|
* Returns false if either model is null or undefined.
|
|
@@ -7,6 +7,14 @@ export declare const MODELS: {
|
|
|
7
7
|
provider: string;
|
|
8
8
|
baseUrl: string;
|
|
9
9
|
reasoning: true;
|
|
10
|
+
capabilities: {
|
|
11
|
+
reasoning: {
|
|
12
|
+
readonly control: "budget";
|
|
13
|
+
readonly defaultLevel: "minimal";
|
|
14
|
+
readonly levels: readonly ["minimal", "low", "medium", "high"];
|
|
15
|
+
readonly supportsOff: true;
|
|
16
|
+
};
|
|
17
|
+
};
|
|
10
18
|
input: ("text" | "image")[];
|
|
11
19
|
cost: {
|
|
12
20
|
input: number;
|
|
@@ -24,6 +32,14 @@ export declare const MODELS: {
|
|
|
24
32
|
provider: string;
|
|
25
33
|
baseUrl: string;
|
|
26
34
|
reasoning: true;
|
|
35
|
+
capabilities: {
|
|
36
|
+
reasoning: {
|
|
37
|
+
readonly control: "budget";
|
|
38
|
+
readonly defaultLevel: "minimal";
|
|
39
|
+
readonly levels: readonly ["minimal", "low", "medium", "high"];
|
|
40
|
+
readonly supportsOff: true;
|
|
41
|
+
};
|
|
42
|
+
};
|
|
27
43
|
input: ("text" | "image")[];
|
|
28
44
|
cost: {
|
|
29
45
|
input: number;
|
|
@@ -130,6 +146,14 @@ export declare const MODELS: {
|
|
|
130
146
|
provider: string;
|
|
131
147
|
baseUrl: string;
|
|
132
148
|
reasoning: true;
|
|
149
|
+
capabilities: {
|
|
150
|
+
reasoning: {
|
|
151
|
+
readonly control: "thinking-level";
|
|
152
|
+
readonly defaultLevel: "minimal";
|
|
153
|
+
readonly levels: readonly ["minimal", "low", "medium", "high"];
|
|
154
|
+
readonly supportsOff: false;
|
|
155
|
+
};
|
|
156
|
+
};
|
|
133
157
|
input: ("text" | "image")[];
|
|
134
158
|
cost: {
|
|
135
159
|
input: number;
|
|
@@ -147,6 +171,14 @@ export declare const MODELS: {
|
|
|
147
171
|
provider: string;
|
|
148
172
|
baseUrl: string;
|
|
149
173
|
reasoning: true;
|
|
174
|
+
capabilities: {
|
|
175
|
+
reasoning: {
|
|
176
|
+
readonly control: "thinking-level";
|
|
177
|
+
readonly defaultLevel: "low";
|
|
178
|
+
readonly levels: readonly ["low", "high"];
|
|
179
|
+
readonly supportsOff: false;
|
|
180
|
+
};
|
|
181
|
+
};
|
|
150
182
|
input: ("text" | "image")[];
|
|
151
183
|
cost: {
|
|
152
184
|
input: number;
|
|
@@ -164,6 +196,14 @@ export declare const MODELS: {
|
|
|
164
196
|
provider: string;
|
|
165
197
|
baseUrl: string;
|
|
166
198
|
reasoning: true;
|
|
199
|
+
capabilities: {
|
|
200
|
+
reasoning: {
|
|
201
|
+
readonly control: "thinking-level";
|
|
202
|
+
readonly defaultLevel: "low";
|
|
203
|
+
readonly levels: readonly ["low", "medium", "high"];
|
|
204
|
+
readonly supportsOff: false;
|
|
205
|
+
};
|
|
206
|
+
};
|
|
167
207
|
input: ("text" | "image")[];
|
|
168
208
|
cost: {
|
|
169
209
|
input: number;
|
|
@@ -181,6 +221,14 @@ export declare const MODELS: {
|
|
|
181
221
|
provider: string;
|
|
182
222
|
baseUrl: string;
|
|
183
223
|
reasoning: true;
|
|
224
|
+
capabilities: {
|
|
225
|
+
reasoning: {
|
|
226
|
+
readonly control: "thinking-level";
|
|
227
|
+
readonly defaultLevel: "low";
|
|
228
|
+
readonly levels: readonly ["low", "medium", "high"];
|
|
229
|
+
readonly supportsOff: false;
|
|
230
|
+
};
|
|
231
|
+
};
|
|
184
232
|
input: ("text" | "image")[];
|
|
185
233
|
cost: {
|
|
186
234
|
input: number;
|
|
@@ -319,6 +367,14 @@ export declare const MODELS: {
|
|
|
319
367
|
provider: string;
|
|
320
368
|
baseUrl: string;
|
|
321
369
|
reasoning: true;
|
|
370
|
+
capabilities: {
|
|
371
|
+
reasoning: {
|
|
372
|
+
readonly control: "thinking-level";
|
|
373
|
+
readonly defaultLevel: "minimal";
|
|
374
|
+
readonly levels: readonly ["minimal", "low", "medium", "high"];
|
|
375
|
+
readonly supportsOff: false;
|
|
376
|
+
};
|
|
377
|
+
};
|
|
322
378
|
input: ("text" | "image")[];
|
|
323
379
|
cost: {
|
|
324
380
|
input: number;
|
|
@@ -336,6 +392,14 @@ export declare const MODELS: {
|
|
|
336
392
|
provider: string;
|
|
337
393
|
baseUrl: string;
|
|
338
394
|
reasoning: true;
|
|
395
|
+
capabilities: {
|
|
396
|
+
reasoning: {
|
|
397
|
+
readonly control: "thinking-level";
|
|
398
|
+
readonly defaultLevel: "low";
|
|
399
|
+
readonly levels: readonly ["low", "high"];
|
|
400
|
+
readonly supportsOff: false;
|
|
401
|
+
};
|
|
402
|
+
};
|
|
339
403
|
input: ("text" | "image")[];
|
|
340
404
|
cost: {
|
|
341
405
|
input: number;
|
|
@@ -353,6 +417,14 @@ export declare const MODELS: {
|
|
|
353
417
|
provider: string;
|
|
354
418
|
baseUrl: string;
|
|
355
419
|
reasoning: true;
|
|
420
|
+
capabilities: {
|
|
421
|
+
reasoning: {
|
|
422
|
+
readonly control: "thinking-level";
|
|
423
|
+
readonly defaultLevel: "low";
|
|
424
|
+
readonly levels: readonly ["low", "medium", "high"];
|
|
425
|
+
readonly supportsOff: false;
|
|
426
|
+
};
|
|
427
|
+
};
|
|
356
428
|
input: ("text" | "image")[];
|
|
357
429
|
cost: {
|
|
358
430
|
input: number;
|
|
@@ -1,5 +1,29 @@
|
|
|
1
1
|
// This file is auto-generated by scripts/generate-models.ts.
|
|
2
2
|
// Do not edit manually - run 'pnpm run generate-models' to update.
|
|
3
|
+
const HAIKU_45_REASONING = {
|
|
4
|
+
control: 'budget',
|
|
5
|
+
defaultLevel: 'minimal',
|
|
6
|
+
levels: ['minimal', 'low', 'medium', 'high'],
|
|
7
|
+
supportsOff: true
|
|
8
|
+
};
|
|
9
|
+
const GEMINI_3_FLASH_REASONING = {
|
|
10
|
+
control: 'thinking-level',
|
|
11
|
+
defaultLevel: 'minimal',
|
|
12
|
+
levels: ['minimal', 'low', 'medium', 'high'],
|
|
13
|
+
supportsOff: false
|
|
14
|
+
};
|
|
15
|
+
const GEMINI_3_PRO_REASONING = {
|
|
16
|
+
control: 'thinking-level',
|
|
17
|
+
defaultLevel: 'low',
|
|
18
|
+
levels: ['low', 'high'],
|
|
19
|
+
supportsOff: false
|
|
20
|
+
};
|
|
21
|
+
const GEMINI_31_PRO_REASONING = {
|
|
22
|
+
control: 'thinking-level',
|
|
23
|
+
defaultLevel: 'low',
|
|
24
|
+
levels: ['low', 'medium', 'high'],
|
|
25
|
+
supportsOff: false
|
|
26
|
+
};
|
|
3
27
|
export const MODELS = {
|
|
4
28
|
anthropic: {
|
|
5
29
|
'claude-haiku-4-5': {
|
|
@@ -9,6 +33,7 @@ export const MODELS = {
|
|
|
9
33
|
provider: 'anthropic',
|
|
10
34
|
baseUrl: 'https://api.anthropic.com',
|
|
11
35
|
reasoning: true,
|
|
36
|
+
capabilities: { reasoning: HAIKU_45_REASONING },
|
|
12
37
|
input: ['text', 'image'],
|
|
13
38
|
cost: {
|
|
14
39
|
input: 1,
|
|
@@ -26,6 +51,7 @@ export const MODELS = {
|
|
|
26
51
|
provider: 'anthropic',
|
|
27
52
|
baseUrl: 'https://api.anthropic.com',
|
|
28
53
|
reasoning: true,
|
|
54
|
+
capabilities: { reasoning: HAIKU_45_REASONING },
|
|
29
55
|
input: ['text', 'image'],
|
|
30
56
|
cost: {
|
|
31
57
|
input: 1,
|
|
@@ -132,6 +158,7 @@ export const MODELS = {
|
|
|
132
158
|
provider: 'google',
|
|
133
159
|
baseUrl: 'https://generativelanguage.googleapis.com/v1beta',
|
|
134
160
|
reasoning: true,
|
|
161
|
+
capabilities: { reasoning: GEMINI_3_FLASH_REASONING },
|
|
135
162
|
input: ['text', 'image'],
|
|
136
163
|
cost: {
|
|
137
164
|
input: 0.5,
|
|
@@ -149,6 +176,7 @@ export const MODELS = {
|
|
|
149
176
|
provider: 'google',
|
|
150
177
|
baseUrl: 'https://generativelanguage.googleapis.com/v1beta',
|
|
151
178
|
reasoning: true,
|
|
179
|
+
capabilities: { reasoning: GEMINI_3_PRO_REASONING },
|
|
152
180
|
input: ['text', 'image'],
|
|
153
181
|
cost: {
|
|
154
182
|
input: 2,
|
|
@@ -166,6 +194,7 @@ export const MODELS = {
|
|
|
166
194
|
provider: 'google',
|
|
167
195
|
baseUrl: 'https://generativelanguage.googleapis.com/v1beta',
|
|
168
196
|
reasoning: true,
|
|
197
|
+
capabilities: { reasoning: GEMINI_31_PRO_REASONING },
|
|
169
198
|
input: ['text', 'image'],
|
|
170
199
|
cost: {
|
|
171
200
|
input: 2,
|
|
@@ -183,6 +212,7 @@ export const MODELS = {
|
|
|
183
212
|
provider: 'google',
|
|
184
213
|
baseUrl: 'https://generativelanguage.googleapis.com/v1beta',
|
|
185
214
|
reasoning: true,
|
|
215
|
+
capabilities: { reasoning: GEMINI_31_PRO_REASONING },
|
|
186
216
|
input: ['text', 'image'],
|
|
187
217
|
cost: {
|
|
188
218
|
input: 2,
|
|
@@ -321,6 +351,7 @@ export const MODELS = {
|
|
|
321
351
|
provider: 'google-vertex',
|
|
322
352
|
baseUrl: 'https://{location}-aiplatform.googleapis.com',
|
|
323
353
|
reasoning: true,
|
|
354
|
+
capabilities: { reasoning: GEMINI_3_FLASH_REASONING },
|
|
324
355
|
input: ['text', 'image'],
|
|
325
356
|
cost: {
|
|
326
357
|
input: 0.5,
|
|
@@ -338,6 +369,7 @@ export const MODELS = {
|
|
|
338
369
|
provider: 'google-vertex',
|
|
339
370
|
baseUrl: 'https://{location}-aiplatform.googleapis.com',
|
|
340
371
|
reasoning: true,
|
|
372
|
+
capabilities: { reasoning: GEMINI_3_PRO_REASONING },
|
|
341
373
|
input: ['text', 'image'],
|
|
342
374
|
cost: {
|
|
343
375
|
input: 2,
|
|
@@ -355,6 +387,7 @@ export const MODELS = {
|
|
|
355
387
|
provider: 'google-vertex',
|
|
356
388
|
baseUrl: 'https://{location}-aiplatform.googleapis.com',
|
|
357
389
|
reasoning: true,
|
|
390
|
+
capabilities: { reasoning: GEMINI_31_PRO_REASONING },
|
|
358
391
|
input: ['text', 'image'],
|
|
359
392
|
cost: {
|
|
360
393
|
input: 2,
|
package/dist/ai/models.js
CHANGED
|
@@ -1,4 +1,3 @@
|
|
|
1
|
-
import { SHORTCUT_OPENAI_MODEL_ID } from '../model-ids.js';
|
|
2
1
|
import { MODELS } from './models.generated.js';
|
|
3
2
|
const modelRegistry = new Map();
|
|
4
3
|
// Initialize registry from MODELS on module load
|
|
@@ -32,22 +31,46 @@ export function calculateCost(model, usage) {
|
|
|
32
31
|
usage.cost.input + usage.cost.output + usage.cost.cacheRead + usage.cost.cacheWrite;
|
|
33
32
|
return usage.cost;
|
|
34
33
|
}
|
|
34
|
+
const PROVIDER_DEFAULT_REASONING = {
|
|
35
|
+
control: 'fixed',
|
|
36
|
+
defaultLevel: 'high',
|
|
37
|
+
levels: ['high'],
|
|
38
|
+
supportsOff: false
|
|
39
|
+
};
|
|
35
40
|
/**
|
|
36
|
-
*
|
|
41
|
+
* Return the model's declared reasoning contract.
|
|
37
42
|
*
|
|
38
|
-
*
|
|
39
|
-
*
|
|
40
|
-
* -
|
|
43
|
+
* Models that only declare `reasoning: true` expose no configurable wire
|
|
44
|
+
* control: the provider default is represented as a fixed `high` product state.
|
|
45
|
+
* Shortcut-served models always provide an explicit contract in the catalog.
|
|
41
46
|
*/
|
|
42
|
-
export function
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
47
|
+
export function getModelReasoningCapabilities(model) {
|
|
48
|
+
if (!model.reasoning)
|
|
49
|
+
return undefined;
|
|
50
|
+
return model.capabilities?.reasoning ?? PROVIDER_DEFAULT_REASONING;
|
|
51
|
+
}
|
|
52
|
+
export function getModelReasoningLevels(model) {
|
|
53
|
+
const capabilities = getModelReasoningCapabilities(model);
|
|
54
|
+
if (!capabilities)
|
|
55
|
+
return ['off'];
|
|
56
|
+
return [...(capabilities.supportsOff ? ['off'] : []), ...capabilities.levels];
|
|
57
|
+
}
|
|
58
|
+
export function assertModelSupportsReasoningLevel(model, level) {
|
|
59
|
+
const available = getModelReasoningLevels(model);
|
|
60
|
+
if (!available.includes(level)) {
|
|
61
|
+
throw new Error(`Reasoning level "${level}" is not supported by ${model.provider}/${model.id}. ` +
|
|
62
|
+
`Supported levels: ${available.join(', ')}.`);
|
|
49
63
|
}
|
|
50
|
-
|
|
64
|
+
}
|
|
65
|
+
/** Resolve a stale/cross-model selection to the target model's declared default. */
|
|
66
|
+
export function resolveModelReasoningLevel(model, requested) {
|
|
67
|
+
const capabilities = getModelReasoningCapabilities(model);
|
|
68
|
+
if (requested === undefined)
|
|
69
|
+
return capabilities?.defaultLevel ?? 'off';
|
|
70
|
+
const available = getModelReasoningLevels(model);
|
|
71
|
+
if (available.includes(requested))
|
|
72
|
+
return requested;
|
|
73
|
+
return capabilities?.defaultLevel ?? 'off';
|
|
51
74
|
}
|
|
52
75
|
/**
|
|
53
76
|
* Check if two models are equal by comparing both their id and provider.
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { type ShortcutXLModelStreamErrorDetails } from '../../contracts/model-stream.js';
|
|
2
|
-
import type { SimpleStreamOptions, StreamFunction, StreamOptions } from '../types.js';
|
|
3
|
-
export type AnthropicEffort = 'low' | 'medium' | 'high' | 'max';
|
|
2
|
+
import type { Context, Model, SimpleStreamOptions, StreamFunction, StreamOptions } from '../types.js';
|
|
3
|
+
export type AnthropicEffort = 'low' | 'medium' | 'high' | 'xhigh' | 'max';
|
|
4
4
|
export interface AnthropicOptions extends StreamOptions {
|
|
5
5
|
/**
|
|
6
6
|
* Enable extended thinking.
|
|
@@ -31,5 +31,7 @@ export interface AnthropicOptions extends StreamOptions {
|
|
|
31
31
|
}
|
|
32
32
|
export declare const streamAnthropic: StreamFunction<'anthropic-messages', AnthropicOptions>;
|
|
33
33
|
export declare const streamSimpleAnthropic: StreamFunction<'anthropic-messages', SimpleStreamOptions>;
|
|
34
|
+
/** Serialize one Anthropic request for either the SDK stream or a raw invoke transport. */
|
|
35
|
+
export declare function buildAnthropicMessagesRequest(model: Model<'anthropic-messages'>, context: Context, options: SimpleStreamOptions | undefined, stream: boolean): Record<string, unknown>;
|
|
34
36
|
export declare function anthropicTerminalStopErrorDetails(reason: string | null | undefined): ShortcutXLModelStreamErrorDetails | undefined;
|
|
35
37
|
//# sourceMappingURL=anthropic.d.ts.map
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import Anthropic from '@anthropic-ai/sdk';
|
|
2
2
|
import { PROVIDER_REFUSAL_ERROR_CODE, safeModelStreamErrorMessage } from '../../contracts/model-stream.js';
|
|
3
3
|
import { getEnvApiKey } from '../env-api-keys.js';
|
|
4
|
-
import { calculateCost } from '../models.js';
|
|
4
|
+
import { assertModelSupportsReasoningLevel, calculateCost } from '../models.js';
|
|
5
5
|
import { AssistantMessageEventStream } from '../utils/event-stream.js';
|
|
6
6
|
import { parseStreamingJson } from '../utils/json-parse.js';
|
|
7
7
|
import { sanitizeSurrogates } from '../utils/sanitize-unicode.js';
|
|
@@ -381,17 +381,19 @@ export const streamAnthropic = (model, context, options) => {
|
|
|
381
381
|
*/
|
|
382
382
|
const ADAPTIVE_THINKING_MODELS = ['opus-5', 'opus-4-8', 'sonnet-5', 'fable-5'];
|
|
383
383
|
/** Check if a model uses adaptive thinking. */
|
|
384
|
-
function supportsAdaptiveThinking(
|
|
385
|
-
const
|
|
384
|
+
function supportsAdaptiveThinking(model) {
|
|
385
|
+
const configuredControl = model.capabilities?.reasoning?.control;
|
|
386
|
+
if (configuredControl)
|
|
387
|
+
return configuredControl === 'adaptive-effort';
|
|
388
|
+
const normalized = model.id.toLowerCase();
|
|
386
389
|
return ADAPTIVE_THINKING_MODELS.some((id) => normalized.includes(id));
|
|
387
390
|
}
|
|
388
391
|
/**
|
|
389
|
-
* Map
|
|
392
|
+
* Map provider-neutral reasoning effort to Anthropic adaptive effort.
|
|
390
393
|
*
|
|
391
|
-
*
|
|
392
|
-
* The guard just keeps a hypothetical non-adaptive model from 400ing on `max`.
|
|
394
|
+
* This is only called for adaptive models, where `max` is a native effort.
|
|
393
395
|
*/
|
|
394
|
-
function
|
|
396
|
+
function mapReasoningLevel(level) {
|
|
395
397
|
switch (level) {
|
|
396
398
|
case 'minimal':
|
|
397
399
|
return 'low';
|
|
@@ -402,39 +404,57 @@ function mapThinkingLevelToEffort(level, modelId) {
|
|
|
402
404
|
case 'high':
|
|
403
405
|
return 'high';
|
|
404
406
|
case 'xhigh':
|
|
405
|
-
|
|
407
|
+
case 'max':
|
|
408
|
+
return level;
|
|
406
409
|
default:
|
|
407
410
|
return 'high';
|
|
408
411
|
}
|
|
409
412
|
}
|
|
410
|
-
|
|
411
|
-
|
|
412
|
-
|
|
413
|
-
|
|
413
|
+
function mapToolChoice(toolChoice) {
|
|
414
|
+
if (!toolChoice)
|
|
415
|
+
return undefined;
|
|
416
|
+
if (typeof toolChoice === 'object')
|
|
417
|
+
return { type: 'tool', name: toolChoice.name };
|
|
418
|
+
return toolChoice === 'required' ? 'any' : toolChoice;
|
|
419
|
+
}
|
|
420
|
+
function resolveSimpleAnthropicOptions(model, options) {
|
|
421
|
+
const base = buildBaseOptions(model, options, options?.apiKey);
|
|
422
|
+
const toolChoice = mapToolChoice(options?.toolChoice);
|
|
423
|
+
if (options?.reasoning === undefined) {
|
|
424
|
+
return { ...base, toolChoice };
|
|
414
425
|
}
|
|
415
|
-
|
|
416
|
-
|
|
417
|
-
return streamAnthropic(model, context, {
|
|
418
|
-
...base,
|
|
419
|
-
thinkingEnabled: false
|
|
420
|
-
});
|
|
426
|
+
if (!model.capabilities?.reasoning) {
|
|
427
|
+
return { ...base, toolChoice };
|
|
421
428
|
}
|
|
422
|
-
|
|
423
|
-
|
|
424
|
-
|
|
425
|
-
|
|
426
|
-
|
|
429
|
+
assertModelSupportsReasoningLevel(model, options.reasoning);
|
|
430
|
+
if (options.reasoning === 'off') {
|
|
431
|
+
return { ...base, thinkingEnabled: false, toolChoice };
|
|
432
|
+
}
|
|
433
|
+
if (supportsAdaptiveThinking(model)) {
|
|
434
|
+
return {
|
|
427
435
|
...base,
|
|
436
|
+
effort: mapReasoningLevel(options.reasoning),
|
|
428
437
|
thinkingEnabled: true,
|
|
429
|
-
|
|
430
|
-
}
|
|
438
|
+
toolChoice
|
|
439
|
+
};
|
|
431
440
|
}
|
|
432
441
|
const adjusted = adjustMaxTokensForThinking(base.maxTokens || 0, model.maxTokens, options.reasoning);
|
|
433
|
-
return
|
|
442
|
+
return {
|
|
434
443
|
...base,
|
|
435
444
|
maxTokens: adjusted.maxTokens,
|
|
445
|
+
thinkingBudgetTokens: adjusted.thinkingBudget,
|
|
436
446
|
thinkingEnabled: true,
|
|
437
|
-
|
|
447
|
+
toolChoice
|
|
448
|
+
};
|
|
449
|
+
}
|
|
450
|
+
export const streamSimpleAnthropic = (model, context, options) => {
|
|
451
|
+
const apiKey = options?.apiKey || getEnvApiKey(model.provider);
|
|
452
|
+
if (!apiKey) {
|
|
453
|
+
throw new Error(`No API key for provider: ${model.provider}`);
|
|
454
|
+
}
|
|
455
|
+
return streamAnthropic(model, context, {
|
|
456
|
+
...resolveSimpleAnthropicOptions(model, options),
|
|
457
|
+
apiKey
|
|
438
458
|
});
|
|
439
459
|
};
|
|
440
460
|
function isOAuthToken(apiKey) {
|
|
@@ -443,7 +463,7 @@ function isOAuthToken(apiKey) {
|
|
|
443
463
|
function createClient(model, apiKey, interleavedThinking, optionsHeaders, fetchOptions, fetchImpl) {
|
|
444
464
|
// Adaptive thinking models (Opus 4.6, Sonnet 4.6) have interleaved thinking built-in.
|
|
445
465
|
// The beta header is deprecated on Opus 4.6 and redundant on Sonnet 4.6, so skip it.
|
|
446
|
-
const needsInterleavedBeta = interleavedThinking && !supportsAdaptiveThinking(model
|
|
466
|
+
const needsInterleavedBeta = interleavedThinking && !supportsAdaptiveThinking(model);
|
|
447
467
|
const betaFeatures = ['fine-grained-tool-streaming-2025-05-14'];
|
|
448
468
|
if (needsInterleavedBeta) {
|
|
449
469
|
betaFeatures.push('interleaved-thinking-2025-05-14');
|
|
@@ -490,7 +510,7 @@ function buildParams(model, context, options) {
|
|
|
490
510
|
}
|
|
491
511
|
// Configure adaptive thinking for current models or budget-based thinking for older models.
|
|
492
512
|
if (options?.thinkingEnabled && model.reasoning) {
|
|
493
|
-
if (supportsAdaptiveThinking(model
|
|
513
|
+
if (supportsAdaptiveThinking(model)) {
|
|
494
514
|
// Adaptive thinking: Claude decides when and how much to think
|
|
495
515
|
params.thinking = { type: 'adaptive', display: 'summarized' };
|
|
496
516
|
if (options.effort) {
|
|
@@ -505,6 +525,9 @@ function buildParams(model, context, options) {
|
|
|
505
525
|
};
|
|
506
526
|
}
|
|
507
527
|
}
|
|
528
|
+
else if (options?.thinkingEnabled === false && model.reasoning) {
|
|
529
|
+
params.thinking = { type: 'disabled' };
|
|
530
|
+
}
|
|
508
531
|
if (options?.metadata) {
|
|
509
532
|
const userId = options.metadata.user_id;
|
|
510
533
|
if (typeof userId === 'string') {
|
|
@@ -521,6 +544,13 @@ function buildParams(model, context, options) {
|
|
|
521
544
|
}
|
|
522
545
|
return params;
|
|
523
546
|
}
|
|
547
|
+
/** Serialize one Anthropic request for either the SDK stream or a raw invoke transport. */
|
|
548
|
+
export function buildAnthropicMessagesRequest(model, context, options, stream) {
|
|
549
|
+
return {
|
|
550
|
+
...buildParams(model, context, resolveSimpleAnthropicOptions(model, options)),
|
|
551
|
+
stream
|
|
552
|
+
};
|
|
553
|
+
}
|
|
524
554
|
// Normalize tool call IDs to match Anthropic's required pattern and length
|
|
525
555
|
function normalizeToolCallId(id) {
|
|
526
556
|
return id.replace(/[^a-zA-Z0-9_-]/g, '_').slice(0, 64);
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import type { SimpleStreamOptions, StreamFunction, StreamOptions } from '../types.js';
|
|
2
|
+
import { type OpenAIReasoningEffort } from './openai-reasoning.js';
|
|
2
3
|
export interface AzureOpenAIResponsesOptions extends StreamOptions {
|
|
3
|
-
reasoningEffort?:
|
|
4
|
+
reasoningEffort?: OpenAIReasoningEffort;
|
|
4
5
|
reasoningSummary?: 'auto' | 'detailed' | 'concise' | null;
|
|
5
6
|
azureApiVersion?: string;
|
|
6
7
|
azureResourceName?: string;
|
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
import { AzureOpenAI } from 'openai';
|
|
2
2
|
import { getEnvApiKey } from '../env-api-keys.js';
|
|
3
|
-
import { supportsXhigh } from '../models.js';
|
|
4
3
|
import { AssistantMessageEventStream } from '../utils/event-stream.js';
|
|
4
|
+
import { resolveOpenAIReasoningEffort } from './openai-reasoning.js';
|
|
5
5
|
import { convertResponsesMessages, convertResponsesTools, processResponsesStream } from './openai-responses-shared.js';
|
|
6
|
-
import { buildBaseOptions
|
|
6
|
+
import { buildBaseOptions } from './simple-options.js';
|
|
7
7
|
const DEFAULT_AZURE_API_VERSION = 'v1';
|
|
8
8
|
const AZURE_TOOL_CALL_PROVIDERS = new Set(['openai', 'opencode', 'azure-openai-responses']);
|
|
9
9
|
function parseDeploymentNameMap(value) {
|
|
@@ -88,9 +88,7 @@ export const streamSimpleAzureOpenAIResponses = (model, context, options) => {
|
|
|
88
88
|
throw new Error(`No API key for provider: ${model.provider}`);
|
|
89
89
|
}
|
|
90
90
|
const base = buildBaseOptions(model, options, apiKey);
|
|
91
|
-
const reasoningEffort =
|
|
92
|
-
? options?.reasoning
|
|
93
|
-
: clampReasoning(options?.reasoning);
|
|
91
|
+
const reasoningEffort = resolveOpenAIReasoningEffort(model, options?.reasoning);
|
|
94
92
|
return streamAzureOpenAIResponses(model, context, {
|
|
95
93
|
...base,
|
|
96
94
|
reasoningEffort
|
|
@@ -160,25 +158,11 @@ function buildParams(model, context, options, deploymentName) {
|
|
|
160
158
|
if (model.reasoning) {
|
|
161
159
|
if (options?.reasoningEffort || options?.reasoningSummary) {
|
|
162
160
|
params.reasoning = {
|
|
163
|
-
effort: options?.reasoningEffort || 'medium',
|
|
161
|
+
effort: (options?.reasoningEffort || 'medium'),
|
|
164
162
|
summary: options?.reasoningSummary || 'auto'
|
|
165
163
|
};
|
|
166
164
|
params.include = ['reasoning.encrypted_content'];
|
|
167
165
|
}
|
|
168
|
-
else {
|
|
169
|
-
if (model.name.toLowerCase().startsWith('gpt-5')) {
|
|
170
|
-
// Jesus Christ, see https://community.openai.com/t/need-reasoning-false-option-for-gpt-5/1351588/7
|
|
171
|
-
messages.push({
|
|
172
|
-
role: 'developer',
|
|
173
|
-
content: [
|
|
174
|
-
{
|
|
175
|
-
type: 'input_text',
|
|
176
|
-
text: '# Juice: 0 !important'
|
|
177
|
-
}
|
|
178
|
-
]
|
|
179
|
-
});
|
|
180
|
-
}
|
|
181
|
-
}
|
|
182
166
|
}
|
|
183
167
|
return params;
|
|
184
168
|
}
|
|
@@ -1,7 +1,9 @@
|
|
|
1
|
-
import type { SimpleStreamOptions, StreamFunction, StreamOptions } from '../types.js';
|
|
1
|
+
import type { Context, Model, SimpleStreamOptions, StreamFunction, StreamOptions } from '../types.js';
|
|
2
2
|
import { type GoogleThinkingLevel } from './google-shared.js';
|
|
3
3
|
export interface GoogleVertexOptions extends StreamOptions {
|
|
4
|
-
toolChoice?: 'auto' | 'none' | 'any'
|
|
4
|
+
toolChoice?: 'auto' | 'none' | 'any' | {
|
|
5
|
+
readonly name: string;
|
|
6
|
+
};
|
|
5
7
|
thinking?: {
|
|
6
8
|
enabled: boolean;
|
|
7
9
|
budgetTokens?: number;
|
|
@@ -12,4 +14,8 @@ export interface GoogleVertexOptions extends StreamOptions {
|
|
|
12
14
|
}
|
|
13
15
|
export declare const streamGoogleVertex: StreamFunction<'google-vertex', GoogleVertexOptions>;
|
|
14
16
|
export declare const streamSimpleGoogleVertex: StreamFunction<'google-vertex', SimpleStreamOptions>;
|
|
17
|
+
/** Serialize the provider-neutral request into the Vertex REST wire shape. */
|
|
18
|
+
export declare function buildGoogleVertexRequest(model: Model<'google-vertex'>, context: Context, options: SimpleStreamOptions | undefined): Record<string, unknown>;
|
|
19
|
+
/** Build the api-v2 Vertex-shaped endpoint used by CLI and embedded transports. */
|
|
20
|
+
export declare function googleVertexGatewayEndpoint(baseUrl: string, modelId: string, operation: 'generateContent' | 'streamGenerateContent'): string;
|
|
15
21
|
//# sourceMappingURL=google-vertex.d.ts.map
|