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.
Files changed (480) hide show
  1. package/BINARY-INVENTORY.json +813 -813
  2. package/CHANGELOG.md +14 -0
  3. package/dist/ai/models.d.ts +10 -6
  4. package/dist/ai/models.generated.d.ts +72 -0
  5. package/dist/ai/models.generated.js +33 -0
  6. package/dist/ai/models.js +36 -13
  7. package/dist/ai/providers/anthropic.d.ts +4 -2
  8. package/dist/ai/providers/anthropic.js +59 -29
  9. package/dist/ai/providers/azure-openai-responses.d.ts +2 -1
  10. package/dist/ai/providers/azure-openai-responses.js +4 -20
  11. package/dist/ai/providers/google-vertex.d.ts +8 -2
  12. package/dist/ai/providers/google-vertex.js +66 -54
  13. package/dist/ai/providers/google.js +15 -48
  14. package/dist/ai/providers/openai-completions.d.ts +4 -1
  15. package/dist/ai/providers/openai-completions.js +26 -10
  16. package/dist/ai/providers/openai-reasoning.d.ts +5 -0
  17. package/dist/ai/providers/openai-reasoning.js +13 -0
  18. package/dist/ai/providers/openai-responses-shared.js +1 -1
  19. package/dist/ai/providers/openai-responses.d.ts +6 -2
  20. package/dist/ai/providers/openai-responses.js +28 -23
  21. package/dist/ai/providers/simple-options.d.ts +2 -3
  22. package/dist/ai/providers/simple-options.js +4 -6
  23. package/dist/ai/types.d.ts +19 -2
  24. package/dist/app/agent-session-runtime-adapter.js +7 -6
  25. package/dist/app/agent-session.d.ts +0 -15
  26. package/dist/app/agent-session.js +0 -37
  27. package/dist/app/approvals/approval-errors.d.ts +15 -0
  28. package/dist/app/approvals/approval-errors.js +14 -0
  29. package/dist/app/approvals/runtime-approval-gates.d.ts +1 -2
  30. package/dist/app/approvals/tool-approval.d.ts +1 -0
  31. package/dist/app/approvals/tool-approval.js +11 -23
  32. package/dist/app/approvals/types.d.ts +0 -14
  33. package/dist/app/approvals/types.js +0 -2
  34. package/dist/app/background/tool-summaries.js +0 -2
  35. package/dist/app/extensions/slash-commands.js +1 -3
  36. package/dist/app/local/tools/execute-code/executor.d.ts +1 -1
  37. package/dist/app/local/tools/execute-code/executor.js +20 -10
  38. package/dist/app/local/tools/execute-code/tool.js +21 -2
  39. package/dist/app/modes/action/agent.js +4 -5
  40. package/dist/app/modes/ask/agent.js +4 -6
  41. package/dist/app/modes/index.js +20 -10
  42. package/dist/app/modes/installation/agent.js +4 -5
  43. package/dist/app/modes/manage/agent.js +3 -4
  44. package/dist/app/modes/manage/prompt.js +1 -2
  45. package/dist/app/modes/metadata.d.ts +31 -0
  46. package/dist/app/modes/metadata.js +35 -0
  47. package/dist/app/modes/plan/agent.js +5 -8
  48. package/dist/app/modes/plan/prompt.js +3 -3
  49. package/dist/app/permissions/runtime-approval-flow.d.ts +1 -5
  50. package/dist/app/permissions/runtime-approval-flow.js +0 -28
  51. package/dist/app/permissions/tool-gates.d.ts +2 -3
  52. package/dist/app/permissions/tool-gates.js +3 -81
  53. package/dist/app/prompts/com-api.js +1 -1
  54. package/dist/app/prompts/shared-guidelines.js +7 -3
  55. package/dist/app/providers/google-vertex-gateway.js +4 -51
  56. package/dist/app/providers/model-registry.d.ts +1 -0
  57. package/dist/app/providers/model-registry.js +39 -0
  58. package/dist/app/providers/model-resolver.js +10 -7
  59. package/dist/app/providers/register-shortcut-provider.js +6 -6
  60. package/dist/app/providers/shortcut-api-v2-transport.js +4 -0
  61. package/dist/app/providers/shortcut-llm-proxy-client.d.ts +2 -2
  62. package/dist/app/providers/shortcut-llm-proxy-client.js +1 -0
  63. package/dist/app/resources/package-manager.js +2 -123
  64. package/dist/app/resources/resource-patterns.d.ts +9 -0
  65. package/dist/app/resources/resource-patterns.js +120 -0
  66. package/dist/app/session/forked-agent.d.ts +2 -2
  67. package/dist/app/session/model-manager.js +3 -2
  68. package/dist/app/session/session-lifecycle.js +3 -2
  69. package/dist/app/session/session-models.d.ts +2 -0
  70. package/dist/app/session/session-models.js +14 -6
  71. package/dist/app/settings-manager.d.ts +3 -3
  72. package/dist/app/shared/tools/execute-code/mog.d.ts +3 -1
  73. package/dist/app/shared/tools/execute-code/mog.js +18 -2
  74. package/dist/app/tools/bash.js +3 -3
  75. package/dist/app/tools/execute-code/index.d.ts +1 -0
  76. package/dist/app/tools/execute-code/index.js +3 -1
  77. package/dist/app/tools/find-ignore-files.d.ts +3 -0
  78. package/dist/app/tools/find-ignore-files.js +33 -0
  79. package/dist/app/tools/find.js +2 -21
  80. package/dist/app/tools/llm-analysis.js +0 -2
  81. package/dist/app/tools/refresh-context.d.ts +1 -1
  82. package/dist/app/tools/session-settings/update-session-settings.js +2 -2
  83. package/dist/app/tools/switch-mode.js +2 -2
  84. package/dist/app/tools/take-screenshot.js +0 -2
  85. package/dist/app/tools/task/runner.js +1 -2
  86. package/dist/app/tools/task/task.d.ts +1 -3
  87. package/dist/app/tools/task/task.js +20 -40
  88. package/dist/app/tools/web-search.js +12 -2
  89. package/dist/autocomplete/core.d.ts +33 -0
  90. package/dist/autocomplete/core.js +113 -0
  91. package/dist/{tui → autocomplete}/fuzzy.d.ts +0 -1
  92. package/dist/{tui → autocomplete}/fuzzy.js +0 -1
  93. package/dist/{tui/autocomplete.d.ts → autocomplete/index.d.ts} +0 -1
  94. package/dist/{tui/autocomplete.js → autocomplete/index.js} +62 -158
  95. package/dist/cli/args.js +1 -1
  96. package/dist/cli/list-models.js +1 -1
  97. package/dist/cli.js +26227 -30480
  98. package/dist/constants.d.ts +0 -2
  99. package/dist/constants.js +0 -3
  100. package/dist/contracts/agent-session-store.d.ts +1 -1
  101. package/dist/contracts/agent-settings.d.ts +1 -0
  102. package/dist/contracts/agent-settings.js +2 -1
  103. package/dist/contracts/model-call.d.ts +1 -2
  104. package/dist/contracts/model-call.js +1 -2
  105. package/dist/contracts/model-stream.d.ts +1 -0
  106. package/dist/contracts/model-stream.js +1 -0
  107. package/dist/contracts/wire.d.ts +10 -7
  108. package/dist/contracts/wire.js +8 -0
  109. package/dist/core/agent-engine.js +1 -1
  110. package/dist/core/core-types.d.ts +1 -21
  111. package/dist/core/defaults.d.ts +1 -1
  112. package/dist/core/defaults.js +9 -1
  113. package/dist/core/prompts/agent-guidelines.d.ts +4 -5
  114. package/dist/core/prompts/agent-guidelines.js +28 -42
  115. package/dist/core/session-schema.d.ts +1 -1
  116. package/dist/embedded-agent/ai-invoke.d.ts +1 -2
  117. package/dist/embedded-agent/ai-invoke.js +2 -70
  118. package/dist/embedded-agent/anthropic-messages-transport.d.ts +4 -20
  119. package/dist/embedded-agent/anthropic-messages-transport.js +23 -786
  120. package/dist/embedded-agent/bootstrap.js +2 -2
  121. package/dist/embedded-agent/compose.js +8 -7
  122. package/dist/embedded-agent/gateway-base-url.d.ts +3 -0
  123. package/dist/embedded-agent/gateway-base-url.js +35 -0
  124. package/dist/embedded-agent/google-vertex-transport.d.ts +2 -11
  125. package/dist/embedded-agent/google-vertex-transport.js +20 -117
  126. package/dist/embedded-agent/host-runtime-options.d.ts +0 -8
  127. package/dist/embedded-agent/host-runtime-options.js +10 -2
  128. package/dist/embedded-agent/host-tools/invoke-llm/contract.d.ts +2 -2
  129. package/dist/embedded-agent/host-tools/invoke-llm/contract.js +4 -2
  130. package/dist/embedded-agent/host-tools/sandbox-llm/contract.d.ts +8 -3
  131. package/dist/embedded-agent/host-tools/sandbox-llm/contract.js +12 -8
  132. package/dist/embedded-agent/host-tools/sandbox-llm/index.d.ts +1 -1
  133. package/dist/embedded-agent/host-tools/sandbox-llm/index.js +1 -1
  134. package/dist/embedded-agent/host-tools/shared/index.d.ts +1 -1
  135. package/dist/embedded-agent/host-tools/shared/index.js +1 -1
  136. package/dist/embedded-agent/host-tools/shared/llm-stream-error.d.ts +7 -0
  137. package/dist/embedded-agent/host-tools/shared/llm-stream-error.js +10 -0
  138. package/dist/embedded-agent/host-tools/take-screenshot/contract.d.ts +0 -2
  139. package/dist/embedded-agent/host-tools/take-screenshot/contract.js +1 -3
  140. package/dist/embedded-agent/host-tools/take-screenshot/index.d.ts +1 -1
  141. package/dist/embedded-agent/host-tools/take-screenshot/index.js +1 -1
  142. package/dist/embedded-agent/host-tools/task/agents/clone.js +1 -2
  143. package/dist/embedded-agent/host-tools/task/contract.js +1 -1
  144. package/dist/embedded-agent/index.d.ts +3 -4
  145. package/dist/embedded-agent/index.js +2 -3
  146. package/dist/embedded-agent/model-selection.d.ts +0 -6
  147. package/dist/embedded-agent/model-selection.js +15 -8
  148. package/dist/embedded-agent/openai-completions-transport.d.ts +2 -11
  149. package/dist/embedded-agent/openai-completions-transport.js +20 -120
  150. package/dist/embedded-agent/openai-responses-transport.d.ts +2 -11
  151. package/dist/embedded-agent/openai-responses-transport.js +15 -170
  152. package/dist/embedded-agent/prompt/build.js +1 -2
  153. package/dist/embedded-agent/prompt/sections.d.ts +1 -1
  154. package/dist/embedded-agent/prompt/sections.js +2 -0
  155. package/dist/embedded-agent/provider-native-request.d.ts +29 -0
  156. package/dist/embedded-agent/provider-native-request.js +65 -0
  157. package/dist/embedded-agent/run-stats.d.ts +1 -1
  158. package/dist/embedded-agent/stream.d.ts +10 -96
  159. package/dist/embedded-agent/stream.js +31 -556
  160. package/dist/embedded-agent/suggestions.d.ts +1 -1
  161. package/dist/embedded-agent/suggestions.js +1 -1
  162. package/dist/embedded-agent/worker-bridge/host-client.d.ts +7 -0
  163. package/dist/embedded-agent/worker-bridge/host-client.js +15 -0
  164. package/dist/embedded-agent/worker-bridge/worker-port.js +17 -1
  165. package/dist/main.js +18 -14
  166. package/dist/rpc/index.d.ts +1 -1
  167. package/dist/rpc/rpc-approval-gates.js +1 -2
  168. package/dist/rpc/rpc-host.d.ts +4 -0
  169. package/dist/rpc/rpc-host.js +13 -24
  170. package/dist/rpc/rpc-types.d.ts +6 -17
  171. package/dist/shared/platform/open.d.ts +4 -1
  172. package/dist/shared/platform/open.js +14 -2
  173. package/dist/shell/approvals/runtime-approval-gates.js +1 -3
  174. package/dist/shell/components/selectors/model-selector.js +2 -1
  175. package/dist/shell/components/selectors/session-selector-search.js +1 -1
  176. package/dist/shell/components/selectors/thinking-selector.js +7 -6
  177. package/dist/shell/index.d.ts +0 -1
  178. package/dist/shell/index.js +0 -1
  179. package/dist/shell/interactive/interactive-mode-options.d.ts +10 -0
  180. package/dist/shell/interactive/interactive-mode.d.ts +6 -12
  181. package/dist/shell/interactive/interactive-mode.js +39 -158
  182. package/dist/shell/interactive/slash-commands.d.ts +0 -34
  183. package/dist/shell/interactive/slash-commands.js +0 -2
  184. package/dist/shell/links/local-file-link-input.d.ts +15 -0
  185. package/dist/shell/links/local-file-link-input.js +38 -0
  186. package/dist/shell/links/local-file-link.d.ts +7 -0
  187. package/dist/shell/links/local-file-link.js +35 -0
  188. package/dist/shell/links/local-file-opener.d.ts +16 -0
  189. package/dist/shell/links/local-file-opener.js +90 -0
  190. package/dist/shell/session-client.d.ts +0 -1
  191. package/dist/shell/session-client.js +0 -6
  192. package/dist/shell/status/update-check-scheduler.d.ts +30 -0
  193. package/dist/shell/status/update-check-scheduler.js +71 -0
  194. package/dist/shell/status/update-reminder-controller.d.ts +22 -0
  195. package/dist/shell/status/update-reminder-controller.js +40 -0
  196. package/dist/shell/status/update-reminder.d.ts +6 -0
  197. package/dist/shell/status/update-reminder.js +4 -0
  198. package/dist/shell/theme/dark.json +1 -2
  199. package/dist/shell/theme/light.json +1 -2
  200. package/dist/shell/theme/runtime.d.ts +2 -3
  201. package/dist/shell/theme/runtime.js +2 -6
  202. package/dist/shell/theme/theme-schema.json +1 -6
  203. package/dist/shortcut-model-catalog.d.ts +7 -2
  204. package/dist/shortcut-model-catalog.js +134 -10
  205. package/dist/startup/update-manager.d.ts +6 -6
  206. package/dist/startup/update-manager.js +23 -38
  207. package/dist/startup/update-prompt.d.ts +1 -0
  208. package/dist/startup/update-prompt.js +2 -2
  209. package/dist/tui/components/editor.d.ts +1 -1
  210. package/dist/tui/components/editor.js +1 -1
  211. package/dist/tui/components/markdown.js +15 -6
  212. package/dist/tui/components/settings-list.js +1 -1
  213. package/dist/tui/editor-component.d.ts +1 -1
  214. package/dist/tui/index.d.ts +7 -8
  215. package/dist/tui/index.js +7 -6
  216. package/dist/tui/tui.d.ts +2 -0
  217. package/dist/tui/tui.js +16 -1
  218. package/dist/tui/utils.d.ts +7 -0
  219. package/dist/tui/utils.js +58 -8
  220. package/native-app/main/index.js +3200 -48
  221. package/native-app/main/{photon_rs-SoVDgheu.js → photon_rs-XkYyYTVA.js} +2 -2
  222. package/native-app/package.json +1 -1
  223. package/native-app/preload/index.cjs +2 -0
  224. package/native-app/renderer/assets/{index-CFc-oZuS.js → index-B4jz6epR.js} +825 -155
  225. package/native-app/renderer/assets/{index-OhGE0UY4.css → index-C__g36ft.css} +412 -162
  226. package/native-app/renderer/assets/shortcutagent-DxFsGSkw.png +0 -0
  227. package/native-app/renderer/index.html +2 -2
  228. package/package.json +17 -3
  229. package/skills/add-custom-model/SKILL.md +52 -0
  230. package/user-docs/dist/index.html +1 -1
  231. package/user-docs/dist/shortcutxl-docs.pdf +0 -0
  232. package/xll/ShortcutXL.xll +0 -0
  233. package/xll/modules/shortcut_xl/_managed.py +26 -7
  234. package/xll/modules/shortcut_xl/_tracking.py +141 -251
  235. package/xll/modules/shortcut_xl/api/__init__.py +60 -0
  236. package/xll/modules/shortcut_xl/api/workbook.py +9 -1
  237. package/xll/modules/shortcut_xl/api/worksheet.py +4 -1
  238. package/xll/python/Lib/site-packages/httpx-0.28.1.dist-info/RECORD +1 -1
  239. package/xll/python/Lib/site-packages/idna-3.18.dist-info/RECORD +1 -1
  240. package/xll/python/Lib/site-packages/pip/__init__.py +1 -1
  241. package/xll/python/Lib/site-packages/pip/_internal/build_env/__init__.py +25 -0
  242. package/xll/python/Lib/site-packages/pip/_internal/build_env/base.py +103 -0
  243. package/xll/python/Lib/site-packages/pip/_internal/build_env/installer.py +333 -0
  244. package/xll/python/Lib/site-packages/pip/_internal/build_env/noop.py +42 -0
  245. package/xll/python/Lib/site-packages/pip/_internal/build_env/venv.py +145 -0
  246. package/xll/python/Lib/site-packages/pip/_internal/build_env/virtual.py +139 -0
  247. package/xll/python/Lib/site-packages/pip/_internal/cache.py +4 -1
  248. package/xll/python/Lib/site-packages/pip/_internal/cli/autocompletion.py +4 -1
  249. package/xll/python/Lib/site-packages/pip/_internal/cli/base_command.py +11 -14
  250. package/xll/python/Lib/site-packages/pip/_internal/cli/cmdoptions.py +133 -22
  251. package/xll/python/Lib/site-packages/pip/_internal/cli/index_command.py +11 -6
  252. package/xll/python/Lib/site-packages/pip/_internal/cli/main.py +2 -1
  253. package/xll/python/Lib/site-packages/pip/_internal/cli/main_parser.py +1 -2
  254. package/xll/python/Lib/site-packages/pip/_internal/cli/parser.py +10 -2
  255. package/xll/python/Lib/site-packages/pip/_internal/cli/progress_bars.py +2 -2
  256. package/xll/python/Lib/site-packages/pip/_internal/cli/req_command.py +57 -25
  257. package/xll/python/Lib/site-packages/pip/_internal/cli/status_codes.py +1 -0
  258. package/xll/python/Lib/site-packages/pip/_internal/commands/cache.py +7 -6
  259. package/xll/python/Lib/site-packages/pip/_internal/commands/configuration.py +2 -1
  260. package/xll/python/Lib/site-packages/pip/_internal/commands/debug.py +4 -5
  261. package/xll/python/Lib/site-packages/pip/_internal/commands/download.py +4 -0
  262. package/xll/python/Lib/site-packages/pip/_internal/commands/freeze.py +1 -1
  263. package/xll/python/Lib/site-packages/pip/_internal/commands/index.py +10 -3
  264. package/xll/python/Lib/site-packages/pip/_internal/commands/inspect.py +1 -1
  265. package/xll/python/Lib/site-packages/pip/_internal/commands/install.py +6 -6
  266. package/xll/python/Lib/site-packages/pip/_internal/commands/list.py +11 -6
  267. package/xll/python/Lib/site-packages/pip/_internal/commands/lock.py +4 -6
  268. package/xll/python/Lib/site-packages/pip/_internal/commands/show.py +14 -8
  269. package/xll/python/Lib/site-packages/pip/_internal/commands/wheel.py +7 -1
  270. package/xll/python/Lib/site-packages/pip/_internal/configuration.py +2 -3
  271. package/xll/python/Lib/site-packages/pip/_internal/distributions/base.py +5 -3
  272. package/xll/python/Lib/site-packages/pip/_internal/distributions/installed.py +3 -2
  273. package/xll/python/Lib/site-packages/pip/_internal/distributions/sdist.py +45 -20
  274. package/xll/python/Lib/site-packages/pip/_internal/distributions/wheel.py +3 -2
  275. package/xll/python/Lib/site-packages/pip/_internal/exceptions.py +174 -0
  276. package/xll/python/Lib/site-packages/pip/_internal/index/collector.py +70 -48
  277. package/xll/python/Lib/site-packages/pip/_internal/index/package_finder.py +46 -7
  278. package/xll/python/Lib/site-packages/pip/_internal/index/sources.py +1 -2
  279. package/xll/python/Lib/site-packages/pip/_internal/locations/_sysconfig.py +1 -1
  280. package/xll/python/Lib/site-packages/pip/_internal/locations/base.py +1 -1
  281. package/xll/python/Lib/site-packages/pip/_internal/metadata/base.py +10 -5
  282. package/xll/python/Lib/site-packages/pip/_internal/metadata/importlib/_dists.py +1 -1
  283. package/xll/python/Lib/site-packages/pip/_internal/metadata/importlib/_envs.py +8 -3
  284. package/xll/python/Lib/site-packages/pip/_internal/models/candidate.py +5 -1
  285. package/xll/python/Lib/site-packages/pip/_internal/models/link.py +53 -13
  286. package/xll/python/Lib/site-packages/pip/_internal/network/auth.py +38 -21
  287. package/xll/python/Lib/site-packages/pip/_internal/network/cache.py +2 -2
  288. package/xll/python/Lib/site-packages/pip/_internal/network/download.py +58 -11
  289. package/xll/python/Lib/site-packages/pip/_internal/network/session.py +35 -40
  290. package/xll/python/Lib/site-packages/pip/_internal/network/utils.py +109 -1
  291. package/xll/python/Lib/site-packages/pip/_internal/operations/check.py +2 -3
  292. package/xll/python/Lib/site-packages/pip/_internal/operations/install/wheel.py +23 -18
  293. package/xll/python/Lib/site-packages/pip/_internal/operations/prepare.py +152 -7
  294. package/xll/python/Lib/site-packages/pip/_internal/req/__init__.py +2 -0
  295. package/xll/python/Lib/site-packages/pip/_internal/req/constructors.py +54 -69
  296. package/xll/python/Lib/site-packages/pip/_internal/req/req_file.py +6 -6
  297. package/xll/python/Lib/site-packages/pip/_internal/req/req_install.py +25 -21
  298. package/xll/python/Lib/site-packages/pip/_internal/req/req_uninstall.py +13 -8
  299. package/xll/python/Lib/site-packages/pip/_internal/resolution/base.py +2 -2
  300. package/xll/python/Lib/site-packages/pip/_internal/resolution/legacy/resolver.py +2 -2
  301. package/xll/python/Lib/site-packages/pip/_internal/resolution/resolvelib/base.py +1 -1
  302. package/xll/python/Lib/site-packages/pip/_internal/resolution/resolvelib/candidates.py +0 -1
  303. package/xll/python/Lib/site-packages/pip/_internal/resolution/resolvelib/factory.py +39 -52
  304. package/xll/python/Lib/site-packages/pip/_internal/resolution/resolvelib/found_candidates.py +3 -3
  305. package/xll/python/Lib/site-packages/pip/_internal/resolution/resolvelib/provider.py +3 -0
  306. package/xll/python/Lib/site-packages/pip/_internal/resolution/resolvelib/resolver.py +9 -0
  307. package/xll/python/Lib/site-packages/pip/_internal/utils/compat.py +15 -9
  308. package/xll/python/Lib/site-packages/pip/_internal/utils/deprecation.py +6 -1
  309. package/xll/python/Lib/site-packages/pip/_internal/utils/filesystem.py +2 -2
  310. package/xll/python/Lib/site-packages/pip/_internal/utils/logging.py +11 -3
  311. package/xll/python/Lib/site-packages/pip/_internal/utils/misc.py +48 -4
  312. package/xll/python/Lib/site-packages/pip/_internal/utils/pylock.py +18 -2
  313. package/xll/python/Lib/site-packages/pip/_internal/utils/retry.py +2 -1
  314. package/xll/python/Lib/site-packages/pip/_internal/utils/subprocess.py +4 -3
  315. package/xll/python/Lib/site-packages/pip/_internal/utils/temp_dir.py +1 -2
  316. package/xll/python/Lib/site-packages/pip/_internal/utils/unpacking.py +30 -4
  317. package/xll/python/Lib/site-packages/pip/_internal/utils/urls.py +5 -2
  318. package/xll/python/Lib/site-packages/pip/_internal/utils/virtualenv.py +2 -36
  319. package/xll/python/Lib/site-packages/pip/_internal/vcs/git.py +8 -5
  320. package/xll/python/Lib/site-packages/pip/_internal/vcs/versioncontrol.py +1 -2
  321. package/xll/python/Lib/site-packages/pip/_internal/wheel_builder.py +5 -1
  322. package/xll/python/Lib/site-packages/pip/_vendor/bom.cdx.json +231 -0
  323. package/xll/python/Lib/site-packages/pip/_vendor/certifi/__init__.py +1 -1
  324. package/xll/python/Lib/site-packages/pip/_vendor/certifi/cacert.pem +0 -631
  325. package/xll/python/Lib/site-packages/pip/_vendor/distlib/__init__.py +1 -1
  326. package/xll/python/Lib/site-packages/pip/_vendor/distlib/compat.py +34 -64
  327. package/xll/python/Lib/site-packages/pip/_vendor/distlib/resources.py +28 -14
  328. package/xll/python/Lib/site-packages/pip/_vendor/distlib/scripts.py +7 -3
  329. package/xll/python/Lib/site-packages/pip/_vendor/distlib/util.py +48 -11
  330. package/xll/python/Lib/site-packages/pip/_vendor/idna/LICENSE.md +1 -1
  331. package/xll/python/Lib/site-packages/pip/_vendor/idna/__main__.py +6 -0
  332. package/xll/python/Lib/site-packages/pip/_vendor/idna/cli.py +128 -0
  333. package/xll/python/Lib/site-packages/pip/_vendor/idna/codec.py +50 -13
  334. package/xll/python/Lib/site-packages/pip/_vendor/idna/compat.py +26 -0
  335. package/xll/python/Lib/site-packages/pip/_vendor/idna/core.py +352 -141
  336. package/xll/python/Lib/site-packages/pip/_vendor/idna/idnadata.py +571 -2983
  337. package/xll/python/Lib/site-packages/pip/_vendor/idna/intranges.py +5 -7
  338. package/xll/python/Lib/site-packages/pip/_vendor/idna/package_data.py +1 -1
  339. package/xll/python/Lib/site-packages/pip/_vendor/idna/uts46data.py +16887 -8832
  340. package/xll/python/Lib/site-packages/pip/_vendor/platformdirs/__init__.py +352 -66
  341. package/xll/python/Lib/site-packages/pip/_vendor/platformdirs/__main__.py +11 -0
  342. package/xll/python/Lib/site-packages/pip/_vendor/platformdirs/_xdg.py +171 -0
  343. package/xll/python/Lib/site-packages/pip/_vendor/platformdirs/android.py +92 -41
  344. package/xll/python/Lib/site-packages/pip/_vendor/platformdirs/api.py +213 -49
  345. package/xll/python/Lib/site-packages/pip/_vendor/platformdirs/macos.py +128 -51
  346. package/xll/python/Lib/site-packages/pip/_vendor/platformdirs/unix.py +176 -127
  347. package/xll/python/Lib/site-packages/pip/_vendor/platformdirs/version.py +8 -18
  348. package/xll/python/Lib/site-packages/pip/_vendor/platformdirs/windows.py +185 -68
  349. package/xll/python/Lib/site-packages/pip/_vendor/pygments/__init__.py +2 -2
  350. package/xll/python/Lib/site-packages/pip/_vendor/pygments/__main__.py +1 -1
  351. package/xll/python/Lib/site-packages/pip/_vendor/pygments/console.py +1 -1
  352. package/xll/python/Lib/site-packages/pip/_vendor/pygments/filter.py +1 -1
  353. package/xll/python/Lib/site-packages/pip/_vendor/pygments/filters/__init__.py +10 -8
  354. package/xll/python/Lib/site-packages/pip/_vendor/pygments/formatter.py +1 -1
  355. package/xll/python/Lib/site-packages/pip/_vendor/pygments/formatters/__init__.py +1 -1
  356. package/xll/python/Lib/site-packages/pip/_vendor/pygments/lexer.py +7 -5
  357. package/xll/python/Lib/site-packages/pip/_vendor/pygments/lexers/__init__.py +1 -1
  358. package/xll/python/Lib/site-packages/pip/_vendor/pygments/lexers/_mapping.py +9 -8
  359. package/xll/python/Lib/site-packages/pip/_vendor/pygments/lexers/python.py +35 -32
  360. package/xll/python/Lib/site-packages/pip/_vendor/pygments/modeline.py +1 -1
  361. package/xll/python/Lib/site-packages/pip/_vendor/pygments/plugin.py +3 -1
  362. package/xll/python/Lib/site-packages/pip/_vendor/pygments/regexopt.py +13 -2
  363. package/xll/python/Lib/site-packages/pip/_vendor/pygments/scanner.py +1 -1
  364. package/xll/python/Lib/site-packages/pip/_vendor/pygments/sphinxext.py +1 -1
  365. package/xll/python/Lib/site-packages/pip/_vendor/pygments/style.py +1 -1
  366. package/xll/python/Lib/site-packages/pip/_vendor/pygments/styles/__init__.py +1 -1
  367. package/xll/python/Lib/site-packages/pip/_vendor/pygments/token.py +1 -1
  368. package/xll/python/Lib/site-packages/pip/_vendor/pygments/unistring.py +1 -1
  369. package/xll/python/Lib/site-packages/pip/_vendor/pygments/util.py +2 -2
  370. package/xll/python/Lib/site-packages/pip/_vendor/requests/__init__.py +52 -16
  371. package/xll/python/Lib/site-packages/pip/_vendor/requests/__version__.py +2 -2
  372. package/xll/python/Lib/site-packages/pip/_vendor/requests/_internal_utils.py +2 -2
  373. package/xll/python/Lib/site-packages/pip/_vendor/requests/_types.py +183 -0
  374. package/xll/python/Lib/site-packages/pip/_vendor/requests/adapters.py +101 -50
  375. package/xll/python/Lib/site-packages/pip/_vendor/requests/api.py +31 -8
  376. package/xll/python/Lib/site-packages/pip/_vendor/requests/auth.py +80 -40
  377. package/xll/python/Lib/site-packages/pip/_vendor/requests/compat.py +9 -3
  378. package/xll/python/Lib/site-packages/pip/_vendor/requests/cookies.py +143 -79
  379. package/xll/python/Lib/site-packages/pip/_vendor/requests/exceptions.py +15 -5
  380. package/xll/python/Lib/site-packages/pip/_vendor/requests/help.py +13 -10
  381. package/xll/python/Lib/site-packages/pip/_vendor/requests/hooks.py +23 -9
  382. package/xll/python/Lib/site-packages/pip/_vendor/requests/models.py +265 -126
  383. package/xll/python/Lib/site-packages/pip/_vendor/requests/py.typed +0 -0
  384. package/xll/python/Lib/site-packages/pip/_vendor/requests/sessions.py +164 -78
  385. package/xll/python/Lib/site-packages/pip/_vendor/requests/status_codes.py +2 -2
  386. package/xll/python/Lib/site-packages/pip/_vendor/requests/structures.py +51 -20
  387. package/xll/python/Lib/site-packages/pip/_vendor/requests/utils.py +161 -89
  388. package/xll/python/Lib/site-packages/pip/_vendor/tomli/__init__.py +1 -1
  389. package/xll/python/Lib/site-packages/pip/_vendor/tomli/_parser.py +9 -4
  390. package/xll/python/Lib/site-packages/pip/_vendor/tomli/_re.py +13 -9
  391. package/xll/python/Lib/site-packages/pip/_vendor/urllib3/_base_connection.py +3 -1
  392. package/xll/python/Lib/site-packages/pip/_vendor/urllib3/_collections.py +0 -1
  393. package/xll/python/Lib/site-packages/pip/_vendor/urllib3/_version.py +8 -18
  394. package/xll/python/Lib/site-packages/pip/_vendor/urllib3/connection.py +4 -4
  395. package/xll/python/Lib/site-packages/pip/_vendor/urllib3/connectionpool.py +23 -10
  396. package/xll/python/Lib/site-packages/pip/_vendor/urllib3/contrib/emscripten/response.py +5 -1
  397. package/xll/python/Lib/site-packages/pip/_vendor/urllib3/contrib/pyopenssl.py +7 -8
  398. package/xll/python/Lib/site-packages/pip/_vendor/urllib3/contrib/socks.py +1 -1
  399. package/xll/python/Lib/site-packages/pip/_vendor/urllib3/exceptions.py +2 -2
  400. package/xll/python/Lib/site-packages/pip/_vendor/urllib3/fields.py +14 -14
  401. package/xll/python/Lib/site-packages/pip/_vendor/urllib3/poolmanager.py +8 -6
  402. package/xll/python/Lib/site-packages/pip/_vendor/urllib3/response.py +35 -22
  403. package/xll/python/Lib/site-packages/pip/_vendor/urllib3/util/retry.py +8 -0
  404. package/xll/python/Lib/site-packages/pip/_vendor/urllib3/util/ssl_.py +11 -61
  405. package/xll/python/Lib/site-packages/pip/_vendor/urllib3/util/ssl_match_hostname.py +5 -11
  406. package/xll/python/Lib/site-packages/pip/_vendor/vendor.txt +8 -8
  407. package/xll/python/Lib/site-packages/{pip-26.1.2.dist-info → pip-26.2.dist-info}/METADATA +3 -2
  408. package/xll/python/Lib/site-packages/{pip-26.1.2.dist-info → pip-26.2.dist-info}/RECORD +208 -188
  409. package/xll/python/Lib/site-packages/{pip-26.1.2.dist-info → pip-26.2.dist-info}/licenses/AUTHORS.txt +20 -0
  410. 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
  411. package/xll/python/Lib/site-packages/pywin32-311.dist-info/RECORD +2 -2
  412. package/xll/python/Scripts/httpx.exe +0 -0
  413. package/xll/python/Scripts/idna.exe +0 -0
  414. package/xll/python/Scripts/pip.exe +0 -0
  415. package/xll/python/Scripts/pip3.13.exe +0 -0
  416. package/xll/python/Scripts/pip3.exe +0 -0
  417. package/xll/python/Scripts/pywin32_postinstall.exe +0 -0
  418. package/xll/python/Scripts/pywin32_testall.exe +0 -0
  419. package/dist/app/collab/awareness.d.ts +0 -32
  420. package/dist/app/collab/awareness.js +0 -52
  421. package/dist/app/collab/collab-client.d.ts +0 -37
  422. package/dist/app/collab/collab-client.js +0 -208
  423. package/dist/app/collab/collab-manager.d.ts +0 -91
  424. package/dist/app/collab/collab-manager.js +0 -218
  425. package/dist/app/collab/collab-sync.d.ts +0 -62
  426. package/dist/app/collab/collab-sync.js +0 -215
  427. package/dist/app/collab/index.d.ts +0 -9
  428. package/dist/app/collab/index.js +0 -6
  429. package/dist/app/collab/super-fight.d.ts +0 -90
  430. package/dist/app/collab/super-fight.js +0 -310
  431. package/dist/app/collab/sync-bridge.d.ts +0 -35
  432. package/dist/app/collab/sync-bridge.js +0 -109
  433. package/dist/app/collab/types.d.ts +0 -75
  434. package/dist/app/collab/types.js +0 -5
  435. package/dist/embedded-agent/ai-content.d.ts +0 -52
  436. package/dist/embedded-agent/ai-content.js +0 -101
  437. package/dist/embedded-agent/host-tools/shared/llm-stream.d.ts +0 -31
  438. package/dist/embedded-agent/host-tools/shared/llm-stream.js +0 -136
  439. package/dist/embedded-agent/model-call-orchestrator.d.ts +0 -22
  440. package/dist/embedded-agent/model-call-orchestrator.js +0 -22
  441. package/dist/embedded-agent/stream-errors.d.ts +0 -10
  442. package/dist/embedded-agent/stream-errors.js +0 -73
  443. package/dist/embedded-agent/stream-message-state.d.ts +0 -14
  444. package/dist/embedded-agent/stream-message-state.js +0 -271
  445. package/dist/embedded-agent/stream-sse.d.ts +0 -78
  446. package/dist/embedded-agent/stream-sse.js +0 -73
  447. package/dist/shell/approvals/task-spawn-approval.d.ts +0 -20
  448. package/dist/shell/approvals/task-spawn-approval.js +0 -93
  449. package/dist/shell/interactive/collab-command.d.ts +0 -9
  450. package/dist/shell/interactive/collab-command.js +0 -115
  451. package/dist/shell/interactive/super-fight-ui.d.ts +0 -80
  452. package/dist/shell/interactive/super-fight-ui.js +0 -484
  453. package/dist/shell/status/collab-status.d.ts +0 -18
  454. package/dist/shell/status/collab-status.js +0 -46
  455. package/xll/python/Lib/site-packages/pip/_internal/build_env.py +0 -606
  456. /package/dist/{tui → autocomplete}/skill-autocomplete.js +0 -0
  457. /package/xll/python/Lib/site-packages/{pip-26.1.2.dist-info → pip-26.2.dist-info}/INSTALLER +0 -0
  458. /package/xll/python/Lib/site-packages/{pip-26.1.2.dist-info → pip-26.2.dist-info}/REQUESTED +0 -0
  459. /package/xll/python/Lib/site-packages/{pip-26.1.2.dist-info → pip-26.2.dist-info}/WHEEL +0 -0
  460. /package/xll/python/Lib/site-packages/{pip-26.1.2.dist-info → pip-26.2.dist-info}/entry_points.txt +0 -0
  461. /package/xll/python/Lib/site-packages/{pip-26.1.2.dist-info → pip-26.2.dist-info}/licenses/LICENSE.txt +0 -0
  462. /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
  463. /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
  464. /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
  465. /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
  466. /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
  467. /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
  468. /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
  469. /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
  470. /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
  471. /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
  472. /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
  473. /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
  474. /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
  475. /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
  476. /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
  477. /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
  478. /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
  479. /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
  480. /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,6 +1,6 @@
1
1
  BSD 3-Clause License
2
2
 
3
- Copyright (c) 2013-2025, Kim Davies and contributors.
3
+ Copyright (c) 2013-2026, Kim Davies and contributors.
4
4
  All rights reserved.
5
5
 
6
6
  Redistribution and use in source and binary forms, with or without
@@ -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=ct_c1XEc9wk5IesNp8GW8wi1p1RxoSQDlAHu1HK4dUc,108403
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=ggHCXk0CBBr5UiUFegiHODHLNDdn0WYMq5vAiR2hEUs,108399
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
@@ -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