@umsai/ums-code 0.0.13-v1 → 0.0.14-v1

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 (892) hide show
  1. package/dist/index.js +0 -9
  2. package/dist/index.js.map +1 -1
  3. package/dist/package.json +7 -10
  4. package/dist/src/acp/acp.d.ts +208 -0
  5. package/dist/src/{zed-integration → acp}/acp.js +45 -78
  6. package/dist/src/acp/acp.js.map +1 -0
  7. package/dist/src/acp/acpPeer.d.ts +8 -0
  8. package/dist/src/acp/acpPeer.js +537 -0
  9. package/dist/src/acp/acpPeer.js.map +1 -0
  10. package/dist/src/config/auth.js +12 -13
  11. package/dist/src/config/auth.js.map +1 -1
  12. package/dist/src/config/config.d.ts +9 -11
  13. package/dist/src/config/config.js +133 -257
  14. package/dist/src/config/config.js.map +1 -1
  15. package/dist/src/config/extension.d.ts +3 -41
  16. package/dist/src/config/extension.js +18 -277
  17. package/dist/src/config/extension.js.map +1 -1
  18. package/dist/src/config/sandboxConfig.d.ts +2 -2
  19. package/dist/src/config/sandboxConfig.js +10 -8
  20. package/dist/src/config/sandboxConfig.js.map +1 -1
  21. package/dist/src/config/settings.d.ts +69 -14
  22. package/dist/src/config/settings.js +94 -425
  23. package/dist/src/config/settings.js.map +1 -1
  24. package/dist/src/gemini.d.ts +1 -3
  25. package/dist/src/gemini.js +99 -118
  26. package/dist/src/gemini.js.map +1 -1
  27. package/dist/src/generated/git-commit.d.ts +1 -2
  28. package/dist/src/generated/git-commit.js +1 -2
  29. package/dist/src/generated/git-commit.js.map +1 -1
  30. package/dist/src/nonInteractiveCli.d.ts +1 -1
  31. package/dist/src/nonInteractiveCli.js +42 -26
  32. package/dist/src/nonInteractiveCli.js.map +1 -1
  33. package/dist/src/services/BuiltinCommandLoader.d.ts +4 -3
  34. package/dist/src/services/BuiltinCommandLoader.js +4 -15
  35. package/dist/src/services/BuiltinCommandLoader.js.map +1 -1
  36. package/dist/src/services/CommandService.d.ts +2 -2
  37. package/dist/src/services/FileCommandLoader.d.ts +3 -3
  38. package/dist/src/services/FileCommandLoader.js +19 -31
  39. package/dist/src/services/FileCommandLoader.js.map +1 -1
  40. package/dist/src/services/McpPromptLoader.d.ts +4 -14
  41. package/dist/src/services/McpPromptLoader.js +20 -46
  42. package/dist/src/services/McpPromptLoader.js.map +1 -1
  43. package/dist/src/services/prompt-processors/argumentProcessor.d.ts +10 -5
  44. package/dist/src/services/prompt-processors/argumentProcessor.js +12 -5
  45. package/dist/src/services/prompt-processors/argumentProcessor.js.map +1 -1
  46. package/dist/src/services/prompt-processors/shellProcessor.d.ts +16 -11
  47. package/dist/src/services/prompt-processors/shellProcessor.js +41 -85
  48. package/dist/src/services/prompt-processors/shellProcessor.js.map +1 -1
  49. package/dist/src/services/prompt-processors/types.d.ts +8 -15
  50. package/dist/src/services/prompt-processors/types.js +0 -6
  51. package/dist/src/services/prompt-processors/types.js.map +1 -1
  52. package/dist/src/services/types.d.ts +1 -1
  53. package/dist/src/ui/App.d.ts +2 -2
  54. package/dist/src/ui/App.js +70 -341
  55. package/dist/src/ui/App.js.map +1 -1
  56. package/dist/src/ui/colors.d.ts +1 -1
  57. package/dist/src/ui/commands/aboutCommand.d.ts +1 -1
  58. package/dist/src/ui/commands/aboutCommand.js +6 -10
  59. package/dist/src/ui/commands/aboutCommand.js.map +1 -1
  60. package/dist/src/ui/commands/authCommand.d.ts +1 -1
  61. package/dist/src/ui/commands/authCommand.js.map +1 -1
  62. package/dist/src/ui/commands/bugCommand.js +5 -13
  63. package/dist/src/ui/commands/bugCommand.js.map +1 -1
  64. package/dist/src/ui/commands/chatCommand.d.ts +1 -1
  65. package/dist/src/ui/commands/chatCommand.js +9 -27
  66. package/dist/src/ui/commands/chatCommand.js.map +1 -1
  67. package/dist/src/ui/commands/clearCommand.d.ts +1 -1
  68. package/dist/src/ui/commands/clearCommand.js +1 -0
  69. package/dist/src/ui/commands/clearCommand.js.map +1 -1
  70. package/dist/src/ui/commands/compressCommand.d.ts +1 -1
  71. package/dist/src/ui/commands/compressCommand.js +0 -2
  72. package/dist/src/ui/commands/compressCommand.js.map +1 -1
  73. package/dist/src/ui/commands/copyCommand.d.ts +1 -1
  74. package/dist/src/ui/commands/copyCommand.js +2 -2
  75. package/dist/src/ui/commands/copyCommand.js.map +1 -1
  76. package/dist/src/ui/commands/directoryCommand.d.ts +1 -1
  77. package/dist/src/ui/commands/directoryCommand.js +8 -7
  78. package/dist/src/ui/commands/directoryCommand.js.map +1 -1
  79. package/dist/src/ui/commands/docsCommand.js +1 -1
  80. package/dist/src/ui/commands/docsCommand.js.map +1 -1
  81. package/dist/src/ui/commands/helpCommand.d.ts +1 -1
  82. package/dist/src/ui/commands/helpCommand.js.map +1 -1
  83. package/dist/src/ui/commands/ideCommand.d.ts +2 -2
  84. package/dist/src/ui/commands/ideCommand.js +22 -92
  85. package/dist/src/ui/commands/ideCommand.js.map +1 -1
  86. package/dist/src/ui/commands/initCommand.d.ts +2 -2
  87. package/dist/src/ui/commands/initCommand.js +10 -20
  88. package/dist/src/ui/commands/initCommand.js.map +1 -1
  89. package/dist/src/ui/commands/mcpCommand.d.ts +1 -1
  90. package/dist/src/ui/commands/mcpCommand.js +8 -12
  91. package/dist/src/ui/commands/mcpCommand.js.map +1 -1
  92. package/dist/src/ui/commands/memoryCommand.d.ts +1 -1
  93. package/dist/src/ui/commands/memoryCommand.js +9 -143
  94. package/dist/src/ui/commands/memoryCommand.js.map +1 -1
  95. package/dist/src/ui/commands/privacyCommand.d.ts +1 -1
  96. package/dist/src/ui/commands/privacyCommand.js.map +1 -1
  97. package/dist/src/ui/commands/quitCommand.d.ts +0 -1
  98. package/dist/src/ui/commands/quitCommand.js +0 -25
  99. package/dist/src/ui/commands/quitCommand.js.map +1 -1
  100. package/dist/src/ui/commands/restoreCommand.d.ts +1 -1
  101. package/dist/src/ui/commands/restoreCommand.js +8 -4
  102. package/dist/src/ui/commands/restoreCommand.js.map +1 -1
  103. package/dist/src/ui/commands/setupGithubCommand.d.ts +1 -3
  104. package/dist/src/ui/commands/setupGithubCommand.js +27 -133
  105. package/dist/src/ui/commands/setupGithubCommand.js.map +1 -1
  106. package/dist/src/ui/commands/statsCommand.js.map +1 -1
  107. package/dist/src/ui/commands/themeCommand.d.ts +1 -1
  108. package/dist/src/ui/commands/themeCommand.js.map +1 -1
  109. package/dist/src/ui/commands/toolsCommand.js +1 -1
  110. package/dist/src/ui/commands/toolsCommand.js.map +1 -1
  111. package/dist/src/ui/commands/types.d.ts +11 -26
  112. package/dist/src/ui/commands/types.js +0 -1
  113. package/dist/src/ui/commands/types.js.map +1 -1
  114. package/dist/src/ui/commands/ums/umsInitCommand.d.ts +1 -1
  115. package/dist/src/ui/commands/ums/umsInitCommand.js +20 -54
  116. package/dist/src/ui/commands/ums/umsInitCommand.js.map +1 -1
  117. package/dist/src/ui/commands/vimCommand.d.ts +1 -1
  118. package/dist/src/ui/commands/vimCommand.js.map +1 -1
  119. package/dist/src/ui/components/AboutBox.d.ts +1 -2
  120. package/dist/src/ui/components/AboutBox.js +1 -1
  121. package/dist/src/ui/components/AboutBox.js.map +1 -1
  122. package/dist/src/ui/components/AsciiArt.d.ts +0 -1
  123. package/dist/src/ui/components/AsciiArt.js +0 -8
  124. package/dist/src/ui/components/AsciiArt.js.map +1 -1
  125. package/dist/src/ui/components/AuthDialog.d.ts +2 -2
  126. package/dist/src/ui/components/AuthDialog.js +22 -19
  127. package/dist/src/ui/components/AuthDialog.js.map +1 -1
  128. package/dist/src/ui/components/AuthInProgress.d.ts +1 -1
  129. package/dist/src/ui/components/AuthInProgress.js +10 -6
  130. package/dist/src/ui/components/AuthInProgress.js.map +1 -1
  131. package/dist/src/ui/components/AutoAcceptIndicator.d.ts +1 -1
  132. package/dist/src/ui/components/AutoAcceptIndicator.js +3 -8
  133. package/dist/src/ui/components/AutoAcceptIndicator.js.map +1 -1
  134. package/dist/src/ui/components/ConsoleSummaryDisplay.d.ts +1 -1
  135. package/dist/src/ui/components/ContextSummaryDisplay.d.ts +1 -1
  136. package/dist/src/ui/components/ContextSummaryDisplay.js +25 -23
  137. package/dist/src/ui/components/ContextSummaryDisplay.js.map +1 -1
  138. package/dist/src/ui/components/DebugProfiler.js +4 -5
  139. package/dist/src/ui/components/DebugProfiler.js.map +1 -1
  140. package/dist/src/ui/components/DetailedMessagesDisplay.d.ts +2 -2
  141. package/dist/src/ui/components/DetailedMessagesDisplay.js +1 -1
  142. package/dist/src/ui/components/DetailedMessagesDisplay.js.map +1 -1
  143. package/dist/src/ui/components/EditorSettingsDialog.d.ts +3 -4
  144. package/dist/src/ui/components/EditorSettingsDialog.js +16 -14
  145. package/dist/src/ui/components/EditorSettingsDialog.js.map +1 -1
  146. package/dist/src/ui/components/Footer.d.ts +1 -2
  147. package/dist/src/ui/components/Footer.js +6 -16
  148. package/dist/src/ui/components/Footer.js.map +1 -1
  149. package/dist/src/ui/components/GeminiRespondingSpinner.d.ts +1 -1
  150. package/dist/src/ui/components/GeminiRespondingSpinner.js +3 -5
  151. package/dist/src/ui/components/GeminiRespondingSpinner.js.map +1 -1
  152. package/dist/src/ui/components/Header.d.ts +2 -1
  153. package/dist/src/ui/components/Header.js +5 -13
  154. package/dist/src/ui/components/Header.js.map +1 -1
  155. package/dist/src/ui/components/Help.d.ts +2 -2
  156. package/dist/src/ui/components/Help.js +2 -2
  157. package/dist/src/ui/components/Help.js.map +1 -1
  158. package/dist/src/ui/components/HistoryItemDisplay.d.ts +5 -5
  159. package/dist/src/ui/components/HistoryItemDisplay.js +1 -5
  160. package/dist/src/ui/components/HistoryItemDisplay.js.map +1 -1
  161. package/dist/src/ui/components/IDEContextDetailDisplay.d.ts +12 -0
  162. package/dist/src/ui/components/IDEContextDetailDisplay.js +12 -0
  163. package/dist/src/ui/components/IDEContextDetailDisplay.js.map +1 -0
  164. package/dist/src/ui/components/InputPrompt.d.ts +5 -6
  165. package/dist/src/ui/components/InputPrompt.js +53 -238
  166. package/dist/src/ui/components/InputPrompt.js.map +1 -1
  167. package/dist/src/ui/components/LoadingIndicator.d.ts +2 -2
  168. package/dist/src/ui/components/LoadingIndicator.js +5 -10
  169. package/dist/src/ui/components/LoadingIndicator.js.map +1 -1
  170. package/dist/src/ui/components/MemoryUsageDisplay.d.ts +1 -1
  171. package/dist/src/ui/components/MemoryUsageDisplay.js +5 -0
  172. package/dist/src/ui/components/MemoryUsageDisplay.js.map +1 -1
  173. package/dist/src/ui/components/ModelStatsDisplay.d.ts +1 -1
  174. package/dist/src/ui/components/ModelStatsDisplay.js.map +1 -1
  175. package/dist/src/ui/components/OpenAIKeyPrompt.d.ts +1 -1
  176. package/dist/src/ui/components/OpenAIKeyPrompt.js +5 -0
  177. package/dist/src/ui/components/OpenAIKeyPrompt.js.map +1 -1
  178. package/dist/src/ui/components/PrepareLabel.d.ts +1 -1
  179. package/dist/src/ui/components/QwenOAuthProgress.d.ts +2 -2
  180. package/dist/src/ui/components/QwenOAuthProgress.js +5 -0
  181. package/dist/src/ui/components/QwenOAuthProgress.js.map +1 -1
  182. package/dist/src/ui/components/SessionSummaryDisplay.d.ts +1 -1
  183. package/dist/src/ui/components/ShellConfirmationDialog.d.ts +1 -1
  184. package/dist/src/ui/components/ShellConfirmationDialog.js +6 -8
  185. package/dist/src/ui/components/ShellConfirmationDialog.js.map +1 -1
  186. package/dist/src/ui/components/ShellModeIndicator.d.ts +1 -1
  187. package/dist/src/ui/components/StatsDisplay.d.ts +1 -1
  188. package/dist/src/ui/components/StatsDisplay.js +8 -9
  189. package/dist/src/ui/components/StatsDisplay.js.map +1 -1
  190. package/dist/src/ui/components/SuggestionsDisplay.js +4 -12
  191. package/dist/src/ui/components/SuggestionsDisplay.js.map +1 -1
  192. package/dist/src/ui/components/ThemeDialog.d.ts +2 -3
  193. package/dist/src/ui/components/ThemeDialog.js +29 -14
  194. package/dist/src/ui/components/ThemeDialog.js.map +1 -1
  195. package/dist/src/ui/components/Tips.d.ts +1 -1
  196. package/dist/src/ui/components/Tips.js +0 -1
  197. package/dist/src/ui/components/Tips.js.map +1 -1
  198. package/dist/src/ui/components/ToolStatsDisplay.d.ts +1 -1
  199. package/dist/src/ui/components/messages/CompressionMessage.d.ts +2 -2
  200. package/dist/src/ui/components/messages/CompressionMessage.js +1 -2
  201. package/dist/src/ui/components/messages/CompressionMessage.js.map +1 -1
  202. package/dist/src/ui/components/messages/DiffRenderer.d.ts +1 -1
  203. package/dist/src/ui/components/messages/DiffRenderer.js +3 -16
  204. package/dist/src/ui/components/messages/DiffRenderer.js.map +1 -1
  205. package/dist/src/ui/components/messages/ErrorMessage.d.ts +1 -1
  206. package/dist/src/ui/components/messages/GeminiMessage.d.ts +1 -1
  207. package/dist/src/ui/components/messages/GeminiMessage.js +1 -2
  208. package/dist/src/ui/components/messages/GeminiMessage.js.map +1 -1
  209. package/dist/src/ui/components/messages/GeminiMessageContent.d.ts +1 -1
  210. package/dist/src/ui/components/messages/InfoMessage.d.ts +1 -1
  211. package/dist/src/ui/components/messages/InfoMessage.js +1 -6
  212. package/dist/src/ui/components/messages/InfoMessage.js.map +1 -1
  213. package/dist/src/ui/components/messages/ToolConfirmationMessage.d.ts +3 -4
  214. package/dist/src/ui/components/messages/ToolConfirmationMessage.js +35 -111
  215. package/dist/src/ui/components/messages/ToolConfirmationMessage.js.map +1 -1
  216. package/dist/src/ui/components/messages/ToolGroupMessage.d.ts +4 -4
  217. package/dist/src/ui/components/messages/ToolGroupMessage.js +7 -2
  218. package/dist/src/ui/components/messages/ToolGroupMessage.js.map +1 -1
  219. package/dist/src/ui/components/messages/ToolMessage.d.ts +1 -3
  220. package/dist/src/ui/components/messages/ToolMessage.js +11 -88
  221. package/dist/src/ui/components/messages/ToolMessage.js.map +1 -1
  222. package/dist/src/ui/components/messages/UserMessage.d.ts +1 -1
  223. package/dist/src/ui/components/messages/UserMessage.js +2 -4
  224. package/dist/src/ui/components/messages/UserMessage.js.map +1 -1
  225. package/dist/src/ui/components/messages/UserShellMessage.d.ts +1 -1
  226. package/dist/src/ui/components/shared/MaxSizedBox.js +1 -1
  227. package/dist/src/ui/components/shared/MaxSizedBox.js.map +1 -1
  228. package/dist/src/ui/components/shared/RadioButtonSelect.d.ts +1 -1
  229. package/dist/src/ui/components/shared/RadioButtonSelect.js +15 -12
  230. package/dist/src/ui/components/shared/RadioButtonSelect.js.map +1 -1
  231. package/dist/src/ui/components/shared/text-buffer.d.ts +4 -17
  232. package/dist/src/ui/components/shared/text-buffer.js +97 -235
  233. package/dist/src/ui/components/shared/text-buffer.js.map +1 -1
  234. package/dist/src/ui/components/shared/vim-buffer-actions.d.ts +1 -1
  235. package/dist/src/ui/components/shared/vim-buffer-actions.js +152 -139
  236. package/dist/src/ui/components/shared/vim-buffer-actions.js.map +1 -1
  237. package/dist/src/ui/components/ums/UMSKeyPrompt.js +4 -4
  238. package/dist/src/ui/components/ums/UMSKeyPrompt.js.map +1 -1
  239. package/dist/src/ui/components/ums/useUMSAuth.d.ts +1 -1
  240. package/dist/src/ui/components/ums/useUMSAuth.js +1 -1
  241. package/dist/src/ui/components/ums/useUMSAuth.js.map +1 -1
  242. package/dist/src/ui/constants.d.ts +0 -8
  243. package/dist/src/ui/constants.js +0 -9
  244. package/dist/src/ui/constants.js.map +1 -1
  245. package/dist/src/ui/contexts/OverflowContext.d.ts +1 -1
  246. package/dist/src/ui/contexts/OverflowContext.js +5 -0
  247. package/dist/src/ui/contexts/OverflowContext.js.map +1 -1
  248. package/dist/src/ui/contexts/SessionContext.d.ts +3 -5
  249. package/dist/src/ui/contexts/SessionContext.js +16 -3
  250. package/dist/src/ui/contexts/SessionContext.js.map +1 -1
  251. package/dist/src/ui/contexts/StreamingContext.d.ts +1 -1
  252. package/dist/src/ui/contexts/VimModeContext.d.ts +1 -1
  253. package/dist/src/ui/contexts/VimModeContext.js +4 -4
  254. package/dist/src/ui/contexts/VimModeContext.js.map +1 -1
  255. package/dist/src/ui/hooks/atCommandProcessor.d.ts +3 -3
  256. package/dist/src/ui/hooks/atCommandProcessor.js +20 -20
  257. package/dist/src/ui/hooks/atCommandProcessor.js.map +1 -1
  258. package/dist/src/ui/hooks/shellCommandProcessor.d.ts +3 -3
  259. package/dist/src/ui/hooks/shellCommandProcessor.js +19 -15
  260. package/dist/src/ui/hooks/shellCommandProcessor.js.map +1 -1
  261. package/dist/src/ui/hooks/slashCommandProcessor.d.ts +6 -14
  262. package/dist/src/ui/hooks/slashCommandProcessor.js +65 -243
  263. package/dist/src/ui/hooks/slashCommandProcessor.js.map +1 -1
  264. package/dist/src/ui/hooks/useAtCompletion.d.ts +2 -2
  265. package/dist/src/ui/hooks/useAtCompletion.js +4 -6
  266. package/dist/src/ui/hooks/useAtCompletion.js.map +1 -1
  267. package/dist/src/ui/hooks/useAuthCommand.d.ts +2 -2
  268. package/dist/src/ui/hooks/useAuthCommand.js +4 -5
  269. package/dist/src/ui/hooks/useAuthCommand.js.map +1 -1
  270. package/dist/src/ui/hooks/useAutoAcceptIndicator.d.ts +2 -4
  271. package/dist/src/ui/hooks/useAutoAcceptIndicator.js +19 -20
  272. package/dist/src/ui/hooks/useAutoAcceptIndicator.js.map +1 -1
  273. package/dist/src/ui/hooks/useCommandCompletion.d.ts +5 -8
  274. package/dist/src/ui/hooks/useCommandCompletion.js +9 -30
  275. package/dist/src/ui/hooks/useCommandCompletion.js.map +1 -1
  276. package/dist/src/ui/hooks/useCompletion.d.ts +1 -1
  277. package/dist/src/ui/hooks/useCompletion.js +1 -1
  278. package/dist/src/ui/hooks/useCompletion.js.map +1 -1
  279. package/dist/src/ui/hooks/useConsoleMessages.d.ts +1 -1
  280. package/dist/src/ui/hooks/useEditorSettings.d.ts +2 -2
  281. package/dist/src/ui/hooks/useEditorSettings.js.map +1 -1
  282. package/dist/src/ui/hooks/useFocus.d.ts +0 -4
  283. package/dist/src/ui/hooks/useFocus.js +4 -4
  284. package/dist/src/ui/hooks/useFocus.js.map +1 -1
  285. package/dist/src/ui/hooks/useGeminiStream.d.ts +5 -10
  286. package/dist/src/ui/hooks/useGeminiStream.js +71 -118
  287. package/dist/src/ui/hooks/useGeminiStream.js.map +1 -1
  288. package/dist/src/ui/hooks/useGitBranchName.js +1 -1
  289. package/dist/src/ui/hooks/useGitBranchName.js.map +1 -1
  290. package/dist/src/ui/hooks/useHistoryManager.d.ts +1 -1
  291. package/dist/src/ui/hooks/useKeypress.d.ts +16 -4
  292. package/dist/src/ui/hooks/useKeypress.js +140 -8
  293. package/dist/src/ui/hooks/useKeypress.js.map +1 -1
  294. package/dist/src/ui/hooks/useLogger.d.ts +1 -2
  295. package/dist/src/ui/hooks/useLogger.js +3 -3
  296. package/dist/src/ui/hooks/useLogger.js.map +1 -1
  297. package/dist/src/ui/hooks/usePhraseCycler.js +2 -2
  298. package/dist/src/ui/hooks/usePhraseCycler.js.map +1 -1
  299. package/dist/src/ui/hooks/usePrivacySettings.d.ts +1 -1
  300. package/dist/src/ui/hooks/usePrivacySettings.js +2 -6
  301. package/dist/src/ui/hooks/usePrivacySettings.js.map +1 -1
  302. package/dist/src/ui/hooks/useQwenAuth.d.ts +1 -1
  303. package/dist/src/ui/hooks/useQwenAuth.js +1 -1
  304. package/dist/src/ui/hooks/useQwenAuth.js.map +1 -1
  305. package/dist/src/ui/hooks/useReactToolScheduler.d.ts +3 -3
  306. package/dist/src/ui/hooks/useReactToolScheduler.js +18 -17
  307. package/dist/src/ui/hooks/useReactToolScheduler.js.map +1 -1
  308. package/dist/src/ui/hooks/useReverseSearchCompletion.d.ts +2 -2
  309. package/dist/src/ui/hooks/useShellHistory.d.ts +1 -2
  310. package/dist/src/ui/hooks/useShellHistory.js +10 -9
  311. package/dist/src/ui/hooks/useShellHistory.js.map +1 -1
  312. package/dist/src/ui/hooks/useShowMemoryCommand.d.ts +3 -3
  313. package/dist/src/ui/hooks/useShowMemoryCommand.js +1 -1
  314. package/dist/src/ui/hooks/useShowMemoryCommand.js.map +1 -1
  315. package/dist/src/ui/hooks/useSlashCompletion.d.ts +2 -2
  316. package/dist/src/ui/hooks/useThemeCommand.d.ts +1 -1
  317. package/dist/src/ui/hooks/useThemeCommand.js +9 -9
  318. package/dist/src/ui/hooks/useThemeCommand.js.map +1 -1
  319. package/dist/src/ui/privacy/CloudFreePrivacyNotice.d.ts +1 -1
  320. package/dist/src/ui/privacy/CloudFreePrivacyNotice.js +4 -5
  321. package/dist/src/ui/privacy/CloudFreePrivacyNotice.js.map +1 -1
  322. package/dist/src/ui/privacy/CloudPaidPrivacyNotice.js +4 -5
  323. package/dist/src/ui/privacy/CloudPaidPrivacyNotice.js.map +1 -1
  324. package/dist/src/ui/privacy/GeminiPrivacyNotice.js +4 -5
  325. package/dist/src/ui/privacy/GeminiPrivacyNotice.js.map +1 -1
  326. package/dist/src/ui/themes/ansi-light.js +1 -2
  327. package/dist/src/ui/themes/ansi-light.js.map +1 -1
  328. package/dist/src/ui/themes/ansi.js +1 -2
  329. package/dist/src/ui/themes/ansi.js.map +1 -1
  330. package/dist/src/ui/themes/googlecode.js +1 -1
  331. package/dist/src/ui/themes/googlecode.js.map +1 -1
  332. package/dist/src/ui/themes/no-color.js +1 -30
  333. package/dist/src/ui/themes/no-color.js.map +1 -1
  334. package/dist/src/ui/themes/qwen-dark.js +1 -2
  335. package/dist/src/ui/themes/qwen-dark.js.map +1 -1
  336. package/dist/src/ui/themes/qwen-light.js +1 -2
  337. package/dist/src/ui/themes/qwen-light.js.map +1 -1
  338. package/dist/src/ui/themes/theme-manager.d.ts +1 -9
  339. package/dist/src/ui/themes/theme-manager.js +7 -81
  340. package/dist/src/ui/themes/theme-manager.js.map +1 -1
  341. package/dist/src/ui/themes/theme.d.ts +2 -45
  342. package/dist/src/ui/themes/theme.js +107 -120
  343. package/dist/src/ui/themes/theme.js.map +1 -1
  344. package/dist/src/ui/types.d.ts +6 -34
  345. package/dist/src/ui/types.js +0 -2
  346. package/dist/src/ui/types.js.map +1 -1
  347. package/dist/src/ui/utils/CodeColorizer.d.ts +2 -3
  348. package/dist/src/ui/utils/CodeColorizer.js +4 -5
  349. package/dist/src/ui/utils/CodeColorizer.js.map +1 -1
  350. package/dist/src/ui/utils/ConsolePatcher.d.ts +1 -2
  351. package/dist/src/ui/utils/ConsolePatcher.js +1 -4
  352. package/dist/src/ui/utils/ConsolePatcher.js.map +1 -1
  353. package/dist/src/ui/utils/InlineMarkdownRenderer.js +1 -8
  354. package/dist/src/ui/utils/InlineMarkdownRenderer.js.map +1 -1
  355. package/dist/src/ui/utils/MarkdownDisplay.js +3 -5
  356. package/dist/src/ui/utils/MarkdownDisplay.js.map +1 -1
  357. package/dist/src/ui/utils/clipboardUtils.js +4 -4
  358. package/dist/src/ui/utils/clipboardUtils.js.map +1 -1
  359. package/dist/src/ui/utils/commandUtils.d.ts +1 -2
  360. package/dist/src/ui/utils/commandUtils.js +15 -74
  361. package/dist/src/ui/utils/commandUtils.js.map +1 -1
  362. package/dist/src/ui/utils/computeStats.d.ts +1 -1
  363. package/dist/src/ui/utils/computeStats.js +1 -3
  364. package/dist/src/ui/utils/computeStats.js.map +1 -1
  365. package/dist/src/ui/utils/errorParsing.d.ts +7 -0
  366. package/dist/src/ui/utils/errorParsing.js +90 -0
  367. package/dist/src/ui/utils/errorParsing.js.map +1 -0
  368. package/dist/src/ui/utils/textUtils.d.ts +0 -18
  369. package/dist/src/ui/utils/textUtils.js +0 -44
  370. package/dist/src/ui/utils/textUtils.js.map +1 -1
  371. package/dist/src/ui/utils/updateCheck.d.ts +2 -2
  372. package/dist/src/ui/utils/updateCheck.js +2 -2
  373. package/dist/src/ui/utils/updateCheck.js.map +1 -1
  374. package/dist/src/utils/cleanup.d.ts +2 -2
  375. package/dist/src/utils/cleanup.js +6 -7
  376. package/dist/src/utils/cleanup.js.map +1 -1
  377. package/dist/src/utils/events.d.ts +1 -1
  378. package/dist/src/utils/events.js +1 -1
  379. package/dist/src/utils/events.js.map +1 -1
  380. package/dist/src/utils/gitUtils.d.ts +1 -21
  381. package/dist/src/utils/gitUtils.js +4 -69
  382. package/dist/src/utils/gitUtils.js.map +1 -1
  383. package/dist/src/utils/handleAutoUpdate.d.ts +4 -4
  384. package/dist/src/utils/handleAutoUpdate.js +3 -4
  385. package/dist/src/utils/handleAutoUpdate.js.map +1 -1
  386. package/dist/src/utils/installationInfo.js +3 -3
  387. package/dist/src/utils/installationInfo.js.map +1 -1
  388. package/dist/src/utils/package.js +2 -2
  389. package/dist/src/utils/package.js.map +1 -1
  390. package/dist/src/utils/readStdin.js +0 -25
  391. package/dist/src/utils/readStdin.js.map +1 -1
  392. package/dist/src/utils/resolvePath.js +2 -2
  393. package/dist/src/utils/resolvePath.js.map +1 -1
  394. package/dist/src/utils/sandbox.d.ts +2 -2
  395. package/dist/src/utils/sandbox.js +444 -460
  396. package/dist/src/utils/sandbox.js.map +1 -1
  397. package/dist/src/utils/spawnWrapper.d.ts +1 -1
  398. package/dist/src/utils/spawnWrapper.js +1 -1
  399. package/dist/src/utils/spawnWrapper.js.map +1 -1
  400. package/dist/src/utils/startupWarnings.js +2 -2
  401. package/dist/src/utils/startupWarnings.js.map +1 -1
  402. package/dist/src/utils/updateEventEmitter.d.ts +1 -1
  403. package/dist/src/utils/updateEventEmitter.js +1 -1
  404. package/dist/src/utils/updateEventEmitter.js.map +1 -1
  405. package/dist/src/utils/userStartupWarnings.js +3 -3
  406. package/dist/src/utils/userStartupWarnings.js.map +1 -1
  407. package/dist/src/utils/version.js +1 -1
  408. package/dist/src/utils/version.js.map +1 -1
  409. package/dist/src/validateNonInterActiveAuth.d.ts +1 -1
  410. package/dist/src/validateNonInterActiveAuth.js +7 -4
  411. package/dist/src/validateNonInterActiveAuth.js.map +1 -1
  412. package/dist/tsconfig.tsbuildinfo +1 -1
  413. package/package.json +7 -10
  414. package/dist/src/commands/extensions/disable.d.ts +0 -14
  415. package/dist/src/commands/extensions/disable.js +0 -42
  416. package/dist/src/commands/extensions/disable.js.map +0 -1
  417. package/dist/src/commands/extensions/enable.d.ts +0 -14
  418. package/dist/src/commands/extensions/enable.js +0 -48
  419. package/dist/src/commands/extensions/enable.js.map +0 -1
  420. package/dist/src/commands/extensions/install.d.ts +0 -13
  421. package/dist/src/commands/extensions/install.js +0 -48
  422. package/dist/src/commands/extensions/install.js.map +0 -1
  423. package/dist/src/commands/extensions/install.test.d.ts +0 -6
  424. package/dist/src/commands/extensions/install.test.js +0 -25
  425. package/dist/src/commands/extensions/install.test.js.map +0 -1
  426. package/dist/src/commands/extensions/list.d.ts +0 -8
  427. package/dist/src/commands/extensions/list.js +0 -32
  428. package/dist/src/commands/extensions/list.js.map +0 -1
  429. package/dist/src/commands/extensions/uninstall.d.ts +0 -12
  430. package/dist/src/commands/extensions/uninstall.js +0 -38
  431. package/dist/src/commands/extensions/uninstall.js.map +0 -1
  432. package/dist/src/commands/extensions/uninstall.test.d.ts +0 -6
  433. package/dist/src/commands/extensions/uninstall.test.js +0 -18
  434. package/dist/src/commands/extensions/uninstall.test.js.map +0 -1
  435. package/dist/src/commands/extensions/update.d.ts +0 -12
  436. package/dist/src/commands/extensions/update.js +0 -38
  437. package/dist/src/commands/extensions/update.js.map +0 -1
  438. package/dist/src/commands/extensions.d.ts +0 -7
  439. package/dist/src/commands/extensions.js +0 -29
  440. package/dist/src/commands/extensions.js.map +0 -1
  441. package/dist/src/commands/mcp/add.d.ts +0 -7
  442. package/dist/src/commands/mcp/add.js +0 -167
  443. package/dist/src/commands/mcp/add.js.map +0 -1
  444. package/dist/src/commands/mcp/list.d.ts +0 -8
  445. package/dist/src/commands/mcp/list.js +0 -110
  446. package/dist/src/commands/mcp/list.js.map +0 -1
  447. package/dist/src/commands/mcp/remove.d.ts +0 -7
  448. package/dist/src/commands/mcp/remove.js +0 -44
  449. package/dist/src/commands/mcp/remove.js.map +0 -1
  450. package/dist/src/commands/mcp.d.ts +0 -7
  451. package/dist/src/commands/mcp.js +0 -23
  452. package/dist/src/commands/mcp.js.map +0 -1
  453. package/dist/src/config/auth.test.d.ts +0 -6
  454. package/dist/src/config/auth.test.js +0 -57
  455. package/dist/src/config/auth.test.js.map +0 -1
  456. package/dist/src/config/extensions/variableSchema.d.ts +0 -28
  457. package/dist/src/config/extensions/variableSchema.js +0 -18
  458. package/dist/src/config/extensions/variableSchema.js.map +0 -1
  459. package/dist/src/config/extensions/variables.d.ts +0 -17
  460. package/dist/src/config/extensions/variables.js +0 -40
  461. package/dist/src/config/extensions/variables.js.map +0 -1
  462. package/dist/src/config/extensions/variables.test.d.ts +0 -6
  463. package/dist/src/config/extensions/variables.test.js +0 -17
  464. package/dist/src/config/extensions/variables.test.js.map +0 -1
  465. package/dist/src/config/keyBindings.d.ts +0 -66
  466. package/dist/src/config/keyBindings.js +0 -141
  467. package/dist/src/config/keyBindings.js.map +0 -1
  468. package/dist/src/config/keyBindings.test.d.ts +0 -6
  469. package/dist/src/config/keyBindings.test.js +0 -51
  470. package/dist/src/config/keyBindings.test.js.map +0 -1
  471. package/dist/src/config/settingsSchema.d.ts +0 -884
  472. package/dist/src/config/settingsSchema.js +0 -857
  473. package/dist/src/config/settingsSchema.js.map +0 -1
  474. package/dist/src/config/settingsSchema.test.d.ts +0 -6
  475. package/dist/src/config/settingsSchema.test.js +0 -194
  476. package/dist/src/config/settingsSchema.test.js.map +0 -1
  477. package/dist/src/config/trustedFolders.d.ts +0 -37
  478. package/dist/src/config/trustedFolders.js +0 -118
  479. package/dist/src/config/trustedFolders.js.map +0 -1
  480. package/dist/src/config/trustedFolders.test.d.ts +0 -6
  481. package/dist/src/config/trustedFolders.test.js +0 -164
  482. package/dist/src/config/trustedFolders.test.js.map +0 -1
  483. package/dist/src/gemini.test.d.ts +0 -6
  484. package/dist/src/gemini.test.js +0 -247
  485. package/dist/src/gemini.test.js.map +0 -1
  486. package/dist/src/services/BuiltinCommandLoader.test.d.ts +0 -6
  487. package/dist/src/services/BuiltinCommandLoader.test.js +0 -130
  488. package/dist/src/services/BuiltinCommandLoader.test.js.map +0 -1
  489. package/dist/src/services/CommandService.test.d.ts +0 -6
  490. package/dist/src/services/CommandService.test.js +0 -233
  491. package/dist/src/services/CommandService.test.js.map +0 -1
  492. package/dist/src/services/McpPromptLoader.test.d.ts +0 -6
  493. package/dist/src/services/McpPromptLoader.test.js +0 -114
  494. package/dist/src/services/McpPromptLoader.test.js.map +0 -1
  495. package/dist/src/services/prompt-processors/atFileProcessor.d.ts +0 -12
  496. package/dist/src/services/prompt-processors/atFileProcessor.js +0 -62
  497. package/dist/src/services/prompt-processors/atFileProcessor.js.map +0 -1
  498. package/dist/src/services/prompt-processors/atFileProcessor.test.d.ts +0 -6
  499. package/dist/src/services/prompt-processors/atFileProcessor.test.js +0 -174
  500. package/dist/src/services/prompt-processors/atFileProcessor.test.js.map +0 -1
  501. package/dist/src/services/prompt-processors/injectionParser.d.ts +0 -29
  502. package/dist/src/services/prompt-processors/injectionParser.js +0 -60
  503. package/dist/src/services/prompt-processors/injectionParser.js.map +0 -1
  504. package/dist/src/services/prompt-processors/injectionParser.test.d.ts +0 -6
  505. package/dist/src/services/prompt-processors/injectionParser.test.js +0 -189
  506. package/dist/src/services/prompt-processors/injectionParser.test.js.map +0 -1
  507. package/dist/src/test-utils/customMatchers.d.ts +0 -14
  508. package/dist/src/test-utils/customMatchers.js +0 -40
  509. package/dist/src/test-utils/customMatchers.js.map +0 -1
  510. package/dist/src/test-utils/mockCommandContext.d.ts +0 -18
  511. package/dist/src/test-utils/mockCommandContext.js +0 -90
  512. package/dist/src/test-utils/mockCommandContext.js.map +0 -1
  513. package/dist/src/test-utils/mockCommandContext.test.d.ts +0 -6
  514. package/dist/src/test-utils/mockCommandContext.test.js +0 -51
  515. package/dist/src/test-utils/mockCommandContext.test.js.map +0 -1
  516. package/dist/src/test-utils/render.d.ts +0 -8
  517. package/dist/src/test-utils/render.js +0 -10
  518. package/dist/src/test-utils/render.js.map +0 -1
  519. package/dist/src/ui/IdeIntegrationNudge.d.ts +0 -16
  520. package/dist/src/ui/IdeIntegrationNudge.js +0 -52
  521. package/dist/src/ui/IdeIntegrationNudge.js.map +0 -1
  522. package/dist/src/ui/commands/agentsCommand.d.ts +0 -7
  523. package/dist/src/ui/commands/agentsCommand.js +0 -32
  524. package/dist/src/ui/commands/agentsCommand.js.map +0 -1
  525. package/dist/src/ui/commands/approvalModeCommand.d.ts +0 -7
  526. package/dist/src/ui/commands/approvalModeCommand.js +0 -340
  527. package/dist/src/ui/commands/approvalModeCommand.js.map +0 -1
  528. package/dist/src/ui/commands/approvalModeCommand.test.d.ts +0 -6
  529. package/dist/src/ui/commands/approvalModeCommand.test.js +0 -293
  530. package/dist/src/ui/commands/approvalModeCommand.test.js.map +0 -1
  531. package/dist/src/ui/commands/modelCommand.d.ts +0 -7
  532. package/dist/src/ui/commands/modelCommand.js +0 -68
  533. package/dist/src/ui/commands/modelCommand.js.map +0 -1
  534. package/dist/src/ui/commands/modelCommand.test.d.ts +0 -6
  535. package/dist/src/ui/commands/modelCommand.test.js +0 -138
  536. package/dist/src/ui/commands/modelCommand.test.js.map +0 -1
  537. package/dist/src/ui/commands/settingsCommand.d.ts +0 -7
  538. package/dist/src/ui/commands/settingsCommand.js +0 -16
  539. package/dist/src/ui/commands/settingsCommand.js.map +0 -1
  540. package/dist/src/ui/commands/setupGithubCommand.test.d.ts +0 -6
  541. package/dist/src/ui/commands/setupGithubCommand.test.js +0 -167
  542. package/dist/src/ui/commands/setupGithubCommand.test.js.map +0 -1
  543. package/dist/src/ui/commands/summaryCommand.d.ts +0 -7
  544. package/dist/src/ui/commands/summaryCommand.js +0 -149
  545. package/dist/src/ui/commands/summaryCommand.js.map +0 -1
  546. package/dist/src/ui/commands/terminalSetupCommand.d.ts +0 -13
  547. package/dist/src/ui/commands/terminalSetupCommand.js +0 -41
  548. package/dist/src/ui/commands/terminalSetupCommand.js.map +0 -1
  549. package/dist/src/ui/components/AuthDialog.test.d.ts +0 -6
  550. package/dist/src/ui/components/AuthDialog.test.js +0 -280
  551. package/dist/src/ui/components/AuthDialog.test.js.map +0 -1
  552. package/dist/src/ui/components/ContextUsageDisplay.d.ts +0 -9
  553. package/dist/src/ui/components/ContextUsageDisplay.js +0 -14
  554. package/dist/src/ui/components/ContextUsageDisplay.js.map +0 -1
  555. package/dist/src/ui/components/FolderTrustDialog.d.ts +0 -17
  556. package/dist/src/ui/components/FolderTrustDialog.js +0 -45
  557. package/dist/src/ui/components/FolderTrustDialog.js.map +0 -1
  558. package/dist/src/ui/components/FolderTrustDialog.test.d.ts +0 -6
  559. package/dist/src/ui/components/FolderTrustDialog.test.js +0 -63
  560. package/dist/src/ui/components/FolderTrustDialog.test.js.map +0 -1
  561. package/dist/src/ui/components/Header.test.d.ts +0 -6
  562. package/dist/src/ui/components/Header.test.js +0 -37
  563. package/dist/src/ui/components/Header.test.js.map +0 -1
  564. package/dist/src/ui/components/HistoryItemDisplay.test.d.ts +0 -6
  565. package/dist/src/ui/components/HistoryItemDisplay.test.js +0 -93
  566. package/dist/src/ui/components/HistoryItemDisplay.test.js.map +0 -1
  567. package/dist/src/ui/components/LoadingIndicator.test.d.ts +0 -6
  568. package/dist/src/ui/components/LoadingIndicator.test.js +0 -190
  569. package/dist/src/ui/components/LoadingIndicator.test.js.map +0 -1
  570. package/dist/src/ui/components/ModelSelectionDialog.d.ts +0 -14
  571. package/dist/src/ui/components/ModelSelectionDialog.js +0 -26
  572. package/dist/src/ui/components/ModelSelectionDialog.js.map +0 -1
  573. package/dist/src/ui/components/ModelSelectionDialog.test.d.ts +0 -6
  574. package/dist/src/ui/components/ModelSelectionDialog.test.js +0 -124
  575. package/dist/src/ui/components/ModelSelectionDialog.test.js.map +0 -1
  576. package/dist/src/ui/components/ModelSwitchDialog.d.ts +0 -15
  577. package/dist/src/ui/components/ModelSwitchDialog.js +0 -37
  578. package/dist/src/ui/components/ModelSwitchDialog.js.map +0 -1
  579. package/dist/src/ui/components/ModelSwitchDialog.test.d.ts +0 -6
  580. package/dist/src/ui/components/ModelSwitchDialog.test.js +0 -125
  581. package/dist/src/ui/components/ModelSwitchDialog.test.js.map +0 -1
  582. package/dist/src/ui/components/OpenAIKeyPrompt.test.d.ts +0 -6
  583. package/dist/src/ui/components/OpenAIKeyPrompt.test.js +0 -44
  584. package/dist/src/ui/components/OpenAIKeyPrompt.test.js.map +0 -1
  585. package/dist/src/ui/components/PlanSummaryDisplay.d.ts +0 -14
  586. package/dist/src/ui/components/PlanSummaryDisplay.js +0 -9
  587. package/dist/src/ui/components/PlanSummaryDisplay.js.map +0 -1
  588. package/dist/src/ui/components/QuitConfirmationDialog.d.ts +0 -17
  589. package/dist/src/ui/components/QuitConfirmationDialog.js +0 -44
  590. package/dist/src/ui/components/QuitConfirmationDialog.js.map +0 -1
  591. package/dist/src/ui/components/QwenOAuthProgress.test.d.ts +0 -6
  592. package/dist/src/ui/components/QwenOAuthProgress.test.js +0 -292
  593. package/dist/src/ui/components/QwenOAuthProgress.test.js.map +0 -1
  594. package/dist/src/ui/components/SettingsDialog.d.ts +0 -15
  595. package/dist/src/ui/components/SettingsDialog.js +0 -550
  596. package/dist/src/ui/components/SettingsDialog.js.map +0 -1
  597. package/dist/src/ui/components/SettingsDialog.test.d.ts +0 -6
  598. package/dist/src/ui/components/SettingsDialog.test.js +0 -646
  599. package/dist/src/ui/components/SettingsDialog.test.js.map +0 -1
  600. package/dist/src/ui/components/ShellConfirmationDialog.test.d.ts +0 -6
  601. package/dist/src/ui/components/ShellConfirmationDialog.test.js +0 -40
  602. package/dist/src/ui/components/ShellConfirmationDialog.test.js.map +0 -1
  603. package/dist/src/ui/components/TodoDisplay.d.ts +0 -16
  604. package/dist/src/ui/components/TodoDisplay.js +0 -27
  605. package/dist/src/ui/components/TodoDisplay.js.map +0 -1
  606. package/dist/src/ui/components/TodoDisplay.test.d.ts +0 -6
  607. package/dist/src/ui/components/TodoDisplay.test.js +0 -77
  608. package/dist/src/ui/components/TodoDisplay.test.js.map +0 -1
  609. package/dist/src/ui/components/WelcomeBackDialog.d.ts +0 -13
  610. package/dist/src/ui/components/WelcomeBackDialog.js +0 -32
  611. package/dist/src/ui/components/WelcomeBackDialog.js.map +0 -1
  612. package/dist/src/ui/components/WorkspaceMigrationDialog.d.ts +0 -11
  613. package/dist/src/ui/components/WorkspaceMigrationDialog.js +0 -42
  614. package/dist/src/ui/components/WorkspaceMigrationDialog.js.map +0 -1
  615. package/dist/src/ui/components/messages/DiffRenderer.test.d.ts +0 -6
  616. package/dist/src/ui/components/messages/DiffRenderer.test.js +0 -239
  617. package/dist/src/ui/components/messages/DiffRenderer.test.js.map +0 -1
  618. package/dist/src/ui/components/messages/SummaryMessage.d.ts +0 -11
  619. package/dist/src/ui/components/messages/SummaryMessage.js +0 -35
  620. package/dist/src/ui/components/messages/SummaryMessage.js.map +0 -1
  621. package/dist/src/ui/components/messages/ToolConfirmationMessage.test.d.ts +0 -6
  622. package/dist/src/ui/components/messages/ToolConfirmationMessage.test.js +0 -137
  623. package/dist/src/ui/components/messages/ToolConfirmationMessage.test.js.map +0 -1
  624. package/dist/src/ui/components/messages/ToolGroupMessage.test.d.ts +0 -6
  625. package/dist/src/ui/components/messages/ToolGroupMessage.test.js +0 -259
  626. package/dist/src/ui/components/messages/ToolGroupMessage.test.js.map +0 -1
  627. package/dist/src/ui/components/messages/ToolMessage.test.d.ts +0 -6
  628. package/dist/src/ui/components/messages/ToolMessage.test.js +0 -149
  629. package/dist/src/ui/components/messages/ToolMessage.test.js.map +0 -1
  630. package/dist/src/ui/components/shared/MaxSizedBox.test.d.ts +0 -6
  631. package/dist/src/ui/components/shared/MaxSizedBox.test.js +0 -154
  632. package/dist/src/ui/components/shared/MaxSizedBox.test.js.map +0 -1
  633. package/dist/src/ui/components/shared/RadioButtonSelect.test.d.ts +0 -6
  634. package/dist/src/ui/components/shared/RadioButtonSelect.test.js +0 -111
  635. package/dist/src/ui/components/shared/RadioButtonSelect.test.js.map +0 -1
  636. package/dist/src/ui/components/shared/TextInput.d.ts +0 -16
  637. package/dist/src/ui/components/shared/TextInput.js +0 -127
  638. package/dist/src/ui/components/shared/TextInput.js.map +0 -1
  639. package/dist/src/ui/components/subagents/constants.d.ts +0 -23
  640. package/dist/src/ui/components/subagents/constants.js +0 -67
  641. package/dist/src/ui/components/subagents/constants.js.map +0 -1
  642. package/dist/src/ui/components/subagents/create/AgentCreationWizard.d.ts +0 -15
  643. package/dist/src/ui/components/subagents/create/AgentCreationWizard.js +0 -174
  644. package/dist/src/ui/components/subagents/create/AgentCreationWizard.js.map +0 -1
  645. package/dist/src/ui/components/subagents/create/ColorSelector.d.ts +0 -15
  646. package/dist/src/ui/components/subagents/create/ColorSelector.js +0 -42
  647. package/dist/src/ui/components/subagents/create/ColorSelector.js.map +0 -1
  648. package/dist/src/ui/components/subagents/create/CreationSummary.d.ts +0 -10
  649. package/dist/src/ui/components/subagents/create/CreationSummary.js +0 -163
  650. package/dist/src/ui/components/subagents/create/CreationSummary.js.map +0 -1
  651. package/dist/src/ui/components/subagents/create/DescriptionInput.d.ts +0 -10
  652. package/dist/src/ui/components/subagents/create/DescriptionInput.js +0 -105
  653. package/dist/src/ui/components/subagents/create/DescriptionInput.js.map +0 -1
  654. package/dist/src/ui/components/subagents/create/GenerationMethodSelector.d.ts +0 -10
  655. package/dist/src/ui/components/subagents/create/GenerationMethodSelector.js +0 -33
  656. package/dist/src/ui/components/subagents/create/GenerationMethodSelector.js.map +0 -1
  657. package/dist/src/ui/components/subagents/create/LocationSelector.d.ts +0 -10
  658. package/dist/src/ui/components/subagents/create/LocationSelector.js +0 -33
  659. package/dist/src/ui/components/subagents/create/LocationSelector.js.map +0 -1
  660. package/dist/src/ui/components/subagents/create/TextEntryStep.d.ts +0 -26
  661. package/dist/src/ui/components/subagents/create/TextEntryStep.js +0 -28
  662. package/dist/src/ui/components/subagents/create/TextEntryStep.js.map +0 -1
  663. package/dist/src/ui/components/subagents/create/ToolSelector.d.ts +0 -16
  664. package/dist/src/ui/components/subagents/create/ToolSelector.js +0 -143
  665. package/dist/src/ui/components/subagents/create/ToolSelector.js.map +0 -1
  666. package/dist/src/ui/components/subagents/index.d.ts +0 -8
  667. package/dist/src/ui/components/subagents/index.js +0 -12
  668. package/dist/src/ui/components/subagents/index.js.map +0 -1
  669. package/dist/src/ui/components/subagents/manage/ActionSelectionStep.d.ts +0 -13
  670. package/dist/src/ui/components/subagents/manage/ActionSelectionStep.js +0 -46
  671. package/dist/src/ui/components/subagents/manage/ActionSelectionStep.js.map +0 -1
  672. package/dist/src/ui/components/subagents/manage/AgentDeleteStep.d.ts +0 -13
  673. package/dist/src/ui/components/subagents/manage/AgentDeleteStep.js +0 -33
  674. package/dist/src/ui/components/subagents/manage/AgentDeleteStep.js.map +0 -1
  675. package/dist/src/ui/components/subagents/manage/AgentEditStep.d.ts +0 -15
  676. package/dist/src/ui/components/subagents/manage/AgentEditStep.js +0 -63
  677. package/dist/src/ui/components/subagents/manage/AgentEditStep.js.map +0 -1
  678. package/dist/src/ui/components/subagents/manage/AgentSelectionStep.d.ts +0 -12
  679. package/dist/src/ui/components/subagents/manage/AgentSelectionStep.js +0 -225
  680. package/dist/src/ui/components/subagents/manage/AgentSelectionStep.js.map +0 -1
  681. package/dist/src/ui/components/subagents/manage/AgentViewerStep.d.ts +0 -11
  682. package/dist/src/ui/components/subagents/manage/AgentViewerStep.js +0 -19
  683. package/dist/src/ui/components/subagents/manage/AgentViewerStep.js.map +0 -1
  684. package/dist/src/ui/components/subagents/manage/AgentsManagerDialog.d.ts +0 -15
  685. package/dist/src/ui/components/subagents/manage/AgentsManagerDialog.js +0 -212
  686. package/dist/src/ui/components/subagents/manage/AgentsManagerDialog.js.map +0 -1
  687. package/dist/src/ui/components/subagents/reducers.d.ts +0 -14
  688. package/dist/src/ui/components/subagents/reducers.js +0 -162
  689. package/dist/src/ui/components/subagents/reducers.js.map +0 -1
  690. package/dist/src/ui/components/subagents/runtime/AgentExecutionDisplay.d.ts +0 -20
  691. package/dist/src/ui/components/subagents/runtime/AgentExecutionDisplay.js +0 -194
  692. package/dist/src/ui/components/subagents/runtime/AgentExecutionDisplay.js.map +0 -1
  693. package/dist/src/ui/components/subagents/types.d.ts +0 -137
  694. package/dist/src/ui/components/subagents/types.js +0 -15
  695. package/dist/src/ui/components/subagents/types.js.map +0 -1
  696. package/dist/src/ui/components/subagents/utils.d.ts +0 -15
  697. package/dist/src/ui/components/subagents/utils.js +0 -79
  698. package/dist/src/ui/components/subagents/utils.js.map +0 -1
  699. package/dist/src/ui/contexts/KeypressContext.d.ts +0 -32
  700. package/dist/src/ui/contexts/KeypressContext.js +0 -371
  701. package/dist/src/ui/contexts/KeypressContext.js.map +0 -1
  702. package/dist/src/ui/contexts/KeypressContext.test.d.ts +0 -6
  703. package/dist/src/ui/contexts/KeypressContext.test.js +0 -894
  704. package/dist/src/ui/contexts/KeypressContext.test.js.map +0 -1
  705. package/dist/src/ui/contexts/SettingsContext.d.ts +0 -9
  706. package/dist/src/ui/contexts/SettingsContext.js +0 -15
  707. package/dist/src/ui/contexts/SettingsContext.js.map +0 -1
  708. package/dist/src/ui/hooks/atCommandProcessor.test.d.ts +0 -6
  709. package/dist/src/ui/hooks/atCommandProcessor.test.js +0 -832
  710. package/dist/src/ui/hooks/atCommandProcessor.test.js.map +0 -1
  711. package/dist/src/ui/hooks/shellCommandProcessor.test.d.ts +0 -6
  712. package/dist/src/ui/hooks/shellCommandProcessor.test.js +0 -329
  713. package/dist/src/ui/hooks/shellCommandProcessor.test.js.map +0 -1
  714. package/dist/src/ui/hooks/useAgentsManagerDialog.d.ts +0 -11
  715. package/dist/src/ui/hooks/useAgentsManagerDialog.js +0 -21
  716. package/dist/src/ui/hooks/useAgentsManagerDialog.js.map +0 -1
  717. package/dist/src/ui/hooks/useAutoAcceptIndicator.test.d.ts +0 -6
  718. package/dist/src/ui/hooks/useAutoAcceptIndicator.test.js +0 -263
  719. package/dist/src/ui/hooks/useAutoAcceptIndicator.test.js.map +0 -1
  720. package/dist/src/ui/hooks/useDialogClose.d.ts +0 -34
  721. package/dist/src/ui/hooks/useDialogClose.js +0 -62
  722. package/dist/src/ui/hooks/useDialogClose.js.map +0 -1
  723. package/dist/src/ui/hooks/useEditorSettings.test.d.ts +0 -6
  724. package/dist/src/ui/hooks/useEditorSettings.test.js +0 -164
  725. package/dist/src/ui/hooks/useEditorSettings.test.js.map +0 -1
  726. package/dist/src/ui/hooks/useFolderTrust.d.ts +0 -13
  727. package/dist/src/ui/hooks/useFolderTrust.js +0 -64
  728. package/dist/src/ui/hooks/useFolderTrust.js.map +0 -1
  729. package/dist/src/ui/hooks/useGitBranchName.test.d.ts +0 -6
  730. package/dist/src/ui/hooks/useGitBranchName.test.js +0 -175
  731. package/dist/src/ui/hooks/useGitBranchName.test.js.map +0 -1
  732. package/dist/src/ui/hooks/useHistoryManager.test.d.ts +0 -6
  733. package/dist/src/ui/hooks/useHistoryManager.test.js +0 -171
  734. package/dist/src/ui/hooks/useHistoryManager.test.js.map +0 -1
  735. package/dist/src/ui/hooks/useInputHistory.test.d.ts +0 -6
  736. package/dist/src/ui/hooks/useInputHistory.test.js +0 -207
  737. package/dist/src/ui/hooks/useInputHistory.test.js.map +0 -1
  738. package/dist/src/ui/hooks/useKittyKeyboardProtocol.d.ts +0 -15
  739. package/dist/src/ui/hooks/useKittyKeyboardProtocol.js +0 -20
  740. package/dist/src/ui/hooks/useKittyKeyboardProtocol.js.map +0 -1
  741. package/dist/src/ui/hooks/useLaunchEditor.d.ts +0 -10
  742. package/dist/src/ui/hooks/useLaunchEditor.js +0 -70
  743. package/dist/src/ui/hooks/useLaunchEditor.js.map +0 -1
  744. package/dist/src/ui/hooks/useLoadingIndicator.test.d.ts +0 -6
  745. package/dist/src/ui/hooks/useLoadingIndicator.test.js +0 -91
  746. package/dist/src/ui/hooks/useLoadingIndicator.test.js.map +0 -1
  747. package/dist/src/ui/hooks/useMessageQueue.d.ts +0 -22
  748. package/dist/src/ui/hooks/useMessageQueue.js +0 -49
  749. package/dist/src/ui/hooks/useMessageQueue.js.map +0 -1
  750. package/dist/src/ui/hooks/useMessageQueue.test.d.ts +0 -6
  751. package/dist/src/ui/hooks/useMessageQueue.test.js +0 -158
  752. package/dist/src/ui/hooks/useMessageQueue.test.js.map +0 -1
  753. package/dist/src/ui/hooks/usePrivacySettings.test.d.ts +0 -6
  754. package/dist/src/ui/hooks/usePrivacySettings.test.js +0 -154
  755. package/dist/src/ui/hooks/usePrivacySettings.test.js.map +0 -1
  756. package/dist/src/ui/hooks/usePromptCompletion.d.ts +0 -23
  757. package/dist/src/ui/hooks/usePromptCompletion.js +0 -177
  758. package/dist/src/ui/hooks/usePromptCompletion.js.map +0 -1
  759. package/dist/src/ui/hooks/useQuitConfirmation.d.ts +0 -14
  760. package/dist/src/ui/hooks/useQuitConfirmation.js +0 -36
  761. package/dist/src/ui/hooks/useQuitConfirmation.js.map +0 -1
  762. package/dist/src/ui/hooks/useQwenAuth.test.d.ts +0 -6
  763. package/dist/src/ui/hooks/useQwenAuth.test.js +0 -292
  764. package/dist/src/ui/hooks/useQwenAuth.test.js.map +0 -1
  765. package/dist/src/ui/hooks/useReverseSearchCompletion.test.d.ts +0 -6
  766. package/dist/src/ui/hooks/useReverseSearchCompletion.test.js +0 -163
  767. package/dist/src/ui/hooks/useReverseSearchCompletion.test.js.map +0 -1
  768. package/dist/src/ui/hooks/useSettingsCommand.d.ts +0 -10
  769. package/dist/src/ui/hooks/useSettingsCommand.js +0 -21
  770. package/dist/src/ui/hooks/useSettingsCommand.js.map +0 -1
  771. package/dist/src/ui/hooks/useShellHistory.test.d.ts +0 -6
  772. package/dist/src/ui/hooks/useShellHistory.test.js +0 -187
  773. package/dist/src/ui/hooks/useShellHistory.test.js.map +0 -1
  774. package/dist/src/ui/hooks/useSlashCompletion.test.d.ts +0 -6
  775. package/dist/src/ui/hooks/useSlashCompletion.test.js +0 -272
  776. package/dist/src/ui/hooks/useSlashCompletion.test.js.map +0 -1
  777. package/dist/src/ui/hooks/useSubagentCreateDialog.d.ts +0 -10
  778. package/dist/src/ui/hooks/useSubagentCreateDialog.js +0 -21
  779. package/dist/src/ui/hooks/useSubagentCreateDialog.js.map +0 -1
  780. package/dist/src/ui/hooks/useTimer.test.d.ts +0 -6
  781. package/dist/src/ui/hooks/useTimer.test.js +0 -90
  782. package/dist/src/ui/hooks/useTimer.test.js.map +0 -1
  783. package/dist/src/ui/hooks/useToolScheduler.test.d.ts +0 -6
  784. package/dist/src/ui/hooks/useToolScheduler.test.js +0 -850
  785. package/dist/src/ui/hooks/useToolScheduler.test.js.map +0 -1
  786. package/dist/src/ui/hooks/useVisionAutoSwitch.d.ts +0 -47
  787. package/dist/src/ui/hooks/useVisionAutoSwitch.js +0 -262
  788. package/dist/src/ui/hooks/useVisionAutoSwitch.js.map +0 -1
  789. package/dist/src/ui/hooks/useVisionAutoSwitch.test.d.ts +0 -6
  790. package/dist/src/ui/hooks/useVisionAutoSwitch.test.js +0 -515
  791. package/dist/src/ui/hooks/useVisionAutoSwitch.test.js.map +0 -1
  792. package/dist/src/ui/hooks/useWelcomeBack.d.ts +0 -23
  793. package/dist/src/ui/hooks/useWelcomeBack.js +0 -79
  794. package/dist/src/ui/hooks/useWelcomeBack.js.map +0 -1
  795. package/dist/src/ui/hooks/useWorkspaceMigration.d.ts +0 -13
  796. package/dist/src/ui/hooks/useWorkspaceMigration.js +0 -53
  797. package/dist/src/ui/hooks/useWorkspaceMigration.js.map +0 -1
  798. package/dist/src/ui/keyMatchers.d.ts +0 -27
  799. package/dist/src/ui/keyMatchers.js +0 -68
  800. package/dist/src/ui/keyMatchers.js.map +0 -1
  801. package/dist/src/ui/keyMatchers.test.d.ts +0 -6
  802. package/dist/src/ui/keyMatchers.test.js +0 -276
  803. package/dist/src/ui/keyMatchers.test.js.map +0 -1
  804. package/dist/src/ui/models/availableModels.d.ts +0 -29
  805. package/dist/src/ui/models/availableModels.js +0 -40
  806. package/dist/src/ui/models/availableModels.js.map +0 -1
  807. package/dist/src/ui/semantic-colors.d.ts +0 -7
  808. package/dist/src/ui/semantic-colors.js +0 -24
  809. package/dist/src/ui/semantic-colors.js.map +0 -1
  810. package/dist/src/ui/textConstants.d.ts +0 -9
  811. package/dist/src/ui/textConstants.js +0 -10
  812. package/dist/src/ui/textConstants.js.map +0 -1
  813. package/dist/src/ui/themes/color-utils.test.d.ts +0 -6
  814. package/dist/src/ui/themes/color-utils.test.js +0 -197
  815. package/dist/src/ui/themes/color-utils.test.js.map +0 -1
  816. package/dist/src/ui/themes/semantic-tokens.d.ts +0 -37
  817. package/dist/src/ui/themes/semantic-tokens.js +0 -94
  818. package/dist/src/ui/themes/semantic-tokens.js.map +0 -1
  819. package/dist/src/ui/themes/theme-manager.test.d.ts +0 -6
  820. package/dist/src/ui/themes/theme-manager.test.js +0 -142
  821. package/dist/src/ui/themes/theme-manager.test.js.map +0 -1
  822. package/dist/src/ui/utils/MarkdownDisplay.test.d.ts +0 -6
  823. package/dist/src/ui/utils/MarkdownDisplay.test.js +0 -161
  824. package/dist/src/ui/utils/MarkdownDisplay.test.js.map +0 -1
  825. package/dist/src/ui/utils/clipboardUtils.test.d.ts +0 -6
  826. package/dist/src/ui/utils/clipboardUtils.test.js +0 -65
  827. package/dist/src/ui/utils/clipboardUtils.test.js.map +0 -1
  828. package/dist/src/ui/utils/commandUtils.test.d.ts +0 -6
  829. package/dist/src/ui/utils/commandUtils.test.js +0 -349
  830. package/dist/src/ui/utils/commandUtils.test.js.map +0 -1
  831. package/dist/src/ui/utils/displayUtils.test.d.ts +0 -6
  832. package/dist/src/ui/utils/displayUtils.test.js +0 -42
  833. package/dist/src/ui/utils/displayUtils.test.js.map +0 -1
  834. package/dist/src/ui/utils/formatters.test.d.ts +0 -6
  835. package/dist/src/ui/utils/formatters.test.js +0 -56
  836. package/dist/src/ui/utils/formatters.test.js.map +0 -1
  837. package/dist/src/ui/utils/isNarrowWidth.d.ts +0 -6
  838. package/dist/src/ui/utils/isNarrowWidth.js +0 -9
  839. package/dist/src/ui/utils/isNarrowWidth.js.map +0 -1
  840. package/dist/src/ui/utils/kittyProtocolDetector.d.ts +0 -13
  841. package/dist/src/ui/utils/kittyProtocolDetector.js +0 -88
  842. package/dist/src/ui/utils/kittyProtocolDetector.js.map +0 -1
  843. package/dist/src/ui/utils/markdownUtilities.test.d.ts +0 -6
  844. package/dist/src/ui/utils/markdownUtilities.test.js +0 -42
  845. package/dist/src/ui/utils/markdownUtilities.test.js.map +0 -1
  846. package/dist/src/ui/utils/platformConstants.d.ts +0 -52
  847. package/dist/src/ui/utils/platformConstants.js +0 -53
  848. package/dist/src/ui/utils/platformConstants.js.map +0 -1
  849. package/dist/src/ui/utils/terminalSetup.d.ts +0 -30
  850. package/dist/src/ui/utils/terminalSetup.js +0 -281
  851. package/dist/src/ui/utils/terminalSetup.js.map +0 -1
  852. package/dist/src/ui/utils/updateCheck.test.d.ts +0 -6
  853. package/dist/src/ui/utils/updateCheck.test.js +0 -145
  854. package/dist/src/ui/utils/updateCheck.test.js.map +0 -1
  855. package/dist/src/utils/checks.d.ts +0 -19
  856. package/dist/src/utils/checks.js +0 -24
  857. package/dist/src/utils/checks.js.map +0 -1
  858. package/dist/src/utils/dialogScopeUtils.d.ts +0 -32
  859. package/dist/src/utils/dialogScopeUtils.js +0 -48
  860. package/dist/src/utils/dialogScopeUtils.js.map +0 -1
  861. package/dist/src/utils/errors.d.ts +0 -6
  862. package/dist/src/utils/errors.js +0 -12
  863. package/dist/src/utils/errors.js.map +0 -1
  864. package/dist/src/utils/gitUtils.test.d.ts +0 -6
  865. package/dist/src/utils/gitUtils.test.js +0 -113
  866. package/dist/src/utils/gitUtils.test.js.map +0 -1
  867. package/dist/src/utils/installationInfo.test.d.ts +0 -6
  868. package/dist/src/utils/installationInfo.test.js +0 -242
  869. package/dist/src/utils/installationInfo.test.js.map +0 -1
  870. package/dist/src/utils/readStdin.test.d.ts +0 -6
  871. package/dist/src/utils/readStdin.test.js +0 -88
  872. package/dist/src/utils/readStdin.test.js.map +0 -1
  873. package/dist/src/utils/settingsUtils.d.ts +0 -134
  874. package/dist/src/utils/settingsUtils.js +0 -330
  875. package/dist/src/utils/settingsUtils.js.map +0 -1
  876. package/dist/src/utils/settingsUtils.test.d.ts +0 -6
  877. package/dist/src/utils/settingsUtils.test.js +0 -511
  878. package/dist/src/utils/settingsUtils.test.js.map +0 -1
  879. package/dist/src/utils/userStartupWarnings.test.d.ts +0 -6
  880. package/dist/src/utils/userStartupWarnings.test.js +0 -67
  881. package/dist/src/utils/userStartupWarnings.test.js.map +0 -1
  882. package/dist/src/zed-integration/acp.d.ts +0 -63
  883. package/dist/src/zed-integration/acp.js.map +0 -1
  884. package/dist/src/zed-integration/fileSystemService.d.ts +0 -19
  885. package/dist/src/zed-integration/fileSystemService.js +0 -43
  886. package/dist/src/zed-integration/fileSystemService.js.map +0 -1
  887. package/dist/src/zed-integration/schema.d.ts +0 -11782
  888. package/dist/src/zed-integration/schema.js +0 -311
  889. package/dist/src/zed-integration/schema.js.map +0 -1
  890. package/dist/src/zed-integration/zedIntegration.d.ts +0 -10
  891. package/dist/src/zed-integration/zedIntegration.js +0 -787
  892. package/dist/src/zed-integration/zedIntegration.js.map +0 -1
