@google/gemini-cli 0.26.0-preview.4 → 0.27.0-nightly.20260126.cb772a5b7

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 (461) hide show
  1. package/README.md +18 -1
  2. package/dist/google-gemini-cli-0.27.0-nightly.20260121.97aac696f.tgz +0 -0
  3. package/dist/package.json +3 -4
  4. package/dist/src/commands/extensions.js +4 -1
  5. package/dist/src/commands/extensions.js.map +1 -1
  6. package/dist/src/commands/hooks.js +4 -1
  7. package/dist/src/commands/hooks.js.map +1 -1
  8. package/dist/src/commands/mcp/enableDisable.d.ts +13 -0
  9. package/dist/src/commands/mcp/enableDisable.js +122 -0
  10. package/dist/src/commands/mcp/enableDisable.js.map +1 -0
  11. package/dist/src/commands/mcp/list.d.ts +2 -0
  12. package/dist/src/commands/mcp/list.js +1 -1
  13. package/dist/src/commands/mcp/list.js.map +1 -1
  14. package/dist/src/commands/mcp.js +7 -1
  15. package/dist/src/commands/mcp.js.map +1 -1
  16. package/dist/src/commands/mcp.test.js +3 -1
  17. package/dist/src/commands/mcp.test.js.map +1 -1
  18. package/dist/src/commands/skills.js +4 -1
  19. package/dist/src/commands/skills.js.map +1 -1
  20. package/dist/src/config/config.d.ts +4 -0
  21. package/dist/src/config/config.js +41 -20
  22. package/dist/src/config/config.js.map +1 -1
  23. package/dist/src/config/config.test.js +181 -15
  24. package/dist/src/config/config.test.js.map +1 -1
  25. package/dist/src/config/keyBindings.d.ts +8 -5
  26. package/dist/src/config/keyBindings.js +38 -32
  27. package/dist/src/config/keyBindings.js.map +1 -1
  28. package/dist/src/config/keyBindings.test.js +8 -5
  29. package/dist/src/config/keyBindings.test.js.map +1 -1
  30. package/dist/src/config/mcp/index.d.ts +6 -0
  31. package/dist/src/config/mcp/index.js +7 -0
  32. package/dist/src/config/mcp/index.js.map +1 -0
  33. package/dist/src/config/mcp/mcpServerEnablement.d.ts +145 -0
  34. package/dist/src/config/mcp/mcpServerEnablement.js +254 -0
  35. package/dist/src/config/mcp/mcpServerEnablement.js.map +1 -0
  36. package/dist/src/config/mcp/mcpServerEnablement.test.js +147 -0
  37. package/dist/src/config/mcp/mcpServerEnablement.test.js.map +1 -0
  38. package/dist/src/config/sandboxConfig.test.js +11 -5
  39. package/dist/src/config/sandboxConfig.test.js.map +1 -1
  40. package/dist/src/config/settings.js +76 -0
  41. package/dist/src/config/settings.js.map +1 -1
  42. package/dist/src/config/settings.test.js +44 -0
  43. package/dist/src/config/settings.test.js.map +1 -1
  44. package/dist/src/config/settingsSchema.d.ts +21 -78
  45. package/dist/src/config/settingsSchema.js +21 -79
  46. package/dist/src/config/settingsSchema.js.map +1 -1
  47. package/dist/src/config/settingsSchema.test.js +1 -1
  48. package/dist/src/config/settingsSchema.test.js.map +1 -1
  49. package/dist/src/config/settings_repro.test.js +6 -2
  50. package/dist/src/config/settings_repro.test.js.map +1 -1
  51. package/dist/src/gemini.js +12 -7
  52. package/dist/src/gemini.js.map +1 -1
  53. package/dist/src/gemini.test.js +140 -10
  54. package/dist/src/gemini.test.js.map +1 -1
  55. package/dist/src/generated/git-commit.d.ts +2 -2
  56. package/dist/src/generated/git-commit.js +2 -2
  57. package/dist/src/generated/git-commit.js.map +1 -1
  58. package/dist/src/nonInteractiveCli.js +11 -3
  59. package/dist/src/nonInteractiveCli.js.map +1 -1
  60. package/dist/src/nonInteractiveCli.test.js +193 -3
  61. package/dist/src/nonInteractiveCli.test.js.map +1 -1
  62. package/dist/src/nonInteractiveCliCommands.js +6 -1
  63. package/dist/src/nonInteractiveCliCommands.js.map +1 -1
  64. package/dist/src/services/BuiltinCommandLoader.js +2 -0
  65. package/dist/src/services/BuiltinCommandLoader.js.map +1 -1
  66. package/dist/src/services/FileCommandLoader.js +12 -4
  67. package/dist/src/services/FileCommandLoader.js.map +1 -1
  68. package/dist/src/services/FileCommandLoader.test.js +56 -0
  69. package/dist/src/services/FileCommandLoader.test.js.map +1 -1
  70. package/dist/src/test-utils/mockCommandContext.js +2 -0
  71. package/dist/src/test-utils/mockCommandContext.js.map +1 -1
  72. package/dist/src/test-utils/persistentStateFake.d.ts +26 -0
  73. package/dist/src/test-utils/persistentStateFake.js +39 -0
  74. package/dist/src/test-utils/persistentStateFake.js.map +1 -0
  75. package/dist/src/test-utils/render.d.ts +10 -1
  76. package/dist/src/test-utils/render.js +45 -16
  77. package/dist/src/test-utils/render.js.map +1 -1
  78. package/dist/src/ui/App.test.js +96 -38
  79. package/dist/src/ui/App.test.js.map +1 -1
  80. package/dist/src/ui/AppContainer.js +78 -18
  81. package/dist/src/ui/AppContainer.js.map +1 -1
  82. package/dist/src/ui/AppContainer.test.js +185 -19
  83. package/dist/src/ui/AppContainer.test.js.map +1 -1
  84. package/dist/src/ui/auth/ApiAuthDialog.test.js +5 -5
  85. package/dist/src/ui/auth/ApiAuthDialog.test.js.map +1 -1
  86. package/dist/src/ui/auth/AuthDialog.test.js +13 -9
  87. package/dist/src/ui/auth/AuthDialog.test.js.map +1 -1
  88. package/dist/src/ui/auth/LoginWithGoogleRestartDialog.test.js +6 -6
  89. package/dist/src/ui/auth/LoginWithGoogleRestartDialog.test.js.map +1 -1
  90. package/dist/src/ui/commands/aboutCommand.js +2 -0
  91. package/dist/src/ui/commands/aboutCommand.js.map +1 -1
  92. package/dist/src/ui/commands/aboutCommand.test.js +12 -0
  93. package/dist/src/ui/commands/aboutCommand.test.js.map +1 -1
  94. package/dist/src/ui/commands/agentsCommand.js +75 -4
  95. package/dist/src/ui/commands/agentsCommand.js.map +1 -1
  96. package/dist/src/ui/commands/agentsCommand.test.js +114 -0
  97. package/dist/src/ui/commands/agentsCommand.test.js.map +1 -1
  98. package/dist/src/ui/commands/directoryCommand.js +53 -49
  99. package/dist/src/ui/commands/directoryCommand.js.map +1 -1
  100. package/dist/src/ui/commands/directoryCommand.test.js +79 -23
  101. package/dist/src/ui/commands/directoryCommand.test.js.map +1 -1
  102. package/dist/src/ui/commands/initCommand.test.js +8 -4
  103. package/dist/src/ui/commands/initCommand.test.js.map +1 -1
  104. package/dist/src/ui/commands/mcpCommand.js +136 -5
  105. package/dist/src/ui/commands/mcpCommand.js.map +1 -1
  106. package/dist/src/ui/commands/policiesCommand.js +33 -20
  107. package/dist/src/ui/commands/policiesCommand.js.map +1 -1
  108. package/dist/src/ui/commands/policiesCommand.test.js +7 -4
  109. package/dist/src/ui/commands/policiesCommand.test.js.map +1 -1
  110. package/dist/src/ui/commands/rewindCommand.d.ts +7 -0
  111. package/dist/src/ui/commands/rewindCommand.js +132 -0
  112. package/dist/src/ui/commands/rewindCommand.js.map +1 -0
  113. package/dist/src/ui/commands/rewindCommand.test.js +242 -0
  114. package/dist/src/ui/commands/rewindCommand.test.js.map +1 -0
  115. package/dist/src/ui/commands/skillsCommand.js +6 -4
  116. package/dist/src/ui/commands/skillsCommand.js.map +1 -1
  117. package/dist/src/ui/commands/skillsCommand.test.js +17 -3
  118. package/dist/src/ui/commands/skillsCommand.test.js.map +1 -1
  119. package/dist/src/ui/commands/types.d.ts +5 -3
  120. package/dist/src/ui/commands/types.js.map +1 -1
  121. package/dist/src/ui/components/AboutBox.d.ts +1 -0
  122. package/dist/src/ui/components/AboutBox.js +5 -1
  123. package/dist/src/ui/components/AboutBox.js.map +1 -1
  124. package/dist/src/ui/components/AboutBox.test.js +8 -2
  125. package/dist/src/ui/components/AboutBox.test.js.map +1 -1
  126. package/dist/src/ui/components/AgentConfigDialog.d.ts +18 -0
  127. package/dist/src/ui/components/AgentConfigDialog.js +296 -0
  128. package/dist/src/ui/components/AgentConfigDialog.js.map +1 -0
  129. package/dist/src/ui/components/AgentConfigDialog.test.js +241 -0
  130. package/dist/src/ui/components/AgentConfigDialog.test.js.map +1 -0
  131. package/dist/src/ui/components/AlternateBufferQuittingDisplay.js +9 -2
  132. package/dist/src/ui/components/AlternateBufferQuittingDisplay.js.map +1 -1
  133. package/dist/src/ui/components/AlternateBufferQuittingDisplay.test.js +54 -25
  134. package/dist/src/ui/components/AlternateBufferQuittingDisplay.test.js.map +1 -1
  135. package/dist/src/ui/components/AppHeader.js +4 -1
  136. package/dist/src/ui/components/AppHeader.js.map +1 -1
  137. package/dist/src/ui/components/AppHeader.test.js +95 -22
  138. package/dist/src/ui/components/AppHeader.test.js.map +1 -1
  139. package/dist/src/ui/components/{AutoAcceptIndicator.d.ts → ApprovalModeIndicator.d.ts} +2 -2
  140. package/dist/src/ui/components/{AutoAcceptIndicator.js → ApprovalModeIndicator.js} +8 -3
  141. package/dist/src/ui/components/ApprovalModeIndicator.js.map +1 -0
  142. package/dist/src/ui/components/ApprovalModeIndicator.test.d.ts +6 -0
  143. package/dist/src/ui/components/{AutoAcceptIndicator.test.js → ApprovalModeIndicator.test.js} +13 -7
  144. package/dist/src/ui/components/ApprovalModeIndicator.test.js.map +1 -0
  145. package/dist/src/ui/components/AskUserDialog.d.ts +39 -0
  146. package/dist/src/ui/components/AskUserDialog.js +618 -0
  147. package/dist/src/ui/components/AskUserDialog.js.map +1 -0
  148. package/dist/src/ui/components/AskUserDialog.test.d.ts +6 -0
  149. package/dist/src/ui/components/AskUserDialog.test.js +598 -0
  150. package/dist/src/ui/components/AskUserDialog.test.js.map +1 -0
  151. package/dist/src/ui/components/Composer.d.ts +3 -1
  152. package/dist/src/ui/components/Composer.js +5 -5
  153. package/dist/src/ui/components/Composer.js.map +1 -1
  154. package/dist/src/ui/components/Composer.test.js +6 -6
  155. package/dist/src/ui/components/Composer.test.js.map +1 -1
  156. package/dist/src/ui/components/ConfigInitDisplay.js +3 -4
  157. package/dist/src/ui/components/ConfigInitDisplay.js.map +1 -1
  158. package/dist/src/ui/components/ConfigInitDisplay.test.js +13 -29
  159. package/dist/src/ui/components/ConfigInitDisplay.test.js.map +1 -1
  160. package/dist/src/ui/components/ContextUsageDisplay.test.js +7 -3
  161. package/dist/src/ui/components/ContextUsageDisplay.test.js.map +1 -1
  162. package/dist/src/ui/components/DialogManager.js +13 -0
  163. package/dist/src/ui/components/DialogManager.js.map +1 -1
  164. package/dist/src/ui/components/DialogManager.test.js +24 -0
  165. package/dist/src/ui/components/DialogManager.test.js.map +1 -1
  166. package/dist/src/ui/components/FolderTrustDialog.test.js +3 -1
  167. package/dist/src/ui/components/FolderTrustDialog.test.js.map +1 -1
  168. package/dist/src/ui/components/Footer.test.js +7 -0
  169. package/dist/src/ui/components/Footer.test.js.map +1 -1
  170. package/dist/src/ui/components/Help.js +5 -2
  171. package/dist/src/ui/components/Help.js.map +1 -1
  172. package/dist/src/ui/components/HistoryItemDisplay.js +1 -1
  173. package/dist/src/ui/components/HistoryItemDisplay.js.map +1 -1
  174. package/dist/src/ui/components/InputPrompt.js +32 -20
  175. package/dist/src/ui/components/InputPrompt.js.map +1 -1
  176. package/dist/src/ui/components/InputPrompt.test.js +75 -1
  177. package/dist/src/ui/components/InputPrompt.test.js.map +1 -1
  178. package/dist/src/ui/components/MultiFolderTrustDialog.js +2 -1
  179. package/dist/src/ui/components/MultiFolderTrustDialog.js.map +1 -1
  180. package/dist/src/ui/components/MultiFolderTrustDialog.test.js +12 -10
  181. package/dist/src/ui/components/MultiFolderTrustDialog.test.js.map +1 -1
  182. package/dist/src/ui/components/Notifications.js +14 -20
  183. package/dist/src/ui/components/Notifications.js.map +1 -1
  184. package/dist/src/ui/components/Notifications.test.js +45 -35
  185. package/dist/src/ui/components/Notifications.test.js.map +1 -1
  186. package/dist/src/ui/components/RewindViewer.d.ts +1 -1
  187. package/dist/src/ui/components/RewindViewer.js +65 -17
  188. package/dist/src/ui/components/RewindViewer.js.map +1 -1
  189. package/dist/src/ui/components/RewindViewer.test.js +5 -3
  190. package/dist/src/ui/components/RewindViewer.test.js.map +1 -1
  191. package/dist/src/ui/components/SessionBrowser.js +3 -2
  192. package/dist/src/ui/components/SessionBrowser.js.map +1 -1
  193. package/dist/src/ui/components/SessionBrowser.test.js +10 -3
  194. package/dist/src/ui/components/SessionBrowser.test.js.map +1 -1
  195. package/dist/src/ui/components/SettingsDialog.d.ts +1 -1
  196. package/dist/src/ui/components/SettingsDialog.js +266 -516
  197. package/dist/src/ui/components/SettingsDialog.js.map +1 -1
  198. package/dist/src/ui/components/SettingsDialog.test.js +2 -2
  199. package/dist/src/ui/components/SettingsDialog.test.js.map +1 -1
  200. package/dist/src/ui/components/ShellInputPrompt.test.js +17 -8
  201. package/dist/src/ui/components/ShellInputPrompt.test.js.map +1 -1
  202. package/dist/src/ui/components/SuggestionsDisplay.d.ts +1 -1
  203. package/dist/src/ui/components/SuggestionsDisplay.js +4 -3
  204. package/dist/src/ui/components/SuggestionsDisplay.js.map +1 -1
  205. package/dist/src/ui/components/ToolConfirmationQueue.d.ts +12 -0
  206. package/dist/src/ui/components/ToolConfirmationQueue.js +30 -0
  207. package/dist/src/ui/components/ToolConfirmationQueue.js.map +1 -0
  208. package/dist/src/ui/components/ToolConfirmationQueue.test.d.ts +6 -0
  209. package/dist/src/ui/components/ToolConfirmationQueue.test.js +71 -0
  210. package/dist/src/ui/components/ToolConfirmationQueue.test.js.map +1 -0
  211. package/dist/src/ui/components/messages/RedirectionConfirmation.test.js +2 -4
  212. package/dist/src/ui/components/messages/RedirectionConfirmation.test.js.map +1 -1
  213. package/dist/src/ui/components/messages/ShellToolMessage.js +6 -41
  214. package/dist/src/ui/components/messages/ShellToolMessage.js.map +1 -1
  215. package/dist/src/ui/components/messages/ToolConfirmationMessage.d.ts +3 -2
  216. package/dist/src/ui/components/messages/ToolConfirmationMessage.js +61 -76
  217. package/dist/src/ui/components/messages/ToolConfirmationMessage.js.map +1 -1
  218. package/dist/src/ui/components/messages/ToolConfirmationMessage.test.js +20 -7
  219. package/dist/src/ui/components/messages/ToolConfirmationMessage.test.js.map +1 -1
  220. package/dist/src/ui/components/messages/ToolGroupMessage.js +34 -18
  221. package/dist/src/ui/components/messages/ToolGroupMessage.js.map +1 -1
  222. package/dist/src/ui/components/messages/ToolGroupMessage.test.js +209 -24
  223. package/dist/src/ui/components/messages/ToolGroupMessage.test.js.map +1 -1
  224. package/dist/src/ui/components/messages/ToolMessage.d.ts +1 -1
  225. package/dist/src/ui/components/messages/ToolMessage.js +7 -29
  226. package/dist/src/ui/components/messages/ToolMessage.js.map +1 -1
  227. package/dist/src/ui/components/messages/ToolMessageFocusHint.test.d.ts +6 -0
  228. package/dist/src/ui/components/messages/ToolMessageFocusHint.test.js +89 -0
  229. package/dist/src/ui/components/messages/ToolMessageFocusHint.test.js.map +1 -0
  230. package/dist/src/ui/components/messages/ToolShared.d.ts +26 -0
  231. package/dist/src/ui/components/messages/ToolShared.js +59 -6
  232. package/dist/src/ui/components/messages/ToolShared.js.map +1 -1
  233. package/dist/src/ui/components/shared/BaseSelectionList.d.ts +3 -1
  234. package/dist/src/ui/components/shared/BaseSelectionList.js +4 -2
  235. package/dist/src/ui/components/shared/BaseSelectionList.js.map +1 -1
  236. package/dist/src/ui/components/shared/BaseSelectionList.test.js +1 -0
  237. package/dist/src/ui/components/shared/BaseSelectionList.test.js.map +1 -1
  238. package/dist/src/ui/components/shared/BaseSettingsDialog.d.ts +72 -0
  239. package/dist/src/ui/components/shared/BaseSettingsDialog.js +293 -0
  240. package/dist/src/ui/components/shared/BaseSettingsDialog.js.map +1 -0
  241. package/dist/src/ui/components/shared/BaseSettingsDialog.test.d.ts +6 -0
  242. package/dist/src/ui/components/shared/BaseSettingsDialog.test.js +434 -0
  243. package/dist/src/ui/components/shared/BaseSettingsDialog.test.js.map +1 -0
  244. package/dist/src/ui/components/shared/ExpandableText.d.ts +17 -0
  245. package/dist/src/ui/components/{PrepareLabel.js → shared/ExpandableText.js} +30 -15
  246. package/dist/src/ui/components/shared/ExpandableText.js.map +1 -0
  247. package/dist/src/ui/components/shared/ExpandableText.test.d.ts +6 -0
  248. package/dist/src/ui/components/{PrepareLabel.test.js → shared/ExpandableText.test.js} +22 -11
  249. package/dist/src/ui/components/shared/ExpandableText.test.js.map +1 -0
  250. package/dist/src/ui/components/shared/TabHeader.d.ts +51 -0
  251. package/dist/src/ui/components/shared/TabHeader.js +42 -0
  252. package/dist/src/ui/components/shared/TabHeader.js.map +1 -0
  253. package/dist/src/ui/components/shared/TabHeader.test.d.ts +6 -0
  254. package/dist/src/ui/components/shared/TabHeader.test.js +106 -0
  255. package/dist/src/ui/components/shared/TabHeader.test.js.map +1 -0
  256. package/dist/src/ui/components/shared/TextInput.test.js +32 -24
  257. package/dist/src/ui/components/shared/TextInput.test.js.map +1 -1
  258. package/dist/src/ui/components/shared/text-buffer.d.ts +13 -0
  259. package/dist/src/ui/components/shared/text-buffer.js +173 -14
  260. package/dist/src/ui/components/shared/text-buffer.js.map +1 -1
  261. package/dist/src/ui/components/shared/text-buffer.test.js +256 -44
  262. package/dist/src/ui/components/shared/text-buffer.test.js.map +1 -1
  263. package/dist/src/ui/components/shared/vim-buffer-actions.test.js +4 -1
  264. package/dist/src/ui/components/shared/vim-buffer-actions.test.js.map +1 -1
  265. package/dist/src/ui/components/views/McpStatus.d.ts +1 -0
  266. package/dist/src/ui/components/views/McpStatus.js +30 -18
  267. package/dist/src/ui/components/views/McpStatus.js.map +1 -1
  268. package/dist/src/ui/components/views/McpStatus.test.js +7 -0
  269. package/dist/src/ui/components/views/McpStatus.test.js.map +1 -1
  270. package/dist/src/ui/constants/tips.js +2 -2
  271. package/dist/src/ui/constants/tips.js.map +1 -1
  272. package/dist/src/ui/constants.d.ts +1 -0
  273. package/dist/src/ui/constants.js +1 -0
  274. package/dist/src/ui/constants.js.map +1 -1
  275. package/dist/src/ui/contexts/KeypressContext.d.ts +3 -2
  276. package/dist/src/ui/contexts/KeypressContext.js +33 -25
  277. package/dist/src/ui/contexts/KeypressContext.js.map +1 -1
  278. package/dist/src/ui/contexts/KeypressContext.test.js +151 -41
  279. package/dist/src/ui/contexts/KeypressContext.test.js.map +1 -1
  280. package/dist/src/ui/contexts/MouseContext.test.js +8 -8
  281. package/dist/src/ui/contexts/MouseContext.test.js.map +1 -1
  282. package/dist/src/ui/contexts/ToolActionsContext.d.ts +20 -0
  283. package/dist/src/ui/contexts/ToolActionsContext.js +74 -0
  284. package/dist/src/ui/contexts/ToolActionsContext.js.map +1 -0
  285. package/dist/src/ui/contexts/ToolActionsContext.test.d.ts +6 -0
  286. package/dist/src/ui/contexts/ToolActionsContext.test.js +135 -0
  287. package/dist/src/ui/contexts/ToolActionsContext.test.js.map +1 -0
  288. package/dist/src/ui/contexts/UIActionsContext.d.ts +3 -1
  289. package/dist/src/ui/contexts/UIActionsContext.js.map +1 -1
  290. package/dist/src/ui/contexts/UIStateContext.d.ts +6 -2
  291. package/dist/src/ui/contexts/UIStateContext.js.map +1 -1
  292. package/dist/src/ui/hooks/atCommandProcessor.js +19 -4
  293. package/dist/src/ui/hooks/atCommandProcessor.js.map +1 -1
  294. package/dist/src/ui/hooks/keyToAnsi.js +1 -1
  295. package/dist/src/ui/hooks/keyToAnsi.js.map +1 -1
  296. package/dist/src/ui/hooks/slashCommandProcessor.d.ts +3 -1
  297. package/dist/src/ui/hooks/slashCommandProcessor.js +24 -7
  298. package/dist/src/ui/hooks/slashCommandProcessor.js.map +1 -1
  299. package/dist/src/ui/hooks/slashCommandProcessor.test.js +126 -30
  300. package/dist/src/ui/hooks/slashCommandProcessor.test.js.map +1 -1
  301. package/dist/src/ui/hooks/toolMapping.js +8 -11
  302. package/dist/src/ui/hooks/toolMapping.js.map +1 -1
  303. package/dist/src/ui/hooks/toolMapping.test.js +27 -6
  304. package/dist/src/ui/hooks/toolMapping.test.js.map +1 -1
  305. package/dist/src/ui/hooks/{useAutoAcceptIndicator.d.ts → useApprovalModeIndicator.d.ts} +2 -2
  306. package/dist/src/ui/hooks/{useAutoAcceptIndicator.js → useApprovalModeIndicator.js} +25 -11
  307. package/dist/src/ui/hooks/useApprovalModeIndicator.js.map +1 -0
  308. package/dist/src/ui/hooks/useApprovalModeIndicator.test.d.ts +6 -0
  309. package/dist/src/ui/hooks/{useAutoAcceptIndicator.test.js → useApprovalModeIndicator.test.js} +56 -31
  310. package/dist/src/ui/hooks/useApprovalModeIndicator.test.js.map +1 -0
  311. package/dist/src/ui/hooks/useConfirmingTool.d.ts +16 -0
  312. package/dist/src/ui/hooks/useConfirmingTool.js +39 -0
  313. package/dist/src/ui/hooks/useConfirmingTool.js.map +1 -0
  314. package/dist/src/ui/hooks/useGeminiStream.d.ts +1 -1
  315. package/dist/src/ui/hooks/useGeminiStream.js +20 -8
  316. package/dist/src/ui/hooks/useGeminiStream.js.map +1 -1
  317. package/dist/src/ui/hooks/useGeminiStream.test.js +79 -19
  318. package/dist/src/ui/hooks/useGeminiStream.test.js.map +1 -1
  319. package/dist/src/ui/hooks/useIncludeDirsTrust.d.ts +1 -1
  320. package/dist/src/ui/hooks/useIncludeDirsTrust.js +9 -20
  321. package/dist/src/ui/hooks/useIncludeDirsTrust.js.map +1 -1
  322. package/dist/src/ui/hooks/useIncludeDirsTrust.test.js +33 -12
  323. package/dist/src/ui/hooks/useIncludeDirsTrust.test.js.map +1 -1
  324. package/dist/src/ui/hooks/useKeypress.test.js +10 -3
  325. package/dist/src/ui/hooks/useKeypress.test.js.map +1 -1
  326. package/dist/src/ui/hooks/useLoadingIndicator.d.ts +7 -1
  327. package/dist/src/ui/hooks/useLoadingIndicator.js +3 -3
  328. package/dist/src/ui/hooks/useLoadingIndicator.js.map +1 -1
  329. package/dist/src/ui/hooks/useLoadingIndicator.test.js +17 -9
  330. package/dist/src/ui/hooks/useLoadingIndicator.test.js.map +1 -1
  331. package/dist/src/ui/hooks/usePhraseCycler.d.ts +2 -2
  332. package/dist/src/ui/hooks/usePhraseCycler.js +4 -14
  333. package/dist/src/ui/hooks/usePhraseCycler.js.map +1 -1
  334. package/dist/src/ui/hooks/usePhraseCycler.test.js +13 -42
  335. package/dist/src/ui/hooks/usePhraseCycler.test.js.map +1 -1
  336. package/dist/src/ui/hooks/useSelectionList.d.ts +4 -1
  337. package/dist/src/ui/hooks/useSelectionList.js +51 -13
  338. package/dist/src/ui/hooks/useSelectionList.js.map +1 -1
  339. package/dist/src/ui/hooks/useSelectionList.test.js +35 -3
  340. package/dist/src/ui/hooks/useSelectionList.test.js.map +1 -1
  341. package/dist/src/ui/hooks/useSessionResume.test.js +3 -2
  342. package/dist/src/ui/hooks/useSessionResume.test.js.map +1 -1
  343. package/dist/src/ui/hooks/useShellInactivityStatus.d.ts +26 -0
  344. package/dist/src/ui/hooks/useShellInactivityStatus.js +46 -0
  345. package/dist/src/ui/hooks/useShellInactivityStatus.js.map +1 -0
  346. package/dist/src/ui/hooks/useShellInactivityStatus.test.d.ts +6 -0
  347. package/dist/src/ui/hooks/useShellInactivityStatus.test.js +84 -0
  348. package/dist/src/ui/hooks/useShellInactivityStatus.test.js.map +1 -0
  349. package/dist/src/ui/hooks/useTabbedNavigation.d.ts +53 -0
  350. package/dist/src/ui/hooks/useTabbedNavigation.js +150 -0
  351. package/dist/src/ui/hooks/useTabbedNavigation.js.map +1 -0
  352. package/dist/src/ui/hooks/useTabbedNavigation.test.d.ts +6 -0
  353. package/dist/src/ui/hooks/useTabbedNavigation.test.js +187 -0
  354. package/dist/src/ui/hooks/useTabbedNavigation.test.js.map +1 -0
  355. package/dist/src/ui/hooks/useTips.d.ts +10 -0
  356. package/dist/src/ui/hooks/useTips.js +18 -0
  357. package/dist/src/ui/hooks/useTips.js.map +1 -0
  358. package/dist/src/ui/hooks/useTips.test.d.ts +6 -0
  359. package/dist/src/ui/hooks/useTips.test.js +33 -0
  360. package/dist/src/ui/hooks/useTips.test.js.map +1 -0
  361. package/dist/src/ui/hooks/useToolExecutionScheduler.d.ts +30 -0
  362. package/dist/src/ui/hooks/useToolExecutionScheduler.js +113 -0
  363. package/dist/src/ui/hooks/useToolExecutionScheduler.js.map +1 -0
  364. package/dist/src/ui/hooks/useToolExecutionScheduler.test.d.ts +6 -0
  365. package/dist/src/ui/hooks/useToolExecutionScheduler.test.js +296 -0
  366. package/dist/src/ui/hooks/useToolExecutionScheduler.test.js.map +1 -0
  367. package/dist/src/ui/hooks/useToolScheduler.d.ts +29 -0
  368. package/dist/src/ui/hooks/useToolScheduler.js +30 -0
  369. package/dist/src/ui/hooks/useToolScheduler.js.map +1 -0
  370. package/dist/src/ui/hooks/useToolScheduler.test.js +1 -1
  371. package/dist/src/ui/hooks/useToolScheduler.test.js.map +1 -1
  372. package/dist/src/ui/hooks/useToolSchedulerFacade.test.d.ts +6 -0
  373. package/dist/src/ui/hooks/useToolSchedulerFacade.test.js +45 -0
  374. package/dist/src/ui/hooks/useToolSchedulerFacade.test.js.map +1 -0
  375. package/dist/src/ui/hooks/useTurnActivityMonitor.d.ts +16 -0
  376. package/dist/src/ui/hooks/useTurnActivityMonitor.js +49 -0
  377. package/dist/src/ui/hooks/useTurnActivityMonitor.js.map +1 -0
  378. package/dist/src/ui/hooks/useTurnActivityMonitor.test.d.ts +6 -0
  379. package/dist/src/ui/hooks/useTurnActivityMonitor.test.js +97 -0
  380. package/dist/src/ui/hooks/useTurnActivityMonitor.test.js.map +1 -0
  381. package/dist/src/ui/hooks/vim.js +5 -3
  382. package/dist/src/ui/hooks/vim.js.map +1 -1
  383. package/dist/src/ui/hooks/vim.test.js +4 -2
  384. package/dist/src/ui/hooks/vim.test.js.map +1 -1
  385. package/dist/src/ui/keyMatchers.js +5 -13
  386. package/dist/src/ui/keyMatchers.js.map +1 -1
  387. package/dist/src/ui/keyMatchers.test.js +23 -20
  388. package/dist/src/ui/keyMatchers.test.js.map +1 -1
  389. package/dist/src/ui/layouts/DefaultAppLayout.js +10 -2
  390. package/dist/src/ui/layouts/DefaultAppLayout.js.map +1 -1
  391. package/dist/src/ui/noninteractive/nonInteractiveUi.js +1 -0
  392. package/dist/src/ui/noninteractive/nonInteractiveUi.js.map +1 -1
  393. package/dist/src/ui/types.d.ts +11 -3
  394. package/dist/src/ui/types.js.map +1 -1
  395. package/dist/src/ui/utils/clipboardUtils.d.ts +4 -4
  396. package/dist/src/ui/utils/clipboardUtils.js +198 -12
  397. package/dist/src/ui/utils/clipboardUtils.js.map +1 -1
  398. package/dist/src/ui/utils/clipboardUtils.test.js +219 -47
  399. package/dist/src/ui/utils/clipboardUtils.test.js.map +1 -1
  400. package/dist/src/ui/utils/clipboardUtils.windows.test.js +3 -0
  401. package/dist/src/ui/utils/clipboardUtils.windows.test.js.map +1 -1
  402. package/dist/src/ui/utils/commandUtils.test.js +11 -3
  403. package/dist/src/ui/utils/commandUtils.test.js.map +1 -1
  404. package/dist/src/ui/utils/directoryUtils.d.ts +10 -0
  405. package/dist/src/ui/utils/directoryUtils.js +12 -0
  406. package/dist/src/ui/utils/directoryUtils.js.map +1 -1
  407. package/dist/src/ui/utils/directoryUtils.test.js +8 -4
  408. package/dist/src/ui/utils/directoryUtils.test.js.map +1 -1
  409. package/dist/src/ui/utils/formatters.d.ts +1 -1
  410. package/dist/src/ui/utils/formatters.js +2 -3
  411. package/dist/src/ui/utils/formatters.js.map +1 -1
  412. package/dist/src/ui/utils/highlight.d.ts +2 -2
  413. package/dist/src/ui/utils/highlight.js +9 -3
  414. package/dist/src/ui/utils/highlight.js.map +1 -1
  415. package/dist/src/ui/utils/highlight.test.js +3 -0
  416. package/dist/src/ui/utils/highlight.test.js.map +1 -1
  417. package/dist/src/ui/utils/terminalCapabilityManager.d.ts +1 -2
  418. package/dist/src/ui/utils/terminalCapabilityManager.js +2 -8
  419. package/dist/src/ui/utils/terminalCapabilityManager.js.map +1 -1
  420. package/dist/src/ui/utils/terminalCapabilityManager.test.js +2 -3
  421. package/dist/src/ui/utils/terminalCapabilityManager.test.js.map +1 -1
  422. package/dist/src/ui/utils/terminalSetup.test.js +5 -3
  423. package/dist/src/ui/utils/terminalSetup.test.js.map +1 -1
  424. package/dist/src/ui/utils/textUtils.d.ts +5 -0
  425. package/dist/src/ui/utils/textUtils.js +14 -0
  426. package/dist/src/ui/utils/textUtils.js.map +1 -1
  427. package/dist/src/ui/utils/textUtils.test.js +19 -1
  428. package/dist/src/ui/utils/textUtils.test.js.map +1 -1
  429. package/dist/src/utils/cleanup.js +15 -0
  430. package/dist/src/utils/cleanup.js.map +1 -1
  431. package/dist/src/utils/events.d.ts +1 -6
  432. package/dist/src/utils/events.js +0 -2
  433. package/dist/src/utils/events.js.map +1 -1
  434. package/dist/src/utils/events.test.js +4 -4
  435. package/dist/src/utils/events.test.js.map +1 -1
  436. package/dist/src/utils/handleAutoUpdate.test.js +3 -0
  437. package/dist/src/utils/handleAutoUpdate.test.js.map +1 -1
  438. package/dist/src/utils/installationInfo.js +4 -2
  439. package/dist/src/utils/installationInfo.js.map +1 -1
  440. package/dist/src/utils/persistentState.d.ts +2 -0
  441. package/dist/src/utils/persistentState.js.map +1 -1
  442. package/dist/src/utils/windowTitle.d.ts +2 -1
  443. package/dist/src/utils/windowTitle.js +8 -1
  444. package/dist/src/utils/windowTitle.js.map +1 -1
  445. package/dist/src/utils/windowTitle.test.js +25 -1
  446. package/dist/src/utils/windowTitle.test.js.map +1 -1
  447. package/dist/src/zed-integration/zedIntegration.js +26 -5
  448. package/dist/src/zed-integration/zedIntegration.js.map +1 -1
  449. package/dist/tsconfig.tsbuildinfo +1 -1
  450. package/package.json +4 -5
  451. package/dist/google-gemini-cli-0.26.0-preview.3.tgz +0 -0
  452. package/dist/src/ui/components/AutoAcceptIndicator.js.map +0 -1
  453. package/dist/src/ui/components/AutoAcceptIndicator.test.js.map +0 -1
  454. package/dist/src/ui/components/PrepareLabel.d.ts +0 -15
  455. package/dist/src/ui/components/PrepareLabel.js.map +0 -1
  456. package/dist/src/ui/components/PrepareLabel.test.js.map +0 -1
  457. package/dist/src/ui/hooks/useAutoAcceptIndicator.js.map +0 -1
  458. package/dist/src/ui/hooks/useAutoAcceptIndicator.test.js.map +0 -1
  459. /package/dist/src/{ui/components/AutoAcceptIndicator.test.d.ts → config/mcp/mcpServerEnablement.test.d.ts} +0 -0
  460. /package/dist/src/ui/{components/PrepareLabel.test.d.ts → commands/rewindCommand.test.d.ts} +0 -0
  461. /package/dist/src/ui/{hooks/useAutoAcceptIndicator.test.d.ts → components/AgentConfigDialog.test.d.ts} +0 -0
