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
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
import { GoogleGenAI, ThinkingLevel } from '@google/genai';
|
|
2
|
-
import { calculateCost } from '../models.js';
|
|
2
|
+
import { assertModelSupportsReasoningLevel, calculateCost } from '../models.js';
|
|
3
3
|
import { AssistantMessageEventStream } from '../utils/event-stream.js';
|
|
4
4
|
import { sanitizeSurrogates } from '../utils/sanitize-unicode.js';
|
|
5
5
|
import { convertMessages, convertTools, isGemini3FlashModelId, isGemini3ProModelId, isThinkingPart, mapStopReason, mapToolChoice, retainThoughtSignature } from './google-shared.js';
|
|
6
|
-
import { buildBaseOptions
|
|
6
|
+
import { buildBaseOptions } from './simple-options.js';
|
|
7
7
|
const API_VERSION = 'v1';
|
|
8
8
|
const THINKING_LEVEL_MAP = {
|
|
9
9
|
THINKING_LEVEL_UNSPECIFIED: ThinkingLevel.THINKING_LEVEL_UNSPECIFIED,
|
|
@@ -226,32 +226,36 @@ export const streamGoogleVertex = (model, context, options) => {
|
|
|
226
226
|
return stream;
|
|
227
227
|
};
|
|
228
228
|
export const streamSimpleGoogleVertex = (model, context, options) => {
|
|
229
|
-
|
|
230
|
-
|
|
231
|
-
|
|
232
|
-
|
|
233
|
-
|
|
234
|
-
|
|
235
|
-
|
|
236
|
-
|
|
229
|
+
return streamGoogleVertex(model, context, resolveSimpleGoogleVertexOptions(model, options));
|
|
230
|
+
};
|
|
231
|
+
function resolveSimpleGoogleVertexOptions(model, options) {
|
|
232
|
+
const base = {
|
|
233
|
+
...buildBaseOptions(model, options, undefined),
|
|
234
|
+
toolChoice: typeof options?.toolChoice === 'object'
|
|
235
|
+
? options.toolChoice
|
|
236
|
+
: options?.toolChoice === 'required'
|
|
237
|
+
? 'any'
|
|
238
|
+
: options?.toolChoice
|
|
239
|
+
};
|
|
240
|
+
if (options?.reasoning === undefined)
|
|
241
|
+
return base;
|
|
242
|
+
if (!model.capabilities?.reasoning)
|
|
243
|
+
return base;
|
|
244
|
+
assertModelSupportsReasoningLevel(model, options.reasoning);
|
|
245
|
+
if (options.reasoning === 'off')
|
|
246
|
+
return { ...base, thinking: { enabled: false } };
|
|
237
247
|
const geminiModel = model;
|
|
238
248
|
if (isGemini3ProModelId(geminiModel.id) || isGemini3FlashModelId(geminiModel.id)) {
|
|
239
|
-
return
|
|
249
|
+
return {
|
|
240
250
|
...base,
|
|
241
251
|
thinking: {
|
|
242
252
|
enabled: true,
|
|
243
|
-
level: getGemini3ThinkingLevel(
|
|
253
|
+
level: getGemini3ThinkingLevel(options.reasoning)
|
|
244
254
|
}
|
|
245
|
-
}
|
|
255
|
+
};
|
|
246
256
|
}
|
|
247
|
-
|
|
248
|
-
|
|
249
|
-
thinking: {
|
|
250
|
-
enabled: true,
|
|
251
|
-
budgetTokens: getGoogleBudget(geminiModel, effort)
|
|
252
|
-
}
|
|
253
|
-
});
|
|
254
|
-
};
|
|
257
|
+
throw new Error(`No reasoning serialization is configured for Vertex model "${model.id}".`);
|
|
258
|
+
}
|
|
255
259
|
function createClient(model, project, location, optionsHeaders) {
|
|
256
260
|
const httpOptions = {};
|
|
257
261
|
if (model.headers || optionsHeaders) {
|
|
@@ -297,7 +301,10 @@ function buildParams(model, context, options = {}) {
|
|
|
297
301
|
if (context.tools && context.tools.length > 0 && options.toolChoice) {
|
|
298
302
|
config.toolConfig = {
|
|
299
303
|
functionCallingConfig: {
|
|
300
|
-
|
|
304
|
+
...(typeof options.toolChoice === 'object'
|
|
305
|
+
? { allowedFunctionNames: [options.toolChoice.name] }
|
|
306
|
+
: {}),
|
|
307
|
+
mode: mapToolChoice(typeof options.toolChoice === 'object' ? 'any' : options.toolChoice)
|
|
301
308
|
}
|
|
302
309
|
};
|
|
303
310
|
}
|
|
@@ -327,17 +334,40 @@ function buildParams(model, context, options = {}) {
|
|
|
327
334
|
};
|
|
328
335
|
return params;
|
|
329
336
|
}
|
|
330
|
-
|
|
331
|
-
|
|
332
|
-
|
|
333
|
-
|
|
334
|
-
|
|
335
|
-
|
|
336
|
-
|
|
337
|
-
|
|
338
|
-
|
|
339
|
-
|
|
340
|
-
|
|
337
|
+
/** Serialize the provider-neutral request into the Vertex REST wire shape. */
|
|
338
|
+
export function buildGoogleVertexRequest(model, context, options) {
|
|
339
|
+
const params = buildParams(model, context, resolveSimpleGoogleVertexOptions(model, options));
|
|
340
|
+
const config = { ...(params.config ?? {}) };
|
|
341
|
+
delete config.abortSignal;
|
|
342
|
+
const systemInstruction = config.systemInstruction;
|
|
343
|
+
const tools = config.tools;
|
|
344
|
+
const toolConfig = config.toolConfig;
|
|
345
|
+
const thinkingConfig = config.thinkingConfig;
|
|
346
|
+
delete config.systemInstruction;
|
|
347
|
+
delete config.tools;
|
|
348
|
+
delete config.toolConfig;
|
|
349
|
+
delete config.thinkingConfig;
|
|
350
|
+
if (thinkingConfig !== undefined)
|
|
351
|
+
config.thinkingConfig = thinkingConfig;
|
|
352
|
+
return {
|
|
353
|
+
contents: params.contents,
|
|
354
|
+
...(typeof systemInstruction === 'string'
|
|
355
|
+
? { systemInstruction: { parts: [{ text: systemInstruction }] } }
|
|
356
|
+
: systemInstruction
|
|
357
|
+
? { systemInstruction }
|
|
358
|
+
: {}),
|
|
359
|
+
...(tools ? { tools } : {}),
|
|
360
|
+
...(toolConfig ? { toolConfig } : {}),
|
|
361
|
+
...(Object.keys(config).length > 0 ? { generationConfig: config } : {})
|
|
362
|
+
};
|
|
363
|
+
}
|
|
364
|
+
/** Build the api-v2 Vertex-shaped endpoint used by CLI and embedded transports. */
|
|
365
|
+
export function googleVertexGatewayEndpoint(baseUrl, modelId, operation) {
|
|
366
|
+
const normalized = baseUrl.replace(/\/+$/, '');
|
|
367
|
+
return (`${normalized}/v1/projects/-/locations/global/publishers/google/models/` +
|
|
368
|
+
`${encodeURIComponent(modelId)}:${operation}`);
|
|
369
|
+
}
|
|
370
|
+
function getGemini3ThinkingLevel(effort) {
|
|
341
371
|
switch (effort) {
|
|
342
372
|
case 'minimal':
|
|
343
373
|
return 'MINIMAL';
|
|
@@ -347,27 +377,9 @@ function getGemini3ThinkingLevel(effort, model) {
|
|
|
347
377
|
return 'MEDIUM';
|
|
348
378
|
case 'high':
|
|
349
379
|
return 'HIGH';
|
|
380
|
+
case 'xhigh':
|
|
381
|
+
case 'max':
|
|
382
|
+
throw new Error(`Gemini 3 does not support reasoning level "${effort}".`);
|
|
350
383
|
}
|
|
351
384
|
}
|
|
352
|
-
function getGoogleBudget(model, effort) {
|
|
353
|
-
if (model.id.includes('2.5-pro')) {
|
|
354
|
-
const budgets = {
|
|
355
|
-
minimal: 128,
|
|
356
|
-
low: 2048,
|
|
357
|
-
medium: 8192,
|
|
358
|
-
high: 32768
|
|
359
|
-
};
|
|
360
|
-
return budgets[effort];
|
|
361
|
-
}
|
|
362
|
-
if (model.id.includes('2.5-flash')) {
|
|
363
|
-
const budgets = {
|
|
364
|
-
minimal: 128,
|
|
365
|
-
low: 2048,
|
|
366
|
-
medium: 8192,
|
|
367
|
-
high: 24576
|
|
368
|
-
};
|
|
369
|
-
return budgets[effort];
|
|
370
|
-
}
|
|
371
|
-
return -1;
|
|
372
|
-
}
|
|
373
385
|
//# sourceMappingURL=google-vertex.js.map
|
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
import { GoogleGenAI } from '@google/genai';
|
|
2
2
|
import { getEnvApiKey } from '../env-api-keys.js';
|
|
3
|
-
import { calculateCost } from '../models.js';
|
|
3
|
+
import { assertModelSupportsReasoningLevel, calculateCost } from '../models.js';
|
|
4
4
|
import { AssistantMessageEventStream } from '../utils/event-stream.js';
|
|
5
5
|
import { sanitizeSurrogates } from '../utils/sanitize-unicode.js';
|
|
6
6
|
import { convertMessages, convertTools, isGemini3FlashModelId, isGemini3ProModelId, isThinkingPart, mapStopReason, mapToolChoice, retainThoughtSignature } from './google-shared.js';
|
|
7
|
-
import { buildBaseOptions
|
|
7
|
+
import { buildBaseOptions } from './simple-options.js';
|
|
8
8
|
// Counter for generating unique tool call IDs
|
|
9
9
|
let toolCallCounter = 0;
|
|
10
10
|
export const streamGoogle = (model, context, options) => {
|
|
@@ -224,30 +224,25 @@ export const streamSimpleGoogle = (model, context, options) => {
|
|
|
224
224
|
throw new Error(`No API key for provider: ${model.provider}`);
|
|
225
225
|
}
|
|
226
226
|
const base = buildBaseOptions(model, options, apiKey);
|
|
227
|
-
if (
|
|
228
|
-
return streamGoogle(model, context,
|
|
229
|
-
|
|
230
|
-
|
|
231
|
-
|
|
227
|
+
if (options?.reasoning === undefined)
|
|
228
|
+
return streamGoogle(model, context, base);
|
|
229
|
+
if (!model.capabilities?.reasoning)
|
|
230
|
+
return streamGoogle(model, context, base);
|
|
231
|
+
assertModelSupportsReasoningLevel(model, options.reasoning);
|
|
232
|
+
if (options.reasoning === 'off') {
|
|
233
|
+
return streamGoogle(model, context, { ...base, thinking: { enabled: false } });
|
|
232
234
|
}
|
|
233
|
-
const effort = clampReasoning(options.reasoning);
|
|
234
235
|
const googleModel = model;
|
|
235
236
|
if (isGemini3ProModelId(googleModel.id) || isGemini3FlashModelId(googleModel.id)) {
|
|
236
237
|
return streamGoogle(model, context, {
|
|
237
238
|
...base,
|
|
238
239
|
thinking: {
|
|
239
240
|
enabled: true,
|
|
240
|
-
level: getGemini3ThinkingLevel(
|
|
241
|
+
level: getGemini3ThinkingLevel(options.reasoning)
|
|
241
242
|
}
|
|
242
243
|
});
|
|
243
244
|
}
|
|
244
|
-
|
|
245
|
-
...base,
|
|
246
|
-
thinking: {
|
|
247
|
-
enabled: true,
|
|
248
|
-
budgetTokens: getGoogleBudget(googleModel, effort)
|
|
249
|
-
}
|
|
250
|
-
});
|
|
245
|
+
throw new Error(`No reasoning serialization is configured for Google model "${model.id}".`);
|
|
251
246
|
};
|
|
252
247
|
function createClient(model, apiKey, optionsHeaders) {
|
|
253
248
|
const httpOptions = {};
|
|
@@ -311,17 +306,7 @@ function buildParams(model, context, options = {}) {
|
|
|
311
306
|
};
|
|
312
307
|
return params;
|
|
313
308
|
}
|
|
314
|
-
function getGemini3ThinkingLevel(effort
|
|
315
|
-
if (isGemini3ProModelId(model.id)) {
|
|
316
|
-
switch (effort) {
|
|
317
|
-
case 'minimal':
|
|
318
|
-
case 'low':
|
|
319
|
-
return 'LOW';
|
|
320
|
-
case 'medium':
|
|
321
|
-
case 'high':
|
|
322
|
-
return 'HIGH';
|
|
323
|
-
}
|
|
324
|
-
}
|
|
309
|
+
function getGemini3ThinkingLevel(effort) {
|
|
325
310
|
switch (effort) {
|
|
326
311
|
case 'minimal':
|
|
327
312
|
return 'MINIMAL';
|
|
@@ -331,27 +316,9 @@ function getGemini3ThinkingLevel(effort, model) {
|
|
|
331
316
|
return 'MEDIUM';
|
|
332
317
|
case 'high':
|
|
333
318
|
return 'HIGH';
|
|
319
|
+
case 'xhigh':
|
|
320
|
+
case 'max':
|
|
321
|
+
throw new Error(`Gemini 3 does not support reasoning level "${effort}".`);
|
|
334
322
|
}
|
|
335
323
|
}
|
|
336
|
-
function getGoogleBudget(model, effort) {
|
|
337
|
-
if (model.id.includes('2.5-pro')) {
|
|
338
|
-
const budgets = {
|
|
339
|
-
minimal: 128,
|
|
340
|
-
low: 2048,
|
|
341
|
-
medium: 8192,
|
|
342
|
-
high: 32768
|
|
343
|
-
};
|
|
344
|
-
return budgets[effort];
|
|
345
|
-
}
|
|
346
|
-
if (model.id.includes('2.5-flash')) {
|
|
347
|
-
const budgets = {
|
|
348
|
-
minimal: 128,
|
|
349
|
-
low: 2048,
|
|
350
|
-
medium: 8192,
|
|
351
|
-
high: 24576
|
|
352
|
-
};
|
|
353
|
-
return budgets[effort];
|
|
354
|
-
}
|
|
355
|
-
return -1;
|
|
356
|
-
}
|
|
357
324
|
//# sourceMappingURL=google.js.map
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import type { ChatCompletionMessageParam } from 'openai/resources/chat/completions.js';
|
|
2
2
|
import type { Context, Model, OpenAICompletionsCompat, SimpleStreamOptions, StreamFunction, StreamOptions } from '../types.js';
|
|
3
|
+
import { type OpenAIReasoningEffort } from './openai-reasoning.js';
|
|
3
4
|
export interface OpenAICompletionsOptions extends StreamOptions {
|
|
4
5
|
toolChoice?: 'auto' | 'none' | 'required' | {
|
|
5
6
|
type: 'function';
|
|
@@ -7,9 +8,11 @@ export interface OpenAICompletionsOptions extends StreamOptions {
|
|
|
7
8
|
name: string;
|
|
8
9
|
};
|
|
9
10
|
};
|
|
10
|
-
reasoningEffort?:
|
|
11
|
+
reasoningEffort?: OpenAIReasoningEffort;
|
|
11
12
|
}
|
|
12
13
|
export declare const streamOpenAICompletions: StreamFunction<'openai-completions', OpenAICompletionsOptions>;
|
|
13
14
|
export declare const streamSimpleOpenAICompletions: StreamFunction<'openai-completions', SimpleStreamOptions>;
|
|
15
|
+
/** Serialize one Chat Completions request for either streaming or invoke. */
|
|
16
|
+
export declare function buildOpenAICompletionsRequest(model: Model<'openai-completions'>, context: Context, options: SimpleStreamOptions | undefined, stream: boolean): Record<string, unknown>;
|
|
14
17
|
export declare function convertMessages(model: Model<'openai-completions'>, context: Context, compat: Required<OpenAICompletionsCompat>): ChatCompletionMessageParam[];
|
|
15
18
|
//# sourceMappingURL=openai-completions.d.ts.map
|
|
@@ -1,11 +1,12 @@
|
|
|
1
1
|
import OpenAI from 'openai';
|
|
2
2
|
import { getEnvApiKey } from '../env-api-keys.js';
|
|
3
|
-
import { calculateCost
|
|
3
|
+
import { calculateCost } from '../models.js';
|
|
4
4
|
import { AssistantMessageEventStream } from '../utils/event-stream.js';
|
|
5
5
|
import { parseStreamingJson } from '../utils/json-parse.js';
|
|
6
6
|
import { sanitizeSurrogates } from '../utils/sanitize-unicode.js';
|
|
7
|
+
import { resolveOpenAIReasoningEffort } from './openai-reasoning.js';
|
|
7
8
|
import { applyNormalizedProviderError } from './provider-error-normalization.js';
|
|
8
|
-
import { buildBaseOptions
|
|
9
|
+
import { buildBaseOptions } from './simple-options.js';
|
|
9
10
|
import { transformMessages } from './transform-messages.js';
|
|
10
11
|
/**
|
|
11
12
|
* Normalize tool call ID for Mistral.
|
|
@@ -278,17 +279,23 @@ export const streamSimpleOpenAICompletions = (model, context, options) => {
|
|
|
278
279
|
if (!apiKey) {
|
|
279
280
|
throw new Error(`No API key for provider: ${model.provider}`);
|
|
280
281
|
}
|
|
281
|
-
const base = buildBaseOptions(model, options, apiKey);
|
|
282
|
-
const reasoningEffort = supportsXhigh(model)
|
|
283
|
-
? options?.reasoning
|
|
284
|
-
: clampReasoning(options?.reasoning);
|
|
285
|
-
const toolChoice = options?.toolChoice;
|
|
286
282
|
return streamOpenAICompletions(model, context, {
|
|
287
|
-
...
|
|
288
|
-
|
|
289
|
-
toolChoice
|
|
283
|
+
...resolveSimpleOpenAICompletionsOptions(model, options),
|
|
284
|
+
apiKey
|
|
290
285
|
});
|
|
291
286
|
};
|
|
287
|
+
function mapToolChoice(toolChoice) {
|
|
288
|
+
if (!toolChoice || typeof toolChoice === 'string')
|
|
289
|
+
return toolChoice;
|
|
290
|
+
return { function: { name: toolChoice.name }, type: 'function' };
|
|
291
|
+
}
|
|
292
|
+
function resolveSimpleOpenAICompletionsOptions(model, options) {
|
|
293
|
+
return {
|
|
294
|
+
...buildBaseOptions(model, options, options?.apiKey),
|
|
295
|
+
reasoningEffort: resolveOpenAIReasoningEffort(model, options?.reasoning),
|
|
296
|
+
toolChoice: mapToolChoice(options?.toolChoice)
|
|
297
|
+
};
|
|
298
|
+
}
|
|
292
299
|
function createClient(model, context, apiKey, optionsHeaders, fetchOptions, fetchImpl) {
|
|
293
300
|
if (!apiKey) {
|
|
294
301
|
if (!process.env.OPENAI_API_KEY) {
|
|
@@ -371,6 +378,15 @@ function buildParams(model, context, options) {
|
|
|
371
378
|
}
|
|
372
379
|
return params;
|
|
373
380
|
}
|
|
381
|
+
/** Serialize one Chat Completions request for either streaming or invoke. */
|
|
382
|
+
export function buildOpenAICompletionsRequest(model, context, options, stream) {
|
|
383
|
+
const params = buildParams(model, context, resolveSimpleOpenAICompletionsOptions(model, options));
|
|
384
|
+
const body = { ...params };
|
|
385
|
+
body.stream = stream;
|
|
386
|
+
if (!stream)
|
|
387
|
+
delete body.stream_options;
|
|
388
|
+
return body;
|
|
389
|
+
}
|
|
374
390
|
function maybeAddOpenRouterAnthropicCacheControl(model, messages) {
|
|
375
391
|
if (model.provider !== 'openrouter' || !model.id.startsWith('anthropic/'))
|
|
376
392
|
return;
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
import type { Api, Model, ReasoningLevel } from '../types.js';
|
|
2
|
+
export type OpenAIReasoningEffort = 'none' | 'minimal' | 'low' | 'medium' | 'high' | 'xhigh' | 'max';
|
|
3
|
+
/** Preserve exact native effort names; explicit `off` maps to OpenAI `none`. */
|
|
4
|
+
export declare function resolveOpenAIReasoningEffort(model: Model<Api>, level: ReasoningLevel | undefined): OpenAIReasoningEffort | undefined;
|
|
5
|
+
//# sourceMappingURL=openai-reasoning.d.ts.map
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import { assertModelSupportsReasoningLevel } from '../models.js';
|
|
2
|
+
/** Preserve exact native effort names; explicit `off` maps to OpenAI `none`. */
|
|
3
|
+
export function resolveOpenAIReasoningEffort(model, level) {
|
|
4
|
+
if (level === undefined)
|
|
5
|
+
return undefined;
|
|
6
|
+
// Unclassified custom/third-party models use their provider default. A
|
|
7
|
+
// configurable wire value requires an explicit model capability contract.
|
|
8
|
+
if (!model.capabilities?.reasoning)
|
|
9
|
+
return undefined;
|
|
10
|
+
assertModelSupportsReasoningLevel(model, level);
|
|
11
|
+
return level === 'off' ? 'none' : level;
|
|
12
|
+
}
|
|
13
|
+
//# sourceMappingURL=openai-reasoning.js.map
|
|
@@ -1,14 +1,18 @@
|
|
|
1
1
|
import type { ResponseCreateParamsStreaming } from 'openai/resources/responses/responses.js';
|
|
2
|
-
import type { SimpleStreamOptions, StreamFunction, StreamOptions } from '../types.js';
|
|
2
|
+
import type { Context, Model, SimpleStreamOptions, StreamFunction, StreamOptions } from '../types.js';
|
|
3
|
+
import { type OpenAIReasoningEffort } from './openai-reasoning.js';
|
|
3
4
|
export interface OpenAIResponsesOptions extends StreamOptions {
|
|
4
|
-
reasoningEffort?:
|
|
5
|
+
reasoningEffort?: OpenAIReasoningEffort;
|
|
5
6
|
reasoningSummary?: 'auto' | 'detailed' | 'concise' | null;
|
|
6
7
|
serviceTier?: ResponseCreateParamsStreaming['service_tier'];
|
|
8
|
+
toolChoice?: ResponseCreateParamsStreaming['tool_choice'];
|
|
7
9
|
}
|
|
8
10
|
/**
|
|
9
11
|
* Generate function for OpenAI Responses API
|
|
10
12
|
*/
|
|
11
13
|
export declare const streamOpenAIResponses: StreamFunction<'openai-responses', OpenAIResponsesOptions>;
|
|
12
14
|
export declare const streamSimpleOpenAIResponses: StreamFunction<'openai-responses', SimpleStreamOptions>;
|
|
15
|
+
/** Serialize one Responses API request for either streaming or invoke. */
|
|
16
|
+
export declare function buildOpenAIResponsesRequest(model: Model<'openai-responses'>, context: Context, options: SimpleStreamOptions | undefined, stream: boolean): Record<string, unknown>;
|
|
13
17
|
export declare function getServiceTierCostMultiplier(serviceTier: ResponseCreateParamsStreaming['service_tier'] | undefined): number;
|
|
14
18
|
//# sourceMappingURL=openai-responses.d.ts.map
|
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
import OpenAI 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
6
|
import { applyNormalizedProviderError } from './provider-error-normalization.js';
|
|
7
|
-
import { buildBaseOptions
|
|
7
|
+
import { buildBaseOptions } from './simple-options.js';
|
|
8
8
|
const OPENAI_TOOL_CALL_PROVIDERS = new Set(['openai', 'opencode']);
|
|
9
9
|
/**
|
|
10
10
|
* Resolve cache retention preference.
|
|
@@ -93,17 +93,26 @@ export const streamSimpleOpenAIResponses = (model, context, options) => {
|
|
|
93
93
|
if (!apiKey) {
|
|
94
94
|
throw new Error(`No API key for provider: ${model.provider}`);
|
|
95
95
|
}
|
|
96
|
-
const base = buildBaseOptions(model, options, apiKey);
|
|
97
|
-
const reasoningEffort = supportsXhigh(model)
|
|
98
|
-
? options?.reasoning
|
|
99
|
-
: clampReasoning(options?.reasoning);
|
|
100
96
|
const serviceTier = options?.serviceTier;
|
|
101
97
|
return streamOpenAIResponses(model, context, {
|
|
102
|
-
...
|
|
103
|
-
|
|
98
|
+
...resolveSimpleOpenAIResponsesOptions(model, options),
|
|
99
|
+
apiKey,
|
|
104
100
|
serviceTier
|
|
105
101
|
});
|
|
106
102
|
};
|
|
103
|
+
function mapToolChoice(toolChoice) {
|
|
104
|
+
if (!toolChoice || typeof toolChoice === 'string')
|
|
105
|
+
return toolChoice;
|
|
106
|
+
return { name: toolChoice.name, type: 'function' };
|
|
107
|
+
}
|
|
108
|
+
function resolveSimpleOpenAIResponsesOptions(model, options) {
|
|
109
|
+
return {
|
|
110
|
+
...buildBaseOptions(model, options, options?.apiKey),
|
|
111
|
+
reasoningEffort: resolveOpenAIReasoningEffort(model, options?.reasoning),
|
|
112
|
+
serviceTier: options?.serviceTier,
|
|
113
|
+
toolChoice: mapToolChoice(options?.toolChoice)
|
|
114
|
+
};
|
|
115
|
+
}
|
|
107
116
|
function createClient(model, context, apiKey, optionsHeaders, fetchOptions, fetchImpl) {
|
|
108
117
|
if (!apiKey) {
|
|
109
118
|
if (!process.env.OPENAI_API_KEY) {
|
|
@@ -147,31 +156,27 @@ function buildParams(model, context, options) {
|
|
|
147
156
|
if (context.tools) {
|
|
148
157
|
params.tools = convertResponsesTools(context.tools);
|
|
149
158
|
}
|
|
159
|
+
if (options?.toolChoice) {
|
|
160
|
+
params.tool_choice = options.toolChoice;
|
|
161
|
+
}
|
|
150
162
|
if (model.reasoning) {
|
|
151
163
|
if (options?.reasoningEffort || options?.reasoningSummary) {
|
|
152
164
|
params.reasoning = {
|
|
153
|
-
effort: options?.reasoningEffort || 'medium',
|
|
165
|
+
effort: (options?.reasoningEffort || 'medium'),
|
|
154
166
|
summary: options?.reasoningSummary || 'auto'
|
|
155
167
|
};
|
|
156
168
|
params.include = ['reasoning.encrypted_content'];
|
|
157
169
|
}
|
|
158
|
-
else {
|
|
159
|
-
if (model.name.startsWith('gpt-5')) {
|
|
160
|
-
// Jesus Christ, see https://community.openai.com/t/need-reasoning-false-option-for-gpt-5/1351588/7
|
|
161
|
-
messages.push({
|
|
162
|
-
role: 'developer',
|
|
163
|
-
content: [
|
|
164
|
-
{
|
|
165
|
-
type: 'input_text',
|
|
166
|
-
text: '# Juice: 0 !important'
|
|
167
|
-
}
|
|
168
|
-
]
|
|
169
|
-
});
|
|
170
|
-
}
|
|
171
|
-
}
|
|
172
170
|
}
|
|
173
171
|
return params;
|
|
174
172
|
}
|
|
173
|
+
/** Serialize one Responses API request for either streaming or invoke. */
|
|
174
|
+
export function buildOpenAIResponsesRequest(model, context, options, stream) {
|
|
175
|
+
return {
|
|
176
|
+
...buildParams(model, context, resolveSimpleOpenAIResponsesOptions(model, options)),
|
|
177
|
+
stream
|
|
178
|
+
};
|
|
179
|
+
}
|
|
175
180
|
export function getServiceTierCostMultiplier(serviceTier) {
|
|
176
181
|
switch (serviceTier) {
|
|
177
182
|
case 'flex':
|
|
@@ -1,7 +1,6 @@
|
|
|
1
|
-
import type { Api, Model, SimpleStreamOptions, StreamOptions
|
|
1
|
+
import type { Api, EnabledReasoningLevel, Model, SimpleStreamOptions, StreamOptions } from '../types.js';
|
|
2
2
|
export declare function buildBaseOptions(model: Model<Api>, options?: SimpleStreamOptions, apiKey?: string): StreamOptions;
|
|
3
|
-
export declare function
|
|
4
|
-
export declare function adjustMaxTokensForThinking(baseMaxTokens: number, modelMaxTokens: number, reasoningLevel: ThinkingLevel): {
|
|
3
|
+
export declare function adjustMaxTokensForThinking(baseMaxTokens: number, modelMaxTokens: number, reasoningLevel: EnabledReasoningLevel): {
|
|
5
4
|
maxTokens: number;
|
|
6
5
|
thinkingBudget: number;
|
|
7
6
|
};
|
|
@@ -14,19 +14,17 @@ export function buildBaseOptions(model, options, apiKey) {
|
|
|
14
14
|
metadata: options?.metadata
|
|
15
15
|
};
|
|
16
16
|
}
|
|
17
|
-
export function clampReasoning(effort) {
|
|
18
|
-
return effort === 'xhigh' ? 'high' : effort;
|
|
19
|
-
}
|
|
20
17
|
export function adjustMaxTokensForThinking(baseMaxTokens, modelMaxTokens, reasoningLevel) {
|
|
21
18
|
const budgets = {
|
|
22
19
|
minimal: 1024,
|
|
23
20
|
low: 2048,
|
|
24
21
|
medium: 8192,
|
|
25
|
-
high: 16384
|
|
22
|
+
high: 16384,
|
|
23
|
+
xhigh: 32768,
|
|
24
|
+
max: 49152
|
|
26
25
|
};
|
|
27
26
|
const minOutputTokens = 1024;
|
|
28
|
-
|
|
29
|
-
let thinkingBudget = budgets[level];
|
|
27
|
+
let thinkingBudget = budgets[reasoningLevel];
|
|
30
28
|
const maxTokens = Math.min(baseMaxTokens + thinkingBudget, modelMaxTokens);
|
|
31
29
|
if (maxTokens <= thinkingBudget) {
|
|
32
30
|
thinkingBudget = Math.max(0, maxTokens - minOutputTokens);
|
package/dist/ai/types.d.ts
CHANGED
|
@@ -4,7 +4,22 @@ export type KnownApi = 'openai-completions' | 'openai-responses' | 'azure-openai
|
|
|
4
4
|
export type Api = KnownApi | (string & {});
|
|
5
5
|
export type KnownProvider = 'anthropic' | 'google' | 'google-vertex' | 'xai' | 'groq' | 'cerebras' | 'openrouter' | 'vercel-ai-gateway' | 'zai' | 'minimax' | 'minimax-cn' | 'huggingface' | 'opencode' | 'kimi-coding';
|
|
6
6
|
export type Provider = KnownProvider | string;
|
|
7
|
-
|
|
7
|
+
/** Product-level reasoning selection. Absence means "use the provider/model default". */
|
|
8
|
+
export type ReasoningLevel = 'off' | 'minimal' | 'low' | 'medium' | 'high' | 'xhigh' | 'max';
|
|
9
|
+
export type EnabledReasoningLevel = Exclude<ReasoningLevel, 'off'>;
|
|
10
|
+
/** Provider-neutral tool selection policy. Providers own the wire-format mapping. */
|
|
11
|
+
export type ToolChoice = 'auto' | 'none' | 'required' | {
|
|
12
|
+
readonly name: string;
|
|
13
|
+
};
|
|
14
|
+
export interface ModelCapabilities {
|
|
15
|
+
/** Exact reasoning controls exposed by this model. */
|
|
16
|
+
readonly reasoning?: {
|
|
17
|
+
readonly control: 'adaptive-effort' | 'effort' | 'thinking-level' | 'budget' | 'fixed';
|
|
18
|
+
readonly levels: readonly EnabledReasoningLevel[];
|
|
19
|
+
readonly defaultLevel: EnabledReasoningLevel;
|
|
20
|
+
readonly supportsOff: boolean;
|
|
21
|
+
};
|
|
22
|
+
}
|
|
8
23
|
export type CacheRetention = 'none' | 'short' | 'long';
|
|
9
24
|
export type Transport = 'sse' | 'websocket' | 'auto';
|
|
10
25
|
export interface StreamOptions {
|
|
@@ -64,7 +79,8 @@ export interface StreamOptions {
|
|
|
64
79
|
}
|
|
65
80
|
export type ProviderStreamOptions = StreamOptions & Record<string, unknown>;
|
|
66
81
|
export interface SimpleStreamOptions extends StreamOptions {
|
|
67
|
-
reasoning?:
|
|
82
|
+
reasoning?: ReasoningLevel;
|
|
83
|
+
toolChoice?: ToolChoice;
|
|
68
84
|
}
|
|
69
85
|
export type StreamFunction<TApi extends Api = Api, TOptions extends StreamOptions = StreamOptions> = (model: Model<TApi>, context: Context, options?: TOptions) => AssistantMessageEventStream;
|
|
70
86
|
export type StreamFn = StreamFunction;
|
|
@@ -281,6 +297,7 @@ export interface Model<TApi extends Api> {
|
|
|
281
297
|
};
|
|
282
298
|
contextWindow: number;
|
|
283
299
|
maxTokens: number;
|
|
300
|
+
capabilities?: ModelCapabilities;
|
|
284
301
|
headers?: Record<string, string>;
|
|
285
302
|
/** Compatibility overrides for OpenAI-compatible APIs. If not set, auto-detected from baseUrl. */
|
|
286
303
|
compat?: TApi extends 'openai-completions' ? OpenAICompletionsCompat : never;
|
|
@@ -7,11 +7,12 @@
|
|
|
7
7
|
* only exposes a subset of methods and resolves model/thinking-level
|
|
8
8
|
* defaults consistently with how the CLI bootstrapped sessions previously.
|
|
9
9
|
*/
|
|
10
|
+
import { resolveModelReasoningLevel } from '../ai/models.js';
|
|
10
11
|
import { completeSimple, streamSimple } from '../ai/stream.js';
|
|
11
12
|
import { AgentStopReason } from '../contracts/agent-snapshot.js';
|
|
12
13
|
import { createAgentSnapshotFromAgentMessages } from '../core/agent-snapshot-builder.js';
|
|
13
14
|
import { createEmbeddedAgentRuntime } from '../core/embedded-agent-facade.js';
|
|
14
|
-
import { AgentController, AgentEngine
|
|
15
|
+
import { AgentController, AgentEngine } from '../core/index.js';
|
|
15
16
|
import { createPendingHostToolRequests } from '../core/pending-host-tool-requests.js';
|
|
16
17
|
import { getHostToolTimeoutMs } from '../embedded-agent/host-tools/timeouts.js';
|
|
17
18
|
import { AgentSession, LoginRequiredError } from './agent-session.js';
|
|
@@ -121,14 +122,14 @@ export async function createAgentSessionRuntimeAdapter(options) {
|
|
|
121
122
|
if (thinkingLevel === undefined && hasExistingSession) {
|
|
122
123
|
thinkingLevel = hasThinkingEntry
|
|
123
124
|
? existingSession.thinkingLevel
|
|
124
|
-
:
|
|
125
|
+
: settingsManager.getDefaultThinkingLevel();
|
|
125
126
|
}
|
|
126
127
|
if (thinkingLevel === undefined) {
|
|
127
|
-
thinkingLevel = settingsManager.getDefaultThinkingLevel()
|
|
128
|
-
}
|
|
129
|
-
if (!model || !model.reasoning) {
|
|
130
|
-
thinkingLevel = 'off';
|
|
128
|
+
thinkingLevel = settingsManager.getDefaultThinkingLevel();
|
|
131
129
|
}
|
|
130
|
+
thinkingLevel = model
|
|
131
|
+
? resolveModelReasoningLevel(model, thinkingLevel)
|
|
132
|
+
: 'off';
|
|
132
133
|
// Mutable holder so the AgentEngine constructor's `getApiKey` can resolve
|
|
133
134
|
// off the agent that we'll build below. Lets us construct the runtime (and
|
|
134
135
|
// pending host-tool requests that depend on its heartbeat) before the
|
|
@@ -170,10 +170,7 @@ export declare class AgentSession {
|
|
|
170
170
|
/** Details from the last prePromptContext call (e.g. { workbooks: string[] }). Read by TUI for annotations. */
|
|
171
171
|
lastPrePromptDetails?: unknown;
|
|
172
172
|
private readonly _sessionState;
|
|
173
|
-
private _collabClient;
|
|
174
173
|
private _sheetPool;
|
|
175
|
-
private _collabAwareness;
|
|
176
|
-
private _collabSync;
|
|
177
174
|
private _modelRegistry;
|
|
178
175
|
/** Fire-and-forget tool-call summary generation. */
|
|
179
176
|
private _summaryEmitter;
|
|
@@ -419,22 +416,10 @@ export declare class AgentSession {
|
|
|
419
416
|
getFollowUpMessages(): readonly string[];
|
|
420
417
|
/** Resource loader for skills, prompts, and context files used by this session. */
|
|
421
418
|
get resourceLoader(): RuntimeResourceLoader;
|
|
422
|
-
/** Active collaboration client when the session is part of a collab room, otherwise null. */
|
|
423
|
-
get collabClient(): import('./collab/collab-client.js').CollabClient | null;
|
|
424
|
-
/** Attach or detach the collaboration client for this session. */
|
|
425
|
-
set collabClient(client: import('./collab/collab-client.js').CollabClient | null);
|
|
426
419
|
/** Sheet-engine pool currently bound to this session, or null if unbound. */
|
|
427
420
|
get sheetPool(): import('@shortcut/mog-sandbox-runtime').SheetEnginePool | null;
|
|
428
421
|
/** Attach or detach the sheet-engine pool used by new-sheet flows. */
|
|
429
422
|
set sheetPool(pool: import('@shortcut/mog-sandbox-runtime').SheetEnginePool | null);
|
|
430
|
-
/** Awareness layer for the active collab session (peer cursors, presence), or null. */
|
|
431
|
-
get collabAwareness(): import('./collab/awareness.js').CollabAwareness | null;
|
|
432
|
-
/** Attach or detach the collab awareness layer. */
|
|
433
|
-
set collabAwareness(awareness: import('./collab/awareness.js').CollabAwareness | null);
|
|
434
|
-
/** Collab document sync controller for this session, or null if not in a room. */
|
|
435
|
-
get collabSync(): import('./collab/collab-sync.js').CollabSync | null;
|
|
436
|
-
/** Attach or detach the collab document sync controller. */
|
|
437
|
-
set collabSync(sync: import('./collab/collab-sync.js').CollabSync | null);
|
|
438
423
|
/**
|
|
439
424
|
* Abort current operation and wait for agent to become idle.
|
|
440
425
|
*/
|