@google/gemini-cli 0.12.0-nightly.20251027.cb0947c5 → 0.13.0-nightly.20251030.42c79c64

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 (239) hide show
  1. package/README.md +7 -5
  2. package/dist/package.json +2 -2
  3. package/dist/src/commands/extensions/disable.d.ts +1 -1
  4. package/dist/src/commands/extensions/disable.js +5 -4
  5. package/dist/src/commands/extensions/disable.js.map +1 -1
  6. package/dist/src/commands/extensions/enable.d.ts +1 -1
  7. package/dist/src/commands/extensions/enable.js +3 -2
  8. package/dist/src/commands/extensions/enable.js.map +1 -1
  9. package/dist/src/commands/extensions/install.js +2 -1
  10. package/dist/src/commands/extensions/install.js.map +1 -1
  11. package/dist/src/commands/extensions/install.test.js +1 -0
  12. package/dist/src/commands/extensions/install.test.js.map +1 -1
  13. package/dist/src/commands/extensions/link.js +2 -1
  14. package/dist/src/commands/extensions/link.js.map +1 -1
  15. package/dist/src/commands/extensions/list.js +2 -2
  16. package/dist/src/commands/extensions/list.js.map +1 -1
  17. package/dist/src/commands/extensions/uninstall.js +2 -1
  18. package/dist/src/commands/extensions/uninstall.js.map +1 -1
  19. package/dist/src/commands/extensions/update.js +2 -2
  20. package/dist/src/commands/extensions/update.js.map +1 -1
  21. package/dist/src/commands/mcp/list.js +2 -2
  22. package/dist/src/commands/mcp/list.js.map +1 -1
  23. package/dist/src/config/auth.js +0 -5
  24. package/dist/src/config/auth.js.map +1 -1
  25. package/dist/src/config/auth.test.js +1 -3
  26. package/dist/src/config/auth.test.js.map +1 -1
  27. package/dist/src/config/config.d.ts +5 -3
  28. package/dist/src/config/config.js +42 -9
  29. package/dist/src/config/config.js.map +1 -1
  30. package/dist/src/config/config.test.js +186 -161
  31. package/dist/src/config/config.test.js.map +1 -1
  32. package/dist/src/config/extension-manager.d.ts +23 -10
  33. package/dist/src/config/extension-manager.js +89 -62
  34. package/dist/src/config/extension-manager.js.map +1 -1
  35. package/dist/src/config/extension.test.js +158 -74
  36. package/dist/src/config/extension.test.js.map +1 -1
  37. package/dist/src/config/extensions/extensionSettings.d.ts +3 -3
  38. package/dist/src/config/extensions/extensionSettings.js +74 -24
  39. package/dist/src/config/extensions/extensionSettings.js.map +1 -1
  40. package/dist/src/config/extensions/extensionSettings.test.js +145 -24
  41. package/dist/src/config/extensions/extensionSettings.test.js.map +1 -1
  42. package/dist/src/config/extensions/github.js +3 -3
  43. package/dist/src/config/extensions/github.js.map +1 -1
  44. package/dist/src/config/extensions/github.test.js +1 -1
  45. package/dist/src/config/extensions/github.test.js.map +1 -1
  46. package/dist/src/config/extensions/update.js +7 -6
  47. package/dist/src/config/extensions/update.js.map +1 -1
  48. package/dist/src/config/extensions/update.test.js +54 -31
  49. package/dist/src/config/extensions/update.test.js.map +1 -1
  50. package/dist/src/config/keyBindings.js +1 -1
  51. package/dist/src/config/keyBindings.js.map +1 -1
  52. package/dist/src/config/policies/read-only.toml +56 -0
  53. package/dist/src/config/policies/write.toml +63 -0
  54. package/dist/src/config/policies/yolo.toml +31 -0
  55. package/dist/src/config/policy-engine.integration.test.js +41 -38
  56. package/dist/src/config/policy-engine.integration.test.js.map +1 -1
  57. package/dist/src/config/policy-toml-loader.d.ts +46 -0
  58. package/dist/src/config/policy-toml-loader.js +314 -0
  59. package/dist/src/config/policy-toml-loader.js.map +1 -0
  60. package/dist/src/config/policy-toml-loader.test.d.ts +6 -0
  61. package/dist/src/config/policy-toml-loader.test.js +626 -0
  62. package/dist/src/config/policy-toml-loader.test.js.map +1 -0
  63. package/dist/src/config/policy.d.ts +9 -2
  64. package/dist/src/config/policy.js +139 -110
  65. package/dist/src/config/policy.js.map +1 -1
  66. package/dist/src/config/policy.test.js +780 -82
  67. package/dist/src/config/policy.test.js.map +1 -1
  68. package/dist/src/config/sandboxConfig.d.ts +1 -1
  69. package/dist/src/config/sandboxConfig.js +6 -3
  70. package/dist/src/config/sandboxConfig.js.map +1 -1
  71. package/dist/src/config/settings.js +1 -1
  72. package/dist/src/config/settings.js.map +1 -1
  73. package/dist/src/config/settings.test.js +4 -4
  74. package/dist/src/config/settings.test.js.map +1 -1
  75. package/dist/src/gemini.js +14 -18
  76. package/dist/src/gemini.js.map +1 -1
  77. package/dist/src/gemini.test.js +2 -0
  78. package/dist/src/gemini.test.js.map +1 -1
  79. package/dist/src/generated/git-commit.d.ts +2 -2
  80. package/dist/src/generated/git-commit.js +2 -2
  81. package/dist/src/nonInteractiveCli.d.ts +9 -1
  82. package/dist/src/nonInteractiveCli.js +16 -1
  83. package/dist/src/nonInteractiveCli.js.map +1 -1
  84. package/dist/src/nonInteractiveCli.test.js +209 -103
  85. package/dist/src/nonInteractiveCli.test.js.map +1 -1
  86. package/dist/src/test-utils/render.d.ts +12 -0
  87. package/dist/src/test-utils/render.js +28 -1
  88. package/dist/src/test-utils/render.js.map +1 -1
  89. package/dist/src/test-utils/render.test.d.ts +6 -0
  90. package/dist/src/test-utils/render.test.js +54 -0
  91. package/dist/src/test-utils/render.test.js.map +1 -0
  92. package/dist/src/ui/AppContainer.js +60 -25
  93. package/dist/src/ui/AppContainer.js.map +1 -1
  94. package/dist/src/ui/AppContainer.test.js +8 -0
  95. package/dist/src/ui/AppContainer.test.js.map +1 -1
  96. package/dist/src/ui/auth/ApiAuthDialog.d.ts +14 -0
  97. package/dist/src/ui/auth/ApiAuthDialog.js +26 -0
  98. package/dist/src/ui/auth/ApiAuthDialog.js.map +1 -0
  99. package/dist/src/ui/auth/ApiAuthDialog.test.d.ts +6 -0
  100. package/dist/src/ui/auth/ApiAuthDialog.test.js +91 -0
  101. package/dist/src/ui/auth/ApiAuthDialog.test.js.map +1 -0
  102. package/dist/src/ui/auth/AuthDialog.js +7 -3
  103. package/dist/src/ui/auth/AuthDialog.js.map +1 -1
  104. package/dist/src/ui/auth/AuthDialog.test.js +1 -1
  105. package/dist/src/ui/auth/AuthDialog.test.js.map +1 -1
  106. package/dist/src/ui/auth/useAuth.d.ts +2 -0
  107. package/dist/src/ui/auth/useAuth.js +31 -2
  108. package/dist/src/ui/auth/useAuth.js.map +1 -1
  109. package/dist/src/ui/commands/directoryCommand.js +1 -1
  110. package/dist/src/ui/commands/directoryCommand.js.map +1 -1
  111. package/dist/src/ui/commands/extensionsCommand.js +45 -1
  112. package/dist/src/ui/commands/extensionsCommand.js.map +1 -1
  113. package/dist/src/ui/commands/extensionsCommand.test.js +64 -1
  114. package/dist/src/ui/commands/extensionsCommand.test.js.map +1 -1
  115. package/dist/src/ui/commands/memoryCommand.js +1 -1
  116. package/dist/src/ui/commands/memoryCommand.js.map +1 -1
  117. package/dist/src/ui/commands/memoryCommand.test.js +3 -1
  118. package/dist/src/ui/commands/memoryCommand.test.js.map +1 -1
  119. package/dist/src/ui/components/ConsoleSummaryDisplay.js +1 -1
  120. package/dist/src/ui/components/ConsoleSummaryDisplay.js.map +1 -1
  121. package/dist/src/ui/components/DetailedMessagesDisplay.js +1 -1
  122. package/dist/src/ui/components/DetailedMessagesDisplay.js.map +1 -1
  123. package/dist/src/ui/components/DialogManager.js +4 -0
  124. package/dist/src/ui/components/DialogManager.js.map +1 -1
  125. package/dist/src/ui/components/FolderTrustDialog.test.js +4 -5
  126. package/dist/src/ui/components/FolderTrustDialog.test.js.map +1 -1
  127. package/dist/src/ui/components/Footer.js +1 -1
  128. package/dist/src/ui/components/Footer.js.map +1 -1
  129. package/dist/src/ui/components/Footer.test.js +24 -0
  130. package/dist/src/ui/components/Footer.test.js.map +1 -1
  131. package/dist/src/ui/components/Help.test.js +0 -1
  132. package/dist/src/ui/components/Help.test.js.map +1 -1
  133. package/dist/src/ui/components/ModelDialog.test.js +5 -6
  134. package/dist/src/ui/components/ModelDialog.test.js.map +1 -1
  135. package/dist/src/ui/components/PermissionsModifyTrustDialog.test.js +11 -13
  136. package/dist/src/ui/components/PermissionsModifyTrustDialog.test.js.map +1 -1
  137. package/dist/src/ui/components/SettingsDialog.test.js +12 -14
  138. package/dist/src/ui/components/SettingsDialog.test.js.map +1 -1
  139. package/dist/src/ui/components/messages/Todo.js +27 -5
  140. package/dist/src/ui/components/messages/Todo.js.map +1 -1
  141. package/dist/src/ui/components/messages/Todo.test.js +19 -7
  142. package/dist/src/ui/components/messages/Todo.test.js.map +1 -1
  143. package/dist/src/ui/components/shared/BaseSelectionList.test.js +11 -13
  144. package/dist/src/ui/components/shared/BaseSelectionList.test.js.map +1 -1
  145. package/dist/src/ui/components/shared/TextInput.d.ts +15 -0
  146. package/dist/src/ui/components/shared/TextInput.js +38 -0
  147. package/dist/src/ui/components/shared/TextInput.js.map +1 -0
  148. package/dist/src/ui/components/shared/TextInput.test.d.ts +6 -0
  149. package/dist/src/ui/components/shared/TextInput.test.js +242 -0
  150. package/dist/src/ui/components/shared/TextInput.test.js.map +1 -0
  151. package/dist/src/ui/components/shared/text-buffer.d.ts +8 -2
  152. package/dist/src/ui/components/shared/text-buffer.js +28 -13
  153. package/dist/src/ui/components/shared/text-buffer.js.map +1 -1
  154. package/dist/src/ui/components/shared/text-buffer.test.js +139 -2
  155. package/dist/src/ui/components/shared/text-buffer.test.js.map +1 -1
  156. package/dist/src/ui/contexts/KeypressContext.js +8 -29
  157. package/dist/src/ui/contexts/KeypressContext.js.map +1 -1
  158. package/dist/src/ui/contexts/KeypressContext.test.js +90 -73
  159. package/dist/src/ui/contexts/KeypressContext.test.js.map +1 -1
  160. package/dist/src/ui/contexts/SessionContext.test.js +27 -14
  161. package/dist/src/ui/contexts/SessionContext.test.js.map +1 -1
  162. package/dist/src/ui/contexts/UIActionsContext.d.ts +2 -0
  163. package/dist/src/ui/contexts/UIActionsContext.js.map +1 -1
  164. package/dist/src/ui/contexts/UIStateContext.d.ts +2 -0
  165. package/dist/src/ui/contexts/UIStateContext.js.map +1 -1
  166. package/dist/src/ui/hooks/atCommandProcessor.js +31 -9
  167. package/dist/src/ui/hooks/atCommandProcessor.js.map +1 -1
  168. package/dist/src/ui/hooks/atCommandProcessor.test.js +162 -64
  169. package/dist/src/ui/hooks/atCommandProcessor.test.js.map +1 -1
  170. package/dist/src/ui/hooks/useAtCompletion.test.js +32 -23
  171. package/dist/src/ui/hooks/useAtCompletion.test.js.map +1 -1
  172. package/dist/src/ui/hooks/useAutoAcceptIndicator.test.js +2 -2
  173. package/dist/src/ui/hooks/useAutoAcceptIndicator.test.js.map +1 -1
  174. package/dist/src/ui/hooks/useExtensionUpdates.d.ts +1 -2
  175. package/dist/src/ui/hooks/useExtensionUpdates.js +2 -1
  176. package/dist/src/ui/hooks/useExtensionUpdates.js.map +1 -1
  177. package/dist/src/ui/hooks/useExtensionUpdates.test.js +14 -20
  178. package/dist/src/ui/hooks/useExtensionUpdates.test.js.map +1 -1
  179. package/dist/src/ui/hooks/useFlickerDetector.test.js +9 -6
  180. package/dist/src/ui/hooks/useFlickerDetector.test.js.map +1 -1
  181. package/dist/src/ui/hooks/useFolderTrust.test.js +45 -23
  182. package/dist/src/ui/hooks/useFolderTrust.test.js.map +1 -1
  183. package/dist/src/ui/hooks/useGeminiStream.js +7 -5
  184. package/dist/src/ui/hooks/useGeminiStream.js.map +1 -1
  185. package/dist/src/ui/hooks/useGeminiStream.test.js +42 -41
  186. package/dist/src/ui/hooks/useGeminiStream.test.js.map +1 -1
  187. package/dist/src/ui/hooks/useHistoryManager.test.js +2 -2
  188. package/dist/src/ui/hooks/useHistoryManager.test.js.map +1 -1
  189. package/dist/src/ui/hooks/useInputHistory.test.js +2 -2
  190. package/dist/src/ui/hooks/useInputHistory.test.js.map +1 -1
  191. package/dist/src/ui/hooks/useInputHistoryStore.test.js +2 -2
  192. package/dist/src/ui/hooks/useInputHistoryStore.test.js.map +1 -1
  193. package/dist/src/ui/hooks/usePermissionsModifyTrust.test.js +2 -3
  194. package/dist/src/ui/hooks/usePermissionsModifyTrust.test.js.map +1 -1
  195. package/dist/src/ui/hooks/usePhraseCycler.js +1 -1
  196. package/dist/src/ui/hooks/usePhraseCycler.js.map +1 -1
  197. package/dist/src/ui/hooks/usePhraseCycler.test.js +83 -111
  198. package/dist/src/ui/hooks/usePhraseCycler.test.js.map +1 -1
  199. package/dist/src/ui/hooks/useQuotaAndFallback.test.js +2 -2
  200. package/dist/src/ui/hooks/useQuotaAndFallback.test.js.map +1 -1
  201. package/dist/src/ui/hooks/useReactToolScheduler.test.js +1 -2
  202. package/dist/src/ui/hooks/useReactToolScheduler.test.js.map +1 -1
  203. package/dist/src/ui/hooks/useReverseSearchCompletion.test.js +2 -2
  204. package/dist/src/ui/hooks/useReverseSearchCompletion.test.js.map +1 -1
  205. package/dist/src/ui/hooks/useShellHistory.test.js +40 -17
  206. package/dist/src/ui/hooks/useShellHistory.test.js.map +1 -1
  207. package/dist/src/ui/hooks/useSlashCompletion.js +2 -2
  208. package/dist/src/ui/hooks/useSlashCompletion.js.map +1 -1
  209. package/dist/src/ui/hooks/useSlashCompletion.test.js +54 -49
  210. package/dist/src/ui/hooks/useSlashCompletion.test.js.map +1 -1
  211. package/dist/src/ui/hooks/useToolScheduler.test.js +48 -42
  212. package/dist/src/ui/hooks/useToolScheduler.test.js.map +1 -1
  213. package/dist/src/ui/keyMatchers.test.js +3 -3
  214. package/dist/src/ui/keyMatchers.test.js.map +1 -1
  215. package/dist/src/ui/types.d.ts +1 -0
  216. package/dist/src/ui/types.js +2 -0
  217. package/dist/src/ui/types.js.map +1 -1
  218. package/dist/src/ui/utils/clipboardUtils.js +2 -2
  219. package/dist/src/ui/utils/clipboardUtils.js.map +1 -1
  220. package/dist/src/ui/utils/updateCheck.js +6 -3
  221. package/dist/src/ui/utils/updateCheck.js.map +1 -1
  222. package/dist/src/ui/utils/updateCheck.test.js +5 -1
  223. package/dist/src/ui/utils/updateCheck.test.js.map +1 -1
  224. package/dist/src/utils/commentJson.js +2 -2
  225. package/dist/src/utils/commentJson.js.map +1 -1
  226. package/dist/src/utils/commentJson.test.js +7 -6
  227. package/dist/src/utils/commentJson.test.js.map +1 -1
  228. package/dist/src/utils/version.js +6 -2
  229. package/dist/src/utils/version.js.map +1 -1
  230. package/dist/src/zed-integration/acp.js +2 -1
  231. package/dist/src/zed-integration/acp.js.map +1 -1
  232. package/dist/src/zed-integration/zedIntegration.d.ts +2 -2
  233. package/dist/src/zed-integration/zedIntegration.js +4 -6
  234. package/dist/src/zed-integration/zedIntegration.js.map +1 -1
  235. package/dist/tsconfig.tsbuildinfo +1 -1
  236. package/package.json +3 -3
  237. package/dist/src/utils/package.d.ts +0 -12
  238. package/dist/src/utils/package.js +0 -24
  239. package/dist/src/utils/package.js.map +0 -1
