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
@@ -25,8 +25,6 @@ export declare function getShortcutForkTraceDir(): string | undefined;
25
25
  export declare function getShortcutTuiRenderTraceSetting(): string | undefined;
26
26
  /** Optional TUI render trace full-text flag. */
27
27
  export declare function getShortcutTuiRenderTraceFullSetting(): string | undefined;
28
- /** WebSocket URL for the collab signaling server. */
29
- export declare const COLLAB_SERVER_URL: string;
30
28
  /** uv release version pinned to a known-good Astral release. */
31
29
  export declare const UV_VERSION = "0.7.2";
32
30
  /** Python version installed via uv on macOS. */
package/dist/constants.js CHANGED
@@ -58,9 +58,6 @@ export function getShortcutTuiRenderTraceFullSetting() {
58
58
  }
59
59
  // -- Dev mode --------------------------------------------------------------
60
60
  // Dev mode is now a settings.json flag (settingsManager.getDevMode()), not an env var.
61
- // -- Collaboration ---------------------------------------------------------
62
- /** WebSocket URL for the collab signaling server. */
63
- export const COLLAB_SERVER_URL = process.env.COLLAB_SERVER_URL ?? 'ws://localhost:9400';
64
61
  // -- uv (Python toolchain for macOS) --------------------------------------
65
62
  /** uv release version pinned to a known-good Astral release. */
66
63
  export const UV_VERSION = '0.7.2';