@@ -4,17 +4,14 @@ import { jsx as _jsx } from "react/jsx-runtime";
4
4
  * Copyright 2025 Google LLC
5
5
  * SPDX-License-Identifier: Apache-2.0
6
6
  */
7
- import { describe, it, expect, vi } from 'vitest';
8
- import { render } from '../test-utils/render.js';
7
+ import { describe, it, expect, vi, beforeEach } from 'vitest';
8
+ import { renderWithProviders } from '../test-utils/render.js';
9
9
  import { Text, useIsScreenReaderEnabled } from 'ink';
10
- import { makeFakeConfig } from '@google/gemini-cli-core';
10
+ import {} from '@google/gemini-cli-core';
11
11
  import { App } from './App.js';
12
- import { UIStateContext } from './contexts/UIStateContext.js';
13
- import { StreamingState } from './types.js';
14
- import { ConfigContext } from './contexts/ConfigContext.js';
15
- import { AppContext } from './contexts/AppContext.js';
16
- import { SettingsContext } from './contexts/SettingsContext.js';
17
- import { LoadedSettings } from '../config/settings.js';
12
+ import {} from './contexts/UIStateContext.js';
13
+ import { StreamingState, ToolCallStatus } from './types.js';
14
+ import { makeFakeConfig } from '@google/gemini-cli-core';
18
15
  vi.mock('ink', async (importOriginal) => {
19
16
  const original = await importOriginal();
20
17
  return {
@@ -44,12 +41,19 @@ vi.mock('./components/Footer.js', () => ({
44
41
  Footer: () => _jsx(Text, { children: "Footer" }),
45
42
  }));
46
43
  describe('App', () => {
44
+ beforeEach(() => {
45
+ useIsScreenReaderEnabled.mockReturnValue(false);
46
+ });
47
47
  const mockUIState = {
48
48
  streamingState: StreamingState.Idle,
49
49
  quittingMessages: null,
50
50
  dialogsVisible: false,
51
- mainControlsRef: { current: null },
52
- rootUiRef: { current: null },
51
+ mainControlsRef: {
52
+ current: null,
53
+ },
54
+ rootUiRef: {
55
+ current: null,
56
+ },
53
57
  historyManager: {
54
58
  addItem: vi.fn(),
55
59
  history: [],
@@ -59,25 +63,17 @@ describe('App', () => {
59
63
  },
60
64
  history: [],
61
65
  pendingHistoryItems: [],
66
+ pendingGeminiHistoryItems: [],
62
67
  bannerData: {
63
68
  defaultText: 'Mock Banner Text',
64
69
  warningText: '',
65
70
  },
66
71
  };
67
- const mockConfig = makeFakeConfig();
68
- const mockSettingsFile = {
69
- settings: {},
70
- originalSettings: {},
71
- path: '/mock/path',
72
- };
73
- const mockLoadedSettings = new LoadedSettings(mockSettingsFile, mockSettingsFile, mockSettingsFile, mockSettingsFile, true, []);
74
- const mockAppState = {
75
- version: '1.0.0',
76
- startupWarnings: [],
77
- };
78
- const renderWithProviders = (ui, state) => render(_jsx(AppContext.Provider, { value: mockAppState, children: _jsx(ConfigContext.Provider, { value: mockConfig, children: _jsx(SettingsContext.Provider, { value: mockLoadedSettings, children: _jsx(UIStateContext.Provider, { value: state, children: ui }) }) }) }));
79
72
  it('should render main content and composer when not quitting', () => {
80
- const { lastFrame } = renderWithProviders(_jsx(App, {}), mockUIState);
73
+ const { lastFrame } = renderWithProviders(_jsx(App, {}), {
74
+ uiState: mockUIState,
75
+ useAlternateBuffer: false,
76
+ });
81
77
  expect(lastFrame()).toContain('MainContent');
82
78
  expect(lastFrame()).toContain('Notifications');
83
79
  expect(lastFrame()).toContain('Composer');
@@ -87,7 +83,10 @@ describe('App', () => {
87
83
  ...mockUIState,
88
84
  quittingMessages: [{ id: 1, type: 'user', text: 'test' }],
89
85
  };
90
- const { lastFrame } = renderWithProviders(_jsx(App, {}), quittingUIState);
86
+ const { lastFrame } = renderWithProviders(_jsx(App, {}), {
87
+ uiState: quittingUIState,
88
+ useAlternateBuffer: false,
89
+ });
91
90
  expect(lastFrame()).toContain('Quitting...');
92
91
  });
93
92
  it('should render full history in alternate buffer mode when quittingMessages is set', () => {
@@ -97,19 +96,21 @@ describe('App', () => {
97
96
  history: [{ id: 1, type: 'user', text: 'history item' }],
98
97
  pendingHistoryItems: [{ type: 'user', text: 'pending item' }],
99
98
  };
100
- mockLoadedSettings.merged.ui.useAlternateBuffer = true;
101
- const { lastFrame } = renderWithProviders(_jsx(App, {}), quittingUIState);
99
+ const { lastFrame } = renderWithProviders(_jsx(App, {}), {
100
+ uiState: quittingUIState,
101
+ useAlternateBuffer: true,
102
+ });
102
103
  expect(lastFrame()).toContain('HistoryItemDisplay');
103
104
  expect(lastFrame()).toContain('Quitting...');
104
- // Reset settings
105
- mockLoadedSettings.merged.ui.useAlternateBuffer = false;
106
105
  });
107
106
  it('should render dialog manager when dialogs are visible', () => {
108
107
  const dialogUIState = {
109
108
  ...mockUIState,
110
109
  dialogsVisible: true,
111
110
  };
112
- const { lastFrame } = renderWithProviders(_jsx(App, {}), dialogUIState);
111
+ const { lastFrame } = renderWithProviders(_jsx(App, {}), {
112
+ uiState: dialogUIState,
113
+ });
113
114
  expect(lastFrame()).toContain('MainContent');
114
115
  expect(lastFrame()).toContain('Notifications');
115
116
  expect(lastFrame()).toContain('DialogManager');
@@ -123,28 +124,83 @@ describe('App', () => {
123
124
  dialogsVisible: true,
124
125
  [stateKey]: true,
125
126
  };
126
- const { lastFrame } = renderWithProviders(_jsx(App, {}), uiState);
127
+ const { lastFrame } = renderWithProviders(_jsx(App, {}), {
128
+ uiState,
129
+ });
127
130
  expect(lastFrame()).toContain(`Press Ctrl+${key} again to exit.`);
128
131
  });
129
132
  it('should render ScreenReaderAppLayout when screen reader is enabled', () => {
130
133
  useIsScreenReaderEnabled.mockReturnValue(true);
131
- const { lastFrame } = renderWithProviders(_jsx(App, {}), mockUIState);
132
- expect(lastFrame()).toContain('Notifications\nFooter\nMainContent\nComposer');
134
+ const { lastFrame } = renderWithProviders(_jsx(App, {}), {
135
+ uiState: mockUIState,
136
+ });
137
+ expect(lastFrame()).toContain(`Notifications
138
+ Footer
139
+ MainContent
140
+ Composer`);
133
141
  });
134
142
  it('should render DefaultAppLayout when screen reader is not enabled', () => {
135
143
  useIsScreenReaderEnabled.mockReturnValue(false);
136
- const { lastFrame } = renderWithProviders(_jsx(App, {}), mockUIState);
137
- expect(lastFrame()).toContain('MainContent\nNotifications\nComposer');
144
+ const { lastFrame } = renderWithProviders(_jsx(App, {}), {
145
+ uiState: mockUIState,
146
+ });
147
+ expect(lastFrame()).toContain(`MainContent
148
+ Notifications
149
+ Composer`);
150
+ });
151
+ it('should render ToolConfirmationQueue along with Composer when tool is confirming and experiment is on', () => {
152
+ useIsScreenReaderEnabled.mockReturnValue(false);
153
+ const toolCalls = [
154
+ {
155
+ callId: 'call-1',
156
+ name: 'ls',
157
+ description: 'list directory',
158
+ status: ToolCallStatus.Confirming,
159
+ resultDisplay: '',
160
+ confirmationDetails: {
161
+ type: 'exec',
162
+ title: 'Confirm execution',
163
+ command: 'ls',
164
+ rootCommand: 'ls',
165
+ rootCommands: ['ls'],
166
+ },
167
+ },
168
+ ];
169
+ const stateWithConfirmingTool = {
170
+ ...mockUIState,
171
+ pendingHistoryItems: [{ type: 'tool_group', tools: toolCalls }],
172
+ pendingGeminiHistoryItems: [{ type: 'tool_group', tools: toolCalls }],
173
+ };
174
+ const configWithExperiment = {
175
+ ...makeFakeConfig(),
176
+ isEventDrivenSchedulerEnabled: () => true,
177
+ isTrustedFolder: () => true,
178
+ getIdeMode: () => false,
179
+ };
180
+ const { lastFrame } = renderWithProviders(_jsx(App, {}), {
181
+ uiState: stateWithConfirmingTool,
182
+ config: configWithExperiment,
183
+ });
184
+ expect(lastFrame()).toContain('MainContent');
185
+ expect(lastFrame()).toContain('Notifications');
186
+ expect(lastFrame()).toContain('Action Required'); // From ToolConfirmationQueue
187
+ expect(lastFrame()).toContain('1 of 1');
188
+ expect(lastFrame()).toContain('Composer');
189
+ expect(lastFrame()).toMatchSnapshot();
138
190
  });
139
191
  describe('Snapshots', () => {
140
192
  it('renders default layout correctly', () => {
141
193
  useIsScreenReaderEnabled.mockReturnValue(false);
142
- const { lastFrame } = renderWithProviders(_jsx(App, {}), mockUIState);
194
+ const { lastFrame } = renderWithProviders(_jsx(App, {}), {
195
+ uiState: mockUIState,
196
+ });
143
197
  expect(lastFrame()).toMatchSnapshot();
144
198
  });
145
199
  it('renders screen reader layout correctly', () => {
146
200
  useIsScreenReaderEnabled.mockReturnValue(true);
147
- const { lastFrame } = renderWithProviders(_jsx(App, {}), mockUIState);
201
+ const { lastFrame } = renderWithProviders(_jsx(App, {}), {
202
+ uiState: mockUIState,
203
+ });
148
204
  expect(lastFrame()).toMatchSnapshot();
149
205
  });
150
206
  it('renders with dialogs visible', () => {
@@ -152,7 +208,9 @@ describe('App', () => {
152
208
  ...mockUIState,
153
209
  dialogsVisible: true,
154
210
  };
155
- const { lastFrame } = renderWithProviders(_jsx(App, {}), dialogUIState);
211
+ const { lastFrame } = renderWithProviders(_jsx(App, {}), {
212
+ uiState: dialogUIState,
213
+ });
156
214
  expect(lastFrame()).toMatchSnapshot();
157
215
  });
158
216
  });
@@ -1 +1 @@
1
- {"version":3,"file":"App.test.js","sourceRoot":"","sources":["../../../src/ui/App.test.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"App.test.js","sourceRoot":"","sources":["../../../src/ui/App.test.tsx"],"names":[],"mappings":"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"}
@@ -13,6 +13,7 @@ import { UIActionsContext, } from './contexts/UIActionsContext.js';
13
13
  import { ConfigContext } from './contexts/ConfigContext.js';
14
14
  import { ToolCallStatus, AuthState, } from './types.js';
15
15
  import { MessageType, StreamingState } from './types.js';
16
+ import { ToolActionsProvider } from './contexts/ToolActionsContext.js';
16
17
  import { IdeClient, ideContextStore, getErrorMessage, getAllGeminiMdFilenames, AuthType, clearCachedCredentialFile, recordExitFail, ShellExecutionService, saveApiKey, debugLogger, coreEvents, CoreEvent, refreshServerHierarchicalMemory, writeToStdout, disableMouseEvents, enterAlternateScreen, enableMouseEvents, disableLineWrapping, shouldEnterAlternateScreen, startupProfiler, SessionStartSource, SessionEndReason, generateSummary, } from '@google/gemini-cli-core';
17
18
  import { validateAuthMethod } from '../config/auth.js';
18
19
  import process from 'node:process';
@@ -45,6 +46,7 @@ import { useFocus } from './hooks/useFocus.js';
45
46
  import { useKeypress } from './hooks/useKeypress.js';
46
47
  import { keyMatchers, Command } from './keyMatchers.js';
47
48
  import { useLoadingIndicator } from './hooks/useLoadingIndicator.js';
49
+ import { useShellInactivityStatus } from './hooks/useShellInactivityStatus.js';
48
50
  import { useFolderTrust } from './hooks/useFolderTrust.js';
49
51
  import { useIdeTrustListener } from './hooks/useIdeTrustListener.js';
50
52
  import {} from './IdeIntegrationNudge.js';
@@ -54,8 +56,8 @@ import { setUpdateHandler } from '../utils/handleAutoUpdate.js';
54
56
  import { registerCleanup, runExitCleanup } from '../utils/cleanup.js';
55
57
  import { RELAUNCH_EXIT_CODE } from '../utils/processUtils.js';
56
58
  import { useMessageQueue } from './hooks/useMessageQueue.js';
57
- import { useAutoAcceptIndicator } from './hooks/useAutoAcceptIndicator.js';
58
59
  import { useMcpStatus } from './hooks/useMcpStatus.js';
60
+ import { useApprovalModeIndicator } from './hooks/useApprovalModeIndicator.js';
59
61
  import { useSessionStats } from './contexts/SessionContext.js';
60
62
  import { useGitBranchName } from './hooks/useGitBranchName.js';
61
63
  import { useConfirmUpdateRequests, useExtensionUpdates, } from './hooks/useExtensionUpdates.js';
@@ -72,9 +74,8 @@ import { terminalCapabilityManager } from './utils/terminalCapabilityManager.js'
72
74
  import { useInputHistoryStore } from './hooks/useInputHistoryStore.js';
73
75
  import { useBanner } from './hooks/useBanner.js';
74
76
  import { useHookDisplayState } from './hooks/useHookDisplayState.js';
75
- import { WARNING_PROMPT_DURATION_MS, QUEUE_ERROR_DISPLAY_DURATION_MS, SHELL_ACTION_REQUIRED_TITLE_DELAY_MS, } from './constants.js';
77
+ import { WARNING_PROMPT_DURATION_MS, QUEUE_ERROR_DISPLAY_DURATION_MS, } from './constants.js';
76
78
  import { LoginWithGoogleRestartDialog } from './auth/LoginWithGoogleRestartDialog.js';
77
- import { useInactivityTimer } from './hooks/useInactivityTimer.js';
78
79
  import { isSlashCommand } from './utils/commandUtils.js';
79
80
  function isToolExecuting(pendingHistoryItems) {
80
81
  return pendingHistoryItems.some((item) => {
@@ -84,6 +85,11 @@ function isToolExecuting(pendingHistoryItems) {
84
85
  return false;
85
86
  });
86
87
  }
88
+ function isToolAwaitingConfirmation(pendingHistoryItems) {
89
+ return pendingHistoryItems
90
+ .filter((item) => item.type === 'tool_group')
91
+ .some((item) => item.tools.some((tool) => ToolCallStatus.Confirming === tool.status));
92
+ }
87
93
  /**
88
94
  * The fraction of the terminal width to allocate to the shell.
89
95
  * This provides horizontal padding.
@@ -146,6 +152,22 @@ export const AppContainer = (props) => {
146
152
  setPermissionsDialogOpen(false);
147
153
  setPermissionsDialogProps(null);
148
154
  }, []);
155
+ const [isAgentConfigDialogOpen, setIsAgentConfigDialogOpen] = useState(false);
156
+ const [selectedAgentName, setSelectedAgentName] = useState();
157
+ const [selectedAgentDisplayName, setSelectedAgentDisplayName] = useState();
158
+ const [selectedAgentDefinition, setSelectedAgentDefinition] = useState();
159
+ const openAgentConfigDialog = useCallback((name, displayName, definition) => {
160
+ setSelectedAgentName(name);
161
+ setSelectedAgentDisplayName(displayName);
162
+ setSelectedAgentDefinition(definition);
163
+ setIsAgentConfigDialogOpen(true);
164
+ }, []);
165
+ const closeAgentConfigDialog = useCallback(() => {
166
+ setIsAgentConfigDialogOpen(false);
167
+ setSelectedAgentName(undefined);
168
+ setSelectedAgentDisplayName(undefined);
169
+ setSelectedAgentDefinition(undefined);
170
+ }, []);
149
171
  const toggleDebugProfiler = useCallback(() => setShowDebugProfiler((prev) => !prev), []);
150
172
  const [currentModel, setCurrentModel] = useState(config.getModel());
151
173
  const [userTier, setUserTier] = useState(undefined);
@@ -192,7 +214,9 @@ export const AppContainer = (props) => {
192
214
  if (additionalContext && geminiClient) {
193
215
  await geminiClient.addHistory({
194
216
  role: 'user',
195
- parts: [{ text: additionalContext }],
217
+ parts: [
218
+ { text: `<hook_context>${additionalContext}</hook_context>` },
219
+ ],
196
220
  });
197
221
  }
198
222
  }
@@ -438,6 +462,7 @@ Logging in with Google... Restarting Gemini CLI to continue.
438
462
  openSettingsDialog,
439
463
  openSessionBrowser,
440
464
  openModelDialog,
465
+ openAgentConfigDialog,
441
466
  openPermissionsDialog,
442
467
  quit: (messages) => {
443
468
  setQuittingMessages(messages);
@@ -451,6 +476,7 @@ Logging in with Google... Restarting Gemini CLI to continue.
451
476
  toggleDebugProfiler,
452
477
  dispatchExtensionStateUpdate,
453
478
  addConfirmUpdateExtensionRequest,
479
+ setText: (text) => buffer.setText(text),
454
480
  }), [
455
481
  setAuthState,
456
482
  openThemeDialog,
@@ -458,6 +484,7 @@ Logging in with Google... Restarting Gemini CLI to continue.
458
484
  openSettingsDialog,
459
485
  openSessionBrowser,
460
486
  openModelDialog,
487
+ openAgentConfigDialog,
461
488
  setQuittingMessages,
462
489
  setDebugMessage,
463
490
  setShowPrivacyNotice,
@@ -466,6 +493,7 @@ Logging in with Google... Restarting Gemini CLI to continue.
466
493
  openPermissionsDialog,
467
494
  addConfirmUpdateExtensionRequest,
468
495
  toggleDebugProfiler,
496
+ buffer,
469
497
  ]);
470
498
  const { handleSlashCommand, slashCommands, pendingHistoryItems: pendingSlashCommandHistoryItems, commandContext, confirmationRequest, } = useSlashCommandProcessor(config, settings, historyManager.addItem, historyManager.clearItems, historyManager.loadHistory, refreshStatic, toggleVimEnabled, setIsProcessing, slashCommandActions, extensionsUpdateStateInternal, isConfigInitialized, setBannerVisible, setCustomDialog);
471
499
  const performMemoryRefresh = useCallback(async () => {
@@ -516,17 +544,23 @@ Logging in with Google... Restarting Gemini CLI to continue.
516
544
  }
517
545
  }
518
546
  }, [pendingRestorePrompt, inputHistory, historyManager.history]);
519
- const { streamingState, submitQuery, initError, pendingHistoryItems: pendingGeminiHistoryItems, thought, cancelOngoingRequest, handleApprovalModeChange, activePtyId, loopDetectionConfirmationRequest, lastOutputTime, retryStatus, } = useGeminiStream(config.getGeminiClient(), historyManager.history, historyManager.addItem, config, settings, setDebugMessage, handleSlashCommand, shellModeActive, getPreferredEditor, onAuthError, performMemoryRefresh, modelSwitchedFromQuotaError, setModelSwitchedFromQuotaError, onCancelSubmit, setEmbeddedShellFocused, terminalWidth, terminalHeight, embeddedShellFocused);
547
+ const { streamingState, submitQuery, initError, pendingHistoryItems: pendingGeminiHistoryItems, thought, cancelOngoingRequest, pendingToolCalls, handleApprovalModeChange, activePtyId, loopDetectionConfirmationRequest, lastOutputTime, retryStatus, } = useGeminiStream(config.getGeminiClient(), historyManager.history, historyManager.addItem, config, settings, setDebugMessage, handleSlashCommand, shellModeActive, getPreferredEditor, onAuthError, performMemoryRefresh, modelSwitchedFromQuotaError, setModelSwitchedFromQuotaError, onCancelSubmit, setEmbeddedShellFocused, terminalWidth, terminalHeight, embeddedShellFocused);
520
548
  const lastOutputTimeRef = useRef(0);
521
549
  useEffect(() => {
522
550
  lastOutputTimeRef.current = lastOutputTime;
523
551
  }, [lastOutputTime]);
524
- const isShellAwaitingFocus = !!activePtyId &&
525
- !embeddedShellFocused &&
526
- config.isInteractiveShellEnabled();
527
- const showShellActionRequired = useInactivityTimer(isShellAwaitingFocus, lastOutputTime, SHELL_ACTION_REQUIRED_TITLE_DELAY_MS);
552
+ const { shouldShowFocusHint, inactivityStatus } = useShellInactivityStatus({
553
+ activePtyId,
554
+ lastOutputTime,
555
+ streamingState,
556
+ pendingToolCalls,
557
+ embeddedShellFocused,
558
+ isInteractiveShellEnabled: config.isInteractiveShellEnabled(),
559
+ });
560
+ const shouldShowActionRequiredTitle = inactivityStatus === 'action_required';
561
+ const shouldShowSilentWorkingTitle = inactivityStatus === 'silent_working';
528
562
  // Auto-accept indicator
529
- const showAutoAcceptIndicator = useAutoAcceptIndicator({
563
+ const showApprovalModeIndicator = useApprovalModeIndicator({
530
564
  config,
531
565
  addItem: historyManager.addItem,
532
566
  onApprovalModeChange: handleApprovalModeChange,
@@ -544,8 +578,11 @@ Logging in with Google... Restarting Gemini CLI to continue.
544
578
  ...pendingSlashCommandHistoryItems,
545
579
  ...pendingGeminiHistoryItems,
546
580
  ];
581
+ if (isToolAwaitingConfirmation(pendingHistoryItems)) {
582
+ return; // Don't clear - user may be composing a follow-up message
583
+ }
547
584
  if (isToolExecuting(pendingHistoryItems)) {
548
- buffer.setText(''); // Just clear the prompt
585
+ buffer.setText(''); // Clear for Ctrl+C cancellation
549
586
  return;
550
587
  }
551
588
  const lastUserMessage = inputHistory.at(-1);
@@ -602,7 +639,8 @@ Logging in with Google... Restarting Gemini CLI to continue.
602
639
  * - Tool confirmations (WaitingForConfirmation state)
603
640
  * - Any future streaming states not explicitly allowed
604
641
  */
605
- const isInputActive = !initError &&
642
+ const isInputActive = isConfigInitialized &&
643
+ !initError &&
606
644
  !isProcessing &&
607
645
  !!slashCommands &&
608
646
  (streamingState === StreamingState.Idle ||
@@ -836,7 +874,11 @@ Logging in with Google... Restarting Gemini CLI to continue.
836
874
  }
837
875
  setIdePromptAnswered(true);
838
876
  }, [handleSlashCommand, settings]);
839
- const { elapsedTime, currentLoadingPhrase } = useLoadingIndicator(streamingState, settings.merged.ui.customWittyPhrases, !!activePtyId && !embeddedShellFocused, lastOutputTime, retryStatus);
877
+ const { elapsedTime, currentLoadingPhrase } = useLoadingIndicator({
878
+ streamingState,
879
+ shouldShowFocusHint,
880
+ retryStatus,
881
+ });
840
882
  const handleGlobalKeypress = useCallback((key) => {
841
883
  if (copyModeEnabled) {
842
884
  setCopyModeEnabled(false);
@@ -953,7 +995,8 @@ Logging in with Google... Restarting Gemini CLI to continue.
953
995
  const paddedTitle = computeTerminalTitle({
954
996
  streamingState,
955
997
  thoughtSubject: thought?.subject,
956
- isConfirming: !!confirmationRequest || showShellActionRequired,
998
+ isConfirming: !!confirmationRequest || shouldShowActionRequiredTitle,
999
+ isSilentWorking: shouldShowSilentWorkingTitle,
957
1000
  folderName: basename(config.getTargetDir()),
958
1001
  showThoughts: !!settings.merged.ui.showStatusInTitle,
959
1002
  useDynamicTitle: settings.merged.ui.dynamicWindowTitle,
@@ -968,7 +1011,8 @@ Logging in with Google... Restarting Gemini CLI to continue.
968
1011
  streamingState,
969
1012
  thought,
970
1013
  confirmationRequest,
971
- showShellActionRequired,
1014
+ shouldShowActionRequiredTitle,
1015
+ shouldShowSilentWorkingTitle,
972
1016
  settings.merged.ui.showStatusInTitle,
973
1017
  settings.merged.ui.dynamicWindowTitle,
974
1018
  settings.merged.ui.hideWindowTitle,
@@ -1029,6 +1073,7 @@ Logging in with Google... Restarting Gemini CLI to continue.
1029
1073
  isThemeDialogOpen ||
1030
1074
  isSettingsDialogOpen ||
1031
1075
  isModelDialogOpen ||
1076
+ isAgentConfigDialogOpen ||
1032
1077
  isPermissionsDialogOpen ||
1033
1078
  isAuthenticating ||
1034
1079
  isAuthDialogOpen ||
@@ -1041,6 +1086,9 @@ Logging in with Google... Restarting Gemini CLI to continue.
1041
1086
  isAuthDialogOpen ||
1042
1087
  authState === AuthState.AwaitingApiKeyInput;
1043
1088
  const pendingHistoryItems = useMemo(() => [...pendingSlashCommandHistoryItems, ...pendingGeminiHistoryItems], [pendingSlashCommandHistoryItems, pendingGeminiHistoryItems]);
1089
+ const allToolCalls = useMemo(() => pendingHistoryItems
1090
+ .filter((item) => item.type === 'tool_group')
1091
+ .flatMap((item) => item.tools), [pendingHistoryItems]);
1044
1092
  const [geminiMdFileCount, setGeminiMdFileCount] = useState(config.getGeminiMdFileCount());
1045
1093
  useEffect(() => {
1046
1094
  const handleMemoryChanged = (result) => {
@@ -1095,6 +1143,10 @@ Logging in with Google... Restarting Gemini CLI to continue.
1095
1143
  isSettingsDialogOpen,
1096
1144
  isSessionBrowserOpen,
1097
1145
  isModelDialogOpen,
1146
+ isAgentConfigDialogOpen,
1147
+ selectedAgentName,
1148
+ selectedAgentDisplayName,
1149
+ selectedAgentDefinition,
1098
1150
  isPermissionsDialogOpen,
1099
1151
  permissionsDialogProps,
1100
1152
  slashCommands,
@@ -1133,7 +1185,7 @@ Logging in with Google... Restarting Gemini CLI to continue.
1133
1185
  activeHooks,
1134
1186
  messageQueue,
1135
1187
  queueErrorMessage,
1136
- showAutoAcceptIndicator,
1188
+ showApprovalModeIndicator,
1137
1189
  currentModel,
1138
1190
  userTier,
1139
1191
  proQuotaRequest,
@@ -1186,6 +1238,10 @@ Logging in with Google... Restarting Gemini CLI to continue.
1186
1238
  isSettingsDialogOpen,
1187
1239
  isSessionBrowserOpen,
1188
1240
  isModelDialogOpen,
1241
+ isAgentConfigDialogOpen,
1242
+ selectedAgentName,
1243
+ selectedAgentDisplayName,
1244
+ selectedAgentDefinition,
1189
1245
  isPermissionsDialogOpen,
1190
1246
  permissionsDialogProps,
1191
1247
  slashCommands,
@@ -1224,7 +1280,7 @@ Logging in with Google... Restarting Gemini CLI to continue.
1224
1280
  activeHooks,
1225
1281
  messageQueue,
1226
1282
  queueErrorMessage,
1227
- showAutoAcceptIndicator,
1283
+ showApprovalModeIndicator,
1228
1284
  userTier,
1229
1285
  proQuotaRequest,
1230
1286
  validationRequest,
@@ -1278,6 +1334,8 @@ Logging in with Google... Restarting Gemini CLI to continue.
1278
1334
  exitPrivacyNotice,
1279
1335
  closeSettingsDialog,
1280
1336
  closeModelDialog,
1337
+ openAgentConfigDialog,
1338
+ closeAgentConfigDialog,
1281
1339
  openPermissionsDialog,
1282
1340
  closePermissionsDialog,
1283
1341
  setShellModeActive,
@@ -1318,6 +1376,8 @@ Logging in with Google... Restarting Gemini CLI to continue.
1318
1376
  exitPrivacyNotice,
1319
1377
  closeSettingsDialog,
1320
1378
  closeModelDialog,
1379
+ openAgentConfigDialog,
1380
+ closeAgentConfigDialog,
1321
1381
  openPermissionsDialog,
1322
1382
  closePermissionsDialog,
1323
1383
  setShellModeActive,
@@ -1352,6 +1412,6 @@ Logging in with Google... Restarting Gemini CLI to continue.
1352
1412
  return (_jsx(UIStateContext.Provider, { value: uiState, children: _jsx(UIActionsContext.Provider, { value: uiActions, children: _jsx(ConfigContext.Provider, { value: config, children: _jsx(AppContext.Provider, { value: {
1353
1413
  version: props.version,
1354
1414
  startupWarnings: props.startupWarnings || [],
1355
- }, children: _jsx(ShellFocusContext.Provider, { value: isFocused, children: _jsx(App, {}) }) }) }) }) }));
1415
+ }, children: _jsx(ToolActionsProvider, { config: config, toolCalls: allToolCalls, children: _jsx(ShellFocusContext.Provider, { value: isFocused, children: _jsx(App, {}) }) }) }) }) }) }));
1356
1416
  };
1357
1417
  //# sourceMappingURL=AppContainer.js.map