@sunub/obsidian-mcp-server 0.2.0 → 0.3.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 (283) hide show
  1. package/README.md +201 -25
  2. package/build/cli/AppContainer.d.ts +1 -0
  3. package/build/cli/AppContainer.js +197 -0
  4. package/build/cli/AppContainer.js.map +1 -0
  5. package/build/cli/app.js +7 -0
  6. package/build/cli/app.js.map +1 -0
  7. package/build/cli/config/SettingContext.d.ts +1 -0
  8. package/build/cli/config/SettingContext.js +2 -0
  9. package/build/cli/config/SettingContext.js.map +1 -0
  10. package/build/cli/config/mcpServersConfig.d.ts +18 -0
  11. package/build/cli/config/mcpServersConfig.js +119 -0
  12. package/build/cli/config/mcpServersConfig.js.map +1 -0
  13. package/build/cli/config/settingSchema.d.ts +180 -0
  14. package/build/cli/config/settingSchema.js +128 -0
  15. package/build/cli/config/settingSchema.js.map +1 -0
  16. package/build/cli/context/InputContext.d.ts +12 -0
  17. package/build/cli/context/InputContext.js +10 -0
  18. package/build/cli/context/InputContext.js.map +1 -0
  19. package/build/cli/context/KeypressContext.d.ts +30 -0
  20. package/build/cli/context/KeypressContext.js +200 -0
  21. package/build/cli/context/KeypressContext.js.map +1 -0
  22. package/build/cli/context/KeypressContext.util.d.ts +7 -0
  23. package/build/cli/context/KeypressContext.util.js +474 -0
  24. package/build/cli/context/KeypressContext.util.js.map +1 -0
  25. package/build/cli/hooks/useAtCompletion.d.ts +12 -0
  26. package/build/cli/hooks/useAtCompletion.js +5 -0
  27. package/build/cli/hooks/useAtCompletion.js.map +1 -0
  28. package/build/cli/hooks/useCommandCompletion.d.ts +59 -0
  29. package/build/cli/hooks/useCommandCompletion.js +344 -0
  30. package/build/cli/hooks/useCommandCompletion.js.map +1 -0
  31. package/build/cli/hooks/useCompletion.d.ts +22 -0
  32. package/build/cli/hooks/useCompletion.js +84 -0
  33. package/build/cli/hooks/useCompletion.js.map +1 -0
  34. package/build/cli/hooks/useDispatcher.d.ts +6 -0
  35. package/build/cli/hooks/useDispatcher.js +286 -0
  36. package/build/cli/hooks/useDispatcher.js.map +1 -0
  37. package/build/cli/hooks/useFocus.d.ts +2 -0
  38. package/build/cli/hooks/useFocus.js +3 -0
  39. package/build/cli/hooks/useFocus.js.map +1 -0
  40. package/build/cli/hooks/useInputHistory.d.ts +24 -0
  41. package/build/cli/hooks/useInputHistory.js +159 -0
  42. package/build/cli/hooks/useInputHistory.js.map +1 -0
  43. package/build/cli/hooks/useKeyMatchers.d.ts +17 -0
  44. package/build/cli/hooks/useKeyMatchers.js +13 -0
  45. package/build/cli/hooks/useKeyMatchers.js.map +1 -0
  46. package/build/cli/hooks/useKeypress.d.ts +19 -0
  47. package/build/cli/hooks/useKeypress.js +28 -0
  48. package/build/cli/hooks/useKeypress.js.map +1 -0
  49. package/build/cli/hooks/useLlmStream.d.ts +12 -0
  50. package/build/cli/hooks/useLlmStream.js +365 -0
  51. package/build/cli/hooks/useLlmStream.js.map +1 -0
  52. package/build/cli/hooks/useMcpClient.d.ts +10 -0
  53. package/build/cli/hooks/useMcpClient.js +100 -0
  54. package/build/cli/hooks/useMcpClient.js.map +1 -0
  55. package/build/cli/hooks/useMcpManager.d.ts +22 -0
  56. package/build/cli/hooks/useMcpManager.js +86 -0
  57. package/build/cli/hooks/useMcpManager.js.map +1 -0
  58. package/build/cli/hooks/usePromptCompletion.d.ts +19 -0
  59. package/build/cli/hooks/usePromptCompletion.js +13 -0
  60. package/build/cli/hooks/usePromptCompletion.js.map +1 -0
  61. package/build/cli/hooks/useRagContext.d.ts +6 -0
  62. package/build/cli/hooks/useRagContext.js +83 -0
  63. package/build/cli/hooks/useRagContext.js.map +1 -0
  64. package/build/cli/hooks/useShellCompletion.d.ts +18 -0
  65. package/build/cli/hooks/useShellCompletion.js +10 -0
  66. package/build/cli/hooks/useShellCompletion.js.map +1 -0
  67. package/build/cli/hooks/useSlashCompletion.d.ts +21 -0
  68. package/build/cli/hooks/useSlashCompletion.js +11 -0
  69. package/build/cli/hooks/useSlashCompletion.js.map +1 -0
  70. package/build/cli/hooks/useTerminalSize.d.ts +9 -0
  71. package/build/cli/hooks/useTerminalSize.js +26 -0
  72. package/build/cli/hooks/useTerminalSize.js.map +1 -0
  73. package/build/cli/index.js +27 -0
  74. package/build/cli/index.js.map +1 -0
  75. package/build/cli/key/keyBindings.d.ts +152 -0
  76. package/build/cli/key/keyBindings.js +630 -0
  77. package/build/cli/key/keyBindings.js.map +1 -0
  78. package/build/cli/key/keyMatchers.d.ts +27 -0
  79. package/build/cli/key/keyMatchers.js +33 -0
  80. package/build/cli/key/keyMatchers.js.map +1 -0
  81. package/build/cli/key/text-buffer-bestcase.js +2754 -0
  82. package/build/cli/key/text-buffer-bestcase.js.map +1 -0
  83. package/build/cli/key/text-buffer.js +918 -0
  84. package/build/cli/key/text-buffer.js.map +1 -0
  85. package/build/cli/reference/HistoryItemDisplay.d.ts +23 -0
  86. package/build/cli/reference/HistoryItemDisplay.js +63 -0
  87. package/build/cli/reference/HistoryItemDisplay.js.map +1 -0
  88. package/build/cli/reference/InputContext.d.ts +17 -0
  89. package/build/cli/reference/InputContext.js +16 -0
  90. package/build/cli/reference/InputContext.js.map +1 -0
  91. package/build/cli/reference/KerypressContext.d.ts +37 -0
  92. package/build/cli/reference/KerypressContext.js +791 -0
  93. package/build/cli/reference/KerypressContext.js.map +1 -0
  94. package/build/cli/reference/MainContent.d.ts +6 -0
  95. package/build/cli/reference/MainContent.js +207 -0
  96. package/build/cli/reference/MainContent.js.map +1 -0
  97. package/build/cli/reference/UIStateContext.d.ts +188 -0
  98. package/build/cli/reference/UIStateContext.js +16 -0
  99. package/build/cli/reference/UIStateContext.js.map +1 -0
  100. package/build/cli/reference/useGeminiStream.d.ts +42 -0
  101. package/build/cli/reference/useGeminiStream.js +1404 -0
  102. package/build/cli/reference/useGeminiStream.js.map +1 -0
  103. package/build/cli/services/McpClientService.d.ts +32 -0
  104. package/build/cli/services/McpClientService.js +123 -0
  105. package/build/cli/services/McpClientService.js.map +1 -0
  106. package/build/cli/services/McpManager.d.ts +28 -0
  107. package/build/cli/services/McpManager.js +146 -0
  108. package/build/cli/services/McpManager.js.map +1 -0
  109. package/build/cli/theme/builtin/no-color.js +125 -0
  110. package/build/cli/theme/builtin/no-color.js.map +1 -0
  111. package/build/cli/theme/builtin/tokyonight-dark.js +146 -0
  112. package/build/cli/theme/builtin/tokyonight-dark.js.map +1 -0
  113. package/build/cli/theme/semantic-colors.js +19 -0
  114. package/build/cli/theme/semantic-colors.js.map +1 -0
  115. package/build/cli/theme/semantic-tokens.js +77 -0
  116. package/build/cli/theme/semantic-tokens.js.map +1 -0
  117. package/build/cli/theme/theme-manager.d.ts +32 -0
  118. package/build/cli/theme/theme-manager.js +150 -0
  119. package/build/cli/theme/theme-manager.js.map +1 -0
  120. package/build/cli/theme/theme.js +333 -0
  121. package/build/cli/theme/theme.js.map +1 -0
  122. package/build/cli/tmp.js +27 -0
  123. package/build/cli/tmp.js.map +1 -0
  124. package/build/cli/types.d.ts +72 -0
  125. package/build/cli/types.js +8 -0
  126. package/build/cli/types.js.map +1 -0
  127. package/build/cli/ui/ConnectionStatus.d.ts +13 -0
  128. package/build/cli/ui/ConnectionStatus.js +24 -0
  129. package/build/cli/ui/ConnectionStatus.js.map +1 -0
  130. package/build/cli/ui/HelpCommands.d.ts +5 -0
  131. package/build/cli/ui/HelpCommands.js +11 -0
  132. package/build/cli/ui/HelpCommands.js.map +1 -0
  133. package/build/cli/ui/HistoryItemDisplay.d.ts +9 -0
  134. package/build/cli/ui/HistoryItemDisplay.js +38 -0
  135. package/build/cli/ui/HistoryItemDisplay.js.map +1 -0
  136. package/build/cli/ui/InputPrompt-bestcase.d.ts +63 -0
  137. package/build/cli/ui/InputPrompt-bestcase.js +1301 -0
  138. package/build/cli/ui/InputPrompt-bestcase.js.map +1 -0
  139. package/build/cli/ui/InputPrompt.d.ts +12 -0
  140. package/build/cli/ui/InputPrompt.js +145 -0
  141. package/build/cli/ui/InputPrompt.js.map +1 -0
  142. package/build/cli/ui/InputPrompt.tmp.d.ts +7 -0
  143. package/build/cli/ui/InputPrompt.tmp.js +215 -0
  144. package/build/cli/ui/InputPrompt.tmp.js.map +1 -0
  145. package/build/cli/ui/MainContent.d.ts +10 -0
  146. package/build/cli/ui/MainContent.js +24 -0
  147. package/build/cli/ui/MainContent.js.map +1 -0
  148. package/build/cli/ui/MouseContext.d.ts +1 -0
  149. package/build/cli/ui/MouseContext.js +2 -0
  150. package/build/cli/ui/MouseContext.js.map +1 -0
  151. package/build/cli/ui/SuggestionsDisplay.d.ts +25 -0
  152. package/build/cli/ui/SuggestionsDisplay.js +45 -0
  153. package/build/cli/ui/SuggestionsDisplay.js.map +1 -0
  154. package/build/cli/ui/ThinkingIndicator.d.ts +2 -0
  155. package/build/cli/ui/ThinkingIndicator.js +16 -0
  156. package/build/cli/ui/ThinkingIndicator.js.map +1 -0
  157. package/build/cli/ui/layout/DefaultAppLayout.d.ts +2 -0
  158. package/build/cli/ui/layout/DefaultAppLayout.js +6 -0
  159. package/build/cli/ui/layout/DefaultAppLayout.js.map +1 -0
  160. package/build/cli/ui/shared/ExpandableText.d.ts +14 -0
  161. package/build/cli/ui/shared/ExpandableText.js +19 -0
  162. package/build/cli/ui/shared/ExpandableText.js.map +1 -0
  163. package/build/cli/utils/commandUtils.d.ts +11 -0
  164. package/build/cli/utils/commandUtils.js +16 -0
  165. package/build/cli/utils/commandUtils.js.map +1 -0
  166. package/build/cli/utils/debugLogger.d.ts +12 -0
  167. package/build/cli/utils/debugLogger.js +52 -0
  168. package/build/cli/utils/debugLogger.js.map +1 -0
  169. package/build/cli/utils/historyStorage.d.ts +13 -0
  170. package/build/cli/utils/historyStorage.js +64 -0
  171. package/build/cli/utils/historyStorage.js.map +1 -0
  172. package/build/cli/utils/textUtil.d.ts +68 -0
  173. package/build/cli/utils/textUtil.js +236 -0
  174. package/build/cli/utils/textUtil.js.map +1 -0
  175. package/build/config.js +31 -5
  176. package/build/config.js.map +1 -0
  177. package/build/db.js +55 -0
  178. package/build/db.js.map +1 -0
  179. package/build/index.js +4 -0
  180. package/build/index.js.map +1 -0
  181. package/build/tools/create_document_with_properties/index.d.ts +60 -0
  182. package/build/tools/create_document_with_properties/index.js +6 -0
  183. package/build/tools/create_document_with_properties/index.js.map +1 -0
  184. package/build/tools/create_document_with_properties/params.d.ts +66 -0
  185. package/build/tools/generate_property/index.js +6 -0
  186. package/build/tools/generate_property/index.js.map +1 -0
  187. package/build/tools/index.d.ts +184 -0
  188. package/build/tools/organize_attachments/index.js +6 -0
  189. package/build/tools/organize_attachments/index.js.map +1 -0
  190. package/build/tools/organize_attachments/params.d.ts +122 -0
  191. package/build/tools/vault/index.js +16 -2
  192. package/build/tools/vault/index.js.map +1 -0
  193. package/build/tools/vault/params.d.ts +115 -0
  194. package/build/tools/vault/types/collect_context.d.ts +1340 -0
  195. package/build/tools/vault/types/list_all.d.ts +387 -0
  196. package/build/tools/vault/types/read_specific.d.ts +297 -0
  197. package/build/tools/vault/types/search.d.ts +598 -0
  198. package/build/tools/vault/utils/actions/collect_context.js +26 -1
  199. package/build/tools/vault/utils/actions/collect_context.js.map +1 -0
  200. package/build/tools/vault/utils/actions/index_rag.js +27 -0
  201. package/build/tools/vault/utils/actions/index_rag.js.map +1 -0
  202. package/build/tools/vault/utils/actions/list_all.js +1 -0
  203. package/build/tools/vault/utils/actions/list_all.js.map +1 -0
  204. package/build/tools/vault/utils/actions/load_memory.js +23 -13
  205. package/build/tools/vault/utils/actions/load_memory.js.map +1 -0
  206. package/build/tools/vault/utils/actions/read.js +2 -1
  207. package/build/tools/vault/utils/actions/read.js.map +1 -0
  208. package/build/tools/vault/utils/actions/search.js +2 -1
  209. package/build/tools/vault/utils/actions/search.js.map +1 -0
  210. package/build/tools/vault/utils/actions/search_semantic.js +54 -0
  211. package/build/tools/vault/utils/actions/search_semantic.js.map +1 -0
  212. package/build/tools/vault/utils/actions/stats.js +1 -0
  213. package/build/tools/vault/utils/actions/stats.js.map +1 -0
  214. package/build/tools/vault/utils/document.js +1 -0
  215. package/build/tools/vault/utils/document.js.map +1 -0
  216. package/build/tools/write_property/index.d.ts +58 -0
  217. package/build/tools/write_property/index.js +6 -0
  218. package/build/tools/write_property/index.js.map +1 -0
  219. package/build/utils/DirectoryWalker.d.ts +6 -0
  220. package/build/utils/DirectoryWalker.js +7 -0
  221. package/build/utils/DirectoryWalker.js.map +1 -0
  222. package/build/utils/Indexer.d.ts +18 -0
  223. package/build/utils/Indexer.js +5 -9
  224. package/build/utils/Indexer.js.map +1 -0
  225. package/build/utils/LLMClient.d.ts +37 -0
  226. package/build/utils/LLMClient.js +82 -0
  227. package/build/utils/LLMClient.js.map +1 -0
  228. package/build/utils/RAGIndexer.d.ts +22 -0
  229. package/build/utils/RAGIndexer.js +206 -0
  230. package/build/utils/RAGIndexer.js.map +1 -0
  231. package/build/utils/RerankerClient.d.ts +27 -0
  232. package/build/utils/RerankerClient.js +69 -0
  233. package/build/utils/RerankerClient.js.map +1 -0
  234. package/build/utils/VaultManger/VaultManager.d.ts +34 -0
  235. package/build/utils/VaultManger/VaultManager.js +1 -0
  236. package/build/utils/VaultManger/VaultManager.js.map +1 -0
  237. package/build/utils/VaultManger/VaultPathError.d.ts +6 -0
  238. package/build/utils/VaultManger/VaultPathError.js +1 -0
  239. package/build/utils/VaultManger/VaultPathError.js.map +1 -0
  240. package/build/utils/VaultManger/index.d.ts +3 -0
  241. package/build/utils/VaultManger/index.js +1 -0
  242. package/build/utils/VaultManger/index.js.map +1 -0
  243. package/build/utils/VaultManger/types.d.ts +16 -0
  244. package/build/utils/VaultManger/types.js +1 -0
  245. package/build/utils/VaultManger/types.js.map +1 -0
  246. package/build/utils/VaultWatcher.d.ts +8 -0
  247. package/build/utils/VaultWatcher.js +96 -0
  248. package/build/utils/VaultWatcher.js.map +1 -0
  249. package/build/utils/VectorDB.d.ts +53 -0
  250. package/build/utils/VectorDB.js +243 -0
  251. package/build/utils/VectorDB.js.map +1 -0
  252. package/build/utils/createToolError.d.ts +2 -0
  253. package/build/utils/createToolError.js +1 -0
  254. package/build/utils/createToolError.js.map +1 -0
  255. package/build/utils/getVaultManager.d.ts +2 -0
  256. package/build/utils/getVaultManager.js +1 -0
  257. package/build/utils/getVaultManager.js.map +1 -0
  258. package/build/utils/processor/LinkExtractor.d.ts +2 -0
  259. package/build/utils/processor/LinkExtractor.js +1 -0
  260. package/build/utils/processor/LinkExtractor.js.map +1 -0
  261. package/build/utils/processor/MatterParser.d.ts +2 -0
  262. package/build/utils/processor/MatterParser.js +12 -3
  263. package/build/utils/processor/MatterParser.js.map +1 -0
  264. package/build/utils/processor/types.d.ts +100 -0
  265. package/package.json +28 -3
  266. package/build/server.js +0 -32
  267. package/build/tools/create_document_with_properties/params.js +0 -32
  268. package/build/tools/generate_property/params.js +0 -54
  269. package/build/tools/index.js +0 -12
  270. package/build/tools/organize_attachments/params.js +0 -60
  271. package/build/tools/organize_attachments/utils.js +0 -65
  272. package/build/tools/vault/metrics.js +0 -126
  273. package/build/tools/vault/params.js +0 -141
  274. package/build/tools/vault/types/collect_context.js +0 -102
  275. package/build/tools/vault/types/list_all.js +0 -52
  276. package/build/tools/vault/types/read_specific.js +0 -40
  277. package/build/tools/vault/types/search.js +0 -58
  278. package/build/tools/vault/utils/constants.js +0 -2
  279. package/build/tools/vault/utils/shared.js +0 -74
  280. package/build/tools/vault/utils.js +0 -6
  281. package/build/tools/write_property/params.js +0 -51
  282. package/build/utils/processor/types.js +0 -27
  283. package/build/utils/semaphore.js +0 -25
