@machina.ai/cell-cli 1.0.21-rc3 → 1.2.2-rc1

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 (556) hide show
  1. package/dist/index.js +9 -0
  2. package/dist/index.js.map +1 -1
  3. package/dist/package.json +7 -8
  4. package/dist/src/commands/extensions/disable.d.ts +14 -0
  5. package/dist/src/commands/extensions/disable.js +42 -0
  6. package/dist/src/commands/extensions/disable.js.map +1 -0
  7. package/dist/src/commands/extensions/enable.d.ts +14 -0
  8. package/dist/src/commands/extensions/enable.js +48 -0
  9. package/dist/src/commands/extensions/enable.js.map +1 -0
  10. package/dist/src/commands/extensions/install.d.ts +13 -0
  11. package/dist/src/commands/extensions/install.js +48 -0
  12. package/dist/src/commands/extensions/install.js.map +1 -0
  13. package/dist/src/commands/extensions/install.test.d.ts +6 -0
  14. package/dist/src/commands/extensions/install.test.js +19 -0
  15. package/dist/src/commands/extensions/install.test.js.map +1 -0
  16. package/dist/src/commands/extensions/list.d.ts +8 -0
  17. package/dist/src/commands/extensions/list.js +32 -0
  18. package/dist/src/commands/extensions/list.js.map +1 -0
  19. package/dist/src/commands/extensions/uninstall.d.ts +12 -0
  20. package/dist/src/commands/extensions/uninstall.js +38 -0
  21. package/dist/src/commands/extensions/uninstall.js.map +1 -0
  22. package/dist/src/commands/extensions/uninstall.test.d.ts +6 -0
  23. package/dist/src/commands/extensions/uninstall.test.js +15 -0
  24. package/dist/src/commands/extensions/uninstall.test.js.map +1 -0
  25. package/dist/src/commands/extensions/update.d.ts +13 -0
  26. package/dist/src/commands/extensions/update.js +60 -0
  27. package/dist/src/commands/extensions/update.js.map +1 -0
  28. package/dist/src/commands/extensions.d.ts +7 -0
  29. package/dist/src/commands/extensions.js +29 -0
  30. package/dist/src/commands/extensions.js.map +1 -0
  31. package/dist/src/commands/mcp/list.js +1 -1
  32. package/dist/src/commands/mcp/list.js.map +1 -1
  33. package/dist/src/config/auth.js +2 -2
  34. package/dist/src/config/auth.js.map +1 -1
  35. package/dist/src/config/auth.test.js +4 -3
  36. package/dist/src/config/auth.test.js.map +1 -1
  37. package/dist/src/config/config.d.ts +10 -7
  38. package/dist/src/config/config.js +95 -56
  39. package/dist/src/config/config.js.map +1 -1
  40. package/dist/src/config/extension.d.ts +42 -2
  41. package/dist/src/config/extension.js +285 -15
  42. package/dist/src/config/extension.js.map +1 -1
  43. package/dist/src/config/extensions/variableSchema.d.ts +28 -0
  44. package/dist/src/config/extensions/variableSchema.js +18 -0
  45. package/dist/src/config/extensions/variableSchema.js.map +1 -0
  46. package/dist/src/config/extensions/variables.d.ts +17 -0
  47. package/dist/src/config/extensions/variables.js +40 -0
  48. package/dist/src/config/extensions/variables.js.map +1 -0
  49. package/dist/src/config/extensions/variables.test.d.ts +6 -0
  50. package/dist/src/config/extensions/variables.test.js +17 -0
  51. package/dist/src/config/extensions/variables.test.js.map +1 -0
  52. package/dist/src/config/keyBindings.test.js +1 -1
  53. package/dist/src/config/keyBindings.test.js.map +1 -1
  54. package/dist/src/config/sandboxConfig.d.ts +2 -2
  55. package/dist/src/config/sandboxConfig.js +5 -7
  56. package/dist/src/config/sandboxConfig.js.map +1 -1
  57. package/dist/src/config/settings.d.ts +13 -7
  58. package/dist/src/config/settings.js +396 -118
  59. package/dist/src/config/settings.js.map +1 -1
  60. package/dist/src/config/settingsSchema.d.ts +654 -338
  61. package/dist/src/config/settingsSchema.js +649 -333
  62. package/dist/src/config/settingsSchema.js.map +1 -1
  63. package/dist/src/config/settingsSchema.test.js +87 -89
  64. package/dist/src/config/settingsSchema.test.js.map +1 -1
  65. package/dist/src/config/trustedFolders.d.ts +14 -4
  66. package/dist/src/config/trustedFolders.js +53 -41
  67. package/dist/src/config/trustedFolders.js.map +1 -1
  68. package/dist/src/config/trustedFolders.test.js +43 -5
  69. package/dist/src/config/trustedFolders.test.js.map +1 -1
  70. package/dist/src/gemini.d.ts +3 -1
  71. package/dist/src/gemini.js +116 -51
  72. package/dist/src/gemini.js.map +1 -1
  73. package/dist/src/gemini.test.js +79 -25
  74. package/dist/src/gemini.test.js.map +1 -1
  75. package/dist/src/generated/git-commit.d.ts +2 -2
  76. package/dist/src/generated/git-commit.js +2 -2
  77. package/dist/src/generated/git-commit.js.map +1 -1
  78. package/dist/src/nonInteractiveCli.d.ts +1 -1
  79. package/dist/src/nonInteractiveCli.js +25 -37
  80. package/dist/src/nonInteractiveCli.js.map +1 -1
  81. package/dist/src/services/BuiltinCommandLoader.d.ts +3 -3
  82. package/dist/src/services/CommandService.d.ts +2 -2
  83. package/dist/src/services/CommandService.test.js +1 -0
  84. package/dist/src/services/CommandService.test.js.map +1 -1
  85. package/dist/src/services/FileCommandLoader.d.ts +5 -3
  86. package/dist/src/services/FileCommandLoader.js +33 -16
  87. package/dist/src/services/FileCommandLoader.js.map +1 -1
  88. package/dist/src/services/McpPromptLoader.d.ts +14 -4
  89. package/dist/src/services/McpPromptLoader.js +43 -17
  90. package/dist/src/services/McpPromptLoader.js.map +1 -1
  91. package/dist/src/services/McpPromptLoader.test.d.ts +6 -0
  92. package/dist/src/services/McpPromptLoader.test.js +114 -0
  93. package/dist/src/services/McpPromptLoader.test.js.map +1 -0
  94. package/dist/src/services/prompt-processors/argumentProcessor.d.ts +3 -3
  95. package/dist/src/services/prompt-processors/argumentProcessor.js +3 -2
  96. package/dist/src/services/prompt-processors/argumentProcessor.js.map +1 -1
  97. package/dist/src/services/prompt-processors/atFileProcessor.d.ts +12 -0
  98. package/dist/src/services/prompt-processors/atFileProcessor.js +62 -0
  99. package/dist/src/services/prompt-processors/atFileProcessor.js.map +1 -0
  100. package/dist/src/services/prompt-processors/atFileProcessor.test.d.ts +6 -0
  101. package/dist/src/services/prompt-processors/atFileProcessor.test.js +174 -0
  102. package/dist/src/services/prompt-processors/atFileProcessor.test.js.map +1 -0
  103. package/dist/src/services/prompt-processors/injectionParser.d.ts +29 -0
  104. package/dist/src/services/prompt-processors/injectionParser.js +60 -0
  105. package/dist/src/services/prompt-processors/injectionParser.js.map +1 -0
  106. package/dist/src/services/prompt-processors/injectionParser.test.d.ts +6 -0
  107. package/dist/src/services/prompt-processors/injectionParser.test.js +189 -0
  108. package/dist/src/services/prompt-processors/injectionParser.test.js.map +1 -0
  109. package/dist/src/services/prompt-processors/shellProcessor.d.ts +4 -12
  110. package/dist/src/services/prompt-processors/shellProcessor.js +19 -68
  111. package/dist/src/services/prompt-processors/shellProcessor.js.map +1 -1
  112. package/dist/src/services/prompt-processors/types.d.ts +13 -8
  113. package/dist/src/services/prompt-processors/types.js +4 -0
  114. package/dist/src/services/prompt-processors/types.js.map +1 -1
  115. package/dist/src/services/types.d.ts +1 -1
  116. package/dist/src/test-utils/customMatchers.js +0 -6
  117. package/dist/src/test-utils/customMatchers.js.map +1 -1
  118. package/dist/src/test-utils/mockCommandContext.d.ts +1 -1
  119. package/dist/src/test-utils/render.d.ts +1 -1
  120. package/dist/src/ui/App.d.ts +2 -2
  121. package/dist/src/ui/App.js +124 -66
  122. package/dist/src/ui/App.js.map +1 -1
  123. package/dist/src/ui/IdeIntegrationNudge.d.ts +1 -1
  124. package/dist/src/ui/IdeIntegrationNudge.js +2 -7
  125. package/dist/src/ui/IdeIntegrationNudge.js.map +1 -1
  126. package/dist/src/ui/colors.d.ts +1 -1
  127. package/dist/src/ui/commands/aboutCommand.d.ts +1 -1
  128. package/dist/src/ui/commands/aboutCommand.js +1 -1
  129. package/dist/src/ui/commands/aboutCommand.js.map +1 -1
  130. package/dist/src/ui/commands/authCommand.d.ts +1 -1
  131. package/dist/src/ui/commands/authCommand.js.map +1 -1
  132. package/dist/src/ui/commands/chatCommand.d.ts +1 -1
  133. package/dist/src/ui/commands/chatCommand.js +5 -4
  134. package/dist/src/ui/commands/chatCommand.js.map +1 -1
  135. package/dist/src/ui/commands/clearCommand.d.ts +1 -1
  136. package/dist/src/ui/commands/clearCommand.js.map +1 -1
  137. package/dist/src/ui/commands/compressCommand.d.ts +1 -1
  138. package/dist/src/ui/commands/compressCommand.js +2 -0
  139. package/dist/src/ui/commands/compressCommand.js.map +1 -1
  140. package/dist/src/ui/commands/copyCommand.d.ts +1 -1
  141. package/dist/src/ui/commands/copyCommand.js +2 -2
  142. package/dist/src/ui/commands/copyCommand.js.map +1 -1
  143. package/dist/src/ui/commands/directoryCommand.d.ts +1 -1
  144. package/dist/src/ui/commands/directoryCommand.js +5 -4
  145. package/dist/src/ui/commands/directoryCommand.js.map +1 -1
  146. package/dist/src/ui/commands/helpCommand.d.ts +1 -1
  147. package/dist/src/ui/commands/helpCommand.js.map +1 -1
  148. package/dist/src/ui/commands/ideCommand.d.ts +2 -2
  149. package/dist/src/ui/commands/ideCommand.js +31 -12
  150. package/dist/src/ui/commands/ideCommand.js.map +1 -1
  151. package/dist/src/ui/commands/initCommand.d.ts +1 -1
  152. package/dist/src/ui/commands/initCommand.js +3 -3
  153. package/dist/src/ui/commands/initCommand.js.map +1 -1
  154. package/dist/src/ui/commands/mcpCommand.d.ts +1 -1
  155. package/dist/src/ui/commands/mcpCommand.js +4 -4
  156. package/dist/src/ui/commands/mcpCommand.js.map +1 -1
  157. package/dist/src/ui/commands/memoryCommand.d.ts +1 -1
  158. package/dist/src/ui/commands/memoryCommand.js +4 -3
  159. package/dist/src/ui/commands/memoryCommand.js.map +1 -1
  160. package/dist/src/ui/commands/privacyCommand.d.ts +1 -1
  161. package/dist/src/ui/commands/privacyCommand.js.map +1 -1
  162. package/dist/src/ui/commands/restoreCommand.d.ts +1 -1
  163. package/dist/src/ui/commands/restoreCommand.js +5 -9
  164. package/dist/src/ui/commands/restoreCommand.js.map +1 -1
  165. package/dist/src/ui/commands/settingsCommand.d.ts +1 -1
  166. package/dist/src/ui/commands/settingsCommand.js.map +1 -1
  167. package/dist/src/ui/commands/setupGithubCommand.d.ts +3 -1
  168. package/dist/src/ui/commands/setupGithubCommand.js +48 -9
  169. package/dist/src/ui/commands/setupGithubCommand.js.map +1 -1
  170. package/dist/src/ui/commands/setupGithubCommand.test.js +100 -7
  171. package/dist/src/ui/commands/setupGithubCommand.test.js.map +1 -1
  172. package/dist/src/ui/commands/statsCommand.js.map +1 -1
  173. package/dist/src/ui/commands/terminalSetupCommand.d.ts +1 -1
  174. package/dist/src/ui/commands/terminalSetupCommand.js.map +1 -1
  175. package/dist/src/ui/commands/themeCommand.d.ts +1 -1
  176. package/dist/src/ui/commands/themeCommand.js.map +1 -1
  177. package/dist/src/ui/commands/toolsCommand.js +2 -2
  178. package/dist/src/ui/commands/toolsCommand.js.map +1 -1
  179. package/dist/src/ui/commands/types.d.ts +7 -8
  180. package/dist/src/ui/commands/types.js +1 -0
  181. package/dist/src/ui/commands/types.js.map +1 -1
  182. package/dist/src/ui/commands/vimCommand.d.ts +1 -1
  183. package/dist/src/ui/commands/vimCommand.js.map +1 -1
  184. package/dist/src/ui/components/AboutBox.d.ts +1 -1
  185. package/dist/src/ui/components/AsciiArt.d.ts +3 -3
  186. package/dist/src/ui/components/AsciiArt.js +9 -9
  187. package/dist/src/ui/components/AuthDialog.d.ts +3 -2
  188. package/dist/src/ui/components/AuthDialog.js +7 -7
  189. package/dist/src/ui/components/AuthDialog.js.map +1 -1
  190. package/dist/src/ui/components/AuthDialog.test.js +36 -18
  191. package/dist/src/ui/components/AuthDialog.test.js.map +1 -1
  192. package/dist/src/ui/components/AuthInProgress.d.ts +1 -1
  193. package/dist/src/ui/components/AuthInProgress.js +0 -5
  194. package/dist/src/ui/components/AuthInProgress.js.map +1 -1
  195. package/dist/src/ui/components/AutoAcceptIndicator.d.ts +1 -1
  196. package/dist/src/ui/components/ConsoleSummaryDisplay.d.ts +1 -1
  197. package/dist/src/ui/components/ContextSummaryDisplay.d.ts +1 -1
  198. package/dist/src/ui/components/ContextSummaryDisplay.js +1 -0
  199. package/dist/src/ui/components/ContextSummaryDisplay.js.map +1 -1
  200. package/dist/src/ui/components/DetailedMessagesDisplay.d.ts +2 -2
  201. package/dist/src/ui/components/DetailedMessagesDisplay.js +1 -1
  202. package/dist/src/ui/components/DetailedMessagesDisplay.js.map +1 -1
  203. package/dist/src/ui/components/EditorSettingsDialog.d.ts +4 -3
  204. package/dist/src/ui/components/EditorSettingsDialog.js +8 -11
  205. package/dist/src/ui/components/EditorSettingsDialog.js.map +1 -1
  206. package/dist/src/ui/components/FolderTrustDialog.d.ts +2 -1
  207. package/dist/src/ui/components/FolderTrustDialog.js +13 -5
  208. package/dist/src/ui/components/FolderTrustDialog.js.map +1 -1
  209. package/dist/src/ui/components/FolderTrustDialog.test.js +55 -3
  210. package/dist/src/ui/components/FolderTrustDialog.test.js.map +1 -1
  211. package/dist/src/ui/components/Footer.d.ts +1 -1
  212. package/dist/src/ui/components/GeminiRespondingSpinner.d.ts +1 -1
  213. package/dist/src/ui/components/GeminiRespondingSpinner.js +5 -3
  214. package/dist/src/ui/components/GeminiRespondingSpinner.js.map +1 -1
  215. package/dist/src/ui/components/Header.d.ts +1 -1
  216. package/dist/src/ui/components/Help.d.ts +2 -2
  217. package/dist/src/ui/components/Help.js +1 -1
  218. package/dist/src/ui/components/Help.js.map +1 -1
  219. package/dist/src/ui/components/HistoryItemDisplay.d.ts +4 -4
  220. package/dist/src/ui/components/HistoryItemDisplay.test.js +2 -0
  221. package/dist/src/ui/components/HistoryItemDisplay.test.js.map +1 -1
  222. package/dist/src/ui/components/InputPrompt.d.ts +5 -5
  223. package/dist/src/ui/components/InputPrompt.js +142 -20
  224. package/dist/src/ui/components/InputPrompt.js.map +1 -1
  225. package/dist/src/ui/components/LoadingIndicator.d.ts +2 -2
  226. package/dist/src/ui/components/MemoryUsageDisplay.d.ts +1 -1
  227. package/dist/src/ui/components/MemoryUsageDisplay.js +0 -5
  228. package/dist/src/ui/components/MemoryUsageDisplay.js.map +1 -1
  229. package/dist/src/ui/components/ModelStatsDisplay.d.ts +1 -1
  230. package/dist/src/ui/components/ModelStatsDisplay.js.map +1 -1
  231. package/dist/src/ui/components/PrepareLabel.d.ts +1 -1
  232. package/dist/src/ui/components/ProQuotaDialog.d.ts +13 -0
  233. package/dist/src/ui/components/ProQuotaDialog.js +21 -0
  234. package/dist/src/ui/components/ProQuotaDialog.js.map +1 -0
  235. package/dist/src/ui/components/ProQuotaDialog.test.d.ts +6 -0
  236. package/dist/src/ui/components/ProQuotaDialog.test.js +56 -0
  237. package/dist/src/ui/components/ProQuotaDialog.test.js.map +1 -0
  238. package/dist/src/ui/components/SessionSummaryDisplay.d.ts +1 -1
  239. package/dist/src/ui/components/SettingsDialog.d.ts +2 -1
  240. package/dist/src/ui/components/SettingsDialog.js +67 -36
  241. package/dist/src/ui/components/SettingsDialog.js.map +1 -1
  242. package/dist/src/ui/components/SettingsDialog.test.js +134 -56
  243. package/dist/src/ui/components/SettingsDialog.test.js.map +1 -1
  244. package/dist/src/ui/components/ShellConfirmationDialog.d.ts +1 -1
  245. package/dist/src/ui/components/ShellConfirmationDialog.js +1 -1
  246. package/dist/src/ui/components/ShellConfirmationDialog.js.map +1 -1
  247. package/dist/src/ui/components/ShellModeIndicator.d.ts +1 -1
  248. package/dist/src/ui/components/StatsDisplay.d.ts +1 -1
  249. package/dist/src/ui/components/StatsDisplay.js +3 -3
  250. package/dist/src/ui/components/StatsDisplay.js.map +1 -1
  251. package/dist/src/ui/components/SuggestionsDisplay.js +12 -4
  252. package/dist/src/ui/components/SuggestionsDisplay.js.map +1 -1
  253. package/dist/src/ui/components/ThemeDialog.d.ts +3 -2
  254. package/dist/src/ui/components/ThemeDialog.js +5 -10
  255. package/dist/src/ui/components/ThemeDialog.js.map +1 -1
  256. package/dist/src/ui/components/Tips.d.ts +1 -1
  257. package/dist/src/ui/components/Tips.js +1 -0
  258. package/dist/src/ui/components/Tips.js.map +1 -1
  259. package/dist/src/ui/components/ToolStatsDisplay.d.ts +1 -1
  260. package/dist/src/ui/components/WorkspaceMigrationDialog.d.ts +11 -0
  261. package/dist/src/ui/components/WorkspaceMigrationDialog.js +42 -0
  262. package/dist/src/ui/components/WorkspaceMigrationDialog.js.map +1 -0
  263. package/dist/src/ui/components/messages/CompressionMessage.d.ts +2 -2
  264. package/dist/src/ui/components/messages/CompressionMessage.js +2 -1
  265. package/dist/src/ui/components/messages/CompressionMessage.js.map +1 -1
  266. package/dist/src/ui/components/messages/DiffRenderer.d.ts +1 -1
  267. package/dist/src/ui/components/messages/DiffRenderer.js +6 -2
  268. package/dist/src/ui/components/messages/DiffRenderer.js.map +1 -1
  269. package/dist/src/ui/components/messages/ErrorMessage.d.ts +1 -1
  270. package/dist/src/ui/components/messages/GeminiMessage.d.ts +1 -1
  271. package/dist/src/ui/components/messages/GeminiMessage.js +2 -1
  272. package/dist/src/ui/components/messages/GeminiMessage.js.map +1 -1
  273. package/dist/src/ui/components/messages/GeminiMessageContent.d.ts +1 -1
  274. package/dist/src/ui/components/messages/InfoMessage.d.ts +1 -1
  275. package/dist/src/ui/components/messages/ToolConfirmationMessage.d.ts +3 -3
  276. package/dist/src/ui/components/messages/ToolConfirmationMessage.js +41 -24
  277. package/dist/src/ui/components/messages/ToolConfirmationMessage.js.map +1 -1
  278. package/dist/src/ui/components/messages/ToolConfirmationMessage.test.js +79 -2
  279. package/dist/src/ui/components/messages/ToolConfirmationMessage.test.js.map +1 -1
  280. package/dist/src/ui/components/messages/ToolGroupMessage.d.ts +4 -4
  281. package/dist/src/ui/components/messages/ToolGroupMessage.js +1 -6
  282. package/dist/src/ui/components/messages/ToolGroupMessage.js.map +1 -1
  283. package/dist/src/ui/components/messages/ToolGroupMessage.test.d.ts +6 -0
  284. package/dist/src/ui/components/messages/ToolGroupMessage.test.js +259 -0
  285. package/dist/src/ui/components/messages/ToolGroupMessage.test.js.map +1 -0
  286. package/dist/src/ui/components/messages/ToolMessage.d.ts +1 -1
  287. package/dist/src/ui/components/messages/ToolMessage.js +2 -1
  288. package/dist/src/ui/components/messages/ToolMessage.js.map +1 -1
  289. package/dist/src/ui/components/messages/ToolMessage.test.js +6 -6
  290. package/dist/src/ui/components/messages/ToolMessage.test.js.map +1 -1
  291. package/dist/src/ui/components/messages/UserMessage.d.ts +1 -1
  292. package/dist/src/ui/components/messages/UserMessage.js +4 -2
  293. package/dist/src/ui/components/messages/UserMessage.js.map +1 -1
  294. package/dist/src/ui/components/messages/UserShellMessage.d.ts +1 -1
  295. package/dist/src/ui/components/shared/MaxSizedBox.js.map +1 -1
  296. package/dist/src/ui/components/shared/RadioButtonSelect.d.ts +1 -1
  297. package/dist/src/ui/components/shared/RadioButtonSelect.js +1 -6
  298. package/dist/src/ui/components/shared/RadioButtonSelect.js.map +1 -1
  299. package/dist/src/ui/components/shared/text-buffer.js +5 -49
  300. package/dist/src/ui/components/shared/text-buffer.js.map +1 -1
  301. package/dist/src/ui/components/shared/vim-buffer-actions.d.ts +1 -1
  302. package/dist/src/ui/components/shared/vim-buffer-actions.js.map +1 -1
  303. package/dist/src/ui/constants.d.ts +8 -0
  304. package/dist/src/ui/constants.js +9 -0
  305. package/dist/src/ui/constants.js.map +1 -1
  306. package/dist/src/ui/contexts/KeypressContext.d.ts +4 -3
  307. package/dist/src/ui/contexts/KeypressContext.js +34 -25
  308. package/dist/src/ui/contexts/KeypressContext.js.map +1 -1
  309. package/dist/src/ui/contexts/KeypressContext.test.js +176 -10
  310. package/dist/src/ui/contexts/KeypressContext.test.js.map +1 -1
  311. package/dist/src/ui/contexts/OverflowContext.d.ts +1 -1
  312. package/dist/src/ui/contexts/OverflowContext.js +0 -5
  313. package/dist/src/ui/contexts/OverflowContext.js.map +1 -1
  314. package/dist/src/ui/contexts/SessionContext.d.ts +2 -2
  315. package/dist/src/ui/contexts/SessionContext.js +1 -6
  316. package/dist/src/ui/contexts/SessionContext.js.map +1 -1
  317. package/dist/src/ui/contexts/SettingsContext.d.ts +1 -1
  318. package/dist/src/ui/contexts/StreamingContext.d.ts +1 -1
  319. package/dist/src/ui/contexts/VimModeContext.d.ts +1 -1
  320. package/dist/src/ui/contexts/VimModeContext.js +4 -4
  321. package/dist/src/ui/contexts/VimModeContext.js.map +1 -1
  322. package/dist/src/ui/hooks/atCommandProcessor.d.ts +3 -3
  323. package/dist/src/ui/hooks/atCommandProcessor.js +4 -7
  324. package/dist/src/ui/hooks/atCommandProcessor.js.map +1 -1
  325. package/dist/src/ui/hooks/atCommandProcessor.test.js +33 -10
  326. package/dist/src/ui/hooks/atCommandProcessor.test.js.map +1 -1
  327. package/dist/src/ui/hooks/shellCommandProcessor.d.ts +3 -3
  328. package/dist/src/ui/hooks/shellCommandProcessor.js +15 -19
  329. package/dist/src/ui/hooks/shellCommandProcessor.js.map +1 -1
  330. package/dist/src/ui/hooks/shellCommandProcessor.test.js +16 -19
  331. package/dist/src/ui/hooks/shellCommandProcessor.test.js.map +1 -1
  332. package/dist/src/ui/hooks/slashCommandProcessor.d.ts +5 -4
  333. package/dist/src/ui/hooks/slashCommandProcessor.js +8 -6
  334. package/dist/src/ui/hooks/slashCommandProcessor.js.map +1 -1
  335. package/dist/src/ui/hooks/useAtCompletion.d.ts +2 -2
  336. package/dist/src/ui/hooks/useAtCompletion.js +3 -2
  337. package/dist/src/ui/hooks/useAtCompletion.js.map +1 -1
  338. package/dist/src/ui/hooks/useAuthCommand.d.ts +2 -2
  339. package/dist/src/ui/hooks/useAuthCommand.js +5 -4
  340. package/dist/src/ui/hooks/useAuthCommand.js.map +1 -1
  341. package/dist/src/ui/hooks/useAutoAcceptIndicator.d.ts +3 -1
  342. package/dist/src/ui/hooks/useAutoAcceptIndicator.js +13 -4
  343. package/dist/src/ui/hooks/useAutoAcceptIndicator.js.map +1 -1
  344. package/dist/src/ui/hooks/useAutoAcceptIndicator.test.js +122 -2
  345. package/dist/src/ui/hooks/useAutoAcceptIndicator.test.js.map +1 -1
  346. package/dist/src/ui/hooks/useCommandCompletion.d.ts +8 -5
  347. package/dist/src/ui/hooks/useCommandCompletion.js +30 -9
  348. package/dist/src/ui/hooks/useCommandCompletion.js.map +1 -1
  349. package/dist/src/ui/hooks/useCompletion.d.ts +1 -1
  350. package/dist/src/ui/hooks/useCompletion.js +1 -1
  351. package/dist/src/ui/hooks/useCompletion.js.map +1 -1
  352. package/dist/src/ui/hooks/useConsoleMessages.d.ts +1 -1
  353. package/dist/src/ui/hooks/useEditorSettings.d.ts +2 -2
  354. package/dist/src/ui/hooks/useEditorSettings.js.map +1 -1
  355. package/dist/src/ui/hooks/useEditorSettings.test.js.map +1 -1
  356. package/dist/src/ui/hooks/useFolderTrust.d.ts +2 -1
  357. package/dist/src/ui/hooks/useFolderTrust.js +25 -12
  358. package/dist/src/ui/hooks/useFolderTrust.js.map +1 -1
  359. package/dist/src/ui/hooks/useGeminiStream.d.ts +6 -5
  360. package/dist/src/ui/hooks/useGeminiStream.js +66 -45
  361. package/dist/src/ui/hooks/useGeminiStream.js.map +1 -1
  362. package/dist/src/ui/hooks/useGitBranchName.js +1 -1
  363. package/dist/src/ui/hooks/useGitBranchName.js.map +1 -1
  364. package/dist/src/ui/hooks/useGitBranchName.test.js +1 -1
  365. package/dist/src/ui/hooks/useGitBranchName.test.js.map +1 -1
  366. package/dist/src/ui/hooks/useHistoryManager.d.ts +1 -1
  367. package/dist/src/ui/hooks/useInputHistoryStore.d.ts +19 -0
  368. package/dist/src/ui/hooks/useInputHistoryStore.js +81 -0
  369. package/dist/src/ui/hooks/useInputHistoryStore.js.map +1 -0
  370. package/dist/src/ui/hooks/useInputHistoryStore.test.d.ts +6 -0
  371. package/dist/src/ui/hooks/useInputHistoryStore.test.js +234 -0
  372. package/dist/src/ui/hooks/useInputHistoryStore.test.js.map +1 -0
  373. package/dist/src/ui/hooks/useKeypress.d.ts +2 -2
  374. package/dist/src/ui/hooks/useKeypress.js +1 -1
  375. package/dist/src/ui/hooks/useKeypress.js.map +1 -1
  376. package/dist/src/ui/hooks/useLogger.d.ts +2 -1
  377. package/dist/src/ui/hooks/useLogger.js +3 -3
  378. package/dist/src/ui/hooks/useLogger.js.map +1 -1
  379. package/dist/src/ui/hooks/usePrivacySettings.d.ts +1 -1
  380. package/dist/src/ui/hooks/usePrivacySettings.js.map +1 -1
  381. package/dist/src/ui/hooks/usePrivacySettings.test.js.map +1 -1
  382. package/dist/src/ui/hooks/usePromptCompletion.d.ts +23 -0
  383. package/dist/src/ui/hooks/usePromptCompletion.js +177 -0
  384. package/dist/src/ui/hooks/usePromptCompletion.js.map +1 -0
  385. package/dist/src/ui/hooks/useReactToolScheduler.d.ts +2 -2
  386. package/dist/src/ui/hooks/useReactToolScheduler.js +2 -3
  387. package/dist/src/ui/hooks/useReactToolScheduler.js.map +1 -1
  388. package/dist/src/ui/hooks/useReverseSearchCompletion.d.ts +2 -2
  389. package/dist/src/ui/hooks/useShellHistory.d.ts +2 -1
  390. package/dist/src/ui/hooks/useShellHistory.js +9 -10
  391. package/dist/src/ui/hooks/useShellHistory.js.map +1 -1
  392. package/dist/src/ui/hooks/useShellHistory.test.js +30 -4
  393. package/dist/src/ui/hooks/useShellHistory.test.js.map +1 -1
  394. package/dist/src/ui/hooks/useShowMemoryCommand.d.ts +3 -3
  395. package/dist/src/ui/hooks/useShowMemoryCommand.js +1 -1
  396. package/dist/src/ui/hooks/useShowMemoryCommand.js.map +1 -1
  397. package/dist/src/ui/hooks/useSlashCompletion.d.ts +2 -2
  398. package/dist/src/ui/hooks/useSlashCompletion.js +263 -67
  399. package/dist/src/ui/hooks/useSlashCompletion.js.map +1 -1
  400. package/dist/src/ui/hooks/useSlashCompletion.test.d.ts +4 -1
  401. package/dist/src/ui/hooks/useSlashCompletion.test.js +452 -59
  402. package/dist/src/ui/hooks/useSlashCompletion.test.js.map +1 -1
  403. package/dist/src/ui/hooks/useThemeCommand.d.ts +1 -1
  404. package/dist/src/ui/hooks/useThemeCommand.js +8 -8
  405. package/dist/src/ui/hooks/useThemeCommand.js.map +1 -1
  406. package/dist/src/ui/hooks/useToolScheduler.test.js +96 -96
  407. package/dist/src/ui/hooks/useToolScheduler.test.js.map +1 -1
  408. package/dist/src/ui/hooks/useWorkspaceMigration.d.ts +13 -0
  409. package/dist/src/ui/hooks/useWorkspaceMigration.js +53 -0
  410. package/dist/src/ui/hooks/useWorkspaceMigration.js.map +1 -0
  411. package/dist/src/ui/keyMatchers.d.ts +2 -1
  412. package/dist/src/ui/keyMatchers.js +1 -1
  413. package/dist/src/ui/keyMatchers.js.map +1 -1
  414. package/dist/src/ui/keyMatchers.test.js.map +1 -1
  415. package/dist/src/ui/privacy/CloudFreePrivacyNotice.d.ts +1 -1
  416. package/dist/src/ui/semantic-colors.d.ts +1 -1
  417. package/dist/src/ui/textConstants.d.ts +9 -0
  418. package/dist/src/ui/textConstants.js +10 -0
  419. package/dist/src/ui/textConstants.js.map +1 -0
  420. package/dist/src/ui/themes/atom-one-dark.js +1 -2
  421. package/dist/src/ui/themes/atom-one-dark.js.map +1 -1
  422. package/dist/src/ui/themes/ayu-light.js +1 -2
  423. package/dist/src/ui/themes/ayu-light.js.map +1 -1
  424. package/dist/src/ui/themes/ayu.js +1 -2
  425. package/dist/src/ui/themes/ayu.js.map +1 -1
  426. package/dist/src/ui/themes/default-light.js +1 -2
  427. package/dist/src/ui/themes/default-light.js.map +1 -1
  428. package/dist/src/ui/themes/default.js +1 -2
  429. package/dist/src/ui/themes/default.js.map +1 -1
  430. package/dist/src/ui/themes/dracula.js +1 -2
  431. package/dist/src/ui/themes/dracula.js.map +1 -1
  432. package/dist/src/ui/themes/github-dark.js +1 -2
  433. package/dist/src/ui/themes/github-dark.js.map +1 -1
  434. package/dist/src/ui/themes/github-light.js +1 -2
  435. package/dist/src/ui/themes/github-light.js.map +1 -1
  436. package/dist/src/ui/themes/googlecode.js +2 -3
  437. package/dist/src/ui/themes/googlecode.js.map +1 -1
  438. package/dist/src/ui/themes/no-color.js.map +1 -1
  439. package/dist/src/ui/themes/shades-of-purple.js +1 -2
  440. package/dist/src/ui/themes/shades-of-purple.js.map +1 -1
  441. package/dist/src/ui/themes/theme-manager.d.ts +4 -2
  442. package/dist/src/ui/themes/theme-manager.js +73 -6
  443. package/dist/src/ui/themes/theme-manager.js.map +1 -1
  444. package/dist/src/ui/themes/theme-manager.test.js +60 -1
  445. package/dist/src/ui/themes/theme-manager.test.js.map +1 -1
  446. package/dist/src/ui/themes/theme.d.ts +3 -3
  447. package/dist/src/ui/themes/theme.js +30 -2
  448. package/dist/src/ui/themes/theme.js.map +1 -1
  449. package/dist/src/ui/themes/xcode.js +1 -2
  450. package/dist/src/ui/themes/xcode.js.map +1 -1
  451. package/dist/src/ui/types.d.ts +4 -2
  452. package/dist/src/ui/types.js.map +1 -1
  453. package/dist/src/ui/utils/CodeColorizer.d.ts +2 -2
  454. package/dist/src/ui/utils/CodeColorizer.js +1 -1
  455. package/dist/src/ui/utils/CodeColorizer.js.map +1 -1
  456. package/dist/src/ui/utils/ConsolePatcher.d.ts +1 -1
  457. package/dist/src/ui/utils/ConsolePatcher.js +1 -1
  458. package/dist/src/ui/utils/ConsolePatcher.js.map +1 -1
  459. package/dist/src/ui/utils/MarkdownDisplay.js +2 -1
  460. package/dist/src/ui/utils/MarkdownDisplay.js.map +1 -1
  461. package/dist/src/ui/utils/MarkdownDisplay.test.js +17 -16
  462. package/dist/src/ui/utils/MarkdownDisplay.test.js.map +1 -1
  463. package/dist/src/ui/utils/clipboardUtils.js +6 -6
  464. package/dist/src/ui/utils/clipboardUtils.js.map +1 -1
  465. package/dist/src/ui/utils/commandUtils.d.ts +1 -1
  466. package/dist/src/ui/utils/commandUtils.js +52 -14
  467. package/dist/src/ui/utils/commandUtils.js.map +1 -1
  468. package/dist/src/ui/utils/commandUtils.test.js +76 -21
  469. package/dist/src/ui/utils/commandUtils.test.js.map +1 -1
  470. package/dist/src/ui/utils/computeStats.d.ts +1 -1
  471. package/dist/src/ui/utils/platformConstants.d.ts +9 -0
  472. package/dist/src/ui/utils/platformConstants.js +9 -0
  473. package/dist/src/ui/utils/platformConstants.js.map +1 -1
  474. package/dist/src/ui/utils/terminalSetup.js +5 -5
  475. package/dist/src/ui/utils/terminalSetup.js.map +1 -1
  476. package/dist/src/ui/utils/textUtils.d.ts +18 -0
  477. package/dist/src/ui/utils/textUtils.js +44 -0
  478. package/dist/src/ui/utils/textUtils.js.map +1 -1
  479. package/dist/src/ui/utils/updateCheck.d.ts +1 -1
  480. package/dist/src/ui/utils/updateCheck.js.map +1 -1
  481. package/dist/src/utils/cleanup.js +5 -4
  482. package/dist/src/utils/cleanup.js.map +1 -1
  483. package/dist/src/utils/dialogScopeUtils.d.ts +2 -1
  484. package/dist/src/utils/dialogScopeUtils.js.map +1 -1
  485. package/dist/src/utils/envVarResolver.d.ts +39 -0
  486. package/dist/src/utils/envVarResolver.js +97 -0
  487. package/dist/src/utils/envVarResolver.js.map +1 -0
  488. package/dist/src/utils/envVarResolver.test.d.ts +6 -0
  489. package/dist/src/utils/envVarResolver.test.js +221 -0
  490. package/dist/src/utils/envVarResolver.test.js.map +1 -0
  491. package/dist/src/utils/errors.d.ts +6 -0
  492. package/dist/src/utils/errors.js +12 -0
  493. package/dist/src/utils/errors.js.map +1 -0
  494. package/dist/src/utils/events.d.ts +1 -1
  495. package/dist/src/utils/events.js +1 -1
  496. package/dist/src/utils/events.js.map +1 -1
  497. package/dist/src/utils/gitUtils.js +1 -1
  498. package/dist/src/utils/gitUtils.js.map +1 -1
  499. package/dist/src/utils/gitUtils.test.js +4 -4
  500. package/dist/src/utils/gitUtils.test.js.map +1 -1
  501. package/dist/src/utils/handleAutoUpdate.d.ts +4 -4
  502. package/dist/src/utils/handleAutoUpdate.js +13 -7
  503. package/dist/src/utils/handleAutoUpdate.js.map +1 -1
  504. package/dist/src/utils/installationInfo.js +3 -3
  505. package/dist/src/utils/installationInfo.js.map +1 -1
  506. package/dist/src/utils/installationInfo.test.js +3 -3
  507. package/dist/src/utils/installationInfo.test.js.map +1 -1
  508. package/dist/src/utils/package.js +2 -2
  509. package/dist/src/utils/package.js.map +1 -1
  510. package/dist/src/utils/readStdin.js +15 -0
  511. package/dist/src/utils/readStdin.js.map +1 -1
  512. package/dist/src/utils/readStdin.test.d.ts +6 -0
  513. package/dist/src/utils/readStdin.test.js +88 -0
  514. package/dist/src/utils/readStdin.test.js.map +1 -0
  515. package/dist/src/utils/resolvePath.js +2 -2
  516. package/dist/src/utils/resolvePath.js.map +1 -1
  517. package/dist/src/utils/sandbox-macos-permissive-closed.sb +1 -1
  518. package/dist/src/utils/sandbox-macos-permissive-open.sb +2 -2
  519. package/dist/src/utils/sandbox-macos-permissive-proxied.sb +1 -1
  520. package/dist/src/utils/sandbox-macos-restrictive-closed.sb +2 -2
  521. package/dist/src/utils/sandbox-macos-restrictive-open.sb +2 -2
  522. package/dist/src/utils/sandbox-macos-restrictive-proxied.sb +1 -1
  523. package/dist/src/utils/sandbox.d.ts +2 -2
  524. package/dist/src/utils/sandbox.js +20 -27
  525. package/dist/src/utils/sandbox.js.map +1 -1
  526. package/dist/src/utils/settingsUtils.d.ts +2 -2
  527. package/dist/src/utils/settingsUtils.js +2 -8
  528. package/dist/src/utils/settingsUtils.js.map +1 -1
  529. package/dist/src/utils/settingsUtils.test.js +145 -148
  530. package/dist/src/utils/settingsUtils.test.js.map +1 -1
  531. package/dist/src/utils/spawnWrapper.d.ts +1 -1
  532. package/dist/src/utils/spawnWrapper.js +1 -1
  533. package/dist/src/utils/spawnWrapper.js.map +1 -1
  534. package/dist/src/utils/startupWarnings.js +2 -2
  535. package/dist/src/utils/startupWarnings.js.map +1 -1
  536. package/dist/src/utils/updateEventEmitter.d.ts +1 -1
  537. package/dist/src/utils/updateEventEmitter.js +1 -1
  538. package/dist/src/utils/updateEventEmitter.js.map +1 -1
  539. package/dist/src/utils/userStartupWarnings.js +3 -3
  540. package/dist/src/utils/userStartupWarnings.js.map +1 -1
  541. package/dist/src/utils/userStartupWarnings.test.js +3 -3
  542. package/dist/src/utils/userStartupWarnings.test.js.map +1 -1
  543. package/dist/src/validateNonInterActiveAuth.d.ts +2 -1
  544. package/dist/src/validateNonInterActiveAuth.js.map +1 -1
  545. package/dist/src/zed-integration/acp.d.ts +1 -1
  546. package/dist/src/zed-integration/acp.js +2 -1
  547. package/dist/src/zed-integration/acp.js.map +1 -1
  548. package/dist/src/zed-integration/fileSystemService.d.ts +2 -2
  549. package/dist/src/zed-integration/schema.d.ts +116 -13
  550. package/dist/src/zed-integration/schema.js +7 -1
  551. package/dist/src/zed-integration/schema.js.map +1 -1
  552. package/dist/src/zed-integration/zedIntegration.d.ts +4 -4
  553. package/dist/src/zed-integration/zedIntegration.js +190 -154
  554. package/dist/src/zed-integration/zedIntegration.js.map +1 -1
  555. package/dist/tsconfig.tsbuildinfo +1 -1
  556. package/package.json +10 -10