@@ -1,247 +0,0 @@
1
- /**
2
- * @license
3
- * Copyright 2025 Google LLC
4
- * SPDX-License-Identifier: Apache-2.0
5
- */
6
- import { describe, it, expect, vi, beforeEach, afterEach } from 'vitest';
7
- import { main, setupUnhandledRejectionHandler, validateDnsResolutionOrder, startInteractiveUI, } from './gemini.js';
8
- import { LoadedSettings, loadSettings } from './config/settings.js';
9
- import { appEvents, AppEvent } from './utils/events.js';
10
- import { FatalConfigError } from '@umsai/ums-code-core';
11
- // Custom error to identify mock process.exit calls
12
- class MockProcessExitError extends Error {
13
- code;
14
- constructor(code) {
15
- super('PROCESS_EXIT_MOCKED');
16
- this.code = code;
17
- this.name = 'MockProcessExitError';
18
- }
19
- }
20
- // Mock dependencies
21
- vi.mock('./config/settings.js', async (importOriginal) => {
22
- const actual = await importOriginal();
23
- return {
24
- ...actual,
25
- loadSettings: vi.fn(),
26
- };
27
- });
28
- vi.mock('./config/config.js', () => ({
29
- loadCliConfig: vi.fn().mockResolvedValue({
30
- config: {
31
- getSandbox: vi.fn(() => false),
32
- getQuestion: vi.fn(() => ''),
33
- },
34
- modelWasSwitched: false,
35
- originalModelBeforeSwitch: null,
36
- finalModel: 'test-model',
37
- }),
38
- }));
39
- vi.mock('read-package-up', () => ({
40
- readPackageUp: vi.fn().mockResolvedValue({
41
- packageJson: { name: 'test-pkg', version: 'test-version' },
42
- path: '/fake/path/package.json',
43
- }),
44
- }));
45
- vi.mock('update-notifier', () => ({
46
- default: vi.fn(() => ({
47
- notify: vi.fn(),
48
- })),
49
- }));
50
- vi.mock('./utils/events.js', async (importOriginal) => {
51
- const actual = await importOriginal();
52
- return {
53
- ...actual,
54
- appEvents: {
55
- emit: vi.fn(),
56
- },
57
- };
58
- });
59
- vi.mock('./utils/sandbox.js', () => ({
60
- sandbox_command: vi.fn(() => ''), // Default to no sandbox command
61
- start_sandbox: vi.fn(() => Promise.resolve()), // Mock as an async function that resolves
62
- }));
63
- describe('gemini.tsx main function', () => {
64
- let loadSettingsMock;
65
- let originalEnvGeminiSandbox;
66
- let originalEnvSandbox;
67
- let initialUnhandledRejectionListeners = [];
68
- const processExitSpy = vi
69
- .spyOn(process, 'exit')
70
- .mockImplementation((code) => {
71
- throw new MockProcessExitError(code);
72
- });
73
- beforeEach(() => {
74
- loadSettingsMock = vi.mocked(loadSettings);
75
- // Store and clear sandbox-related env variables to ensure a consistent test environment
76
- originalEnvGeminiSandbox = process.env['GEMINI_SANDBOX'];
77
- originalEnvSandbox = process.env['SANDBOX'];
78
- delete process.env['GEMINI_SANDBOX'];
79
- delete process.env['SANDBOX'];
80
- initialUnhandledRejectionListeners =
81
- process.listeners('unhandledRejection');
82
- });
83
- afterEach(() => {
84
- // Restore original env variables
85
- if (originalEnvGeminiSandbox !== undefined) {
86
- process.env['GEMINI_SANDBOX'] = originalEnvGeminiSandbox;
87
- }
88
- else {
89
- delete process.env['GEMINI_SANDBOX'];
90
- }
91
- if (originalEnvSandbox !== undefined) {
92
- process.env['SANDBOX'] = originalEnvSandbox;
93
- }
94
- else {
95
- delete process.env['SANDBOX'];
96
- }
97
- const currentListeners = process.listeners('unhandledRejection');
98
- const addedListener = currentListeners.find((listener) => !initialUnhandledRejectionListeners.includes(listener));
99
- if (addedListener) {
100
- process.removeListener('unhandledRejection', addedListener);
101
- }
102
- vi.restoreAllMocks();
103
- });
104
- it('should throw InvalidConfigurationError if settings have errors', async () => {
105
- const settingsError = {
106
- message: 'Test settings error',
107
- path: '/test/settings.json',
108
- };
109
- const userSettingsFile = {
110
- path: '/user/settings.json',
111
- settings: {},
112
- };
113
- const workspaceSettingsFile = {
114
- path: '/workspace/.gemini/settings.json',
115
- settings: {},
116
- };
117
- const systemSettingsFile = {
118
- path: '/system/settings.json',
119
- settings: {},
120
- };
121
- const systemDefaultsFile = {
122
- path: '/system/system-defaults.json',
123
- settings: {},
124
- };
125
- const mockLoadedSettings = new LoadedSettings(systemSettingsFile, systemDefaultsFile, userSettingsFile, workspaceSettingsFile, [settingsError], true, new Set());
126
- loadSettingsMock.mockReturnValue(mockLoadedSettings);
127
- await expect(main()).rejects.toThrow(FatalConfigError);
128
- });
129
- it('should log unhandled promise rejections and open debug console on first error', async () => {
130
- const appEventsMock = vi.mocked(appEvents);
131
- const rejectionError = new Error('Test unhandled rejection');
132
- setupUnhandledRejectionHandler();
133
- // Simulate an unhandled rejection.
134
- // We are not using Promise.reject here as vitest will catch it.
135
- // Instead we will dispatch the event manually.
136
- process.emit('unhandledRejection', rejectionError, Promise.resolve());
137
- // We need to wait for the rejection handler to be called.
138
- await new Promise(process.nextTick);
139
- expect(appEventsMock.emit).toHaveBeenCalledWith(AppEvent.OpenDebugConsole);
140
- expect(appEventsMock.emit).toHaveBeenCalledWith(AppEvent.LogError, expect.stringContaining('Unhandled Promise Rejection'));
141
- expect(appEventsMock.emit).toHaveBeenCalledWith(AppEvent.LogError, expect.stringContaining('Please file a bug report using the /bug tool.'));
142
- // Simulate a second rejection
143
- const secondRejectionError = new Error('Second test unhandled rejection');
144
- process.emit('unhandledRejection', secondRejectionError, Promise.resolve());
145
- await new Promise(process.nextTick);
146
- // Ensure emit was only called once for OpenDebugConsole
147
- const openDebugConsoleCalls = appEventsMock.emit.mock.calls.filter((call) => call[0] === AppEvent.OpenDebugConsole);
148
- expect(openDebugConsoleCalls.length).toBe(1);
149
- // Avoid the process.exit error from being thrown.
150
- processExitSpy.mockRestore();
151
- });
152
- });
153
- describe('validateDnsResolutionOrder', () => {
154
- let consoleWarnSpy;
155
- beforeEach(() => {
156
- consoleWarnSpy = vi.spyOn(console, 'warn').mockImplementation(() => { });
157
- });
158
- afterEach(() => {
159
- consoleWarnSpy.mockRestore();
160
- });
161
- it('should return "ipv4first" when the input is "ipv4first"', () => {
162
- expect(validateDnsResolutionOrder('ipv4first')).toBe('ipv4first');
163
- expect(consoleWarnSpy).not.toHaveBeenCalled();
164
- });
165
- it('should return "verbatim" when the input is "verbatim"', () => {
166
- expect(validateDnsResolutionOrder('verbatim')).toBe('verbatim');
167
- expect(consoleWarnSpy).not.toHaveBeenCalled();
168
- });
169
- it('should return the default "ipv4first" when the input is undefined', () => {
170
- expect(validateDnsResolutionOrder(undefined)).toBe('ipv4first');
171
- expect(consoleWarnSpy).not.toHaveBeenCalled();
172
- });
173
- it('should return the default "ipv4first" and log a warning for an invalid string', () => {
174
- expect(validateDnsResolutionOrder('invalid-value')).toBe('ipv4first');
175
- expect(consoleWarnSpy).toHaveBeenCalledOnce();
176
- expect(consoleWarnSpy).toHaveBeenCalledWith('Invalid value for dnsResolutionOrder in settings: "invalid-value". Using default "ipv4first".');
177
- });
178
- });
179
- describe('startInteractiveUI', () => {
180
- // Mock dependencies
181
- const mockConfig = {
182
- getProjectRoot: () => '/root',
183
- getScreenReader: () => false,
184
- };
185
- const mockSettings = {
186
- merged: {
187
- ui: {
188
- hideWindowTitle: false,
189
- },
190
- },
191
- };
192
- const mockStartupWarnings = ['warning1'];
193
- const mockWorkspaceRoot = '/root';
194
- vi.mock('./utils/version.js', () => ({
195
- getCliVersion: vi.fn(() => Promise.resolve('1.0.0')),
196
- }));
197
- vi.mock('./ui/utils/kittyProtocolDetector.js', () => ({
198
- detectAndEnableKittyProtocol: vi.fn(() => Promise.resolve()),
199
- }));
200
- vi.mock('./ui/utils/updateCheck.js', () => ({
201
- checkForUpdates: vi.fn(() => Promise.resolve(null)),
202
- }));
203
- vi.mock('./utils/cleanup.js', () => ({
204
- cleanupCheckpoints: vi.fn(() => Promise.resolve()),
205
- registerCleanup: vi.fn(),
206
- }));
207
- vi.mock('ink', () => ({
208
- render: vi.fn().mockReturnValue({ unmount: vi.fn() }),
209
- }));
210
- beforeEach(() => {
211
- vi.clearAllMocks();
212
- });
213
- it('should render the UI with proper React context and exitOnCtrlC disabled', async () => {
214
- const { render } = await import('ink');
215
- const renderSpy = vi.mocked(render);
216
- await startInteractiveUI(mockConfig, mockSettings, mockStartupWarnings, mockWorkspaceRoot);
217
- // Verify render was called with correct options
218
- expect(renderSpy).toHaveBeenCalledTimes(1);
219
- const [reactElement, options] = renderSpy.mock.calls[0];
220
- // Verify render options
221
- expect(options).toEqual({
222
- exitOnCtrlC: false,
223
- isScreenReaderEnabled: false,
224
- });
225
- // Verify React element structure is valid (but don't deep dive into JSX internals)
226
- expect(reactElement).toBeDefined();
227
- });
228
- it('should perform all startup tasks in correct order', async () => {
229
- const { getCliVersion } = await import('./utils/version.js');
230
- const { detectAndEnableKittyProtocol } = await import('./ui/utils/kittyProtocolDetector.js');
231
- const { checkForUpdates } = await import('./ui/utils/updateCheck.js');
232
- const { registerCleanup } = await import('./utils/cleanup.js');
233
- await startInteractiveUI(mockConfig, mockSettings, mockStartupWarnings, mockWorkspaceRoot);
234
- // Verify all startup tasks were called
235
- expect(getCliVersion).toHaveBeenCalledTimes(1);
236
- expect(detectAndEnableKittyProtocol).toHaveBeenCalledTimes(1);
237
- expect(registerCleanup).toHaveBeenCalledTimes(1);
238
- // Verify cleanup handler is registered with unmount function
239
- const cleanupFn = vi.mocked(registerCleanup).mock.calls[0][0];
240
- expect(typeof cleanupFn).toBe('function');
241
- // checkForUpdates should be called asynchronously (not waited for)
242
- // We need a small delay to let it execute
243
- await new Promise((resolve) => setTimeout(resolve, 0));
244
- expect(checkForUpdates).toHaveBeenCalledTimes(1);
245
- });
246
- });
247
- //# sourceMappingURL=gemini.test.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"gemini.test.js","sourceRoot":"","sources":["../../src/gemini.test.tsx"],"names":[],"mappings":"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"}
@@ -1,6 +0,0 @@
1
- /**
2
- * @license
3
- * Copyright 2025 Google LLC
4
- * SPDX-License-Identifier: Apache-2.0
5
- */
6
- export {};
@@ -1,130 +0,0 @@
1
- /**
2
- * @license
3
- * Copyright 2025 Google LLC
4
- * SPDX-License-Identifier: Apache-2.0
5
- */
6
- vi.mock('../ui/commands/aboutCommand.js', async () => {
7
- const { CommandKind } = await import('../ui/commands/types.js');
8
- return {
9
- aboutCommand: {
10
- name: 'about',
11
- description: 'About the CLI',
12
- kind: CommandKind.BUILT_IN,
13
- },
14
- };
15
- });
16
- vi.mock('../ui/commands/approvalModeCommand.js', () => ({
17
- approvalModeCommand: {
18
- name: 'approval-mode',
19
- description: 'Approval mode command',
20
- kind: 'built-in',
21
- },
22
- }));
23
- vi.mock('../ui/commands/ideCommand.js', () => ({ ideCommand: vi.fn() }));
24
- vi.mock('../ui/commands/restoreCommand.js', () => ({
25
- restoreCommand: vi.fn(),
26
- }));
27
- import { describe, it, expect, vi, beforeEach } from 'vitest';
28
- import { BuiltinCommandLoader } from './BuiltinCommandLoader.js';
29
- import { CommandKind } from '../ui/commands/types.js';
30
- import { ideCommand } from '../ui/commands/ideCommand.js';
31
- import { restoreCommand } from '../ui/commands/restoreCommand.js';
32
- vi.mock('../ui/commands/authCommand.js', () => ({ authCommand: {} }));
33
- vi.mock('../ui/commands/bugCommand.js', () => ({ bugCommand: {} }));
34
- vi.mock('../ui/commands/chatCommand.js', () => ({ chatCommand: {} }));
35
- vi.mock('../ui/commands/clearCommand.js', () => ({ clearCommand: {} }));
36
- vi.mock('../ui/commands/compressCommand.js', () => ({ compressCommand: {} }));
37
- vi.mock('../ui/commands/corgiCommand.js', () => ({ corgiCommand: {} }));
38
- vi.mock('../ui/commands/docsCommand.js', () => ({ docsCommand: {} }));
39
- vi.mock('../ui/commands/editorCommand.js', () => ({ editorCommand: {} }));
40
- vi.mock('../ui/commands/extensionsCommand.js', () => ({
41
- extensionsCommand: {},
42
- }));
43
- vi.mock('../ui/commands/helpCommand.js', () => ({ helpCommand: {} }));
44
- vi.mock('../ui/commands/memoryCommand.js', () => ({ memoryCommand: {} }));
45
- vi.mock('../ui/commands/privacyCommand.js', () => ({ privacyCommand: {} }));
46
- vi.mock('../ui/commands/quitCommand.js', () => ({
47
- quitCommand: {},
48
- quitConfirmCommand: {},
49
- }));
50
- vi.mock('../ui/commands/statsCommand.js', () => ({ statsCommand: {} }));
51
- vi.mock('../ui/commands/themeCommand.js', () => ({ themeCommand: {} }));
52
- vi.mock('../ui/commands/toolsCommand.js', () => ({ toolsCommand: {} }));
53
- vi.mock('../ui/commands/mcpCommand.js', () => ({
54
- mcpCommand: {
55
- name: 'mcp',
56
- description: 'MCP command',
57
- kind: 'BUILT_IN',
58
- },
59
- }));
60
- vi.mock('../ui/commands/modelCommand.js', () => ({
61
- modelCommand: {
62
- name: 'model',
63
- description: 'Model command',
64
- kind: 'BUILT_IN',
65
- },
66
- }));
67
- describe('BuiltinCommandLoader', () => {
68
- let mockConfig;
69
- const ideCommandMock = ideCommand;
70
- const restoreCommandMock = restoreCommand;
71
- beforeEach(() => {
72
- vi.clearAllMocks();
73
- mockConfig = { some: 'config' };
74
- ideCommandMock.mockReturnValue({
75
- name: 'ide',
76
- description: 'IDE command',
77
- kind: CommandKind.BUILT_IN,
78
- });
79
- restoreCommandMock.mockReturnValue({
80
- name: 'restore',
81
- description: 'Restore command',
82
- kind: CommandKind.BUILT_IN,
83
- });
84
- });
85
- it('should correctly pass the config object to command factory functions', async () => {
86
- const loader = new BuiltinCommandLoader(mockConfig);
87
- await loader.loadCommands(new AbortController().signal);
88
- expect(ideCommandMock).toHaveBeenCalledTimes(1);
89
- expect(ideCommandMock).toHaveBeenCalledWith(mockConfig);
90
- expect(restoreCommandMock).toHaveBeenCalledTimes(1);
91
- expect(restoreCommandMock).toHaveBeenCalledWith(mockConfig);
92
- });
93
- it('should filter out null command definitions returned by factories', async () => {
94
- // Override the mock's behavior for this specific test.
95
- ideCommandMock.mockReturnValue(null);
96
- const loader = new BuiltinCommandLoader(mockConfig);
97
- const commands = await loader.loadCommands(new AbortController().signal);
98
- // The 'ide' command should be filtered out.
99
- const ideCmd = commands.find((c) => c.name === 'ide');
100
- expect(ideCmd).toBeUndefined();
101
- // Other commands should still be present.
102
- const aboutCmd = commands.find((c) => c.name === 'about');
103
- expect(aboutCmd).toBeDefined();
104
- });
105
- it('should handle a null config gracefully when calling factories', async () => {
106
- const loader = new BuiltinCommandLoader(null);
107
- await loader.loadCommands(new AbortController().signal);
108
- expect(ideCommandMock).toHaveBeenCalledTimes(1);
109
- expect(ideCommandMock).toHaveBeenCalledWith(null);
110
- expect(restoreCommandMock).toHaveBeenCalledTimes(1);
111
- expect(restoreCommandMock).toHaveBeenCalledWith(null);
112
- });
113
- it('should return a list of all loaded commands', async () => {
114
- const loader = new BuiltinCommandLoader(mockConfig);
115
- const commands = await loader.loadCommands(new AbortController().signal);
116
- const aboutCmd = commands.find((c) => c.name === 'about');
117
- expect(aboutCmd).toBeDefined();
118
- expect(aboutCmd?.kind).toBe(CommandKind.BUILT_IN);
119
- const approvalModeCmd = commands.find((c) => c.name === 'approval-mode');
120
- expect(approvalModeCmd).toBeDefined();
121
- expect(approvalModeCmd?.kind).toBe(CommandKind.BUILT_IN);
122
- const ideCmd = commands.find((c) => c.name === 'ide');
123
- expect(ideCmd).toBeDefined();
124
- const mcpCmd = commands.find((c) => c.name === 'mcp');
125
- expect(mcpCmd).toBeDefined();
126
- const modelCmd = commands.find((c) => c.name === 'model');
127
- expect(modelCmd).toBeDefined();
128
- });
129
- });
130
- //# sourceMappingURL=BuiltinCommandLoader.test.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"BuiltinCommandLoader.test.js","sourceRoot":"","sources":["../../../src/services/BuiltinCommandLoader.test.ts"],"names":[],"mappings":"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"}
@@ -1,6 +0,0 @@
1
- /**
2
- * @license
3
- * Copyright 2025 Google LLC
4
- * SPDX-License-Identifier: Apache-2.0
5
- */
6
- export {};
@@ -1,233 +0,0 @@
1
- /**
2
- * @license
3
- * Copyright 2025 Google LLC
4
- * SPDX-License-Identifier: Apache-2.0
5
- */
6
- import { vi, describe, it, expect, beforeEach, afterEach } from 'vitest';
7
- import { CommandService } from './CommandService.js';
8
- import {} from './types.js';
9
- import { CommandKind } from '../ui/commands/types.js';
10
- const createMockCommand = (name, kind) => ({
11
- name,
12
- description: `Description for ${name}`,
13
- kind,
14
- action: vi.fn(),
15
- });
16
- const mockCommandA = createMockCommand('command-a', CommandKind.BUILT_IN);
17
- const mockCommandB = createMockCommand('command-b', CommandKind.BUILT_IN);
18
- const mockCommandC = createMockCommand('command-c', CommandKind.FILE);
19
- const mockCommandB_Override = createMockCommand('command-b', CommandKind.FILE);
20
- class MockCommandLoader {
21
- commandsToLoad;
22
- constructor(commandsToLoad) {
23
- this.commandsToLoad = commandsToLoad;
24
- }
25
- loadCommands = vi.fn(async () => Promise.resolve(this.commandsToLoad));
26
- }
27
- describe('CommandService', () => {
28
- beforeEach(() => {
29
- vi.spyOn(console, 'debug').mockImplementation(() => { });
30
- });
31
- afterEach(() => {
32
- vi.restoreAllMocks();
33
- });
34
- it('should load commands from a single loader', async () => {
35
- const mockLoader = new MockCommandLoader([mockCommandA, mockCommandB]);
36
- const service = await CommandService.create([mockLoader], new AbortController().signal);
37
- const commands = service.getCommands();
38
- expect(mockLoader.loadCommands).toHaveBeenCalledTimes(1);
39
- expect(commands).toHaveLength(2);
40
- expect(commands).toEqual(expect.arrayContaining([mockCommandA, mockCommandB]));
41
- });
42
- it('should aggregate commands from multiple loaders', async () => {
43
- const loader1 = new MockCommandLoader([mockCommandA]);
44
- const loader2 = new MockCommandLoader([mockCommandC]);
45
- const service = await CommandService.create([loader1, loader2], new AbortController().signal);
46
- const commands = service.getCommands();
47
- expect(loader1.loadCommands).toHaveBeenCalledTimes(1);
48
- expect(loader2.loadCommands).toHaveBeenCalledTimes(1);
49
- expect(commands).toHaveLength(2);
50
- expect(commands).toEqual(expect.arrayContaining([mockCommandA, mockCommandC]));
51
- });
52
- it('should override commands from earlier loaders with those from later loaders', async () => {
53
- const loader1 = new MockCommandLoader([mockCommandA, mockCommandB]);
54
- const loader2 = new MockCommandLoader([
55
- mockCommandB_Override,
56
- mockCommandC,
57
- ]);
58
- const service = await CommandService.create([loader1, loader2], new AbortController().signal);
59
- const commands = service.getCommands();
60
- expect(commands).toHaveLength(3); // Should be A, C, and the overridden B.
61
- // The final list should contain the override from the *last* loader.
62
- const commandB = commands.find((cmd) => cmd.name === 'command-b');
63
- expect(commandB).toBeDefined();
64
- expect(commandB?.kind).toBe(CommandKind.FILE); // Verify it's the overridden version.
65
- expect(commandB).toEqual(mockCommandB_Override);
66
- // Ensure the other commands are still present.
67
- expect(commands).toEqual(expect.arrayContaining([
68
- mockCommandA,
69
- mockCommandC,
70
- mockCommandB_Override,
71
- ]));
72
- });
73
- it('should handle loaders that return an empty array of commands gracefully', async () => {
74
- const loader1 = new MockCommandLoader([mockCommandA]);
75
- const emptyLoader = new MockCommandLoader([]);
76
- const loader3 = new MockCommandLoader([mockCommandB]);
77
- const service = await CommandService.create([loader1, emptyLoader, loader3], new AbortController().signal);
78
- const commands = service.getCommands();
79
- expect(emptyLoader.loadCommands).toHaveBeenCalledTimes(1);
80
- expect(commands).toHaveLength(2);
81
- expect(commands).toEqual(expect.arrayContaining([mockCommandA, mockCommandB]));
82
- });
83
- it('should load commands from successful loaders even if one fails', async () => {
84
- const successfulLoader = new MockCommandLoader([mockCommandA]);
85
- const failingLoader = new MockCommandLoader([]);
86
- const error = new Error('Loader failed');
87
- vi.spyOn(failingLoader, 'loadCommands').mockRejectedValue(error);
88
- const service = await CommandService.create([successfulLoader, failingLoader], new AbortController().signal);
89
- const commands = service.getCommands();
90
- expect(commands).toHaveLength(1);
91
- expect(commands).toEqual([mockCommandA]);
92
- expect(console.debug).toHaveBeenCalledWith('A command loader failed:', error);
93
- });
94
- it('getCommands should return a readonly array that cannot be mutated', async () => {
95
- const service = await CommandService.create([new MockCommandLoader([mockCommandA])], new AbortController().signal);
96
- const commands = service.getCommands();
97
- // Expect it to throw a TypeError at runtime because the array is frozen.
98
- expect(() => {
99
- // @ts-expect-error - Testing immutability is intentional here.
100
- commands.push(mockCommandB);
101
- }).toThrow();
102
- // Verify the original array was not mutated.
103
- expect(service.getCommands()).toHaveLength(1);
104
- });
105
- it('should pass the abort signal to all loaders', async () => {
106
- const controller = new AbortController();
107
- const signal = controller.signal;
108
- const loader1 = new MockCommandLoader([mockCommandA]);
109
- const loader2 = new MockCommandLoader([mockCommandB]);
110
- await CommandService.create([loader1, loader2], signal);
111
- expect(loader1.loadCommands).toHaveBeenCalledTimes(1);
112
- expect(loader1.loadCommands).toHaveBeenCalledWith(signal);
113
- expect(loader2.loadCommands).toHaveBeenCalledTimes(1);
114
- expect(loader2.loadCommands).toHaveBeenCalledWith(signal);
115
- });
116
- it('should rename extension commands when they conflict', async () => {
117
- const builtinCommand = createMockCommand('deploy', CommandKind.BUILT_IN);
118
- const userCommand = createMockCommand('sync', CommandKind.FILE);
119
- const extensionCommand1 = {
120
- ...createMockCommand('deploy', CommandKind.FILE),
121
- extensionName: 'firebase',
122
- description: '[firebase] Deploy to Firebase',
123
- };
124
- const extensionCommand2 = {
125
- ...createMockCommand('sync', CommandKind.FILE),
126
- extensionName: 'git-helper',
127
- description: '[git-helper] Sync with remote',
128
- };
129
- const mockLoader1 = new MockCommandLoader([builtinCommand]);
130
- const mockLoader2 = new MockCommandLoader([
131
- userCommand,
132
- extensionCommand1,
133
- extensionCommand2,
134
- ]);
135
- const service = await CommandService.create([mockLoader1, mockLoader2], new AbortController().signal);
136
- const commands = service.getCommands();
137
- expect(commands).toHaveLength(4);
138
- // Built-in command keeps original name
139
- const deployBuiltin = commands.find((cmd) => cmd.name === 'deploy' && !cmd.extensionName);
140
- expect(deployBuiltin).toBeDefined();
141
- expect(deployBuiltin?.kind).toBe(CommandKind.BUILT_IN);
142
- // Extension command conflicting with built-in gets renamed
143
- const deployExtension = commands.find((cmd) => cmd.name === 'firebase.deploy');
144
- expect(deployExtension).toBeDefined();
145
- expect(deployExtension?.extensionName).toBe('firebase');
146
- // User command keeps original name
147
- const syncUser = commands.find((cmd) => cmd.name === 'sync' && !cmd.extensionName);
148
- expect(syncUser).toBeDefined();
149
- expect(syncUser?.kind).toBe(CommandKind.FILE);
150
- // Extension command conflicting with user command gets renamed
151
- const syncExtension = commands.find((cmd) => cmd.name === 'git-helper.sync');
152
- expect(syncExtension).toBeDefined();
153
- expect(syncExtension?.extensionName).toBe('git-helper');
154
- });
155
- it('should handle user/project command override correctly', async () => {
156
- const builtinCommand = createMockCommand('help', CommandKind.BUILT_IN);
157
- const userCommand = createMockCommand('help', CommandKind.FILE);
158
- const projectCommand = createMockCommand('deploy', CommandKind.FILE);
159
- const userDeployCommand = createMockCommand('deploy', CommandKind.FILE);
160
- const mockLoader1 = new MockCommandLoader([builtinCommand]);
161
- const mockLoader2 = new MockCommandLoader([
162
- userCommand,
163
- userDeployCommand,
164
- projectCommand,
165
- ]);
166
- const service = await CommandService.create([mockLoader1, mockLoader2], new AbortController().signal);
167
- const commands = service.getCommands();
168
- expect(commands).toHaveLength(2);
169
- // User command overrides built-in
170
- const helpCommand = commands.find((cmd) => cmd.name === 'help');
171
- expect(helpCommand).toBeDefined();
172
- expect(helpCommand?.kind).toBe(CommandKind.FILE);
173
- // Project command overrides user command (last wins)
174
- const deployCommand = commands.find((cmd) => cmd.name === 'deploy');
175
- expect(deployCommand).toBeDefined();
176
- expect(deployCommand?.kind).toBe(CommandKind.FILE);
177
- });
178
- it('should handle secondary conflicts when renaming extension commands', async () => {
179
- // User has both /deploy and /gcp.deploy commands
180
- const userCommand1 = createMockCommand('deploy', CommandKind.FILE);
181
- const userCommand2 = createMockCommand('gcp.deploy', CommandKind.FILE);
182
- // Extension also has a deploy command that will conflict with user's /deploy
183
- const extensionCommand = {
184
- ...createMockCommand('deploy', CommandKind.FILE),
185
- extensionName: 'gcp',
186
- description: '[gcp] Deploy to Google Cloud',
187
- };
188
- const mockLoader = new MockCommandLoader([
189
- userCommand1,
190
- userCommand2,
191
- extensionCommand,
192
- ]);
193
- const service = await CommandService.create([mockLoader], new AbortController().signal);
194
- const commands = service.getCommands();
195
- expect(commands).toHaveLength(3);
196
- // Original user command keeps its name
197
- const deployUser = commands.find((cmd) => cmd.name === 'deploy' && !cmd.extensionName);
198
- expect(deployUser).toBeDefined();
199
- // User's dot notation command keeps its name
200
- const gcpDeployUser = commands.find((cmd) => cmd.name === 'gcp.deploy' && !cmd.extensionName);
201
- expect(gcpDeployUser).toBeDefined();
202
- // Extension command gets renamed with suffix due to secondary conflict
203
- const deployExtension = commands.find((cmd) => cmd.name === 'gcp.deploy1' && cmd.extensionName === 'gcp');
204
- expect(deployExtension).toBeDefined();
205
- expect(deployExtension?.description).toBe('[gcp] Deploy to Google Cloud');
206
- });
207
- it('should handle multiple secondary conflicts with incrementing suffixes', async () => {
208
- // User has /deploy, /gcp.deploy, and /gcp.deploy1
209
- const userCommand1 = createMockCommand('deploy', CommandKind.FILE);
210
- const userCommand2 = createMockCommand('gcp.deploy', CommandKind.FILE);
211
- const userCommand3 = createMockCommand('gcp.deploy1', CommandKind.FILE);
212
- // Extension has a deploy command
213
- const extensionCommand = {
214
- ...createMockCommand('deploy', CommandKind.FILE),
215
- extensionName: 'gcp',
216
- description: '[gcp] Deploy to Google Cloud',
217
- };
218
- const mockLoader = new MockCommandLoader([
219
- userCommand1,
220
- userCommand2,
221
- userCommand3,
222
- extensionCommand,
223
- ]);
224
- const service = await CommandService.create([mockLoader], new AbortController().signal);
225
- const commands = service.getCommands();
226
- expect(commands).toHaveLength(4);
227
- // Extension command gets renamed with suffix 2 due to multiple conflicts
228
- const deployExtension = commands.find((cmd) => cmd.name === 'gcp.deploy2' && cmd.extensionName === 'gcp');
229
- expect(deployExtension).toBeDefined();
230
- expect(deployExtension?.description).toBe('[gcp] Deploy to Google Cloud');
231
- });
232
- });
233
- //# sourceMappingURL=CommandService.test.js.map