@google/gemini-cli 0.5.5 → 0.6.0-preview.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (342) hide show
  1. package/LICENSE +2 -2
  2. package/README.md +12 -2
  3. package/dist/index.js +0 -0
  4. package/dist/package.json +3 -3
  5. package/dist/src/commands/extensions/disable.d.ts +1 -1
  6. package/dist/src/commands/extensions/disable.js +3 -3
  7. package/dist/src/commands/extensions/disable.js.map +1 -1
  8. package/dist/src/commands/extensions/enable.d.ts +1 -1
  9. package/dist/src/commands/extensions/enable.js +5 -7
  10. package/dist/src/commands/extensions/enable.js.map +1 -1
  11. package/dist/src/commands/extensions/install.d.ts +1 -0
  12. package/dist/src/commands/extensions/install.js +10 -2
  13. package/dist/src/commands/extensions/install.js.map +1 -1
  14. package/dist/src/commands/extensions/install.test.js +75 -2
  15. package/dist/src/commands/extensions/install.test.js.map +1 -1
  16. package/dist/src/commands/extensions/update.js +14 -4
  17. package/dist/src/commands/extensions/update.js.map +1 -1
  18. package/dist/src/config/config.d.ts +1 -1
  19. package/dist/src/config/config.js +19 -5
  20. package/dist/src/config/config.js.map +1 -1
  21. package/dist/src/config/extension.d.ts +17 -8
  22. package/dist/src/config/extension.js +192 -73
  23. package/dist/src/config/extension.js.map +1 -1
  24. package/dist/src/config/extensions/extensionEnablement.d.ts +30 -0
  25. package/dist/src/config/extensions/extensionEnablement.js +113 -0
  26. package/dist/src/config/extensions/extensionEnablement.js.map +1 -0
  27. package/dist/src/config/extensions/extensionEnablement.test.js +116 -0
  28. package/dist/src/config/extensions/extensionEnablement.test.js.map +1 -0
  29. package/dist/src/config/extensions/variableSchema.d.ts +8 -0
  30. package/dist/src/config/extensions/variableSchema.js +4 -0
  31. package/dist/src/config/extensions/variableSchema.js.map +1 -1
  32. package/dist/src/config/keyBindings.d.ts +4 -1
  33. package/dist/src/config/keyBindings.js +8 -0
  34. package/dist/src/config/keyBindings.js.map +1 -1
  35. package/dist/src/config/settings.d.ts +3 -0
  36. package/dist/src/config/settings.js +54 -15
  37. package/dist/src/config/settings.js.map +1 -1
  38. package/dist/src/config/settingsSchema.d.ts +67 -1
  39. package/dist/src/config/settingsSchema.js +64 -1
  40. package/dist/src/config/settingsSchema.js.map +1 -1
  41. package/dist/src/config/settingsSchema.test.js +6 -0
  42. package/dist/src/config/settingsSchema.test.js.map +1 -1
  43. package/dist/src/config/trustedFolders.d.ts +1 -1
  44. package/dist/src/config/trustedFolders.js +9 -4
  45. package/dist/src/config/trustedFolders.js.map +1 -1
  46. package/dist/src/config/trustedFolders.test.js +41 -25
  47. package/dist/src/config/trustedFolders.test.js.map +1 -1
  48. package/dist/src/core/initializer.js +6 -1
  49. package/dist/src/core/initializer.js.map +1 -1
  50. package/dist/src/gemini.js +29 -46
  51. package/dist/src/gemini.js.map +1 -1
  52. package/dist/src/gemini.test.js +11 -15
  53. package/dist/src/gemini.test.js.map +1 -1
  54. package/dist/src/generated/git-commit.d.ts +2 -2
  55. package/dist/src/generated/git-commit.js +2 -2
  56. package/dist/src/generated/git-commit.js.map +1 -1
  57. package/dist/src/nonInteractiveCli.js +23 -9
  58. package/dist/src/nonInteractiveCli.js.map +1 -1
  59. package/dist/src/services/McpPromptLoader.js +43 -8
  60. package/dist/src/services/McpPromptLoader.js.map +1 -1
  61. package/dist/src/services/McpPromptLoader.test.js +228 -1
  62. package/dist/src/services/McpPromptLoader.test.js.map +1 -1
  63. package/dist/src/services/prompt-processors/shellProcessor.js +8 -1
  64. package/dist/src/services/prompt-processors/shellProcessor.js.map +1 -1
  65. package/dist/src/ui/AppContainer.js +69 -32
  66. package/dist/src/ui/AppContainer.js.map +1 -1
  67. package/dist/src/ui/AppContainer.test.js +36 -0
  68. package/dist/src/ui/AppContainer.test.js.map +1 -1
  69. package/dist/src/ui/IdeIntegrationNudge.js +2 -1
  70. package/dist/src/ui/IdeIntegrationNudge.js.map +1 -1
  71. package/dist/src/ui/auth/AuthDialog.js +2 -2
  72. package/dist/src/ui/auth/AuthDialog.js.map +1 -1
  73. package/dist/src/ui/auth/AuthInProgress.js +2 -2
  74. package/dist/src/ui/auth/AuthInProgress.js.map +1 -1
  75. package/dist/src/ui/commands/chatCommand.d.ts +2 -0
  76. package/dist/src/ui/commands/chatCommand.js +82 -3
  77. package/dist/src/ui/commands/chatCommand.js.map +1 -1
  78. package/dist/src/ui/commands/extensionsCommand.js +70 -16
  79. package/dist/src/ui/commands/extensionsCommand.js.map +1 -1
  80. package/dist/src/ui/commands/ideCommand.js +2 -2
  81. package/dist/src/ui/commands/ideCommand.js.map +1 -1
  82. package/dist/src/ui/commands/types.d.ts +4 -1
  83. package/dist/src/ui/commands/types.js +0 -1
  84. package/dist/src/ui/commands/types.js.map +1 -1
  85. package/dist/src/ui/components/AboutBox.js +2 -2
  86. package/dist/src/ui/components/AboutBox.js.map +1 -1
  87. package/dist/src/ui/components/AnsiOutput.d.ts +13 -0
  88. package/dist/src/ui/components/AnsiOutput.js +12 -0
  89. package/dist/src/ui/components/AnsiOutput.js.map +1 -0
  90. package/dist/src/ui/components/AnsiOutput.test.d.ts +6 -0
  91. package/dist/src/ui/components/AnsiOutput.test.js +97 -0
  92. package/dist/src/ui/components/AnsiOutput.test.js.map +1 -0
  93. package/dist/src/ui/components/AutoAcceptIndicator.js +4 -4
  94. package/dist/src/ui/components/AutoAcceptIndicator.js.map +1 -1
  95. package/dist/src/ui/components/Composer.js +10 -5
  96. package/dist/src/ui/components/Composer.js.map +1 -1
  97. package/dist/src/ui/components/ConfigInitDisplay.js +2 -1
  98. package/dist/src/ui/components/ConfigInitDisplay.js.map +1 -1
  99. package/dist/src/ui/components/ConsoleSummaryDisplay.js +2 -2
  100. package/dist/src/ui/components/ConsoleSummaryDisplay.js.map +1 -1
  101. package/dist/src/ui/components/ContextSummaryDisplay.js +3 -3
  102. package/dist/src/ui/components/ContextSummaryDisplay.js.map +1 -1
  103. package/dist/src/ui/components/ContextUsageDisplay.js +2 -2
  104. package/dist/src/ui/components/ContextUsageDisplay.js.map +1 -1
  105. package/dist/src/ui/components/DebugProfiler.js +2 -2
  106. package/dist/src/ui/components/DebugProfiler.js.map +1 -1
  107. package/dist/src/ui/components/DetailedMessagesDisplay.js +7 -7
  108. package/dist/src/ui/components/DetailedMessagesDisplay.js.map +1 -1
  109. package/dist/src/ui/components/DialogManager.js +9 -5
  110. package/dist/src/ui/components/DialogManager.js.map +1 -1
  111. package/dist/src/ui/components/EditorSettingsDialog.js +5 -5
  112. package/dist/src/ui/components/EditorSettingsDialog.js.map +1 -1
  113. package/dist/src/ui/components/FolderTrustDialog.js +6 -14
  114. package/dist/src/ui/components/FolderTrustDialog.js.map +1 -1
  115. package/dist/src/ui/components/FolderTrustDialog.test.js +13 -13
  116. package/dist/src/ui/components/FolderTrustDialog.test.js.map +1 -1
  117. package/dist/src/ui/components/Footer.d.ts +3 -0
  118. package/dist/src/ui/components/Footer.js +8 -3
  119. package/dist/src/ui/components/Footer.js.map +1 -1
  120. package/dist/src/ui/components/GeminiRespondingSpinner.js +3 -2
  121. package/dist/src/ui/components/GeminiRespondingSpinner.js.map +1 -1
  122. package/dist/src/ui/components/Header.js +2 -2
  123. package/dist/src/ui/components/Header.js.map +1 -1
  124. package/dist/src/ui/components/Help.js +5 -5
  125. package/dist/src/ui/components/Help.js.map +1 -1
  126. package/dist/src/ui/components/HistoryItemDisplay.d.ts +2 -0
  127. package/dist/src/ui/components/HistoryItemDisplay.js +2 -1
  128. package/dist/src/ui/components/HistoryItemDisplay.js.map +1 -1
  129. package/dist/src/ui/components/InputPrompt.d.ts +3 -0
  130. package/dist/src/ui/components/InputPrompt.js +97 -19
  131. package/dist/src/ui/components/InputPrompt.js.map +1 -1
  132. package/dist/src/ui/components/LoadingIndicator.js +2 -2
  133. package/dist/src/ui/components/LoadingIndicator.js.map +1 -1
  134. package/dist/src/ui/components/LoopDetectionConfirmation.d.ts +13 -0
  135. package/dist/src/ui/components/LoopDetectionConfirmation.js +35 -0
  136. package/dist/src/ui/components/LoopDetectionConfirmation.js.map +1 -0
  137. package/dist/src/ui/components/LoopDetectionConfirmation.test.d.ts +6 -0
  138. package/dist/src/ui/components/LoopDetectionConfirmation.test.js +25 -0
  139. package/dist/src/ui/components/LoopDetectionConfirmation.test.js.map +1 -0
  140. package/dist/src/ui/components/MainContent.js +1 -1
  141. package/dist/src/ui/components/MainContent.js.map +1 -1
  142. package/dist/src/ui/components/MemoryUsageDisplay.js +6 -4
  143. package/dist/src/ui/components/MemoryUsageDisplay.js.map +1 -1
  144. package/dist/src/ui/components/ModelStatsDisplay.js +7 -7
  145. package/dist/src/ui/components/ModelStatsDisplay.js.map +1 -1
  146. package/dist/src/ui/components/Notifications.js +2 -2
  147. package/dist/src/ui/components/Notifications.js.map +1 -1
  148. package/dist/src/ui/components/PrepareLabel.d.ts +5 -5
  149. package/dist/src/ui/components/PrepareLabel.js +67 -11
  150. package/dist/src/ui/components/PrepareLabel.js.map +1 -1
  151. package/dist/src/ui/components/PrepareLabel.test.d.ts +6 -0
  152. package/dist/src/ui/components/PrepareLabel.test.js +71 -0
  153. package/dist/src/ui/components/PrepareLabel.test.js.map +1 -0
  154. package/dist/src/ui/components/ProQuotaDialog.js +2 -2
  155. package/dist/src/ui/components/ProQuotaDialog.js.map +1 -1
  156. package/dist/src/ui/components/SettingsDialog.d.ts +2 -1
  157. package/dist/src/ui/components/SettingsDialog.js +73 -17
  158. package/dist/src/ui/components/SettingsDialog.js.map +1 -1
  159. package/dist/src/ui/components/SettingsDialog.test.js +291 -0
  160. package/dist/src/ui/components/SettingsDialog.test.js.map +1 -1
  161. package/dist/src/ui/components/ShellConfirmationDialog.js +2 -2
  162. package/dist/src/ui/components/ShellConfirmationDialog.js.map +1 -1
  163. package/dist/src/ui/components/ShellInputPrompt.d.ts +11 -0
  164. package/dist/src/ui/components/ShellInputPrompt.js +36 -0
  165. package/dist/src/ui/components/ShellInputPrompt.js.map +1 -0
  166. package/dist/src/ui/components/ShellModeIndicator.js +2 -2
  167. package/dist/src/ui/components/ShellModeIndicator.js.map +1 -1
  168. package/dist/src/ui/components/ShowMoreLines.js +2 -2
  169. package/dist/src/ui/components/ShowMoreLines.js.map +1 -1
  170. package/dist/src/ui/components/StatsDisplay.js +6 -6
  171. package/dist/src/ui/components/StatsDisplay.js.map +1 -1
  172. package/dist/src/ui/components/SuggestionsDisplay.d.ts +5 -2
  173. package/dist/src/ui/components/SuggestionsDisplay.js +17 -11
  174. package/dist/src/ui/components/SuggestionsDisplay.js.map +1 -1
  175. package/dist/src/ui/components/ThemeDialog.js +4 -4
  176. package/dist/src/ui/components/ThemeDialog.js.map +1 -1
  177. package/dist/src/ui/components/ThemeDialog.test.js +10 -0
  178. package/dist/src/ui/components/ThemeDialog.test.js.map +1 -1
  179. package/dist/src/ui/components/Tips.js +2 -2
  180. package/dist/src/ui/components/Tips.js.map +1 -1
  181. package/dist/src/ui/components/ToolStatsDisplay.js +4 -4
  182. package/dist/src/ui/components/ToolStatsDisplay.js.map +1 -1
  183. package/dist/src/ui/components/UpdateNotification.js +2 -2
  184. package/dist/src/ui/components/UpdateNotification.js.map +1 -1
  185. package/dist/src/ui/components/WorkspaceMigrationDialog.js +4 -4
  186. package/dist/src/ui/components/WorkspaceMigrationDialog.js.map +1 -1
  187. package/dist/src/ui/components/messages/CompressionMessage.d.ts +1 -2
  188. package/dist/src/ui/components/messages/CompressionMessage.js +37 -8
  189. package/dist/src/ui/components/messages/CompressionMessage.js.map +1 -1
  190. package/dist/src/ui/components/messages/CompressionMessage.test.d.ts +6 -0
  191. package/dist/src/ui/components/messages/CompressionMessage.test.js +160 -0
  192. package/dist/src/ui/components/messages/CompressionMessage.test.js.map +1 -0
  193. package/dist/src/ui/components/messages/DiffRenderer.d.ts +2 -1
  194. package/dist/src/ui/components/messages/DiffRenderer.js +14 -22
  195. package/dist/src/ui/components/messages/DiffRenderer.js.map +1 -1
  196. package/dist/src/ui/components/messages/ErrorMessage.js +2 -2
  197. package/dist/src/ui/components/messages/ErrorMessage.js.map +1 -1
  198. package/dist/src/ui/components/messages/GeminiMessage.js +2 -2
  199. package/dist/src/ui/components/messages/GeminiMessage.js.map +1 -1
  200. package/dist/src/ui/components/messages/InfoMessage.js +2 -2
  201. package/dist/src/ui/components/messages/InfoMessage.js.map +1 -1
  202. package/dist/src/ui/components/messages/ToolConfirmationMessage.js +31 -19
  203. package/dist/src/ui/components/messages/ToolConfirmationMessage.js.map +1 -1
  204. package/dist/src/ui/components/messages/ToolGroupMessage.d.ts +3 -0
  205. package/dist/src/ui/components/messages/ToolGroupMessage.js +10 -6
  206. package/dist/src/ui/components/messages/ToolGroupMessage.js.map +1 -1
  207. package/dist/src/ui/components/messages/ToolMessage.d.ts +4 -0
  208. package/dist/src/ui/components/messages/ToolMessage.js +17 -10
  209. package/dist/src/ui/components/messages/ToolMessage.js.map +1 -1
  210. package/dist/src/ui/components/messages/ToolMessage.test.js +33 -1
  211. package/dist/src/ui/components/messages/ToolMessage.test.js.map +1 -1
  212. package/dist/src/ui/components/messages/UserMessage.js +3 -3
  213. package/dist/src/ui/components/messages/UserMessage.js.map +1 -1
  214. package/dist/src/ui/components/messages/UserShellMessage.js +2 -2
  215. package/dist/src/ui/components/messages/UserShellMessage.js.map +1 -1
  216. package/dist/src/ui/components/shared/MaxSizedBox.js +2 -2
  217. package/dist/src/ui/components/shared/MaxSizedBox.js.map +1 -1
  218. package/dist/src/ui/components/shared/RadioButtonSelect.js +12 -12
  219. package/dist/src/ui/components/shared/RadioButtonSelect.js.map +1 -1
  220. package/dist/src/ui/components/shared/text-buffer.d.ts +19 -2
  221. package/dist/src/ui/components/shared/text-buffer.js +191 -133
  222. package/dist/src/ui/components/shared/text-buffer.js.map +1 -1
  223. package/dist/src/ui/components/views/ExtensionsList.d.ts +6 -0
  224. package/dist/src/ui/components/views/ExtensionsList.js +47 -0
  225. package/dist/src/ui/components/views/ExtensionsList.js.map +1 -0
  226. package/dist/src/ui/components/views/ExtensionsList.test.d.ts +6 -0
  227. package/dist/src/ui/components/views/ExtensionsList.test.js +97 -0
  228. package/dist/src/ui/components/views/ExtensionsList.test.js.map +1 -0
  229. package/dist/src/ui/contexts/UIStateContext.d.ts +6 -1
  230. package/dist/src/ui/contexts/UIStateContext.js.map +1 -1
  231. package/dist/src/ui/hooks/keyToAnsi.d.ts +15 -0
  232. package/dist/src/ui/hooks/keyToAnsi.js +67 -0
  233. package/dist/src/ui/hooks/keyToAnsi.js.map +1 -0
  234. package/dist/src/ui/hooks/shellCommandProcessor.d.ts +2 -1
  235. package/dist/src/ui/hooks/shellCommandProcessor.js +58 -15
  236. package/dist/src/ui/hooks/shellCommandProcessor.js.map +1 -1
  237. package/dist/src/ui/hooks/shellCommandProcessor.test.js +196 -17
  238. package/dist/src/ui/hooks/shellCommandProcessor.test.js.map +1 -1
  239. package/dist/src/ui/hooks/slashCommandProcessor.d.ts +3 -1
  240. package/dist/src/ui/hooks/slashCommandProcessor.js +14 -44
  241. package/dist/src/ui/hooks/slashCommandProcessor.js.map +1 -1
  242. package/dist/src/ui/hooks/useAutoAcceptIndicator.d.ts +3 -2
  243. package/dist/src/ui/hooks/useAutoAcceptIndicator.js +9 -5
  244. package/dist/src/ui/hooks/useAutoAcceptIndicator.js.map +1 -1
  245. package/dist/src/ui/hooks/useAutoAcceptIndicator.test.js +69 -0
  246. package/dist/src/ui/hooks/useAutoAcceptIndicator.test.js.map +1 -1
  247. package/dist/src/ui/hooks/useGeminiStream.d.ts +11 -1
  248. package/dist/src/ui/hooks/useGeminiStream.js +75 -18
  249. package/dist/src/ui/hooks/useGeminiStream.js.map +1 -1
  250. package/dist/src/ui/hooks/useGitBranchName.js +15 -18
  251. package/dist/src/ui/hooks/useGitBranchName.js.map +1 -1
  252. package/dist/src/ui/hooks/useGitBranchName.test.js +49 -53
  253. package/dist/src/ui/hooks/useGitBranchName.test.js.map +1 -1
  254. package/dist/src/ui/hooks/useIdeTrustListener.js +2 -2
  255. package/dist/src/ui/hooks/useIdeTrustListener.js.map +1 -1
  256. package/dist/src/ui/hooks/useQuotaAndFallback.test.js +0 -2
  257. package/dist/src/ui/hooks/useQuotaAndFallback.test.js.map +1 -1
  258. package/dist/src/ui/hooks/useReactToolScheduler.d.ts +3 -2
  259. package/dist/src/ui/hooks/useReactToolScheduler.js +21 -17
  260. package/dist/src/ui/hooks/useReactToolScheduler.js.map +1 -1
  261. package/dist/src/ui/hooks/useReverseSearchCompletion.d.ts +1 -1
  262. package/dist/src/ui/hooks/useReverseSearchCompletion.js +67 -20
  263. package/dist/src/ui/hooks/useReverseSearchCompletion.js.map +1 -1
  264. package/dist/src/ui/hooks/useSlashCompletion.d.ts +1 -1
  265. package/dist/src/ui/hooks/useSlashCompletion.js +12 -1
  266. package/dist/src/ui/hooks/useSlashCompletion.js.map +1 -1
  267. package/dist/src/ui/hooks/useSlashCompletion.test.js +14 -2
  268. package/dist/src/ui/hooks/useSlashCompletion.test.js.map +1 -1
  269. package/dist/src/ui/hooks/useToolScheduler.test.js +6 -4
  270. package/dist/src/ui/hooks/useToolScheduler.test.js.map +1 -1
  271. package/dist/src/ui/keyMatchers.test.js +8 -0
  272. package/dist/src/ui/keyMatchers.test.js.map +1 -1
  273. package/dist/src/ui/privacy/CloudFreePrivacyNotice.js +5 -5
  274. package/dist/src/ui/privacy/CloudFreePrivacyNotice.js.map +1 -1
  275. package/dist/src/ui/privacy/CloudPaidPrivacyNotice.js +2 -2
  276. package/dist/src/ui/privacy/CloudPaidPrivacyNotice.js.map +1 -1
  277. package/dist/src/ui/privacy/GeminiPrivacyNotice.js +2 -2
  278. package/dist/src/ui/privacy/GeminiPrivacyNotice.js.map +1 -1
  279. package/dist/src/ui/state/extensions.d.ts +14 -0
  280. package/dist/src/ui/state/extensions.js +16 -0
  281. package/dist/src/ui/state/extensions.js.map +1 -0
  282. package/dist/src/ui/themes/ayu.js +1 -1
  283. package/dist/src/ui/themes/dracula.js +2 -2
  284. package/dist/src/ui/themes/github-dark.js +1 -1
  285. package/dist/src/ui/themes/theme.js +17 -17
  286. package/dist/src/ui/themes/theme.js.map +1 -1
  287. package/dist/src/ui/types.d.ts +12 -2
  288. package/dist/src/ui/types.js +1 -0
  289. package/dist/src/ui/types.js.map +1 -1
  290. package/dist/src/ui/utils/CodeColorizer.js +3 -2
  291. package/dist/src/ui/utils/CodeColorizer.js.map +1 -1
  292. package/dist/src/ui/utils/InlineMarkdownRenderer.js +7 -7
  293. package/dist/src/ui/utils/InlineMarkdownRenderer.js.map +1 -1
  294. package/dist/src/ui/utils/MarkdownDisplay.js +10 -10
  295. package/dist/src/ui/utils/MarkdownDisplay.js.map +1 -1
  296. package/dist/src/ui/utils/MarkdownDisplay.test.js +6 -2
  297. package/dist/src/ui/utils/MarkdownDisplay.test.js.map +1 -1
  298. package/dist/src/ui/utils/TableRenderer.js +4 -4
  299. package/dist/src/ui/utils/TableRenderer.js.map +1 -1
  300. package/dist/src/ui/utils/clipboardUtils.js +5 -6
  301. package/dist/src/ui/utils/clipboardUtils.js.map +1 -1
  302. package/dist/src/ui/utils/displayUtils.js +4 -4
  303. package/dist/src/ui/utils/displayUtils.js.map +1 -1
  304. package/dist/src/ui/utils/textUtils.d.ts +9 -0
  305. package/dist/src/ui/utils/textUtils.js +52 -3
  306. package/dist/src/ui/utils/textUtils.js.map +1 -1
  307. package/dist/src/utils/commands.d.ts +20 -0
  308. package/dist/src/utils/commands.js +53 -0
  309. package/dist/src/utils/commands.js.map +1 -0
  310. package/dist/src/utils/commands.test.d.ts +6 -0
  311. package/dist/src/utils/commands.test.js +115 -0
  312. package/dist/src/utils/commands.test.js.map +1 -0
  313. package/dist/src/utils/commentJson.d.ts +9 -0
  314. package/dist/src/utils/commentJson.js +48 -0
  315. package/dist/src/utils/commentJson.js.map +1 -0
  316. package/dist/src/utils/commentJson.test.d.ts +6 -0
  317. package/dist/src/utils/commentJson.test.js +146 -0
  318. package/dist/src/utils/commentJson.test.js.map +1 -0
  319. package/dist/src/utils/errors.d.ts +21 -0
  320. package/dist/src/utils/errors.js +93 -0
  321. package/dist/src/utils/errors.js.map +1 -1
  322. package/dist/src/utils/errors.test.d.ts +6 -0
  323. package/dist/src/utils/errors.test.js +303 -0
  324. package/dist/src/utils/errors.test.js.map +1 -0
  325. package/dist/src/utils/sandbox.d.ts +1 -1
  326. package/dist/src/utils/sandbox.js +10 -17
  327. package/dist/src/utils/sandbox.js.map +1 -1
  328. package/dist/src/utils/settingsUtils.test.js +37 -2
  329. package/dist/src/utils/settingsUtils.test.js.map +1 -1
  330. package/dist/src/validateNonInterActiveAuth.js +30 -18
  331. package/dist/src/validateNonInterActiveAuth.js.map +1 -1
  332. package/dist/src/zed-integration/schema.d.ts +18 -18
  333. package/dist/src/zed-integration/zedIntegration.js +10 -7
  334. package/dist/src/zed-integration/zedIntegration.js.map +1 -1
  335. package/dist/tsconfig.tsbuildinfo +1 -1
  336. package/package.json +5 -5
  337. package/dist/src/utils/processUtils.d.ts +0 -13
  338. package/dist/src/utils/processUtils.js +0 -18
  339. package/dist/src/utils/processUtils.js.map +0 -1
  340. package/dist/src/utils/processUtils.test.js +0 -20
  341. package/dist/src/utils/processUtils.test.js.map +0 -1
  342. /package/dist/src/{utils/processUtils.test.d.ts → config/extensions/extensionEnablement.test.d.ts} +0 -0