@@ -1 +1 @@
1
- {"version":3,"file":"nonInteractiveCli.js","sourceRoot":"","sources":["../../src/nonInteractiveCli.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"nonInteractiveCli.js","sourceRoot":"","sources":["../../src/nonInteractiveCli.ts"],"names":[],"mappings":"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"}
@@ -53,6 +53,26 @@ describe('runNonInteractive', () => {
53
53
  let processStdoutSpy;
54
54
  let processStderrSpy;
55
55
  let mockGeminiClient;
56
+ const MOCK_SESSION_METRICS = {
57
+ models: {},
58
+ tools: {
59
+ totalCalls: 0,
60
+ totalSuccess: 0,
61
+ totalFail: 0,
62
+ totalDurationMs: 0,
63
+ totalDecisions: {
64
+ accept: 0,
65
+ reject: 0,
66
+ modify: 0,
67
+ auto_accept: 0,
68
+ },
69
+ byName: {},
70
+ },
71
+ files: {
72
+ totalLinesAdded: 0,
73
+ totalLinesRemoved: 0,
74
+ },
75
+ };
56
76
  beforeEach(async () => {
57
77
  mockCoreExecuteToolCall = vi.mocked(executeToolCall);
58
78
  mockShutdownTelemetry = vi.mocked(shutdownTelemetry);
@@ -143,7 +163,12 @@ describe('runNonInteractive', () => {
143
163
  },
144
164
  ];
145
165
  mockGeminiClient.sendMessageStream.mockReturnValue(createStreamFromEvents(events));
146
- await runNonInteractive(mockConfig, mockSettings, 'Test input', 'prompt-id-1');
166
+ await runNonInteractive({
167
+ config: mockConfig,
168
+ settings: mockSettings,
169
+ input: 'Test input',
170
+ prompt_id: 'prompt-id-1',
171
+ });
147
172
  expect(mockGeminiClient.sendMessageStream).toHaveBeenCalledWith([{ text: 'Test input' }], expect.any(AbortSignal), 'prompt-id-1');
148
173
  expect(getWrittenOutput()).toBe('Hello World\n');
149
174
  expect(mockShutdownTelemetry).toHaveBeenCalled();
@@ -190,7 +215,12 @@ describe('runNonInteractive', () => {
190
215
  mockGeminiClient.sendMessageStream
191
216
  .mockReturnValueOnce(createStreamFromEvents(firstCallEvents))
192
217
  .mockReturnValueOnce(createStreamFromEvents(secondCallEvents));
193
- await runNonInteractive(mockConfig, mockSettings, 'Use a tool', 'prompt-id-2');
218
+ await runNonInteractive({
219
+ config: mockConfig,
220
+ settings: mockSettings,
221
+ input: 'Use a tool',
222
+ prompt_id: 'prompt-id-2',
223
+ });
194
224
  expect(mockGeminiClient.sendMessageStream).toHaveBeenCalledTimes(2);
195
225
  expect(mockCoreExecuteToolCall).toHaveBeenCalledWith(mockConfig, expect.objectContaining({ name: 'testTool' }), expect.any(AbortSignal));
196
226
  expect(mockGeminiClient.sendMessageStream).toHaveBeenNthCalledWith(2, [{ text: 'Tool response' }], expect.any(AbortSignal), 'prompt-id-2');
@@ -245,7 +275,12 @@ describe('runNonInteractive', () => {
245
275
  .mockReturnValueOnce(createStreamFromEvents(modelTurn2))
246
276
  .mockReturnValueOnce(createStreamFromEvents(modelTurn3));
247
277
  // 4. Run the command.
248
- await runNonInteractive(mockConfig, mockSettings, 'Use mock tool multiple times', 'prompt-id-multi');
278
+ await runNonInteractive({
279
+ config: mockConfig,
280
+ settings: mockSettings,
281
+ input: 'Use mock tool multiple times',
282
+ prompt_id: 'prompt-id-multi',
283
+ });
249
284
  // 5. Verify the output.
250
285
  // The rendered output should contain the text from each turn, separated by a
251
286
  // single newline, with a final newline at the end.
@@ -305,7 +340,12 @@ describe('runNonInteractive', () => {
305
340
  mockGeminiClient.sendMessageStream
306
341
  .mockReturnValueOnce(createStreamFromEvents([toolCallEvent]))
307
342
  .mockReturnValueOnce(createStreamFromEvents(finalResponse));
308
- await runNonInteractive(mockConfig, mockSettings, 'Trigger tool error', 'prompt-id-3');
343
+ await runNonInteractive({
344
+ config: mockConfig,
345
+ settings: mockSettings,
346
+ input: 'Trigger tool error',
347
+ prompt_id: 'prompt-id-3',
348
+ });
309
349
  expect(mockCoreExecuteToolCall).toHaveBeenCalled();
310
350
  expect(consoleErrorSpy).toHaveBeenCalledWith('Error executing tool errorTool: Execution failed');
311
351
  expect(mockGeminiClient.sendMessageStream).toHaveBeenCalledTimes(2);
@@ -326,7 +366,12 @@ describe('runNonInteractive', () => {
326
366
  mockGeminiClient.sendMessageStream.mockImplementation(() => {
327
367
  throw apiError;
328
368
  });
329
- await expect(runNonInteractive(mockConfig, mockSettings, 'Initial fail', 'prompt-id-4')).rejects.toThrow(apiError);
369
+ await expect(runNonInteractive({
370
+ config: mockConfig,
371
+ settings: mockSettings,
372
+ input: 'Initial fail',
373
+ prompt_id: 'prompt-id-4',
374
+ })).rejects.toThrow(apiError);
330
375
  });
331
376
  it('should not exit if a tool is not found, and should send error back to model', async () => {
332
377
  const toolCallEvent = {
@@ -370,7 +415,12 @@ describe('runNonInteractive', () => {
370
415
  mockGeminiClient.sendMessageStream
371
416
  .mockReturnValueOnce(createStreamFromEvents([toolCallEvent]))
372
417
  .mockReturnValueOnce(createStreamFromEvents(finalResponse));
373
- await runNonInteractive(mockConfig, mockSettings, 'Trigger tool not found', 'prompt-id-5');
418
+ await runNonInteractive({
419
+ config: mockConfig,
420
+ settings: mockSettings,
421
+ input: 'Trigger tool not found',
422
+ prompt_id: 'prompt-id-5',
423
+ });
374
424
  expect(mockCoreExecuteToolCall).toHaveBeenCalled();
375
425
  expect(consoleErrorSpy).toHaveBeenCalledWith('Error executing tool nonexistentTool: Tool "nonexistentTool" not found in registry.');
376
426
  expect(mockGeminiClient.sendMessageStream).toHaveBeenCalledTimes(2);
@@ -378,7 +428,12 @@ describe('runNonInteractive', () => {
378
428
  });
379
429
  it('should exit when max session turns are exceeded', async () => {
380
430
  vi.mocked(mockConfig.getMaxSessionTurns).mockReturnValue(0);
381
- await expect(runNonInteractive(mockConfig, mockSettings, 'Trigger loop', 'prompt-id-6')).rejects.toThrow('process.exit(53) called');
431
+ await expect(runNonInteractive({
432
+ config: mockConfig,
433
+ settings: mockSettings,
434
+ input: 'Trigger loop',
435
+ prompt_id: 'prompt-id-6',
436
+ })).rejects.toThrow('process.exit(53) called');
382
437
  });
383
438
  it('should preprocess @include commands before sending to the model', async () => {
384
439
  // 1. Mock the imported atCommandProcessor
@@ -407,7 +462,12 @@ describe('runNonInteractive', () => {
407
462
  ];
408
463
  mockGeminiClient.sendMessageStream.mockReturnValue(createStreamFromEvents(events));
409
464
  // 4. Run the non-interactive mode with the raw input
410
- await runNonInteractive(mockConfig, mockSettings, rawInput, 'prompt-id-7');
465
+ await runNonInteractive({
466
+ config: mockConfig,
467
+ settings: mockSettings,
468
+ input: rawInput,
469
+ prompt_id: 'prompt-id-7',
470
+ });
411
471
  // 5. Assert that sendMessageStream was called with the PROCESSED parts, not the raw input
412
472
  expect(mockGeminiClient.sendMessageStream).toHaveBeenCalledWith(processedParts, expect.any(AbortSignal), 'prompt-id-7');
413
473
  // 6. Assert the final output is correct
@@ -423,30 +483,15 @@ describe('runNonInteractive', () => {
423
483
  ];
424
484
  mockGeminiClient.sendMessageStream.mockReturnValue(createStreamFromEvents(events));
425
485
  vi.mocked(mockConfig.getOutputFormat).mockReturnValue(OutputFormat.JSON);
426
- const mockMetrics = {
427
- models: {},
428
- tools: {
429
- totalCalls: 0,
430
- totalSuccess: 0,
431
- totalFail: 0,
432
- totalDurationMs: 0,
433
- totalDecisions: {
434
- accept: 0,
435
- reject: 0,
436
- modify: 0,
437
- auto_accept: 0,
438
- },
439
- byName: {},
440
- },
441
- files: {
442
- totalLinesAdded: 0,
443
- totalLinesRemoved: 0,
444
- },
445
- };
446
- vi.mocked(uiTelemetryService.getMetrics).mockReturnValue(mockMetrics);
447
- await runNonInteractive(mockConfig, mockSettings, 'Test input', 'prompt-id-1');
486
+ vi.mocked(uiTelemetryService.getMetrics).mockReturnValue(MOCK_SESSION_METRICS);
487
+ await runNonInteractive({
488
+ config: mockConfig,
489
+ settings: mockSettings,
490
+ input: 'Test input',
491
+ prompt_id: 'prompt-id-1',
492
+ });
448
493
  expect(mockGeminiClient.sendMessageStream).toHaveBeenCalledWith([{ text: 'Test input' }], expect.any(AbortSignal), 'prompt-id-1');
449
- expect(processStdoutSpy).toHaveBeenCalledWith(JSON.stringify({ response: 'Hello World', stats: mockMetrics }, null, 2));
494
+ expect(processStdoutSpy).toHaveBeenCalledWith(JSON.stringify({ response: 'Hello World', stats: MOCK_SESSION_METRICS }, null, 2));
450
495
  });
451
496
  it('should write JSON output with stats for tool-only commands (no text response)', async () => {
452
497
  // Test the scenario where a command completes successfully with only tool calls
@@ -500,45 +545,17 @@ describe('runNonInteractive', () => {
500
545
  .mockReturnValueOnce(createStreamFromEvents(firstCallEvents))
501
546
  .mockReturnValueOnce(createStreamFromEvents(secondCallEvents));
502
547
  vi.mocked(mockConfig.getOutputFormat).mockReturnValue(OutputFormat.JSON);
503
- const mockMetrics = {
504
- models: {},
505
- tools: {
506
- totalCalls: 1,
507
- totalSuccess: 1,
508
- totalFail: 0,
509
- totalDurationMs: 100,
510
- totalDecisions: {
511
- accept: 1,
512
- reject: 0,
513
- modify: 0,
514
- auto_accept: 0,
515
- },
516
- byName: {
517
- testTool: {
518
- count: 1,
519
- success: 1,
520
- fail: 0,
521
- durationMs: 100,
522
- decisions: {
523
- accept: 1,
524
- reject: 0,
525
- modify: 0,
526
- auto_accept: 0,
527
- },
528
- },
529
- },
530
- },
531
- files: {
532
- totalLinesAdded: 0,
533
- totalLinesRemoved: 0,
534
- },
535
- };
536
- vi.mocked(uiTelemetryService.getMetrics).mockReturnValue(mockMetrics);
537
- await runNonInteractive(mockConfig, mockSettings, 'Execute tool only', 'prompt-id-tool-only');
548
+ vi.mocked(uiTelemetryService.getMetrics).mockReturnValue(MOCK_SESSION_METRICS);
549
+ await runNonInteractive({
550
+ config: mockConfig,
551
+ settings: mockSettings,
552
+ input: 'Execute tool only',
553
+ prompt_id: 'prompt-id-tool-only',
554
+ });
538
555
  expect(mockGeminiClient.sendMessageStream).toHaveBeenCalledTimes(2);
539
556
  expect(mockCoreExecuteToolCall).toHaveBeenCalledWith(mockConfig, expect.objectContaining({ name: 'testTool' }), expect.any(AbortSignal));
540
557
  // This should output JSON with empty response but include stats
541
- expect(processStdoutSpy).toHaveBeenCalledWith(JSON.stringify({ response: '', stats: mockMetrics }, null, 2));
558
+ expect(processStdoutSpy).toHaveBeenCalledWith(JSON.stringify({ response: '', stats: MOCK_SESSION_METRICS }, null, 2));
542
559
  });
543
560
  it('should write JSON output with stats for empty response commands', async () => {
544
561
  // Test the scenario where a command completes but produces no content at all
@@ -550,31 +567,16 @@ describe('runNonInteractive', () => {
550
567
  ];
551
568
  mockGeminiClient.sendMessageStream.mockReturnValue(createStreamFromEvents(events));
552
569
  vi.mocked(mockConfig.getOutputFormat).mockReturnValue(OutputFormat.JSON);
553
- const mockMetrics = {
554
- models: {},
555
- tools: {
556
- totalCalls: 0,
557
- totalSuccess: 0,
558
- totalFail: 0,
559
- totalDurationMs: 0,
560
- totalDecisions: {
561
- accept: 0,
562
- reject: 0,
563
- modify: 0,
564
- auto_accept: 0,
565
- },
566
- byName: {},
567
- },
568
- files: {
569
- totalLinesAdded: 0,
570
- totalLinesRemoved: 0,
571
- },
572
- };
573
- vi.mocked(uiTelemetryService.getMetrics).mockReturnValue(mockMetrics);
574
- await runNonInteractive(mockConfig, mockSettings, 'Empty response test', 'prompt-id-empty');
570
+ vi.mocked(uiTelemetryService.getMetrics).mockReturnValue(MOCK_SESSION_METRICS);
571
+ await runNonInteractive({
572
+ config: mockConfig,
573
+ settings: mockSettings,
574
+ input: 'Empty response test',
575
+ prompt_id: 'prompt-id-empty',
576
+ });
575
577
  expect(mockGeminiClient.sendMessageStream).toHaveBeenCalledWith([{ text: 'Empty response test' }], expect.any(AbortSignal), 'prompt-id-empty');
576
578
  // This should output JSON with empty response but include stats
577
- expect(processStdoutSpy).toHaveBeenCalledWith(JSON.stringify({ response: '', stats: mockMetrics }, null, 2));
579
+ expect(processStdoutSpy).toHaveBeenCalledWith(JSON.stringify({ response: '', stats: MOCK_SESSION_METRICS }, null, 2));
578
580
  });
579
581
  it('should handle errors in JSON format', async () => {
580
582
  vi.mocked(mockConfig.getOutputFormat).mockReturnValue(OutputFormat.JSON);
@@ -588,7 +590,12 @@ describe('runNonInteractive', () => {
588
590
  .mockImplementation(() => { });
589
591
  let thrownError = null;
590
592
  try {
591
- await runNonInteractive(mockConfig, mockSettings, 'Test input', 'prompt-id-error');
593
+ await runNonInteractive({
594
+ config: mockConfig,
595
+ settings: mockSettings,
596
+ input: 'Test input',
597
+ prompt_id: 'prompt-id-error',
598
+ });
592
599
  // Should not reach here
593
600
  expect.fail('Expected process.exit to be called');
594
601
  }
@@ -617,7 +624,12 @@ describe('runNonInteractive', () => {
617
624
  .mockImplementation(() => { });
618
625
  let thrownError = null;
619
626
  try {
620
- await runNonInteractive(mockConfig, mockSettings, 'Invalid syntax', 'prompt-id-fatal');
627
+ await runNonInteractive({
628
+ config: mockConfig,
629
+ settings: mockSettings,
630
+ input: 'Invalid syntax',
631
+ prompt_id: 'prompt-id-fatal',
632
+ });
621
633
  // Should not reach here
622
634
  expect.fail('Expected process.exit to be called');
623
635
  }
@@ -652,7 +664,12 @@ describe('runNonInteractive', () => {
652
664
  },
653
665
  ];
654
666
  mockGeminiClient.sendMessageStream.mockReturnValue(createStreamFromEvents(events));
655
- await runNonInteractive(mockConfig, mockSettings, '/testcommand', 'prompt-id-slash');
667
+ await runNonInteractive({
668
+ config: mockConfig,
669
+ settings: mockSettings,
670
+ input: '/testcommand',
671
+ prompt_id: 'prompt-id-slash',
672
+ });
656
673
  // Ensure the prompt sent to the model is from the command, not the raw input
657
674
  expect(mockGeminiClient.sendMessageStream).toHaveBeenCalledWith([{ text: 'Prompt from command' }], expect.any(AbortSignal), 'prompt-id-slash');
658
675
  expect(getWrittenOutput()).toBe('Response from command\n');
@@ -667,7 +684,12 @@ describe('runNonInteractive', () => {
667
684
  }),
668
685
  };
669
686
  mockGetCommands.mockReturnValue([mockCommand]);
670
- await expect(runNonInteractive(mockConfig, mockSettings, '/confirm', 'prompt-id-confirm')).rejects.toThrow('Exiting due to a confirmation prompt requested by the command.');
687
+ await expect(runNonInteractive({
688
+ config: mockConfig,
689
+ settings: mockSettings,
690
+ input: '/confirm',
691
+ prompt_id: 'prompt-id-confirm',
692
+ })).rejects.toThrow('Exiting due to a confirmation prompt requested by the command.');
671
693
  });
672
694
  it('should treat an unknown slash command as a regular prompt', async () => {
673
695
  // No commands are mocked, so any slash command is "unknown"
@@ -680,7 +702,12 @@ describe('runNonInteractive', () => {
680
702
  },
681
703
  ];
682
704
  mockGeminiClient.sendMessageStream.mockReturnValue(createStreamFromEvents(events));
683
- await runNonInteractive(mockConfig, mockSettings, '/unknowncommand', 'prompt-id-unknown');
705
+ await runNonInteractive({
706
+ config: mockConfig,
707
+ settings: mockSettings,
708
+ input: '/unknowncommand',
709
+ prompt_id: 'prompt-id-unknown',
710
+ });
684
711
  // Ensure the raw input is sent to the model
685
712
  expect(mockGeminiClient.sendMessageStream).toHaveBeenCalledWith([{ text: '/unknowncommand' }], expect.any(AbortSignal), 'prompt-id-unknown');
686
713
  expect(getWrittenOutput()).toBe('Response to unknown\n');
@@ -694,7 +721,12 @@ describe('runNonInteractive', () => {
694
721
  }),
695
722
  };
696
723
  mockGetCommands.mockReturnValue([mockCommand]);
697
- await expect(runNonInteractive(mockConfig, mockSettings, '/noaction', 'prompt-id-unhandled')).rejects.toThrow('Exiting due to command result that is not supported in non-interactive mode.');
724
+ await expect(runNonInteractive({
725
+ config: mockConfig,
726
+ settings: mockSettings,
727
+ input: '/noaction',
728
+ prompt_id: 'prompt-id-unhandled',
729
+ })).rejects.toThrow('Exiting due to command result that is not supported in non-interactive mode.');
698
730
  });
699
731
  it('should pass arguments to the slash command action', async () => {
700
732
  const mockAction = vi.fn().mockResolvedValue({
@@ -715,7 +747,12 @@ describe('runNonInteractive', () => {
715
747
  },
716
748
  ];
717
749
  mockGeminiClient.sendMessageStream.mockReturnValue(createStreamFromEvents(events));
718
- await runNonInteractive(mockConfig, mockSettings, '/testargs arg1 arg2', 'prompt-id-args');
750
+ await runNonInteractive({
751
+ config: mockConfig,
752
+ settings: mockSettings,
753
+ input: '/testargs arg1 arg2',
754
+ prompt_id: 'prompt-id-args',
755
+ });
719
756
  expect(mockAction).toHaveBeenCalledWith(expect.any(Object), 'arg1 arg2');
720
757
  expect(getWrittenOutput()).toBe('Acknowledged\n');
721
758
  });
@@ -732,7 +769,12 @@ describe('runNonInteractive', () => {
732
769
  },
733
770
  ];
734
771
  mockGeminiClient.sendMessageStream.mockReturnValue(createStreamFromEvents(events));
735
- await runNonInteractive(mockConfig, mockSettings, '/mycommand', 'prompt-id-loaders');
772
+ await runNonInteractive({
773
+ config: mockConfig,
774
+ settings: mockSettings,
775
+ input: '/mycommand',
776
+ prompt_id: 'prompt-id-loaders',
777
+ });
736
778
  // Check that loaders were instantiated with the config
737
779
  expect(FileCommandLoader).toHaveBeenCalledTimes(1);
738
780
  expect(FileCommandLoader).toHaveBeenCalledWith(mockConfig);
@@ -797,7 +839,12 @@ describe('runNonInteractive', () => {
797
839
  mockGeminiClient.sendMessageStream
798
840
  .mockReturnValueOnce(createStreamFromEvents(firstCallEvents))
799
841
  .mockReturnValueOnce(createStreamFromEvents(secondCallEvents));
800
- await runNonInteractive(mockConfig, mockSettings, 'List the files', 'prompt-id-allowed');
842
+ await runNonInteractive({
843
+ config: mockConfig,
844
+ settings: mockSettings,
845
+ input: 'List the files',
846
+ prompt_id: 'prompt-id-allowed',
847
+ });
801
848
  expect(mockCoreExecuteToolCall).toHaveBeenCalledWith(mockConfig, expect.objectContaining({ name: 'ShellTool' }), expect.any(AbortSignal));
802
849
  expect(getWrittenOutput()).toBe('file.txt\n');
803
850
  });
@@ -810,7 +857,12 @@ describe('runNonInteractive', () => {
810
857
  },
811
858
  ];
812
859
  mockGeminiClient.sendMessageStream.mockReturnValue(createStreamFromEvents(events));
813
- await runNonInteractive(mockConfig, mockSettings, 'test', 'prompt-id-events');
860
+ await runNonInteractive({
861
+ config: mockConfig,
862
+ settings: mockSettings,
863
+ input: 'test',
864
+ prompt_id: 'prompt-id-events',
865
+ });
814
866
  expect(mockCoreEvents.on).toHaveBeenCalledWith(CoreEvent.UserFeedback, expect.any(Function));
815
867
  expect(mockCoreEvents.drainFeedbackBacklog).toHaveBeenCalledTimes(1);
816
868
  });
@@ -822,7 +874,12 @@ describe('runNonInteractive', () => {
822
874
  },
823
875
  ];
824
876
  mockGeminiClient.sendMessageStream.mockReturnValue(createStreamFromEvents(events));
825
- await runNonInteractive(mockConfig, mockSettings, 'test', 'prompt-id-events');
877
+ await runNonInteractive({
878
+ config: mockConfig,
879
+ settings: mockSettings,
880
+ input: 'test',
881
+ prompt_id: 'prompt-id-events',
882
+ });
826
883
  expect(mockCoreEvents.off).toHaveBeenCalledWith(CoreEvent.UserFeedback, expect.any(Function));
827
884
  });
828
885
  it('logs to process.stderr when UserFeedback event is received', async () => {
@@ -833,7 +890,12 @@ describe('runNonInteractive', () => {
833
890
  },
834
891
  ];
835
892
  mockGeminiClient.sendMessageStream.mockReturnValue(createStreamFromEvents(events));
836
- await runNonInteractive(mockConfig, mockSettings, 'test', 'prompt-id-events');
893
+ await runNonInteractive({
894
+ config: mockConfig,
895
+ settings: mockSettings,
896
+ input: 'test',
897
+ prompt_id: 'prompt-id-events',
898
+ });
837
899
  // Get the registered handler
838
900
  const handler = mockCoreEvents.on.mock.calls.find((call) => call[0] === CoreEvent.UserFeedback)?.[1];
839
901
  expect(handler).toBeDefined();
@@ -854,7 +916,12 @@ describe('runNonInteractive', () => {
854
916
  },
855
917
  ];
856
918
  mockGeminiClient.sendMessageStream.mockReturnValue(createStreamFromEvents(events));
857
- await runNonInteractive(mockConfig, mockSettings, 'test', 'prompt-id-events');
919
+ await runNonInteractive({
920
+ config: mockConfig,
921
+ settings: mockSettings,
922
+ input: 'test',
923
+ prompt_id: 'prompt-id-events',
924
+ });
858
925
  // Get the registered handler
859
926
  const handler = mockCoreEvents.on.mock.calls.find((call) => call[0] === CoreEvent.UserFeedback)?.[1];
860
927
  expect(handler).toBeDefined();
@@ -872,5 +939,44 @@ describe('runNonInteractive', () => {
872
939
  expect(processStderrSpy).toHaveBeenCalledWith('Error: Original error\n at test\n');
873
940
  });
874
941
  });
942
+ it('should display a deprecation warning if hasDeprecatedPromptArg is true', async () => {
943
+ const events = [
944
+ { type: GeminiEventType.Content, value: 'Final Answer' },
945
+ {
946
+ type: GeminiEventType.Finished,
947
+ value: { reason: undefined, usageMetadata: { totalTokenCount: 10 } },
948
+ },
949
+ ];
950
+ mockGeminiClient.sendMessageStream.mockReturnValue(createStreamFromEvents(events));
951
+ await runNonInteractive({
952
+ config: mockConfig,
953
+ settings: mockSettings,
954
+ input: 'Test input',
955
+ prompt_id: 'prompt-id-deprecated',
956
+ hasDeprecatedPromptArg: true,
957
+ });
958
+ expect(processStderrSpy).toHaveBeenCalledWith('The --prompt (-p) flag has been deprecated and will be removed in a future version. Please use a positional argument for your prompt. See gemini --help for more information.\n');
959
+ expect(processStdoutSpy).toHaveBeenCalledWith('Final Answer');
960
+ });
961
+ it('should display a deprecation warning for JSON format', async () => {
962
+ const events = [
963
+ { type: GeminiEventType.Content, value: 'Final Answer' },
964
+ {
965
+ type: GeminiEventType.Finished,
966
+ value: { reason: undefined, usageMetadata: { totalTokenCount: 10 } },
967
+ },
968
+ ];
969
+ mockGeminiClient.sendMessageStream.mockReturnValue(createStreamFromEvents(events));
970
+ vi.mocked(mockConfig.getOutputFormat).mockReturnValue(OutputFormat.JSON);
971
+ await runNonInteractive({
972
+ config: mockConfig,
973
+ settings: mockSettings,
974
+ input: 'Test input',
975
+ prompt_id: 'prompt-id-deprecated-json',
976
+ hasDeprecatedPromptArg: true,
977
+ });
978
+ const deprecateText = 'The --prompt (-p) flag has been deprecated and will be removed in a future version. Please use a positional argument for your prompt. See gemini --help for more information.\n';
979
+ expect(processStderrSpy).toHaveBeenCalledWith(deprecateText);
980
+ });
875
981
  });
876
982
  //# sourceMappingURL=nonInteractiveCli.test.js.map