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
|
@@ -55,6 +55,12 @@ export declare const ShortcutXLModelStreamTraceKind: {
|
|
|
55
55
|
readonly RequestReceived: "requestReceived";
|
|
56
56
|
};
|
|
57
57
|
export type ShortcutXLModelStreamTraceKind = (typeof ShortcutXLModelStreamTraceKind)[keyof typeof ShortcutXLModelStreamTraceKind];
|
|
58
|
+
/** Best-effort confirmation that an initial submit crossed the worker boundary. */
|
|
59
|
+
export interface ShortcutXLInitialSubmitReceipt {
|
|
60
|
+
readonly commandId: string;
|
|
61
|
+
readonly receivedAt: number;
|
|
62
|
+
readonly userMessageId: string;
|
|
63
|
+
}
|
|
58
64
|
/** One observability entry emitted while bridging requests across the port. */
|
|
59
65
|
export interface ShortcutXLModelStreamTraceEntry {
|
|
60
66
|
readonly eventKind?: ShortcutXLModelStreamEvent['kind'];
|
|
@@ -82,6 +88,7 @@ export interface ShortcutXLModelStreamBridgeMetrics {
|
|
|
82
88
|
export interface CreateEmbeddedAgentPortClientOptions {
|
|
83
89
|
hostToolExecutor: HostToolExecutor;
|
|
84
90
|
modelStreamRequestHandler?: ShortcutXLModelStreamRequestHandler;
|
|
91
|
+
onInitialSubmitReceived?: (receipt: ShortcutXLInitialSubmitReceipt) => void;
|
|
85
92
|
onModelStreamTrace?: (entry: ShortcutXLModelStreamTraceEntry) => void;
|
|
86
93
|
registry: ToolRegistry;
|
|
87
94
|
}
|
|
@@ -320,6 +320,21 @@ export function createEmbeddedAgentPortClient(port, options) {
|
|
|
320
320
|
}
|
|
321
321
|
const message = event.data;
|
|
322
322
|
switch (message.kind) {
|
|
323
|
+
case WorkerMessageKind.AgentCommandReceived:
|
|
324
|
+
// Awaited submits are steering. This receipt only diagnoses the initial handoff.
|
|
325
|
+
if (pendingRuntimeCommands.has(message.commandId))
|
|
326
|
+
return;
|
|
327
|
+
try {
|
|
328
|
+
options.onInitialSubmitReceived?.({
|
|
329
|
+
commandId: message.commandId,
|
|
330
|
+
receivedAt: message.receivedAt,
|
|
331
|
+
userMessageId: message.userMessageId
|
|
332
|
+
});
|
|
333
|
+
}
|
|
334
|
+
catch {
|
|
335
|
+
// Observability callbacks must not change worker command behavior.
|
|
336
|
+
}
|
|
337
|
+
return;
|
|
323
338
|
case WorkerMessageKind.AgentCommandAck: {
|
|
324
339
|
const pendingCommand = pendingRuntimeCommands.get(message.commandId);
|
|
325
340
|
if (!pendingCommand) {
|
|
@@ -4,7 +4,7 @@
|
|
|
4
4
|
* Owns request/response correlation and the abort-side detachment rule for
|
|
5
5
|
* results that arrive after the requesting tool has been cancelled.
|
|
6
6
|
*/
|
|
7
|
-
import { AgentEventKind, AgentProtocolErrorKind, toStructuredCloneSafeAgentEvent } from '../../contracts/agent-api.js';
|
|
7
|
+
import { AgentCommandKind, AgentEventKind, AgentProtocolErrorKind, toStructuredCloneSafeAgentEvent } from '../../contracts/agent-api.js';
|
|
8
8
|
import { WorkerMessageKind, isWorkerMessage } from '../../contracts/wire.js';
|
|
9
9
|
import { isOutOfCreditsError } from '../out-of-credits-error.js';
|
|
10
10
|
function createWorkerPortProtocolError(message) {
|
|
@@ -125,6 +125,22 @@ export function attachEmbeddedAgentDispatchToWorkerPort(port, controller, regist
|
|
|
125
125
|
return;
|
|
126
126
|
}
|
|
127
127
|
const message = event.data;
|
|
128
|
+
if (message.command.kind === AgentCommandKind.SubmitPrompt &&
|
|
129
|
+
message.command.submitOptions?.userMessageId) {
|
|
130
|
+
const receiptMessage = {
|
|
131
|
+
kind: WorkerMessageKind.AgentCommandReceived,
|
|
132
|
+
commandId: message.commandId,
|
|
133
|
+
receivedAt: Date.now(),
|
|
134
|
+
userMessageId: message.command.submitOptions.userMessageId
|
|
135
|
+
};
|
|
136
|
+
try {
|
|
137
|
+
// Observability is best-effort and must never block command handling.
|
|
138
|
+
port.postMessage(receiptMessage);
|
|
139
|
+
}
|
|
140
|
+
catch {
|
|
141
|
+
// The command can still run even if its diagnostic receipt cannot be posted.
|
|
142
|
+
}
|
|
143
|
+
}
|
|
128
144
|
void controller
|
|
129
145
|
.handleCommand(message.command)
|
|
130
146
|
.then(() => {
|
package/dist/main.js
CHANGED
|
@@ -2,7 +2,6 @@
|
|
|
2
2
|
import { isMogSdkAvailable } from '@shortcut/mog-sandbox-runtime';
|
|
3
3
|
import chalk from 'chalk';
|
|
4
4
|
import { existsSync } from 'fs';
|
|
5
|
-
import { supportsXhigh } from './ai/models.js';
|
|
6
5
|
import { SessionAutoApproveState } from './app/approvals/session-auto-approve.js';
|
|
7
6
|
import { AuthStorage, FileAuthStorageBackend } from './app/auth/auth-storage.js';
|
|
8
7
|
import { startProactiveRefresh } from './app/auth/refresh-timer.js';
|
|
@@ -85,6 +84,7 @@ import { createSessionManager } from './startup/session-selection.js';
|
|
|
85
84
|
import { applyRuntimeApiKeyAndRefreshShortcutLoggerContext, applyShortcutUserInfoToLogger, refreshShortcutUserInfoLoggerContext, resolveShortcutUserInfo } from './startup/shortcut-user-logger-context.js';
|
|
86
85
|
import { runForegroundUpdate } from './startup/update-action.js';
|
|
87
86
|
import { runStartupUpdateFlow } from './startup/update-flow.js';
|
|
87
|
+
import { refreshUpdateStatus } from './startup/update-manager.js';
|
|
88
88
|
import { runWindowsPythonRuntimeUpgradeIfNeeded } from './startup/windows-python-upgrade.js';
|
|
89
89
|
import { createWorkbookPrePromptContext } from './startup/workbook-pre-prompt.js';
|
|
90
90
|
let sessionRef = null;
|
|
@@ -160,7 +160,6 @@ export async function buildSessionOptions(parsed, sessionManager, modelRegistry,
|
|
|
160
160
|
settingsManager: _settingsManager,
|
|
161
161
|
filesystemApproval: approvalGates.fileAccess,
|
|
162
162
|
shellApproval: approvalGates.bash,
|
|
163
|
-
taskApproval: approvalGates.taskSpawn,
|
|
164
163
|
observability: clientLogger
|
|
165
164
|
};
|
|
166
165
|
// Shut down old resources before creating new ones (avoids orphans on reload)
|
|
@@ -248,7 +247,7 @@ export async function buildSessionOptions(parsed, sessionManager, modelRegistry,
|
|
|
248
247
|
const pool = await SheetEnginePool.init();
|
|
249
248
|
newSheetPool = pool;
|
|
250
249
|
sheetPoolRef = pool;
|
|
251
|
-
registerRuntimeTool(availableTools, createExecuteCodeTool({ platform: 'mog', pool }), runtimeToolDeps);
|
|
250
|
+
registerRuntimeTool(availableTools, createExecuteCodeTool({ platform: 'mog', pool, approval: approvalGates.excel }), runtimeToolDeps);
|
|
252
251
|
useNewSheet = true;
|
|
253
252
|
}
|
|
254
253
|
catch (error) {
|
|
@@ -693,6 +692,15 @@ export async function main(args) {
|
|
|
693
692
|
offline: offlineMode,
|
|
694
693
|
skipVersionCheck
|
|
695
694
|
});
|
|
695
|
+
const startupUpdateStatus = updatePromptOutcome.kind === 'continue' ? updatePromptOutcome.updateStatus : undefined;
|
|
696
|
+
const toInteractiveUpdate = (status) => status?.kind === 'available'
|
|
697
|
+
? {
|
|
698
|
+
currentVersion: status.currentVersion,
|
|
699
|
+
latestVersion: status.latestVersion
|
|
700
|
+
}
|
|
701
|
+
: undefined;
|
|
702
|
+
const interactiveUpdate = toInteractiveUpdate(startupUpdateStatus);
|
|
703
|
+
const updateChecksEnabled = isInteractive && !needsSetup && !offlineMode && !skipVersionCheck;
|
|
696
704
|
if (updatePromptOutcome.kind === 'run-update') {
|
|
697
705
|
console.log(chalk.green(`Installing ShortcutXL v${updatePromptOutcome.update.latestVersion}...`));
|
|
698
706
|
const updateResult = await runForegroundUpdate({
|
|
@@ -825,7 +833,7 @@ export async function main(args) {
|
|
|
825
833
|
cli_mode: cliMode
|
|
826
834
|
}
|
|
827
835
|
});
|
|
828
|
-
// Expose the sheet pool on the session
|
|
836
|
+
// Expose the sheet pool on the session for interactive workbook flows.
|
|
829
837
|
if (sheetPoolRef) {
|
|
830
838
|
session.sheetPool = sheetPoolRef;
|
|
831
839
|
}
|
|
@@ -876,16 +884,7 @@ export async function main(args) {
|
|
|
876
884
|
// This covers both --thinking <level> and --model <pattern>:<thinking>.
|
|
877
885
|
const cliThinkingOverride = parsed.thinking !== undefined || cliThinkingFromModel;
|
|
878
886
|
if (session.model && cliThinkingOverride) {
|
|
879
|
-
|
|
880
|
-
if (!session.model.reasoning) {
|
|
881
|
-
effectiveThinking = 'off';
|
|
882
|
-
}
|
|
883
|
-
else if (effectiveThinking === 'xhigh' && !supportsXhigh(session.model)) {
|
|
884
|
-
effectiveThinking = 'high';
|
|
885
|
-
}
|
|
886
|
-
if (effectiveThinking !== session.thinkingLevel) {
|
|
887
|
-
session.setThinkingLevel(effectiveThinking);
|
|
888
|
-
}
|
|
887
|
+
session.setThinkingLevel(session.thinkingLevel);
|
|
889
888
|
}
|
|
890
889
|
// In non-interactive modes, print startup messages to stderr since there's no TUI
|
|
891
890
|
if (!isInteractive) {
|
|
@@ -987,6 +986,11 @@ export async function main(args) {
|
|
|
987
986
|
initialImages,
|
|
988
987
|
initialMessages: parsed.messages,
|
|
989
988
|
verbose: parsed.verbose,
|
|
989
|
+
availableUpdate: interactiveUpdate,
|
|
990
|
+
updateLastCheckedAt: startupUpdateStatus?.lastCheckedAt,
|
|
991
|
+
checkForUpdate: updateChecksEnabled
|
|
992
|
+
? async () => toInteractiveUpdate(await refreshUpdateStatus())
|
|
993
|
+
: undefined,
|
|
990
994
|
fetchCreditBalance: async (apiKey) => {
|
|
991
995
|
const model = session.model;
|
|
992
996
|
if (!model || model.provider !== SHORTCUT_PROVIDER_ID)
|
package/dist/rpc/index.d.ts
CHANGED
|
@@ -8,5 +8,5 @@ export type { ImageContent } from '../ai/types.js';
|
|
|
8
8
|
export type { FileUploadData } from '../app/file-uploads.js';
|
|
9
9
|
export { prepareRpcAttachments, type RpcAttachment } from './rpc-attachments.js';
|
|
10
10
|
export { RpcClient, type ModelInfo, type RpcClientOptions, type RpcEventListener, type RpcHostEventListener, type RpcTerminationListener } from './rpc-client.js';
|
|
11
|
-
export { RPC_PROTOCOL_VERSION, isRpcClientMessage, isRpcServerMessage, type RpcAgentTask, type RpcAuthProvider, type RpcAuthState, type RpcClientMessage, type RpcCommand, type RpcCommandResult, type RpcContextUsage, type RpcFastModeState, type RpcHostEvent, type RpcInteractionRequest, type RpcInteractionResponse, type RpcModelInfo, type RpcPermissionState, type RpcResourceSkill, type RpcServerMessage, type RpcSessionSnapshot, type RpcSessionSummary, type RpcSettingsState, type RpcSlashCommand } from './rpc-types.js';
|
|
11
|
+
export { RPC_PROTOCOL_VERSION, isRpcClientMessage, isRpcServerMessage, type RpcAgentTask, type RpcAuthProvider, type RpcAuthState, type RpcClientMessage, type RpcCommand, type RpcCommandResult, type RpcContextUsage, type RpcFastModeState, type RpcHostEvent, type RpcInteractionRequest, type RpcInteractionResponse, type RpcLocalFileOpenResult, type RpcModelInfo, type RpcPermissionState, type RpcResourceSkill, type RpcServerMessage, type RpcSessionSnapshot, type RpcSessionSummary, type RpcSettingsState, type RpcSlashCommand } from './rpc-types.js';
|
|
12
12
|
//# sourceMappingURL=index.d.ts.map
|
package/dist/rpc/rpc-host.d.ts
CHANGED
|
@@ -4,6 +4,7 @@ import type { AuthStorage } from '../app/auth/auth-storage.js';
|
|
|
4
4
|
import type { ExtensionUIContext } from '../app/extensions/index.js';
|
|
5
5
|
import { listAllSessions } from '../app/session/session-catalog.js';
|
|
6
6
|
import type { RemoteApprovalController } from '../remote-control/approval-controller.js';
|
|
7
|
+
import { type LocalFileOpenResult } from '../shell/links/local-file-opener.js';
|
|
7
8
|
import { type RpcClientMessage, type RpcServerMessage, type RpcSlashCommand } from './rpc-types.js';
|
|
8
9
|
export interface RpcSessionHostOptions {
|
|
9
10
|
listSessions?: typeof listAllSessions;
|
|
@@ -14,6 +15,7 @@ export interface RpcSessionHostOptions {
|
|
|
14
15
|
logout(providerId?: string): Promise<void>;
|
|
15
16
|
}) => Promise<boolean>;
|
|
16
17
|
extraCommands?: RpcSlashCommand[];
|
|
18
|
+
openLocalFileHref?: (href: string) => Promise<LocalFileOpenResult>;
|
|
17
19
|
}
|
|
18
20
|
/** One ordered command/event surface, independent of JSONL or Node IPC. */
|
|
19
21
|
export declare class RpcSessionHost {
|
|
@@ -27,11 +29,13 @@ export declare class RpcSessionHost {
|
|
|
27
29
|
private readonly authStorage?;
|
|
28
30
|
private readonly commandHandler?;
|
|
29
31
|
private readonly extraCommands;
|
|
32
|
+
private readonly openLocalFileHref;
|
|
30
33
|
private activeLogin?;
|
|
31
34
|
private loginAbortController?;
|
|
32
35
|
private pendingMode?;
|
|
33
36
|
private sequence;
|
|
34
37
|
private commandQueue;
|
|
38
|
+
private fileOpenQueue;
|
|
35
39
|
private shutdownRequested;
|
|
36
40
|
private started;
|
|
37
41
|
private closed;
|
package/dist/rpc/rpc-host.js
CHANGED
|
@@ -12,6 +12,7 @@ import { getTaskScopeId, taskManager } from '../app/tools/task/manager.js';
|
|
|
12
12
|
import { getAgentDir } from '../config.js';
|
|
13
13
|
import { getCurrentMode, onModeChange } from '../mode-names.js';
|
|
14
14
|
import { exportSessionToHtml } from '../shell/export-html/index.js';
|
|
15
|
+
import { openLocalFileLink } from '../shell/links/local-file-opener.js';
|
|
15
16
|
import { RPC_PROTOCOL_VERSION } from './rpc-types.js';
|
|
16
17
|
function errorMessage(error) {
|
|
17
18
|
return error instanceof Error ? error.message : String(error);
|
|
@@ -28,11 +29,13 @@ export class RpcSessionHost {
|
|
|
28
29
|
authStorage;
|
|
29
30
|
commandHandler;
|
|
30
31
|
extraCommands;
|
|
32
|
+
openLocalFileHref;
|
|
31
33
|
activeLogin;
|
|
32
34
|
loginAbortController;
|
|
33
35
|
pendingMode;
|
|
34
36
|
sequence = 0;
|
|
35
37
|
commandQueue = Promise.resolve();
|
|
38
|
+
fileOpenQueue = Promise.resolve();
|
|
36
39
|
shutdownRequested = false;
|
|
37
40
|
started = false;
|
|
38
41
|
closed = false;
|
|
@@ -48,6 +51,7 @@ export class RpcSessionHost {
|
|
|
48
51
|
this.authStorage = options.authStorage;
|
|
49
52
|
this.commandHandler = options.commandHandler;
|
|
50
53
|
this.extraCommands = options.extraCommands ?? [];
|
|
54
|
+
this.openLocalFileHref = options.openLocalFileHref ?? openLocalFileLink;
|
|
51
55
|
}
|
|
52
56
|
subscribe(listener) {
|
|
53
57
|
this.listeners.add(listener);
|
|
@@ -134,6 +138,11 @@ export class RpcSessionHost {
|
|
|
134
138
|
return Promise.reject(new Error('RPC session host is not started'));
|
|
135
139
|
if (this.closed)
|
|
136
140
|
return Promise.reject(new Error('RPC session host is closed'));
|
|
141
|
+
if (message.command.type === 'open_local_file') {
|
|
142
|
+
const operation = this.fileOpenQueue.then(() => this.processMessage(message));
|
|
143
|
+
this.fileOpenQueue = operation.catch(() => { });
|
|
144
|
+
return operation;
|
|
145
|
+
}
|
|
137
146
|
const operation = this.commandQueue.then(() => this.processMessage(message));
|
|
138
147
|
this.commandQueue = operation.catch(() => { });
|
|
139
148
|
return operation;
|
|
@@ -640,22 +649,16 @@ export class RpcSessionHost {
|
|
|
640
649
|
this.publishSnapshot();
|
|
641
650
|
return this.success();
|
|
642
651
|
}
|
|
643
|
-
case 'send_collab_message': {
|
|
644
|
-
const client = this.session.collabClient;
|
|
645
|
-
if (!client?.state.roomId)
|
|
646
|
-
return this.failure('Not in a collaboration session');
|
|
647
|
-
const message = command.message.trim();
|
|
648
|
-
if (!message)
|
|
649
|
-
return this.failure('Collaboration message cannot be empty');
|
|
650
|
-
client.sendChat(message);
|
|
651
|
-
return this.success();
|
|
652
|
-
}
|
|
653
652
|
case 'get_session_stats':
|
|
654
653
|
return this.success(this.session.getSessionStats());
|
|
655
654
|
case 'export_html':
|
|
656
655
|
return this.success({
|
|
657
656
|
path: await exportSessionToHtml(this.session, command.outputPath)
|
|
658
657
|
});
|
|
658
|
+
case 'open_local_file':
|
|
659
|
+
if (typeof command.href !== 'string')
|
|
660
|
+
return this.failure('File link must be a string');
|
|
661
|
+
return this.success(await this.openLocalFileHref(command.href));
|
|
659
662
|
case 'switch_session':
|
|
660
663
|
return this.success({
|
|
661
664
|
cancelled: !(await this.session.switchSession(command.sessionPath))
|
|
@@ -810,20 +813,6 @@ export class RpcSessionHost {
|
|
|
810
813
|
errorMessage: task.errorMessage
|
|
811
814
|
}));
|
|
812
815
|
})(),
|
|
813
|
-
collaboration: (() => {
|
|
814
|
-
const state = this.session.collabClient?.state;
|
|
815
|
-
return {
|
|
816
|
-
connected: state?.connected ?? false,
|
|
817
|
-
roomId: state?.roomId ?? null,
|
|
818
|
-
peers: state
|
|
819
|
-
? [...state.peers.values()].map((peer) => ({
|
|
820
|
-
id: peer.peerId,
|
|
821
|
-
displayName: peer.displayName,
|
|
822
|
-
sheets: peer.sheets
|
|
823
|
-
}))
|
|
824
|
-
: []
|
|
825
|
-
};
|
|
826
|
-
})(),
|
|
827
816
|
isStreaming: this.session.isStreaming,
|
|
828
817
|
isCompacting: this.session.isCompacting,
|
|
829
818
|
steeringMode: this.session.steeringMode,
|
package/dist/rpc/rpc-types.d.ts
CHANGED
|
@@ -97,19 +97,6 @@ export interface RpcAgentTask {
|
|
|
97
97
|
resultText?: string;
|
|
98
98
|
errorMessage?: string;
|
|
99
99
|
}
|
|
100
|
-
export interface RpcCollaborationState {
|
|
101
|
-
connected: boolean;
|
|
102
|
-
roomId: string | null;
|
|
103
|
-
peers: Array<{
|
|
104
|
-
id: string;
|
|
105
|
-
displayName: string;
|
|
106
|
-
sheets?: Array<{
|
|
107
|
-
name: string;
|
|
108
|
-
cellCount: number;
|
|
109
|
-
usedRange?: string | null;
|
|
110
|
-
}>;
|
|
111
|
-
}>;
|
|
112
|
-
}
|
|
113
100
|
export interface RpcSessionSummary {
|
|
114
101
|
id: string;
|
|
115
102
|
path?: string;
|
|
@@ -124,6 +111,9 @@ export interface RpcContextUsage {
|
|
|
124
111
|
contextWindow: number;
|
|
125
112
|
percent: number | null;
|
|
126
113
|
}
|
|
114
|
+
export interface RpcLocalFileOpenResult {
|
|
115
|
+
path: string;
|
|
116
|
+
}
|
|
127
117
|
export interface RpcSessionSnapshot {
|
|
128
118
|
session: RpcSessionSummary;
|
|
129
119
|
environment: {
|
|
@@ -143,7 +133,6 @@ export interface RpcSessionSnapshot {
|
|
|
143
133
|
settings: RpcSettingsState;
|
|
144
134
|
goal: ShortcutXLThreadGoal | null;
|
|
145
135
|
agentTasks: RpcAgentTask[];
|
|
146
|
-
collaboration: RpcCollaborationState;
|
|
147
136
|
isStreaming: boolean;
|
|
148
137
|
isCompacting: boolean;
|
|
149
138
|
steeringMode: 'all' | 'one-at-a-time';
|
|
@@ -287,14 +276,14 @@ export type RpcCommand = {
|
|
|
287
276
|
type: 'message_agent_task';
|
|
288
277
|
agentId: string;
|
|
289
278
|
message: string;
|
|
290
|
-
} | {
|
|
291
|
-
type: 'send_collab_message';
|
|
292
|
-
message: string;
|
|
293
279
|
} | {
|
|
294
280
|
type: 'get_session_stats';
|
|
295
281
|
} | {
|
|
296
282
|
type: 'export_html';
|
|
297
283
|
outputPath?: string;
|
|
284
|
+
} | {
|
|
285
|
+
type: 'open_local_file';
|
|
286
|
+
href: string;
|
|
298
287
|
} | {
|
|
299
288
|
type: 'switch_session';
|
|
300
289
|
sessionPath: string;
|
|
@@ -1,8 +1,11 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* Cross-platform "open" utility — launches files/directories in the OS default handler.
|
|
3
3
|
*/
|
|
4
|
+
export interface OpenInEditorOptions {
|
|
5
|
+
directory?: boolean;
|
|
6
|
+
}
|
|
4
7
|
/** Convert any error thrown by openInEditor into a human-readable string. */
|
|
5
8
|
export declare function formatOpenError(error: unknown): string;
|
|
6
9
|
/** Open a file or directory in the OS default editor/handler. */
|
|
7
|
-
export declare function openInEditor(path: string): Promise<void>;
|
|
10
|
+
export declare function openInEditor(path: string, options?: OpenInEditorOptions): Promise<void>;
|
|
8
11
|
//# sourceMappingURL=open.d.ts.map
|
|
@@ -1,15 +1,27 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* Cross-platform "open" utility — launches files/directories in the OS default handler.
|
|
3
3
|
*/
|
|
4
|
-
import { execFile } from 'child_process';
|
|
4
|
+
import { execFile, spawn } from 'child_process';
|
|
5
5
|
/** Convert any error thrown by openInEditor into a human-readable string. */
|
|
6
6
|
export function formatOpenError(error) {
|
|
7
7
|
return error instanceof Error ? error.message : String(error);
|
|
8
8
|
}
|
|
9
9
|
/** Open a file or directory in the OS default editor/handler. */
|
|
10
|
-
export function openInEditor(path) {
|
|
10
|
+
export function openInEditor(path, options = {}) {
|
|
11
11
|
if (process.platform === 'win32') {
|
|
12
12
|
return new Promise((resolve, reject) => {
|
|
13
|
+
if (options.directory) {
|
|
14
|
+
const child = spawn('explorer.exe', ['/n,', path], {
|
|
15
|
+
detached: true,
|
|
16
|
+
stdio: 'ignore'
|
|
17
|
+
});
|
|
18
|
+
child.once('error', reject);
|
|
19
|
+
child.once('spawn', () => {
|
|
20
|
+
child.unref();
|
|
21
|
+
resolve();
|
|
22
|
+
});
|
|
23
|
+
return;
|
|
24
|
+
}
|
|
13
25
|
execFile('rundll32.exe', ['url.dll,FileProtocolHandler', path], { windowsHide: true }, (error) => {
|
|
14
26
|
if (error) {
|
|
15
27
|
reject(error);
|
|
@@ -1,15 +1,13 @@
|
|
|
1
|
-
import { createApprovalGate
|
|
1
|
+
import { createApprovalGate } from './approval.js';
|
|
2
2
|
import { BashApprovalComponent } from './bash-approval.js';
|
|
3
3
|
import { ExcelApprovalComponent } from './excel-approval.js';
|
|
4
4
|
import { FileAccessApprovalComponent } from './file-access-approval.js';
|
|
5
5
|
import { SwitchModeApprovalComponent } from './switch-mode-approval.js';
|
|
6
|
-
import { TaskSpawnApprovalComponent } from './task-spawn-approval.js';
|
|
7
6
|
/** Build the terminal-owned approval surface, optionally routed to phone control. */
|
|
8
7
|
export function createInteractiveRuntimeApprovalGates(approvalState, remoteControl) {
|
|
9
8
|
return {
|
|
10
9
|
fileAccess: remoteControl.createApprovalGate(createApprovalGate(FileAccessApprovalComponent, approvalState)),
|
|
11
10
|
bash: remoteControl.createApprovalGate(createApprovalGate(BashApprovalComponent, approvalState)),
|
|
12
|
-
taskSpawn: remoteControl.createApprovalGate(createBatchingApprovalGate(TaskSpawnApprovalComponent)),
|
|
13
11
|
switchMode: remoteControl.createApprovalGate(createApprovalGate(SwitchModeApprovalComponent, approvalState)),
|
|
14
12
|
excel: remoteControl.createApprovalGate(createApprovalGate(ExcelApprovalComponent, approvalState))
|
|
15
13
|
};
|
|
@@ -7,8 +7,9 @@
|
|
|
7
7
|
*/
|
|
8
8
|
import { modelsAreEqual } from '../../../ai/models.js';
|
|
9
9
|
import { filterInteractiveSelectableModels } from '../../../app/session/session-models.js';
|
|
10
|
+
import { fuzzyFilter } from '../../../autocomplete/fuzzy.js';
|
|
10
11
|
import { formatCompactModelLabel } from '../../../model-display.js';
|
|
11
|
-
import { Container,
|
|
12
|
+
import { Container, getEditorKeybindings, Input, Spacer, Text } from '../../../tui/index.js';
|
|
12
13
|
import { theme } from '../../theme/runtime.js';
|
|
13
14
|
import { DynamicBorder } from '../primitives/dynamic-border.js';
|
|
14
15
|
/**
|
|
@@ -5,7 +5,7 @@
|
|
|
5
5
|
* exact matching, and `re:<pattern>` regex matching. Provides sort modes
|
|
6
6
|
* (threaded, recent, relevance) and an optional name-only filter.
|
|
7
7
|
*/
|
|
8
|
-
import { fuzzyMatch } from '../../../
|
|
8
|
+
import { fuzzyMatch } from '../../../autocomplete/fuzzy.js';
|
|
9
9
|
function normalizeWhitespaceLower(text) {
|
|
10
10
|
return text.toLowerCase().replace(/\s+/g, ' ').trim();
|
|
11
11
|
}
|
|
@@ -2,12 +2,13 @@ import { Container, SelectList } from '../../../tui/index.js';
|
|
|
2
2
|
import { getSelectListTheme } from '../../theme/theme.js';
|
|
3
3
|
import { DynamicBorder } from '../primitives/dynamic-border.js';
|
|
4
4
|
const LEVEL_DESCRIPTIONS = {
|
|
5
|
-
off: '
|
|
6
|
-
minimal: '
|
|
7
|
-
low: '
|
|
8
|
-
medium: '
|
|
9
|
-
high: '
|
|
10
|
-
xhigh: '
|
|
5
|
+
off: 'Disable reasoning',
|
|
6
|
+
minimal: 'Minimal reasoning',
|
|
7
|
+
low: 'Low reasoning',
|
|
8
|
+
medium: 'Medium reasoning',
|
|
9
|
+
high: 'High reasoning',
|
|
10
|
+
xhigh: 'Extra-high reasoning',
|
|
11
|
+
max: 'Maximum reasoning'
|
|
11
12
|
};
|
|
12
13
|
/**
|
|
13
14
|
* Component that renders a thinking level selector with borders
|
package/dist/shell/index.d.ts
CHANGED
|
@@ -4,7 +4,6 @@ export { ExcelApprovalComponent } from './approvals/excel-approval.js';
|
|
|
4
4
|
export { FileAccessApprovalComponent } from './approvals/file-access-approval.js';
|
|
5
5
|
export { createNetworkPrompt } from './approvals/sandbox-prompt.js';
|
|
6
6
|
export { SwitchModeApprovalComponent } from './approvals/switch-mode-approval.js';
|
|
7
|
-
export { TaskSpawnApprovalComponent } from './approvals/task-spawn-approval.js';
|
|
8
7
|
export { handleMcpCommand } from './commands/mcp-command.js';
|
|
9
8
|
export { createShortyCommand, createShortySlashCommand } from './commands/shorty-command.js';
|
|
10
9
|
export { getTraceHooks } from './dev/index.js';
|
package/dist/shell/index.js
CHANGED
|
@@ -4,7 +4,6 @@ export { ExcelApprovalComponent } from './approvals/excel-approval.js';
|
|
|
4
4
|
export { FileAccessApprovalComponent } from './approvals/file-access-approval.js';
|
|
5
5
|
export { createNetworkPrompt } from './approvals/sandbox-prompt.js';
|
|
6
6
|
export { SwitchModeApprovalComponent } from './approvals/switch-mode-approval.js';
|
|
7
|
-
export { TaskSpawnApprovalComponent } from './approvals/task-spawn-approval.js';
|
|
8
7
|
export { handleMcpCommand } from './commands/mcp-command.js';
|
|
9
8
|
export { createShortyCommand, createShortySlashCommand } from './commands/shorty-command.js';
|
|
10
9
|
export { getTraceHooks } from './dev/index.js';
|
|
@@ -7,6 +7,8 @@ import type { SkillUploadApprovalRequest } from '../../app/sync/skills-upload.js
|
|
|
7
7
|
import type { WorkbookScopeStateRef } from '../../app/workbook-scope.js';
|
|
8
8
|
import type { SelectItem } from '../../tui/index.js';
|
|
9
9
|
import type { Terminal } from '../../tui/terminal.js';
|
|
10
|
+
import type { LocalFileOpenResult } from '../links/local-file-opener.js';
|
|
11
|
+
import type { InteractiveAvailableUpdate } from '../status/update-reminder.js';
|
|
10
12
|
import type { SlashCommandDefinition } from './slash-commands.js';
|
|
11
13
|
import type { WorkbookScopeDeps } from './workbook-scope-controller.js';
|
|
12
14
|
export type CompactionQueuedMessage = {
|
|
@@ -29,6 +31,8 @@ export interface CreditBalance {
|
|
|
29
31
|
export interface InteractiveModeOptions {
|
|
30
32
|
/** Custom terminal implementation for the interactive shell. */
|
|
31
33
|
terminal?: Terminal;
|
|
34
|
+
/** Override local file opening for deterministic shell tests. */
|
|
35
|
+
openLocalFileHref?: (href: string) => Promise<LocalFileOpenResult>;
|
|
32
36
|
skipShortcutAuth?: boolean;
|
|
33
37
|
exitProcessOnShutdown?: boolean;
|
|
34
38
|
workbookScopeRef?: WorkbookScopeStateRef;
|
|
@@ -46,6 +50,12 @@ export interface InteractiveModeOptions {
|
|
|
46
50
|
initialMessages?: string[];
|
|
47
51
|
/** Force verbose startup (overrides quietStartup setting) */
|
|
48
52
|
verbose?: boolean;
|
|
53
|
+
/** Update retained after the user skips the startup prompt. */
|
|
54
|
+
availableUpdate?: InteractiveAvailableUpdate;
|
|
55
|
+
/** Timestamp used to schedule the next non-blocking registry check. */
|
|
56
|
+
updateLastCheckedAt?: string;
|
|
57
|
+
/** Refresh available update state for the running shell. */
|
|
58
|
+
checkForUpdate?: () => Promise<InteractiveAvailableUpdate | undefined>;
|
|
49
59
|
/**
|
|
50
60
|
* Fetch credit balance for the current API key. Injected by main.ts.
|
|
51
61
|
* Returns CreditBalance when credits apply, 'not_applicable' when the model
|
|
@@ -10,6 +10,7 @@ export declare class InteractiveMode {
|
|
|
10
10
|
private options;
|
|
11
11
|
private session;
|
|
12
12
|
private ui;
|
|
13
|
+
private readonly localFileLinkInput;
|
|
13
14
|
private renderTracePath;
|
|
14
15
|
private shellLayout;
|
|
15
16
|
private mainContentContainer;
|
|
@@ -111,17 +112,15 @@ export declare class InteractiveMode {
|
|
|
111
112
|
private widgetContainerBelow;
|
|
112
113
|
private customFooter;
|
|
113
114
|
private headerContainer;
|
|
115
|
+
private updateReminderController;
|
|
114
116
|
private builtInHeader;
|
|
115
117
|
private customHeader;
|
|
116
118
|
private isBashMode;
|
|
117
|
-
private isChatMode;
|
|
118
119
|
private creditPollInterval;
|
|
119
120
|
private static readonly CREDIT_POLL_INTERVAL_MS;
|
|
120
121
|
private readonly creditGate;
|
|
121
122
|
private _commands;
|
|
122
123
|
private _resourceDisplay;
|
|
123
|
-
private _collabManager;
|
|
124
|
-
private _superFight;
|
|
125
124
|
private readonly manualMemoryCoordinator;
|
|
126
125
|
private readonly manualSkillProposalBackground;
|
|
127
126
|
/** AgentController for the current session. */
|
|
@@ -252,6 +251,7 @@ export declare class InteractiveMode {
|
|
|
252
251
|
/** Wire interactive shell key handlers via registerInteractiveActions. */
|
|
253
252
|
private setupKeyHandlers;
|
|
254
253
|
private handleEditorSelectionInput;
|
|
254
|
+
private handleLocalFileLink;
|
|
255
255
|
/**
|
|
256
256
|
* Screen-row range (1-based, inclusive) occupied by the editor, derived from
|
|
257
257
|
* geometry cached during the last frame render — no re-render per mouse event.
|
|
@@ -283,9 +283,7 @@ export declare class InteractiveMode {
|
|
|
283
283
|
private tryAttachClipboardFilePath;
|
|
284
284
|
/** Build a CommandContext for slash command handlers. */
|
|
285
285
|
private _buildCommandContext;
|
|
286
|
-
/**
|
|
287
|
-
private getCollabCommandClient;
|
|
288
|
-
/** Wire the default editor submit handler covering bash, chat, slash, and prompt dispatch. */
|
|
286
|
+
/** Wire the default editor submit handler covering bash, slash, and prompt dispatch. */
|
|
289
287
|
private setupEditorSubmitHandler;
|
|
290
288
|
/** Wire the InteractiveSessionController to all agent lifecycle events. */
|
|
291
289
|
private subscribeToAgent;
|
|
@@ -375,13 +373,9 @@ export declare class InteractiveMode {
|
|
|
375
373
|
private handleFollowUp;
|
|
376
374
|
/** Handle dequeue keybind: pull queued messages back into the editor for editing. */
|
|
377
375
|
private handleDequeue;
|
|
378
|
-
/** Refresh the editor border color based on bash/
|
|
376
|
+
/** Refresh the editor border color based on bash/thinking state. */
|
|
379
377
|
private updateEditorBorderColor;
|
|
380
|
-
/**
|
|
381
|
-
private _attachCollabEvents;
|
|
382
|
-
/** Launch the SuperFight collab mini-game UI for the current room. */
|
|
383
|
-
private launchSuperFight;
|
|
384
|
-
/** Watch editor text and toggle bash/chat-mode borders based on `!`/`:` prefixes. */
|
|
378
|
+
/** Watch editor text and toggle bash-mode borders based on the `!` prefix. */
|
|
385
379
|
private setupBashModeDetection;
|
|
386
380
|
/** Execute a `!`-prefixed bash command, streaming output into the chat container. */
|
|
387
381
|
private executeBashCommand;
|