shortcutxl 0.2.0

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 (423) hide show
  1. package/README.md +59 -0
  2. package/agent-docs/README.md +397 -0
  3. package/agent-docs/docs/compaction.md +390 -0
  4. package/agent-docs/docs/custom-provider.md +580 -0
  5. package/agent-docs/docs/development.md +69 -0
  6. package/agent-docs/docs/extensions.md +1971 -0
  7. package/agent-docs/docs/json.md +79 -0
  8. package/agent-docs/docs/keybindings.md +174 -0
  9. package/agent-docs/docs/models.md +293 -0
  10. package/agent-docs/docs/packages.md +209 -0
  11. package/agent-docs/docs/prompt-templates.md +67 -0
  12. package/agent-docs/docs/providers.md +186 -0
  13. package/agent-docs/docs/rpc.md +1317 -0
  14. package/agent-docs/docs/sdk.md +962 -0
  15. package/agent-docs/docs/session.md +412 -0
  16. package/agent-docs/docs/settings.md +223 -0
  17. package/agent-docs/docs/shell-aliases.md +13 -0
  18. package/agent-docs/docs/skills.md +231 -0
  19. package/agent-docs/docs/terminal-setup.md +70 -0
  20. package/agent-docs/docs/termux.md +127 -0
  21. package/agent-docs/docs/themes.md +295 -0
  22. package/agent-docs/docs/tree.md +219 -0
  23. package/agent-docs/docs/tui.md +887 -0
  24. package/agent-docs/docs/windows.md +17 -0
  25. package/agent-docs/examples/README.md +25 -0
  26. package/agent-docs/examples/extensions/README.md +205 -0
  27. package/agent-docs/examples/extensions/antigravity-image-gen.ts +447 -0
  28. package/agent-docs/examples/extensions/auto-commit-on-exit.ts +49 -0
  29. package/agent-docs/examples/extensions/bash-spawn-hook.ts +30 -0
  30. package/agent-docs/examples/extensions/bookmark.ts +50 -0
  31. package/agent-docs/examples/extensions/built-in-tool-renderer.ts +256 -0
  32. package/agent-docs/examples/extensions/claude-rules.ts +86 -0
  33. package/agent-docs/examples/extensions/commands.ts +75 -0
  34. package/agent-docs/examples/extensions/confirm-destructive.ts +59 -0
  35. package/agent-docs/examples/extensions/custom-compaction.ts +126 -0
  36. package/agent-docs/examples/extensions/custom-footer.ts +63 -0
  37. package/agent-docs/examples/extensions/custom-header.ts +73 -0
  38. package/agent-docs/examples/extensions/custom-provider-anthropic/index.ts +660 -0
  39. package/agent-docs/examples/extensions/custom-provider-anthropic/package-lock.json +24 -0
  40. package/agent-docs/examples/extensions/custom-provider-anthropic/package.json +19 -0
  41. package/agent-docs/examples/extensions/custom-provider-gitlab-duo/index.ts +362 -0
  42. package/agent-docs/examples/extensions/custom-provider-gitlab-duo/package.json +16 -0
  43. package/agent-docs/examples/extensions/custom-provider-gitlab-duo/test.ts +88 -0
  44. package/agent-docs/examples/extensions/custom-provider-qwen-cli/index.ts +349 -0
  45. package/agent-docs/examples/extensions/custom-provider-qwen-cli/package.json +16 -0
  46. package/agent-docs/examples/extensions/dirty-repo-guard.ts +56 -0
  47. package/agent-docs/examples/extensions/doom-overlay/README.md +46 -0
  48. package/agent-docs/examples/extensions/doom-overlay/doom/build.sh +152 -0
  49. package/agent-docs/examples/extensions/doom-overlay/doom/doomgeneric_pi.c +72 -0
  50. package/agent-docs/examples/extensions/doom-overlay/doom-component.ts +133 -0
  51. package/agent-docs/examples/extensions/doom-overlay/doom-engine.ts +186 -0
  52. package/agent-docs/examples/extensions/doom-overlay/doom-keys.ts +108 -0
  53. package/agent-docs/examples/extensions/doom-overlay/index.ts +74 -0
  54. package/agent-docs/examples/extensions/doom-overlay/wad-finder.ts +51 -0
  55. package/agent-docs/examples/extensions/dynamic-resources/SKILL.md +8 -0
  56. package/agent-docs/examples/extensions/dynamic-resources/dynamic.json +79 -0
  57. package/agent-docs/examples/extensions/dynamic-resources/dynamic.md +5 -0
  58. package/agent-docs/examples/extensions/dynamic-resources/index.ts +15 -0
  59. package/agent-docs/examples/extensions/dynamic-tools.ts +77 -0
  60. package/agent-docs/examples/extensions/event-bus.ts +43 -0
  61. package/agent-docs/examples/extensions/file-trigger.ts +41 -0
  62. package/agent-docs/examples/extensions/git-checkpoint.ts +53 -0
  63. package/agent-docs/examples/extensions/handoff.ts +155 -0
  64. package/agent-docs/examples/extensions/hello.ts +25 -0
  65. package/agent-docs/examples/extensions/inline-bash.ts +94 -0
  66. package/agent-docs/examples/extensions/input-transform.ts +43 -0
  67. package/agent-docs/examples/extensions/interactive-shell.ts +209 -0
  68. package/agent-docs/examples/extensions/mac-system-theme.ts +47 -0
  69. package/agent-docs/examples/extensions/message-renderer.ts +59 -0
  70. package/agent-docs/examples/extensions/minimal-mode.ts +430 -0
  71. package/agent-docs/examples/extensions/modal-editor.ts +90 -0
  72. package/agent-docs/examples/extensions/model-status.ts +31 -0
  73. package/agent-docs/examples/extensions/notify.ts +55 -0
  74. package/agent-docs/examples/extensions/overlay-qa-tests.ts +936 -0
  75. package/agent-docs/examples/extensions/overlay-test.ts +159 -0
  76. package/agent-docs/examples/extensions/permission-gate.ts +37 -0
  77. package/agent-docs/examples/extensions/pirate.ts +47 -0
  78. package/agent-docs/examples/extensions/plan-mode/README.md +65 -0
  79. package/agent-docs/examples/extensions/plan-mode/index.ts +363 -0
  80. package/agent-docs/examples/extensions/plan-mode/utils.ts +173 -0
  81. package/agent-docs/examples/extensions/preset.ts +418 -0
  82. package/agent-docs/examples/extensions/protected-paths.ts +30 -0
  83. package/agent-docs/examples/extensions/qna.ts +122 -0
  84. package/agent-docs/examples/extensions/question.ts +278 -0
  85. package/agent-docs/examples/extensions/questionnaire.ts +440 -0
  86. package/agent-docs/examples/extensions/rainbow-editor.ts +90 -0
  87. package/agent-docs/examples/extensions/reload-runtime.ts +37 -0
  88. package/agent-docs/examples/extensions/rpc-demo.ts +124 -0
  89. package/agent-docs/examples/extensions/sandbox/index.ts +324 -0
  90. package/agent-docs/examples/extensions/sandbox/package-lock.json +92 -0
  91. package/agent-docs/examples/extensions/sandbox/package.json +19 -0
  92. package/agent-docs/examples/extensions/send-user-message.ts +97 -0
  93. package/agent-docs/examples/extensions/session-name.ts +27 -0
  94. package/agent-docs/examples/extensions/shutdown-command.ts +69 -0
  95. package/agent-docs/examples/extensions/snake.ts +343 -0
  96. package/agent-docs/examples/extensions/space-invaders.ts +566 -0
  97. package/agent-docs/examples/extensions/ssh.ts +233 -0
  98. package/agent-docs/examples/extensions/status-line.ts +40 -0
  99. package/agent-docs/examples/extensions/subagent/README.md +172 -0
  100. package/agent-docs/examples/extensions/subagent/agents/planner.md +37 -0
  101. package/agent-docs/examples/extensions/subagent/agents/reviewer.md +35 -0
  102. package/agent-docs/examples/extensions/subagent/agents/scout.md +50 -0
  103. package/agent-docs/examples/extensions/subagent/agents/worker.md +24 -0
  104. package/agent-docs/examples/extensions/subagent/agents.ts +130 -0
  105. package/agent-docs/examples/extensions/subagent/index.ts +1068 -0
  106. package/agent-docs/examples/extensions/subagent/prompts/implement-and-review.md +10 -0
  107. package/agent-docs/examples/extensions/subagent/prompts/implement.md +10 -0
  108. package/agent-docs/examples/extensions/subagent/prompts/scout-and-plan.md +9 -0
  109. package/agent-docs/examples/extensions/summarize.ts +206 -0
  110. package/agent-docs/examples/extensions/system-prompt-header.ts +17 -0
  111. package/agent-docs/examples/extensions/timed-confirm.ts +72 -0
  112. package/agent-docs/examples/extensions/titlebar-spinner.ts +58 -0
  113. package/agent-docs/examples/extensions/todo.ts +314 -0
  114. package/agent-docs/examples/extensions/tool-override.ts +146 -0
  115. package/agent-docs/examples/extensions/tools.ts +145 -0
  116. package/agent-docs/examples/extensions/trigger-compact.ts +40 -0
  117. package/agent-docs/examples/extensions/truncated-tool.ts +194 -0
  118. package/agent-docs/examples/extensions/widget-placement.ts +17 -0
  119. package/agent-docs/examples/extensions/with-deps/index.ts +37 -0
  120. package/agent-docs/examples/extensions/with-deps/package-lock.json +31 -0
  121. package/agent-docs/examples/extensions/with-deps/package.json +22 -0
  122. package/agent-docs/examples/rpc-extension-ui.ts +654 -0
  123. package/agent-docs/examples/sdk/01-minimal.ts +22 -0
  124. package/agent-docs/examples/sdk/02-custom-model.ts +48 -0
  125. package/agent-docs/examples/sdk/03-custom-prompt.ts +55 -0
  126. package/agent-docs/examples/sdk/04-skills.ts +53 -0
  127. package/agent-docs/examples/sdk/05-tools.ts +56 -0
  128. package/agent-docs/examples/sdk/06-extensions.ts +88 -0
  129. package/agent-docs/examples/sdk/07-context-files.ts +40 -0
  130. package/agent-docs/examples/sdk/08-prompt-templates.ts +47 -0
  131. package/agent-docs/examples/sdk/09-api-keys-and-oauth.ts +48 -0
  132. package/agent-docs/examples/sdk/10-settings.ts +54 -0
  133. package/agent-docs/examples/sdk/11-sessions.ts +48 -0
  134. package/agent-docs/examples/sdk/12-full-control.ts +82 -0
  135. package/agent-docs/examples/sdk/README.md +144 -0
  136. package/agent-docs/xll-skill.md +61 -0
  137. package/agent-docs/xll-spec.md +110 -0
  138. package/dist/cli/args.js +290 -0
  139. package/dist/cli/config-selector.js +31 -0
  140. package/dist/cli/file-processor.js +79 -0
  141. package/dist/cli/list-models.js +92 -0
  142. package/dist/cli/package-commands.js +210 -0
  143. package/dist/cli/report-settings-errors.js +11 -0
  144. package/dist/cli/session-picker.js +34 -0
  145. package/dist/cli.js +19 -0
  146. package/dist/config.js +288 -0
  147. package/dist/core/abort.js +15 -0
  148. package/dist/core/agent-loop.js +352 -0
  149. package/dist/core/agent-session.js +2019 -0
  150. package/dist/core/agent.js +410 -0
  151. package/dist/core/auth-storage.js +456 -0
  152. package/dist/core/bash-executor.js +222 -0
  153. package/dist/core/compaction/branch-summarization.js +242 -0
  154. package/dist/core/compaction/compaction.js +610 -0
  155. package/dist/core/compaction/index.js +7 -0
  156. package/dist/core/compaction/utils.js +139 -0
  157. package/dist/core/defaults.js +6 -0
  158. package/dist/core/diagnostics.js +2 -0
  159. package/dist/core/event-bus.js +25 -0
  160. package/dist/core/exec.js +71 -0
  161. package/dist/core/export-html/ansi-to-html.js +256 -0
  162. package/dist/core/export-html/index.js +238 -0
  163. package/dist/core/export-html/session-view-model.js +342 -0
  164. package/dist/core/export-html/template.css +1110 -0
  165. package/dist/core/export-html/template.html +76 -0
  166. package/dist/core/export-html/template.js +1990 -0
  167. package/dist/core/export-html/tool-renderer.js +63 -0
  168. package/dist/core/export-html/vendor/highlight.min.js +7725 -0
  169. package/dist/core/export-html/vendor/marked.min.js +1803 -0
  170. package/dist/core/extensions/index.js +9 -0
  171. package/dist/core/extensions/loader.js +422 -0
  172. package/dist/core/extensions/runner.js +651 -0
  173. package/dist/core/extensions/types.js +35 -0
  174. package/dist/core/extensions/wrapper.js +102 -0
  175. package/dist/core/footer-data-provider.js +162 -0
  176. package/dist/core/index.js +9 -0
  177. package/dist/core/keybindings.js +153 -0
  178. package/dist/core/messages.js +133 -0
  179. package/dist/core/model-registry.js +539 -0
  180. package/dist/core/model-resolver.js +370 -0
  181. package/dist/core/package-manager.js +1485 -0
  182. package/dist/core/prompt-templates.js +253 -0
  183. package/dist/core/resolve-config-value.js +59 -0
  184. package/dist/core/resource-loader.js +700 -0
  185. package/dist/core/sdk.js +197 -0
  186. package/dist/core/session-bash.js +99 -0
  187. package/dist/core/session-compaction.js +165 -0
  188. package/dist/core/session-manager.js +1153 -0
  189. package/dist/core/session-models.js +99 -0
  190. package/dist/core/session-retry.js +155 -0
  191. package/dist/core/settings-manager.js +572 -0
  192. package/dist/core/skills.js +382 -0
  193. package/dist/core/slash-commands.js +31 -0
  194. package/dist/core/system-prompt.js +161 -0
  195. package/dist/core/theme.js +770 -0
  196. package/dist/core/timings.js +26 -0
  197. package/dist/core/tools/bash.js +258 -0
  198. package/dist/core/tools/edit-diff.js +245 -0
  199. package/dist/core/tools/edit.js +148 -0
  200. package/dist/core/tools/find.js +208 -0
  201. package/dist/core/tools/grep.js +246 -0
  202. package/dist/core/tools/index.js +67 -0
  203. package/dist/core/tools/ls.js +123 -0
  204. package/dist/core/tools/path-utils.js +81 -0
  205. package/dist/core/tools/read.js +160 -0
  206. package/dist/core/tools/truncate.js +70 -0
  207. package/dist/core/tools/write.js +82 -0
  208. package/dist/custom/agents/action.js +13 -0
  209. package/dist/custom/agents/document-reader.js +70 -0
  210. package/dist/custom/agents/general.js +26 -0
  211. package/dist/custom/agents/index.js +49 -0
  212. package/dist/custom/agents/installation.js +13 -0
  213. package/dist/custom/agents/types.js +7 -0
  214. package/dist/custom/auth/refresh-timer.js +33 -0
  215. package/dist/custom/auth/shortcut-oauth.js +145 -0
  216. package/dist/custom/constants.js +21 -0
  217. package/dist/custom/context/workbook-summary.js +73 -0
  218. package/dist/custom/credits/shortcut-credits.js +29 -0
  219. package/dist/custom/cron/cron-daemon-entry.js +18 -0
  220. package/dist/custom/cron/daemon-ipc.js +131 -0
  221. package/dist/custom/cron/daemon.js +224 -0
  222. package/dist/custom/cron/jobs.js +226 -0
  223. package/dist/custom/cron/run-log.js +51 -0
  224. package/dist/custom/cron/schedule.js +72 -0
  225. package/dist/custom/cron/status-line.js +98 -0
  226. package/dist/custom/cron/store.js +87 -0
  227. package/dist/custom/cron/types.js +8 -0
  228. package/dist/custom/dev/index.js +59 -0
  229. package/dist/custom/dev/trace-export.js +58 -0
  230. package/dist/custom/ensure-excel.js +63 -0
  231. package/dist/custom/excel-config.js +36 -0
  232. package/dist/custom/preflight.js +422 -0
  233. package/dist/custom/prompts/action.js +100 -0
  234. package/dist/custom/prompts/api.js +66 -0
  235. package/dist/custom/prompts/installation.js +124 -0
  236. package/dist/custom/prompts/shared.js +138 -0
  237. package/dist/custom/providers/llm-usage.js +42 -0
  238. package/dist/custom/providers/message-converter.js +74 -0
  239. package/dist/custom/providers/provider-ids.js +9 -0
  240. package/dist/custom/providers/register-openai-codex-provider.js +27 -0
  241. package/dist/custom/providers/register-shortcut-provider.js +52 -0
  242. package/dist/custom/providers/shortcut-invoke.js +117 -0
  243. package/dist/custom/providers/shortcut-stream.js +252 -0
  244. package/dist/custom/providers/sse-protocol.js +38 -0
  245. package/dist/custom/sync-xll.js +130 -0
  246. package/dist/custom/tools/cron.js +413 -0
  247. package/dist/custom/tools/excel-exec.js +167 -0
  248. package/dist/custom/tools/excel-range.js +50 -0
  249. package/dist/custom/tools/llm-analysis.js +265 -0
  250. package/dist/custom/tools/render-helpers.js +38 -0
  251. package/dist/custom/tools/switch-mode.js +94 -0
  252. package/dist/custom/tools/task/agents.js +6 -0
  253. package/dist/custom/tools/task/index.js +8 -0
  254. package/dist/custom/tools/task/render.js +348 -0
  255. package/dist/custom/tools/task/subprocess.js +320 -0
  256. package/dist/custom/tools/task/task.js +205 -0
  257. package/dist/custom/tools/todo-list.js +195 -0
  258. package/dist/custom/tracing/session-upload.js +93 -0
  259. package/dist/index.js +45 -0
  260. package/dist/main.js +613 -0
  261. package/dist/migrations.js +265 -0
  262. package/dist/modes/index.js +8 -0
  263. package/dist/modes/interactive/components/armin.js +337 -0
  264. package/dist/modes/interactive/components/assistant-message.js +94 -0
  265. package/dist/modes/interactive/components/bash-execution.js +171 -0
  266. package/dist/modes/interactive/components/bordered-loader.js +51 -0
  267. package/dist/modes/interactive/components/branch-summary-message.js +45 -0
  268. package/dist/modes/interactive/components/compaction-summary-message.js +46 -0
  269. package/dist/modes/interactive/components/config-selector.js +488 -0
  270. package/dist/modes/interactive/components/countdown-timer.js +33 -0
  271. package/dist/modes/interactive/components/custom-editor.js +93 -0
  272. package/dist/modes/interactive/components/custom-message.js +81 -0
  273. package/dist/modes/interactive/components/daxnuts.js +140 -0
  274. package/dist/modes/interactive/components/diff.js +133 -0
  275. package/dist/modes/interactive/components/dynamic-border.js +21 -0
  276. package/dist/modes/interactive/components/extension-editor.js +105 -0
  277. package/dist/modes/interactive/components/extension-input.js +61 -0
  278. package/dist/modes/interactive/components/extension-selector.js +78 -0
  279. package/dist/modes/interactive/components/footer.js +309 -0
  280. package/dist/modes/interactive/components/index.js +33 -0
  281. package/dist/modes/interactive/components/keybinding-hints.js +61 -0
  282. package/dist/modes/interactive/components/layout.js +64 -0
  283. package/dist/modes/interactive/components/login-dialog.js +148 -0
  284. package/dist/modes/interactive/components/model-selector.js +237 -0
  285. package/dist/modes/interactive/components/oauth-selector.js +111 -0
  286. package/dist/modes/interactive/components/session-selector-search.js +157 -0
  287. package/dist/modes/interactive/components/session-selector.js +860 -0
  288. package/dist/modes/interactive/components/settings-selector.js +123 -0
  289. package/dist/modes/interactive/components/show-images-selector.js +35 -0
  290. package/dist/modes/interactive/components/skill-invocation-message.js +48 -0
  291. package/dist/modes/interactive/components/theme-selector.js +47 -0
  292. package/dist/modes/interactive/components/thinking-selector.js +47 -0
  293. package/dist/modes/interactive/components/tool-execution.js +789 -0
  294. package/dist/modes/interactive/components/tool-group.js +106 -0
  295. package/dist/modes/interactive/components/tree-selector.js +962 -0
  296. package/dist/modes/interactive/components/user-message-selector.js +115 -0
  297. package/dist/modes/interactive/components/user-message.js +48 -0
  298. package/dist/modes/interactive/components/visual-truncate.js +33 -0
  299. package/dist/modes/interactive/file-attachments.js +135 -0
  300. package/dist/modes/interactive/interactive-mode.js +3775 -0
  301. package/dist/modes/interactive/theme/dark.json +85 -0
  302. package/dist/modes/interactive/theme/light.json +85 -0
  303. package/dist/modes/interactive/theme/theme-schema.json +335 -0
  304. package/dist/modes/interactive/theme/theme.js +177 -0
  305. package/dist/modes/print-mode.js +101 -0
  306. package/dist/modes/rpc/rpc-client.js +387 -0
  307. package/dist/modes/rpc/rpc-mode.js +509 -0
  308. package/dist/modes/rpc/rpc-types.js +8 -0
  309. package/dist/subagent-entry.js +145 -0
  310. package/dist/tool-names.js +34 -0
  311. package/dist/tui/autocomplete.js +596 -0
  312. package/dist/tui/components/box.js +104 -0
  313. package/dist/tui/components/cancellable-loader.js +35 -0
  314. package/dist/tui/components/editor.js +1679 -0
  315. package/dist/tui/components/image.js +69 -0
  316. package/dist/tui/components/input.js +433 -0
  317. package/dist/tui/components/loader.js +49 -0
  318. package/dist/tui/components/markdown.js +629 -0
  319. package/dist/tui/components/select-list.js +152 -0
  320. package/dist/tui/components/settings-list.js +185 -0
  321. package/dist/tui/components/spacer.js +23 -0
  322. package/dist/tui/components/text.js +89 -0
  323. package/dist/tui/components/truncated-text.js +51 -0
  324. package/dist/tui/editor-component.js +2 -0
  325. package/dist/tui/fuzzy.js +107 -0
  326. package/dist/tui/get-east-asian-width/index.js +32 -0
  327. package/dist/tui/get-east-asian-width/lookup.js +404 -0
  328. package/dist/tui/index.js +32 -0
  329. package/dist/tui/keybindings.js +114 -0
  330. package/dist/tui/keys.js +959 -0
  331. package/dist/tui/kill-ring.js +44 -0
  332. package/dist/tui/stdin-buffer.js +317 -0
  333. package/dist/tui/terminal-image.js +288 -0
  334. package/dist/tui/terminal.js +249 -0
  335. package/dist/tui/tui/autocomplete.js +596 -0
  336. package/dist/tui/tui/components/box.js +106 -0
  337. package/dist/tui/tui/components/cancellable-loader.js +35 -0
  338. package/dist/tui/tui/components/editor.js +1679 -0
  339. package/dist/tui/tui/components/image.js +69 -0
  340. package/dist/tui/tui/components/input.js +433 -0
  341. package/dist/tui/tui/components/loader.js +49 -0
  342. package/dist/tui/tui/components/markdown.js +629 -0
  343. package/dist/tui/tui/components/select-list.js +152 -0
  344. package/dist/tui/tui/components/settings-list.js +185 -0
  345. package/dist/tui/tui/components/spacer.js +23 -0
  346. package/dist/tui/tui/components/text.js +91 -0
  347. package/dist/tui/tui/components/truncated-text.js +51 -0
  348. package/dist/tui/tui/editor-component.js +2 -0
  349. package/dist/tui/tui/fuzzy.js +107 -0
  350. package/dist/tui/tui/get-east-asian-width/index.js +32 -0
  351. package/dist/tui/tui/get-east-asian-width/lookup.js +404 -0
  352. package/dist/tui/tui/index.js +32 -0
  353. package/dist/tui/tui/keybindings.js +114 -0
  354. package/dist/tui/tui/keys.js +959 -0
  355. package/dist/tui/tui/kill-ring.js +44 -0
  356. package/dist/tui/tui/stdin-buffer.js +317 -0
  357. package/dist/tui/tui/terminal-image.js +288 -0
  358. package/dist/tui/tui/terminal.js +249 -0
  359. package/dist/tui/tui/tui.js +955 -0
  360. package/dist/tui/tui/undo-stack.js +25 -0
  361. package/dist/tui/tui/utils.js +800 -0
  362. package/dist/tui/tui.js +955 -0
  363. package/dist/tui/undo-stack.js +25 -0
  364. package/dist/tui/utils.js +800 -0
  365. package/dist/utils/changelog.js +87 -0
  366. package/dist/utils/clipboard-image.js +164 -0
  367. package/dist/utils/clipboard-native.js +14 -0
  368. package/dist/utils/clipboard.js +67 -0
  369. package/dist/utils/frontmatter.js +26 -0
  370. package/dist/utils/git.js +166 -0
  371. package/dist/utils/image-convert.js +35 -0
  372. package/dist/utils/image-resize.js +183 -0
  373. package/dist/utils/mime.js +26 -0
  374. package/dist/utils/photon.js +121 -0
  375. package/dist/utils/shell.js +217 -0
  376. package/dist/utils/sleep.js +17 -0
  377. package/dist/utils/tools-manager.js +259 -0
  378. package/package.json +78 -0
  379. package/skills/excel-com-api/SKILL.md +74 -0
  380. package/skills/excel-com-api/excel-type-library.py +27767 -0
  381. package/skills/excel-com-api/office-type-library.py +10867 -0
  382. package/skills/integrations/SKILL.md +138 -0
  383. package/skills/integrations/alphasense.md +457 -0
  384. package/skills/integrations/bloomberg.md +803 -0
  385. package/skills/integrations/calcbench.md +315 -0
  386. package/skills/integrations/capiq.md +848 -0
  387. package/skills/integrations/dynamics-365-finance.md +354 -0
  388. package/skills/integrations/earnings_transcripts.md +387 -0
  389. package/skills/integrations/factset.md +758 -0
  390. package/skills/integrations/ice-fixed-income.md +344 -0
  391. package/skills/integrations/moodys-analytics.md +313 -0
  392. package/skills/integrations/morningstar.md +433 -0
  393. package/skills/integrations/nasdaq-data-link.md +249 -0
  394. package/skills/integrations/pitchbook.md +413 -0
  395. package/skills/integrations/preqin.md +422 -0
  396. package/skills/integrations/quickbooks.md +289 -0
  397. package/skills/integrations/quickfs.md +314 -0
  398. package/skills/integrations/refinitiv.md +473 -0
  399. package/skills/integrations/sage-intacct.md +401 -0
  400. package/skills/integrations/visible-alpha.md +320 -0
  401. package/skills/integrations/xero.md +393 -0
  402. package/skills/integrations/ycharts.md +306 -0
  403. package/skills/pdf-creation/SKILL.md +93 -0
  404. package/skills/pdf-extraction/SKILL.md +32 -0
  405. package/skills/powerpoint-creation/SKILL.md +110 -0
  406. package/skills/sec-edgar/SKILL.md +127 -0
  407. package/skills/sec-edgar/sec_to_pdf.py +109 -0
  408. package/xll/ShortcutXL.xll +0 -0
  409. package/xll/modules/debug_render.py +272 -0
  410. package/xll/modules/gameboy.py +241 -0
  411. package/xll/modules/pong.py +188 -0
  412. package/xll/modules/shortcut_xl/__init__.py +18 -0
  413. package/xll/modules/shortcut_xl/_categorize.py +200 -0
  414. package/xll/modules/shortcut_xl/_com.py +108 -0
  415. package/xll/modules/shortcut_xl/_format.py +252 -0
  416. package/xll/modules/shortcut_xl/_log.py +12 -0
  417. package/xll/modules/shortcut_xl/_managed.py +116 -0
  418. package/xll/modules/shortcut_xl/_registry.py +44 -0
  419. package/xll/modules/shortcut_xl/_threading.py +161 -0
  420. package/xll/modules/shortcut_xl/_tracking.py +283 -0
  421. package/xll/modules/stocks.py +100 -0
  422. package/xll/python3.dll +0 -0
  423. package/xll/python312.dll +0 -0