@@ -0,0 +1,630 @@
1
+ /**
2
+ * @license
3
+ * Copyright 2025 Google LLC
4
+ * SPDX-License-Identifier: Apache-2.0
5
+ */
6
+ import { z } from "zod";
7
+ export var Command;
8
+ (function (Command) {
9
+ // Basic Controls
10
+ Command["RETURN"] = "basic.confirm";
11
+ Command["ESCAPE"] = "basic.cancel";
12
+ Command["QUIT"] = "basic.quit";
13
+ Command["EXIT"] = "basic.exit";
14
+ // Cursor Movement
15
+ Command["HOME"] = "cursor.home";
16
+ Command["END"] = "cursor.end";
17
+ Command["MOVE_UP"] = "cursor.up";
18
+ Command["MOVE_DOWN"] = "cursor.down";
19
+ Command["MOVE_LEFT"] = "cursor.left";
20
+ Command["MOVE_RIGHT"] = "cursor.right";
21
+ Command["MOVE_WORD_LEFT"] = "cursor.wordLeft";
22
+ Command["MOVE_WORD_RIGHT"] = "cursor.wordRight";
23
+ // Editing
24
+ Command["KILL_LINE_RIGHT"] = "edit.deleteRightAll";
25
+ Command["KILL_LINE_LEFT"] = "edit.deleteLeftAll";
26
+ Command["CLEAR_INPUT"] = "edit.clear";
27
+ Command["DELETE_WORD_BACKWARD"] = "edit.deleteWordLeft";
28
+ Command["DELETE_WORD_FORWARD"] = "edit.deleteWordRight";
29
+ Command["DELETE_CHAR_LEFT"] = "edit.deleteLeft";
30
+ Command["DELETE_CHAR_RIGHT"] = "edit.deleteRight";
31
+ Command["UNDO"] = "edit.undo";
32
+ Command["REDO"] = "edit.redo";
33
+ // Scrolling
34
+ Command["SCROLL_UP"] = "scroll.up";
35
+ Command["SCROLL_DOWN"] = "scroll.down";
36
+ Command["SCROLL_HOME"] = "scroll.home";
37
+ Command["SCROLL_END"] = "scroll.end";
38
+ Command["PAGE_UP"] = "scroll.pageUp";
39
+ Command["PAGE_DOWN"] = "scroll.pageDown";
40
+ // History & Search
41
+ Command["HISTORY_UP"] = "history.previous";
42
+ Command["HISTORY_DOWN"] = "history.next";
43
+ Command["REVERSE_SEARCH"] = "history.search.start";
44
+ Command["SUBMIT_REVERSE_SEARCH"] = "history.search.submit";
45
+ Command["ACCEPT_SUGGESTION_REVERSE_SEARCH"] = "history.search.accept";
46
+ // Navigation
47
+ Command["NAVIGATION_UP"] = "nav.up";
48
+ Command["NAVIGATION_DOWN"] = "nav.down";
49
+ Command["DIALOG_NAVIGATION_UP"] = "nav.dialog.up";
50
+ Command["DIALOG_NAVIGATION_DOWN"] = "nav.dialog.down";
51
+ Command["DIALOG_NEXT"] = "nav.dialog.next";
52
+ Command["DIALOG_PREV"] = "nav.dialog.previous";
53
+ // Suggestions & Completions
54
+ Command["ACCEPT_SUGGESTION"] = "suggest.accept";
55
+ Command["COMPLETION_UP"] = "suggest.focusPrevious";
56
+ Command["COMPLETION_DOWN"] = "suggest.focusNext";
57
+ Command["EXPAND_SUGGESTION"] = "suggest.expand";
58
+ Command["COLLAPSE_SUGGESTION"] = "suggest.collapse";
59
+ // Text Input
60
+ Command["SUBMIT"] = "input.submit";
61
+ Command["QUEUE_MESSAGE"] = "input.queueMessage";
62
+ Command["NEWLINE"] = "input.newline";
63
+ Command["OPEN_EXTERNAL_EDITOR"] = "input.openExternalEditor";
64
+ Command["DEPRECATED_OPEN_EXTERNAL_EDITOR"] = "input.deprecatedOpenExternalEditor";
65
+ Command["PASTE_CLIPBOARD"] = "input.paste";
66
+ // App Controls
67
+ Command["SHOW_ERROR_DETAILS"] = "app.showErrorDetails";
68
+ Command["SHOW_FULL_TODOS"] = "app.showFullTodos";
69
+ Command["SHOW_IDE_CONTEXT_DETAIL"] = "app.showIdeContextDetail";
70
+ Command["TOGGLE_MARKDOWN"] = "app.toggleMarkdown";
71
+ Command["TOGGLE_COPY_MODE"] = "app.toggleCopyMode";
72
+ Command["TOGGLE_MOUSE_MODE"] = "app.toggleMouseMode";
73
+ Command["TOGGLE_YOLO"] = "app.toggleYolo";
74
+ Command["CYCLE_APPROVAL_MODE"] = "app.cycleApprovalMode";
75
+ Command["SHOW_MORE_LINES"] = "app.showMoreLines";
76
+ Command["EXPAND_PASTE"] = "app.expandPaste";
77
+ Command["FOCUS_SHELL_INPUT"] = "app.focusShellInput";
78
+ Command["UNFOCUS_SHELL_INPUT"] = "app.unfocusShellInput";
79
+ Command["CLEAR_SCREEN"] = "app.clearScreen";
80
+ Command["RESTART_APP"] = "app.restart";
81
+ Command["SUSPEND_APP"] = "app.suspend";
82
+ Command["SHOW_SHELL_INPUT_UNFOCUS_WARNING"] = "app.showShellUnfocusWarning";
83
+ // Background Shell Controls
84
+ Command["BACKGROUND_SHELL_ESCAPE"] = "background.escape";
85
+ Command["BACKGROUND_SHELL_SELECT"] = "background.select";
86
+ Command["TOGGLE_BACKGROUND_SHELL"] = "background.toggle";
87
+ Command["TOGGLE_BACKGROUND_SHELL_LIST"] = "background.toggleList";
88
+ Command["KILL_BACKGROUND_SHELL"] = "background.kill";
89
+ Command["UNFOCUS_BACKGROUND_SHELL"] = "background.unfocus";
90
+ Command["UNFOCUS_BACKGROUND_SHELL_LIST"] = "background.unfocusList";
91
+ Command["SHOW_BACKGROUND_SHELL_UNFOCUS_WARNING"] = "background.unfocusWarning";
92
+ // Extension Controls
93
+ Command["UPDATE_EXTENSION"] = "extension.update";
94
+ Command["LINK_EXTENSION"] = "extension.link";
95
+ Command["DUMP_FRAME"] = "app.dumpFrame";
96
+ Command["START_RECORDING"] = "app.startRecording";
97
+ Command["STOP_RECORDING"] = "app.stopRecording";
98
+ })(Command || (Command = {}));
99
+ /**
100
+ * Data-driven key binding structure for user configuration
101
+ */
102
+ export class KeyBinding {
103
+ static VALID_LONG_KEYS = new Set([
104
+ ...Array.from({ length: 35 }, (_, i) => `f${i + 1}`), // Function Keys
105
+ ...Array.from({ length: 10 }, (_, i) => `numpad${i}`), // Numpad Numbers
106
+ // Navigation & Actions
107
+ "left",
108
+ "up",
109
+ "right",
110
+ "down",
111
+ "pageup",
112
+ "pagedown",
113
+ "end",
114
+ "home",
115
+ "tab",
116
+ "enter",
117
+ "escape",
118
+ "space",
119
+ "backspace",
120
+ "delete",
121
+ "clear",
122
+ "pausebreak",
123
+ "capslock",
124
+ "insert",
125
+ "numlock",
126
+ "scrolllock",
127
+ "printscreen",
128
+ "numpad_multiply",
129
+ "numpad_add",
130
+ "numpad_separator",
131
+ "numpad_subtract",
132
+ "numpad_decimal",
133
+ "numpad_divide",
134
+ ]);
135
+ /** The key name (e.g., 'a', 'enter', 'tab', 'escape') */
136
+ name;
137
+ shift;
138
+ alt;
139
+ ctrl;
140
+ cmd;
141
+ constructor(pattern) {
142
+ let remains = pattern.trim();
143
+ let shift = false;
144
+ let alt = false;
145
+ let ctrl = false;
146
+ let cmd = false;
147
+ let matched;
148
+ do {
149
+ matched = false;
150
+ const lowerRemains = remains.toLowerCase();
151
+ if (lowerRemains.startsWith("ctrl+")) {
152
+ ctrl = true;
153
+ remains = remains.slice(5);
154
+ matched = true;
155
+ }
156
+ else if (lowerRemains.startsWith("shift+")) {
157
+ shift = true;
158
+ remains = remains.slice(6);
159
+ matched = true;
160
+ }
161
+ else if (lowerRemains.startsWith("alt+")) {
162
+ alt = true;
163
+ remains = remains.slice(4);
164
+ matched = true;
165
+ }
166
+ else if (lowerRemains.startsWith("option+")) {
167
+ alt = true;
168
+ remains = remains.slice(7);
169
+ matched = true;
170
+ }
171
+ else if (lowerRemains.startsWith("opt+")) {
172
+ alt = true;
173
+ remains = remains.slice(4);
174
+ matched = true;
175
+ }
176
+ else if (lowerRemains.startsWith("cmd+")) {
177
+ cmd = true;
178
+ remains = remains.slice(4);
179
+ matched = true;
180
+ }
181
+ else if (lowerRemains.startsWith("meta+")) {
182
+ cmd = true;
183
+ remains = remains.slice(5);
184
+ matched = true;
185
+ }
186
+ } while (matched);
187
+ const key = remains;
188
+ // eslint-disable-next-line @typescript-eslint/no-misused-spread
189
+ const isSingleChar = [...key].length === 1;
190
+ if (!isSingleChar && !KeyBinding.VALID_LONG_KEYS.has(key.toLowerCase())) {
191
+ throw new Error(`Invalid keybinding key: "${key}" in "${pattern}".` +
192
+ ` Must be a single character or one of: ${[...KeyBinding.VALID_LONG_KEYS].join(", ")}`);
193
+ }
194
+ this.name = key.toLowerCase();
195
+ this.shift = shift || (isSingleChar && this.name !== key);
196
+ this.alt = alt;
197
+ this.ctrl = ctrl;
198
+ this.cmd = cmd;
199
+ }
200
+ matches(key) {
201
+ return (key.name === this.name &&
202
+ !!key.shift === !!this.shift &&
203
+ !!key.alt === !!this.alt &&
204
+ !!key.ctrl === !!this.ctrl &&
205
+ !!key.cmd === !!this.cmd);
206
+ }
207
+ equals(other) {
208
+ return (this.name === other.name &&
209
+ this.shift === other.shift &&
210
+ this.alt === other.alt &&
211
+ this.ctrl === other.ctrl &&
212
+ this.cmd === other.cmd);
213
+ }
214
+ }
215
+ /**
216
+ * Default key binding configuration
217
+ * Matches the original hard-coded logic exactly
218
+ */
219
+ export const defaultKeyBindingConfig = new Map([
220
+ // Basic Controls
221
+ [Command.RETURN, [new KeyBinding("enter")]],
222
+ [Command.ESCAPE, [new KeyBinding("escape"), new KeyBinding("ctrl+[")]],
223
+ [Command.QUIT, [new KeyBinding("ctrl+c")]],
224
+ [Command.EXIT, [new KeyBinding("ctrl+d")]],
225
+ // Cursor Movement
226
+ [Command.HOME, [new KeyBinding("ctrl+a"), new KeyBinding("home")]],
227
+ [Command.END, [new KeyBinding("ctrl+e"), new KeyBinding("end")]],
228
+ [Command.MOVE_UP, [new KeyBinding("up")]],
229
+ [Command.MOVE_DOWN, [new KeyBinding("down")]],
230
+ [Command.MOVE_LEFT, [new KeyBinding("left")]],
231
+ [Command.MOVE_RIGHT, [new KeyBinding("right"), new KeyBinding("ctrl+f")]],
232
+ [
233
+ Command.MOVE_WORD_LEFT,
234
+ [
235
+ new KeyBinding("ctrl+left"),
236
+ new KeyBinding("alt+left"),
237
+ new KeyBinding("alt+b"),
238
+ ],
239
+ ],
240
+ [
241
+ Command.MOVE_WORD_RIGHT,
242
+ [
243
+ new KeyBinding("ctrl+right"),
244
+ new KeyBinding("alt+right"),
245
+ new KeyBinding("alt+f"),
246
+ ],
247
+ ],
248
+ // Editing
249
+ [Command.KILL_LINE_RIGHT, [new KeyBinding("ctrl+k")]],
250
+ [Command.KILL_LINE_LEFT, [new KeyBinding("ctrl+u")]],
251
+ [Command.CLEAR_INPUT, [new KeyBinding("ctrl+c")]],
252
+ [
253
+ Command.DELETE_WORD_BACKWARD,
254
+ [
255
+ new KeyBinding("ctrl+backspace"),
256
+ new KeyBinding("alt+backspace"),
257
+ new KeyBinding("ctrl+w"),
258
+ ],
259
+ ],
260
+ [
261
+ Command.DELETE_WORD_FORWARD,
262
+ [
263
+ new KeyBinding("ctrl+delete"),
264
+ new KeyBinding("alt+delete"),
265
+ new KeyBinding("alt+d"),
266
+ ],
267
+ ],
268
+ [
269
+ Command.DELETE_CHAR_LEFT,
270
+ [new KeyBinding("backspace"), new KeyBinding("ctrl+h")],
271
+ ],
272
+ [
273
+ Command.DELETE_CHAR_RIGHT,
274
+ [new KeyBinding("delete"), new KeyBinding("ctrl+d")],
275
+ ],
276
+ [Command.UNDO, [new KeyBinding("cmd+z"), new KeyBinding("alt+z")]],
277
+ [
278
+ Command.REDO,
279
+ [
280
+ new KeyBinding("ctrl+shift+z"),
281
+ new KeyBinding("cmd+shift+z"),
282
+ new KeyBinding("alt+shift+z"),
283
+ ],
284
+ ],
285
+ // Scrolling
286
+ [Command.SCROLL_UP, [new KeyBinding("shift+up")]],
287
+ [Command.SCROLL_DOWN, [new KeyBinding("shift+down")]],
288
+ [
289
+ Command.SCROLL_HOME,
290
+ [new KeyBinding("ctrl+home"), new KeyBinding("shift+home")],
291
+ ],
292
+ [
293
+ Command.SCROLL_END,
294
+ [new KeyBinding("ctrl+end"), new KeyBinding("shift+end")],
295
+ ],
296
+ [Command.PAGE_UP, [new KeyBinding("pageup")]],
297
+ [Command.PAGE_DOWN, [new KeyBinding("pagedown")]],
298
+ // History & Search
299
+ [Command.HISTORY_UP, [new KeyBinding("ctrl+p")]],
300
+ [Command.HISTORY_DOWN, [new KeyBinding("ctrl+n")]],
301
+ [Command.REVERSE_SEARCH, [new KeyBinding("ctrl+r")]],
302
+ [Command.SUBMIT_REVERSE_SEARCH, [new KeyBinding("enter")]],
303
+ [Command.ACCEPT_SUGGESTION_REVERSE_SEARCH, [new KeyBinding("tab")]],
304
+ // Navigation
305
+ [Command.NAVIGATION_UP, [new KeyBinding("up")]],
306
+ [Command.NAVIGATION_DOWN, [new KeyBinding("down")]],
307
+ // Navigation shortcuts appropriate for dialogs where we do not need to accept
308
+ // text input.
309
+ [Command.DIALOG_NAVIGATION_UP, [new KeyBinding("up"), new KeyBinding("k")]],
310
+ [
311
+ Command.DIALOG_NAVIGATION_DOWN,
312
+ [new KeyBinding("down"), new KeyBinding("j")],
313
+ ],
314
+ [Command.DIALOG_NEXT, [new KeyBinding("tab")]],
315
+ [Command.DIALOG_PREV, [new KeyBinding("shift+tab")]],
316
+ // Suggestions & Completions
317
+ [Command.ACCEPT_SUGGESTION, [new KeyBinding("tab"), new KeyBinding("enter")]],
318
+ [Command.COMPLETION_UP, [new KeyBinding("up"), new KeyBinding("ctrl+p")]],
319
+ [Command.COMPLETION_DOWN, [new KeyBinding("down"), new KeyBinding("ctrl+n")]],
320
+ [Command.EXPAND_SUGGESTION, [new KeyBinding("right")]],
321
+ [Command.COLLAPSE_SUGGESTION, [new KeyBinding("left")]],
322
+ // Text Input
323
+ // Must also exclude shift to allow shift+enter for newline
324
+ [Command.SUBMIT, [new KeyBinding("enter")]],
325
+ [Command.QUEUE_MESSAGE, [new KeyBinding("tab")]],
326
+ [
327
+ Command.NEWLINE,
328
+ [
329
+ new KeyBinding("ctrl+enter"),
330
+ new KeyBinding("cmd+enter"),
331
+ new KeyBinding("alt+enter"),
332
+ new KeyBinding("shift+enter"),
333
+ new KeyBinding("ctrl+j"),
334
+ ],
335
+ ],
336
+ [
337
+ Command.OPEN_EXTERNAL_EDITOR,
338
+ [new KeyBinding("ctrl+g"), new KeyBinding("ctrl+shift+g")],
339
+ ],
340
+ [Command.DEPRECATED_OPEN_EXTERNAL_EDITOR, [new KeyBinding("ctrl+x")]],
341
+ [
342
+ Command.PASTE_CLIPBOARD,
343
+ [
344
+ new KeyBinding("ctrl+v"),
345
+ new KeyBinding("cmd+v"),
346
+ new KeyBinding("alt+v"),
347
+ ],
348
+ ],
349
+ // App Controls
350
+ [Command.SHOW_ERROR_DETAILS, [new KeyBinding("f12")]],
351
+ [Command.SHOW_FULL_TODOS, [new KeyBinding("ctrl+t")]],
352
+ [Command.SHOW_IDE_CONTEXT_DETAIL, [new KeyBinding("f4")]],
353
+ [Command.TOGGLE_MARKDOWN, [new KeyBinding("alt+m")]],
354
+ [Command.TOGGLE_COPY_MODE, [new KeyBinding("f9")]],
355
+ [Command.TOGGLE_MOUSE_MODE, [new KeyBinding("ctrl+s")]],
356
+ [Command.TOGGLE_YOLO, [new KeyBinding("ctrl+y")]],
357
+ [Command.CYCLE_APPROVAL_MODE, [new KeyBinding("shift+tab")]],
358
+ [Command.SHOW_MORE_LINES, [new KeyBinding("ctrl+o")]],
359
+ [Command.EXPAND_PASTE, [new KeyBinding("ctrl+o")]],
360
+ [Command.FOCUS_SHELL_INPUT, [new KeyBinding("tab")]],
361
+ [Command.UNFOCUS_SHELL_INPUT, [new KeyBinding("shift+tab")]],
362
+ [Command.CLEAR_SCREEN, [new KeyBinding("ctrl+l")]],
363
+ [Command.RESTART_APP, [new KeyBinding("r"), new KeyBinding("shift+r")]],
364
+ [Command.SUSPEND_APP, [new KeyBinding("ctrl+z")]],
365
+ [Command.SHOW_SHELL_INPUT_UNFOCUS_WARNING, [new KeyBinding("tab")]],
366
+ [Command.DUMP_FRAME, [new KeyBinding("f8")]],
367
+ [Command.START_RECORDING, [new KeyBinding("f6")]],
368
+ [Command.STOP_RECORDING, [new KeyBinding("f7")]],
369
+ // Background Shell Controls
370
+ [Command.BACKGROUND_SHELL_ESCAPE, [new KeyBinding("escape")]],
371
+ [Command.BACKGROUND_SHELL_SELECT, [new KeyBinding("enter")]],
372
+ [Command.TOGGLE_BACKGROUND_SHELL, [new KeyBinding("ctrl+b")]],
373
+ [Command.TOGGLE_BACKGROUND_SHELL_LIST, [new KeyBinding("ctrl+l")]],
374
+ [Command.KILL_BACKGROUND_SHELL, [new KeyBinding("ctrl+k")]],
375
+ [Command.UNFOCUS_BACKGROUND_SHELL, [new KeyBinding("shift+tab")]],
376
+ [Command.UNFOCUS_BACKGROUND_SHELL_LIST, [new KeyBinding("tab")]],
377
+ [Command.SHOW_BACKGROUND_SHELL_UNFOCUS_WARNING, [new KeyBinding("tab")]],
378
+ // Extension Controls
379
+ [Command.UPDATE_EXTENSION, [new KeyBinding("i")]],
380
+ [Command.LINK_EXTENSION, [new KeyBinding("l")]],
381
+ ]);
382
+ /**
383
+ * Presentation metadata for grouping commands in documentation or UI.
384
+ */
385
+ export const commandCategories = [
386
+ {
387
+ title: "Basic Controls",
388
+ commands: [Command.RETURN, Command.ESCAPE, Command.QUIT, Command.EXIT],
389
+ },
390
+ {
391
+ title: "Cursor Movement",
392
+ commands: [
393
+ Command.HOME,
394
+ Command.END,
395
+ Command.MOVE_UP,
396
+ Command.MOVE_DOWN,
397
+ Command.MOVE_LEFT,
398
+ Command.MOVE_RIGHT,
399
+ Command.MOVE_WORD_LEFT,
400
+ Command.MOVE_WORD_RIGHT,
401
+ ],
402
+ },
403
+ {
404
+ title: "Editing",
405
+ commands: [
406
+ Command.KILL_LINE_RIGHT,
407
+ Command.KILL_LINE_LEFT,
408
+ Command.CLEAR_INPUT,
409
+ Command.DELETE_WORD_BACKWARD,
410
+ Command.DELETE_WORD_FORWARD,
411
+ Command.DELETE_CHAR_LEFT,
412
+ Command.DELETE_CHAR_RIGHT,
413
+ Command.UNDO,
414
+ Command.REDO,
415
+ ],
416
+ },
417
+ {
418
+ title: "Scrolling",
419
+ commands: [
420
+ Command.SCROLL_UP,
421
+ Command.SCROLL_DOWN,
422
+ Command.SCROLL_HOME,
423
+ Command.SCROLL_END,
424
+ Command.PAGE_UP,
425
+ Command.PAGE_DOWN,
426
+ ],
427
+ },
428
+ {
429
+ title: "History & Search",
430
+ commands: [
431
+ Command.HISTORY_UP,
432
+ Command.HISTORY_DOWN,
433
+ Command.REVERSE_SEARCH,
434
+ Command.SUBMIT_REVERSE_SEARCH,
435
+ Command.ACCEPT_SUGGESTION_REVERSE_SEARCH,
436
+ ],
437
+ },
438
+ {
439
+ title: "Navigation",
440
+ commands: [
441
+ Command.NAVIGATION_UP,
442
+ Command.NAVIGATION_DOWN,
443
+ Command.DIALOG_NAVIGATION_UP,
444
+ Command.DIALOG_NAVIGATION_DOWN,
445
+ Command.DIALOG_NEXT,
446
+ Command.DIALOG_PREV,
447
+ ],
448
+ },
449
+ {
450
+ title: "Suggestions & Completions",
451
+ commands: [
452
+ Command.ACCEPT_SUGGESTION,
453
+ Command.COMPLETION_UP,
454
+ Command.COMPLETION_DOWN,
455
+ Command.EXPAND_SUGGESTION,
456
+ Command.COLLAPSE_SUGGESTION,
457
+ ],
458
+ },
459
+ {
460
+ title: "Text Input",
461
+ commands: [
462
+ Command.SUBMIT,
463
+ Command.QUEUE_MESSAGE,
464
+ Command.NEWLINE,
465
+ Command.OPEN_EXTERNAL_EDITOR,
466
+ Command.DEPRECATED_OPEN_EXTERNAL_EDITOR,
467
+ Command.PASTE_CLIPBOARD,
468
+ ],
469
+ },
470
+ {
471
+ title: "App Controls",
472
+ commands: [
473
+ Command.SHOW_ERROR_DETAILS,
474
+ Command.SHOW_FULL_TODOS,
475
+ Command.SHOW_IDE_CONTEXT_DETAIL,
476
+ Command.TOGGLE_MARKDOWN,
477
+ Command.TOGGLE_COPY_MODE,
478
+ Command.TOGGLE_MOUSE_MODE,
479
+ Command.TOGGLE_YOLO,
480
+ Command.CYCLE_APPROVAL_MODE,
481
+ Command.SHOW_MORE_LINES,
482
+ Command.EXPAND_PASTE,
483
+ Command.FOCUS_SHELL_INPUT,
484
+ Command.UNFOCUS_SHELL_INPUT,
485
+ Command.CLEAR_SCREEN,
486
+ Command.RESTART_APP,
487
+ Command.SUSPEND_APP,
488
+ Command.SHOW_SHELL_INPUT_UNFOCUS_WARNING,
489
+ ],
490
+ },
491
+ {
492
+ title: "Background Shell Controls",
493
+ commands: [
494
+ Command.BACKGROUND_SHELL_ESCAPE,
495
+ Command.BACKGROUND_SHELL_SELECT,
496
+ Command.TOGGLE_BACKGROUND_SHELL,
497
+ Command.TOGGLE_BACKGROUND_SHELL_LIST,
498
+ Command.KILL_BACKGROUND_SHELL,
499
+ Command.UNFOCUS_BACKGROUND_SHELL,
500
+ Command.UNFOCUS_BACKGROUND_SHELL_LIST,
501
+ Command.SHOW_BACKGROUND_SHELL_UNFOCUS_WARNING,
502
+ Command.DUMP_FRAME,
503
+ Command.START_RECORDING,
504
+ Command.STOP_RECORDING,
505
+ ],
506
+ },
507
+ {
508
+ title: "Extension Controls",
509
+ commands: [Command.UPDATE_EXTENSION, Command.LINK_EXTENSION],
510
+ },
511
+ ];
512
+ /**
513
+ * Human-readable descriptions for each command, used in docs/tooling.
514
+ */
515
+ export const commandDescriptions = {
516
+ // Basic Controls
517
+ [Command.RETURN]: "Confirm the current selection or choice.",
518
+ [Command.ESCAPE]: "Dismiss dialogs or cancel the current focus.",
519
+ [Command.QUIT]: "Cancel the current request or quit the CLI when input is empty.",
520
+ [Command.EXIT]: "Exit the CLI when the input buffer is empty.",
521
+ // Cursor Movement
522
+ [Command.HOME]: "Move the cursor to the start of the line.",
523
+ [Command.END]: "Move the cursor to the end of the line.",
524
+ [Command.MOVE_UP]: "Move the cursor up one line.",
525
+ [Command.MOVE_DOWN]: "Move the cursor down one line.",
526
+ [Command.MOVE_LEFT]: "Move the cursor one character to the left.",
527
+ [Command.MOVE_RIGHT]: "Move the cursor one character to the right.",
528
+ [Command.MOVE_WORD_LEFT]: "Move the cursor one word to the left.",
529
+ [Command.MOVE_WORD_RIGHT]: "Move the cursor one word to the right.",
530
+ // Editing
531
+ [Command.KILL_LINE_RIGHT]: "Delete from the cursor to the end of the line.",
532
+ [Command.KILL_LINE_LEFT]: "Delete from the cursor to the start of the line.",
533
+ [Command.CLEAR_INPUT]: "Clear all text in the input field.",
534
+ [Command.DELETE_WORD_BACKWARD]: "Delete the previous word.",
535
+ [Command.DELETE_WORD_FORWARD]: "Delete the next word.",
536
+ [Command.DELETE_CHAR_LEFT]: "Delete the character to the left.",
537
+ [Command.DELETE_CHAR_RIGHT]: "Delete the character to the right.",
538
+ [Command.UNDO]: "Undo the most recent text edit.",
539
+ [Command.REDO]: "Redo the most recent undone text edit.",
540
+ // Scrolling
541
+ [Command.SCROLL_UP]: "Scroll content up.",
542
+ [Command.SCROLL_DOWN]: "Scroll content down.",
543
+ [Command.SCROLL_HOME]: "Scroll to the top.",
544
+ [Command.SCROLL_END]: "Scroll to the bottom.",
545
+ [Command.PAGE_UP]: "Scroll up by one page.",
546
+ [Command.PAGE_DOWN]: "Scroll down by one page.",
547
+ // History & Search
548
+ [Command.HISTORY_UP]: "Show the previous entry in history.",
549
+ [Command.HISTORY_DOWN]: "Show the next entry in history.",
550
+ [Command.REVERSE_SEARCH]: "Start reverse search through history.",
551
+ [Command.SUBMIT_REVERSE_SEARCH]: "Submit the selected reverse-search match.",
552
+ [Command.ACCEPT_SUGGESTION_REVERSE_SEARCH]: "Accept a suggestion while reverse searching.",
553
+ // Navigation
554
+ [Command.NAVIGATION_UP]: "Move selection up in lists.",
555
+ [Command.NAVIGATION_DOWN]: "Move selection down in lists.",
556
+ [Command.DIALOG_NAVIGATION_UP]: "Move up within dialog options.",
557
+ [Command.DIALOG_NAVIGATION_DOWN]: "Move down within dialog options.",
558
+ [Command.DIALOG_NEXT]: "Move to the next item or question in a dialog.",
559
+ [Command.DIALOG_PREV]: "Move to the previous item or question in a dialog.",
560
+ // Suggestions & Completions
561
+ [Command.ACCEPT_SUGGESTION]: "Accept the inline suggestion.",
562
+ [Command.COMPLETION_UP]: "Move to the previous completion option.",
563
+ [Command.COMPLETION_DOWN]: "Move to the next completion option.",
564
+ [Command.EXPAND_SUGGESTION]: "Expand an inline suggestion.",
565
+ [Command.COLLAPSE_SUGGESTION]: "Collapse an inline suggestion.",
566
+ // Text Input
567
+ [Command.SUBMIT]: "Submit the current prompt.",
568
+ [Command.QUEUE_MESSAGE]: "Queue the current prompt to be processed after the current task finishes.",
569
+ [Command.NEWLINE]: "Insert a newline without submitting.",
570
+ [Command.OPEN_EXTERNAL_EDITOR]: "Open the current prompt or the plan in an external editor.",
571
+ [Command.DEPRECATED_OPEN_EXTERNAL_EDITOR]: "Deprecated command to open external editor.",
572
+ [Command.PASTE_CLIPBOARD]: "Paste from the clipboard.",
573
+ // App Controls
574
+ [Command.SHOW_ERROR_DETAILS]: "Toggle the debug console for detailed error information.",
575
+ [Command.SHOW_FULL_TODOS]: "Toggle the full TODO list.",
576
+ [Command.SHOW_IDE_CONTEXT_DETAIL]: "Show IDE context details.",
577
+ [Command.TOGGLE_MARKDOWN]: "Toggle Markdown rendering.",
578
+ [Command.TOGGLE_COPY_MODE]: "Toggle copy mode when in alternate buffer mode.",
579
+ [Command.TOGGLE_MOUSE_MODE]: "Toggle mouse mode (scrolling and clicking).",
580
+ [Command.TOGGLE_YOLO]: "Toggle YOLO (auto-approval) mode for tool calls.",
581
+ [Command.CYCLE_APPROVAL_MODE]: "Cycle through approval modes: default (prompt), auto_edit (auto-approve edits), and plan (read-only). Plan mode is skipped when the agent is busy.",
582
+ [Command.SHOW_MORE_LINES]: "Expand and collapse blocks of content when not in alternate buffer mode.",
583
+ [Command.EXPAND_PASTE]: "Expand or collapse a paste placeholder when cursor is over placeholder.",
584
+ [Command.FOCUS_SHELL_INPUT]: "Move focus from Gemini to the active shell.",
585
+ [Command.UNFOCUS_SHELL_INPUT]: "Move focus from the shell back to Gemini.",
586
+ [Command.CLEAR_SCREEN]: "Clear the terminal screen and redraw the UI.",
587
+ [Command.RESTART_APP]: "Restart the application.",
588
+ [Command.SUSPEND_APP]: "Suspend the CLI and move it to the background.",
589
+ [Command.SHOW_SHELL_INPUT_UNFOCUS_WARNING]: "Show warning when trying to move focus away from shell input.",
590
+ // Background Shell Controls
591
+ [Command.BACKGROUND_SHELL_ESCAPE]: "Dismiss background shell list.",
592
+ [Command.BACKGROUND_SHELL_SELECT]: "Confirm selection in background shell list.",
593
+ [Command.TOGGLE_BACKGROUND_SHELL]: "Toggle current background shell visibility.",
594
+ [Command.TOGGLE_BACKGROUND_SHELL_LIST]: "Toggle background shell list.",
595
+ [Command.KILL_BACKGROUND_SHELL]: "Kill the active background shell.",
596
+ [Command.UNFOCUS_BACKGROUND_SHELL]: "Move focus from background shell to Gemini.",
597
+ [Command.UNFOCUS_BACKGROUND_SHELL_LIST]: "Move focus from background shell list to Gemini.",
598
+ [Command.SHOW_BACKGROUND_SHELL_UNFOCUS_WARNING]: "Show warning when trying to move focus away from background shell.",
599
+ // Extension Controls
600
+ [Command.UPDATE_EXTENSION]: "Update the current extension if available.",
601
+ [Command.LINK_EXTENSION]: "Link the current extension to a local path.",
602
+ [Command.DUMP_FRAME]: "Dump the current frame as a snapshot.",
603
+ [Command.START_RECORDING]: "Start recording the session.",
604
+ [Command.STOP_RECORDING]: "Stop recording the session.",
605
+ };
606
+ export const keybindingsSchema = z.array(z
607
+ .object({
608
+ command: z.string().transform((val, ctx) => {
609
+ const negate = val.startsWith("-");
610
+ const commandId = negate ? val.slice(1) : val;
611
+ const result = z.nativeEnum(Command).safeParse(commandId);
612
+ if (!result.success) {
613
+ ctx.addIssue({
614
+ code: z.ZodIssueCode.custom,
615
+ message: `Invalid command: "${val}".`,
616
+ });
617
+ return z.NEVER;
618
+ }
619
+ return {
620
+ command: result.data,
621
+ negate,
622
+ };
623
+ }),
624
+ key: z.string(),
625
+ })
626
+ .transform((val) => ({
627
+ commandEntry: val.command,
628
+ key: val.key,
629
+ })));
630
+ //# sourceMappingURL=keyBindings.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"keyBindings.js","sourceRoot":"","sources":["../../../src/cli/key/keyBindings.ts"],"names":[],"mappings":"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"}