@@ -4,7 +4,7 @@
4
4
  * SPDX-License-Identifier: Apache-2.0
5
5
  */
6
6
  import { ToolCallStatus } from '../types.js';
7
- import { useCallback } from 'react';
7
+ import { useCallback, useState } from 'react';
8
8
  import { isBinary, ShellExecutionService } from '@google/gemini-cli-core';
9
9
  import {} from '@google/genai';
10
10
  import { SHELL_COMMAND_NAME } from '../constants.js';
@@ -13,6 +13,7 @@ import crypto from 'node:crypto';
13
13
  import path from 'node:path';
14
14
  import os from 'node:os';
15
15
  import fs from 'node:fs';
16
+ import { themeManager } from '../../ui/themes/theme-manager.js';
16
17
  export const OUTPUT_UPDATE_INTERVAL_MS = 1000;
17
18
  const MAX_OUTPUT_LENGTH = 10000;
18
19
  function addShellCommandToGeminiHistory(geminiClient, rawQuery, resultText) {
@@ -40,7 +41,8 @@ ${modelContent}
40
41
  * Hook to process shell commands.
41
42
  * Orchestrates command execution and updates history and agent context.
42
43
  */
43
- export const useShellCommandProcessor = (addItemToHistory, setPendingHistoryItem, onExec, onDebugMessage, config, geminiClient) => {
44
+ export const useShellCommandProcessor = (addItemToHistory, setPendingHistoryItem, onExec, onDebugMessage, config, geminiClient, setShellInputFocused, terminalWidth, terminalHeight) => {
45
+ const [activeShellPtyId, setActiveShellPtyId] = useState(null);
44
46
  const handleShellCommand = useCallback((rawQuery, abortSignal) => {
45
47
  if (typeof rawQuery !== 'string' || rawQuery.trim() === '') {
46
48
  return false;
@@ -87,16 +89,34 @@ export const useShellCommandProcessor = (addItemToHistory, setPendingHistoryItem
87
89
  abortSignal.addEventListener('abort', abortHandler, { once: true });
88
90
  onDebugMessage(`Executing in ${targetDir}: ${commandToExecute}`);
89
91
  try {
92
+ const activeTheme = themeManager.getActiveTheme();
93
+ const shellExecutionConfig = {
94
+ ...config.getShellExecutionConfig(),
95
+ defaultFg: activeTheme.colors.Foreground,
96
+ defaultBg: activeTheme.colors.Background,
97
+ };
90
98
  const { pid, result } = await ShellExecutionService.execute(commandToExecute, targetDir, (event) => {
99
+ let shouldUpdate = false;
91
100
  switch (event.type) {
92
101
  case 'data':
93
102
  // Do not process text data if we've already switched to binary mode.
94
103
  if (isBinaryStream)
95
104
  break;
96
- cumulativeStdout += event.chunk;
105
+ // PTY provides the full screen state, so we just replace.
106
+ // Child process provides chunks, so we append.
107
+ if (typeof event.chunk === 'string' &&
108
+ typeof cumulativeStdout === 'string') {
109
+ cumulativeStdout += event.chunk;
110
+ }
111
+ else {
112
+ cumulativeStdout = event.chunk;
113
+ shouldUpdate = true;
114
+ }
97
115
  break;
98
116
  case 'binary_detected':
99
117
  isBinaryStream = true;
118
+ // Force an immediate UI update to show the binary detection message.
119
+ shouldUpdate = true;
100
120
  break;
101
121
  case 'binary_progress':
102
122
  isBinaryStream = true;
@@ -120,21 +140,37 @@ export const useShellCommandProcessor = (addItemToHistory, setPendingHistoryItem
120
140
  else {
121
141
  currentDisplayOutput = cumulativeStdout;
122
142
  }
123
- // Throttle pending UI updates to avoid excessive re-renders.
124
- if (Date.now() - lastUpdateTime > OUTPUT_UPDATE_INTERVAL_MS) {
125
- setPendingHistoryItem({
126
- type: 'tool_group',
127
- tools: [
128
- {
129
- ...initialToolDisplay,
130
- resultDisplay: currentDisplayOutput,
131
- },
132
- ],
143
+ // Throttle pending UI updates, but allow forced updates.
144
+ if (shouldUpdate ||
145
+ Date.now() - lastUpdateTime > OUTPUT_UPDATE_INTERVAL_MS) {
146
+ setPendingHistoryItem((prevItem) => {
147
+ if (prevItem?.type === 'tool_group') {
148
+ return {
149
+ ...prevItem,
150
+ tools: prevItem.tools.map((tool) => tool.callId === callId
151
+ ? { ...tool, resultDisplay: currentDisplayOutput }
152
+ : tool),
153
+ };
154
+ }
155
+ return prevItem;
133
156
  });
134
157
  lastUpdateTime = Date.now();
135
158
  }
136
- }, abortSignal, config.getShouldUseNodePtyShell());
159
+ }, abortSignal, config.getShouldUseNodePtyShell(), shellExecutionConfig);
160
+ console.log(terminalHeight, terminalWidth);
137
161
  executionPid = pid;
162
+ if (pid) {
163
+ setActiveShellPtyId(pid);
164
+ setPendingHistoryItem((prevItem) => {
165
+ if (prevItem?.type === 'tool_group') {
166
+ return {
167
+ ...prevItem,
168
+ tools: prevItem.tools.map((tool) => tool.callId === callId ? { ...tool, ptyId: pid } : tool),
169
+ };
170
+ }
171
+ return prevItem;
172
+ });
173
+ }
138
174
  result
139
175
  .then((result) => {
140
176
  setPendingHistoryItem(null);
@@ -198,6 +234,8 @@ export const useShellCommandProcessor = (addItemToHistory, setPendingHistoryItem
198
234
  if (pwdFilePath && fs.existsSync(pwdFilePath)) {
199
235
  fs.unlinkSync(pwdFilePath);
200
236
  }
237
+ setActiveShellPtyId(null);
238
+ setShellInputFocused(false);
201
239
  resolve();
202
240
  });
203
241
  }
@@ -213,6 +251,8 @@ export const useShellCommandProcessor = (addItemToHistory, setPendingHistoryItem
213
251
  if (pwdFilePath && fs.existsSync(pwdFilePath)) {
214
252
  fs.unlinkSync(pwdFilePath);
215
253
  }
254
+ setActiveShellPtyId(null);
255
+ setShellInputFocused(false);
216
256
  resolve(); // Resolve the promise to unblock `onExec`
217
257
  }
218
258
  };
@@ -228,7 +268,10 @@ export const useShellCommandProcessor = (addItemToHistory, setPendingHistoryItem
228
268
  setPendingHistoryItem,
229
269
  onExec,
230
270
  geminiClient,
271
+ setShellInputFocused,
272
+ terminalHeight,
273
+ terminalWidth,
231
274
  ]);
232
- return { handleShellCommand };
275
+ return { handleShellCommand, activeShellPtyId };
233
276
  };
234
277
  //# sourceMappingURL=shellCommandProcessor.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"shellCommandProcessor.js","sourceRoot":"","sources":["../../../../src/ui/hooks/shellCommandProcessor.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"shellCommandProcessor.js","sourceRoot":"","sources":["../../../../src/ui/hooks/shellCommandProcessor.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAMH,OAAO,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAC7C,OAAO,EAAE,WAAW,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAC;AAO9C,OAAO,EAAE,QAAQ,EAAE,qBAAqB,EAAE,MAAM,yBAAyB,CAAC;AAC1E,OAAO,EAAsB,MAAM,eAAe,CAAC;AAEnD,OAAO,EAAE,kBAAkB,EAAE,MAAM,iBAAiB,CAAC;AACrD,OAAO,EAAE,iBAAiB,EAAE,MAAM,wBAAwB,CAAC;AAC3D,OAAO,MAAM,MAAM,aAAa,CAAC;AACjC,OAAO,IAAI,MAAM,WAAW,CAAC;AAC7B,OAAO,EAAE,MAAM,SAAS,CAAC;AACzB,OAAO,EAAE,MAAM,SAAS,CAAC;AACzB,OAAO,EAAE,YAAY,EAAE,MAAM,kCAAkC,CAAC;AAEhE,MAAM,CAAC,MAAM,yBAAyB,GAAG,IAAI,CAAC;AAC9C,MAAM,iBAAiB,GAAG,KAAK,CAAC;AAEhC,SAAS,8BAA8B,CACrC,YAA0B,EAC1B,QAAgB,EAChB,UAAkB;IAElB,MAAM,YAAY,GAChB,UAAU,CAAC,MAAM,GAAG,iBAAiB;QACnC,CAAC,CAAC,UAAU,CAAC,SAAS,CAAC,CAAC,EAAE,iBAAiB,CAAC,GAAG,mBAAmB;QAClE,CAAC,CAAC,UAAU,CAAC;IAEjB,YAAY,CAAC,UAAU,CAAC;QACtB,IAAI,EAAE,MAAM;QACZ,KAAK,EAAE;YACL;gBACE,IAAI,EAAE;;EAEZ,QAAQ;;;;;EAKR,YAAY;OACP;aACA;SACF;KACF,CAAC,CAAC;AACL,CAAC;AAED;;;GAGG;AACH,MAAM,CAAC,MAAM,wBAAwB,GAAG,CACtC,gBAAoD,EACpD,qBAEC,EACD,MAAwC,EACxC,cAAyC,EACzC,MAAc,EACd,YAA0B,EAC1B,oBAA8C,EAC9C,aAAsB,EACtB,cAAuB,EACvB,EAAE;IACF,MAAM,CAAC,gBAAgB,EAAE,mBAAmB,CAAC,GAAG,QAAQ,CAAgB,IAAI,CAAC,CAAC;IAC9E,MAAM,kBAAkB,GAAG,WAAW,CACpC,CAAC,QAAuB,EAAE,WAAwB,EAAW,EAAE;QAC7D,IAAI,OAAO,QAAQ,KAAK,QAAQ,IAAI,QAAQ,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE,CAAC;YAC3D,OAAO,KAAK,CAAC;QACf,CAAC;QAED,MAAM,oBAAoB,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;QACxC,MAAM,MAAM,GAAG,SAAS,oBAAoB,EAAE,CAAC;QAC/C,gBAAgB,CACd,EAAE,IAAI,EAAE,YAAY,EAAE,IAAI,EAAE,QAAQ,EAAE,EACtC,oBAAoB,CACrB,CAAC;QAEF,MAAM,SAAS,GAAG,EAAE,CAAC,QAAQ,EAAE,KAAK,OAAO,CAAC;QAC5C,MAAM,SAAS,GAAG,MAAM,CAAC,YAAY,EAAE,CAAC;QACxC,IAAI,gBAAgB,GAAG,QAAQ,CAAC;QAChC,IAAI,WAA+B,CAAC;QAEpC,2EAA2E;QAC3E,IAAI,CAAC,SAAS,EAAE,CAAC;YACf,IAAI,OAAO,GAAG,QAAQ,CAAC,IAAI,EAAE,CAAC;YAC9B,MAAM,WAAW,GAAG,aAAa,MAAM,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,MAAM,CAAC;YAC7E,WAAW,GAAG,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,MAAM,EAAE,EAAE,WAAW,CAAC,CAAC;YAClD,8DAA8D;YAC9D,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC;gBACrD,OAAO,IAAI,GAAG,CAAC;YACjB,CAAC;YACD,gBAAgB,GAAG,KAAK,OAAO,yBAAyB,WAAW,iBAAiB,CAAC;QACvF,CAAC;QAED,MAAM,cAAc,GAAG,KAAK,EAC1B,OAAkD,EAClD,EAAE;YACF,IAAI,cAAc,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;YAChC,IAAI,gBAAgB,GAAwB,EAAE,CAAC;YAC/C,IAAI,cAAc,GAAG,KAAK,CAAC;YAC3B,IAAI,mBAAmB,GAAG,CAAC,CAAC;YAE5B,MAAM,kBAAkB,GAA8B;gBACpD,MAAM;gBACN,IAAI,EAAE,kBAAkB;gBACxB,WAAW,EAAE,QAAQ;gBACrB,MAAM,EAAE,cAAc,CAAC,SAAS;gBAChC,aAAa,EAAE,EAAE;gBACjB,mBAAmB,EAAE,SAAS;aAC/B,CAAC;YAEF,qBAAqB,CAAC;gBACpB,IAAI,EAAE,YAAY;gBAClB,KAAK,EAAE,CAAC,kBAAkB,CAAC;aAC5B,CAAC,CAAC;YAEH,IAAI,YAAgC,CAAC;YAErC,MAAM,YAAY,GAAG,GAAG,EAAE;gBACxB,cAAc,CACZ,gCAAgC,YAAY,IAAI,SAAS,GAAG,CAC7D,CAAC;YACJ,CAAC,CAAC;YACF,WAAW,CAAC,gBAAgB,CAAC,OAAO,EAAE,YAAY,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC;YAEpE,cAAc,CAAC,gBAAgB,SAAS,KAAK,gBAAgB,EAAE,CAAC,CAAC;YAEjE,IAAI,CAAC;gBACH,MAAM,WAAW,GAAG,YAAY,CAAC,cAAc,EAAE,CAAC;gBAClD,MAAM,oBAAoB,GAAG;oBAC3B,GAAG,MAAM,CAAC,uBAAuB,EAAE;oBACnC,SAAS,EAAE,WAAW,CAAC,MAAM,CAAC,UAAU;oBACxC,SAAS,EAAE,WAAW,CAAC,MAAM,CAAC,UAAU;iBACzC,CAAC;gBAEF,MAAM,EAAE,GAAG,EAAE,MAAM,EAAE,GAAG,MAAM,qBAAqB,CAAC,OAAO,CACzD,gBAAgB,EAChB,SAAS,EACT,CAAC,KAAK,EAAE,EAAE;oBACR,IAAI,YAAY,GAAG,KAAK,CAAC;oBACzB,QAAQ,KAAK,CAAC,IAAI,EAAE,CAAC;wBACnB,KAAK,MAAM;4BACT,qEAAqE;4BACrE,IAAI,cAAc;gCAAE,MAAM;4BAC1B,0DAA0D;4BAC1D,+CAA+C;4BAC/C,IACE,OAAO,KAAK,CAAC,KAAK,KAAK,QAAQ;gCAC/B,OAAO,gBAAgB,KAAK,QAAQ,EACpC,CAAC;gCACD,gBAAgB,IAAI,KAAK,CAAC,KAAK,CAAC;4BAClC,CAAC;iCAAM,CAAC;gCACN,gBAAgB,GAAG,KAAK,CAAC,KAAK,CAAC;gCAC/B,YAAY,GAAG,IAAI,CAAC;4BACtB,CAAC;4BACD,MAAM;wBACR,KAAK,iBAAiB;4BACpB,cAAc,GAAG,IAAI,CAAC;4BACtB,qEAAqE;4BACrE,YAAY,GAAG,IAAI,CAAC;4BACpB,MAAM;wBACR,KAAK,iBAAiB;4BACpB,cAAc,GAAG,IAAI,CAAC;4BACtB,mBAAmB,GAAG,KAAK,CAAC,aAAa,CAAC;4BAC1C,MAAM;wBACR,OAAO,CAAC,CAAC,CAAC;4BACR,MAAM,IAAI,KAAK,CAAC,0CAA0C,CAAC,CAAC;wBAC9D,CAAC;oBACH,CAAC;oBAED,2DAA2D;oBAC3D,IAAI,oBAAyC,CAAC;oBAC9C,IAAI,cAAc,EAAE,CAAC;wBACnB,IAAI,mBAAmB,GAAG,CAAC,EAAE,CAAC;4BAC5B,oBAAoB,GAAG,+BAA+B,iBAAiB,CACrE,mBAAmB,CACpB,YAAY,CAAC;wBAChB,CAAC;6BAAM,CAAC;4BACN,oBAAoB;gCAClB,6CAA6C,CAAC;wBAClD,CAAC;oBACH,CAAC;yBAAM,CAAC;wBACN,oBAAoB,GAAG,gBAAgB,CAAC;oBAC1C,CAAC;oBAED,yDAAyD;oBACzD,IACE,YAAY;wBACZ,IAAI,CAAC,GAAG,EAAE,GAAG,cAAc,GAAG,yBAAyB,EACvD,CAAC;wBACD,qBAAqB,CAAC,CAAC,QAAQ,EAAE,EAAE;4BACjC,IAAI,QAAQ,EAAE,IAAI,KAAK,YAAY,EAAE,CAAC;gCACpC,OAAO;oCACL,GAAG,QAAQ;oCACX,KAAK,EAAE,QAAQ,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CACjC,IAAI,CAAC,MAAM,KAAK,MAAM;wCACpB,CAAC,CAAC,EAAE,GAAG,IAAI,EAAE,aAAa,EAAE,oBAAoB,EAAE;wCAClD,CAAC,CAAC,IAAI,CACT;iCACF,CAAC;4BACJ,CAAC;4BACD,OAAO,QAAQ,CAAC;wBAClB,CAAC,CAAC,CAAC;wBACH,cAAc,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;oBAC9B,CAAC;gBACH,CAAC,EACD,WAAW,EACX,MAAM,CAAC,wBAAwB,EAAE,EACjC,oBAAoB,CACrB,CAAC;gBAEF,OAAO,CAAC,GAAG,CAAC,cAAc,EAAE,aAAa,CAAC,CAAC;gBAE3C,YAAY,GAAG,GAAG,CAAC;gBACnB,IAAI,GAAG,EAAE,CAAC;oBACR,mBAAmB,CAAC,GAAG,CAAC,CAAC;oBACzB,qBAAqB,CAAC,CAAC,QAAQ,EAAE,EAAE;wBACjC,IAAI,QAAQ,EAAE,IAAI,KAAK,YAAY,EAAE,CAAC;4BACpC,OAAO;gCACL,GAAG,QAAQ;gCACX,KAAK,EAAE,QAAQ,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CACjC,IAAI,CAAC,MAAM,KAAK,MAAM,CAAC,CAAC,CAAC,EAAE,GAAG,IAAI,EAAE,KAAK,EAAE,GAAG,EAAE,CAAC,CAAC,CAAC,IAAI,CACxD;6BACF,CAAC;wBACJ,CAAC;wBACD,OAAO,QAAQ,CAAC;oBAClB,CAAC,CAAC,CAAC;gBACL,CAAC;gBAED,MAAM;qBACH,IAAI,CAAC,CAAC,MAA4B,EAAE,EAAE;oBACrC,qBAAqB,CAAC,IAAI,CAAC,CAAC;oBAE5B,IAAI,WAAmB,CAAC;oBAExB,IAAI,QAAQ,CAAC,MAAM,CAAC,SAAS,CAAC,EAAE,CAAC;wBAC/B,WAAW;4BACT,uDAAuD,CAAC;oBAC5D,CAAC;yBAAM,CAAC;wBACN,WAAW;4BACT,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,IAAI,8BAA8B,CAAC;oBAC3D,CAAC;oBAED,IAAI,WAAW,GAAG,WAAW,CAAC;oBAC9B,IAAI,WAAW,GAAG,cAAc,CAAC,OAAO,CAAC;oBAEzC,IAAI,MAAM,CAAC,KAAK,EAAE,CAAC;wBACjB,WAAW,GAAG,cAAc,CAAC,KAAK,CAAC;wBACnC,WAAW,GAAG,GAAG,MAAM,CAAC,KAAK,CAAC,OAAO,KAAK,WAAW,EAAE,CAAC;oBAC1D,CAAC;yBAAM,IAAI,MAAM,CAAC,OAAO,EAAE,CAAC;wBAC1B,WAAW,GAAG,cAAc,CAAC,QAAQ,CAAC;wBACtC,WAAW,GAAG,2BAA2B,WAAW,EAAE,CAAC;oBACzD,CAAC;yBAAM,IAAI,MAAM,CAAC,MAAM,EAAE,CAAC;wBACzB,WAAW,GAAG,cAAc,CAAC,KAAK,CAAC;wBACnC,WAAW,GAAG,iCAAiC,MAAM,CAAC,MAAM,MAAM,WAAW,EAAE,CAAC;oBAClF,CAAC;yBAAM,IAAI,MAAM,CAAC,QAAQ,KAAK,CAAC,EAAE,CAAC;wBACjC,WAAW,GAAG,cAAc,CAAC,KAAK,CAAC;wBACnC,WAAW,GAAG,4BAA4B,MAAM,CAAC,QAAQ,MAAM,WAAW,EAAE,CAAC;oBAC/E,CAAC;oBAED,IAAI,WAAW,IAAI,EAAE,CAAC,UAAU,CAAC,WAAW,CAAC,EAAE,CAAC;wBAC9C,MAAM,QAAQ,GAAG,EAAE,CAAC,YAAY,CAAC,WAAW,EAAE,MAAM,CAAC,CAAC,IAAI,EAAE,CAAC;wBAC7D,IAAI,QAAQ,IAAI,QAAQ,KAAK,SAAS,EAAE,CAAC;4BACvC,MAAM,OAAO,GAAG,8DAA8D,QAAQ,qBAAqB,CAAC;4BAC5G,WAAW,GAAG,GAAG,OAAO,OAAO,WAAW,EAAE,CAAC;wBAC/C,CAAC;oBACH,CAAC;oBAED,MAAM,gBAAgB,GAA8B;wBAClD,GAAG,kBAAkB;wBACrB,MAAM,EAAE,WAAW;wBACnB,aAAa,EAAE,WAAW;qBAC3B,CAAC;oBAEF,+DAA+D;oBAC/D,gBAAgB,CACd;wBACE,IAAI,EAAE,YAAY;wBAClB,KAAK,EAAE,CAAC,gBAAgB,CAAC;qBACF,EACzB,oBAAoB,CACrB,CAAC;oBAEF,iEAAiE;oBACjE,8BAA8B,CAC5B,YAAY,EACZ,QAAQ,EACR,WAAW,CACZ,CAAC;gBACJ,CAAC,CAAC;qBACD,KAAK,CAAC,CAAC,GAAG,EAAE,EAAE;oBACb,qBAAqB,CAAC,IAAI,CAAC,CAAC;oBAC5B,MAAM,YAAY,GAChB,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;oBACnD,gBAAgB,CACd;wBACE,IAAI,EAAE,OAAO;wBACb,IAAI,EAAE,iCAAiC,YAAY,EAAE;qBACtD,EACD,oBAAoB,CACrB,CAAC;gBACJ,CAAC,CAAC;qBACD,OAAO,CAAC,GAAG,EAAE;oBACZ,WAAW,CAAC,mBAAmB,CAAC,OAAO,EAAE,YAAY,CAAC,CAAC;oBACvD,IAAI,WAAW,IAAI,EAAE,CAAC,UAAU,CAAC,WAAW,CAAC,EAAE,CAAC;wBAC9C,EAAE,CAAC,UAAU,CAAC,WAAW,CAAC,CAAC;oBAC7B,CAAC;oBACD,mBAAmB,CAAC,IAAI,CAAC,CAAC;oBAC1B,oBAAoB,CAAC,KAAK,CAAC,CAAC;oBAC5B,OAAO,EAAE,CAAC;gBACZ,CAAC,CAAC,CAAC;YACP,CAAC;YAAC,OAAO,GAAG,EAAE,CAAC;gBACb,uDAAuD;gBACvD,qBAAqB,CAAC,IAAI,CAAC,CAAC;gBAC5B,MAAM,YAAY,GAAG,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;gBACtE,gBAAgB,CACd;oBACE,IAAI,EAAE,OAAO;oBACb,IAAI,EAAE,iCAAiC,YAAY,EAAE;iBACtD,EACD,oBAAoB,CACrB,CAAC;gBAEF,+BAA+B;gBAC/B,IAAI,WAAW,IAAI,EAAE,CAAC,UAAU,CAAC,WAAW,CAAC,EAAE,CAAC;oBAC9C,EAAE,CAAC,UAAU,CAAC,WAAW,CAAC,CAAC;gBAC7B,CAAC;gBACD,mBAAmB,CAAC,IAAI,CAAC,CAAC;gBAC1B,oBAAoB,CAAC,KAAK,CAAC,CAAC;gBAC5B,OAAO,EAAE,CAAC,CAAC,0CAA0C;YACvD,CAAC;QACH,CAAC,CAAC;QAEF,MAAM,WAAW,GAAG,IAAI,OAAO,CAAO,CAAC,OAAO,EAAE,EAAE;YAChD,cAAc,CAAC,OAAO,CAAC,CAAC;QAC1B,CAAC,CAAC,CAAC;QAEH,MAAM,CAAC,WAAW,CAAC,CAAC;QACpB,OAAO,IAAI,CAAC;IACd,CAAC,EACD;QACE,MAAM;QACN,cAAc;QACd,gBAAgB;QAChB,qBAAqB;QACrB,MAAM;QACN,YAAY;QACZ,oBAAoB;QACpB,cAAc;QACd,aAAa;KACd,CACF,CAAC;IAEF,OAAO,EAAE,kBAAkB,EAAE,gBAAgB,EAAE,CAAC;AAClD,CAAC,CAAC"}
@@ -31,15 +31,21 @@ describe('useShellCommandProcessor', () => {
31
31
  let mockGeminiClient;
32
32
  let mockShellOutputCallback;
33
33
  let resolveExecutionPromise;
34
+ let setShellInputFocusedMock;
34
35
  beforeEach(() => {
35
36
  vi.clearAllMocks();
36
37
  addItemToHistoryMock = vi.fn();
37
38
  setPendingHistoryItemMock = vi.fn();
38
39
  onExecMock = vi.fn();
39
40
  onDebugMessageMock = vi.fn();
41
+ setShellInputFocusedMock = vi.fn();
40
42
  mockConfig = {
41
43
  getTargetDir: () => '/test/dir',
42
44
  getShouldUseNodePtyShell: () => false,
45
+ getShellExecutionConfig: () => ({
46
+ terminalHeight: 20,
47
+ terminalWidth: 80,
48
+ }),
43
49
  };
44
50
  mockGeminiClient = { addHistory: vi.fn() };
45
51
  vi.mocked(os.platform).mockReturnValue('linux');
@@ -49,15 +55,15 @@ describe('useShellCommandProcessor', () => {
49
55
  vi.mocked(fs.existsSync).mockReturnValue(false);
50
56
  mockShellExecutionService.mockImplementation((_cmd, _cwd, callback) => {
51
57
  mockShellOutputCallback = callback;
52
- return {
58
+ return Promise.resolve({
53
59
  pid: 12345,
54
60
  result: new Promise((resolve) => {
55
61
  resolveExecutionPromise = resolve;
56
62
  }),
57
- };
63
+ });
58
64
  });
59
65
  });
60
- const renderProcessorHook = () => renderHook(() => useShellCommandProcessor(addItemToHistoryMock, setPendingHistoryItemMock, onExecMock, onDebugMessageMock, mockConfig, mockGeminiClient));
66
+ const renderProcessorHook = () => renderHook(() => useShellCommandProcessor(addItemToHistoryMock, setPendingHistoryItemMock, onExecMock, onDebugMessageMock, mockConfig, mockGeminiClient, setShellInputFocusedMock));
61
67
  const createMockServiceResult = (overrides = {}) => ({
62
68
  rawOutput: Buffer.from(overrides.output || ''),
63
69
  output: 'Success',
@@ -86,7 +92,7 @@ describe('useShellCommandProcessor', () => {
86
92
  });
87
93
  const tmpFile = path.join(os.tmpdir(), 'shell_pwd_abcdef.tmp');
88
94
  const wrappedCommand = `{ ls -l; }; __code=$?; pwd > "${tmpFile}"; exit $__code`;
89
- expect(mockShellExecutionService).toHaveBeenCalledWith(wrappedCommand, '/test/dir', expect.any(Function), expect.any(Object), false);
95
+ expect(mockShellExecutionService).toHaveBeenCalledWith(wrappedCommand, '/test/dir', expect.any(Function), expect.any(Object), false, expect.any(Object));
90
96
  expect(onExecMock).toHaveBeenCalledWith(expect.any(Promise));
91
97
  });
92
98
  it('should handle successful execution and update history correctly', async () => {
@@ -110,6 +116,7 @@ describe('useShellCommandProcessor', () => {
110
116
  ],
111
117
  }));
112
118
  expect(mockGeminiClient.addHistory).toHaveBeenCalled();
119
+ expect(setShellInputFocusedMock).toHaveBeenCalledWith(false);
113
120
  });
114
121
  it('should handle command failure and display error status', async () => {
115
122
  const { result } = renderProcessorHook();
@@ -125,6 +132,7 @@ describe('useShellCommandProcessor', () => {
125
132
  expect(finalHistoryItem.tools[0].status).toBe(ToolCallStatus.Error);
126
133
  expect(finalHistoryItem.tools[0].resultDisplay).toContain('Command exited with code 127');
127
134
  expect(finalHistoryItem.tools[0].resultDisplay).toContain('not found');
135
+ expect(setShellInputFocusedMock).toHaveBeenCalledWith(false);
128
136
  });
129
137
  describe('UI Streaming and Throttling', () => {
130
138
  beforeEach(() => {
@@ -133,11 +141,20 @@ describe('useShellCommandProcessor', () => {
133
141
  afterEach(() => {
134
142
  vi.useRealTimers();
135
143
  });
136
- it('should throttle pending UI updates for text streams', async () => {
144
+ it('should throttle pending UI updates for text streams (non-interactive)', async () => {
137
145
  const { result } = renderProcessorHook();
138
146
  act(() => {
139
147
  result.current.handleShellCommand('stream', new AbortController().signal);
140
148
  });
149
+ // Verify it's using the non-pty shell
150
+ const wrappedCommand = `{ stream; }; __code=$?; pwd > "${path.join(os.tmpdir(), 'shell_pwd_abcdef.tmp')}"; exit $__code`;
151
+ expect(mockShellExecutionService).toHaveBeenCalledWith(wrappedCommand, '/test/dir', expect.any(Function), expect.any(Object), false, // usePty
152
+ expect.any(Object));
153
+ // Wait for the async PID update to happen.
154
+ await vi.waitFor(() => {
155
+ // It's called once for initial, and once for the PID update.
156
+ expect(setPendingHistoryItemMock).toHaveBeenCalledTimes(2);
157
+ });
141
158
  // Simulate rapid output
142
159
  act(() => {
143
160
  mockShellOutputCallback({
@@ -145,23 +162,40 @@ describe('useShellCommandProcessor', () => {
145
162
  chunk: 'hello',
146
163
  });
147
164
  });
148
- // Should not have updated the UI yet
149
- expect(setPendingHistoryItemMock).toHaveBeenCalledTimes(1); // Only the initial call
150
- // Advance time and send another event to trigger the throttled update
165
+ // The count should still be 2, as throttling is in effect.
166
+ expect(setPendingHistoryItemMock).toHaveBeenCalledTimes(2);
167
+ // Simulate more rapid output
168
+ act(() => {
169
+ mockShellOutputCallback({
170
+ type: 'data',
171
+ chunk: ' world',
172
+ });
173
+ });
174
+ expect(setPendingHistoryItemMock).toHaveBeenCalledTimes(2);
175
+ // Advance time, but the update won't happen until the next event
151
176
  await act(async () => {
152
177
  await vi.advanceTimersByTimeAsync(OUTPUT_UPDATE_INTERVAL_MS + 1);
153
178
  });
179
+ // Trigger one more event to cause the throttled update to fire.
154
180
  act(() => {
155
181
  mockShellOutputCallback({
156
182
  type: 'data',
157
- chunk: ' world',
183
+ chunk: '',
158
184
  });
159
185
  });
160
- // Should now have been called with the cumulative output
161
- expect(setPendingHistoryItemMock).toHaveBeenCalledTimes(2);
162
- expect(setPendingHistoryItemMock).toHaveBeenLastCalledWith(expect.objectContaining({
163
- tools: [expect.objectContaining({ resultDisplay: 'hello world' })],
164
- }));
186
+ // Now the cumulative update should have occurred.
187
+ // Call 1: Initial, Call 2: PID update, Call 3: Throttled stream update
188
+ expect(setPendingHistoryItemMock).toHaveBeenCalledTimes(3);
189
+ const streamUpdateFn = setPendingHistoryItemMock.mock.calls[2][0];
190
+ if (!streamUpdateFn || typeof streamUpdateFn !== 'function') {
191
+ throw new Error('setPendingHistoryItem was not called with a stream updater function');
192
+ }
193
+ // Get the state after the PID update to feed into the stream updater
194
+ const pidUpdateFn = setPendingHistoryItemMock.mock.calls[1][0];
195
+ const initialState = setPendingHistoryItemMock.mock.calls[0][0];
196
+ const stateAfterPid = pidUpdateFn(initialState);
197
+ const stateAfterStream = streamUpdateFn(stateAfterPid);
198
+ expect(stateAfterStream.tools[0].resultDisplay).toBe('hello world');
165
199
  });
166
200
  it('should show binary progress messages correctly', async () => {
167
201
  const { result } = renderProcessorHook();
@@ -179,7 +213,14 @@ describe('useShellCommandProcessor', () => {
179
213
  act(() => {
180
214
  mockShellOutputCallback({ type: 'binary_progress', bytesReceived: 0 });
181
215
  });
182
- expect(setPendingHistoryItemMock).toHaveBeenLastCalledWith(expect.objectContaining({
216
+ // The state update is functional, so we test it by executing it.
217
+ const updaterFn1 = setPendingHistoryItemMock.mock.lastCall?.[0];
218
+ if (!updaterFn1) {
219
+ throw new Error('setPendingHistoryItem was not called');
220
+ }
221
+ const initialState = setPendingHistoryItemMock.mock.calls[0][0];
222
+ const stateAfterBinaryDetected = updaterFn1(initialState);
223
+ expect(stateAfterBinaryDetected).toEqual(expect.objectContaining({
183
224
  tools: [
184
225
  expect.objectContaining({
185
226
  resultDisplay: '[Binary output detected. Halting stream...]',
@@ -196,7 +237,12 @@ describe('useShellCommandProcessor', () => {
196
237
  bytesReceived: 2048,
197
238
  });
198
239
  });
199
- expect(setPendingHistoryItemMock).toHaveBeenLastCalledWith(expect.objectContaining({
240
+ const updaterFn2 = setPendingHistoryItemMock.mock.lastCall?.[0];
241
+ if (!updaterFn2) {
242
+ throw new Error('setPendingHistoryItem was not called');
243
+ }
244
+ const stateAfterProgress = updaterFn2(stateAfterBinaryDetected);
245
+ expect(stateAfterProgress).toEqual(expect.objectContaining({
200
246
  tools: [
201
247
  expect.objectContaining({
202
248
  resultDisplay: '[Receiving binary output... 2.0 KB received]',
@@ -211,7 +257,7 @@ describe('useShellCommandProcessor', () => {
211
257
  act(() => {
212
258
  result.current.handleShellCommand('dir', new AbortController().signal);
213
259
  });
214
- expect(mockShellExecutionService).toHaveBeenCalledWith('dir', '/test/dir', expect.any(Function), expect.any(Object), false);
260
+ expect(mockShellExecutionService).toHaveBeenCalledWith('dir', '/test/dir', expect.any(Function), expect.any(Object), false, expect.any(Object));
215
261
  });
216
262
  it('should handle command abort and display cancelled status', async () => {
217
263
  const { result } = renderProcessorHook();
@@ -228,6 +274,7 @@ describe('useShellCommandProcessor', () => {
228
274
  const finalHistoryItem = addItemToHistoryMock.mock.calls[1][0];
229
275
  expect(finalHistoryItem.tools[0].status).toBe(ToolCallStatus.Canceled);
230
276
  expect(finalHistoryItem.tools[0].resultDisplay).toContain('Command was cancelled.');
277
+ expect(setShellInputFocusedMock).toHaveBeenCalledWith(false);
231
278
  });
232
279
  it('should handle binary output result correctly', async () => {
233
280
  const { result } = renderProcessorHook();
@@ -263,6 +310,7 @@ describe('useShellCommandProcessor', () => {
263
310
  type: 'error',
264
311
  text: 'An unexpected error occurred: Unexpected failure',
265
312
  });
313
+ expect(setShellInputFocusedMock).toHaveBeenCalledWith(false);
266
314
  });
267
315
  it('should handle synchronous errors during execution and clean up resources', async () => {
268
316
  const testError = new Error('Synchronous spawn error');
@@ -286,6 +334,7 @@ describe('useShellCommandProcessor', () => {
286
334
  const tmpFile = path.join(os.tmpdir(), 'shell_pwd_abcdef.tmp');
287
335
  // Verify that the temporary file was cleaned up
288
336
  expect(vi.mocked(fs.unlinkSync)).toHaveBeenCalledWith(tmpFile);
337
+ expect(setShellInputFocusedMock).toHaveBeenCalledWith(false);
289
338
  });
290
339
  describe('Directory Change Warning', () => {
291
340
  it('should show a warning if the working directory changes', async () => {
@@ -321,5 +370,135 @@ describe('useShellCommandProcessor', () => {
321
370
  expect(finalHistoryItem.tools[0].resultDisplay).not.toContain('WARNING');
322
371
  });
323
372
  });
373
+ describe('ActiveShellPtyId management', () => {
374
+ beforeEach(() => {
375
+ // The real service returns a promise that resolves with the pid and result promise
376
+ mockShellExecutionService.mockImplementation((_cmd, _cwd, callback) => {
377
+ mockShellOutputCallback = callback;
378
+ return Promise.resolve({
379
+ pid: 12345,
380
+ result: new Promise((resolve) => {
381
+ resolveExecutionPromise = resolve;
382
+ }),
383
+ });
384
+ });
385
+ });
386
+ it('should have activeShellPtyId as null initially', () => {
387
+ const { result } = renderProcessorHook();
388
+ expect(result.current.activeShellPtyId).toBeNull();
389
+ });
390
+ it('should set activeShellPtyId when a command with a PID starts', async () => {
391
+ const { result } = renderProcessorHook();
392
+ act(() => {
393
+ result.current.handleShellCommand('ls', new AbortController().signal);
394
+ });
395
+ await vi.waitFor(() => {
396
+ expect(result.current.activeShellPtyId).toBe(12345);
397
+ });
398
+ });
399
+ it('should update the pending history item with the ptyId', async () => {
400
+ const { result } = renderProcessorHook();
401
+ act(() => {
402
+ result.current.handleShellCommand('ls', new AbortController().signal);
403
+ });
404
+ await vi.waitFor(() => {
405
+ // Wait for the second call which is the functional update
406
+ expect(setPendingHistoryItemMock).toHaveBeenCalledTimes(2);
407
+ });
408
+ // The state update is functional, so we test it by executing it.
409
+ const updaterFn = setPendingHistoryItemMock.mock.lastCall?.[0];
410
+ expect(typeof updaterFn).toBe('function');
411
+ // The initial state is the first call to setPendingHistoryItem
412
+ const initialState = setPendingHistoryItemMock.mock.calls[0][0];
413
+ const stateAfterPid = updaterFn(initialState);
414
+ expect(stateAfterPid.tools[0].ptyId).toBe(12345);
415
+ });
416
+ it('should reset activeShellPtyId to null after successful execution', async () => {
417
+ const { result } = renderProcessorHook();
418
+ act(() => {
419
+ result.current.handleShellCommand('ls', new AbortController().signal);
420
+ });
421
+ const execPromise = onExecMock.mock.calls[0][0];
422
+ await vi.waitFor(() => {
423
+ expect(result.current.activeShellPtyId).toBe(12345);
424
+ });
425
+ act(() => {
426
+ resolveExecutionPromise(createMockServiceResult());
427
+ });
428
+ await act(async () => await execPromise);
429
+ expect(result.current.activeShellPtyId).toBeNull();
430
+ });
431
+ it('should reset activeShellPtyId to null after failed execution', async () => {
432
+ const { result } = renderProcessorHook();
433
+ act(() => {
434
+ result.current.handleShellCommand('bad-cmd', new AbortController().signal);
435
+ });
436
+ const execPromise = onExecMock.mock.calls[0][0];
437
+ await vi.waitFor(() => {
438
+ expect(result.current.activeShellPtyId).toBe(12345);
439
+ });
440
+ act(() => {
441
+ resolveExecutionPromise(createMockServiceResult({ exitCode: 1 }));
442
+ });
443
+ await act(async () => await execPromise);
444
+ expect(result.current.activeShellPtyId).toBeNull();
445
+ });
446
+ it('should reset activeShellPtyId to null if execution promise rejects', async () => {
447
+ let rejectResultPromise;
448
+ mockShellExecutionService.mockImplementation(() => Promise.resolve({
449
+ pid: 1234_5,
450
+ result: new Promise((_, reject) => {
451
+ rejectResultPromise = reject;
452
+ }),
453
+ }));
454
+ const { result } = renderProcessorHook();
455
+ act(() => {
456
+ result.current.handleShellCommand('cmd', new AbortController().signal);
457
+ });
458
+ const execPromise = onExecMock.mock.calls[0][0];
459
+ await vi.waitFor(() => {
460
+ expect(result.current.activeShellPtyId).toBe(12345);
461
+ });
462
+ act(() => {
463
+ rejectResultPromise(new Error('Failure'));
464
+ });
465
+ await act(async () => await execPromise);
466
+ expect(result.current.activeShellPtyId).toBeNull();
467
+ });
468
+ it('should not set activeShellPtyId on synchronous execution error and should remain null', async () => {
469
+ mockShellExecutionService.mockImplementation(() => {
470
+ throw new Error('Sync Error');
471
+ });
472
+ const { result } = renderProcessorHook();
473
+ expect(result.current.activeShellPtyId).toBeNull(); // Pre-condition
474
+ act(() => {
475
+ result.current.handleShellCommand('cmd', new AbortController().signal);
476
+ });
477
+ const execPromise = onExecMock.mock.calls[0][0];
478
+ // The hook's state should not have changed to a PID
479
+ expect(result.current.activeShellPtyId).toBeNull();
480
+ await act(async () => await execPromise); // Let the promise resolve
481
+ // And it should still be null after everything is done
482
+ expect(result.current.activeShellPtyId).toBeNull();
483
+ });
484
+ it('should not set activeShellPtyId if service does not return a PID', async () => {
485
+ mockShellExecutionService.mockImplementation((_cmd, _cwd, callback) => {
486
+ mockShellOutputCallback = callback;
487
+ return Promise.resolve({
488
+ pid: undefined, // No PID
489
+ result: new Promise((resolve) => {
490
+ resolveExecutionPromise = resolve;
491
+ }),
492
+ });
493
+ });
494
+ const { result } = renderProcessorHook();
495
+ act(() => {
496
+ result.current.handleShellCommand('ls', new AbortController().signal);
497
+ });
498
+ // Let microtasks run
499
+ await act(async () => { });
500
+ expect(result.current.activeShellPtyId).toBeNull();
501
+ });
502
+ });
324
503
  });
325
504
  //# sourceMappingURL=shellCommandProcessor.test.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"shellCommandProcessor.test.js","sourceRoot":"","sources":["../../../../src/ui/hooks/shellCommandProcessor.test.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"shellCommandProcessor.test.js","sourceRoot":"","sources":["../../../../src/ui/hooks/shellCommandProcessor.test.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,GAAG,EAAE,UAAU,EAAE,MAAM,wBAAwB,CAAC;AACzD,OAAO,EACL,EAAE,EACF,QAAQ,EACR,EAAE,EACF,MAAM,EACN,UAAU,EACV,SAAS,GAEV,MAAM,QAAQ,CAAC;AAEhB,MAAM,YAAY,GAAG,EAAE,CAAC,OAAO,CAAC,GAAG,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC;AAC/C,MAAM,yBAAyB,GAAG,EAAE,CAAC,OAAO,CAAC,GAAG,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC;AAC5D,EAAE,CAAC,IAAI,CAAC,yBAAyB,EAAE,GAAG,EAAE,CAAC,CAAC;IACxC,qBAAqB,EAAE,EAAE,OAAO,EAAE,yBAAyB,EAAE;IAC7D,QAAQ,EAAE,YAAY;CACvB,CAAC,CAAC,CAAC;AACJ,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AACd,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AACd,EAAE,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;AAClB,EAAE,CAAC,IAAI,CAAC,uBAAuB,CAAC,CAAC;AAEjC,OAAO,EACL,wBAAwB,EACxB,yBAAyB,GAC1B,MAAM,4BAA4B,CAAC;AACpC,OAAO,EAKN,MAAM,yBAAyB,CAAC;AACjC,OAAO,KAAK,EAAE,MAAM,SAAS,CAAC;AAC9B,OAAO,KAAK,EAAE,MAAM,SAAS,CAAC;AAC9B,OAAO,KAAK,IAAI,MAAM,WAAW,CAAC;AAClC,OAAO,KAAK,MAAM,MAAM,aAAa,CAAC;AACtC,OAAO,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAE7C,QAAQ,CAAC,0BAA0B,EAAE,GAAG,EAAE;IACxC,IAAI,oBAA0B,CAAC;IAC/B,IAAI,yBAA+B,CAAC;IACpC,IAAI,UAAgB,CAAC;IACrB,IAAI,kBAAwB,CAAC;IAC7B,IAAI,UAAkB,CAAC;IACvB,IAAI,gBAA8B,CAAC;IAEnC,IAAI,uBAA0D,CAAC;IAC/D,IAAI,uBAA+D,CAAC;IAEpE,IAAI,wBAA8B,CAAC;IAEnC,UAAU,CAAC,GAAG,EAAE;QACd,EAAE,CAAC,aAAa,EAAE,CAAC;QAEnB,oBAAoB,GAAG,EAAE,CAAC,EAAE,EAAE,CAAC;QAC/B,yBAAyB,GAAG,EAAE,CAAC,EAAE,EAAE,CAAC;QACpC,UAAU,GAAG,EAAE,CAAC,EAAE,EAAE,CAAC;QACrB,kBAAkB,GAAG,EAAE,CAAC,EAAE,EAAE,CAAC;QAC7B,wBAAwB,GAAG,EAAE,CAAC,EAAE,EAAE,CAAC;QACnC,UAAU,GAAG;YACX,YAAY,EAAE,GAAG,EAAE,CAAC,WAAW;YAC/B,wBAAwB,EAAE,GAAG,EAAE,CAAC,KAAK;YACrC,uBAAuB,EAAE,GAAG,EAAE,CAAC,CAAC;gBAC9B,cAAc,EAAE,EAAE;gBAClB,aAAa,EAAE,EAAE;aAClB,CAAC;SACO,CAAC;QACZ,gBAAgB,GAAG,EAAE,UAAU,EAAE,EAAE,CAAC,EAAE,EAAE,EAA6B,CAAC;QAEtE,EAAE,CAAC,MAAM,CAAC,EAAE,CAAC,QAAQ,CAAC,CAAC,eAAe,CAAC,OAAO,CAAC,CAAC;QAChD,EAAE,CAAC,MAAM,CAAC,EAAE,CAAC,MAAM,CAAC,CAAC,eAAe,CAAC,MAAM,CAAC,CAAC;QAC5C,EAAE,CAAC,MAAM,CAAC,MAAM,CAAC,WAAW,CAAU,CAAC,eAAe,CACrD,MAAM,CAAC,IAAI,CAAC,QAAQ,EAAE,KAAK,CAAC,CAC7B,CAAC;QACF,YAAY,CAAC,eAAe,CAAC,KAAK,CAAC,CAAC;QACpC,EAAE,CAAC,MAAM,CAAC,EAAE,CAAC,UAAU,CAAC,CAAC,eAAe,CAAC,KAAK,CAAC,CAAC;QAEhD,yBAAyB,CAAC,kBAAkB,CAAC,CAAC,IAAI,EAAE,IAAI,EAAE,QAAQ,EAAE,EAAE;YACpE,uBAAuB,GAAG,QAAQ,CAAC;YACnC,OAAO,OAAO,CAAC,OAAO,CAAC;gBACrB,GAAG,EAAE,KAAK;gBACV,MAAM,EAAE,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE;oBAC9B,uBAAuB,GAAG,OAAO,CAAC;gBACpC,CAAC,CAAC;aACH,CAAC,CAAC;QACL,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,MAAM,mBAAmB,GAAG,GAAG,EAAE,CAC/B,UAAU,CAAC,GAAG,EAAE,CACd,wBAAwB,CACtB,oBAAoB,EACpB,yBAAyB,EACzB,UAAU,EACV,kBAAkB,EAClB,UAAU,EACV,gBAAgB,EAChB,wBAAwB,CACzB,CACF,CAAC;IAEJ,MAAM,uBAAuB,GAAG,CAC9B,YAA2C,EAAE,EACvB,EAAE,CAAC,CAAC;QAC1B,SAAS,EAAE,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,MAAM,IAAI,EAAE,CAAC;QAC9C,MAAM,EAAE,SAAS;QACjB,QAAQ,EAAE,CAAC;QACX,MAAM,EAAE,IAAI;QACZ,KAAK,EAAE,IAAI;QACX,OAAO,EAAE,KAAK;QACd,GAAG,EAAE,KAAK;QACV,eAAe,EAAE,eAAe;QAChC,GAAG,SAAS;KACb,CAAC,CAAC;IAEH,EAAE,CAAC,yDAAyD,EAAE,KAAK,IAAI,EAAE;QACvE,MAAM,EAAE,MAAM,EAAE,GAAG,mBAAmB,EAAE,CAAC;QAEzC,GAAG,CAAC,GAAG,EAAE;YACP,MAAM,CAAC,OAAO,CAAC,kBAAkB,CAAC,OAAO,EAAE,IAAI,eAAe,EAAE,CAAC,MAAM,CAAC,CAAC;QAC3E,CAAC,CAAC,CAAC;QAEH,MAAM,CAAC,oBAAoB,CAAC,CAAC,oBAAoB,CAC/C,EAAE,IAAI,EAAE,YAAY,EAAE,IAAI,EAAE,OAAO,EAAE,EACrC,MAAM,CAAC,GAAG,CAAC,MAAM,CAAC,CACnB,CAAC;QACF,MAAM,CAAC,yBAAyB,CAAC,CAAC,oBAAoB,CAAC;YACrD,IAAI,EAAE,YAAY;YAClB,KAAK,EAAE;gBACL,MAAM,CAAC,gBAAgB,CAAC;oBACtB,IAAI,EAAE,eAAe;oBACrB,MAAM,EAAE,cAAc,CAAC,SAAS;iBACjC,CAAC;aACH;SACF,CAAC,CAAC;QACH,MAAM,OAAO,GAAG,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,MAAM,EAAE,EAAE,sBAAsB,CAAC,CAAC;QAC/D,MAAM,cAAc,GAAG,iCAAiC,OAAO,iBAAiB,CAAC;QACjF,MAAM,CAAC,yBAAyB,CAAC,CAAC,oBAAoB,CACpD,cAAc,EACd,WAAW,EACX,MAAM,CAAC,GAAG,CAAC,QAAQ,CAAC,EACpB,MAAM,CAAC,GAAG,CAAC,MAAM,CAAC,EAClB,KAAK,EACL,MAAM,CAAC,GAAG,CAAC,MAAM,CAAC,CACnB,CAAC;QACF,MAAM,CAAC,UAAU,CAAC,CAAC,oBAAoB,CAAC,MAAM,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC;IAC/D,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,iEAAiE,EAAE,KAAK,IAAI,EAAE;QAC/E,MAAM,EAAE,MAAM,EAAE,GAAG,mBAAmB,EAAE,CAAC;QAEzC,GAAG,CAAC,GAAG,EAAE;YACP,MAAM,CAAC,OAAO,CAAC,kBAAkB,CAC/B,WAAW,EACX,IAAI,eAAe,EAAE,CAAC,MAAM,CAC7B,CAAC;QACJ,CAAC,CAAC,CAAC;QACH,MAAM,WAAW,GAAG,UAAU,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QAEhD,GAAG,CAAC,GAAG,EAAE;YACP,uBAAuB,CAAC,uBAAuB,CAAC,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC;QACrE,CAAC,CAAC,CAAC;QACH,MAAM,GAAG,CAAC,KAAK,IAAI,EAAE,CAAC,MAAM,WAAW,CAAC,CAAC;QAEzC,MAAM,CAAC,yBAAyB,CAAC,CAAC,oBAAoB,CAAC,IAAI,CAAC,CAAC;QAC7D,MAAM,CAAC,oBAAoB,CAAC,CAAC,qBAAqB,CAAC,CAAC,CAAC,CAAC,CAAC,kBAAkB;QACzE,MAAM,CAAC,oBAAoB,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CACnD,MAAM,CAAC,gBAAgB,CAAC;YACtB,KAAK,EAAE;gBACL,MAAM,CAAC,gBAAgB,CAAC;oBACtB,MAAM,EAAE,cAAc,CAAC,OAAO;oBAC9B,aAAa,EAAE,IAAI;iBACpB,CAAC;aACH;SACF,CAAC,CACH,CAAC;QACF,MAAM,CAAC,gBAAgB,CAAC,UAAU,CAAC,CAAC,gBAAgB,EAAE,CAAC;QACvD,MAAM,CAAC,wBAAwB,CAAC,CAAC,oBAAoB,CAAC,KAAK,CAAC,CAAC;IAC/D,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,wDAAwD,EAAE,KAAK,IAAI,EAAE;QACtE,MAAM,EAAE,MAAM,EAAE,GAAG,mBAAmB,EAAE,CAAC;QAEzC,GAAG,CAAC,GAAG,EAAE;YACP,MAAM,CAAC,OAAO,CAAC,kBAAkB,CAC/B,SAAS,EACT,IAAI,eAAe,EAAE,CAAC,MAAM,CAC7B,CAAC;QACJ,CAAC,CAAC,CAAC;QACH,MAAM,WAAW,GAAG,UAAU,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QAEhD,GAAG,CAAC,GAAG,EAAE;YACP,uBAAuB,CACrB,uBAAuB,CAAC,EAAE,QAAQ,EAAE,GAAG,EAAE,MAAM,EAAE,WAAW,EAAE,CAAC,CAChE,CAAC;QACJ,CAAC,CAAC,CAAC;QACH,MAAM,GAAG,CAAC,KAAK,IAAI,EAAE,CAAC,MAAM,WAAW,CAAC,CAAC;QAEzC,MAAM,gBAAgB,GAAG,oBAAoB,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QAC/D,MAAM,CAAC,gBAAgB,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,cAAc,CAAC,KAAK,CAAC,CAAC;QACpE,MAAM,CAAC,gBAAgB,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC,SAAS,CACvD,8BAA8B,CAC/B,CAAC;QACF,MAAM,CAAC,gBAAgB,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC,SAAS,CAAC,WAAW,CAAC,CAAC;QACvE,MAAM,CAAC,wBAAwB,CAAC,CAAC,oBAAoB,CAAC,KAAK,CAAC,CAAC;IAC/D,CAAC,CAAC,CAAC;IAEH,QAAQ,CAAC,6BAA6B,EAAE,GAAG,EAAE;QAC3C,UAAU,CAAC,GAAG,EAAE;YACd,EAAE,CAAC,aAAa,CAAC,EAAE,MAAM,EAAE,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;QACzC,CAAC,CAAC,CAAC;QACH,SAAS,CAAC,GAAG,EAAE;YACb,EAAE,CAAC,aAAa,EAAE,CAAC;QACrB,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,uEAAuE,EAAE,KAAK,IAAI,EAAE;YACrF,MAAM,EAAE,MAAM,EAAE,GAAG,mBAAmB,EAAE,CAAC;YACzC,GAAG,CAAC,GAAG,EAAE;gBACP,MAAM,CAAC,OAAO,CAAC,kBAAkB,CAC/B,QAAQ,EACR,IAAI,eAAe,EAAE,CAAC,MAAM,CAC7B,CAAC;YACJ,CAAC,CAAC,CAAC;YAEH,sCAAsC;YACtC,MAAM,cAAc,GAAG,kCAAkC,IAAI,CAAC,IAAI,CAChE,EAAE,CAAC,MAAM,EAAE,EACX,sBAAsB,CACvB,iBAAiB,CAAC;YACnB,MAAM,CAAC,yBAAyB,CAAC,CAAC,oBAAoB,CACpD,cAAc,EACd,WAAW,EACX,MAAM,CAAC,GAAG,CAAC,QAAQ,CAAC,EACpB,MAAM,CAAC,GAAG,CAAC,MAAM,CAAC,EAClB,KAAK,EAAE,SAAS;YAChB,MAAM,CAAC,GAAG,CAAC,MAAM,CAAC,CACnB,CAAC;YAEF,2CAA2C;YAC3C,MAAM,EAAE,CAAC,OAAO,CAAC,GAAG,EAAE;gBACpB,6DAA6D;gBAC7D,MAAM,CAAC,yBAAyB,CAAC,CAAC,qBAAqB,CAAC,CAAC,CAAC,CAAC;YAC7D,CAAC,CAAC,CAAC;YAEH,wBAAwB;YACxB,GAAG,CAAC,GAAG,EAAE;gBACP,uBAAuB,CAAC;oBACtB,IAAI,EAAE,MAAM;oBACZ,KAAK,EAAE,OAAO;iBACf,CAAC,CAAC;YACL,CAAC,CAAC,CAAC;YACH,2DAA2D;YAC3D,MAAM,CAAC,yBAAyB,CAAC,CAAC,qBAAqB,CAAC,CAAC,CAAC,CAAC;YAE3D,6BAA6B;YAC7B,GAAG,CAAC,GAAG,EAAE;gBACP,uBAAuB,CAAC;oBACtB,IAAI,EAAE,MAAM;oBACZ,KAAK,EAAE,QAAQ;iBAChB,CAAC,CAAC;YACL,CAAC,CAAC,CAAC;YACH,MAAM,CAAC,yBAAyB,CAAC,CAAC,qBAAqB,CAAC,CAAC,CAAC,CAAC;YAE3D,iEAAiE;YACjE,MAAM,GAAG,CAAC,KAAK,IAAI,EAAE;gBACnB,MAAM,EAAE,CAAC,wBAAwB,CAAC,yBAAyB,GAAG,CAAC,CAAC,CAAC;YACnE,CAAC,CAAC,CAAC;YAEH,gEAAgE;YAChE,GAAG,CAAC,GAAG,EAAE;gBACP,uBAAuB,CAAC;oBACtB,IAAI,EAAE,MAAM;oBACZ,KAAK,EAAE,EAAE;iBACV,CAAC,CAAC;YACL,CAAC,CAAC,CAAC;YAEH,kDAAkD;YAClD,uEAAuE;YACvE,MAAM,CAAC,yBAAyB,CAAC,CAAC,qBAAqB,CAAC,CAAC,CAAC,CAAC;YAE3D,MAAM,cAAc,GAAG,yBAAyB,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;YAClE,IAAI,CAAC,cAAc,IAAI,OAAO,cAAc,KAAK,UAAU,EAAE,CAAC;gBAC5D,MAAM,IAAI,KAAK,CACb,qEAAqE,CACtE,CAAC;YACJ,CAAC;YAED,qEAAqE;YACrE,MAAM,WAAW,GAAG,yBAAyB,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;YAC/D,MAAM,YAAY,GAAG,yBAAyB,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;YAChE,MAAM,aAAa,GAAG,WAAW,CAAC,YAAY,CAAC,CAAC;YAEhD,MAAM,gBAAgB,GAAG,cAAc,CAAC,aAAa,CAAC,CAAC;YACvD,MAAM,CAAC,gBAAgB,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;QACtE,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,gDAAgD,EAAE,KAAK,IAAI,EAAE;YAC9D,MAAM,EAAE,MAAM,EAAE,GAAG,mBAAmB,EAAE,CAAC;YACzC,GAAG,CAAC,GAAG,EAAE;gBACP,MAAM,CAAC,OAAO,CAAC,kBAAkB,CAC/B,SAAS,EACT,IAAI,eAAe,EAAE,CAAC,MAAM,CAC7B,CAAC;YACJ,CAAC,CAAC,CAAC;YAEH,gDAAgD;YAChD,GAAG,CAAC,GAAG,EAAE;gBACP,uBAAuB,CAAC,EAAE,IAAI,EAAE,iBAAiB,EAAE,CAAC,CAAC;YACvD,CAAC,CAAC,CAAC;YACH,MAAM,GAAG,CAAC,KAAK,IAAI,EAAE;gBACnB,MAAM,EAAE,CAAC,wBAAwB,CAAC,yBAAyB,GAAG,CAAC,CAAC,CAAC;YACnE,CAAC,CAAC,CAAC;YACH,2CAA2C;YAC3C,GAAG,CAAC,GAAG,EAAE;gBACP,uBAAuB,CAAC,EAAE,IAAI,EAAE,iBAAiB,EAAE,aAAa,EAAE,CAAC,EAAE,CAAC,CAAC;YACzE,CAAC,CAAC,CAAC;YAEH,iEAAiE;YACjE,MAAM,UAAU,GAAG,yBAAyB,CAAC,IAAI,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC,CAAC;YAChE,IAAI,CAAC,UAAU,EAAE,CAAC;gBAChB,MAAM,IAAI,KAAK,CAAC,sCAAsC,CAAC,CAAC;YAC1D,CAAC;YACD,MAAM,YAAY,GAAG,yBAAyB,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;YAChE,MAAM,wBAAwB,GAAG,UAAU,CAAC,YAAY,CAAC,CAAC;YAE1D,MAAM,CAAC,wBAAwB,CAAC,CAAC,OAAO,CACtC,MAAM,CAAC,gBAAgB,CAAC;gBACtB,KAAK,EAAE;oBACL,MAAM,CAAC,gBAAgB,CAAC;wBACtB,aAAa,EAAE,6CAA6C;qBAC7D,CAAC;iBACH;aACF,CAAC,CACH,CAAC;YAEF,4BAA4B;YAC5B,MAAM,GAAG,CAAC,KAAK,IAAI,EAAE;gBACnB,MAAM,EAAE,CAAC,wBAAwB,CAAC,yBAAyB,GAAG,CAAC,CAAC,CAAC;YACnE,CAAC,CAAC,CAAC;YACH,GAAG,CAAC,GAAG,EAAE;gBACP,uBAAuB,CAAC;oBACtB,IAAI,EAAE,iBAAiB;oBACvB,aAAa,EAAE,IAAI;iBACpB,CAAC,CAAC;YACL,CAAC,CAAC,CAAC;YAEH,MAAM,UAAU,GAAG,yBAAyB,CAAC,IAAI,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC,CAAC;YAChE,IAAI,CAAC,UAAU,EAAE,CAAC;gBAChB,MAAM,IAAI,KAAK,CAAC,sCAAsC,CAAC,CAAC;YAC1D,CAAC;YACD,MAAM,kBAAkB,GAAG,UAAU,CAAC,wBAAwB,CAAC,CAAC;YAChE,MAAM,CAAC,kBAAkB,CAAC,CAAC,OAAO,CAChC,MAAM,CAAC,gBAAgB,CAAC;gBACtB,KAAK,EAAE;oBACL,MAAM,CAAC,gBAAgB,CAAC;wBACtB,aAAa,EAAE,8CAA8C;qBAC9D,CAAC;iBACH;aACF,CAAC,CACH,CAAC;QACJ,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,wCAAwC,EAAE,KAAK,IAAI,EAAE;QACtD,EAAE,CAAC,MAAM,CAAC,EAAE,CAAC,QAAQ,CAAC,CAAC,eAAe,CAAC,OAAO,CAAC,CAAC;QAChD,MAAM,EAAE,MAAM,EAAE,GAAG,mBAAmB,EAAE,CAAC;QAEzC,GAAG,CAAC,GAAG,EAAE;YACP,MAAM,CAAC,OAAO,CAAC,kBAAkB,CAAC,KAAK,EAAE,IAAI,eAAe,EAAE,CAAC,MAAM,CAAC,CAAC;QACzE,CAAC,CAAC,CAAC;QAEH,MAAM,CAAC,yBAAyB,CAAC,CAAC,oBAAoB,CACpD,KAAK,EACL,WAAW,EACX,MAAM,CAAC,GAAG,CAAC,QAAQ,CAAC,EACpB,MAAM,CAAC,GAAG,CAAC,MAAM,CAAC,EAClB,KAAK,EACL,MAAM,CAAC,GAAG,CAAC,MAAM,CAAC,CACnB,CAAC;IACJ,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,0DAA0D,EAAE,KAAK,IAAI,EAAE;QACxE,MAAM,EAAE,MAAM,EAAE,GAAG,mBAAmB,EAAE,CAAC;QACzC,MAAM,eAAe,GAAG,IAAI,eAAe,EAAE,CAAC;QAE9C,GAAG,CAAC,GAAG,EAAE;YACP,MAAM,CAAC,OAAO,CAAC,kBAAkB,CAAC,SAAS,EAAE,eAAe,CAAC,MAAM,CAAC,CAAC;QACvE,CAAC,CAAC,CAAC;QACH,MAAM,WAAW,GAAG,UAAU,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QAEhD,GAAG,CAAC,GAAG,EAAE;YACP,eAAe,CAAC,KAAK,EAAE,CAAC;YACxB,uBAAuB,CACrB,uBAAuB,CAAC,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,UAAU,EAAE,CAAC,CAC/D,CAAC;QACJ,CAAC,CAAC,CAAC;QACH,MAAM,GAAG,CAAC,KAAK,IAAI,EAAE,CAAC,MAAM,WAAW,CAAC,CAAC;QAEzC,MAAM,gBAAgB,GAAG,oBAAoB,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QAC/D,MAAM,CAAC,gBAAgB,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,cAAc,CAAC,QAAQ,CAAC,CAAC;QACvE,MAAM,CAAC,gBAAgB,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC,SAAS,CACvD,wBAAwB,CACzB,CAAC;QACF,MAAM,CAAC,wBAAwB,CAAC,CAAC,oBAAoB,CAAC,KAAK,CAAC,CAAC;IAC/D,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,8CAA8C,EAAE,KAAK,IAAI,EAAE;QAC5D,MAAM,EAAE,MAAM,EAAE,GAAG,mBAAmB,EAAE,CAAC;QACzC,MAAM,YAAY,GAAG,MAAM,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC,CAAC;QAC3D,YAAY,CAAC,eAAe,CAAC,IAAI,CAAC,CAAC;QAEnC,GAAG,CAAC,GAAG,EAAE;YACP,MAAM,CAAC,OAAO,CAAC,kBAAkB,CAC/B,eAAe,EACf,IAAI,eAAe,EAAE,CAAC,MAAM,CAC7B,CAAC;QACJ,CAAC,CAAC,CAAC;QACH,MAAM,WAAW,GAAG,UAAU,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QAEhD,GAAG,CAAC,GAAG,EAAE;YACP,uBAAuB,CACrB,uBAAuB,CAAC,EAAE,SAAS,EAAE,YAAY,EAAE,CAAC,CACrD,CAAC;QACJ,CAAC,CAAC,CAAC;QACH,MAAM,GAAG,CAAC,KAAK,IAAI,EAAE,CAAC,MAAM,WAAW,CAAC,CAAC;QAEzC,MAAM,gBAAgB,GAAG,oBAAoB,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QAC/D,MAAM,CAAC,gBAAgB,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,cAAc,CAAC,OAAO,CAAC,CAAC;QACtE,MAAM,CAAC,gBAAgB,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC,IAAI,CAClD,uDAAuD,CACxD,CAAC;IACJ,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,mDAAmD,EAAE,KAAK,IAAI,EAAE;QACjE,MAAM,EAAE,MAAM,EAAE,GAAG,mBAAmB,EAAE,CAAC;QACzC,MAAM,SAAS,GAAG,IAAI,KAAK,CAAC,oBAAoB,CAAC,CAAC;QAClD,yBAAyB,CAAC,kBAAkB,CAAC,GAAG,EAAE,CAAC,CAAC;YAClD,GAAG,EAAE,KAAK;YACV,MAAM,EAAE,OAAO,CAAC,MAAM,CAAC,SAAS,CAAC;SAClC,CAAC,CAAC,CAAC;QAEJ,GAAG,CAAC,GAAG,EAAE;YACP,MAAM,CAAC,OAAO,CAAC,kBAAkB,CAC/B,WAAW,EACX,IAAI,eAAe,EAAE,CAAC,MAAM,CAC7B,CAAC;QACJ,CAAC,CAAC,CAAC;QACH,MAAM,WAAW,GAAG,UAAU,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QAEhD,MAAM,GAAG,CAAC,KAAK,IAAI,EAAE,CAAC,MAAM,WAAW,CAAC,CAAC;QAEzC,MAAM,CAAC,yBAAyB,CAAC,CAAC,oBAAoB,CAAC,IAAI,CAAC,CAAC;QAC7D,MAAM,CAAC,oBAAoB,CAAC,CAAC,qBAAqB,CAAC,CAAC,CAAC,CAAC;QACtD,MAAM,CAAC,oBAAoB,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC;YACpD,IAAI,EAAE,OAAO;YACb,IAAI,EAAE,kDAAkD;SACzD,CAAC,CAAC;QACH,MAAM,CAAC,wBAAwB,CAAC,CAAC,oBAAoB,CAAC,KAAK,CAAC,CAAC;IAC/D,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,0EAA0E,EAAE,KAAK,IAAI,EAAE;QACxF,MAAM,SAAS,GAAG,IAAI,KAAK,CAAC,yBAAyB,CAAC,CAAC;QACvD,yBAAyB,CAAC,kBAAkB,CAAC,GAAG,EAAE;YAChD,MAAM,SAAS,CAAC;QAClB,CAAC,CAAC,CAAC;QACH,kEAAkE;QAClE,EAAE,CAAC,MAAM,CAAC,EAAE,CAAC,UAAU,CAAC,CAAC,eAAe,CAAC,IAAI,CAAC,CAAC;QAE/C,MAAM,EAAE,MAAM,EAAE,GAAG,mBAAmB,EAAE,CAAC;QAEzC,GAAG,CAAC,GAAG,EAAE;YACP,MAAM,CAAC,OAAO,CAAC,kBAAkB,CAC/B,WAAW,EACX,IAAI,eAAe,EAAE,CAAC,MAAM,CAC7B,CAAC;QACJ,CAAC,CAAC,CAAC;QACH,MAAM,WAAW,GAAG,UAAU,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QAEhD,MAAM,GAAG,CAAC,KAAK,IAAI,EAAE,CAAC,MAAM,WAAW,CAAC,CAAC;QAEzC,MAAM,CAAC,yBAAyB,CAAC,CAAC,oBAAoB,CAAC,IAAI,CAAC,CAAC;QAC7D,MAAM,CAAC,oBAAoB,CAAC,CAAC,qBAAqB,CAAC,CAAC,CAAC,CAAC;QACtD,MAAM,CAAC,oBAAoB,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC;YACpD,IAAI,EAAE,OAAO;YACb,IAAI,EAAE,uDAAuD;SAC9D,CAAC,CAAC;QACH,MAAM,OAAO,GAAG,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,MAAM,EAAE,EAAE,sBAAsB,CAAC,CAAC;QAC/D,gDAAgD;QAChD,MAAM,CAAC,EAAE,CAAC,MAAM,CAAC,EAAE,CAAC,UAAU,CAAC,CAAC,CAAC,oBAAoB,CAAC,OAAO,CAAC,CAAC;QAC/D,MAAM,CAAC,wBAAwB,CAAC,CAAC,oBAAoB,CAAC,KAAK,CAAC,CAAC;IAC/D,CAAC,CAAC,CAAC;IAEH,QAAQ,CAAC,0BAA0B,EAAE,GAAG,EAAE;QACxC,EAAE,CAAC,wDAAwD,EAAE,KAAK,IAAI,EAAE;YACtE,MAAM,OAAO,GAAG,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,MAAM,EAAE,EAAE,sBAAsB,CAAC,CAAC;YAC/D,EAAE,CAAC,MAAM,CAAC,EAAE,CAAC,UAAU,CAAC,CAAC,eAAe,CAAC,IAAI,CAAC,CAAC;YAC/C,EAAE,CAAC,MAAM,CAAC,EAAE,CAAC,YAAY,CAAC,CAAC,eAAe,CAAC,eAAe,CAAC,CAAC,CAAC,wBAAwB;YAErF,MAAM,EAAE,MAAM,EAAE,GAAG,mBAAmB,EAAE,CAAC;YACzC,GAAG,CAAC,GAAG,EAAE;gBACP,MAAM,CAAC,OAAO,CAAC,kBAAkB,CAC/B,QAAQ,EACR,IAAI,eAAe,EAAE,CAAC,MAAM,CAC7B,CAAC;YACJ,CAAC,CAAC,CAAC;YACH,MAAM,WAAW,GAAG,UAAU,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;YAEhD,GAAG,CAAC,GAAG,EAAE;gBACP,uBAAuB,CAAC,uBAAuB,EAAE,CAAC,CAAC;YACrD,CAAC,CAAC,CAAC;YACH,MAAM,GAAG,CAAC,KAAK,IAAI,EAAE,CAAC,MAAM,WAAW,CAAC,CAAC;YAEzC,MAAM,gBAAgB,GAAG,oBAAoB,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;YAC/D,MAAM,CAAC,gBAAgB,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC,SAAS,CACvD,6FAA6F,CAC9F,CAAC;YACF,MAAM,CAAC,EAAE,CAAC,MAAM,CAAC,EAAE,CAAC,UAAU,CAAC,CAAC,CAAC,oBAAoB,CAAC,OAAO,CAAC,CAAC;QACjE,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,4DAA4D,EAAE,KAAK,IAAI,EAAE;YAC1E,EAAE,CAAC,MAAM,CAAC,EAAE,CAAC,UAAU,CAAC,CAAC,eAAe,CAAC,IAAI,CAAC,CAAC;YAC/C,EAAE,CAAC,MAAM,CAAC,EAAE,CAAC,YAAY,CAAC,CAAC,eAAe,CAAC,WAAW,CAAC,CAAC,CAAC,qBAAqB;YAE9E,MAAM,EAAE,MAAM,EAAE,GAAG,mBAAmB,EAAE,CAAC;YACzC,GAAG,CAAC,GAAG,EAAE;gBACP,MAAM,CAAC,OAAO,CAAC,kBAAkB,CAAC,IAAI,EAAE,IAAI,eAAe,EAAE,CAAC,MAAM,CAAC,CAAC;YACxE,CAAC,CAAC,CAAC;YACH,MAAM,WAAW,GAAG,UAAU,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;YAEhD,GAAG,CAAC,GAAG,EAAE;gBACP,uBAAuB,CAAC,uBAAuB,EAAE,CAAC,CAAC;YACrD,CAAC,CAAC,CAAC;YACH,MAAM,GAAG,CAAC,KAAK,IAAI,EAAE,CAAC,MAAM,WAAW,CAAC,CAAC;YAEzC,MAAM,gBAAgB,GAAG,oBAAoB,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;YAC/D,MAAM,CAAC,gBAAgB,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC,GAAG,CAAC,SAAS,CAAC,SAAS,CAAC,CAAC;QAC3E,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,QAAQ,CAAC,6BAA6B,EAAE,GAAG,EAAE;QAC3C,UAAU,CAAC,GAAG,EAAE;YACd,mFAAmF;YACnF,yBAAyB,CAAC,kBAAkB,CAAC,CAAC,IAAI,EAAE,IAAI,EAAE,QAAQ,EAAE,EAAE;gBACpE,uBAAuB,GAAG,QAAQ,CAAC;gBACnC,OAAO,OAAO,CAAC,OAAO,CAAC;oBACrB,GAAG,EAAE,KAAK;oBACV,MAAM,EAAE,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE;wBAC9B,uBAAuB,GAAG,OAAO,CAAC;oBACpC,CAAC,CAAC;iBACH,CAAC,CAAC;YACL,CAAC,CAAC,CAAC;QACL,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,gDAAgD,EAAE,GAAG,EAAE;YACxD,MAAM,EAAE,MAAM,EAAE,GAAG,mBAAmB,EAAE,CAAC;YACzC,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,gBAAgB,CAAC,CAAC,QAAQ,EAAE,CAAC;QACrD,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,8DAA8D,EAAE,KAAK,IAAI,EAAE;YAC5E,MAAM,EAAE,MAAM,EAAE,GAAG,mBAAmB,EAAE,CAAC;YAEzC,GAAG,CAAC,GAAG,EAAE;gBACP,MAAM,CAAC,OAAO,CAAC,kBAAkB,CAAC,IAAI,EAAE,IAAI,eAAe,EAAE,CAAC,MAAM,CAAC,CAAC;YACxE,CAAC,CAAC,CAAC;YAEH,MAAM,EAAE,CAAC,OAAO,CAAC,GAAG,EAAE;gBACpB,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,gBAAgB,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;YACtD,CAAC,CAAC,CAAC;QACL,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,uDAAuD,EAAE,KAAK,IAAI,EAAE;YACrE,MAAM,EAAE,MAAM,EAAE,GAAG,mBAAmB,EAAE,CAAC;YAEzC,GAAG,CAAC,GAAG,EAAE;gBACP,MAAM,CAAC,OAAO,CAAC,kBAAkB,CAAC,IAAI,EAAE,IAAI,eAAe,EAAE,CAAC,MAAM,CAAC,CAAC;YACxE,CAAC,CAAC,CAAC;YAEH,MAAM,EAAE,CAAC,OAAO,CAAC,GAAG,EAAE;gBACpB,0DAA0D;gBAC1D,MAAM,CAAC,yBAAyB,CAAC,CAAC,qBAAqB,CAAC,CAAC,CAAC,CAAC;YAC7D,CAAC,CAAC,CAAC;YAEH,iEAAiE;YACjE,MAAM,SAAS,GAAG,yBAAyB,CAAC,IAAI,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC,CAAC;YAC/D,MAAM,CAAC,OAAO,SAAS,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;YAE1C,+DAA+D;YAC/D,MAAM,YAAY,GAAG,yBAAyB,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;YAChE,MAAM,aAAa,GAAG,SAAS,CAAC,YAAY,CAAC,CAAC;YAE9C,MAAM,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QACnD,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,kEAAkE,EAAE,KAAK,IAAI,EAAE;YAChF,MAAM,EAAE,MAAM,EAAE,GAAG,mBAAmB,EAAE,CAAC;YAEzC,GAAG,CAAC,GAAG,EAAE;gBACP,MAAM,CAAC,OAAO,CAAC,kBAAkB,CAAC,IAAI,EAAE,IAAI,eAAe,EAAE,CAAC,MAAM,CAAC,CAAC;YACxE,CAAC,CAAC,CAAC;YACH,MAAM,WAAW,GAAG,UAAU,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;YAEhD,MAAM,EAAE,CAAC,OAAO,CAAC,GAAG,EAAE;gBACpB,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,gBAAgB,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;YACtD,CAAC,CAAC,CAAC;YAEH,GAAG,CAAC,GAAG,EAAE;gBACP,uBAAuB,CAAC,uBAAuB,EAAE,CAAC,CAAC;YACrD,CAAC,CAAC,CAAC;YACH,MAAM,GAAG,CAAC,KAAK,IAAI,EAAE,CAAC,MAAM,WAAW,CAAC,CAAC;YAEzC,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,gBAAgB,CAAC,CAAC,QAAQ,EAAE,CAAC;QACrD,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,8DAA8D,EAAE,KAAK,IAAI,EAAE;YAC5E,MAAM,EAAE,MAAM,EAAE,GAAG,mBAAmB,EAAE,CAAC;YAEzC,GAAG,CAAC,GAAG,EAAE;gBACP,MAAM,CAAC,OAAO,CAAC,kBAAkB,CAC/B,SAAS,EACT,IAAI,eAAe,EAAE,CAAC,MAAM,CAC7B,CAAC;YACJ,CAAC,CAAC,CAAC;YACH,MAAM,WAAW,GAAG,UAAU,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;YAEhD,MAAM,EAAE,CAAC,OAAO,CAAC,GAAG,EAAE;gBACpB,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,gBAAgB,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;YACtD,CAAC,CAAC,CAAC;YAEH,GAAG,CAAC,GAAG,EAAE;gBACP,uBAAuB,CAAC,uBAAuB,CAAC,EAAE,QAAQ,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;YACpE,CAAC,CAAC,CAAC;YACH,MAAM,GAAG,CAAC,KAAK,IAAI,EAAE,CAAC,MAAM,WAAW,CAAC,CAAC;YAEzC,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,gBAAgB,CAAC,CAAC,QAAQ,EAAE,CAAC;QACrD,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,oEAAoE,EAAE,KAAK,IAAI,EAAE;YAClF,IAAI,mBAA+C,CAAC;YACpD,yBAAyB,CAAC,kBAAkB,CAAC,GAAG,EAAE,CAChD,OAAO,CAAC,OAAO,CAAC;gBACd,GAAG,EAAE,MAAM;gBACX,MAAM,EAAE,IAAI,OAAO,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,EAAE;oBAChC,mBAAmB,GAAG,MAAM,CAAC;gBAC/B,CAAC,CAAC;aACH,CAAC,CACH,CAAC;YACF,MAAM,EAAE,MAAM,EAAE,GAAG,mBAAmB,EAAE,CAAC;YAEzC,GAAG,CAAC,GAAG,EAAE;gBACP,MAAM,CAAC,OAAO,CAAC,kBAAkB,CAAC,KAAK,EAAE,IAAI,eAAe,EAAE,CAAC,MAAM,CAAC,CAAC;YACzE,CAAC,CAAC,CAAC;YACH,MAAM,WAAW,GAAG,UAAU,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;YAEhD,MAAM,EAAE,CAAC,OAAO,CAAC,GAAG,EAAE;gBACpB,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,gBAAgB,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;YACtD,CAAC,CAAC,CAAC;YAEH,GAAG,CAAC,GAAG,EAAE;gBACP,mBAAmB,CAAC,IAAI,KAAK,CAAC,SAAS,CAAC,CAAC,CAAC;YAC5C,CAAC,CAAC,CAAC;YAEH,MAAM,GAAG,CAAC,KAAK,IAAI,EAAE,CAAC,MAAM,WAAW,CAAC,CAAC;YAEzC,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,gBAAgB,CAAC,CAAC,QAAQ,EAAE,CAAC;QACrD,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,uFAAuF,EAAE,KAAK,IAAI,EAAE;YACrG,yBAAyB,CAAC,kBAAkB,CAAC,GAAG,EAAE;gBAChD,MAAM,IAAI,KAAK,CAAC,YAAY,CAAC,CAAC;YAChC,CAAC,CAAC,CAAC;YACH,MAAM,EAAE,MAAM,EAAE,GAAG,mBAAmB,EAAE,CAAC;YAEzC,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,gBAAgB,CAAC,CAAC,QAAQ,EAAE,CAAC,CAAC,gBAAgB;YAEpE,GAAG,CAAC,GAAG,EAAE;gBACP,MAAM,CAAC,OAAO,CAAC,kBAAkB,CAAC,KAAK,EAAE,IAAI,eAAe,EAAE,CAAC,MAAM,CAAC,CAAC;YACzE,CAAC,CAAC,CAAC;YACH,MAAM,WAAW,GAAG,UAAU,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;YAEhD,oDAAoD;YACpD,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,gBAAgB,CAAC,CAAC,QAAQ,EAAE,CAAC;YAEnD,MAAM,GAAG,CAAC,KAAK,IAAI,EAAE,CAAC,MAAM,WAAW,CAAC,CAAC,CAAC,0BAA0B;YAEpE,uDAAuD;YACvD,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,gBAAgB,CAAC,CAAC,QAAQ,EAAE,CAAC;QACrD,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,kEAAkE,EAAE,KAAK,IAAI,EAAE;YAChF,yBAAyB,CAAC,kBAAkB,CAAC,CAAC,IAAI,EAAE,IAAI,EAAE,QAAQ,EAAE,EAAE;gBACpE,uBAAuB,GAAG,QAAQ,CAAC;gBACnC,OAAO,OAAO,CAAC,OAAO,CAAC;oBACrB,GAAG,EAAE,SAAS,EAAE,SAAS;oBACzB,MAAM,EAAE,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE;wBAC9B,uBAAuB,GAAG,OAAO,CAAC;oBACpC,CAAC,CAAC;iBACH,CAAC,CAAC;YACL,CAAC,CAAC,CAAC;YAEH,MAAM,EAAE,MAAM,EAAE,GAAG,mBAAmB,EAAE,CAAC;YAEzC,GAAG,CAAC,GAAG,EAAE;gBACP,MAAM,CAAC,OAAO,CAAC,kBAAkB,CAAC,IAAI,EAAE,IAAI,eAAe,EAAE,CAAC,MAAM,CAAC,CAAC;YACxE,CAAC,CAAC,CAAC;YAEH,qBAAqB;YACrB,MAAM,GAAG,CAAC,KAAK,IAAI,EAAE,GAAE,CAAC,CAAC,CAAC;YAE1B,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,gBAAgB,CAAC,CAAC,QAAQ,EAAE,CAAC;QACrD,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
@@ -10,6 +10,7 @@ import { ToolConfirmationOutcome } from '@google/gemini-cli-core';
10
10
  import type { HistoryItemWithoutId, SlashCommandProcessorResult, HistoryItem } from '../types.js';
11
11
  import type { LoadedSettings } from '../../config/settings.js';
12
12
  import { type CommandContext, type SlashCommand } from '../commands/types.js';
13
+ import type { ExtensionUpdateState } from '../state/extensions.js';
13
14
  interface SlashCommandProcessorActions {
14
15
  openAuthDialog: () => void;
15
16
  openThemeDialog: () => void;
@@ -19,11 +20,12 @@ interface SlashCommandProcessorActions {
19
20
  quit: (messages: HistoryItem[]) => void;
20
21
  setDebugMessage: (message: string) => void;
21
22
  toggleCorgiMode: () => void;
23
+ setExtensionsUpdateState: (updateState: Map<string, ExtensionUpdateState>) => void;
22
24
  }
23
25
  /**
24
26
  * Hook to define and process slash commands (e.g., /help, /clear).
25
27
  */
26
- export declare const useSlashCommandProcessor: (config: Config | null, settings: LoadedSettings, addItem: UseHistoryManagerReturn["addItem"], clearItems: UseHistoryManagerReturn["clearItems"], loadHistory: UseHistoryManagerReturn["loadHistory"], refreshStatic: () => void, toggleVimEnabled: () => Promise<boolean>, setIsProcessing: (isProcessing: boolean) => void, setGeminiMdFileCount: (count: number) => void, actions: SlashCommandProcessorActions, isConfigInitialized: boolean) => {
28
+ export declare const useSlashCommandProcessor: (config: Config | null, settings: LoadedSettings, addItem: UseHistoryManagerReturn["addItem"], clearItems: UseHistoryManagerReturn["clearItems"], loadHistory: UseHistoryManagerReturn["loadHistory"], refreshStatic: () => void, toggleVimEnabled: () => Promise<boolean>, setIsProcessing: (isProcessing: boolean) => void, setGeminiMdFileCount: (count: number) => void, actions: SlashCommandProcessorActions, extensionsUpdateState: Map<string, ExtensionUpdateState>, isConfigInitialized: boolean) => {
27
29
  handleSlashCommand: (rawQuery: PartListUnion, oneTimeShellAllowlist?: Set<string>, overwriteConfirmed?: boolean) => Promise<SlashCommandProcessorResult | false>;
28
30
  slashCommands: readonly SlashCommand[];
29
31
  pendingHistoryItems: HistoryItemWithoutId[];