@@ -1 +1 @@
1
- {"version":3,"file":"useReactToolScheduler.js","sourceRoot":"","sources":["../../../../src/ui/hooks/useReactToolScheduler.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"useReactToolScheduler.js","sourceRoot":"","sources":["../../../../src/ui/hooks/useReactToolScheduler.ts"],"names":[],"mappings":"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"}
@@ -3,8 +3,8 @@
3
3
  * Copyright 2025 Google LLC
4
4
  * SPDX-License-Identifier: Apache-2.0
5
5
  */
6
- import { TextBuffer } from '../components/shared/text-buffer.js';
7
- import { Suggestion } from '../components/SuggestionsDisplay.js';
6
+ import type { TextBuffer } from '../components/shared/text-buffer.js';
7
+ import type { Suggestion } from '../components/SuggestionsDisplay.js';
8
8
  export interface UseReverseSearchCompletionReturn {
9
9
  suggestions: Suggestion[];
10
10
  activeSuggestionIndex: number;
@@ -3,6 +3,7 @@
3
3
  * Copyright 2025 Google LLC
4
4
  * SPDX-License-Identifier: Apache-2.0
5
5
  */
6
+ import { Storage } from '@machina.ai/cell-cli-core';
6
7
  export interface UseShellHistoryReturn {
7
8
  history: string[];
8
9
  addCommandToHistory: (command: string) => void;
@@ -10,4 +11,4 @@ export interface UseShellHistoryReturn {
10
11
  getNextCommand: () => string | null;
11
12
  resetHistoryPosition: () => void;
12
13
  }
13
- export declare function useShellHistory(projectRoot: string): UseShellHistoryReturn;
14
+ export declare function useShellHistory(projectRoot: string, storage?: Storage): UseShellHistoryReturn;
@@ -4,14 +4,13 @@
4
4
  * SPDX-License-Identifier: Apache-2.0
5
5
  */
6
6
  import { useState, useEffect, useCallback } from 'react';
7
- import * as fs from 'fs/promises';
8
- import * as path from 'path';
9
- import { isNodeError, getProjectTempDir } from '@machina.ai/cell-cli-core';
10
- const HISTORY_FILE = 'shell_history';
7
+ import * as fs from 'node:fs/promises';
8
+ import * as path from 'node:path';
9
+ import { isNodeError, Storage } from '@machina.ai/cell-cli-core';
11
10
  const MAX_HISTORY_LENGTH = 100;
12
- async function getHistoryFilePath(projectRoot) {
13
- const historyDir = getProjectTempDir(projectRoot);
14
- return path.join(historyDir, HISTORY_FILE);
11
+ async function getHistoryFilePath(projectRoot, configStorage) {
12
+ const storage = configStorage ?? new Storage(projectRoot);
13
+ return storage.getHistoryFilePath();
15
14
  }
16
15
  // Handle multiline commands
17
16
  async function readHistoryFile(filePath) {
@@ -54,19 +53,19 @@ async function writeHistoryFile(filePath, history) {
54
53
  console.error('Error writing shell history:', error);
55
54
  }
56
55
  }
57
- export function useShellHistory(projectRoot) {
56
+ export function useShellHistory(projectRoot, storage) {
58
57
  const [history, setHistory] = useState([]);
59
58
  const [historyIndex, setHistoryIndex] = useState(-1);
60
59
  const [historyFilePath, setHistoryFilePath] = useState(null);
61
60
  useEffect(() => {
62
61
  async function loadHistory() {
63
- const filePath = await getHistoryFilePath(projectRoot);
62
+ const filePath = await getHistoryFilePath(projectRoot, storage);
64
63
  setHistoryFilePath(filePath);
65
64
  const loadedHistory = await readHistoryFile(filePath);
66
65
  setHistory(loadedHistory.reverse()); // Newest first
67
66
  }
68
67
  loadHistory();
69
- }, [projectRoot]);
68
+ }, [projectRoot, storage]);
70
69
  const addCommandToHistory = useCallback((command) => {
71
70
  if (!command.trim() || !historyFilePath) {
72
71
  return;
@@ -1 +1 @@
1
- {"version":3,"file":"useShellHistory.js","sourceRoot":"","sources":["../../../../src/ui/hooks/useShellHistory.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"useShellHistory.js","sourceRoot":"","sources":["../../../../src/ui/hooks/useShellHistory.ts"],"names":[],"mappings":"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"}
@@ -5,12 +5,38 @@
5
5
  */
6
6
  import { renderHook, act, waitFor } from '@testing-library/react';
7
7
  import { useShellHistory } from './useShellHistory.js';
8
- import * as fs from 'fs/promises';
9
- import * as os from 'os';
10
- import * as crypto from 'crypto';
11
- vi.mock('fs/promises');
8
+ import * as fs from 'node:fs/promises';
9
+ import * as path from 'node:path';
10
+ import * as os from 'node:os';
11
+ import * as crypto from 'node:crypto';
12
+ vi.mock('fs/promises', () => ({
13
+ readFile: vi.fn(),
14
+ writeFile: vi.fn(),
15
+ mkdir: vi.fn(),
16
+ }));
12
17
  vi.mock('os');
13
18
  vi.mock('crypto');
19
+ vi.mock('fs', async (importOriginal) => {
20
+ const actualFs = await importOriginal();
21
+ return {
22
+ ...actualFs,
23
+ mkdirSync: vi.fn(),
24
+ };
25
+ });
26
+ vi.mock('@machina.ai/cell-cli-core', () => {
27
+ class Storage {
28
+ getProjectTempDir() {
29
+ return path.join('/test/home/', '.cell-cli', 'tmp', 'mocked_hash');
30
+ }
31
+ getHistoryFilePath() {
32
+ return path.join('/test/home/', '.cell-cli', 'tmp', 'mocked_hash', 'shell_history');
33
+ }
34
+ }
35
+ return {
36
+ isNodeError: (err) => typeof err === 'object' && err !== null && 'code' in err,
37
+ Storage,
38
+ };
39
+ });
14
40
  const MOCKED_PROJECT_ROOT = '/test/project';
15
41
  const MOCKED_HOME_DIR = '/test/home';
16
42
  const MOCKED_PROJECT_HASH = 'mocked_hash';
@@ -1 +1 @@
1
- {"version":3,"file":"useShellHistory.test.js","sourceRoot":"","sources":["../../../../src/ui/hooks/useShellHistory.test.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"useShellHistory.test.js","sourceRoot":"","sources":["../../../../src/ui/hooks/useShellHistory.test.ts"],"names":[],"mappings":"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"}
@@ -3,7 +3,7 @@
3
3
  * Copyright 2025 Google LLC
4
4
  * SPDX-License-Identifier: Apache-2.0
5
5
  */
6
- import { Message } from '../types.js';
7
- import { Config } from '@machina.ai/cell-cli-core';
8
- import { LoadedSettings } from '../../config/settings.js';
6
+ import type { Message } from '../types.js';
7
+ import type { Config } from '@machina.ai/cell-cli-core';
8
+ import type { LoadedSettings } from '../../config/settings.js';
9
9
  export declare function createShowMemoryAction(config: Config | null, settings: LoadedSettings, addMessage: (message: Message) => void): () => Promise<void>;
@@ -20,7 +20,7 @@ export function createShowMemoryAction(config, settings, addMessage) {
20
20
  }
21
21
  const currentMemory = config.getUserMemory();
22
22
  const fileCount = config.getGeminiMdFileCount();
23
- const contextFileName = settings.merged.contextFileName;
23
+ const contextFileName = settings.merged.context?.fileName;
24
24
  const contextFileNames = Array.isArray(contextFileName)
25
25
  ? contextFileName
26
26
  : [contextFileName];
@@ -1 +1 @@
1
- {"version":3,"file":"useShowMemoryCommand.js","sourceRoot":"","sources":["../../../../src/ui/hooks/useShowMemoryCommand.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAW,WAAW,EAAE,MAAM,aAAa,CAAC;AAInD,MAAM,UAAU,sBAAsB,CACpC,MAAqB,EACrB,QAAwB,EACxB,UAAsC;IAEtC,OAAO,KAAK,IAAI,EAAE;QAChB,IAAI,CAAC,MAAM,EAAE,CAAC;YACZ,UAAU,CAAC;gBACT,IAAI,EAAE,WAAW,CAAC,KAAK;gBACvB,OAAO,EAAE,kDAAkD;gBAC3D,SAAS,EAAE,IAAI,IAAI,EAAE;aACtB,CAAC,CAAC;YACH,OAAO;QACT,CAAC;QAED,MAAM,SAAS,GAAG,MAAM,CAAC,YAAY,EAAE,CAAC;QAExC,IAAI,SAAS,EAAE,CAAC;YACd,OAAO,CAAC,GAAG,CAAC,sCAAsC,CAAC,CAAC;QACtD,CAAC;QAED,MAAM,aAAa,GAAG,MAAM,CAAC,aAAa,EAAE,CAAC;QAC7C,MAAM,SAAS,GAAG,MAAM,CAAC,oBAAoB,EAAE,CAAC;QAChD,MAAM,eAAe,GAAG,QAAQ,CAAC,MAAM,CAAC,eAAe,CAAC;QACxD,MAAM,gBAAgB,GAAG,KAAK,CAAC,OAAO,CAAC,eAAe,CAAC;YACrD,CAAC,CAAC,eAAe;YACjB,CAAC,CAAC,CAAC,eAAe,CAAC,CAAC;QAEtB,IAAI,SAAS,EAAE,CAAC;YACd,OAAO,CAAC,GAAG,CACT,kFAAkF,aAAa,CAAC,SAAS,CAAC,CAAC,EAAE,GAAG,CAAC,KAAK,CACvH,CAAC;YACF,OAAO,CAAC,GAAG,CAAC,2CAA2C,SAAS,EAAE,CAAC,CAAC;QACtE,CAAC;QAED,IAAI,SAAS,GAAG,CAAC,EAAE,CAAC;YAClB,MAAM,eAAe,GAAG,IAAI,GAAG,CAAC,gBAAgB,CAAC,CAAC,IAAI,GAAG,CAAC,CAAC;YAC3D,MAAM,IAAI,GAAG,eAAe,CAAC,CAAC,CAAC,gBAAgB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;YAC/D,UAAU,CAAC;gBACT,IAAI,EAAE,WAAW,CAAC,IAAI;gBACtB,OAAO,EAAE,sBAAsB,SAAS,IAAI,IAAI,QAC9C,SAAS,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EACxB,GAAG;gBACH,SAAS,EAAE,IAAI,IAAI,EAAE;aACtB,CAAC,CAAC;QACL,CAAC;QAED,IAAI,aAAa,IAAI,aAAa,CAAC,IAAI,EAAE,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACrD,UAAU,CAAC;gBACT,IAAI,EAAE,WAAW,CAAC,IAAI;gBACtB,OAAO,EAAE,qDAAqD,aAAa,UAAU;gBACrF,SAAS,EAAE,IAAI,IAAI,EAAE;aACtB,CAAC,CAAC;QACL,CAAC;aAAM,CAAC;YACN,UAAU,CAAC;gBACT,IAAI,EAAE,WAAW,CAAC,IAAI;gBACtB,OAAO,EACL,SAAS,GAAG,CAAC;oBACX,CAAC,CAAC,wFAAwF;oBAC1F,CAAC,CAAC,gFAAgF;gBACtF,SAAS,EAAE,IAAI,IAAI,EAAE;aACtB,CAAC,CAAC;QACL,CAAC;IACH,CAAC,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"useShowMemoryCommand.js","sourceRoot":"","sources":["../../../../src/ui/hooks/useShowMemoryCommand.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAGH,OAAO,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAI1C,MAAM,UAAU,sBAAsB,CACpC,MAAqB,EACrB,QAAwB,EACxB,UAAsC;IAEtC,OAAO,KAAK,IAAI,EAAE;QAChB,IAAI,CAAC,MAAM,EAAE,CAAC;YACZ,UAAU,CAAC;gBACT,IAAI,EAAE,WAAW,CAAC,KAAK;gBACvB,OAAO,EAAE,kDAAkD;gBAC3D,SAAS,EAAE,IAAI,IAAI,EAAE;aACtB,CAAC,CAAC;YACH,OAAO;QACT,CAAC;QAED,MAAM,SAAS,GAAG,MAAM,CAAC,YAAY,EAAE,CAAC;QAExC,IAAI,SAAS,EAAE,CAAC;YACd,OAAO,CAAC,GAAG,CAAC,sCAAsC,CAAC,CAAC;QACtD,CAAC;QAED,MAAM,aAAa,GAAG,MAAM,CAAC,aAAa,EAAE,CAAC;QAC7C,MAAM,SAAS,GAAG,MAAM,CAAC,oBAAoB,EAAE,CAAC;QAChD,MAAM,eAAe,GAAG,QAAQ,CAAC,MAAM,CAAC,OAAO,EAAE,QAAQ,CAAC;QAC1D,MAAM,gBAAgB,GAAG,KAAK,CAAC,OAAO,CAAC,eAAe,CAAC;YACrD,CAAC,CAAC,eAAe;YACjB,CAAC,CAAC,CAAC,eAAe,CAAC,CAAC;QAEtB,IAAI,SAAS,EAAE,CAAC;YACd,OAAO,CAAC,GAAG,CACT,kFAAkF,aAAa,CAAC,SAAS,CAAC,CAAC,EAAE,GAAG,CAAC,KAAK,CACvH,CAAC;YACF,OAAO,CAAC,GAAG,CAAC,2CAA2C,SAAS,EAAE,CAAC,CAAC;QACtE,CAAC;QAED,IAAI,SAAS,GAAG,CAAC,EAAE,CAAC;YAClB,MAAM,eAAe,GAAG,IAAI,GAAG,CAAC,gBAAgB,CAAC,CAAC,IAAI,GAAG,CAAC,CAAC;YAC3D,MAAM,IAAI,GAAG,eAAe,CAAC,CAAC,CAAC,gBAAgB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;YAC/D,UAAU,CAAC;gBACT,IAAI,EAAE,WAAW,CAAC,IAAI;gBACtB,OAAO,EAAE,sBAAsB,SAAS,IAAI,IAAI,QAC9C,SAAS,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EACxB,GAAG;gBACH,SAAS,EAAE,IAAI,IAAI,EAAE;aACtB,CAAC,CAAC;QACL,CAAC;QAED,IAAI,aAAa,IAAI,aAAa,CAAC,IAAI,EAAE,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACrD,UAAU,CAAC;gBACT,IAAI,EAAE,WAAW,CAAC,IAAI;gBACtB,OAAO,EAAE,qDAAqD,aAAa,UAAU;gBACrF,SAAS,EAAE,IAAI,IAAI,EAAE;aACtB,CAAC,CAAC;QACL,CAAC;aAAM,CAAC;YACN,UAAU,CAAC;gBACT,IAAI,EAAE,WAAW,CAAC,IAAI;gBACtB,OAAO,EACL,SAAS,GAAG,CAAC;oBACX,CAAC,CAAC,wFAAwF;oBAC1F,CAAC,CAAC,gFAAgF;gBACtF,SAAS,EAAE,IAAI,IAAI,EAAE;aACtB,CAAC,CAAC;QACL,CAAC;IACH,CAAC,CAAC;AACJ,CAAC"}
@@ -3,8 +3,8 @@
3
3
  * Copyright 2025 Google LLC
4
4
  * SPDX-License-Identifier: Apache-2.0
5
5
  */
6
- import { Suggestion } from '../components/SuggestionsDisplay.js';
7
- import { CommandContext, SlashCommand } from '../commands/types.js';
6
+ import type { Suggestion } from '../components/SuggestionsDisplay.js';
7
+ import type { CommandContext, SlashCommand } from '../commands/types.js';
8
8
  export interface UseSlashCompletionProps {
9
9
  enabled: boolean;
10
10
  query: string | null;
@@ -3,17 +3,39 @@
3
3
  * Copyright 2025 Google LLC
4
4
  * SPDX-License-Identifier: Apache-2.0
5
5
  */
6
- import { useState, useEffect } from 'react';
7
- export function useSlashCompletion(props) {
8
- const { enabled, query, slashCommands, commandContext, setSuggestions, setIsLoadingSuggestions, setIsPerfectMatch, } = props;
9
- const [completionStart, setCompletionStart] = useState(-1);
10
- const [completionEnd, setCompletionEnd] = useState(-1);
11
- useEffect(() => {
12
- if (!enabled || query === null) {
13
- return;
6
+ import { useState, useEffect, useMemo } from 'react';
7
+ import { AsyncFzf } from 'fzf';
8
+ // Utility function to safely handle errors without information disclosure
9
+ function logErrorSafely(error, context) {
10
+ if (error instanceof Error) {
11
+ // Log full error details securely for debugging
12
+ console.error(`[${context}]`, error);
13
+ }
14
+ else {
15
+ console.error(`[${context}] Non-error thrown:`, error);
16
+ }
17
+ }
18
+ // Shared utility function for command matching logic
19
+ function matchesCommand(cmd, query) {
20
+ return (cmd.name.toLowerCase() === query.toLowerCase() ||
21
+ cmd.altNames?.some((alt) => alt.toLowerCase() === query.toLowerCase()) ||
22
+ false);
23
+ }
24
+ function useCommandParser(query, slashCommands) {
25
+ return useMemo(() => {
26
+ if (!query) {
27
+ return {
28
+ hasTrailingSpace: false,
29
+ commandPathParts: [],
30
+ partial: '',
31
+ currentLevel: slashCommands,
32
+ leafCommand: null,
33
+ exactMatchAsParent: undefined,
34
+ isArgumentCompletion: false,
35
+ };
14
36
  }
15
- const fullPath = query?.substring(1) || '';
16
- const hasTrailingSpace = !!query?.endsWith(' ');
37
+ const fullPath = query.substring(1) || '';
38
+ const hasTrailingSpace = !!query.endsWith(' ');
17
39
  const rawParts = fullPath.split(/\s+/).filter((p) => p);
18
40
  let commandPathParts = rawParts;
19
41
  let partial = '';
@@ -29,7 +51,7 @@ export function useSlashCompletion(props) {
29
51
  currentLevel = [];
30
52
  break;
31
53
  }
32
- const found = currentLevel.find((cmd) => cmd.name === part || cmd.altNames?.includes(part));
54
+ const found = currentLevel.find((cmd) => matchesCommand(cmd, part));
33
55
  if (found) {
34
56
  leafCommand = found;
35
57
  currentLevel = found.subCommands;
@@ -42,87 +64,261 @@ export function useSlashCompletion(props) {
42
64
  }
43
65
  let exactMatchAsParent;
44
66
  if (!hasTrailingSpace && currentLevel) {
45
- exactMatchAsParent = currentLevel.find((cmd) => (cmd.name === partial || cmd.altNames?.includes(partial)) &&
46
- cmd.subCommands);
67
+ exactMatchAsParent = currentLevel.find((cmd) => matchesCommand(cmd, partial) && cmd.subCommands);
47
68
  if (exactMatchAsParent) {
48
69
  leafCommand = exactMatchAsParent;
49
70
  currentLevel = exactMatchAsParent.subCommands;
50
71
  partial = '';
51
72
  }
52
73
  }
53
- setIsPerfectMatch(false);
54
- if (!hasTrailingSpace) {
55
- if (leafCommand && partial === '' && leafCommand.action) {
56
- setIsPerfectMatch(true);
57
- }
58
- else if (currentLevel) {
59
- const perfectMatch = currentLevel.find((cmd) => (cmd.name === partial || cmd.altNames?.includes(partial)) &&
60
- cmd.action);
61
- if (perfectMatch) {
62
- setIsPerfectMatch(true);
63
- }
64
- }
65
- }
66
74
  const depth = commandPathParts.length;
67
- const isArgumentCompletion = leafCommand?.completion &&
75
+ const isArgumentCompletion = !!(leafCommand?.completion &&
68
76
  (hasTrailingSpace ||
69
- (rawParts.length > depth && depth > 0 && partial !== ''));
77
+ (rawParts.length > depth && depth > 0 && partial !== '')));
78
+ return {
79
+ hasTrailingSpace,
80
+ commandPathParts,
81
+ partial,
82
+ currentLevel,
83
+ leafCommand,
84
+ exactMatchAsParent,
85
+ isArgumentCompletion,
86
+ };
87
+ }, [query, slashCommands]);
88
+ }
89
+ function useCommandSuggestions(parserResult, commandContext, getFzfForCommands, getPrefixSuggestions) {
90
+ const [suggestions, setSuggestions] = useState([]);
91
+ const [isLoading, setIsLoading] = useState(false);
92
+ useEffect(() => {
93
+ const abortController = new AbortController();
94
+ const { signal } = abortController;
95
+ const { isArgumentCompletion, leafCommand, commandPathParts, partial, currentLevel, } = parserResult;
96
+ if (isArgumentCompletion) {
97
+ const fetchAndSetSuggestions = async () => {
98
+ if (signal.aborted)
99
+ return;
100
+ // Safety check: ensure leafCommand and completion exist
101
+ if (!leafCommand?.completion) {
102
+ console.warn('Attempted argument completion without completion function');
103
+ return;
104
+ }
105
+ setIsLoading(true);
106
+ try {
107
+ const rawParts = [...commandPathParts];
108
+ if (partial)
109
+ rawParts.push(partial);
110
+ const depth = commandPathParts.length;
111
+ const argString = rawParts.slice(depth).join(' ');
112
+ const results = (await leafCommand.completion(commandContext, argString)) || [];
113
+ if (!signal.aborted) {
114
+ const finalSuggestions = results.map((s) => ({
115
+ label: s,
116
+ value: s,
117
+ }));
118
+ setSuggestions(finalSuggestions);
119
+ setIsLoading(false);
120
+ }
121
+ }
122
+ catch (error) {
123
+ if (!signal.aborted) {
124
+ logErrorSafely(error, 'Argument completion');
125
+ setSuggestions([]);
126
+ setIsLoading(false);
127
+ }
128
+ }
129
+ };
130
+ fetchAndSetSuggestions();
131
+ return () => abortController.abort();
132
+ }
133
+ const commandsToSearch = currentLevel || [];
134
+ if (commandsToSearch.length > 0) {
135
+ const performFuzzySearch = async () => {
136
+ if (signal.aborted)
137
+ return;
138
+ let potentialSuggestions = [];
139
+ if (partial === '') {
140
+ // If no partial query, show all available commands
141
+ potentialSuggestions = commandsToSearch.filter((cmd) => cmd.description);
142
+ }
143
+ else {
144
+ // Use fuzzy search for non-empty partial queries with fallback
145
+ const fzfInstance = getFzfForCommands(commandsToSearch);
146
+ if (fzfInstance) {
147
+ try {
148
+ const fzfResults = await fzfInstance.fzf.find(partial);
149
+ if (signal.aborted)
150
+ return;
151
+ const uniqueCommands = new Set();
152
+ fzfResults.forEach((result) => {
153
+ const cmd = fzfInstance.commandMap.get(result.item);
154
+ if (cmd && cmd.description) {
155
+ uniqueCommands.add(cmd);
156
+ }
157
+ });
158
+ potentialSuggestions = Array.from(uniqueCommands);
159
+ }
160
+ catch (error) {
161
+ logErrorSafely(error, 'Fuzzy search - falling back to prefix matching');
162
+ // Fallback to prefix-based filtering
163
+ potentialSuggestions = getPrefixSuggestions(commandsToSearch, partial);
164
+ }
165
+ }
166
+ else {
167
+ // Fallback to prefix-based filtering when fzf instance creation fails
168
+ potentialSuggestions = getPrefixSuggestions(commandsToSearch, partial);
169
+ }
170
+ }
171
+ if (!signal.aborted) {
172
+ const finalSuggestions = potentialSuggestions.map((cmd) => ({
173
+ label: cmd.name,
174
+ value: cmd.name,
175
+ description: cmd.description,
176
+ }));
177
+ setSuggestions(finalSuggestions);
178
+ }
179
+ };
180
+ performFuzzySearch().catch((error) => {
181
+ logErrorSafely(error, 'Unexpected fuzzy search error');
182
+ if (!signal.aborted) {
183
+ // Ultimate fallback: show no suggestions rather than confusing the user
184
+ // with all available commands when their query clearly doesn't match anything
185
+ setSuggestions([]);
186
+ }
187
+ });
188
+ return () => abortController.abort();
189
+ }
190
+ setSuggestions([]);
191
+ return () => abortController.abort();
192
+ }, [parserResult, commandContext, getFzfForCommands, getPrefixSuggestions]);
193
+ return { suggestions, isLoading };
194
+ }
195
+ function useCompletionPositions(query, parserResult) {
196
+ return useMemo(() => {
197
+ if (!query) {
198
+ return { start: -1, end: -1 };
199
+ }
200
+ const { hasTrailingSpace, partial, exactMatchAsParent } = parserResult;
201
+ // Set completion start/end positions
70
202
  if (hasTrailingSpace || exactMatchAsParent) {
71
- setCompletionStart(query.length);
72
- setCompletionEnd(query.length);
203
+ return { start: query.length, end: query.length };
73
204
  }
74
205
  else if (partial) {
75
- if (isArgumentCompletion) {
76
- const commandSoFar = `/${commandPathParts.join(' ')}`;
77
- const argStartIndex = commandSoFar.length + (commandPathParts.length > 0 ? 1 : 0);
78
- setCompletionStart(argStartIndex);
206
+ if (parserResult.isArgumentCompletion) {
207
+ const commandSoFar = `/${parserResult.commandPathParts.join(' ')}`;
208
+ const argStartIndex = commandSoFar.length +
209
+ (parserResult.commandPathParts.length > 0 ? 1 : 0);
210
+ return { start: argStartIndex, end: query.length };
79
211
  }
80
212
  else {
81
- setCompletionStart(query.length - partial.length);
213
+ return { start: query.length - partial.length, end: query.length };
82
214
  }
83
- setCompletionEnd(query.length);
84
215
  }
85
216
  else {
86
- setCompletionStart(1);
87
- setCompletionEnd(query.length);
217
+ return { start: 1, end: query.length };
88
218
  }
89
- if (isArgumentCompletion) {
90
- const fetchAndSetSuggestions = async () => {
91
- setIsLoadingSuggestions(true);
92
- const argString = rawParts.slice(depth).join(' ');
93
- const results = (await leafCommand.completion(commandContext, argString)) || [];
94
- const finalSuggestions = results.map((s) => ({ label: s, value: s }));
95
- setSuggestions(finalSuggestions);
96
- setIsLoadingSuggestions(false);
97
- };
98
- fetchAndSetSuggestions();
99
- return;
219
+ }, [query, parserResult]);
220
+ }
221
+ function usePerfectMatch(parserResult) {
222
+ return useMemo(() => {
223
+ const { hasTrailingSpace, partial, leafCommand, currentLevel } = parserResult;
224
+ if (hasTrailingSpace) {
225
+ return { isPerfectMatch: false };
100
226
  }
101
- const commandsToSearch = currentLevel || [];
102
- if (commandsToSearch.length > 0) {
103
- let potentialSuggestions = commandsToSearch.filter((cmd) => cmd.description &&
104
- (cmd.name.startsWith(partial) ||
105
- cmd.altNames?.some((alt) => alt.startsWith(partial))));
106
- if (potentialSuggestions.length > 0 && !hasTrailingSpace) {
107
- const perfectMatch = potentialSuggestions.find((s) => s.name === partial || s.altNames?.includes(partial));
108
- if (perfectMatch && perfectMatch.action) {
109
- potentialSuggestions = [];
227
+ if (leafCommand && partial === '' && leafCommand.action) {
228
+ return { isPerfectMatch: true };
229
+ }
230
+ if (currentLevel) {
231
+ const perfectMatch = currentLevel.find((cmd) => matchesCommand(cmd, partial) && cmd.action);
232
+ if (perfectMatch) {
233
+ return { isPerfectMatch: true };
234
+ }
235
+ }
236
+ return { isPerfectMatch: false };
237
+ }, [parserResult]);
238
+ }
239
+ export function useSlashCompletion(props) {
240
+ const { enabled, query, slashCommands, commandContext, setSuggestions, setIsLoadingSuggestions, setIsPerfectMatch, } = props;
241
+ const [completionStart, setCompletionStart] = useState(-1);
242
+ const [completionEnd, setCompletionEnd] = useState(-1);
243
+ // Simplified cache for AsyncFzf instances - WeakMap handles automatic cleanup
244
+ const fzfInstanceCache = useMemo(() => new WeakMap(), []);
245
+ // Helper function to create or retrieve cached AsyncFzf instance for a command level
246
+ const getFzfForCommands = useMemo(() => (commands) => {
247
+ if (!commands || commands.length === 0) {
248
+ return null;
249
+ }
250
+ // Check if we already have a cached instance
251
+ const cached = fzfInstanceCache.get(commands);
252
+ if (cached) {
253
+ return cached;
254
+ }
255
+ // Create new fzf instance
256
+ const commandItems = [];
257
+ const commandMap = new Map();
258
+ commands.forEach((cmd) => {
259
+ if (cmd.description) {
260
+ commandItems.push(cmd.name);
261
+ commandMap.set(cmd.name, cmd);
262
+ if (cmd.altNames) {
263
+ cmd.altNames.forEach((alt) => {
264
+ commandItems.push(alt);
265
+ commandMap.set(alt, cmd);
266
+ });
110
267
  }
111
268
  }
112
- const finalSuggestions = potentialSuggestions.map((cmd) => ({
113
- label: cmd.name,
114
- value: cmd.name,
115
- description: cmd.description,
116
- }));
117
- setSuggestions(finalSuggestions);
269
+ });
270
+ if (commandItems.length === 0) {
271
+ return null;
272
+ }
273
+ try {
274
+ const instance = {
275
+ fzf: new AsyncFzf(commandItems, {
276
+ fuzzy: 'v2',
277
+ casing: 'case-insensitive', // Explicitly enforce case-insensitivity
278
+ }),
279
+ commandMap,
280
+ };
281
+ // Cache the instance - WeakMap will handle automatic cleanup
282
+ fzfInstanceCache.set(commands, instance);
283
+ return instance;
284
+ }
285
+ catch (error) {
286
+ logErrorSafely(error, 'FZF instance creation');
287
+ return null;
288
+ }
289
+ }, [fzfInstanceCache]);
290
+ // Memoized helper function for prefix-based filtering to improve performance
291
+ const getPrefixSuggestions = useMemo(() => (commands, partial) => commands.filter((cmd) => cmd.description &&
292
+ (cmd.name.toLowerCase().startsWith(partial.toLowerCase()) ||
293
+ cmd.altNames?.some((alt) => alt.toLowerCase().startsWith(partial.toLowerCase())))), []);
294
+ // Use extracted hooks for better separation of concerns
295
+ const parserResult = useCommandParser(query, slashCommands);
296
+ const { suggestions: hookSuggestions, isLoading } = useCommandSuggestions(parserResult, commandContext, getFzfForCommands, getPrefixSuggestions);
297
+ const { start: calculatedStart, end: calculatedEnd } = useCompletionPositions(query, parserResult);
298
+ const { isPerfectMatch } = usePerfectMatch(parserResult);
299
+ // Update external state - this is now much simpler and focused
300
+ useEffect(() => {
301
+ if (!enabled || query === null) {
302
+ setSuggestions([]);
303
+ setIsLoadingSuggestions(false);
304
+ setIsPerfectMatch(false);
305
+ setCompletionStart(-1);
306
+ setCompletionEnd(-1);
118
307
  return;
119
308
  }
120
- setSuggestions([]);
309
+ setSuggestions(hookSuggestions);
310
+ setIsLoadingSuggestions(isLoading);
311
+ setIsPerfectMatch(isPerfectMatch);
312
+ setCompletionStart(calculatedStart);
313
+ setCompletionEnd(calculatedEnd);
121
314
  }, [
122
315
  enabled,
123
316
  query,
124
- slashCommands,
125
- commandContext,
317
+ hookSuggestions,
318
+ isLoading,
319
+ isPerfectMatch,
320
+ calculatedStart,
321
+ calculatedEnd,
126
322
  setSuggestions,
127
323
  setIsLoadingSuggestions,
128
324
  setIsPerfectMatch,