@@ -112,7 +112,7 @@ export interface RuntimeLlmCallEntry extends AgentSessionEntryBase {
112
112
  type: 'llm_call';
113
113
  requestId: string;
114
114
  body: {
115
- effort_level?: 'low' | 'medium' | 'high' | 'max';
115
+ effort_level?: 'low' | 'medium' | 'high' | 'xhigh' | 'max';
116
116
  max_tokens?: number;
117
117
  messages: readonly {
118
118
  content: string;
@@ -7,6 +7,7 @@ export declare const RUNTIME_THINKING_LEVEL: {
7
7
  readonly Medium: "medium";
8
8
  readonly High: "high";
9
9
  readonly XHigh: "xhigh";
10
+ readonly Max: "max";
10
11
  };
11
12
  export type AgentThinkingLevel = (typeof RUNTIME_THINKING_LEVEL)[keyof typeof RUNTIME_THINKING_LEVEL];
12
13
  export interface RuntimeFilesystemApprovalGrant {
@@ -5,6 +5,7 @@ export const RUNTIME_THINKING_LEVEL = {
5
5
  Low: 'low',
6
6
  Medium: 'medium',
7
7
  High: 'high',
8
- XHigh: 'xhigh'
8
+ XHigh: 'xhigh',
9
+ Max: 'max'
9
10
  };
10
11
  //# sourceMappingURL=agent-settings.js.map
@@ -4,7 +4,6 @@ export declare const ShortcutXLModelCallTransportKind: {
4
4
  readonly GoogleVertex: "google_vertex";
5
5
  readonly OpenAICompletions: "openai_completions";
6
6
  readonly OpenAIResponses: "openai_responses";
7
- readonly ShortcutProxy: "shortcut_proxy";
8
7
  };
9
8
  export type ShortcutXLModelCallTransportKind = (typeof ShortcutXLModelCallTransportKind)[keyof typeof ShortcutXLModelCallTransportKind];
10
9
  /**
@@ -146,7 +145,7 @@ export interface ShortcutXLModelInvokeToolChoice {
146
145
  readonly type: 'tool';
147
146
  }
148
147
  export interface ShortcutXLModelInvokePayload {
149
- readonly effortLevel?: 'low' | 'medium' | 'high';
148
+ readonly effortLevel?: 'low' | 'medium' | 'high' | 'xhigh' | 'max';
150
149
  readonly maxTokens?: number;
151
150
  readonly messages: readonly ShortcutXLModelInvokeMessage[];
152
151
  readonly model: string;
@@ -3,8 +3,7 @@ export const ShortcutXLModelCallTransportKind = {
3
3
  AnthropicMessages: 'anthropic_messages',
4
4
  GoogleVertex: 'google_vertex',
5
5
  OpenAICompletions: 'openai_completions',
6
- OpenAIResponses: 'openai_responses',
7
- ShortcutProxy: 'shortcut_proxy'
6
+ OpenAIResponses: 'openai_responses'
8
7
  };
9
8
  /**
10
9
  * Request types emitted by private-gateway usage logging.
@@ -7,6 +7,7 @@ export declare const ShortcutXLModelStreamEffortLevel: {
7
7
  readonly Low: "low";
8
8
  readonly Medium: "medium";
9
9
  readonly High: "high";
10
+ readonly XHigh: "xhigh";
10
11
  readonly Max: "max";
11
12
  };
12
13
  export type ShortcutXLModelStreamEffortLevel = (typeof ShortcutXLModelStreamEffortLevel)[keyof typeof ShortcutXLModelStreamEffortLevel];
@@ -6,6 +6,7 @@ export const ShortcutXLModelStreamEffortLevel = {
6
6
  Low: 'low',
7
7
  Medium: 'medium',
8
8
  High: 'high',
9
+ XHigh: 'xhigh',
9
10
  Max: 'max'
10
11
  };
11
12
  export const ShortcutXLModelStreamThinkingType = {
@@ -15,6 +15,7 @@ export declare const WorkerMessageKind: {
15
15
  readonly ModelStreamRequest: "modelStreamRequest";
16
16
  readonly AgentCommandAck: "runtimeCommandAck";
17
17
  readonly AgentCommand: "runtimeCommand";
18
+ readonly AgentCommandReceived: "runtimeCommandReceived";
18
19
  readonly AgentEvent: "runtimeEvent";
19
20
  };
20
21
  export type WorkerMessageKind = (typeof WorkerMessageKind)[keyof typeof WorkerMessageKind];
@@ -30,6 +31,12 @@ export interface AgentCommandAckMessage {
30
31
  ok: boolean;
31
32
  error?: string;
32
33
  }
34
+ export interface AgentCommandReceivedMessage {
35
+ kind: typeof WorkerMessageKind.AgentCommandReceived;
36
+ commandId: string;
37
+ receivedAt: number;
38
+ userMessageId: string;
39
+ }
33
40
  export interface AgentEventMessage {
34
41
  kind: typeof WorkerMessageKind.AgentEvent;
35
42
  event: AgentEvent;
@@ -42,7 +49,7 @@ export interface HostToolResultMessage {
42
49
  kind: typeof WorkerMessageKind.HostToolResult;
43
50
  result: HostToolResult;
44
51
  }
45
- export type ShortcutXLAiStreamOptions = Pick<SimpleStreamOptions, 'cacheRetention' | 'headers' | 'maxRetryDelayMs' | 'maxTokens' | 'metadata' | 'reasoning' | 'temperature' | 'transport'> & {
52
+ export type ShortcutXLAiStreamOptions = Pick<SimpleStreamOptions, 'cacheRetention' | 'headers' | 'maxRetryDelayMs' | 'maxTokens' | 'metadata' | 'reasoning' | 'temperature' | 'toolChoice' | 'transport'> & {
46
53
  readonly agentMode?: string;
47
54
  readonly continuationRunId?: string;
48
55
  readonly fileAttachmentIds?: readonly string[];
@@ -53,16 +60,12 @@ export type ShortcutXLAiStreamOptions = Pick<SimpleStreamOptions, 'cacheRetentio
53
60
  readonly speed?: 'fast' | 'standard';
54
61
  readonly userMessageId?: string;
55
62
  };
56
- export type ShortcutXLAiInvokeOptions = Pick<SimpleStreamOptions, 'cacheRetention' | 'headers' | 'maxRetryDelayMs' | 'maxTokens' | 'metadata' | 'reasoning' | 'temperature' | 'transport'> & {
63
+ export type ShortcutXLAiInvokeOptions = Pick<SimpleStreamOptions, 'cacheRetention' | 'headers' | 'maxRetryDelayMs' | 'maxTokens' | 'metadata' | 'reasoning' | 'temperature' | 'toolChoice' | 'transport'> & {
57
64
  readonly continuationRunId?: string;
58
65
  readonly requestType?: ShortcutXLUsageLogRequestType;
59
66
  readonly fastModeModelIds?: readonly string[];
60
67
  readonly speed?: 'fast' | 'standard';
61
68
  readonly thinkingType?: 'off' | 'on';
62
- readonly toolChoice?: 'auto' | 'any' | 'none' | 'required' | {
63
- readonly name: string;
64
- readonly type: 'tool';
65
- };
66
69
  readonly userMessageId?: string;
67
70
  };
68
71
  export interface ShortcutXLAiModelStreamRequest {
@@ -94,7 +97,7 @@ export interface ModelStreamCancelMessage {
94
97
  kind: typeof WorkerMessageKind.ModelStreamCancel;
95
98
  requestId: string;
96
99
  }
97
- export type WorkerMessage = AgentCommandAckMessage | AgentCommandMessage | AgentEventMessage | HostToolRequestMessage | HostToolResultMessage | ModelStreamCancelMessage | ModelStreamEventMessage | ModelStreamRequestMessage;
100
+ export type WorkerMessage = AgentCommandAckMessage | AgentCommandMessage | AgentCommandReceivedMessage | AgentEventMessage | HostToolRequestMessage | HostToolResultMessage | ModelStreamCancelMessage | ModelStreamEventMessage | ModelStreamRequestMessage;
98
101
  /** Envelope-shape guard; tool-payload validation goes through the registry. */
99
102
  export declare function isWorkerMessage(value: unknown, registry: ToolRegistry): value is WorkerMessage;
100
103
  export declare function isShortcutXLAiModelInvokeRequest(value: unknown): value is ShortcutXLAiModelInvokeRequest;
@@ -12,6 +12,7 @@ export const WorkerMessageKind = {
12
12
  ModelStreamRequest: 'modelStreamRequest',
13
13
  AgentCommandAck: 'runtimeCommandAck',
14
14
  AgentCommand: 'runtimeCommand',
15
+ AgentCommandReceived: 'runtimeCommandReceived',
15
16
  AgentEvent: 'runtimeEvent'
16
17
  };
17
18
  /** Envelope-shape guard; tool-payload validation goes through the registry. */
@@ -30,6 +31,13 @@ export function isWorkerMessage(value, registry) {
30
31
  typeof message.ok === 'boolean' &&
31
32
  (message.error == null || typeof message.error === 'string'));
32
33
  }
34
+ case WorkerMessageKind.AgentCommandReceived: {
35
+ const message = candidate;
36
+ return (typeof message.commandId === 'string' &&
37
+ typeof message.receivedAt === 'number' &&
38
+ Number.isFinite(message.receivedAt) &&
39
+ typeof message.userMessageId === 'string');
40
+ }
33
41
  case WorkerMessageKind.AgentCommand:
34
42
  return (typeof candidate.commandId === 'string' &&
35
43
  isAgentCommand(candidate.command) &&
@@ -94,7 +94,7 @@ export class AgentEngine {
94
94
  async runTurn(options) {
95
95
  const { state, messageQueue, signal, messages, onEvent } = options;
96
96
  const model = state.model;
97
- const reasoning = state.thinkingLevel === 'off' ? undefined : state.thinkingLevel;
97
+ const reasoning = state.thinkingLevel;
98
98
  const context = {
99
99
  systemPrompt: state.systemPrompt,
100
100
  messages: state.messages.slice(),
@@ -19,18 +19,6 @@ export interface ToolExecutionApprovalGrants {
19
19
  filesystem?: ApprovedFilesystemAccessGrant[];
20
20
  shell?: ApprovedShellAccessGrant[];
21
21
  }
22
- export interface SubagentSpawnGrant {
23
- /**
24
- * Approved task spawns become full headless workers.
25
- *
26
- * This is intentionally all-or-nothing: once a task launch is allowed, the
27
- * child receives a full-worker policy derived from its declared tool set
28
- * rather than a per-capability partial widening.
29
- */
30
- fullWorker: true;
31
- /** One-shot launch-mode override chosen in the task-spawn approval prompt. */
32
- runInBackground?: boolean;
33
- }
34
22
  /** Stream function - can return sync or Promise for async config lookup */
35
23
  export type StreamFn = (...args: Parameters<typeof streamSimple>) => ReturnType<typeof streamSimple> | Promise<ReturnType<typeof streamSimple>>;
36
24
  /**
@@ -114,7 +102,7 @@ export interface AgentLoopConfig extends SimpleStreamOptions {
114
102
  /**
115
103
  * Thinking/reasoning level for models that support it.
116
104
  */
117
- export type ThinkingLevel = 'off' | 'minimal' | 'low' | 'medium' | 'high' | 'xhigh';
105
+ export type ThinkingLevel = 'off' | 'minimal' | 'low' | 'medium' | 'high' | 'xhigh' | 'max';
118
106
  /**
119
107
  * Module-augmentation hook for custom app messages.
120
108
  * See `core/custom-messages.ts` for the built-in augmentation.
@@ -216,14 +204,6 @@ export interface ToolExecutionContext {
216
204
  sessionState?: SessionState;
217
205
  permissionPolicy?: RuntimePermissionPolicy;
218
206
  approvalGrants?: ToolExecutionApprovalGrants;
219
- /**
220
- * One-shot approval context for a single task-tool spawn.
221
- *
222
- * Unlike filesystem/shell approvalGrants, this does not authorize repeated
223
- * child launches. It only marks the current task invocation as approved to
224
- * launch a full-worker child session.
225
- */
226
- subagentSpawnGrant?: SubagentSpawnGrant;
227
207
  /** Wrap long-running awaitables so UI sees op_start/tick/op_end. Optional in tests. */
228
208
  heartbeatWrap?: <T>(promise: Promise<T>, kind: InFlightOpKind, meta?: InFlightMeta) => Promise<T>;
229
209
  }
@@ -3,7 +3,7 @@
3
3
  */
4
4
  import type { ThinkingLevel } from './core-types.js';
5
5
  /** All recognized thinking levels, ordered from least to most reasoning. */
6
- export declare const VALID_THINKING_LEVELS: readonly ["off", "minimal", "low", "medium", "high", "xhigh"];
6
+ export declare const VALID_THINKING_LEVELS: readonly ["off", "minimal", "low", "medium", "high", "xhigh", "max"];
7
7
  /** Type guard: returns true if the string is a valid {@link ThinkingLevel}. */
8
8
  export declare function isValidThinkingLevel(level: string): level is ThinkingLevel;
9
9
  export declare const DEFAULT_THINKING_LEVEL: ThinkingLevel;
@@ -1,5 +1,13 @@
1
1
  /** All recognized thinking levels, ordered from least to most reasoning. */
2
- export const VALID_THINKING_LEVELS = ['off', 'minimal', 'low', 'medium', 'high', 'xhigh'];
2
+ export const VALID_THINKING_LEVELS = [
3
+ 'off',
4
+ 'minimal',
5
+ 'low',
6
+ 'medium',
7
+ 'high',
8
+ 'xhigh',
9
+ 'max'
10
+ ];
3
11
  /** Type guard: returns true if the string is a valid {@link ThinkingLevel}. */
4
12
  export function isValidThinkingLevel(level) {
5
13
  return VALID_THINKING_LEVELS.includes(level);
@@ -1,6 +1,6 @@
1
1
  /**
2
2
  * Shared agent-guideline prompt text — the single source of truth for the
3
- * persona/philosophy, task-execution, and communication guidance used by
3
+ * task-execution and communication guidance used by
4
4
  * BOTH the CLI agent (`app/prompts/shared-guidelines.ts`) and the embedded
5
5
  * agent (`embedded-agent/prompt/sections.ts`).
6
6
  *
@@ -10,9 +10,8 @@
10
10
  * references, sandbox layout, font defaults, etc.) stay in each surface's own
11
11
  * prompt module and are composed around these constants.
12
12
  */
13
- export declare const AGENT_PHILOSOPHY = "\n======================\n## AGENT PHILOSOPHY\n======================\nYou are an excel expert. But raw spreadsheet ability is not the bottleneck anymore, it is gathering adequate context and verification\n\n### Exploration\n\nCode or formulas written too early *look* like progress but are actually premature commitment.\nThey hide assumptions inside details that seem complete. Then implementation starts, and you discover the workbook uses different conventions, different signs, layouts, or logic \u2014 and now you're fighting the model instead of following it.\nThe implementation is cheap. Finding the right model design is expensive.\nPlans should do the expensive work first: researching the workbook, surfacing unknowns, defining contracts, and deciding how to verify success.\n\nExplore the workbook first, then define the contract \u2014 don't write prematurely. Adequate exploration specifies:\n- Workbook context \u2014 which sheets, ranges, formulas, and conventions are involved\n- Contracts and interfaces \u2014 what are the inputs, outputs, and expected behaviors?\n- Failure modes \u2014 what can go wrong and how would it show up in the model?\n- Open questions \u2014 what decisions are blocked on information you don't have yet?\n- Success criteria \u2014 what checks would prove this works?\n\n### Verification\n\nVerification means every important behavior is checked.\nClean boundaries mean every part of the model has a clear role, with assumptions, calculations, and outputs separated cleanly enough to understand and validate in isolation.\n\nEvery task starts with defining the checks that prove the workbook behavior is correct. Once done, the implementation writes itself.\n- Define the contract/interface in filesystem \u2014 what should this part of the workbook do, precisely?\n- Read the surrounding workbook carefully to understand the existing pattern, conventions, and dependencies\n- Identify the failure modes in filesystem \u2014 broken references, hardcoded values, inconsistent signs, incorrect ranges, formatting drift, stale assumptions\n- Make the change\n- Re-read the affected cells, formulas, and downstream outputs until the workbook is verified. For large changes, spawn independent review agents to check your work and catch mistakes you missed. If you find mistakes, fix them and re-verify until clean.\n\n### When to Push Back\n\nYou are an operational and modeling partner, not a formula monkey. Be opinionated and direct.\n\n- When a user asks for a patch on top of broken logic, don't blindly apply it. Call out the root cause. Explain what's actually wrong. Propose the real fix. A band-aid on a broken model makes things worse.\n- When you find one broken formula pattern, don't just fix that one cell. Ask: what is the full affected range or category? Whack-a-mole is infinite. Systematic coverage is finite.\n- Propose the clean solution and explain the cost of not doing it. A duplicate assumption, one-off hardcode, or parallel calculation path will rot.";
14
- export declare const TASK_EXECUTION = "\n======================\n## TASK EXECUTION\n======================\nPlan mode is for read-only exploration, clarifying requirements, and drafting an implementation plan. It produces a plan markdown file in /tmp/.\nUse plan mode for user frustration, ambiguous asks, subjective asks, vague repair requests, or complex workbook changes. Do not switch to plan mode when recent messages already establish the work or the user just approved a course of action.\n\nFor any non-trivial or substantial task, bias toward the autonomous skill workflow. Treat a task as autonomous-worthy when it has any of: more than roughly 30 minutes of equivalent human analyst work, source/PDF/data extraction, workbook modeling, more than 2-3 phases, or enough decisions that a reviewer needs a record.\n- Before implementation, read and follow autonomous skill and maintain a plan.md and a status.md rather than trying to keep the work in your head.\n- For difficult tasks, consider spawning verification subagents for independent review after completion.\n\nFor ordinary tasks, work directly: implement, verify against actual workbook/file state, and stop when complete. Do not ask what to do next when the next step is clear.";
15
- export declare const COMMUNICATION = "\n======================\n## TONE AND STYLE\n======================\n- Be clear and direct. Give enough context that the user understands what's happening and why. A sentence or two is usually right, more if the task is complex\n- NEVER include code in responses. Describe intentions briefly per turn. After completing tasks, stop \u2014 don't explain what you did\n- No emojis unless requested. Avoid filler phrases like \"Here is...\" or \"Based on...\". Be proactive when taking actions, but answer questions directly without jumping to action\n- Reference cells/ranges frequently using Sheet!Range or Sheet!Cell format (e.g., \"Summary!A1:B10\", \"Data!C5\") \u2014 this renders as a clickable reference and tells users exactly where to look";
13
+ export declare const TASK_EXECUTION = "\n======================\n## TASK EXECUTION\n======================\n### Exploration\n\nYou are an excel expert. But raw spreadsheet ability is not the bottleneck anymore, it is gathering adequate context\n\nCode or formulas written too early look like progress but are actually premature commitment.\nThey hide assumptions inside details that seem complete. Then implementation starts, and you discover the workbook uses different conventions, different signs, layouts, or logic \u2014 and now you're fighting the model instead of following it.\nAdequately Explore the workbook first.\n\n### Resolving Ambiguity\n- Deliver what the user asked for, at the scope they intended. Interpret ambiguity the way a careful colleague would: make routine judgment calls yourself, but check in when different readings would lead to materially different work.\n- If you conclude the ask is mistaken, cannot be completed, or a better approach exists, stop and tell the user. Do not quietly narrow, widen, or transform the task.\n- Record every material ambiguity you resolved without asking, including the interpretation chosen and a brief rationale in a decision-log.md file and tell the user where the record was written at the end.\n\n### When to Push Back\n\nYou are an operational and modeling partner, not a formula monkey. Be opinionated and direct.\n\n- When a user asks for a patch on top of broken logic, don't blindly apply it. Call out the root cause. Explain what's actually wrong. Propose the real fix. A band-aid on a broken model makes things worse.\n- When you find one broken formula pattern, don't just fix that one cell. Ask: what is the full affected range or category? Whack-a-mole is infinite. Systematic coverage is finite.\n- Propose the clean solution and explain the cost of not doing it. A duplicate assumption, one-off hardcode, or parallel calculation path will rot.\n\n### When to plan\n- Plan mode is for read-only exploration, clarifying requirements, and drafting an implementation plan. \n- Use plan mode for user frustration, ambiguous asks, subjective asks, vague repair requests, or complex workbook changes. It produces a plan markdown file in /tmp/.\n- Do not switch to plan mode when recent messages already establish the work or the user just approved a course of action.\n\n### When to use autonomous skill\n- For substantial tasks (>30 minutes of human analyst work, ie data extractions, modeling, more than 2-3 phases, lots of decisions), bias toward the autonomous skill workflow.\n\n### Verification\n- Verification means every important behavior is checked.\n- Clean boundaries mean every part of the model has a clear role, with assumptions, calculations, and outputs separated cleanly enough to understand and validate in isolation.\n- Start tasks by defining the checks on a separate workbook sheet or in a checklist.md in the filesystem that prove the workbook behavior is correct. Once done, the implementation writes itself.\n";
14
+ export declare const COMMUNICATION = "\n======================\n## TONE AND STYLE\n======================\n- Keep responses focused, brief, and concise to avoid overwhelming the person. Disclaimers and caveats should be brief, with most of the response on the main answer. \n- When asked to explain something, give a high-level summary unless an in-depth one is specifically requested.\n- NEVER include code in responses. Describe intentions briefly per turn. After completing tasks, stop \u2014 don't explain what you did\n- No emojis unless requested. Be proactive when taking actions, but answer questions directly without jumping to action\n- Reference cells/ranges frequently using Sheet!Range or Sheet!Cell format (e.g., \"Summary!A1:B10\", \"Data!C5\") \u2014 this renders as a clickable reference and tells users exactly where to look";
16
15
  export declare const DATA_FORMATTING = "======================\n## \uD83D\uDCCA DATA FORMATTING\n======================\n**IMPORTANT**: Do NOT apply new formatting unless specified. Match existing formatting and inspect surrounding data for consistency. Every tab must be visually consistent -\n consistent colors, fonts, number formats, and header styles throughout. DO NOT overwrite cells unless explicitly requested.\n\nModel Integrity:\n- Every spreadsheet is a live model. Inputs \u2192 assumptions \u2192 calculations \u2192 outputs. When ANY input changes, every dependent cell must update automatically through formula linkage \u2014 no manual intervention.\n- Single source of truth: each constant lives in exactly one cell, referenced everywhere else.\n- Organize inputs in a dedicated section or sheet (e.g., \"Assumptions\" tab). Do NOT create named ranges unless explicitly requested.\n- Never hardcode numbers in formulas: every number traces back to a labeled input cell. When extracting from sources (PDFs, images, files), extract each value ONCE into an input cell, then reference that cell everywhere else. Never pull the same value from a source twice.\n- Formulas should be simple and auditable. Reference cells by position, not by searching for them \u2014 you already know where the data is.\n- If formulas must be complex, still use formulas -- never resort to hardcodes or value insertions. You can first compute internally or via Python, but always use formulas on the sheet itself.\n- For scenario analysis, sensitivity testing, auditing, debugging, or tasks that benefit from a scratch workbook file in the sandbox, use the simulation task agent. Save the live workbook first, then give the returned path to the simulation agent.\n\nColor Standards:\n- Blue: inputs/assumptions | Black: formulas | Green: cross-sheet refs | Red: external refs\n- Use subtle styling (borders, bold, light greys/blues). Avoid vibrant colors - they're unprofessional\n\nCell Formatting:\n- Use uniform font size across all cells (detect existing size or default to 12pt Aptos Narrow). Only vary size for headers/titles.\n- Prefer 10pt or larger for readability.\n- Standardize number formats, use brackets for negatives\n- Use cell number formats (0.0%, #,##0.0) for display precision. Never embed ROUND() in formulas for display purposes -- unless the user explicitly asks for it\n- For currency, always use a pre-defined format type (accounting, banking) if it exists\n- Bold titles/sums, include units/currency symbols\n- Label historical vs projected data clearly\n- Hide gridlines for financial models\n- Prefer manual sizing over autofit. Autofit sizes to the longest cell content, which produces uneven, unprofessional column widths across a model.\n- Use consistent widths within sections (e.g., all quarterly data columns the same width, all label columns the same width).\n\nOrganization:\n- Start at B2 (top-left padding), not A1\n- Use 1px borders within models, thicker for section breaks\n- Indent parent/child hierarchies, avoid merging cells\n- Name worksheets clearly (e.g., \"Assumptions\", not \"Sheet1\")";
17
- export declare const WRITING_CODE = "======================\n## \uD83D\uDD27 WRITING CODE\n======================\n*Typescript code generation*\n\nYou can write Typescript code that interacts with the excel workbook based on the below API. Execute code as many times as needed before returning the final answer.\n\n*CRITICAL PRINCIPLES FOR WRITING ONTO THE SPREADSHEET*\n- IMPORTANT: Use bulk range writes over cell-by-cell loops. For example, use the Worksheet API's autoFill method.\n- If you loop over individual cells, loop over numeric indices. Looping over letters (e.g. incrementing column letters) does not work reliably.\n- Do not overwrite existing data, especially existing user-filled data, unless explicitly requested.\n- Pay special attention to positive/negative values and decimal conventions. For example, if adjacent tax values are negative, then tax values that you fill in should be negative. They are generally found in column labels like '(+) Tax' or '(-) Depreciation'.\n- Sign conventions: When linking data, signs often must flip. Understand source and destination conventions to confirm the expected sign before writing.\n\n*STRUCTURAL OPERATIONS*\nInserting or deleting rows/columns are inherently dangerous because they shift the entire sheet. Addresses you have memorized previously may now be wrong.\nThe spreadsheet engine auto-adjusts formulas for references inside affected ranges, but not always correctly for edge cases (ranges ending at the insertion point, cross-sheet refs, etc.).\nFor structural changes, you MUST do the following:\n- Consider whether to get dependents of modified cells to map downstream effects.\n- Do the structural change (adding / deleting rows or columns) and NOTHING ELSE in that code block.\n- In a new code execution, read the affected cells to see what auto-adjusted. Never assume you know what the formulas look like now \u2014 your pre-insertion row/column numbers are STALE.\n- Error check the workbook to catch any errors (especially #REF) the structural change introduced.\n- Only then write corrections, using actual current state you just read \u2014 not your mental model of what shifted.\n\n*PREFER NATIVE FUNCTIONALITY*\n- ALWAYS prefer native spreadsheet functionality (pivot tables, tables, data validation, charts, conditional formatting, etc.) over programmatically writing values / formulas / styles for dynamic updates.\n- If any request can be naturally solved with pivot tables or pivot analysis, ALWAYS do that instead of programmatically writing values and formulas.";
16
+ export declare const WRITING_CODE = "======================\n## \uD83D\uDD27 WRITING CODE\n======================\nYou can write code that interacts with the excel workbook based on the below API. Execute code as many times as needed before returning the final answer.\n\n*CRITICAL PRINCIPLES FOR WRITING ONTO THE SPREADSHEET*\n- IMPORTANT: Use bulk range writes over cell-by-cell loops. For example, use the Worksheet API's autoFill method.\n- If you loop over individual cells, loop over numeric indices. Looping over letters (e.g. incrementing column letters) does not work reliably.\n- Do not overwrite existing data, especially existing user-filled data, unless explicitly requested.\n- Pay special attention to positive/negative values and decimal conventions. For example, if adjacent tax values are negative, then tax values that you fill in should be negative. They are generally found in column labels like '(+) Tax' or '(-) Depreciation'.\n- Sign conventions: When linking data, signs often must flip. Understand source and destination conventions to confirm the expected sign before writing.\n\n*STRUCTURAL OPERATIONS*\nInserting or deleting rows/columns are inherently dangerous because they shift the entire sheet. Addresses you have memorized previously may now be wrong.\nThe spreadsheet engine auto-adjusts formulas for references inside affected ranges, but not always correctly for edge cases (ranges ending at the insertion point, cross-sheet refs, etc.).\nFor structural changes, you MUST do the following:\n- Consider whether to get dependents of modified cells to map downstream effects.\n- Do the structural change (adding / deleting rows or columns) and NOTHING ELSE in that code block.\n- In a new code execution, read the affected cells to see what auto-adjusted. Never assume you know what the formulas look like now \u2014 your pre-insertion row/column numbers are STALE.\n- Error check the workbook to catch any errors (especially #REF) the structural change introduced.\n- Only then write corrections, using actual current state you just read \u2014 not your mental model of what shifted.\n\n*PREFER NATIVE FUNCTIONALITY*\n- ALWAYS prefer native spreadsheet functionality (pivot tables, tables, data validation, charts, conditional formatting, etc.) over programmatically writing values / formulas / styles for dynamic updates.\n- If any request can be naturally solved with pivot tables or pivot analysis, ALWAYS do that instead of programmatically writing values and formulas.";
18
17
  //# sourceMappingURL=agent-guidelines.d.ts.map
@@ -1,6 +1,6 @@
1
1
  /**
2
2
  * Shared agent-guideline prompt text — the single source of truth for the
3
- * persona/philosophy, task-execution, and communication guidance used by
3
+ * task-execution and communication guidance used by
4
4
  * BOTH the CLI agent (`app/prompts/shared-guidelines.ts`) and the embedded
5
5
  * agent (`embedded-agent/prompt/sections.ts`).
6
6
  *
@@ -10,37 +10,22 @@
10
10
  * references, sandbox layout, font defaults, etc.) stay in each surface's own
11
11
  * prompt module and are composed around these constants.
12
12
  */
13
- export const AGENT_PHILOSOPHY = `
13
+ export const TASK_EXECUTION = `
14
14
  ======================
15
- ## AGENT PHILOSOPHY
15
+ ## TASK EXECUTION
16
16
  ======================
17
- You are an excel expert. But raw spreadsheet ability is not the bottleneck anymore, it is gathering adequate context and verification
18
-
19
17
  ### Exploration
20
18
 
21
- Code or formulas written too early *look* like progress but are actually premature commitment.
22
- They hide assumptions inside details that seem complete. Then implementation starts, and you discover the workbook uses different conventions, different signs, layouts, or logic — and now you're fighting the model instead of following it.
23
- The implementation is cheap. Finding the right model design is expensive.
24
- Plans should do the expensive work first: researching the workbook, surfacing unknowns, defining contracts, and deciding how to verify success.
25
-
26
- Explore the workbook first, then define the contract — don't write prematurely. Adequate exploration specifies:
27
- - Workbook context — which sheets, ranges, formulas, and conventions are involved
28
- - Contracts and interfaces — what are the inputs, outputs, and expected behaviors?
29
- - Failure modes — what can go wrong and how would it show up in the model?
30
- - Open questions — what decisions are blocked on information you don't have yet?
31
- - Success criteria — what checks would prove this works?
32
-
33
- ### Verification
19
+ You are an excel expert. But raw spreadsheet ability is not the bottleneck anymore, it is gathering adequate context
34
20
 
35
- Verification means every important behavior is checked.
36
- Clean boundaries mean every part of the model has a clear role, with assumptions, calculations, and outputs separated cleanly enough to understand and validate in isolation.
21
+ Code or formulas written too early look like progress but are actually premature commitment.
22
+ They hide assumptions inside details that seem complete. Then implementation starts, and you discover the workbook uses different conventions, different signs, layouts, or logic — and now you're fighting the model instead of following it.
23
+ Adequately Explore the workbook first.
37
24
 
38
- Every task starts with defining the checks that prove the workbook behavior is correct. Once done, the implementation writes itself.
39
- - Define the contract/interface in filesystem — what should this part of the workbook do, precisely?
40
- - Read the surrounding workbook carefully to understand the existing pattern, conventions, and dependencies
41
- - Identify the failure modes in filesystem — broken references, hardcoded values, inconsistent signs, incorrect ranges, formatting drift, stale assumptions
42
- - Make the change
43
- - Re-read the affected cells, formulas, and downstream outputs until the workbook is verified. For large changes, spawn independent review agents to check your work and catch mistakes you missed. If you find mistakes, fix them and re-verify until clean.
25
+ ### Resolving Ambiguity
26
+ - Deliver what the user asked for, at the scope they intended. Interpret ambiguity the way a careful colleague would: make routine judgment calls yourself, but check in when different readings would lead to materially different work.
27
+ - If you conclude the ask is mistaken, cannot be completed, or a better approach exists, stop and tell the user. Do not quietly narrow, widen, or transform the task.
28
+ - Record every material ambiguity you resolved without asking, including the interpretation chosen and a brief rationale in a decision-log.md file and tell the user where the record was written at the end.
44
29
 
45
30
  ### When to Push Back
46
31
 
@@ -48,26 +33,29 @@ You are an operational and modeling partner, not a formula monkey. Be opinionate
48
33
 
49
34
  - When a user asks for a patch on top of broken logic, don't blindly apply it. Call out the root cause. Explain what's actually wrong. Propose the real fix. A band-aid on a broken model makes things worse.
50
35
  - When you find one broken formula pattern, don't just fix that one cell. Ask: what is the full affected range or category? Whack-a-mole is infinite. Systematic coverage is finite.
51
- - Propose the clean solution and explain the cost of not doing it. A duplicate assumption, one-off hardcode, or parallel calculation path will rot.`;
52
- export const TASK_EXECUTION = `
53
- ======================
54
- ## TASK EXECUTION
55
- ======================
56
- Plan mode is for read-only exploration, clarifying requirements, and drafting an implementation plan. It produces a plan markdown file in /tmp/.
57
- Use plan mode for user frustration, ambiguous asks, subjective asks, vague repair requests, or complex workbook changes. Do not switch to plan mode when recent messages already establish the work or the user just approved a course of action.
36
+ - Propose the clean solution and explain the cost of not doing it. A duplicate assumption, one-off hardcode, or parallel calculation path will rot.
58
37
 
59
- For any non-trivial or substantial task, bias toward the autonomous skill workflow. Treat a task as autonomous-worthy when it has any of: more than roughly 30 minutes of equivalent human analyst work, source/PDF/data extraction, workbook modeling, more than 2-3 phases, or enough decisions that a reviewer needs a record.
60
- - Before implementation, read and follow autonomous skill and maintain a plan.md and a status.md rather than trying to keep the work in your head.
61
- - For difficult tasks, consider spawning verification subagents for independent review after completion.
38
+ ### When to plan
39
+ - Plan mode is for read-only exploration, clarifying requirements, and drafting an implementation plan.
40
+ - Use plan mode for user frustration, ambiguous asks, subjective asks, vague repair requests, or complex workbook changes. It produces a plan markdown file in /tmp/.
41
+ - Do not switch to plan mode when recent messages already establish the work or the user just approved a course of action.
62
42
 
63
- For ordinary tasks, work directly: implement, verify against actual workbook/file state, and stop when complete. Do not ask what to do next when the next step is clear.`;
43
+ ### When to use autonomous skill
44
+ - For substantial tasks (>30 minutes of human analyst work, ie data extractions, modeling, more than 2-3 phases, lots of decisions), bias toward the autonomous skill workflow.
45
+
46
+ ### Verification
47
+ - Verification means every important behavior is checked.
48
+ - Clean boundaries mean every part of the model has a clear role, with assumptions, calculations, and outputs separated cleanly enough to understand and validate in isolation.
49
+ - Start tasks by defining the checks on a separate workbook sheet or in a checklist.md in the filesystem that prove the workbook behavior is correct. Once done, the implementation writes itself.
50
+ `;
64
51
  export const COMMUNICATION = `
65
52
  ======================
66
53
  ## TONE AND STYLE
67
54
  ======================
68
- - Be clear and direct. Give enough context that the user understands what's happening and why. A sentence or two is usually right, more if the task is complex
55
+ - Keep responses focused, brief, and concise to avoid overwhelming the person. Disclaimers and caveats should be brief, with most of the response on the main answer.
56
+ - When asked to explain something, give a high-level summary unless an in-depth one is specifically requested.
69
57
  - NEVER include code in responses. Describe intentions briefly per turn. After completing tasks, stop — don't explain what you did
70
- - No emojis unless requested. Avoid filler phrases like "Here is..." or "Based on...". Be proactive when taking actions, but answer questions directly without jumping to action
58
+ - No emojis unless requested. Be proactive when taking actions, but answer questions directly without jumping to action
71
59
  - Reference cells/ranges frequently using Sheet!Range or Sheet!Cell format (e.g., "Summary!A1:B10", "Data!C5") — this renders as a clickable reference and tells users exactly where to look`;
72
60
  export const DATA_FORMATTING = `\
73
61
  ======================
@@ -110,9 +98,7 @@ export const WRITING_CODE = `\
110
98
  ======================
111
99
  ## 🔧 WRITING CODE
112
100
  ======================
113
- *Typescript code generation*
114
-
115
- You can write Typescript code that interacts with the excel workbook based on the below API. Execute code as many times as needed before returning the final answer.
101
+ You can write code that interacts with the excel workbook based on the below API. Execute code as many times as needed before returning the final answer.
116
102
 
117
103
  *CRITICAL PRINCIPLES FOR WRITING ONTO THE SPREADSHEET*
118
104
  - IMPORTANT: Use bulk range writes over cell-by-cell loops. For example, use the Worksheet API's autoFill method.
@@ -115,7 +115,7 @@ export interface LlmCallEntry extends SessionEntryBase {
115
115
  type: 'llm_call';
116
116
  requestId: string;
117
117
  body: {
118
- effort_level?: 'low' | 'medium' | 'high' | 'max';
118
+ effort_level?: 'low' | 'medium' | 'high' | 'xhigh' | 'max';
119
119
  max_tokens?: number;
120
120
  messages: readonly {
121
121
  content: string;
@@ -1,5 +1,5 @@
1
1
  import type { Api, AssistantMessage, Model } from '../ai/types.js';
2
- import { type ShortcutXLModelInvokePayload, type ShortcutXLModelInvokeResponse } from '../contracts/model-call.js';
2
+ import { type ShortcutXLModelInvokeResponse } from '../contracts/model-call.js';
3
3
  import type { ShortcutXLAiInvokeOptions, ShortcutXLAiModelInvokeRequest } from '../contracts/wire.js';
4
4
  import type { InvokeLlmParams } from './host-tools/invoke-llm/contract.js';
5
5
  export declare function createShortcutXLAiModelInvokeRequestFromParams(options: {
@@ -11,6 +11,5 @@ export declare function createShortcutXLAiModelInvokeRequestFromParams(options:
11
11
  readonly speed?: ShortcutXLAiInvokeOptions['speed'];
12
12
  readonly userMessageId?: string;
13
13
  }): ShortcutXLAiModelInvokeRequest;
14
- export declare function shortcutXLAiModelInvokeRequestToPayload(request: ShortcutXLAiModelInvokeRequest): ShortcutXLModelInvokePayload;
15
14
  export declare function assistantMessageToShortcutXLInvokeResponse(message: AssistantMessage | undefined): ShortcutXLModelInvokeResponse;
16
15
  //# sourceMappingURL=ai-invoke.d.ts.map
@@ -1,5 +1,4 @@
1
1
  import { ShortcutXLProviderUsageStatus } from '../contracts/model-call.js';
2
- import { aiContentToShortcutProxyContent } from './ai-content.js';
3
2
  function toStructuredCloneSafe(value, seen = new WeakSet()) {
4
3
  if (value === null ||
5
4
  typeof value === 'string' ||
@@ -68,7 +67,7 @@ export function createShortcutXLAiModelInvokeRequestFromParams(options) {
68
67
  maxTokens: params.max_tokens,
69
68
  model: params.model,
70
69
  thinkingType: params.thinking_type,
71
- toolChoice: params.tool_choice
70
+ toolChoice: params.tool_choice ? { name: params.tool_choice.name } : undefined
72
71
  }, options.baseModel),
73
72
  options: {
74
73
  ...(options.continuationRunId ? { continuationRunId: options.continuationRunId } : {}),
@@ -77,79 +76,12 @@ export function createShortcutXLAiModelInvokeRequestFromParams(options) {
77
76
  ...(options.requestType ? { requestType: options.requestType } : {}),
78
77
  ...(options.speed !== undefined ? { speed: options.speed } : {}),
79
78
  ...(params.thinking_type ? { thinkingType: params.thinking_type } : {}),
80
- ...(params.tool_choice ? { toolChoice: params.tool_choice } : {}),
79
+ ...(params.tool_choice ? { toolChoice: { name: params.tool_choice.name } } : {}),
81
80
  ...(options.userMessageId ? { userMessageId: options.userMessageId } : {})
82
81
  },
83
82
  requestId: options.requestId
84
83
  });
85
84
  }
86
- function toolCallToShortcutProxyToolCall(toolCall) {
87
- return {
88
- arguments: JSON.stringify(toolCall.arguments ?? {}),
89
- id: toolCall.id,
90
- name: toolCall.name
91
- };
92
- }
93
- export function shortcutXLAiModelInvokeRequestToPayload(request) {
94
- const messages = [
95
- ...(request.context.systemPrompt
96
- ? [{ content: request.context.systemPrompt, role: 'system' }]
97
- : [])
98
- ];
99
- for (const message of request.context.messages) {
100
- if (message.role === 'user') {
101
- messages.push({
102
- content: aiContentToShortcutProxyContent(message.content, request.model.id),
103
- role: 'human'
104
- });
105
- continue;
106
- }
107
- if (message.role === 'assistant') {
108
- const content = typeof message.content === 'string'
109
- ? message.content
110
- : message.content
111
- .filter((block) => block.type === 'text')
112
- .map((block) => block.text)
113
- .join('');
114
- const toolCalls = typeof message.content === 'string'
115
- ? undefined
116
- : message.content
117
- .filter((block) => block.type === 'toolCall')
118
- .map(toolCallToShortcutProxyToolCall);
119
- messages.push({
120
- content,
121
- role: 'ai',
122
- ...(toolCalls && toolCalls.length > 0 ? { toolCalls } : {})
123
- });
124
- continue;
125
- }
126
- if (message.role === 'toolResult') {
127
- messages.push({
128
- content: aiContentToShortcutProxyContent(message.content, request.model.id),
129
- role: 'tool',
130
- toolCallId: message.toolCallId
131
- });
132
- }
133
- }
134
- return {
135
- effortLevel: request.options?.reasoning === 'low' ||
136
- request.options?.reasoning === 'medium' ||
137
- request.options?.reasoning === 'high'
138
- ? request.options.reasoning
139
- : undefined,
140
- maxTokens: request.options?.maxTokens,
141
- messages,
142
- model: request.model.id,
143
- speed: request.options?.speed,
144
- thinkingType: request.options?.thinkingType,
145
- toolChoice: typeof request.options?.toolChoice === 'object' ? request.options.toolChoice : undefined,
146
- tools: request.context.tools?.map((tool) => ({
147
- description: tool.description,
148
- name: tool.name,
149
- parameters: tool.parameters
150
- }))
151
- };
152
- }
153
85
  export function assistantMessageToShortcutXLInvokeResponse(message) {
154
86
  if (!message) {
155
87
  return { usageStatus: ShortcutXLProviderUsageStatus.Unavailable };
@@ -2,35 +2,19 @@ import type { AssistantMessageEvent, Usage } from '../ai/types.js';
2
2
  import { type ShortcutXLModelInvokeResponse, type ShortcutXLModelUsage } from '../contracts/model-call.js';
3
3
  import { type ShortcutXLModelStreamEvent } from '../contracts/model-stream.js';
4
4
  import type { ShortcutXLAiModelInvokeRequest, ShortcutXLAiModelStreamRequest } from '../contracts/wire.js';
5
- import type { ShortcutXLModelStreamTransport, ShortcutXLModelUsageStatusLogger } from './model-call-orchestrator.js';
5
+ import { type ProviderGatewayOptions, type ShortcutXLModelUsageStatusLogger } from './provider-native-request.js';
6
6
  import type { RunShortcutXLModelStreamRequestOptions } from './stream.js';
7
- export interface AnthropicMessagesGatewayAuth {
8
- readonly headerName: 'Authorization' | 'x-api-key';
9
- readonly token: string;
10
- }
11
- export interface CreateAnthropicMessagesModelStreamTransportOptions {
12
- readonly auth: AnthropicMessagesGatewayAuth;
13
- readonly baseUrl: string;
14
- readonly fetchImpl?: typeof fetch;
15
- readonly fetchOptions?: RequestInit;
16
- readonly headers?: Readonly<Record<string, string | null>>;
7
+ export interface AnthropicMessagesTransportOptions extends ProviderGatewayOptions {
17
8
  readonly usageStatusLogger?: ShortcutXLModelUsageStatusLogger;
18
9
  }
19
10
  export declare function toProviderUsageFromAi(usage: Usage | undefined): ShortcutXLModelUsage | undefined;
20
11
  export declare function toShortcutXLModelStreamEvent(event: AssistantMessageEvent): ShortcutXLModelStreamEvent | undefined;
21
- export declare function invokeAnthropicMessagesModel(request: ShortcutXLAiModelInvokeRequest, options: {
22
- readonly auth: AnthropicMessagesGatewayAuth;
23
- readonly baseUrl: string;
24
- readonly fetchImpl?: typeof fetch;
25
- readonly fetchOptions?: RequestInit;
26
- readonly headers?: Readonly<Record<string, string>>;
12
+ export declare function invokeAnthropicMessagesModel(request: ShortcutXLAiModelInvokeRequest, options: AnthropicMessagesTransportOptions & {
27
13
  readonly signal?: AbortSignal;
28
- readonly usageStatusLogger?: ShortcutXLModelUsageStatusLogger;
29
14
  readonly usageRequestId: string;
30
15
  }): Promise<ShortcutXLModelInvokeResponse>;
31
- export declare function streamAiAnthropicMessagesModelRequest(request: ShortcutXLAiModelStreamRequest, options: CreateAnthropicMessagesModelStreamTransportOptions & {
16
+ export declare function streamAiAnthropicMessagesModelRequest(request: ShortcutXLAiModelStreamRequest, options: AnthropicMessagesTransportOptions & {
32
17
  readonly onEvent: RunShortcutXLModelStreamRequestOptions['onEvent'];
33
18
  readonly signal?: AbortSignal;
34
19
  }): Promise<void>;
35
- export declare function createAnthropicMessagesModelStreamTransport(options: CreateAnthropicMessagesModelStreamTransportOptions): ShortcutXLModelStreamTransport;
36
20
  //# sourceMappingURL=anthropic-messages-transport.d.ts.map