@google/gemini-cli 0.12.0-preview.4 → 0.13.0-nightly.20251031.c89bc30d

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 (254) hide show
  1. package/dist/google-gemini-cli-0.13.0-nightly.20251029.cca41edc.tgz +0 -0
  2. package/dist/package.json +2 -2
  3. package/dist/src/commands/extensions/install.js +2 -2
  4. package/dist/src/commands/extensions/install.js.map +1 -1
  5. package/dist/src/commands/extensions/install.test.js +27 -16
  6. package/dist/src/commands/extensions/install.test.js.map +1 -1
  7. package/dist/src/commands/extensions/link.js +2 -2
  8. package/dist/src/commands/extensions/link.js.map +1 -1
  9. package/dist/src/commands/extensions/update.js +3 -2
  10. package/dist/src/commands/extensions/update.js.map +1 -1
  11. package/dist/src/commands/extensions/validate.d.ts +12 -0
  12. package/dist/src/commands/extensions/validate.js +83 -0
  13. package/dist/src/commands/extensions/validate.js.map +1 -0
  14. package/dist/src/commands/extensions/validate.test.d.ts +6 -0
  15. package/dist/src/commands/extensions/validate.test.js +93 -0
  16. package/dist/src/commands/extensions/validate.test.js.map +1 -0
  17. package/dist/src/commands/extensions.js +2 -0
  18. package/dist/src/commands/extensions.js.map +1 -1
  19. package/dist/src/config/auth.js +0 -5
  20. package/dist/src/config/auth.js.map +1 -1
  21. package/dist/src/config/auth.test.js +1 -3
  22. package/dist/src/config/auth.test.js.map +1 -1
  23. package/dist/src/config/config.js +2 -1
  24. package/dist/src/config/config.js.map +1 -1
  25. package/dist/src/config/config.test.js +6 -10
  26. package/dist/src/config/config.test.js.map +1 -1
  27. package/dist/src/config/extensions/update.d.ts +2 -2
  28. package/dist/src/config/extensions/update.js +28 -22
  29. package/dist/src/config/extensions/update.js.map +1 -1
  30. package/dist/src/config/sandboxConfig.d.ts +1 -1
  31. package/dist/src/config/sandboxConfig.js +6 -3
  32. package/dist/src/config/sandboxConfig.js.map +1 -1
  33. package/dist/src/config/settings.js +2 -2
  34. package/dist/src/config/settings.js.map +1 -1
  35. package/dist/src/config/settings.test.js +13 -53
  36. package/dist/src/config/settings.test.js.map +1 -1
  37. package/dist/src/config/settingsSchema.d.ts +25 -7
  38. package/dist/src/config/settingsSchema.js +24 -6
  39. package/dist/src/config/settingsSchema.js.map +1 -1
  40. package/dist/src/config/settingsSchema.test.js +2 -0
  41. package/dist/src/config/settingsSchema.test.js.map +1 -1
  42. package/dist/src/gemini.js +8 -1
  43. package/dist/src/gemini.js.map +1 -1
  44. package/dist/src/gemini.test.js +1 -0
  45. package/dist/src/gemini.test.js.map +1 -1
  46. package/dist/src/generated/git-commit.d.ts +2 -2
  47. package/dist/src/generated/git-commit.js +2 -2
  48. package/dist/src/generated/git-commit.js.map +1 -1
  49. package/dist/src/nonInteractiveCli.d.ts +9 -1
  50. package/dist/src/nonInteractiveCli.js +16 -1
  51. package/dist/src/nonInteractiveCli.js.map +1 -1
  52. package/dist/src/nonInteractiveCli.test.js +209 -103
  53. package/dist/src/nonInteractiveCli.test.js.map +1 -1
  54. package/dist/src/test-utils/async.d.ts +9 -0
  55. package/dist/src/test-utils/async.js +29 -0
  56. package/dist/src/test-utils/async.js.map +1 -0
  57. package/dist/src/test-utils/render.d.ts +2 -1
  58. package/dist/src/test-utils/render.js +23 -1
  59. package/dist/src/test-utils/render.js.map +1 -1
  60. package/dist/src/test-utils/render.test.js +29 -4
  61. package/dist/src/test-utils/render.test.js.map +1 -1
  62. package/dist/src/ui/App.test.js +1 -1
  63. package/dist/src/ui/App.test.js.map +1 -1
  64. package/dist/src/ui/AppContainer.js +33 -4
  65. package/dist/src/ui/AppContainer.js.map +1 -1
  66. package/dist/src/ui/AppContainer.test.js +205 -99
  67. package/dist/src/ui/AppContainer.test.js.map +1 -1
  68. package/dist/src/ui/auth/ApiAuthDialog.d.ts +14 -0
  69. package/dist/src/ui/auth/ApiAuthDialog.js +26 -0
  70. package/dist/src/ui/auth/ApiAuthDialog.js.map +1 -0
  71. package/dist/src/ui/auth/ApiAuthDialog.test.d.ts +6 -0
  72. package/dist/src/ui/auth/ApiAuthDialog.test.js +91 -0
  73. package/dist/src/ui/auth/ApiAuthDialog.test.js.map +1 -0
  74. package/dist/src/ui/auth/AuthDialog.js +7 -3
  75. package/dist/src/ui/auth/AuthDialog.js.map +1 -1
  76. package/dist/src/ui/auth/AuthDialog.test.js +1 -1
  77. package/dist/src/ui/auth/AuthDialog.test.js.map +1 -1
  78. package/dist/src/ui/auth/useAuth.d.ts +2 -0
  79. package/dist/src/ui/auth/useAuth.js +31 -2
  80. package/dist/src/ui/auth/useAuth.js.map +1 -1
  81. package/dist/src/ui/components/AnsiOutput.test.js +1 -1
  82. package/dist/src/ui/components/AnsiOutput.test.js.map +1 -1
  83. package/dist/src/ui/components/Composer.test.js +1 -1
  84. package/dist/src/ui/components/Composer.test.js.map +1 -1
  85. package/dist/src/ui/components/ConsentPrompt.test.js +18 -8
  86. package/dist/src/ui/components/ConsentPrompt.test.js.map +1 -1
  87. package/dist/src/ui/components/ContextSummaryDisplay.test.js +11 -6
  88. package/dist/src/ui/components/ContextSummaryDisplay.test.js.map +1 -1
  89. package/dist/src/ui/components/DialogManager.js +4 -0
  90. package/dist/src/ui/components/DialogManager.js.map +1 -1
  91. package/dist/src/ui/components/FolderTrustDialog.test.js +4 -3
  92. package/dist/src/ui/components/FolderTrustDialog.test.js.map +1 -1
  93. package/dist/src/ui/components/Footer.js +3 -2
  94. package/dist/src/ui/components/Footer.js.map +1 -1
  95. package/dist/src/ui/components/Footer.test.js +59 -0
  96. package/dist/src/ui/components/Footer.test.js.map +1 -1
  97. package/dist/src/ui/components/Header.test.js +9 -5
  98. package/dist/src/ui/components/Header.test.js.map +1 -1
  99. package/dist/src/ui/components/Help.test.js +5 -3
  100. package/dist/src/ui/components/Help.test.js.map +1 -1
  101. package/dist/src/ui/components/InputPrompt.test.js +139 -111
  102. package/dist/src/ui/components/InputPrompt.test.js.map +1 -1
  103. package/dist/src/ui/components/LoadingIndicator.test.js +27 -14
  104. package/dist/src/ui/components/LoadingIndicator.test.js.map +1 -1
  105. package/dist/src/ui/components/ModelDialog.test.js +20 -10
  106. package/dist/src/ui/components/ModelDialog.test.js.map +1 -1
  107. package/dist/src/ui/components/ModelStatsDisplay.test.js +1 -1
  108. package/dist/src/ui/components/ModelStatsDisplay.test.js.map +1 -1
  109. package/dist/src/ui/components/PermissionsModifyTrustDialog.test.js +11 -10
  110. package/dist/src/ui/components/PermissionsModifyTrustDialog.test.js.map +1 -1
  111. package/dist/src/ui/components/PrepareLabel.test.js +13 -7
  112. package/dist/src/ui/components/PrepareLabel.test.js.map +1 -1
  113. package/dist/src/ui/components/ProQuotaDialog.test.js +14 -6
  114. package/dist/src/ui/components/ProQuotaDialog.test.js.map +1 -1
  115. package/dist/src/ui/components/QueuedMessageDisplay.test.js +11 -6
  116. package/dist/src/ui/components/QueuedMessageDisplay.test.js.map +1 -1
  117. package/dist/src/ui/components/SessionSummaryDisplay.test.js +1 -1
  118. package/dist/src/ui/components/SessionSummaryDisplay.test.js.map +1 -1
  119. package/dist/src/ui/components/SettingsDialog.test.js +438 -512
  120. package/dist/src/ui/components/SettingsDialog.test.js.map +1 -1
  121. package/dist/src/ui/components/StatsDisplay.test.js +1 -1
  122. package/dist/src/ui/components/StatsDisplay.test.js.map +1 -1
  123. package/dist/src/ui/components/ThemeDialog.test.js +3 -2
  124. package/dist/src/ui/components/ThemeDialog.test.js.map +1 -1
  125. package/dist/src/ui/components/ToolStatsDisplay.test.js +1 -1
  126. package/dist/src/ui/components/ToolStatsDisplay.test.js.map +1 -1
  127. package/dist/src/ui/components/messages/CompressionMessage.test.js +25 -17
  128. package/dist/src/ui/components/messages/CompressionMessage.test.js.map +1 -1
  129. package/dist/src/ui/components/messages/DiffRenderer.test.js +1 -1
  130. package/dist/src/ui/components/messages/DiffRenderer.test.js.map +1 -1
  131. package/dist/src/ui/components/messages/Todo.js +27 -5
  132. package/dist/src/ui/components/messages/Todo.js.map +1 -1
  133. package/dist/src/ui/components/messages/Todo.test.js +20 -8
  134. package/dist/src/ui/components/messages/Todo.test.js.map +1 -1
  135. package/dist/src/ui/components/messages/ToolGroupMessage.test.js +29 -15
  136. package/dist/src/ui/components/messages/ToolGroupMessage.test.js.map +1 -1
  137. package/dist/src/ui/components/shared/BaseSelectionList.test.js +12 -11
  138. package/dist/src/ui/components/shared/BaseSelectionList.test.js.map +1 -1
  139. package/dist/src/ui/components/shared/MaxSizedBox.test.js +43 -22
  140. package/dist/src/ui/components/shared/MaxSizedBox.test.js.map +1 -1
  141. package/dist/src/ui/components/shared/TextInput.d.ts +15 -0
  142. package/dist/src/ui/components/shared/TextInput.js +38 -0
  143. package/dist/src/ui/components/shared/TextInput.js.map +1 -0
  144. package/dist/src/ui/components/shared/TextInput.test.d.ts +6 -0
  145. package/dist/src/ui/components/shared/TextInput.test.js +242 -0
  146. package/dist/src/ui/components/shared/TextInput.test.js.map +1 -0
  147. package/dist/src/ui/components/shared/text-buffer.d.ts +8 -2
  148. package/dist/src/ui/components/shared/text-buffer.js +28 -13
  149. package/dist/src/ui/components/shared/text-buffer.js.map +1 -1
  150. package/dist/src/ui/components/shared/text-buffer.test.js +137 -0
  151. package/dist/src/ui/components/shared/text-buffer.test.js.map +1 -1
  152. package/dist/src/ui/components/views/ChatList.test.js +7 -4
  153. package/dist/src/ui/components/views/ChatList.test.js.map +1 -1
  154. package/dist/src/ui/components/views/ExtensionsList.js +1 -0
  155. package/dist/src/ui/components/views/ExtensionsList.js.map +1 -1
  156. package/dist/src/ui/components/views/ExtensionsList.test.js +13 -5
  157. package/dist/src/ui/components/views/ExtensionsList.test.js.map +1 -1
  158. package/dist/src/ui/components/views/McpStatus.test.js +23 -12
  159. package/dist/src/ui/components/views/McpStatus.test.js.map +1 -1
  160. package/dist/src/ui/contexts/KeypressContext.test.js +132 -252
  161. package/dist/src/ui/contexts/KeypressContext.test.js.map +1 -1
  162. package/dist/src/ui/contexts/SessionContext.test.js +9 -5
  163. package/dist/src/ui/contexts/SessionContext.test.js.map +1 -1
  164. package/dist/src/ui/contexts/UIActionsContext.d.ts +2 -0
  165. package/dist/src/ui/contexts/UIActionsContext.js.map +1 -1
  166. package/dist/src/ui/contexts/UIStateContext.d.ts +2 -0
  167. package/dist/src/ui/contexts/UIStateContext.js.map +1 -1
  168. package/dist/src/ui/hooks/atCommandProcessor.js +29 -7
  169. package/dist/src/ui/hooks/atCommandProcessor.js.map +1 -1
  170. package/dist/src/ui/hooks/atCommandProcessor.test.js +163 -64
  171. package/dist/src/ui/hooks/atCommandProcessor.test.js.map +1 -1
  172. package/dist/src/ui/hooks/shellCommandProcessor.test.js +47 -34
  173. package/dist/src/ui/hooks/shellCommandProcessor.test.js.map +1 -1
  174. package/dist/src/ui/hooks/slashCommandProcessor.test.js +141 -104
  175. package/dist/src/ui/hooks/slashCommandProcessor.test.js.map +1 -1
  176. package/dist/src/ui/hooks/useAtCompletion.test.js +23 -21
  177. package/dist/src/ui/hooks/useAtCompletion.test.js.map +1 -1
  178. package/dist/src/ui/hooks/useCommandCompletion.test.js +16 -15
  179. package/dist/src/ui/hooks/useCommandCompletion.test.js.map +1 -1
  180. package/dist/src/ui/hooks/useConsoleMessages.test.js +1 -1
  181. package/dist/src/ui/hooks/useConsoleMessages.test.js.map +1 -1
  182. package/dist/src/ui/hooks/useEditorSettings.test.js +1 -1
  183. package/dist/src/ui/hooks/useEditorSettings.test.js.map +1 -1
  184. package/dist/src/ui/hooks/useExtensionUpdates.d.ts +1 -1
  185. package/dist/src/ui/hooks/useExtensionUpdates.js +9 -3
  186. package/dist/src/ui/hooks/useExtensionUpdates.js.map +1 -1
  187. package/dist/src/ui/hooks/useExtensionUpdates.test.js +10 -9
  188. package/dist/src/ui/hooks/useExtensionUpdates.test.js.map +1 -1
  189. package/dist/src/ui/hooks/useFocus.test.js +1 -1
  190. package/dist/src/ui/hooks/useFocus.test.js.map +1 -1
  191. package/dist/src/ui/hooks/useFolderTrust.test.js +7 -6
  192. package/dist/src/ui/hooks/useFolderTrust.test.js.map +1 -1
  193. package/dist/src/ui/hooks/useGeminiStream.test.js +39 -38
  194. package/dist/src/ui/hooks/useGeminiStream.test.js.map +1 -1
  195. package/dist/src/ui/hooks/useGitBranchName.test.js +5 -4
  196. package/dist/src/ui/hooks/useGitBranchName.test.js.map +1 -1
  197. package/dist/src/ui/hooks/useIdeTrustListener.test.js +25 -11
  198. package/dist/src/ui/hooks/useIdeTrustListener.test.js.map +1 -1
  199. package/dist/src/ui/hooks/useKeypress.test.js +1 -1
  200. package/dist/src/ui/hooks/useKeypress.test.js.map +1 -1
  201. package/dist/src/ui/hooks/useLoadingIndicator.test.js +1 -1
  202. package/dist/src/ui/hooks/useLoadingIndicator.test.js.map +1 -1
  203. package/dist/src/ui/hooks/useMemoryMonitor.test.js +1 -1
  204. package/dist/src/ui/hooks/useMemoryMonitor.test.js.map +1 -1
  205. package/dist/src/ui/hooks/useMessageQueue.test.js +5 -4
  206. package/dist/src/ui/hooks/useMessageQueue.test.js.map +1 -1
  207. package/dist/src/ui/hooks/useModelCommand.test.js +7 -4
  208. package/dist/src/ui/hooks/useModelCommand.test.js.map +1 -1
  209. package/dist/src/ui/hooks/usePhraseCycler.test.js +46 -16
  210. package/dist/src/ui/hooks/usePhraseCycler.test.js.map +1 -1
  211. package/dist/src/ui/hooks/usePrivacySettings.test.js +11 -7
  212. package/dist/src/ui/hooks/usePrivacySettings.test.js.map +1 -1
  213. package/dist/src/ui/hooks/useQuotaAndFallback.test.js +28 -14
  214. package/dist/src/ui/hooks/useQuotaAndFallback.test.js.map +1 -1
  215. package/dist/src/ui/hooks/useSelectionList.test.js +116 -109
  216. package/dist/src/ui/hooks/useSelectionList.test.js.map +1 -1
  217. package/dist/src/ui/hooks/useShellHistory.test.js +25 -17
  218. package/dist/src/ui/hooks/useShellHistory.test.js.map +1 -1
  219. package/dist/src/ui/hooks/useSlashCompletion.js +18 -7
  220. package/dist/src/ui/hooks/useSlashCompletion.js.map +1 -1
  221. package/dist/src/ui/hooks/useSlashCompletion.test.js +244 -111
  222. package/dist/src/ui/hooks/useSlashCompletion.test.js.map +1 -1
  223. package/dist/src/ui/hooks/useTimer.test.js +1 -1
  224. package/dist/src/ui/hooks/useTimer.test.js.map +1 -1
  225. package/dist/src/ui/hooks/useToolScheduler.test.js +6 -2
  226. package/dist/src/ui/hooks/useToolScheduler.test.js.map +1 -1
  227. package/dist/src/ui/hooks/vim.test.js +6 -21
  228. package/dist/src/ui/hooks/vim.test.js.map +1 -1
  229. package/dist/src/ui/state/extensions.d.ts +1 -0
  230. package/dist/src/ui/state/extensions.js +1 -0
  231. package/dist/src/ui/state/extensions.js.map +1 -1
  232. package/dist/src/ui/types.d.ts +1 -0
  233. package/dist/src/ui/types.js +2 -0
  234. package/dist/src/ui/types.js.map +1 -1
  235. package/dist/src/ui/utils/clipboardUtils.js +2 -2
  236. package/dist/src/ui/utils/clipboardUtils.js.map +1 -1
  237. package/dist/src/ui/utils/updateCheck.js +6 -3
  238. package/dist/src/ui/utils/updateCheck.js.map +1 -1
  239. package/dist/src/ui/utils/updateCheck.test.js +5 -1
  240. package/dist/src/ui/utils/updateCheck.test.js.map +1 -1
  241. package/dist/src/utils/commentJson.js +2 -2
  242. package/dist/src/utils/commentJson.js.map +1 -1
  243. package/dist/src/utils/commentJson.test.js +7 -6
  244. package/dist/src/utils/commentJson.test.js.map +1 -1
  245. package/dist/src/utils/version.js +6 -2
  246. package/dist/src/utils/version.js.map +1 -1
  247. package/dist/src/zed-integration/acp.js +2 -1
  248. package/dist/src/zed-integration/acp.js.map +1 -1
  249. package/dist/tsconfig.tsbuildinfo +1 -1
  250. package/package.json +3 -3
  251. package/dist/google-gemini-cli-0.12.0-preview.3.tgz +0 -0
  252. package/dist/src/utils/package.d.ts +0 -12
  253. package/dist/src/utils/package.js +0 -24
  254. package/dist/src/utils/package.js.map +0 -1