@@ -0,0 +1,404 @@
1
+ // Vendored from get-east-asian-width@1.3.0
2
+ // Generated code.
3
+
4
+ function isAmbiguous(x) {
5
+ return x === 0xA1
6
+ || x === 0xA4
7
+ || x === 0xA7
8
+ || x === 0xA8
9
+ || x === 0xAA
10
+ || x === 0xAD
11
+ || x === 0xAE
12
+ || x >= 0xB0 && x <= 0xB4
13
+ || x >= 0xB6 && x <= 0xBA
14
+ || x >= 0xBC && x <= 0xBF
15
+ || x === 0xC6
16
+ || x === 0xD0
17
+ || x === 0xD7
18
+ || x === 0xD8
19
+ || x >= 0xDE && x <= 0xE1
20
+ || x === 0xE6
21
+ || x >= 0xE8 && x <= 0xEA
22
+ || x === 0xEC
23
+ || x === 0xED
24
+ || x === 0xF0
25
+ || x === 0xF2
26
+ || x === 0xF3
27
+ || x >= 0xF7 && x <= 0xFA
28
+ || x === 0xFC
29
+ || x === 0xFE
30
+ || x === 0x101
31
+ || x === 0x111
32
+ || x === 0x113
33
+ || x === 0x11B
34
+ || x === 0x126
35
+ || x === 0x127
36
+ || x === 0x12B
37
+ || x >= 0x131 && x <= 0x133
38
+ || x === 0x138
39
+ || x >= 0x13F && x <= 0x142
40
+ || x === 0x144
41
+ || x >= 0x148 && x <= 0x14B
42
+ || x === 0x14D
43
+ || x === 0x152
44
+ || x === 0x153
45
+ || x === 0x166
46
+ || x === 0x167
47
+ || x === 0x16B
48
+ || x === 0x1CE
49
+ || x === 0x1D0
50
+ || x === 0x1D2
51
+ || x === 0x1D4
52
+ || x === 0x1D6
53
+ || x === 0x1D8
54
+ || x === 0x1DA
55
+ || x === 0x1DC
56
+ || x === 0x251
57
+ || x === 0x261
58
+ || x === 0x2C4
59
+ || x === 0x2C7
60
+ || x >= 0x2C9 && x <= 0x2CB
61
+ || x === 0x2CD
62
+ || x === 0x2D0
63
+ || x >= 0x2D8 && x <= 0x2DB
64
+ || x === 0x2DD
65
+ || x === 0x2DF
66
+ || x >= 0x300 && x <= 0x36F
67
+ || x >= 0x391 && x <= 0x3A1
68
+ || x >= 0x3A3 && x <= 0x3A9
69
+ || x >= 0x3B1 && x <= 0x3C1
70
+ || x >= 0x3C3 && x <= 0x3C9
71
+ || x === 0x401
72
+ || x >= 0x410 && x <= 0x44F
73
+ || x === 0x451
74
+ || x === 0x2010
75
+ || x >= 0x2013 && x <= 0x2016
76
+ || x === 0x2018
77
+ || x === 0x2019
78
+ || x === 0x201C
79
+ || x === 0x201D
80
+ || x >= 0x2020 && x <= 0x2022
81
+ || x >= 0x2024 && x <= 0x2027
82
+ || x === 0x2030
83
+ || x === 0x2032
84
+ || x === 0x2033
85
+ || x === 0x2035
86
+ || x === 0x203B
87
+ || x === 0x203E
88
+ || x === 0x2074
89
+ || x === 0x207F
90
+ || x >= 0x2081 && x <= 0x2084
91
+ || x === 0x20AC
92
+ || x === 0x2103
93
+ || x === 0x2105
94
+ || x === 0x2109
95
+ || x === 0x2113
96
+ || x === 0x2116
97
+ || x === 0x2121
98
+ || x === 0x2122
99
+ || x === 0x2126
100
+ || x === 0x212B
101
+ || x === 0x2153
102
+ || x === 0x2154
103
+ || x >= 0x215B && x <= 0x215E
104
+ || x >= 0x2160 && x <= 0x216B
105
+ || x >= 0x2170 && x <= 0x2179
106
+ || x === 0x2189
107
+ || x >= 0x2190 && x <= 0x2199
108
+ || x === 0x21B8
109
+ || x === 0x21B9
110
+ || x === 0x21D2
111
+ || x === 0x21D4
112
+ || x === 0x21E7
113
+ || x === 0x2200
114
+ || x === 0x2202
115
+ || x === 0x2203
116
+ || x === 0x2207
117
+ || x === 0x2208
118
+ || x === 0x220B
119
+ || x === 0x220F
120
+ || x === 0x2211
121
+ || x === 0x2215
122
+ || x === 0x221A
123
+ || x >= 0x221D && x <= 0x2220
124
+ || x === 0x2223
125
+ || x === 0x2225
126
+ || x >= 0x2227 && x <= 0x222C
127
+ || x === 0x222E
128
+ || x >= 0x2234 && x <= 0x2237
129
+ || x === 0x223C
130
+ || x === 0x223D
131
+ || x === 0x2248
132
+ || x === 0x224C
133
+ || x === 0x2252
134
+ || x === 0x2260
135
+ || x === 0x2261
136
+ || x >= 0x2264 && x <= 0x2267
137
+ || x === 0x226A
138
+ || x === 0x226B
139
+ || x === 0x226E
140
+ || x === 0x226F
141
+ || x === 0x2282
142
+ || x === 0x2283
143
+ || x === 0x2286
144
+ || x === 0x2287
145
+ || x === 0x2295
146
+ || x === 0x2299
147
+ || x === 0x22A5
148
+ || x === 0x22BF
149
+ || x === 0x2312
150
+ || x >= 0x2460 && x <= 0x24E9
151
+ || x >= 0x24EB && x <= 0x254B
152
+ || x >= 0x2550 && x <= 0x2573
153
+ || x >= 0x2580 && x <= 0x258F
154
+ || x >= 0x2592 && x <= 0x2595
155
+ || x === 0x25A0
156
+ || x === 0x25A1
157
+ || x >= 0x25A3 && x <= 0x25A9
158
+ || x === 0x25B2
159
+ || x === 0x25B3
160
+ || x === 0x25B6
161
+ || x === 0x25B7
162
+ || x === 0x25BC
163
+ || x === 0x25BD
164
+ || x === 0x25C0
165
+ || x === 0x25C1
166
+ || x >= 0x25C6 && x <= 0x25C8
167
+ || x === 0x25CB
168
+ || x >= 0x25CE && x <= 0x25D1
169
+ || x >= 0x25E2 && x <= 0x25E5
170
+ || x === 0x25EF
171
+ || x === 0x2605
172
+ || x === 0x2606
173
+ || x === 0x2609
174
+ || x === 0x260E
175
+ || x === 0x260F
176
+ || x === 0x261C
177
+ || x === 0x261E
178
+ || x === 0x2640
179
+ || x === 0x2642
180
+ || x === 0x2660
181
+ || x === 0x2661
182
+ || x >= 0x2663 && x <= 0x2665
183
+ || x >= 0x2667 && x <= 0x266A
184
+ || x === 0x266C
185
+ || x === 0x266D
186
+ || x === 0x266F
187
+ || x === 0x269E
188
+ || x === 0x269F
189
+ || x === 0x26BF
190
+ || x >= 0x26C6 && x <= 0x26CD
191
+ || x >= 0x26CF && x <= 0x26D3
192
+ || x >= 0x26D5 && x <= 0x26E1
193
+ || x === 0x26E3
194
+ || x === 0x26E8
195
+ || x === 0x26E9
196
+ || x >= 0x26EB && x <= 0x26F1
197
+ || x === 0x26F4
198
+ || x >= 0x26F6 && x <= 0x26F9
199
+ || x === 0x26FB
200
+ || x === 0x26FC
201
+ || x === 0x26FE
202
+ || x === 0x26FF
203
+ || x === 0x273D
204
+ || x >= 0x2776 && x <= 0x277F
205
+ || x >= 0x2B56 && x <= 0x2B59
206
+ || x >= 0x3248 && x <= 0x324F
207
+ || x >= 0xE000 && x <= 0xF8FF
208
+ || x >= 0xFE00 && x <= 0xFE0F
209
+ || x === 0xFFFD
210
+ || x >= 0x1F100 && x <= 0x1F10A
211
+ || x >= 0x1F110 && x <= 0x1F12D
212
+ || x >= 0x1F130 && x <= 0x1F169
213
+ || x >= 0x1F170 && x <= 0x1F18D
214
+ || x === 0x1F18F
215
+ || x === 0x1F190
216
+ || x >= 0x1F19B && x <= 0x1F1AC
217
+ || x >= 0xE0100 && x <= 0xE01EF
218
+ || x >= 0xF0000 && x <= 0xFFFFD
219
+ || x >= 0x100000 && x <= 0x10FFFD;
220
+ }
221
+
222
+ function isFullWidth(x) {
223
+ return x === 0x3000
224
+ || x >= 0xFF01 && x <= 0xFF60
225
+ || x >= 0xFFE0 && x <= 0xFFE6;
226
+ }
227
+
228
+ function isWide(x) {
229
+ return x >= 0x1100 && x <= 0x115F
230
+ || x === 0x231A
231
+ || x === 0x231B
232
+ || x === 0x2329
233
+ || x === 0x232A
234
+ || x >= 0x23E9 && x <= 0x23EC
235
+ || x === 0x23F0
236
+ || x === 0x23F3
237
+ || x === 0x25FD
238
+ || x === 0x25FE
239
+ || x === 0x2614
240
+ || x === 0x2615
241
+ || x >= 0x2630 && x <= 0x2637
242
+ || x >= 0x2648 && x <= 0x2653
243
+ || x === 0x267F
244
+ || x >= 0x268A && x <= 0x268F
245
+ || x === 0x2693
246
+ || x === 0x26A1
247
+ || x === 0x26AA
248
+ || x === 0x26AB
249
+ || x === 0x26BD
250
+ || x === 0x26BE
251
+ || x === 0x26C4
252
+ || x === 0x26C5
253
+ || x === 0x26CE
254
+ || x === 0x26D4
255
+ || x === 0x26EA
256
+ || x === 0x26F2
257
+ || x === 0x26F3
258
+ || x === 0x26F5
259
+ || x === 0x26FA
260
+ || x === 0x26FD
261
+ || x === 0x2705
262
+ || x === 0x270A
263
+ || x === 0x270B
264
+ || x === 0x2728
265
+ || x === 0x274C
266
+ || x === 0x274E
267
+ || x >= 0x2753 && x <= 0x2755
268
+ || x === 0x2757
269
+ || x >= 0x2795 && x <= 0x2797
270
+ || x === 0x27B0
271
+ || x === 0x27BF
272
+ || x === 0x2B1B
273
+ || x === 0x2B1C
274
+ || x === 0x2B50
275
+ || x === 0x2B55
276
+ || x >= 0x2E80 && x <= 0x2E99
277
+ || x >= 0x2E9B && x <= 0x2EF3
278
+ || x >= 0x2F00 && x <= 0x2FD5
279
+ || x >= 0x2FF0 && x <= 0x2FFF
280
+ || x >= 0x3001 && x <= 0x303E
281
+ || x >= 0x3041 && x <= 0x3096
282
+ || x >= 0x3099 && x <= 0x30FF
283
+ || x >= 0x3105 && x <= 0x312F
284
+ || x >= 0x3131 && x <= 0x318E
285
+ || x >= 0x3190 && x <= 0x31E5
286
+ || x >= 0x31EF && x <= 0x321E
287
+ || x >= 0x3220 && x <= 0x3247
288
+ || x >= 0x3250 && x <= 0xA48C
289
+ || x >= 0xA490 && x <= 0xA4C6
290
+ || x >= 0xA960 && x <= 0xA97C
291
+ || x >= 0xAC00 && x <= 0xD7A3
292
+ || x >= 0xF900 && x <= 0xFAFF
293
+ || x >= 0xFE10 && x <= 0xFE19
294
+ || x >= 0xFE30 && x <= 0xFE52
295
+ || x >= 0xFE54 && x <= 0xFE66
296
+ || x >= 0xFE68 && x <= 0xFE6B
297
+ || x >= 0x16FE0 && x <= 0x16FE4
298
+ || x === 0x16FF0
299
+ || x === 0x16FF1
300
+ || x >= 0x17000 && x <= 0x187F7
301
+ || x >= 0x18800 && x <= 0x18CD5
302
+ || x >= 0x18CFF && x <= 0x18D08
303
+ || x >= 0x1AFF0 && x <= 0x1AFF3
304
+ || x >= 0x1AFF5 && x <= 0x1AFFB
305
+ || x === 0x1AFFD
306
+ || x === 0x1AFFE
307
+ || x >= 0x1B000 && x <= 0x1B122
308
+ || x === 0x1B132
309
+ || x >= 0x1B150 && x <= 0x1B152
310
+ || x === 0x1B155
311
+ || x >= 0x1B164 && x <= 0x1B167
312
+ || x >= 0x1B170 && x <= 0x1B2FB
313
+ || x >= 0x1D300 && x <= 0x1D356
314
+ || x >= 0x1D360 && x <= 0x1D376
315
+ || x === 0x1F004
316
+ || x === 0x1F0CF
317
+ || x === 0x1F18E
318
+ || x >= 0x1F191 && x <= 0x1F19A
319
+ || x >= 0x1F200 && x <= 0x1F202
320
+ || x >= 0x1F210 && x <= 0x1F23B
321
+ || x >= 0x1F240 && x <= 0x1F248
322
+ || x === 0x1F250
323
+ || x === 0x1F251
324
+ || x >= 0x1F260 && x <= 0x1F265
325
+ || x >= 0x1F300 && x <= 0x1F320
326
+ || x >= 0x1F32D && x <= 0x1F335
327
+ || x >= 0x1F337 && x <= 0x1F37C
328
+ || x >= 0x1F37E && x <= 0x1F393
329
+ || x >= 0x1F3A0 && x <= 0x1F3CA
330
+ || x >= 0x1F3CF && x <= 0x1F3D3
331
+ || x >= 0x1F3E0 && x <= 0x1F3F0
332
+ || x === 0x1F3F4
333
+ || x >= 0x1F3F8 && x <= 0x1F43E
334
+ || x === 0x1F440
335
+ || x >= 0x1F442 && x <= 0x1F4FC
336
+ || x >= 0x1F4FF && x <= 0x1F53D
337
+ || x >= 0x1F54B && x <= 0x1F54E
338
+ || x >= 0x1F550 && x <= 0x1F567
339
+ || x === 0x1F57A
340
+ || x === 0x1F595
341
+ || x === 0x1F596
342
+ || x === 0x1F5A4
343
+ || x >= 0x1F5FB && x <= 0x1F64F
344
+ || x >= 0x1F680 && x <= 0x1F6C5
345
+ || x === 0x1F6CC
346
+ || x >= 0x1F6D0 && x <= 0x1F6D2
347
+ || x >= 0x1F6D5 && x <= 0x1F6D7
348
+ || x >= 0x1F6DC && x <= 0x1F6DF
349
+ || x === 0x1F6EB
350
+ || x === 0x1F6EC
351
+ || x >= 0x1F6F4 && x <= 0x1F6FC
352
+ || x >= 0x1F7E0 && x <= 0x1F7EB
353
+ || x === 0x1F7F0
354
+ || x >= 0x1F90C && x <= 0x1F93A
355
+ || x >= 0x1F93C && x <= 0x1F945
356
+ || x >= 0x1F947 && x <= 0x1F9FF
357
+ || x >= 0x1FA70 && x <= 0x1FA7C
358
+ || x >= 0x1FA80 && x <= 0x1FA89
359
+ || x >= 0x1FA8F && x <= 0x1FAC6
360
+ || x >= 0x1FACE && x <= 0x1FADC
361
+ || x >= 0x1FADF && x <= 0x1FAE9
362
+ || x >= 0x1FAF0 && x <= 0x1FAF8
363
+ || x >= 0x20000 && x <= 0x2FFFD
364
+ || x >= 0x30000 && x <= 0x3FFFD;
365
+ }
366
+
367
+ function getCategory(x) {
368
+ if (isAmbiguous(x)) return 'ambiguous';
369
+
370
+ if (isFullWidth(x)) return 'fullwidth';
371
+
372
+ if (
373
+ x === 0x20A9
374
+ || x >= 0xFF61 && x <= 0xFFBE
375
+ || x >= 0xFFC2 && x <= 0xFFC7
376
+ || x >= 0xFFCA && x <= 0xFFCF
377
+ || x >= 0xFFD2 && x <= 0xFFD7
378
+ || x >= 0xFFDA && x <= 0xFFDC
379
+ || x >= 0xFFE8 && x <= 0xFFEE
380
+ ) {
381
+ return 'halfwidth';
382
+ }
383
+
384
+ if (
385
+ x >= 0x20 && x <= 0x7E
386
+ || x === 0xA2
387
+ || x === 0xA3
388
+ || x === 0xA5
389
+ || x === 0xA6
390
+ || x === 0xAC
391
+ || x === 0xAF
392
+ || x >= 0x27E6 && x <= 0x27ED
393
+ || x === 0x2985
394
+ || x === 0x2986
395
+ ) {
396
+ return 'narrow';
397
+ }
398
+
399
+ if (isWide(x)) return 'wide';
400
+
401
+ return 'neutral';
402
+ }
403
+
404
+ export {isAmbiguous, isFullWidth, isWide, getCategory};
@@ -0,0 +1,32 @@
1
+ // Core TUI interfaces and classes
2
+ // Autocomplete support
3
+ export { CombinedAutocompleteProvider, } from "./autocomplete.js";
4
+ // Components
5
+ export { Box } from "./components/box.js";
6
+ export { CancellableLoader } from "./components/cancellable-loader.js";
7
+ export { Editor } from "./components/editor.js";
8
+ export { Image } from "./components/image.js";
9
+ export { Input } from "./components/input.js";
10
+ export { Loader } from "./components/loader.js";
11
+ export { Markdown } from "./components/markdown.js";
12
+ export { SelectList } from "./components/select-list.js";
13
+ export { SettingsList } from "./components/settings-list.js";
14
+ export { Spacer } from "./components/spacer.js";
15
+ export { Text } from "./components/text.js";
16
+ export { TruncatedText } from "./components/truncated-text.js";
17
+ // Fuzzy matching
18
+ export { fuzzyFilter, fuzzyMatch } from "./fuzzy.js";
19
+ // Keybindings
20
+ export { DEFAULT_EDITOR_KEYBINDINGS, EditorKeybindingsManager, getEditorKeybindings, setEditorKeybindings, } from "./keybindings.js";
21
+ // Keyboard input handling
22
+ export { isKeyRelease, isKeyRepeat, isKittyProtocolActive, Key, matchesKey, parseKey, setKittyProtocolActive, } from "./keys.js";
23
+ // Input buffering for batch splitting
24
+ export { StdinBuffer } from "./stdin-buffer.js";
25
+ // Terminal interface and implementations
26
+ export { ProcessTerminal } from "./terminal.js";
27
+ // Terminal image support
28
+ export { allocateImageId, calculateImageRows, deleteAllKittyImages, deleteKittyImage, detectCapabilities, encodeITerm2, encodeKitty, getCapabilities, getCellDimensions, getGifDimensions, getImageDimensions, getJpegDimensions, getPngDimensions, getWebpDimensions, imageFallback, renderImage, resetCapabilitiesCache, setCellDimensions, } from "./terminal-image.js";
29
+ export { Container, CURSOR_MARKER, isFocusable, TUI, } from "./tui.js";
30
+ // Utilities
31
+ export { truncateToWidth, visibleWidth, wrapTextWithAnsi } from "./utils.js";
32
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1,114 @@
1
+ import { matchesKey } from "./keys.js";
2
+ /**
3
+ * Default editor keybindings.
4
+ */
5
+ export const DEFAULT_EDITOR_KEYBINDINGS = {
6
+ // Cursor movement
7
+ cursorUp: "up",
8
+ cursorDown: "down",
9
+ cursorLeft: ["left", "ctrl+b"],
10
+ cursorRight: ["right", "ctrl+f"],
11
+ cursorWordLeft: ["alt+left", "ctrl+left", "alt+b"],
12
+ cursorWordRight: ["alt+right", "ctrl+right", "alt+f"],
13
+ cursorLineStart: ["home", "ctrl+a"],
14
+ cursorLineEnd: ["end", "ctrl+e"],
15
+ jumpForward: "ctrl+]",
16
+ jumpBackward: "ctrl+alt+]",
17
+ pageUp: "pageUp",
18
+ pageDown: "pageDown",
19
+ // Deletion
20
+ deleteCharBackward: "backspace",
21
+ deleteCharForward: ["delete", "ctrl+d"],
22
+ deleteWordBackward: ["ctrl+w", "alt+backspace"],
23
+ deleteWordForward: ["alt+d", "alt+delete"],
24
+ deleteToLineStart: "ctrl+u",
25
+ deleteToLineEnd: "ctrl+k",
26
+ // Text input
27
+ newLine: "shift+enter",
28
+ submit: "enter",
29
+ tab: "tab",
30
+ // Selection/autocomplete
31
+ selectUp: "up",
32
+ selectDown: "down",
33
+ selectPageUp: "pageUp",
34
+ selectPageDown: "pageDown",
35
+ selectConfirm: "enter",
36
+ selectCancel: ["escape", "ctrl+c"],
37
+ // Clipboard
38
+ copy: "ctrl+c",
39
+ // Kill ring
40
+ yank: "ctrl+y",
41
+ yankPop: "alt+y",
42
+ // Undo
43
+ undo: "ctrl+-",
44
+ // Tool output
45
+ expandTools: "ctrl+o",
46
+ // Session
47
+ toggleSessionPath: "ctrl+p",
48
+ toggleSessionSort: "ctrl+s",
49
+ renameSession: "ctrl+r",
50
+ deleteSession: "ctrl+d",
51
+ deleteSessionNoninvasive: "ctrl+backspace",
52
+ };
53
+ /**
54
+ * Manages keybindings for the editor.
55
+ */
56
+ export class EditorKeybindingsManager {
57
+ actionToKeys;
58
+ constructor(config = {}) {
59
+ this.actionToKeys = new Map();
60
+ this.buildMaps(config);
61
+ }
62
+ buildMaps(config) {
63
+ this.actionToKeys.clear();
64
+ // Start with defaults
65
+ for (const [action, keys] of Object.entries(DEFAULT_EDITOR_KEYBINDINGS)) {
66
+ const keyArray = Array.isArray(keys) ? keys : [keys];
67
+ this.actionToKeys.set(action, [...keyArray]);
68
+ }
69
+ // Override with user config
70
+ for (const [action, keys] of Object.entries(config)) {
71
+ if (keys === undefined)
72
+ continue;
73
+ const keyArray = Array.isArray(keys) ? keys : [keys];
74
+ this.actionToKeys.set(action, keyArray);
75
+ }
76
+ }
77
+ /**
78
+ * Check if input matches a specific action.
79
+ */
80
+ matches(data, action) {
81
+ const keys = this.actionToKeys.get(action);
82
+ if (!keys)
83
+ return false;
84
+ for (const key of keys) {
85
+ if (matchesKey(data, key))
86
+ return true;
87
+ }
88
+ return false;
89
+ }
90
+ /**
91
+ * Get keys bound to an action.
92
+ */
93
+ getKeys(action) {
94
+ return this.actionToKeys.get(action) ?? [];
95
+ }
96
+ /**
97
+ * Update configuration.
98
+ */
99
+ setConfig(config) {
100
+ this.buildMaps(config);
101
+ }
102
+ }
103
+ // Global instance
104
+ let globalEditorKeybindings = null;
105
+ export function getEditorKeybindings() {
106
+ if (!globalEditorKeybindings) {
107
+ globalEditorKeybindings = new EditorKeybindingsManager();
108
+ }
109
+ return globalEditorKeybindings;
110
+ }
111
+ export function setEditorKeybindings(manager) {
112
+ globalEditorKeybindings = manager;
113
+ }
114
+ //# sourceMappingURL=keybindings.js.map