@google/gemini-cli 0.25.0-preview.0 → 0.26.0-nightly.20260119.20580d754

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 (319) hide show
  1. package/dist/google-gemini-cli-0.26.0-nightly.20260115.6cb3ae4e0.tgz +0 -0
  2. package/dist/package.json +4 -3
  3. package/dist/src/commands/extensions/configure.js +8 -1
  4. package/dist/src/commands/extensions/configure.js.map +1 -1
  5. package/dist/src/commands/hooks/migrate.js +1 -1
  6. package/dist/src/commands/hooks/migrate.js.map +1 -1
  7. package/dist/src/commands/mcp/list.js +2 -2
  8. package/dist/src/commands/mcp/list.js.map +1 -1
  9. package/dist/src/commands/mcp/list.test.js +25 -8
  10. package/dist/src/commands/mcp/list.test.js.map +1 -1
  11. package/dist/src/commands/skills/disable.js +6 -4
  12. package/dist/src/commands/skills/disable.js.map +1 -1
  13. package/dist/src/commands/skills/disable.test.js +16 -0
  14. package/dist/src/commands/skills/disable.test.js.map +1 -1
  15. package/dist/src/commands/skills/enable.test.js +3 -3
  16. package/dist/src/commands/skills/enable.test.js.map +1 -1
  17. package/dist/src/commands/skills/install.d.ts +1 -0
  18. package/dist/src/commands/skills/install.js +17 -2
  19. package/dist/src/commands/skills/install.js.map +1 -1
  20. package/dist/src/commands/skills/install.test.js +43 -5
  21. package/dist/src/commands/skills/install.test.js.map +1 -1
  22. package/dist/src/config/config.d.ts +3 -3
  23. package/dist/src/config/config.integration.test.js +3 -2
  24. package/dist/src/config/config.integration.test.js.map +1 -1
  25. package/dist/src/config/config.js +37 -26
  26. package/dist/src/config/config.js.map +1 -1
  27. package/dist/src/config/config.test.js +361 -280
  28. package/dist/src/config/config.test.js.map +1 -1
  29. package/dist/src/config/extension-manager-agents.test.js +3 -4
  30. package/dist/src/config/extension-manager-agents.test.js.map +1 -1
  31. package/dist/src/config/extension-manager-scope.test.js +13 -15
  32. package/dist/src/config/extension-manager-scope.test.js.map +1 -1
  33. package/dist/src/config/extension-manager-skills.test.js +5 -7
  34. package/dist/src/config/extension-manager-skills.test.js.map +1 -1
  35. package/dist/src/config/extension-manager.d.ts +2 -2
  36. package/dist/src/config/extension-manager.js +16 -11
  37. package/dist/src/config/extension-manager.js.map +1 -1
  38. package/dist/src/config/extension.test.js +13 -21
  39. package/dist/src/config/extension.test.js.map +1 -1
  40. package/dist/src/config/extensions/consent.d.ts +4 -0
  41. package/dist/src/config/extensions/consent.js +40 -16
  42. package/dist/src/config/extensions/consent.js.map +1 -1
  43. package/dist/src/config/extensions/consent.test.js +31 -7
  44. package/dist/src/config/extensions/consent.test.js.map +1 -1
  45. package/dist/src/config/extensions/extensionUpdates.test.js +5 -2
  46. package/dist/src/config/extensions/extensionUpdates.test.js.map +1 -1
  47. package/dist/src/config/keyBindings.d.ts +58 -59
  48. package/dist/src/config/keyBindings.js +131 -135
  49. package/dist/src/config/keyBindings.js.map +1 -1
  50. package/dist/src/config/keyBindings.test.js +3 -8
  51. package/dist/src/config/keyBindings.test.js.map +1 -1
  52. package/dist/src/config/policy-engine.integration.test.js +15 -0
  53. package/dist/src/config/policy-engine.integration.test.js.map +1 -1
  54. package/dist/src/config/settings.d.ts +24 -6
  55. package/dist/src/config/settings.js +150 -6
  56. package/dist/src/config/settings.js.map +1 -1
  57. package/dist/src/config/settings.test.js +258 -3
  58. package/dist/src/config/settings.test.js.map +1 -1
  59. package/dist/src/config/settingsSchema.d.ts +53 -20
  60. package/dist/src/config/settingsSchema.js +48 -22
  61. package/dist/src/config/settingsSchema.js.map +1 -1
  62. package/dist/src/config/settingsSchema.test.js +22 -2
  63. package/dist/src/config/settingsSchema.test.js.map +1 -1
  64. package/dist/src/config/skills-backward-compatibility.test.js +99 -0
  65. package/dist/src/config/skills-backward-compatibility.test.js.map +1 -0
  66. package/dist/src/core/initializer.js +2 -2
  67. package/dist/src/core/initializer.js.map +1 -1
  68. package/dist/src/core/initializer.test.js.map +1 -1
  69. package/dist/src/core/theme.js +1 -1
  70. package/dist/src/core/theme.js.map +1 -1
  71. package/dist/src/core/theme.test.js.map +1 -1
  72. package/dist/src/gemini.js +51 -19
  73. package/dist/src/gemini.js.map +1 -1
  74. package/dist/src/gemini.test.js +48 -61
  75. package/dist/src/gemini.test.js.map +1 -1
  76. package/dist/src/generated/git-commit.d.ts +2 -2
  77. package/dist/src/generated/git-commit.js +2 -2
  78. package/dist/src/generated/git-commit.js.map +1 -1
  79. package/dist/src/nonInteractiveCli.d.ts +1 -2
  80. package/dist/src/nonInteractiveCli.js +1 -16
  81. package/dist/src/nonInteractiveCli.js.map +1 -1
  82. package/dist/src/nonInteractiveCli.test.js +0 -39
  83. package/dist/src/nonInteractiveCli.test.js.map +1 -1
  84. package/dist/src/test-utils/mockCommandContext.js +7 -1
  85. package/dist/src/test-utils/mockCommandContext.js.map +1 -1
  86. package/dist/src/test-utils/render.js +2 -0
  87. package/dist/src/test-utils/render.js.map +1 -1
  88. package/dist/src/ui/App.test.js +2 -2
  89. package/dist/src/ui/App.test.js.map +1 -1
  90. package/dist/src/ui/AppContainer.js +41 -35
  91. package/dist/src/ui/AppContainer.js.map +1 -1
  92. package/dist/src/ui/AppContainer.test.js +33 -22
  93. package/dist/src/ui/AppContainer.test.js.map +1 -1
  94. package/dist/src/ui/auth/ApiAuthDialog.test.js +0 -1
  95. package/dist/src/ui/auth/ApiAuthDialog.test.js.map +1 -1
  96. package/dist/src/ui/auth/AuthDialog.js +5 -5
  97. package/dist/src/ui/auth/AuthDialog.js.map +1 -1
  98. package/dist/src/ui/auth/AuthDialog.test.js.map +1 -1
  99. package/dist/src/ui/auth/LoginWithGoogleRestartDialog.test.js +0 -2
  100. package/dist/src/ui/auth/LoginWithGoogleRestartDialog.test.js.map +1 -1
  101. package/dist/src/ui/auth/useAuth.js +3 -3
  102. package/dist/src/ui/auth/useAuth.js.map +1 -1
  103. package/dist/src/ui/commands/aboutCommand.js +1 -1
  104. package/dist/src/ui/commands/aboutCommand.js.map +1 -1
  105. package/dist/src/ui/commands/agentsCommand.js +158 -1
  106. package/dist/src/ui/commands/agentsCommand.js.map +1 -1
  107. package/dist/src/ui/commands/agentsCommand.test.js +140 -1
  108. package/dist/src/ui/commands/agentsCommand.test.js.map +1 -1
  109. package/dist/src/ui/commands/hooksCommand.js +23 -23
  110. package/dist/src/ui/commands/hooksCommand.js.map +1 -1
  111. package/dist/src/ui/commands/hooksCommand.test.js +12 -15
  112. package/dist/src/ui/commands/hooksCommand.test.js.map +1 -1
  113. package/dist/src/ui/commands/policiesCommand.js +3 -0
  114. package/dist/src/ui/commands/policiesCommand.js.map +1 -1
  115. package/dist/src/ui/commands/policiesCommand.test.js +2 -1
  116. package/dist/src/ui/commands/policiesCommand.test.js.map +1 -1
  117. package/dist/src/ui/commands/skillsCommand.test.js +14 -7
  118. package/dist/src/ui/commands/skillsCommand.test.js.map +1 -1
  119. package/dist/src/ui/components/AdminSettingsChangedDialog.d.ts +6 -0
  120. package/dist/src/ui/components/AdminSettingsChangedDialog.js +22 -0
  121. package/dist/src/ui/components/AdminSettingsChangedDialog.js.map +1 -0
  122. package/dist/src/ui/components/AdminSettingsChangedDialog.test.d.ts +6 -0
  123. package/dist/src/ui/components/AdminSettingsChangedDialog.test.js +43 -0
  124. package/dist/src/ui/components/AdminSettingsChangedDialog.test.js.map +1 -0
  125. package/dist/src/ui/components/AppHeader.js +1 -1
  126. package/dist/src/ui/components/AppHeader.js.map +1 -1
  127. package/dist/src/ui/components/Composer.js +4 -6
  128. package/dist/src/ui/components/Composer.js.map +1 -1
  129. package/dist/src/ui/components/Composer.test.js +17 -9
  130. package/dist/src/ui/components/Composer.test.js.map +1 -1
  131. package/dist/src/ui/components/DialogManager.js +4 -4
  132. package/dist/src/ui/components/DialogManager.js.map +1 -1
  133. package/dist/src/ui/components/DialogManager.test.js +0 -14
  134. package/dist/src/ui/components/DialogManager.test.js.map +1 -1
  135. package/dist/src/ui/components/EditorSettingsDialog.js +3 -3
  136. package/dist/src/ui/components/EditorSettingsDialog.js.map +1 -1
  137. package/dist/src/ui/components/Footer.js +5 -5
  138. package/dist/src/ui/components/Footer.js.map +1 -1
  139. package/dist/src/ui/components/Help.js +2 -1
  140. package/dist/src/ui/components/Help.js.map +1 -1
  141. package/dist/src/ui/components/HistoryItemDisplay.test.js +1 -0
  142. package/dist/src/ui/components/HistoryItemDisplay.test.js.map +1 -1
  143. package/dist/src/ui/components/InputPrompt.js +6 -9
  144. package/dist/src/ui/components/InputPrompt.js.map +1 -1
  145. package/dist/src/ui/components/InputPrompt.test.js +8 -14
  146. package/dist/src/ui/components/InputPrompt.test.js.map +1 -1
  147. package/dist/src/ui/components/MultiFolderTrustDialog.test.js +0 -1
  148. package/dist/src/ui/components/MultiFolderTrustDialog.test.js.map +1 -1
  149. package/dist/src/ui/components/RewindConfirmation.d.ts +21 -0
  150. package/dist/src/ui/components/RewindConfirmation.js +63 -0
  151. package/dist/src/ui/components/RewindConfirmation.js.map +1 -0
  152. package/dist/src/ui/components/RewindConfirmation.test.d.ts +6 -0
  153. package/dist/src/ui/components/RewindConfirmation.test.js +53 -0
  154. package/dist/src/ui/components/RewindConfirmation.test.js.map +1 -0
  155. package/dist/src/ui/components/RewindViewer.d.ts +15 -0
  156. package/dist/src/ui/components/RewindViewer.js +79 -0
  157. package/dist/src/ui/components/RewindViewer.js.map +1 -0
  158. package/dist/src/ui/components/RewindViewer.test.d.ts +6 -0
  159. package/dist/src/ui/components/RewindViewer.test.js +239 -0
  160. package/dist/src/ui/components/RewindViewer.test.js.map +1 -0
  161. package/dist/src/ui/components/SessionBrowser.test.js +0 -1
  162. package/dist/src/ui/components/SessionBrowser.test.js.map +1 -1
  163. package/dist/src/ui/components/SettingsDialog.js +4 -4
  164. package/dist/src/ui/components/SettingsDialog.js.map +1 -1
  165. package/dist/src/ui/components/SettingsDialog.test.js +14 -14
  166. package/dist/src/ui/components/SettingsDialog.test.js.map +1 -1
  167. package/dist/src/ui/components/StatusDisplay.js +3 -4
  168. package/dist/src/ui/components/StatusDisplay.js.map +1 -1
  169. package/dist/src/ui/components/ThemeDialog.js +2 -2
  170. package/dist/src/ui/components/ThemeDialog.js.map +1 -1
  171. package/dist/src/ui/components/messages/ToolConfirmationMessage.js +8 -3
  172. package/dist/src/ui/components/messages/ToolConfirmationMessage.js.map +1 -1
  173. package/dist/src/ui/components/messages/ToolConfirmationMessage.test.js +18 -0
  174. package/dist/src/ui/components/messages/ToolConfirmationMessage.test.js.map +1 -1
  175. package/dist/src/ui/components/shared/TextInput.test.js +0 -8
  176. package/dist/src/ui/components/shared/TextInput.test.js.map +1 -1
  177. package/dist/src/ui/components/shared/performance.test.d.ts +1 -0
  178. package/dist/src/ui/components/shared/performance.test.js +67 -0
  179. package/dist/src/ui/components/shared/performance.test.js.map +1 -0
  180. package/dist/src/ui/components/shared/text-buffer.d.ts +1 -0
  181. package/dist/src/ui/components/shared/text-buffer.js +80 -54
  182. package/dist/src/ui/components/shared/text-buffer.js.map +1 -1
  183. package/dist/src/ui/components/shared/text-buffer.test.js +97 -21
  184. package/dist/src/ui/components/shared/text-buffer.test.js.map +1 -1
  185. package/dist/src/ui/constants/tips.js +150 -150
  186. package/dist/src/ui/constants/tips.js.map +1 -1
  187. package/dist/src/ui/constants/wittyPhrases.js +118 -118
  188. package/dist/src/ui/constants/wittyPhrases.js.map +1 -1
  189. package/dist/src/ui/constants.d.ts +2 -0
  190. package/dist/src/ui/constants.js +2 -0
  191. package/dist/src/ui/constants.js.map +1 -1
  192. package/dist/src/ui/contexts/KeypressContext.d.ts +0 -1
  193. package/dist/src/ui/contexts/KeypressContext.js +2 -6
  194. package/dist/src/ui/contexts/KeypressContext.js.map +1 -1
  195. package/dist/src/ui/contexts/KeypressContext.test.js +2 -10
  196. package/dist/src/ui/contexts/KeypressContext.test.js.map +1 -1
  197. package/dist/src/ui/contexts/UIActionsContext.d.ts +1 -0
  198. package/dist/src/ui/contexts/UIActionsContext.js.map +1 -1
  199. package/dist/src/ui/contexts/UIStateContext.d.ts +2 -2
  200. package/dist/src/ui/contexts/UIStateContext.js.map +1 -1
  201. package/dist/src/ui/contexts/VimModeContext.js +3 -3
  202. package/dist/src/ui/contexts/VimModeContext.js.map +1 -1
  203. package/dist/src/ui/hooks/slashCommandProcessor.d.ts +0 -5
  204. package/dist/src/ui/hooks/slashCommandProcessor.js +42 -11
  205. package/dist/src/ui/hooks/slashCommandProcessor.js.map +1 -1
  206. package/dist/src/ui/hooks/slashCommandProcessor.test.js +1 -144
  207. package/dist/src/ui/hooks/slashCommandProcessor.test.js.map +1 -1
  208. package/dist/src/ui/hooks/useAlternateBuffer.js +1 -1
  209. package/dist/src/ui/hooks/useAlternateBuffer.js.map +1 -1
  210. package/dist/src/ui/hooks/useAtCompletion.js +21 -1
  211. package/dist/src/ui/hooks/useAtCompletion.js.map +1 -1
  212. package/dist/src/ui/hooks/useAtCompletion.test.js +4 -4
  213. package/dist/src/ui/hooks/useAtCompletion.test.js.map +1 -1
  214. package/dist/src/ui/hooks/useAtCompletion_agents.test.js +2 -0
  215. package/dist/src/ui/hooks/useAtCompletion_agents.test.js.map +1 -1
  216. package/dist/src/ui/hooks/useFolderTrust.js +1 -1
  217. package/dist/src/ui/hooks/useFolderTrust.js.map +1 -1
  218. package/dist/src/ui/hooks/useGeminiStream.js +17 -5
  219. package/dist/src/ui/hooks/useGeminiStream.js.map +1 -1
  220. package/dist/src/ui/hooks/useGeminiStream.test.js +103 -1
  221. package/dist/src/ui/hooks/useGeminiStream.test.js.map +1 -1
  222. package/dist/src/ui/hooks/useKeypress.test.js +11 -13
  223. package/dist/src/ui/hooks/useKeypress.test.js.map +1 -1
  224. package/dist/src/ui/hooks/usePermissionsModifyTrust.js +1 -1
  225. package/dist/src/ui/hooks/usePermissionsModifyTrust.js.map +1 -1
  226. package/dist/src/ui/hooks/useReactToolScheduler.d.ts +1 -1
  227. package/dist/src/ui/hooks/useReactToolScheduler.js +1 -1
  228. package/dist/src/ui/hooks/useReactToolScheduler.js.map +1 -1
  229. package/dist/src/ui/hooks/useSelectionList.test.js +0 -3
  230. package/dist/src/ui/hooks/useSelectionList.test.js.map +1 -1
  231. package/dist/src/ui/hooks/useShowMemoryCommand.js +1 -1
  232. package/dist/src/ui/hooks/useShowMemoryCommand.js.map +1 -1
  233. package/dist/src/ui/hooks/useThemeCommand.js +4 -4
  234. package/dist/src/ui/hooks/useThemeCommand.js.map +1 -1
  235. package/dist/src/ui/hooks/useToolScheduler.test.js +62 -46
  236. package/dist/src/ui/hooks/useToolScheduler.test.js.map +1 -1
  237. package/dist/src/ui/hooks/vim.js +0 -1
  238. package/dist/src/ui/hooks/vim.js.map +1 -1
  239. package/dist/src/ui/hooks/vim.test.js +0 -1
  240. package/dist/src/ui/hooks/vim.test.js.map +1 -1
  241. package/dist/src/ui/keyMatchers.js +1 -16
  242. package/dist/src/ui/keyMatchers.js.map +1 -1
  243. package/dist/src/ui/keyMatchers.test.js +2 -14
  244. package/dist/src/ui/keyMatchers.test.js.map +1 -1
  245. package/dist/src/ui/types.d.ts +1 -5
  246. package/dist/src/ui/types.js.map +1 -1
  247. package/dist/src/ui/utils/CodeColorizer.js +1 -1
  248. package/dist/src/ui/utils/CodeColorizer.js.map +1 -1
  249. package/dist/src/ui/utils/commandUtils.js +31 -6
  250. package/dist/src/ui/utils/commandUtils.js.map +1 -1
  251. package/dist/src/ui/utils/commandUtils.test.js +71 -10
  252. package/dist/src/ui/utils/commandUtils.test.js.map +1 -1
  253. package/dist/src/ui/utils/formatters.d.ts +9 -0
  254. package/dist/src/ui/utils/formatters.js +26 -0
  255. package/dist/src/ui/utils/formatters.js.map +1 -1
  256. package/dist/src/ui/utils/formatters.test.js +70 -2
  257. package/dist/src/ui/utils/formatters.test.js.map +1 -1
  258. package/dist/src/ui/utils/highlight.js +18 -1
  259. package/dist/src/ui/utils/highlight.js.map +1 -1
  260. package/dist/src/ui/utils/highlight.test.js +2 -2
  261. package/dist/src/ui/utils/highlight.test.js.map +1 -1
  262. package/dist/src/ui/utils/textUtils.d.ts +0 -1
  263. package/dist/src/ui/utils/textUtils.js +17 -12
  264. package/dist/src/ui/utils/textUtils.js.map +1 -1
  265. package/dist/src/ui/utils/textUtils.test.js +1 -0
  266. package/dist/src/ui/utils/textUtils.test.js.map +1 -1
  267. package/dist/src/ui/utils/ui-sizing.js +1 -1
  268. package/dist/src/ui/utils/ui-sizing.js.map +1 -1
  269. package/dist/src/ui/utils/updateCheck.js +1 -1
  270. package/dist/src/ui/utils/updateCheck.js.map +1 -1
  271. package/dist/src/ui/utils/updateCheck.test.js +3 -3
  272. package/dist/src/ui/utils/updateCheck.test.js.map +1 -1
  273. package/dist/src/utils/agentSettings.d.ts +31 -0
  274. package/dist/src/utils/agentSettings.js +103 -0
  275. package/dist/src/utils/agentSettings.js.map +1 -0
  276. package/dist/src/utils/agentUtils.d.ts +15 -0
  277. package/dist/src/utils/agentUtils.js +50 -0
  278. package/dist/src/utils/agentUtils.js.map +1 -0
  279. package/dist/src/utils/agentUtils.test.d.ts +6 -0
  280. package/dist/src/utils/agentUtils.test.js +121 -0
  281. package/dist/src/utils/agentUtils.test.js.map +1 -0
  282. package/dist/src/utils/handleAutoUpdate.js +4 -4
  283. package/dist/src/utils/handleAutoUpdate.js.map +1 -1
  284. package/dist/src/utils/handleAutoUpdate.test.js +8 -4
  285. package/dist/src/utils/handleAutoUpdate.test.js.map +1 -1
  286. package/dist/src/utils/installationInfo.d.ts +1 -1
  287. package/dist/src/utils/installationInfo.js +13 -13
  288. package/dist/src/utils/installationInfo.js.map +1 -1
  289. package/dist/src/utils/installationInfo.test.js +28 -20
  290. package/dist/src/utils/installationInfo.test.js.map +1 -1
  291. package/dist/src/utils/relaunch.d.ts +2 -1
  292. package/dist/src/utils/relaunch.js +6 -3
  293. package/dist/src/utils/relaunch.js.map +1 -1
  294. package/dist/src/utils/settingsUtils.d.ts +7 -0
  295. package/dist/src/utils/settingsUtils.js +17 -0
  296. package/dist/src/utils/settingsUtils.js.map +1 -1
  297. package/dist/src/utils/settingsUtils.test.js +33 -33
  298. package/dist/src/utils/settingsUtils.test.js.map +1 -1
  299. package/dist/src/utils/skillUtils.d.ts +2 -1
  300. package/dist/src/utils/skillUtils.js +58 -56
  301. package/dist/src/utils/skillUtils.js.map +1 -1
  302. package/dist/src/utils/skillUtils.test.js +13 -0
  303. package/dist/src/utils/skillUtils.test.js.map +1 -1
  304. package/dist/src/utils/terminalTheme.js +4 -4
  305. package/dist/src/utils/terminalTheme.js.map +1 -1
  306. package/dist/src/validateNonInterActiveAuth.js +1 -1
  307. package/dist/src/validateNonInterActiveAuth.js.map +1 -1
  308. package/dist/src/validateNonInterActiveAuth.test.js +2 -4
  309. package/dist/src/validateNonInterActiveAuth.test.js.map +1 -1
  310. package/dist/src/zed-integration/zedIntegration.js +8 -3
  311. package/dist/src/zed-integration/zedIntegration.js.map +1 -1
  312. package/dist/tsconfig.tsbuildinfo +1 -1
  313. package/package.json +5 -4
  314. package/dist/src/ui/components/ShellConfirmationDialog.d.ts +0 -15
  315. package/dist/src/ui/components/ShellConfirmationDialog.js +0 -49
  316. package/dist/src/ui/components/ShellConfirmationDialog.js.map +0 -1
  317. package/dist/src/ui/components/ShellConfirmationDialog.test.js +0 -40
  318. package/dist/src/ui/components/ShellConfirmationDialog.test.js.map +0 -1
  319. /package/dist/src/{ui/components/ShellConfirmationDialog.test.d.ts → config/skills-backward-compatibility.test.d.ts} +0 -0