@@ -624,7 +624,7 @@ export const pushUndo = (currentState) => {
624
624
  }
625
625
  return { ...currentState, undoStack: newStack, redoStack: [] };
626
626
  };
627
- function textBufferReducerLogic(state, action) {
627
+ function textBufferReducerLogic(state, action, options = {}) {
628
628
  const pushUndoLocal = pushUndo;
629
629
  const currentLine = (r) => state.lines[r] ?? '';
630
630
  const currentLineLen = (r) => cpLen(currentLine(r));
@@ -653,7 +653,17 @@ function textBufferReducerLogic(state, action) {
653
653
  let newCursorRow = nextState.cursorRow;
654
654
  let newCursorCol = nextState.cursorCol;
655
655
  const currentLine = (r) => newLines[r] ?? '';
656
- const str = stripUnsafeCharacters(action.payload.replace(/\r\n/g, '\n').replace(/\r/g, '\n'));
656
+ let payload = action.payload;
657
+ if (options.singleLine) {
658
+ payload = payload.replace(/[\r\n]/g, '');
659
+ }
660
+ if (options.inputFilter) {
661
+ payload = options.inputFilter(payload);
662
+ }
663
+ if (payload.length === 0) {
664
+ return state;
665
+ }
666
+ const str = stripUnsafeCharacters(payload.replace(/\r\n/g, '\n').replace(/\r/g, '\n'));
657
667
  const parts = str.split('\n');
658
668
  const lineContent = currentLine(newCursorRow);
659
669
  const before = cpSlice(lineContent, 0, newCursorCol);
@@ -1105,8 +1115,8 @@ function textBufferReducerLogic(state, action) {
1105
1115
  }
1106
1116
  }
1107
1117
  }
1108
- export function textBufferReducer(state, action) {
1109
- const newState = textBufferReducerLogic(state, action);
1118
+ export function textBufferReducer(state, action, options = {}) {
1119
+ const newState = textBufferReducerLogic(state, action, options);
1110
1120
  if (newState.lines !== state.lines ||
1111
1121
  newState.viewportWidth !== state.viewportWidth) {
1112
1122
  return {
@@ -1117,7 +1127,7 @@ export function textBufferReducer(state, action) {
1117
1127
  return newState;
1118
1128
  }
1119
1129
  // --- End of reducer logic ---
1120
- export function useTextBuffer({ initialText = '', initialCursorOffset = 0, viewport, stdin, setRawMode, onChange, isValidPath, shellModeActive = false, }) {
1130
+ export function useTextBuffer({ initialText = '', initialCursorOffset = 0, viewport, stdin, setRawMode, onChange, isValidPath, shellModeActive = false, inputFilter, singleLine = false, }) {
1121
1131
  const initialState = useMemo(() => {
1122
1132
  const lines = initialText.split('\n');
1123
1133
  const [initialCursorRow, initialCursorCol] = calculateInitialCursorPosition(lines.length === 0 ? [''] : lines, initialCursorOffset);
@@ -1136,7 +1146,7 @@ export function useTextBuffer({ initialText = '', initialCursorOffset = 0, viewp
1136
1146
  visualLayout,
1137
1147
  };
1138
1148
  }, [initialText, initialCursorOffset, viewport.width, viewport.height]);
1139
- const [state, dispatch] = useReducer(textBufferReducer, initialState);
1149
+ const [state, dispatch] = useReducer((s, a) => textBufferReducer(s, a, { inputFilter, singleLine }), initialState);
1140
1150
  const { lines, cursorRow, cursorCol, preferredCol, selectionAnchor, visualLayout, } = state;
1141
1151
  const text = useMemo(() => lines.join('\n'), [lines]);
1142
1152
  const visualCursor = useMemo(() => calculateVisualCursorFromLayout(visualLayout, [cursorRow, cursorCol]), [visualLayout, cursorRow, cursorCol]);
@@ -1173,7 +1183,7 @@ export function useTextBuffer({ initialText = '', initialCursorOffset = 0, viewp
1173
1183
  }
1174
1184
  }, [visualCursor, visualScrollRow, viewport, visualLines.length]);
1175
1185
  const insert = useCallback((ch, { paste = false } = {}) => {
1176
- if (/[\n\r]/.test(ch)) {
1186
+ if (!singleLine && /[\n\r]/.test(ch)) {
1177
1187
  dispatch({ type: 'insert', payload: ch });
1178
1188
  return;
1179
1189
  }
@@ -1207,10 +1217,13 @@ export function useTextBuffer({ initialText = '', initialCursorOffset = 0, viewp
1207
1217
  if (currentText.length > 0) {
1208
1218
  dispatch({ type: 'insert', payload: currentText });
1209
1219
  }
1210
- }, [isValidPath, shellModeActive]);
1220
+ }, [isValidPath, shellModeActive, singleLine]);
1211
1221
  const newline = useCallback(() => {
1222
+ if (singleLine) {
1223
+ return;
1224
+ }
1212
1225
  dispatch({ type: 'insert', payload: '\n' });
1213
- }, []);
1226
+ }, [singleLine]);
1214
1227
  const backspace = useCallback(() => {
1215
1228
  dispatch({ type: 'backspace' });
1216
1229
  }, []);
@@ -1390,10 +1403,11 @@ export function useTextBuffer({ initialText = '', initialCursorOffset = 0, viewp
1390
1403
  insert(input, { paste: key.paste });
1391
1404
  return;
1392
1405
  }
1393
- if (key.name === 'return' ||
1394
- input === '\r' ||
1395
- input === '\n' ||
1396
- input === '\\\r' // VSCode terminal represents shift + enter this way
1406
+ if (!singleLine &&
1407
+ (key.name === 'return' ||
1408
+ input === '\r' ||
1409
+ input === '\n' ||
1410
+ input === '\\r') // VSCode terminal represents shift + enter this way
1397
1411
  )
1398
1412
  newline();
1399
1413
  else if (key.name === 'left' && !key.meta && !key.ctrl)
@@ -1454,6 +1468,7 @@ export function useTextBuffer({ initialText = '', initialCursorOffset = 0, viewp
1454
1468
  insert,
1455
1469
  undo,
1456
1470
  redo,
1471
+ singleLine,
1457
1472
  ]);
1458
1473
  const renderedVisualLines = useMemo(() => visualLines.slice(visualScrollRow, visualScrollRow + viewport.height), [visualLines, visualScrollRow, viewport.height]);
1459
1474
  const replaceRange = useCallback((startRow, startCol, endRow, endCol, text) => {
@@ -1 +1 @@
1
- {"version":3,"file":"text-buffer.js","sourceRoot":"","sources":["../../../../../src/ui/components/shared/text-buffer.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"text-buffer.js","sourceRoot":"","sources":["../../../../../src/ui/components/shared/text-buffer.ts"],"names":[],"mappings":"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"}
@@ -77,6 +77,40 @@ describe('textBufferReducer', () => {
77
77
  expect(state.cursorCol).toBe(0);
78
78
  });
79
79
  });
80
+ describe('insert action with options', () => {
81
+ it('should filter input using inputFilter option', () => {
82
+ const action = { type: 'insert', payload: 'a1b2c3' };
83
+ const options = {
84
+ inputFilter: (text) => text.replace(/[0-9]/g, ''),
85
+ };
86
+ const state = textBufferReducer(initialState, action, options);
87
+ expect(state.lines).toEqual(['abc']);
88
+ expect(state.cursorCol).toBe(3);
89
+ });
90
+ it('should strip newlines when singleLine option is true', () => {
91
+ const action = {
92
+ type: 'insert',
93
+ payload: 'hello\nworld',
94
+ };
95
+ const options = { singleLine: true };
96
+ const state = textBufferReducer(initialState, action, options);
97
+ expect(state.lines).toEqual(['helloworld']);
98
+ expect(state.cursorCol).toBe(10);
99
+ });
100
+ it('should apply both inputFilter and singleLine options', () => {
101
+ const action = {
102
+ type: 'insert',
103
+ payload: 'h\ne\nl\nl\no\n1\n2\n3',
104
+ };
105
+ const options = {
106
+ singleLine: true,
107
+ inputFilter: (text) => text.replace(/[0-9]/g, ''),
108
+ };
109
+ const state = textBufferReducer(initialState, action, options);
110
+ expect(state.lines).toEqual(['hello']);
111
+ expect(state.cursorCol).toBe(5);
112
+ });
113
+ });
80
114
  describe('backspace action', () => {
81
115
  it('should remove a character', () => {
82
116
  const stateWithText = {
@@ -1219,6 +1253,55 @@ Contrary to popular belief, Lorem Ipsum is not simply random text. It has roots
1219
1253
  expect(getBufferState(result).text).toBe(emojis);
1220
1254
  });
1221
1255
  });
1256
+ describe('inputFilter', () => {
1257
+ it('should filter input based on the provided filter function', () => {
1258
+ const { result } = renderHook(() => useTextBuffer({
1259
+ viewport,
1260
+ isValidPath: () => false,
1261
+ inputFilter: (text) => text.replace(/[^0-9]/g, ''),
1262
+ }));
1263
+ act(() => result.current.insert('a1b2c3'));
1264
+ expect(getBufferState(result).text).toBe('123');
1265
+ });
1266
+ it('should handle empty result from filter', () => {
1267
+ const { result } = renderHook(() => useTextBuffer({
1268
+ viewport,
1269
+ isValidPath: () => false,
1270
+ inputFilter: (text) => text.replace(/[^0-9]/g, ''),
1271
+ }));
1272
+ act(() => result.current.insert('abc'));
1273
+ expect(getBufferState(result).text).toBe('');
1274
+ });
1275
+ it('should filter pasted text', () => {
1276
+ const { result } = renderHook(() => useTextBuffer({
1277
+ viewport,
1278
+ isValidPath: () => false,
1279
+ inputFilter: (text) => text.toUpperCase(),
1280
+ }));
1281
+ act(() => result.current.insert('hello', { paste: true }));
1282
+ expect(getBufferState(result).text).toBe('HELLO');
1283
+ });
1284
+ it('should not filter newlines if they are allowed by the filter', () => {
1285
+ const { result } = renderHook(() => useTextBuffer({
1286
+ viewport,
1287
+ isValidPath: () => false,
1288
+ inputFilter: (text) => text, // Allow everything including newlines
1289
+ }));
1290
+ act(() => result.current.insert('a\nb'));
1291
+ // The insert function splits by newline and inserts separately if it detects them.
1292
+ // If the filter allows them, they should be handled correctly by the subsequent logic in insert.
1293
+ expect(getBufferState(result).text).toBe('a\nb');
1294
+ });
1295
+ it('should filter before newline check in insert', () => {
1296
+ const { result } = renderHook(() => useTextBuffer({
1297
+ viewport,
1298
+ isValidPath: () => false,
1299
+ inputFilter: (text) => text.replace(/\n/g, ''), // Filter out newlines
1300
+ }));
1301
+ act(() => result.current.insert('a\nb'));
1302
+ expect(getBufferState(result).text).toBe('ab');
1303
+ });
1304
+ });
1222
1305
  describe('stripAnsi', () => {
1223
1306
  it('should correctly strip ANSI escape codes', () => {
1224
1307
  const textWithAnsi = '\x1B[31mHello\x1B[0m World';
@@ -1270,6 +1353,60 @@ Contrary to popular belief, Lorem Ipsum is not simply random text. It has roots
1270
1353
  expect(getBufferState(result).text).toBe('hello world');
1271
1354
  });
1272
1355
  });
1356
+ describe('singleLine mode', () => {
1357
+ it('should not insert a newline character when singleLine is true', () => {
1358
+ const { result } = renderHook(() => useTextBuffer({
1359
+ viewport,
1360
+ isValidPath: () => false,
1361
+ singleLine: true,
1362
+ }));
1363
+ act(() => result.current.insert('\n'));
1364
+ const state = getBufferState(result);
1365
+ expect(state.text).toBe('');
1366
+ expect(state.lines).toEqual(['']);
1367
+ });
1368
+ it('should not create a new line when newline() is called and singleLine is true', () => {
1369
+ const { result } = renderHook(() => useTextBuffer({
1370
+ initialText: 'ab',
1371
+ viewport,
1372
+ isValidPath: () => false,
1373
+ singleLine: true,
1374
+ }));
1375
+ act(() => result.current.move('end')); // cursor at [0,2]
1376
+ act(() => result.current.newline());
1377
+ const state = getBufferState(result);
1378
+ expect(state.text).toBe('ab');
1379
+ expect(state.lines).toEqual(['ab']);
1380
+ expect(state.cursor).toEqual([0, 2]);
1381
+ });
1382
+ it('should not handle "Enter" key as newline when singleLine is true', () => {
1383
+ const { result } = renderHook(() => useTextBuffer({
1384
+ viewport,
1385
+ isValidPath: () => false,
1386
+ singleLine: true,
1387
+ }));
1388
+ act(() => result.current.handleInput({
1389
+ name: 'return',
1390
+ ctrl: false,
1391
+ meta: false,
1392
+ shift: false,
1393
+ paste: false,
1394
+ sequence: '\r',
1395
+ }));
1396
+ expect(getBufferState(result).lines).toEqual(['']);
1397
+ });
1398
+ it('should strip newlines from pasted text when singleLine is true', () => {
1399
+ const { result } = renderHook(() => useTextBuffer({
1400
+ viewport,
1401
+ isValidPath: () => false,
1402
+ singleLine: true,
1403
+ }));
1404
+ act(() => result.current.insert('hello\nworld', { paste: true }));
1405
+ const state = getBufferState(result);
1406
+ expect(state.text).toBe('helloworld');
1407
+ expect(state.lines).toEqual(['helloworld']);
1408
+ });
1409
+ });
1273
1410
  });
1274
1411
  describe('offsetToLogicalPos', () => {
1275
1412
  it('should return [0,0] for offset 0', () => {