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
|
@@ -2,6 +2,8 @@
|
|
|
2
2
|
A_Rog
|
|
3
3
|
Aakanksha Agrawal
|
|
4
4
|
Aarni Koskela
|
|
5
|
+
abdul rawoof
|
|
6
|
+
Abdul Rawoof Khan
|
|
5
7
|
Abhinav Sagar
|
|
6
8
|
ABHYUDAY PRATAP SINGH
|
|
7
9
|
abs51295
|
|
@@ -45,6 +47,7 @@ Ananya Maiti
|
|
|
45
47
|
Anatoly Techtonik
|
|
46
48
|
Anders Kaseorg
|
|
47
49
|
Andre Aguiar
|
|
50
|
+
Andrea Corna
|
|
48
51
|
Andreas Lutro
|
|
49
52
|
Andrei Geacar
|
|
50
53
|
Andrew Gaul
|
|
@@ -72,6 +75,7 @@ Anudit Nagar
|
|
|
72
75
|
Anuj Godase
|
|
73
76
|
AQNOUCH Mohammed
|
|
74
77
|
AraHaan
|
|
78
|
+
Aren Siekmeier
|
|
75
79
|
arena
|
|
76
80
|
arenasys
|
|
77
81
|
Arindam Choudhury
|
|
@@ -222,18 +226,21 @@ David Runge
|
|
|
222
226
|
David Tucker
|
|
223
227
|
David Wales
|
|
224
228
|
Davidovich
|
|
229
|
+
Dayna Blackwell
|
|
225
230
|
ddelange
|
|
226
231
|
Deepak Sharma
|
|
227
232
|
Deepyaman Datta
|
|
228
233
|
Denis Roussel (ACSONE)
|
|
229
234
|
Denise Yu
|
|
230
235
|
dependabot[bot]
|
|
236
|
+
dereksz
|
|
231
237
|
derwolfe
|
|
232
238
|
Desetude
|
|
233
239
|
developer
|
|
234
240
|
Devesh Kumar
|
|
235
241
|
Devesh Kumar Singh
|
|
236
242
|
devsagul
|
|
243
|
+
Dewank Pant
|
|
237
244
|
Diego Caraballo
|
|
238
245
|
Diego Ramirez
|
|
239
246
|
DiegoCaraballo
|
|
@@ -344,6 +351,7 @@ Herbert Pfennig
|
|
|
344
351
|
Holly Stotelmyer
|
|
345
352
|
Honnix
|
|
346
353
|
Hsiaoming Yang
|
|
354
|
+
Hugo
|
|
347
355
|
Hugo Lopes Tavares
|
|
348
356
|
Hugo van Kemenade
|
|
349
357
|
Hugues Bruant
|
|
@@ -489,8 +497,10 @@ Lincoln de Sousa
|
|
|
489
497
|
Lipis
|
|
490
498
|
lorddavidiii
|
|
491
499
|
Loren Carvalho
|
|
500
|
+
Louis Liu
|
|
492
501
|
Lucas Cimon
|
|
493
502
|
Ludovic Gasc
|
|
503
|
+
Luis Carlos
|
|
494
504
|
Luis Medel
|
|
495
505
|
Lukas Geiger
|
|
496
506
|
Lukas Juhrich
|
|
@@ -564,6 +574,7 @@ Mike Hendricks
|
|
|
564
574
|
Min RK
|
|
565
575
|
MinRK
|
|
566
576
|
Miro Hrončok
|
|
577
|
+
Mohsen Fooladnezhad
|
|
567
578
|
Monica Baluna
|
|
568
579
|
montefra
|
|
569
580
|
Monty Taylor
|
|
@@ -595,6 +606,7 @@ Nitesh Sharma
|
|
|
595
606
|
Niyas Sait
|
|
596
607
|
Noah
|
|
597
608
|
Noah Gorny
|
|
609
|
+
Nok Lam Chan
|
|
598
610
|
Norbert Manthey
|
|
599
611
|
Nothing-991
|
|
600
612
|
Nowell Strite
|
|
@@ -612,6 +624,7 @@ Oliver Tonnhofer
|
|
|
612
624
|
Olivier Girardot
|
|
613
625
|
Olivier Grisel
|
|
614
626
|
Ollie Rutherfurd
|
|
627
|
+
Omar Abdalgwad
|
|
615
628
|
OMOTO Kenji
|
|
616
629
|
Omry Yadan
|
|
617
630
|
onlinejudge95
|
|
@@ -675,6 +688,8 @@ Quentin Lee
|
|
|
675
688
|
Quentin Pradet
|
|
676
689
|
R. David Murray
|
|
677
690
|
Rafael Caricio
|
|
691
|
+
RAHUL KUMAR
|
|
692
|
+
rahulkotargasthi
|
|
678
693
|
Ralf Schmitt
|
|
679
694
|
Ran Benita
|
|
680
695
|
Randy Döring
|
|
@@ -707,6 +722,7 @@ Ronny Pfannschmidt
|
|
|
707
722
|
Rory McCann
|
|
708
723
|
Ross Brattain
|
|
709
724
|
Roy Wellington Ⅳ
|
|
725
|
+
RoyS
|
|
710
726
|
Ruairidh MacLeod
|
|
711
727
|
Russell Keith-Magee
|
|
712
728
|
Ryan Shepherd
|
|
@@ -715,6 +731,7 @@ ryneeverett
|
|
|
715
731
|
Ryuma Asai
|
|
716
732
|
S. Guliaev
|
|
717
733
|
Sachi King
|
|
734
|
+
Sai Sridhar Tarra
|
|
718
735
|
Salvatore Rinchiera
|
|
719
736
|
sandeepkiran-js
|
|
720
737
|
Sander Van Balen
|
|
@@ -723,6 +740,7 @@ schlamar
|
|
|
723
740
|
Scott Kitterman
|
|
724
741
|
Sean
|
|
725
742
|
seanj
|
|
743
|
+
Sebastian Höffner
|
|
726
744
|
Sebastian Jordan
|
|
727
745
|
Sebastian Schaetz
|
|
728
746
|
Segev Finer
|
|
@@ -736,6 +754,7 @@ Shahar Epstein
|
|
|
736
754
|
Shantanu
|
|
737
755
|
shenxianpeng
|
|
738
756
|
shireenrao
|
|
757
|
+
Shivam Shrey
|
|
739
758
|
Shivansh-007
|
|
740
759
|
Shixian Sheng
|
|
741
760
|
Shlomi Fish
|
|
@@ -852,6 +871,7 @@ Yash
|
|
|
852
871
|
Yashraj
|
|
853
872
|
Yen Chi Hsuan
|
|
854
873
|
Yeray Diaz Diaz
|
|
874
|
+
Youngkwang Yang
|
|
855
875
|
Yoval P
|
|
856
876
|
Yu Jian
|
|
857
877
|
Yuan Jing Vincent Yan
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
../../Scripts/__pycache__/pywin32_postinstall.cpython-313.pyc,,
|
|
2
2
|
../../Scripts/__pycache__/pywin32_testall.cpython-313.pyc,,
|
|
3
|
-
../../Scripts/pywin32_postinstall.exe,sha256=
|
|
3
|
+
../../Scripts/pywin32_postinstall.exe,sha256=9_lbcuEmDGoj4vqr1KkPBn7DXpsCWH3sGoD40rK_-TE,108403
|
|
4
4
|
../../Scripts/pywin32_postinstall.py,sha256=mx4WVp1hD_8xgkSXttNtto1BVDECZOc3FCClrR1SjFM,25736
|
|
5
|
-
../../Scripts/pywin32_testall.exe,sha256=
|
|
5
|
+
../../Scripts/pywin32_testall.exe,sha256=JZegPyQsEtjk1lY-52HH9-4lRVuD2wMsbUv9bfRqDE0,108399
|
|
6
6
|
../../Scripts/pywin32_testall.py,sha256=hyGLMKILn3_W0q-McP1VJnNFW_z5yk_gesTMQDlUocM,3847
|
|
7
7
|
PyWin32.chm,sha256=S3fN4iKEUFyW4IIm3Zf5jtdrlTJLh93MzIrT9wX3z9o,2646518
|
|
8
8
|
__pycache__/pythoncom.cpython-313.pyc,,
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
@@ -1,32 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* CollabAwareness — broadcasts workbook state changes to collab peers.
|
|
3
|
-
*
|
|
4
|
-
* Subscribes to workbook events (sheetAdded, sheetRemoved, sheetRenamed,
|
|
5
|
-
* activeSheetChanged) and sends awareness updates via the CollabClient.
|
|
6
|
-
* Debounces to avoid flooding (100ms).
|
|
7
|
-
*/
|
|
8
|
-
import type { CollabClient } from './collab-client.js';
|
|
9
|
-
export interface WorkbookLike {
|
|
10
|
-
sheets: {
|
|
11
|
-
on(event: 'sheetAdded' | 'sheetRemoved' | 'sheetRenamed' | 'activeSheetChanged', handler: (event: unknown) => void): () => void;
|
|
12
|
-
};
|
|
13
|
-
exportSnapshot(): Promise<{
|
|
14
|
-
sheets: Array<{
|
|
15
|
-
id: string;
|
|
16
|
-
name: string;
|
|
17
|
-
usedRange: string | null;
|
|
18
|
-
cellCount: number;
|
|
19
|
-
}>;
|
|
20
|
-
}>;
|
|
21
|
-
}
|
|
22
|
-
export declare class CollabAwareness {
|
|
23
|
-
private workbook;
|
|
24
|
-
private client;
|
|
25
|
-
private unsubscribers;
|
|
26
|
-
private debounceTimer;
|
|
27
|
-
constructor(workbook: WorkbookLike, client: CollabClient);
|
|
28
|
-
private scheduleUpdate;
|
|
29
|
-
private sendUpdate;
|
|
30
|
-
destroy(): void;
|
|
31
|
-
}
|
|
32
|
-
//# sourceMappingURL=awareness.d.ts.map
|
|
@@ -1,52 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* CollabAwareness — broadcasts workbook state changes to collab peers.
|
|
3
|
-
*
|
|
4
|
-
* Subscribes to workbook events (sheetAdded, sheetRemoved, sheetRenamed,
|
|
5
|
-
* activeSheetChanged) and sends awareness updates via the CollabClient.
|
|
6
|
-
* Debounces to avoid flooding (100ms).
|
|
7
|
-
*/
|
|
8
|
-
export class CollabAwareness {
|
|
9
|
-
workbook;
|
|
10
|
-
client;
|
|
11
|
-
unsubscribers = [];
|
|
12
|
-
debounceTimer = null;
|
|
13
|
-
constructor(workbook, client) {
|
|
14
|
-
this.workbook = workbook;
|
|
15
|
-
this.client = client;
|
|
16
|
-
const events = ['sheetAdded', 'sheetRemoved', 'sheetRenamed', 'activeSheetChanged'];
|
|
17
|
-
for (const event of events) {
|
|
18
|
-
const unsub = this.workbook.sheets.on(event, () => this.scheduleUpdate());
|
|
19
|
-
this.unsubscribers.push(unsub);
|
|
20
|
-
}
|
|
21
|
-
// Send initial awareness immediately.
|
|
22
|
-
this.sendUpdate();
|
|
23
|
-
}
|
|
24
|
-
scheduleUpdate() {
|
|
25
|
-
if (this.debounceTimer)
|
|
26
|
-
clearTimeout(this.debounceTimer);
|
|
27
|
-
this.debounceTimer = setTimeout(() => this.sendUpdate(), 100);
|
|
28
|
-
}
|
|
29
|
-
async sendUpdate() {
|
|
30
|
-
try {
|
|
31
|
-
const snapshot = await this.workbook.exportSnapshot();
|
|
32
|
-
const sheets = snapshot.sheets.map((s) => ({
|
|
33
|
-
id: s.id,
|
|
34
|
-
name: s.name,
|
|
35
|
-
usedRange: s.usedRange,
|
|
36
|
-
cellCount: s.cellCount
|
|
37
|
-
}));
|
|
38
|
-
this.client.sendAwareness(sheets);
|
|
39
|
-
}
|
|
40
|
-
catch {
|
|
41
|
-
// Silently ignore — awareness is best-effort.
|
|
42
|
-
}
|
|
43
|
-
}
|
|
44
|
-
destroy() {
|
|
45
|
-
if (this.debounceTimer)
|
|
46
|
-
clearTimeout(this.debounceTimer);
|
|
47
|
-
for (const unsub of this.unsubscribers)
|
|
48
|
-
unsub();
|
|
49
|
-
this.unsubscribers = [];
|
|
50
|
-
}
|
|
51
|
-
}
|
|
52
|
-
//# sourceMappingURL=awareness.js.map
|
|
@@ -1,37 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* CollabClient — headless WebSocket client for the collaboration signaling server.
|
|
3
|
-
*
|
|
4
|
-
* Lives in app/ (no TUI dependency). Manages connection, room lifecycle, and
|
|
5
|
-
* message dispatch. Emits events via registered callbacks.
|
|
6
|
-
*/
|
|
7
|
-
import type { CollabCallbacks, CollabState, PeerInfo, SheetInfo } from './types.js';
|
|
8
|
-
export interface JoinResult {
|
|
9
|
-
roomId: string;
|
|
10
|
-
peerId: string;
|
|
11
|
-
peers: PeerInfo[];
|
|
12
|
-
docIds: string[];
|
|
13
|
-
}
|
|
14
|
-
export declare class CollabClient {
|
|
15
|
-
private ws;
|
|
16
|
-
private serverUrl;
|
|
17
|
-
private callbacks;
|
|
18
|
-
private _state;
|
|
19
|
-
private createResolver;
|
|
20
|
-
private joinResolver;
|
|
21
|
-
private rejectResolver;
|
|
22
|
-
constructor(serverUrl: string);
|
|
23
|
-
get state(): Readonly<CollabState>;
|
|
24
|
-
on<K extends keyof CollabCallbacks>(event: K, handler: CollabCallbacks[K]): void;
|
|
25
|
-
private connect;
|
|
26
|
-
private send;
|
|
27
|
-
private handleBinaryMessage;
|
|
28
|
-
sendSyncData(docId: string, data: Uint8Array): void;
|
|
29
|
-
private handleMessage;
|
|
30
|
-
createRoom(): Promise<string>;
|
|
31
|
-
joinRoom(roomId: string, displayName: string): Promise<JoinResult>;
|
|
32
|
-
sendChat(text: string): void;
|
|
33
|
-
sendAwareness(sheets: SheetInfo[]): void;
|
|
34
|
-
leave(): void;
|
|
35
|
-
destroy(): void;
|
|
36
|
-
}
|
|
37
|
-
//# sourceMappingURL=collab-client.d.ts.map
|
|
@@ -1,208 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* CollabClient — headless WebSocket client for the collaboration signaling server.
|
|
3
|
-
*
|
|
4
|
-
* Lives in app/ (no TUI dependency). Manages connection, room lifecycle, and
|
|
5
|
-
* message dispatch. Emits events via registered callbacks.
|
|
6
|
-
*/
|
|
7
|
-
// ── Client ──────────────────────────────────────────────────────────────
|
|
8
|
-
export class CollabClient {
|
|
9
|
-
ws = null;
|
|
10
|
-
serverUrl;
|
|
11
|
-
callbacks = {};
|
|
12
|
-
_state = {
|
|
13
|
-
roomId: null,
|
|
14
|
-
peerId: null,
|
|
15
|
-
peers: new Map(),
|
|
16
|
-
connected: false
|
|
17
|
-
};
|
|
18
|
-
// Pending promise resolvers for request/response pairs.
|
|
19
|
-
createResolver = null;
|
|
20
|
-
joinResolver = null;
|
|
21
|
-
rejectResolver = null;
|
|
22
|
-
constructor(serverUrl) {
|
|
23
|
-
this.serverUrl = serverUrl;
|
|
24
|
-
}
|
|
25
|
-
get state() {
|
|
26
|
-
return this._state;
|
|
27
|
-
}
|
|
28
|
-
// ── Callback registration ───────────────────────────────────────────
|
|
29
|
-
on(event, handler) {
|
|
30
|
-
this.callbacks[event] = handler;
|
|
31
|
-
}
|
|
32
|
-
// ── Connection ──────────────────────────────────────────────────────
|
|
33
|
-
connect() {
|
|
34
|
-
if (this.ws && this._state.connected)
|
|
35
|
-
return Promise.resolve();
|
|
36
|
-
return new Promise((resolve, reject) => {
|
|
37
|
-
try {
|
|
38
|
-
this.ws = new WebSocket(this.serverUrl);
|
|
39
|
-
}
|
|
40
|
-
catch (err) {
|
|
41
|
-
reject(new Error(`Failed to connect: ${err}`));
|
|
42
|
-
return;
|
|
43
|
-
}
|
|
44
|
-
this.ws.addEventListener('open', () => {
|
|
45
|
-
this._state.connected = true;
|
|
46
|
-
resolve();
|
|
47
|
-
});
|
|
48
|
-
this.ws.addEventListener('error', (event) => {
|
|
49
|
-
const msg = 'message' in event ? String(event.message) : 'WebSocket error';
|
|
50
|
-
if (!this._state.connected) {
|
|
51
|
-
reject(new Error(msg));
|
|
52
|
-
}
|
|
53
|
-
else {
|
|
54
|
-
this.callbacks.onError?.(msg);
|
|
55
|
-
}
|
|
56
|
-
});
|
|
57
|
-
this.ws.addEventListener('close', () => {
|
|
58
|
-
const wasConnected = this._state.connected;
|
|
59
|
-
this._state.connected = false;
|
|
60
|
-
this.ws = null;
|
|
61
|
-
if (wasConnected) {
|
|
62
|
-
this.callbacks.onDisconnect?.();
|
|
63
|
-
}
|
|
64
|
-
});
|
|
65
|
-
this.ws.binaryType = 'arraybuffer';
|
|
66
|
-
this.ws.addEventListener('message', (event) => {
|
|
67
|
-
if (event.data instanceof ArrayBuffer) {
|
|
68
|
-
this.handleBinaryMessage(new Uint8Array(event.data));
|
|
69
|
-
}
|
|
70
|
-
else {
|
|
71
|
-
this.handleMessage(String(event.data));
|
|
72
|
-
}
|
|
73
|
-
});
|
|
74
|
-
});
|
|
75
|
-
}
|
|
76
|
-
send(obj) {
|
|
77
|
-
if (!this.ws || !this._state.connected)
|
|
78
|
-
return;
|
|
79
|
-
this.ws.send(JSON.stringify(obj));
|
|
80
|
-
}
|
|
81
|
-
// ── Binary frame helpers ─────────────────────────────────────────────
|
|
82
|
-
// Format: [2-byte big-endian docId length][docId UTF-8 bytes][Yrs payload]
|
|
83
|
-
handleBinaryMessage(data) {
|
|
84
|
-
if (data.length < 2)
|
|
85
|
-
return;
|
|
86
|
-
const docIdLen = (data[0] << 8) | data[1];
|
|
87
|
-
if (data.length < 2 + docIdLen)
|
|
88
|
-
return;
|
|
89
|
-
const docId = new TextDecoder().decode(data.subarray(2, 2 + docIdLen));
|
|
90
|
-
const payload = data.subarray(2 + docIdLen);
|
|
91
|
-
this.callbacks.onSyncData?.(docId, payload);
|
|
92
|
-
}
|
|
93
|
-
sendSyncData(docId, data) {
|
|
94
|
-
if (!this.ws || !this._state.connected)
|
|
95
|
-
return;
|
|
96
|
-
const docIdBytes = new TextEncoder().encode(docId);
|
|
97
|
-
const frame = new Uint8Array(2 + docIdBytes.length + data.length);
|
|
98
|
-
frame[0] = (docIdBytes.length >> 8) & 0xff;
|
|
99
|
-
frame[1] = docIdBytes.length & 0xff;
|
|
100
|
-
frame.set(docIdBytes, 2);
|
|
101
|
-
frame.set(data, 2 + docIdBytes.length);
|
|
102
|
-
this.ws.send(frame);
|
|
103
|
-
}
|
|
104
|
-
// ── Message handler ─────────────────────────────────────────────────
|
|
105
|
-
handleMessage(raw) {
|
|
106
|
-
let msg;
|
|
107
|
-
try {
|
|
108
|
-
msg = JSON.parse(raw);
|
|
109
|
-
}
|
|
110
|
-
catch {
|
|
111
|
-
return;
|
|
112
|
-
}
|
|
113
|
-
switch (msg.type) {
|
|
114
|
-
case 'room_created':
|
|
115
|
-
this.createResolver?.(msg.roomId);
|
|
116
|
-
this.createResolver = null;
|
|
117
|
-
this.rejectResolver = null;
|
|
118
|
-
break;
|
|
119
|
-
case 'joined':
|
|
120
|
-
this._state.roomId = msg.roomId;
|
|
121
|
-
this._state.peerId = msg.peerId;
|
|
122
|
-
this._state.peers.clear();
|
|
123
|
-
for (const p of msg.peers) {
|
|
124
|
-
this._state.peers.set(p.peerId, p);
|
|
125
|
-
}
|
|
126
|
-
this.joinResolver?.({
|
|
127
|
-
roomId: msg.roomId,
|
|
128
|
-
peerId: msg.peerId,
|
|
129
|
-
peers: msg.peers,
|
|
130
|
-
docIds: msg.docIds ?? []
|
|
131
|
-
});
|
|
132
|
-
this.joinResolver = null;
|
|
133
|
-
this.rejectResolver = null;
|
|
134
|
-
break;
|
|
135
|
-
case 'peer_joined':
|
|
136
|
-
this._state.peers.set(msg.peerId, {
|
|
137
|
-
peerId: msg.peerId,
|
|
138
|
-
displayName: msg.displayName
|
|
139
|
-
});
|
|
140
|
-
this.callbacks.onPeerJoined?.({ peerId: msg.peerId, displayName: msg.displayName });
|
|
141
|
-
break;
|
|
142
|
-
case 'peer_left': {
|
|
143
|
-
const leavingPeer = this._state.peers.get(msg.peerId);
|
|
144
|
-
this._state.peers.delete(msg.peerId);
|
|
145
|
-
this.callbacks.onPeerLeft?.(msg.peerId, leavingPeer?.displayName);
|
|
146
|
-
break;
|
|
147
|
-
}
|
|
148
|
-
case 'chat':
|
|
149
|
-
this.callbacks.onChat?.(msg.peerId, msg.displayName, msg.text);
|
|
150
|
-
break;
|
|
151
|
-
case 'awareness': {
|
|
152
|
-
const peer = this._state.peers.get(msg.peerId);
|
|
153
|
-
if (peer) {
|
|
154
|
-
peer.sheets = msg.sheets;
|
|
155
|
-
}
|
|
156
|
-
this.callbacks.onAwareness?.(msg.peerId, msg.displayName, msg.sheets);
|
|
157
|
-
break;
|
|
158
|
-
}
|
|
159
|
-
case 'error':
|
|
160
|
-
this.callbacks.onError?.(msg.message);
|
|
161
|
-
this.rejectResolver?.(new Error(msg.message));
|
|
162
|
-
this.createResolver = null;
|
|
163
|
-
this.joinResolver = null;
|
|
164
|
-
this.rejectResolver = null;
|
|
165
|
-
break;
|
|
166
|
-
}
|
|
167
|
-
}
|
|
168
|
-
// ── Public API ──────────────────────────────────────────────────────
|
|
169
|
-
async createRoom() {
|
|
170
|
-
await this.connect();
|
|
171
|
-
return new Promise((resolve, reject) => {
|
|
172
|
-
this.createResolver = resolve;
|
|
173
|
-
this.rejectResolver = reject;
|
|
174
|
-
this.send({ type: 'create' });
|
|
175
|
-
});
|
|
176
|
-
}
|
|
177
|
-
async joinRoom(roomId, displayName) {
|
|
178
|
-
await this.connect();
|
|
179
|
-
return new Promise((resolve, reject) => {
|
|
180
|
-
this.joinResolver = resolve;
|
|
181
|
-
this.rejectResolver = reject;
|
|
182
|
-
this.send({ type: 'join', roomId, displayName });
|
|
183
|
-
});
|
|
184
|
-
}
|
|
185
|
-
sendChat(text) {
|
|
186
|
-
this.send({ type: 'chat', text });
|
|
187
|
-
}
|
|
188
|
-
sendAwareness(sheets) {
|
|
189
|
-
this.send({ type: 'awareness', sheets });
|
|
190
|
-
}
|
|
191
|
-
leave() {
|
|
192
|
-
this.send({ type: 'leave' });
|
|
193
|
-
this._state.roomId = null;
|
|
194
|
-
this._state.peerId = null;
|
|
195
|
-
this._state.peers.clear();
|
|
196
|
-
}
|
|
197
|
-
destroy() {
|
|
198
|
-
if (this.ws) {
|
|
199
|
-
this.ws.close();
|
|
200
|
-
this.ws = null;
|
|
201
|
-
}
|
|
202
|
-
this._state.connected = false;
|
|
203
|
-
this._state.roomId = null;
|
|
204
|
-
this._state.peerId = null;
|
|
205
|
-
this._state.peers.clear();
|
|
206
|
-
}
|
|
207
|
-
}
|
|
208
|
-
//# sourceMappingURL=collab-client.js.map
|
|
@@ -1,91 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* CollabManager — orchestrates the full collaboration lifecycle.
|
|
3
|
-
*
|
|
4
|
-
* Pure app-layer class with no shell/TUI dependencies. Manages:
|
|
5
|
-
* - CollabClient connection and room lifecycle
|
|
6
|
-
* - CollabSync (CRDT workbook sync)
|
|
7
|
-
* - CollabAwareness (peer sheet info broadcasting)
|
|
8
|
-
* - Display name resolution
|
|
9
|
-
*
|
|
10
|
-
* Used by the interactive shell (/collab command), RPC mode, and tests.
|
|
11
|
-
*/
|
|
12
|
-
import type { SheetEnginePool } from '@shortcut/mog-sandbox-runtime';
|
|
13
|
-
import { CollabAwareness } from './awareness.js';
|
|
14
|
-
import { CollabClient, type JoinResult } from './collab-client.js';
|
|
15
|
-
import { CollabSync } from './collab-sync.js';
|
|
16
|
-
import type { PeerInfo } from './types.js';
|
|
17
|
-
export interface CollabStatus {
|
|
18
|
-
connected: boolean;
|
|
19
|
-
roomId: string | null;
|
|
20
|
-
peerId: string | null;
|
|
21
|
-
peers: PeerInfo[];
|
|
22
|
-
}
|
|
23
|
-
/** Abstraction for display name resolution — tests inject a simple string. */
|
|
24
|
-
export interface DisplayNameProvider {
|
|
25
|
-
getOrCreate(): {
|
|
26
|
-
name: string;
|
|
27
|
-
isNew: boolean;
|
|
28
|
-
};
|
|
29
|
-
set(name: string): void;
|
|
30
|
-
get(): string | undefined;
|
|
31
|
-
}
|
|
32
|
-
/** Persists display name to `<agentDir>/collab.json`. */
|
|
33
|
-
export declare class FileDisplayNameProvider implements DisplayNameProvider {
|
|
34
|
-
private agentDir;
|
|
35
|
-
constructor(agentDir: string);
|
|
36
|
-
getOrCreate(): {
|
|
37
|
-
name: string;
|
|
38
|
-
isNew: boolean;
|
|
39
|
-
};
|
|
40
|
-
set(name: string): void;
|
|
41
|
-
get(): string | undefined;
|
|
42
|
-
private configPath;
|
|
43
|
-
private load;
|
|
44
|
-
private save;
|
|
45
|
-
}
|
|
46
|
-
/** Simple in-memory provider for tests. */
|
|
47
|
-
export declare class StaticDisplayNameProvider implements DisplayNameProvider {
|
|
48
|
-
private name;
|
|
49
|
-
constructor(name: string);
|
|
50
|
-
getOrCreate(): {
|
|
51
|
-
name: string;
|
|
52
|
-
isNew: boolean;
|
|
53
|
-
};
|
|
54
|
-
set(name: string): void;
|
|
55
|
-
get(): string | undefined;
|
|
56
|
-
}
|
|
57
|
-
export declare class CollabManager {
|
|
58
|
-
private serverUrl;
|
|
59
|
-
private pool;
|
|
60
|
-
private displayNameProvider;
|
|
61
|
-
private _client;
|
|
62
|
-
private _sync;
|
|
63
|
-
private _awareness;
|
|
64
|
-
constructor(serverUrl: string, pool: SheetEnginePool, displayNameProvider: DisplayNameProvider);
|
|
65
|
-
/** The underlying CollabClient (for event wiring by modes). */
|
|
66
|
-
get client(): CollabClient;
|
|
67
|
-
get sync(): CollabSync | null;
|
|
68
|
-
get awareness(): CollabAwareness | null;
|
|
69
|
-
/** Create a new room and auto-join it. Returns the join result. */
|
|
70
|
-
createRoom(displayName?: string): Promise<JoinResult>;
|
|
71
|
-
/** Join an existing room by ID. Returns the join result. */
|
|
72
|
-
joinRoom(roomId: string, displayName?: string): Promise<JoinResult>;
|
|
73
|
-
/** Leave the current room and clean up sync/awareness. */
|
|
74
|
-
leave(): void;
|
|
75
|
-
/** Current collab status. */
|
|
76
|
-
getStatus(): CollabStatus;
|
|
77
|
-
/** Whether we're currently in a room. */
|
|
78
|
-
get inRoom(): boolean;
|
|
79
|
-
getDisplayName(): {
|
|
80
|
-
name: string;
|
|
81
|
-
isNew: boolean;
|
|
82
|
-
};
|
|
83
|
-
setDisplayName(name: string): void;
|
|
84
|
-
currentDisplayName(): string | undefined;
|
|
85
|
-
destroy(): void;
|
|
86
|
-
private attachSync;
|
|
87
|
-
private detachSync;
|
|
88
|
-
private attachAwareness;
|
|
89
|
-
private detachAwareness;
|
|
90
|
-
}
|
|
91
|
-
//# sourceMappingURL=collab-manager.d.ts.map
|