@@ -1 +1 @@
1
- {"version":3,"file":"TextInput.test.js","sourceRoot":"","sources":["../../../../../src/ui/components/shared/TextInput.test.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"TextInput.test.js","sourceRoot":"","sources":["../../../../../src/ui/components/shared/TextInput.test.tsx"],"names":[],"mappings":"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"}
@@ -0,0 +1,67 @@
1
+ /**
2
+ * @license
3
+ * Copyright 2026 Google LLC
4
+ * SPDX-License-Identifier: Apache-2.0
5
+ */
6
+ import { describe, it, expect, afterEach, vi } from 'vitest';
7
+ import { act } from 'react';
8
+ import { renderHook } from '../../../test-utils/render.js';
9
+ import { useTextBuffer } from './text-buffer.js';
10
+ import { parseInputForHighlighting } from '../../utils/highlight.js';
11
+ describe('text-buffer performance', () => {
12
+ afterEach(() => {
13
+ vi.restoreAllMocks();
14
+ });
15
+ it('should handle pasting large amounts of text efficiently', () => {
16
+ const viewport = { width: 80, height: 24 };
17
+ const { result } = renderHook(() => useTextBuffer({
18
+ viewport,
19
+ isValidPath: () => false,
20
+ }));
21
+ const lines = 5000;
22
+ const largeText = Array.from({ length: lines }, (_, i) => `Line ${i}: some sample text with many @path/to/image${i}.png and maybe some more @path/to/another/image.png references to trigger regex. This line is much longer than the previous one to test wrapping.`).join('\n');
23
+ const start = Date.now();
24
+ act(() => {
25
+ result.current.insert(largeText, { paste: true });
26
+ });
27
+ const end = Date.now();
28
+ const duration = end - start;
29
+ expect(duration).toBeLessThan(5000);
30
+ });
31
+ it('should handle character-by-character insertion in a large buffer efficiently', () => {
32
+ const lines = 5000;
33
+ const initialText = Array.from({ length: lines }, (_, i) => `Line ${i}: some sample text with @path/to/image.png`).join('\n');
34
+ const viewport = { width: 80, height: 24 };
35
+ const { result } = renderHook(() => useTextBuffer({
36
+ initialText,
37
+ viewport,
38
+ isValidPath: () => false,
39
+ }));
40
+ const start = Date.now();
41
+ const charsToInsert = 100;
42
+ for (let i = 0; i < charsToInsert; i++) {
43
+ act(() => {
44
+ result.current.insert('a');
45
+ });
46
+ }
47
+ const end = Date.now();
48
+ const duration = end - start;
49
+ expect(duration).toBeLessThan(5000);
50
+ });
51
+ it('should highlight many lines efficiently', () => {
52
+ const lines = 5000;
53
+ const sampleLines = Array.from({ length: lines }, (_, i) => `Line ${i}: some sample text with @path/to/image${i}.png /command and more @file.txt`);
54
+ const start = Date.now();
55
+ for (let i = 0; i < 100; i++) {
56
+ // Simulate 100 renders
57
+ for (const line of sampleLines.slice(0, 20)) {
58
+ // 20 visible lines
59
+ parseInputForHighlighting(line, 1, []);
60
+ }
61
+ }
62
+ const end = Date.now();
63
+ const duration = end - start;
64
+ expect(duration).toBeLessThan(500);
65
+ });
66
+ });
67
+ //# sourceMappingURL=performance.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"performance.test.js","sourceRoot":"","sources":["../../../../../src/ui/components/shared/performance.test.ts"],"names":[],"mappings":"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"}
@@ -322,6 +322,7 @@ export interface TextBuffer {
322
322
  visualToTransformedMap: number[];
323
323
  /** Cached transformations per logical line */
324
324
  transformationsByLine: Transformation[][];
325
+ visualLayout: VisualLayout;
325
326
  /**
326
327
  * Replaces the entire buffer content with the provided text.
327
328
  * The operation is undoable.
@@ -9,11 +9,13 @@ import os from 'node:os';
9
9
  import pathMod from 'node:path';
10
10
  import * as path from 'node:path';
11
11
  import { useState, useCallback, useEffect, useMemo, useReducer } from 'react';
12
+ import { LRUCache } from 'mnemonist';
12
13
  import { coreEvents, CoreEvent, debugLogger, unescapePath, getEditorCommand, isGuiEditor, } from '@google/gemini-cli-core';
13
14
  import { toCodePoints, cpLen, cpSlice, stripUnsafeCharacters, getCachedStringWidth, } from '../../utils/textUtils.js';
14
15
  import { parsePastedPaths } from '../../utils/clipboardUtils.js';
15
16
  import { keyMatchers, Command } from '../../keyMatchers.js';
16
17
  import { handleVimAction } from './vim-buffer-actions.js';
18
+ import { LRU_BUFFER_PERF_CACHE_LIMIT } from '../../constants.js';
17
19
  // Helper functions for line-based word navigation
18
20
  export const isWordCharStrict = (char) => /[\w\p{L}\p{N}]/u.test(char); // Matches a single character that is any Unicode letter, any Unicode number, or an underscore
19
21
  export const isWhitespace = (char) => /\s/.test(char);
@@ -504,7 +506,12 @@ export function getTransformedImagePath(filePath) {
504
506
  : baseName;
505
507
  return `[Image ${truncatedBase}${extension}]`;
506
508
  }
509
+ const transformationsCache = new LRUCache(LRU_BUFFER_PERF_CACHE_LIMIT);
507
510
  export function calculateTransformationsForLine(line) {
511
+ const cached = transformationsCache.get(line);
512
+ if (cached) {
513
+ return cached;
514
+ }
508
515
  const transformations = [];
509
516
  let match;
510
517
  // Reset regex state to ensure clean matching from start of line
@@ -520,6 +527,7 @@ export function calculateTransformationsForLine(line) {
520
527
  collapsedText: getTransformedImagePath(logicalText),
521
528
  });
522
529
  }
530
+ transformationsCache.set(line, transformations);
523
531
  return transformations;
524
532
  }
525
533
  export function calculateTransformations(lines) {
@@ -591,6 +599,15 @@ export function calculateTransformedLine(logLine, logIndex, logicalCursor, trans
591
599
  transformedToLogMap.push(cpLen(logLine));
592
600
  return { transformedLine, transformedToLogMap };
593
601
  }
602
+ const lineLayoutCache = new LRUCache(LRU_BUFFER_PERF_CACHE_LIMIT);
603
+ function getLineLayoutCacheKey(line, viewportWidth, isCursorOnLine, cursorCol) {
604
+ // Most lines (99.9% in a large buffer) are not cursor lines.
605
+ // We use a simpler key for them to reduce string allocation overhead.
606
+ if (!isCursorOnLine) {
607
+ return `${viewportWidth}:N:${line}`;
608
+ }
609
+ return `${viewportWidth}:C:${cursorCol}:${line}`;
610
+ }
594
611
  // Calculates the visual wrapping of lines and the mapping between logical and visual coordinates.
595
612
  // This is an expensive operation and should be memoized.
596
613
  function calculateLayout(logicalLines, viewportWidth, logicalCursor) {
@@ -601,15 +618,38 @@ function calculateLayout(logicalLines, viewportWidth, logicalCursor) {
601
618
  const visualToTransformedMap = [];
602
619
  logicalLines.forEach((logLine, logIndex) => {
603
620
  logicalToVisualMap[logIndex] = [];
621
+ const isCursorOnLine = logIndex === logicalCursor[0];
622
+ const cacheKey = getLineLayoutCacheKey(logLine, viewportWidth, isCursorOnLine, logicalCursor[1]);
623
+ const cached = lineLayoutCache.get(cacheKey);
624
+ if (cached) {
625
+ const visualLineOffset = visualLines.length;
626
+ visualLines.push(...cached.visualLines);
627
+ cached.logicalToVisualMap.forEach(([relVisualIdx, logCol]) => {
628
+ logicalToVisualMap[logIndex].push([
629
+ visualLineOffset + relVisualIdx,
630
+ logCol,
631
+ ]);
632
+ });
633
+ cached.visualToLogicalMap.forEach(([, logCol]) => {
634
+ visualToLogicalMap.push([logIndex, logCol]);
635
+ });
636
+ transformedToLogicalMaps[logIndex] = cached.transformedToLogMap;
637
+ visualToTransformedMap.push(...cached.visualToTransformedMap);
638
+ return;
639
+ }
640
+ // Not in cache, calculate
604
641
  const transformations = calculateTransformationsForLine(logLine);
605
642
  const { transformedLine, transformedToLogMap } = calculateTransformedLine(logLine, logIndex, logicalCursor, transformations);
606
- transformedToLogicalMaps[logIndex] = transformedToLogMap;
643
+ const lineVisualLines = [];
644
+ const lineLogicalToVisualMap = [];
645
+ const lineVisualToLogicalMap = [];
646
+ const lineVisualToTransformedMap = [];
607
647
  if (transformedLine.length === 0) {
608
648
  // Handle empty logical line
609
- logicalToVisualMap[logIndex].push([visualLines.length, 0]);
610
- visualToLogicalMap.push([logIndex, 0]);
611
- visualToTransformedMap.push(0);
612
- visualLines.push('');
649
+ lineLogicalToVisualMap.push([0, 0]);
650
+ lineVisualToLogicalMap.push([logIndex, 0]);
651
+ lineVisualToTransformedMap.push(0);
652
+ lineVisualLines.push('');
613
653
  }
614
654
  else {
615
655
  // Non-empty logical line
@@ -645,14 +685,6 @@ function calculateLayout(logicalLines, viewportWidth, logicalCursor) {
645
685
  currentChunk = char;
646
686
  numCodePointsInChunk = 1;
647
687
  }
648
- else if (numCodePointsInChunk === 0 &&
649
- charVisualWidth <= viewportWidth) {
650
- // This case should ideally be caught by the next iteration if the char fits.
651
- // If it doesn't fit (because currentChunkVisualWidth was already > 0 from a previous char that filled the line),
652
- // then numCodePointsInChunk would not be 0.
653
- // This branch means the current char *itself* doesn't fit an empty line, which is handled by the above.
654
- // If we are here, it means the loop should break and the current chunk (which is empty) is finalized.
655
- }
656
688
  }
657
689
  break; // Break from inner loop to finalize this chunk
658
690
  }
@@ -666,45 +698,48 @@ function calculateLayout(logicalLines, viewportWidth, logicalCursor) {
666
698
  numCodePointsAtLastWordBreak = numCodePointsInChunk - 1; // Chars *before* the space
667
699
  }
668
700
  }
669
- // If the inner loop completed without breaking (i.e., remaining text fits)
670
- // or if the loop broke but numCodePointsInChunk is still 0 (e.g. first char too wide for empty line)
671
701
  if (numCodePointsInChunk === 0 &&
672
702
  currentPosInLogLine < codePointsInLogLine.length) {
673
- // This can happen if the very first character considered for a new visual line is wider than the viewport.
674
- // In this case, we take that single character.
675
703
  const firstChar = codePointsInLogLine[currentPosInLogLine];
676
704
  currentChunk = firstChar;
677
- numCodePointsInChunk = 1; // Ensure we advance
678
- }
679
- // If after everything, numCodePointsInChunk is still 0 but we haven't processed the whole logical line,
680
- // it implies an issue, like viewportWidth being 0 or less. Avoid infinite loop.
681
- if (numCodePointsInChunk === 0 &&
682
- currentPosInLogLine < codePointsInLogLine.length) {
683
- // Force advance by one character to prevent infinite loop if something went wrong
684
- currentChunk = codePointsInLogLine[currentPosInLogLine];
685
705
  numCodePointsInChunk = 1;
686
706
  }
687
707
  const logicalStartCol = transformedToLogMap[currentPosInLogLine] ?? 0;
688
- logicalToVisualMap[logIndex].push([
689
- visualLines.length,
690
- logicalStartCol,
691
- ]);
692
- visualToLogicalMap.push([logIndex, logicalStartCol]);
693
- visualToTransformedMap.push(currentPosInLogLine);
694
- visualLines.push(currentChunk);
708
+ lineLogicalToVisualMap.push([lineVisualLines.length, logicalStartCol]);
709
+ lineVisualToLogicalMap.push([logIndex, logicalStartCol]);
710
+ lineVisualToTransformedMap.push(currentPosInLogLine);
711
+ lineVisualLines.push(currentChunk);
695
712
  const logicalStartOfThisChunk = currentPosInLogLine;
696
713
  currentPosInLogLine += numCodePointsInChunk;
697
- // If the chunk processed did not consume the entire logical line,
698
- // and the character immediately following the chunk is a space,
699
- // advance past this space as it acted as a delimiter for word wrapping.
700
714
  if (logicalStartOfThisChunk + numCodePointsInChunk <
701
715
  codePointsInLogLine.length &&
702
- currentPosInLogLine < codePointsInLogLine.length && // Redundant if previous is true, but safe
716
+ currentPosInLogLine < codePointsInLogLine.length &&
703
717
  codePointsInLogLine[currentPosInLogLine] === ' ') {
704
718
  currentPosInLogLine++;
705
719
  }
706
720
  }
707
721
  }
722
+ // Cache the result for this line
723
+ lineLayoutCache.set(cacheKey, {
724
+ visualLines: lineVisualLines,
725
+ logicalToVisualMap: lineLogicalToVisualMap,
726
+ visualToLogicalMap: lineVisualToLogicalMap,
727
+ transformedToLogMap,
728
+ visualToTransformedMap: lineVisualToTransformedMap,
729
+ });
730
+ const visualLineOffset = visualLines.length;
731
+ visualLines.push(...lineVisualLines);
732
+ lineLogicalToVisualMap.forEach(([relVisualIdx, logCol]) => {
733
+ logicalToVisualMap[logIndex].push([
734
+ visualLineOffset + relVisualIdx,
735
+ logCol,
736
+ ]);
737
+ });
738
+ lineVisualToLogicalMap.forEach(([, logCol]) => {
739
+ visualToLogicalMap.push([logIndex, logCol]);
740
+ });
741
+ transformedToLogicalMaps[logIndex] = transformedToLogMap;
742
+ visualToTransformedMap.push(...lineVisualToTransformedMap);
708
743
  });
709
744
  // If the entire logical text was empty, ensure there's one empty visual line.
710
745
  if (logicalLines.length === 0 ||
@@ -1582,26 +1617,17 @@ export function useTextBuffer({ initialText = '', initialCursorOffset = 0, viewp
1582
1617
  }, [text, stdin, setRawMode, getPreferredEditor]);
1583
1618
  const handleInput = useCallback((key) => {
1584
1619
  const { sequence: input } = key;
1585
- if (key.paste) {
1586
- // Do not do any other processing on pastes so ensure we handle them
1587
- // before all other cases.
1588
- insert(input, { paste: key.paste });
1589
- return;
1590
- }
1591
- if (!singleLine &&
1592
- (key.name === 'return' ||
1593
- input === '\r' ||
1594
- input === '\n' ||
1595
- input === '\\r') // VSCode terminal represents shift + enter this way
1596
- )
1620
+ if (key.name === 'paste')
1621
+ insert(input, { paste: true });
1622
+ else if (keyMatchers[Command.RETURN](key))
1597
1623
  newline();
1598
1624
  else if (keyMatchers[Command.MOVE_LEFT](key))
1599
1625
  move('left');
1600
1626
  else if (keyMatchers[Command.MOVE_RIGHT](key))
1601
1627
  move('right');
1602
- else if (key.name === 'up')
1628
+ else if (keyMatchers[Command.MOVE_UP](key))
1603
1629
  move('up');
1604
- else if (key.name === 'down')
1630
+ else if (keyMatchers[Command.MOVE_DOWN](key))
1605
1631
  move('down');
1606
1632
  else if (keyMatchers[Command.MOVE_WORD_LEFT](key))
1607
1633
  move('wordLeft');
@@ -1623,9 +1649,8 @@ export function useTextBuffer({ initialText = '', initialCursorOffset = 0, viewp
1623
1649
  undo();
1624
1650
  else if (keyMatchers[Command.REDO](key))
1625
1651
  redo();
1626
- else if (key.insertable) {
1627
- insert(input, { paste: key.paste });
1628
- }
1652
+ else if (key.insertable)
1653
+ insert(input, { paste: false });
1629
1654
  }, [
1630
1655
  newline,
1631
1656
  move,
@@ -1636,7 +1661,6 @@ export function useTextBuffer({ initialText = '', initialCursorOffset = 0, viewp
1636
1661
  insert,
1637
1662
  undo,
1638
1663
  redo,
1639
- singleLine,
1640
1664
  ]);
1641
1665
  const renderedVisualLines = useMemo(() => visualLines.slice(visualScrollRow, visualScrollRow + viewport.height), [visualLines, visualScrollRow, viewport.height]);
1642
1666
  const replaceRange = useCallback((startRow, startCol, endRow, endCol, text) => {
@@ -1711,6 +1735,7 @@ export function useTextBuffer({ initialText = '', initialCursorOffset = 0, viewp
1711
1735
  transformedToLogicalMaps,
1712
1736
  visualToTransformedMap,
1713
1737
  transformationsByLine,
1738
+ visualLayout,
1714
1739
  setText,
1715
1740
  insert,
1716
1741
  newline,
@@ -1778,6 +1803,7 @@ export function useTextBuffer({ initialText = '', initialCursorOffset = 0, viewp
1778
1803
  transformedToLogicalMaps,
1779
1804
  visualToTransformedMap,
1780
1805
  transformationsByLine,
1806
+ visualLayout,
1781
1807
  setText,
1782
1808
  insert,
1783
1809
  newline,