@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,832 +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 { handleAtCommand } from './atCommandProcessor.js';
8
- import { FileDiscoveryService, GlobTool, ReadManyFilesTool, StandardFileSystemService, ToolRegistry, COMMON_IGNORE_PATTERNS, DEFAULT_FILE_EXCLUDES, } from '@umsai/ums-code-core';
9
- import * as os from 'node:os';
10
- import { ToolCallStatus } from '../types.js';
11
- import * as fsPromises from 'node:fs/promises';
12
- import * as path from 'node:path';
13
- describe('handleAtCommand', () => {
14
- let testRootDir;
15
- let mockConfig;
16
- const mockAddItem = vi.fn();
17
- const mockOnDebugMessage = vi.fn();
18
- let abortController;
19
- async function createTestFile(fullPath, fileContents) {
20
- await fsPromises.mkdir(path.dirname(fullPath), { recursive: true });
21
- await fsPromises.writeFile(fullPath, fileContents);
22
- return path.resolve(testRootDir, fullPath);
23
- }
24
- beforeEach(async () => {
25
- vi.resetAllMocks();
26
- testRootDir = await fsPromises.mkdtemp(path.join(os.tmpdir(), 'folder-structure-test-'));
27
- abortController = new AbortController();
28
- const getToolRegistry = vi.fn();
29
- mockConfig = {
30
- getToolRegistry,
31
- getTargetDir: () => testRootDir,
32
- isSandboxed: () => false,
33
- getFileService: () => new FileDiscoveryService(testRootDir),
34
- getFileFilteringRespectGitIgnore: () => true,
35
- getFileFilteringRespectGeminiIgnore: () => true,
36
- getFileFilteringOptions: () => ({
37
- respectGitIgnore: true,
38
- respectGeminiIgnore: true,
39
- }),
40
- getFileSystemService: () => new StandardFileSystemService(),
41
- getEnableRecursiveFileSearch: vi.fn(() => true),
42
- getWorkspaceContext: () => ({
43
- isPathWithinWorkspace: () => true,
44
- getDirectories: () => [testRootDir],
45
- }),
46
- getMcpServers: () => ({}),
47
- getMcpServerCommand: () => undefined,
48
- getPromptRegistry: () => ({
49
- getPromptsByServer: () => [],
50
- }),
51
- getDebugMode: () => false,
52
- getFileExclusions: () => ({
53
- getCoreIgnorePatterns: () => COMMON_IGNORE_PATTERNS,
54
- getDefaultExcludePatterns: () => DEFAULT_FILE_EXCLUDES,
55
- getGlobExcludes: () => COMMON_IGNORE_PATTERNS,
56
- buildExcludePatterns: () => DEFAULT_FILE_EXCLUDES,
57
- getReadManyFilesExcludes: () => DEFAULT_FILE_EXCLUDES,
58
- }),
59
- getUsageStatisticsEnabled: () => false,
60
- };
61
- const registry = new ToolRegistry(mockConfig);
62
- registry.registerTool(new ReadManyFilesTool(mockConfig));
63
- registry.registerTool(new GlobTool(mockConfig));
64
- getToolRegistry.mockReturnValue(registry);
65
- });
66
- afterEach(async () => {
67
- abortController.abort();
68
- await fsPromises.rm(testRootDir, { recursive: true, force: true });
69
- });
70
- it('should pass through query if no @ command is present', async () => {
71
- const query = 'regular user query';
72
- const result = await handleAtCommand({
73
- query,
74
- config: mockConfig,
75
- addItem: mockAddItem,
76
- onDebugMessage: mockOnDebugMessage,
77
- messageId: 123,
78
- signal: abortController.signal,
79
- });
80
- expect(result).toEqual({
81
- processedQuery: [{ text: query }],
82
- shouldProceed: true,
83
- });
84
- });
85
- it('should pass through original query if only a lone @ symbol is present', async () => {
86
- const queryWithSpaces = ' @ ';
87
- const result = await handleAtCommand({
88
- query: queryWithSpaces,
89
- config: mockConfig,
90
- addItem: mockAddItem,
91
- onDebugMessage: mockOnDebugMessage,
92
- messageId: 124,
93
- signal: abortController.signal,
94
- });
95
- expect(result).toEqual({
96
- processedQuery: [{ text: queryWithSpaces }],
97
- shouldProceed: true,
98
- });
99
- expect(mockOnDebugMessage).toHaveBeenCalledWith('Lone @ detected, will be treated as text in the modified query.');
100
- });
101
- it('should process a valid text file path', async () => {
102
- const fileContent = 'This is the file content.';
103
- const filePath = await createTestFile(path.join(testRootDir, 'path', 'to', 'file.txt'), fileContent);
104
- const query = `@${filePath}`;
105
- const result = await handleAtCommand({
106
- query,
107
- config: mockConfig,
108
- addItem: mockAddItem,
109
- onDebugMessage: mockOnDebugMessage,
110
- messageId: 125,
111
- signal: abortController.signal,
112
- });
113
- expect(result).toEqual({
114
- processedQuery: [
115
- { text: `@${filePath}` },
116
- { text: '\n--- Content from referenced files ---' },
117
- { text: `\nContent from @${filePath}:\n` },
118
- { text: fileContent },
119
- { text: '\n--- End of content ---' },
120
- ],
121
- shouldProceed: true,
122
- });
123
- expect(mockAddItem).toHaveBeenCalledWith(expect.objectContaining({
124
- type: 'tool_group',
125
- tools: [expect.objectContaining({ status: ToolCallStatus.Success })],
126
- }), 125);
127
- });
128
- it('should process a valid directory path and convert to glob', async () => {
129
- const fileContent = 'This is the file content.';
130
- const filePath = await createTestFile(path.join(testRootDir, 'path', 'to', 'file.txt'), fileContent);
131
- const dirPath = path.dirname(filePath);
132
- const query = `@${dirPath}`;
133
- const resolvedGlob = `${dirPath}/**`;
134
- const result = await handleAtCommand({
135
- query,
136
- config: mockConfig,
137
- addItem: mockAddItem,
138
- onDebugMessage: mockOnDebugMessage,
139
- messageId: 126,
140
- signal: abortController.signal,
141
- });
142
- expect(result).toEqual({
143
- processedQuery: [
144
- { text: `@${resolvedGlob}` },
145
- { text: '\n--- Content from referenced files ---' },
146
- { text: `\nContent from @${filePath}:\n` },
147
- { text: fileContent },
148
- { text: '\n--- End of content ---' },
149
- ],
150
- shouldProceed: true,
151
- });
152
- expect(mockOnDebugMessage).toHaveBeenCalledWith(`Path ${dirPath} resolved to directory, using glob: ${resolvedGlob}`);
153
- });
154
- it('should handle query with text before and after @command', async () => {
155
- const fileContent = 'Markdown content.';
156
- const filePath = await createTestFile(path.join(testRootDir, 'doc.md'), fileContent);
157
- const textBefore = 'Explain this: ';
158
- const textAfter = ' in detail.';
159
- const query = `${textBefore}@${filePath}${textAfter}`;
160
- const result = await handleAtCommand({
161
- query,
162
- config: mockConfig,
163
- addItem: mockAddItem,
164
- onDebugMessage: mockOnDebugMessage,
165
- messageId: 128,
166
- signal: abortController.signal,
167
- });
168
- expect(result).toEqual({
169
- processedQuery: [
170
- { text: `${textBefore}@${filePath}${textAfter}` },
171
- { text: '\n--- Content from referenced files ---' },
172
- { text: `\nContent from @${filePath}:\n` },
173
- { text: fileContent },
174
- { text: '\n--- End of content ---' },
175
- ],
176
- shouldProceed: true,
177
- });
178
- });
179
- it('should correctly unescape paths with escaped spaces', async () => {
180
- const fileContent = 'This is the file content.';
181
- const filePath = await createTestFile(path.join(testRootDir, 'path', 'to', 'my file.txt'), fileContent);
182
- const escapedpath = path.join(testRootDir, 'path', 'to', 'my\\ file.txt');
183
- const query = `@${escapedpath}`;
184
- const result = await handleAtCommand({
185
- query,
186
- config: mockConfig,
187
- addItem: mockAddItem,
188
- onDebugMessage: mockOnDebugMessage,
189
- messageId: 125,
190
- signal: abortController.signal,
191
- });
192
- expect(result).toEqual({
193
- processedQuery: [
194
- { text: `@${filePath}` },
195
- { text: '\n--- Content from referenced files ---' },
196
- { text: `\nContent from @${filePath}:\n` },
197
- { text: fileContent },
198
- { text: '\n--- End of content ---' },
199
- ],
200
- shouldProceed: true,
201
- });
202
- expect(mockAddItem).toHaveBeenCalledWith(expect.objectContaining({
203
- type: 'tool_group',
204
- tools: [expect.objectContaining({ status: ToolCallStatus.Success })],
205
- }), 125);
206
- });
207
- it('should handle multiple @file references', async () => {
208
- const content1 = 'Content file1';
209
- const file1Path = await createTestFile(path.join(testRootDir, 'file1.txt'), content1);
210
- const content2 = 'Content file2';
211
- const file2Path = await createTestFile(path.join(testRootDir, 'file2.md'), content2);
212
- const query = `@${file1Path} @${file2Path}`;
213
- const result = await handleAtCommand({
214
- query,
215
- config: mockConfig,
216
- addItem: mockAddItem,
217
- onDebugMessage: mockOnDebugMessage,
218
- messageId: 130,
219
- signal: abortController.signal,
220
- });
221
- expect(result).toEqual({
222
- processedQuery: [
223
- { text: query },
224
- { text: '\n--- Content from referenced files ---' },
225
- { text: `\nContent from @${file1Path}:\n` },
226
- { text: content1 },
227
- { text: `\nContent from @${file2Path}:\n` },
228
- { text: content2 },
229
- { text: '\n--- End of content ---' },
230
- ],
231
- shouldProceed: true,
232
- });
233
- });
234
- it('should handle multiple @file references with interleaved text', async () => {
235
- const text1 = 'Check ';
236
- const content1 = 'C1';
237
- const file1Path = await createTestFile(path.join(testRootDir, 'f1.txt'), content1);
238
- const text2 = ' and ';
239
- const content2 = 'C2';
240
- const file2Path = await createTestFile(path.join(testRootDir, 'f2.md'), content2);
241
- const text3 = ' please.';
242
- const query = `${text1}@${file1Path}${text2}@${file2Path}${text3}`;
243
- const result = await handleAtCommand({
244
- query,
245
- config: mockConfig,
246
- addItem: mockAddItem,
247
- onDebugMessage: mockOnDebugMessage,
248
- messageId: 131,
249
- signal: abortController.signal,
250
- });
251
- expect(result).toEqual({
252
- processedQuery: [
253
- { text: query },
254
- { text: '\n--- Content from referenced files ---' },
255
- { text: `\nContent from @${file1Path}:\n` },
256
- { text: content1 },
257
- { text: `\nContent from @${file2Path}:\n` },
258
- { text: content2 },
259
- { text: '\n--- End of content ---' },
260
- ],
261
- shouldProceed: true,
262
- });
263
- });
264
- it('should handle a mix of valid, invalid, and lone @ references', async () => {
265
- const content1 = 'Valid content 1';
266
- const file1Path = await createTestFile(path.join(testRootDir, 'valid1.txt'), content1);
267
- const invalidFile = 'nonexistent.txt';
268
- const content2 = 'Globbed content';
269
- const file2Path = await createTestFile(path.join(testRootDir, 'resolved', 'valid2.actual'), content2);
270
- const query = `Look at @${file1Path} then @${invalidFile} and also just @ symbol, then @${file2Path}`;
271
- const result = await handleAtCommand({
272
- query,
273
- config: mockConfig,
274
- addItem: mockAddItem,
275
- onDebugMessage: mockOnDebugMessage,
276
- messageId: 132,
277
- signal: abortController.signal,
278
- });
279
- expect(result).toEqual({
280
- processedQuery: [
281
- {
282
- text: `Look at @${file1Path} then @${invalidFile} and also just @ symbol, then @${file2Path}`,
283
- },
284
- { text: '\n--- Content from referenced files ---' },
285
- { text: `\nContent from @${file2Path}:\n` },
286
- { text: content2 },
287
- { text: `\nContent from @${file1Path}:\n` },
288
- { text: content1 },
289
- { text: '\n--- End of content ---' },
290
- ],
291
- shouldProceed: true,
292
- });
293
- expect(mockOnDebugMessage).toHaveBeenCalledWith(`Path ${invalidFile} not found directly, attempting glob search.`);
294
- expect(mockOnDebugMessage).toHaveBeenCalledWith(`Glob search for '**/*${invalidFile}*' found no files or an error. Path ${invalidFile} will be skipped.`);
295
- expect(mockOnDebugMessage).toHaveBeenCalledWith('Lone @ detected, will be treated as text in the modified query.');
296
- });
297
- it('should return original query if all @paths are invalid or lone @', async () => {
298
- const query = 'Check @nonexistent.txt and @ also';
299
- const result = await handleAtCommand({
300
- query,
301
- config: mockConfig,
302
- addItem: mockAddItem,
303
- onDebugMessage: mockOnDebugMessage,
304
- messageId: 133,
305
- signal: abortController.signal,
306
- });
307
- expect(result).toEqual({
308
- processedQuery: [{ text: 'Check @nonexistent.txt and @ also' }],
309
- shouldProceed: true,
310
- });
311
- });
312
- describe('git-aware filtering', () => {
313
- beforeEach(async () => {
314
- await fsPromises.mkdir(path.join(testRootDir, '.git'), {
315
- recursive: true,
316
- });
317
- });
318
- it('should skip git-ignored files in @ commands', async () => {
319
- await createTestFile(path.join(testRootDir, '.gitignore'), 'node_modules/package.json');
320
- const gitIgnoredFile = await createTestFile(path.join(testRootDir, 'node_modules', 'package.json'), 'the file contents');
321
- const query = `@${gitIgnoredFile}`;
322
- const result = await handleAtCommand({
323
- query,
324
- config: mockConfig,
325
- addItem: mockAddItem,
326
- onDebugMessage: mockOnDebugMessage,
327
- messageId: 200,
328
- signal: abortController.signal,
329
- });
330
- expect(result).toEqual({
331
- processedQuery: [{ text: query }],
332
- shouldProceed: true,
333
- });
334
- expect(mockOnDebugMessage).toHaveBeenCalledWith(`Path ${gitIgnoredFile} is git-ignored and will be skipped.`);
335
- expect(mockOnDebugMessage).toHaveBeenCalledWith(`Ignored 1 files:\nGit-ignored: ${gitIgnoredFile}`);
336
- });
337
- it('should process non-git-ignored files normally', async () => {
338
- await createTestFile(path.join(testRootDir, '.gitignore'), 'node_modules/package.json');
339
- const validFile = await createTestFile(path.join(testRootDir, 'src', 'index.ts'), 'console.log("Hello world");');
340
- const query = `@${validFile}`;
341
- const result = await handleAtCommand({
342
- query,
343
- config: mockConfig,
344
- addItem: mockAddItem,
345
- onDebugMessage: mockOnDebugMessage,
346
- messageId: 201,
347
- signal: abortController.signal,
348
- });
349
- expect(result).toEqual({
350
- processedQuery: [
351
- { text: `@${validFile}` },
352
- { text: '\n--- Content from referenced files ---' },
353
- { text: `\nContent from @${validFile}:\n` },
354
- { text: 'console.log("Hello world");' },
355
- { text: '\n--- End of content ---' },
356
- ],
357
- shouldProceed: true,
358
- });
359
- });
360
- it('should handle mixed git-ignored and valid files', async () => {
361
- await createTestFile(path.join(testRootDir, '.gitignore'), '.env');
362
- const validFile = await createTestFile(path.join(testRootDir, 'README.md'), '# Project README');
363
- const gitIgnoredFile = await createTestFile(path.join(testRootDir, '.env'), 'SECRET=123');
364
- const query = `@${validFile} @${gitIgnoredFile}`;
365
- const result = await handleAtCommand({
366
- query,
367
- config: mockConfig,
368
- addItem: mockAddItem,
369
- onDebugMessage: mockOnDebugMessage,
370
- messageId: 202,
371
- signal: abortController.signal,
372
- });
373
- expect(result).toEqual({
374
- processedQuery: [
375
- { text: `@${validFile} @${gitIgnoredFile}` },
376
- { text: '\n--- Content from referenced files ---' },
377
- { text: `\nContent from @${validFile}:\n` },
378
- { text: '# Project README' },
379
- { text: '\n--- End of content ---' },
380
- ],
381
- shouldProceed: true,
382
- });
383
- expect(mockOnDebugMessage).toHaveBeenCalledWith(`Path ${gitIgnoredFile} is git-ignored and will be skipped.`);
384
- expect(mockOnDebugMessage).toHaveBeenCalledWith(`Ignored 1 files:\nGit-ignored: ${gitIgnoredFile}`);
385
- });
386
- it('should always ignore .git directory files', async () => {
387
- const gitFile = await createTestFile(path.join(testRootDir, '.git', 'config'), '[core]\n\trepositoryformatversion = 0\n');
388
- const query = `@${gitFile}`;
389
- const result = await handleAtCommand({
390
- query,
391
- config: mockConfig,
392
- addItem: mockAddItem,
393
- onDebugMessage: mockOnDebugMessage,
394
- messageId: 203,
395
- signal: abortController.signal,
396
- });
397
- expect(result).toEqual({
398
- processedQuery: [{ text: query }],
399
- shouldProceed: true,
400
- });
401
- expect(mockOnDebugMessage).toHaveBeenCalledWith(`Path ${gitFile} is git-ignored and will be skipped.`);
402
- expect(mockOnDebugMessage).toHaveBeenCalledWith(`Ignored 1 files:\nGit-ignored: ${gitFile}`);
403
- });
404
- });
405
- describe('when recursive file search is disabled', () => {
406
- beforeEach(() => {
407
- vi.mocked(mockConfig.getEnableRecursiveFileSearch).mockReturnValue(false);
408
- });
409
- it('should not use glob search for a nonexistent file', async () => {
410
- const invalidFile = 'nonexistent.txt';
411
- const query = `@${invalidFile}`;
412
- const result = await handleAtCommand({
413
- query,
414
- config: mockConfig,
415
- addItem: mockAddItem,
416
- onDebugMessage: mockOnDebugMessage,
417
- messageId: 300,
418
- signal: abortController.signal,
419
- });
420
- expect(mockOnDebugMessage).toHaveBeenCalledWith(`Glob tool not found. Path ${invalidFile} will be skipped.`);
421
- expect(result.processedQuery).toEqual([{ text: query }]);
422
- expect(result.shouldProceed).toBe(true);
423
- });
424
- });
425
- describe('gemini-ignore filtering', () => {
426
- it('should skip gemini-ignored files in @ commands', async () => {
427
- await createTestFile(path.join(testRootDir, '.qwenignore'), 'build/output.js');
428
- const geminiIgnoredFile = await createTestFile(path.join(testRootDir, 'build', 'output.js'), 'console.log("Hello");');
429
- const query = `@${geminiIgnoredFile}`;
430
- const result = await handleAtCommand({
431
- query,
432
- config: mockConfig,
433
- addItem: mockAddItem,
434
- onDebugMessage: mockOnDebugMessage,
435
- messageId: 204,
436
- signal: abortController.signal,
437
- });
438
- expect(result).toEqual({
439
- processedQuery: [{ text: query }],
440
- shouldProceed: true,
441
- });
442
- expect(mockOnDebugMessage).toHaveBeenCalledWith(`Path ${geminiIgnoredFile} is gemini-ignored and will be skipped.`);
443
- expect(mockOnDebugMessage).toHaveBeenCalledWith(`Ignored 1 files:\nGemini-ignored: ${geminiIgnoredFile}`);
444
- });
445
- });
446
- it('should process non-ignored files when .qwenignore is present', async () => {
447
- await createTestFile(path.join(testRootDir, '.qwenignore'), 'build/output.js');
448
- const validFile = await createTestFile(path.join(testRootDir, 'src', 'index.ts'), 'console.log("Hello world");');
449
- const query = `@${validFile}`;
450
- const result = await handleAtCommand({
451
- query,
452
- config: mockConfig,
453
- addItem: mockAddItem,
454
- onDebugMessage: mockOnDebugMessage,
455
- messageId: 205,
456
- signal: abortController.signal,
457
- });
458
- expect(result).toEqual({
459
- processedQuery: [
460
- { text: `@${validFile}` },
461
- { text: '\n--- Content from referenced files ---' },
462
- { text: `\nContent from @${validFile}:\n` },
463
- { text: 'console.log("Hello world");' },
464
- { text: '\n--- End of content ---' },
465
- ],
466
- shouldProceed: true,
467
- });
468
- });
469
- it('should handle mixed gemini-ignored and valid files', async () => {
470
- await createTestFile(path.join(testRootDir, '.qwenignore'), 'dist/bundle.js');
471
- const validFile = await createTestFile(path.join(testRootDir, 'src', 'main.ts'), '// Main application entry');
472
- const geminiIgnoredFile = await createTestFile(path.join(testRootDir, 'dist', 'bundle.js'), 'console.log("bundle");');
473
- const query = `@${validFile} @${geminiIgnoredFile}`;
474
- const result = await handleAtCommand({
475
- query,
476
- config: mockConfig,
477
- addItem: mockAddItem,
478
- onDebugMessage: mockOnDebugMessage,
479
- messageId: 206,
480
- signal: abortController.signal,
481
- });
482
- expect(result).toEqual({
483
- processedQuery: [
484
- { text: `@${validFile} @${geminiIgnoredFile}` },
485
- { text: '\n--- Content from referenced files ---' },
486
- { text: `\nContent from @${validFile}:\n` },
487
- { text: '// Main application entry' },
488
- { text: '\n--- End of content ---' },
489
- ],
490
- shouldProceed: true,
491
- });
492
- expect(mockOnDebugMessage).toHaveBeenCalledWith(`Path ${geminiIgnoredFile} is gemini-ignored and will be skipped.`);
493
- expect(mockOnDebugMessage).toHaveBeenCalledWith(`Ignored 1 files:\nGemini-ignored: ${geminiIgnoredFile}`);
494
- });
495
- describe('punctuation termination in @ commands', () => {
496
- const punctuationTestCases = [
497
- {
498
- name: 'comma',
499
- fileName: 'test.txt',
500
- fileContent: 'File content here',
501
- queryTemplate: (filePath) => `Look at @${filePath}, then explain it.`,
502
- messageId: 400,
503
- },
504
- {
505
- name: 'period',
506
- fileName: 'readme.md',
507
- fileContent: 'File content here',
508
- queryTemplate: (filePath) => `Check @${filePath}. What does it say?`,
509
- messageId: 401,
510
- },
511
- {
512
- name: 'semicolon',
513
- fileName: 'example.js',
514
- fileContent: 'Code example',
515
- queryTemplate: (filePath) => `Review @${filePath}; check for bugs.`,
516
- messageId: 402,
517
- },
518
- {
519
- name: 'exclamation mark',
520
- fileName: 'important.txt',
521
- fileContent: 'Important content',
522
- queryTemplate: (filePath) => `Look at @${filePath}! This is critical.`,
523
- messageId: 403,
524
- },
525
- {
526
- name: 'question mark',
527
- fileName: 'config.json',
528
- fileContent: 'Config settings',
529
- queryTemplate: (filePath) => `What is in @${filePath}? Please explain.`,
530
- messageId: 404,
531
- },
532
- {
533
- name: 'opening parenthesis',
534
- fileName: 'func.ts',
535
- fileContent: 'Function definition',
536
- queryTemplate: (filePath) => `Analyze @${filePath}(the main function).`,
537
- messageId: 405,
538
- },
539
- {
540
- name: 'closing parenthesis',
541
- fileName: 'data.json',
542
- fileContent: 'Test data',
543
- queryTemplate: (filePath) => `Use data from @${filePath}) for testing.`,
544
- messageId: 406,
545
- },
546
- {
547
- name: 'opening square bracket',
548
- fileName: 'array.js',
549
- fileContent: 'Array data',
550
- queryTemplate: (filePath) => `Check @${filePath}[0] for the first element.`,
551
- messageId: 407,
552
- },
553
- {
554
- name: 'closing square bracket',
555
- fileName: 'list.md',
556
- fileContent: 'List content',
557
- queryTemplate: (filePath) => `Review item @${filePath}] from the list.`,
558
- messageId: 408,
559
- },
560
- {
561
- name: 'opening curly brace',
562
- fileName: 'object.ts',
563
- fileContent: 'Object definition',
564
- queryTemplate: (filePath) => `Parse @${filePath}{prop1: value1}.`,
565
- messageId: 409,
566
- },
567
- {
568
- name: 'closing curly brace',
569
- fileName: 'config.yaml',
570
- fileContent: 'Configuration',
571
- queryTemplate: (filePath) => `Use settings from @${filePath}} for deployment.`,
572
- messageId: 410,
573
- },
574
- ];
575
- it.each(punctuationTestCases)('should terminate @path at $name', async ({ fileName, fileContent, queryTemplate, messageId }) => {
576
- const filePath = await createTestFile(path.join(testRootDir, fileName), fileContent);
577
- const query = queryTemplate(filePath);
578
- const result = await handleAtCommand({
579
- query,
580
- config: mockConfig,
581
- addItem: mockAddItem,
582
- onDebugMessage: mockOnDebugMessage,
583
- messageId,
584
- signal: abortController.signal,
585
- });
586
- expect(result).toEqual({
587
- processedQuery: [
588
- { text: query },
589
- { text: '\n--- Content from referenced files ---' },
590
- { text: `\nContent from @${filePath}:\n` },
591
- { text: fileContent },
592
- { text: '\n--- End of content ---' },
593
- ],
594
- shouldProceed: true,
595
- });
596
- });
597
- it('should handle multiple @paths terminated by different punctuation', async () => {
598
- const content1 = 'First file';
599
- const file1Path = await createTestFile(path.join(testRootDir, 'first.txt'), content1);
600
- const content2 = 'Second file';
601
- const file2Path = await createTestFile(path.join(testRootDir, 'second.txt'), content2);
602
- const query = `Compare @${file1Path}, @${file2Path}; what's different?`;
603
- const result = await handleAtCommand({
604
- query,
605
- config: mockConfig,
606
- addItem: mockAddItem,
607
- onDebugMessage: mockOnDebugMessage,
608
- messageId: 411,
609
- signal: abortController.signal,
610
- });
611
- expect(result).toEqual({
612
- processedQuery: [
613
- { text: `Compare @${file1Path}, @${file2Path}; what's different?` },
614
- { text: '\n--- Content from referenced files ---' },
615
- { text: `\nContent from @${file1Path}:\n` },
616
- { text: content1 },
617
- { text: `\nContent from @${file2Path}:\n` },
618
- { text: content2 },
619
- { text: '\n--- End of content ---' },
620
- ],
621
- shouldProceed: true,
622
- });
623
- });
624
- it('should still handle escaped spaces in paths before punctuation', async () => {
625
- const fileContent = 'Spaced file content';
626
- const filePath = await createTestFile(path.join(testRootDir, 'spaced file.txt'), fileContent);
627
- const escapedPath = path.join(testRootDir, 'spaced\\ file.txt');
628
- const query = `Check @${escapedPath}, it has spaces.`;
629
- const result = await handleAtCommand({
630
- query,
631
- config: mockConfig,
632
- addItem: mockAddItem,
633
- onDebugMessage: mockOnDebugMessage,
634
- messageId: 412,
635
- signal: abortController.signal,
636
- });
637
- expect(result).toEqual({
638
- processedQuery: [
639
- { text: `Check @${filePath}, it has spaces.` },
640
- { text: '\n--- Content from referenced files ---' },
641
- { text: `\nContent from @${filePath}:\n` },
642
- { text: fileContent },
643
- { text: '\n--- End of content ---' },
644
- ],
645
- shouldProceed: true,
646
- });
647
- });
648
- it('should not break file paths with periods in extensions', async () => {
649
- const fileContent = 'TypeScript content';
650
- const filePath = await createTestFile(path.join(testRootDir, 'example.d.ts'), fileContent);
651
- const query = `Analyze @${filePath} for type definitions.`;
652
- const result = await handleAtCommand({
653
- query,
654
- config: mockConfig,
655
- addItem: mockAddItem,
656
- onDebugMessage: mockOnDebugMessage,
657
- messageId: 413,
658
- signal: abortController.signal,
659
- });
660
- expect(result).toEqual({
661
- processedQuery: [
662
- { text: `Analyze @${filePath} for type definitions.` },
663
- { text: '\n--- Content from referenced files ---' },
664
- { text: `\nContent from @${filePath}:\n` },
665
- { text: fileContent },
666
- { text: '\n--- End of content ---' },
667
- ],
668
- shouldProceed: true,
669
- });
670
- });
671
- it('should handle file paths ending with period followed by space', async () => {
672
- const fileContent = 'Config content';
673
- const filePath = await createTestFile(path.join(testRootDir, 'config.json'), fileContent);
674
- const query = `Check @${filePath}. This file contains settings.`;
675
- const result = await handleAtCommand({
676
- query,
677
- config: mockConfig,
678
- addItem: mockAddItem,
679
- onDebugMessage: mockOnDebugMessage,
680
- messageId: 414,
681
- signal: abortController.signal,
682
- });
683
- expect(result).toEqual({
684
- processedQuery: [
685
- { text: `Check @${filePath}. This file contains settings.` },
686
- { text: '\n--- Content from referenced files ---' },
687
- { text: `\nContent from @${filePath}:\n` },
688
- { text: fileContent },
689
- { text: '\n--- End of content ---' },
690
- ],
691
- shouldProceed: true,
692
- });
693
- });
694
- it('should handle comma termination with complex file paths', async () => {
695
- const fileContent = 'Package info';
696
- const filePath = await createTestFile(path.join(testRootDir, 'package.json'), fileContent);
697
- const query = `Review @${filePath}, then check dependencies.`;
698
- const result = await handleAtCommand({
699
- query,
700
- config: mockConfig,
701
- addItem: mockAddItem,
702
- onDebugMessage: mockOnDebugMessage,
703
- messageId: 415,
704
- signal: abortController.signal,
705
- });
706
- expect(result).toEqual({
707
- processedQuery: [
708
- { text: `Review @${filePath}, then check dependencies.` },
709
- { text: '\n--- Content from referenced files ---' },
710
- { text: `\nContent from @${filePath}:\n` },
711
- { text: fileContent },
712
- { text: '\n--- End of content ---' },
713
- ],
714
- shouldProceed: true,
715
- });
716
- });
717
- it('should not terminate at period within file name', async () => {
718
- const fileContent = 'Version info';
719
- const filePath = await createTestFile(path.join(testRootDir, 'version.1.2.3.txt'), fileContent);
720
- const query = `Check @${filePath} contains version information.`;
721
- const result = await handleAtCommand({
722
- query,
723
- config: mockConfig,
724
- addItem: mockAddItem,
725
- onDebugMessage: mockOnDebugMessage,
726
- messageId: 416,
727
- signal: abortController.signal,
728
- });
729
- expect(result).toEqual({
730
- processedQuery: [
731
- { text: `Check @${filePath} contains version information.` },
732
- { text: '\n--- Content from referenced files ---' },
733
- { text: `\nContent from @${filePath}:\n` },
734
- { text: fileContent },
735
- { text: '\n--- End of content ---' },
736
- ],
737
- shouldProceed: true,
738
- });
739
- });
740
- it('should handle end of string termination for period and comma', async () => {
741
- const fileContent = 'End file content';
742
- const filePath = await createTestFile(path.join(testRootDir, 'end.txt'), fileContent);
743
- const query = `Show me @${filePath}.`;
744
- const result = await handleAtCommand({
745
- query,
746
- config: mockConfig,
747
- addItem: mockAddItem,
748
- onDebugMessage: mockOnDebugMessage,
749
- messageId: 417,
750
- signal: abortController.signal,
751
- });
752
- expect(result).toEqual({
753
- processedQuery: [
754
- { text: `Show me @${filePath}.` },
755
- { text: '\n--- Content from referenced files ---' },
756
- { text: `\nContent from @${filePath}:\n` },
757
- { text: fileContent },
758
- { text: '\n--- End of content ---' },
759
- ],
760
- shouldProceed: true,
761
- });
762
- });
763
- it('should handle files with special characters in names', async () => {
764
- const fileContent = 'File with special chars content';
765
- const filePath = await createTestFile(path.join(testRootDir, 'file$with&special#chars.txt'), fileContent);
766
- const query = `Check @${filePath} for content.`;
767
- const result = await handleAtCommand({
768
- query,
769
- config: mockConfig,
770
- addItem: mockAddItem,
771
- onDebugMessage: mockOnDebugMessage,
772
- messageId: 418,
773
- signal: abortController.signal,
774
- });
775
- expect(result).toEqual({
776
- processedQuery: [
777
- { text: `Check @${filePath} for content.` },
778
- { text: '\n--- Content from referenced files ---' },
779
- { text: `\nContent from @${filePath}:\n` },
780
- { text: fileContent },
781
- { text: '\n--- End of content ---' },
782
- ],
783
- shouldProceed: true,
784
- });
785
- });
786
- it('should handle basic file names without special characters', async () => {
787
- const fileContent = 'Basic file content';
788
- const filePath = await createTestFile(path.join(testRootDir, 'basicfile.txt'), fileContent);
789
- const query = `Check @${filePath} please.`;
790
- const result = await handleAtCommand({
791
- query,
792
- config: mockConfig,
793
- addItem: mockAddItem,
794
- onDebugMessage: mockOnDebugMessage,
795
- messageId: 421,
796
- signal: abortController.signal,
797
- });
798
- expect(result).toEqual({
799
- processedQuery: [
800
- { text: `Check @${filePath} please.` },
801
- { text: '\n--- Content from referenced files ---' },
802
- { text: `\nContent from @${filePath}:\n` },
803
- { text: fileContent },
804
- { text: '\n--- End of content ---' },
805
- ],
806
- shouldProceed: true,
807
- });
808
- });
809
- });
810
- it("should not add the user's turn to history, as that is the caller's responsibility", async () => {
811
- // Arrange
812
- const fileContent = 'This is the file content.';
813
- const filePath = await createTestFile(path.join(testRootDir, 'path', 'to', 'another-file.txt'), fileContent);
814
- const query = `A query with @${filePath}`;
815
- // Act
816
- await handleAtCommand({
817
- query,
818
- config: mockConfig,
819
- addItem: mockAddItem,
820
- onDebugMessage: mockOnDebugMessage,
821
- messageId: 999,
822
- signal: abortController.signal,
823
- });
824
- // Assert
825
- // It SHOULD be called for the tool_group
826
- expect(mockAddItem).toHaveBeenCalledWith(expect.objectContaining({ type: 'tool_group' }), 999);
827
- // It should NOT have been called for the user turn
828
- const userTurnCalls = mockAddItem.mock.calls.filter((call) => call[0].type === 'user');
829
- expect(userTurnCalls).toHaveLength(0);
830
- });
831
- });
832
- //# sourceMappingURL=atCommandProcessor.test.js.map