@google/gemini-cli 0.7.0-nightly.20250918.2722473a → 0.7.0-preview.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (270) hide show
  1. package/dist/package.json +4 -3
  2. package/dist/src/commands/extensions/disable.d.ts +1 -2
  3. package/dist/src/commands/extensions/disable.js +17 -3
  4. package/dist/src/commands/extensions/disable.js.map +1 -1
  5. package/dist/src/commands/extensions/enable.d.ts +1 -2
  6. package/dist/src/commands/extensions/enable.js +17 -4
  7. package/dist/src/commands/extensions/enable.js.map +1 -1
  8. package/dist/src/commands/extensions/install.d.ts +1 -0
  9. package/dist/src/commands/extensions/install.js +10 -2
  10. package/dist/src/commands/extensions/install.js.map +1 -1
  11. package/dist/src/commands/extensions/install.test.js +12 -2
  12. package/dist/src/commands/extensions/install.test.js.map +1 -1
  13. package/dist/src/commands/extensions/link.js +1 -1
  14. package/dist/src/commands/extensions/link.js.map +1 -1
  15. package/dist/src/commands/extensions/new.test.js +2 -2
  16. package/dist/src/commands/extensions/new.test.js.map +1 -1
  17. package/dist/src/commands/extensions/uninstall.js +1 -1
  18. package/dist/src/commands/extensions/uninstall.js.map +1 -1
  19. package/dist/src/commands/extensions/uninstall.test.js +4 -1
  20. package/dist/src/commands/extensions/uninstall.test.js.map +1 -1
  21. package/dist/src/commands/extensions/update.js +38 -17
  22. package/dist/src/commands/extensions/update.js.map +1 -1
  23. package/dist/src/commands/mcp/add.js +6 -1
  24. package/dist/src/commands/mcp/add.js.map +1 -1
  25. package/dist/src/config/config.d.ts +2 -0
  26. package/dist/src/config/config.js +84 -64
  27. package/dist/src/config/config.js.map +1 -1
  28. package/dist/src/config/extension.d.ts +5 -18
  29. package/dist/src/config/extension.js +95 -201
  30. package/dist/src/config/extension.js.map +1 -1
  31. package/dist/src/config/extensions/extensionEnablement.d.ts +14 -0
  32. package/dist/src/config/extensions/extensionEnablement.js +81 -33
  33. package/dist/src/config/extensions/extensionEnablement.js.map +1 -1
  34. package/dist/src/config/extensions/extensionEnablement.test.js +164 -19
  35. package/dist/src/config/extensions/extensionEnablement.test.js.map +1 -1
  36. package/dist/src/config/extensions/github.d.ts +29 -0
  37. package/dist/src/config/extensions/github.js +301 -0
  38. package/dist/src/config/extensions/github.js.map +1 -0
  39. package/dist/src/config/extensions/github.test.d.ts +6 -0
  40. package/dist/src/config/extensions/github.test.js +271 -0
  41. package/dist/src/config/extensions/github.test.js.map +1 -0
  42. package/dist/src/config/extensions/update.d.ts +20 -0
  43. package/dist/src/config/extensions/update.js +94 -0
  44. package/dist/src/config/extensions/update.js.map +1 -0
  45. package/dist/src/config/extensions/update.test.d.ts +6 -0
  46. package/dist/src/config/extensions/update.test.js +327 -0
  47. package/dist/src/config/extensions/update.test.js.map +1 -0
  48. package/dist/src/config/policy-engine.integration.test.d.ts +6 -0
  49. package/dist/src/config/policy-engine.integration.test.js +270 -0
  50. package/dist/src/config/policy-engine.integration.test.js.map +1 -0
  51. package/dist/src/config/policy.d.ts +8 -0
  52. package/dist/src/config/policy.js +150 -0
  53. package/dist/src/config/policy.js.map +1 -0
  54. package/dist/src/config/policy.test.d.ts +6 -0
  55. package/dist/src/config/policy.test.js +336 -0
  56. package/dist/src/config/policy.test.js.map +1 -0
  57. package/dist/src/config/settings.js +19 -4
  58. package/dist/src/config/settings.js.map +1 -1
  59. package/dist/src/config/settingsSchema.d.ts +27 -9
  60. package/dist/src/config/settingsSchema.js +27 -9
  61. package/dist/src/config/settingsSchema.js.map +1 -1
  62. package/dist/src/config/trustedFolders.d.ts +10 -1
  63. package/dist/src/config/trustedFolders.js +40 -14
  64. package/dist/src/config/trustedFolders.js.map +1 -1
  65. package/dist/src/config/trustedFolders.test.js +95 -14
  66. package/dist/src/config/trustedFolders.test.js.map +1 -1
  67. package/dist/src/gemini.js +102 -127
  68. package/dist/src/gemini.js.map +1 -1
  69. package/dist/src/gemini.test.js +74 -5
  70. package/dist/src/gemini.test.js.map +1 -1
  71. package/dist/src/generated/git-commit.d.ts +2 -2
  72. package/dist/src/generated/git-commit.js +2 -2
  73. package/dist/src/generated/git-commit.js.map +1 -1
  74. package/dist/src/nonInteractiveCli.d.ts +2 -1
  75. package/dist/src/nonInteractiveCli.js +29 -16
  76. package/dist/src/nonInteractiveCli.js.map +1 -1
  77. package/dist/src/nonInteractiveCliCommands.d.ts +17 -0
  78. package/dist/src/nonInteractiveCliCommands.js +79 -0
  79. package/dist/src/nonInteractiveCliCommands.js.map +1 -0
  80. package/dist/src/services/BuiltinCommandLoader.js +4 -0
  81. package/dist/src/services/BuiltinCommandLoader.js.map +1 -1
  82. package/dist/src/services/BuiltinCommandLoader.test.js +50 -1
  83. package/dist/src/services/BuiltinCommandLoader.test.js.map +1 -1
  84. package/dist/src/test-utils/createExtension.d.ts +15 -0
  85. package/dist/src/test-utils/createExtension.js +25 -0
  86. package/dist/src/test-utils/createExtension.js.map +1 -0
  87. package/dist/src/test-utils/mockCommandContext.js +2 -0
  88. package/dist/src/test-utils/mockCommandContext.js.map +1 -1
  89. package/dist/src/test-utils/render.d.ts +3 -1
  90. package/dist/src/test-utils/render.js +2 -1
  91. package/dist/src/test-utils/render.js.map +1 -1
  92. package/dist/src/ui/App.js +3 -2
  93. package/dist/src/ui/App.js.map +1 -1
  94. package/dist/src/ui/AppContainer.js +55 -42
  95. package/dist/src/ui/AppContainer.js.map +1 -1
  96. package/dist/src/ui/AppContainer.test.js +130 -0
  97. package/dist/src/ui/AppContainer.test.js.map +1 -1
  98. package/dist/src/ui/IdeIntegrationNudge.d.ts +2 -2
  99. package/dist/src/ui/IdeIntegrationNudge.js +1 -2
  100. package/dist/src/ui/IdeIntegrationNudge.js.map +1 -1
  101. package/dist/src/ui/commands/chatCommand.js +14 -3
  102. package/dist/src/ui/commands/chatCommand.js.map +1 -1
  103. package/dist/src/ui/commands/clearCommand.js +1 -1
  104. package/dist/src/ui/commands/clearCommand.js.map +1 -1
  105. package/dist/src/ui/commands/extensionsCommand.js +22 -6
  106. package/dist/src/ui/commands/extensionsCommand.js.map +1 -1
  107. package/dist/src/ui/commands/ideCommand.js +1 -1
  108. package/dist/src/ui/commands/ideCommand.js.map +1 -1
  109. package/dist/src/ui/commands/mcpCommand.js +9 -2
  110. package/dist/src/ui/commands/mcpCommand.js.map +1 -1
  111. package/dist/src/ui/commands/modelCommand.d.ts +7 -0
  112. package/dist/src/ui/commands/modelCommand.js +16 -0
  113. package/dist/src/ui/commands/modelCommand.js.map +1 -0
  114. package/dist/src/ui/commands/modelCommand.test.d.ts +6 -0
  115. package/dist/src/ui/commands/modelCommand.test.js +30 -0
  116. package/dist/src/ui/commands/modelCommand.test.js.map +1 -0
  117. package/dist/src/ui/commands/permissionsCommand.d.ts +7 -0
  118. package/dist/src/ui/commands/permissionsCommand.js +16 -0
  119. package/dist/src/ui/commands/permissionsCommand.js.map +1 -0
  120. package/dist/src/ui/commands/permissionsCommand.test.d.ts +6 -0
  121. package/dist/src/ui/commands/permissionsCommand.test.js +30 -0
  122. package/dist/src/ui/commands/permissionsCommand.test.js.map +1 -0
  123. package/dist/src/ui/commands/types.d.ts +3 -3
  124. package/dist/src/ui/commands/types.js.map +1 -1
  125. package/dist/src/ui/components/AppHeader.js +2 -5
  126. package/dist/src/ui/components/AppHeader.js.map +1 -1
  127. package/dist/src/ui/components/Composer.js +4 -10
  128. package/dist/src/ui/components/Composer.js.map +1 -1
  129. package/dist/src/ui/components/Composer.test.js +13 -21
  130. package/dist/src/ui/components/Composer.test.js.map +1 -1
  131. package/dist/src/ui/components/DialogManager.d.ts +6 -1
  132. package/dist/src/ui/components/DialogManager.js +10 -1
  133. package/dist/src/ui/components/DialogManager.js.map +1 -1
  134. package/dist/src/ui/components/HistoryItemDisplay.d.ts +1 -1
  135. package/dist/src/ui/components/HistoryItemDisplay.js +1 -1
  136. package/dist/src/ui/components/HistoryItemDisplay.js.map +1 -1
  137. package/dist/src/ui/components/InputPrompt.d.ts +1 -1
  138. package/dist/src/ui/components/InputPrompt.js +17 -8
  139. package/dist/src/ui/components/InputPrompt.js.map +1 -1
  140. package/dist/src/ui/components/MainContent.js +1 -1
  141. package/dist/src/ui/components/MainContent.js.map +1 -1
  142. package/dist/src/ui/components/ModelDialog.d.ts +11 -0
  143. package/dist/src/ui/components/ModelDialog.js +53 -0
  144. package/dist/src/ui/components/ModelDialog.js.map +1 -0
  145. package/dist/src/ui/components/ModelDialog.test.d.ts +6 -0
  146. package/dist/src/ui/components/ModelDialog.test.js +153 -0
  147. package/dist/src/ui/components/ModelDialog.test.js.map +1 -0
  148. package/dist/src/ui/components/PermissionsModifyTrustDialog.d.ts +13 -0
  149. package/dist/src/ui/components/PermissionsModifyTrustDialog.js +45 -0
  150. package/dist/src/ui/components/PermissionsModifyTrustDialog.js.map +1 -0
  151. package/dist/src/ui/components/PermissionsModifyTrustDialog.test.d.ts +6 -0
  152. package/dist/src/ui/components/PermissionsModifyTrustDialog.test.js +158 -0
  153. package/dist/src/ui/components/PermissionsModifyTrustDialog.test.js.map +1 -0
  154. package/dist/src/ui/components/QueuedMessageDisplay.d.ts +9 -0
  155. package/dist/src/ui/components/QueuedMessageDisplay.js +20 -0
  156. package/dist/src/ui/components/QueuedMessageDisplay.js.map +1 -0
  157. package/dist/src/ui/components/QueuedMessageDisplay.test.d.ts +6 -0
  158. package/dist/src/ui/components/QueuedMessageDisplay.test.js +56 -0
  159. package/dist/src/ui/components/QueuedMessageDisplay.test.js.map +1 -0
  160. package/dist/src/ui/components/SettingsDialog.js +1 -1
  161. package/dist/src/ui/components/SettingsDialog.js.map +1 -1
  162. package/dist/src/ui/components/SettingsDialog.test.js +50 -16
  163. package/dist/src/ui/components/SettingsDialog.test.js.map +1 -1
  164. package/dist/src/ui/components/messages/ToolGroupMessage.d.ts +1 -1
  165. package/dist/src/ui/components/messages/ToolGroupMessage.js +11 -9
  166. package/dist/src/ui/components/messages/ToolGroupMessage.js.map +1 -1
  167. package/dist/src/ui/components/messages/ToolMessage.d.ts +1 -1
  168. package/dist/src/ui/components/messages/ToolMessage.js +13 -6
  169. package/dist/src/ui/components/messages/ToolMessage.js.map +1 -1
  170. package/dist/src/ui/components/shared/BaseSelectionList.d.ts +43 -0
  171. package/dist/src/ui/components/shared/BaseSelectionList.js +72 -0
  172. package/dist/src/ui/components/shared/BaseSelectionList.js.map +1 -0
  173. package/dist/src/ui/components/shared/BaseSelectionList.test.d.ts +6 -0
  174. package/dist/src/ui/components/shared/BaseSelectionList.test.js +374 -0
  175. package/dist/src/ui/components/shared/BaseSelectionList.test.js.map +1 -0
  176. package/dist/src/ui/components/shared/DescriptiveRadioButtonSelect.d.ts +36 -0
  177. package/dist/src/ui/components/shared/DescriptiveRadioButtonSelect.js +13 -0
  178. package/dist/src/ui/components/shared/DescriptiveRadioButtonSelect.js.map +1 -0
  179. package/dist/src/ui/components/shared/DescriptiveRadioButtonSelect.test.d.ts +6 -0
  180. package/dist/src/ui/components/shared/DescriptiveRadioButtonSelect.test.js +68 -0
  181. package/dist/src/ui/components/shared/DescriptiveRadioButtonSelect.test.js.map +1 -0
  182. package/dist/src/ui/components/shared/RadioButtonSelect.js +9 -104
  183. package/dist/src/ui/components/shared/RadioButtonSelect.js.map +1 -1
  184. package/dist/src/ui/components/shared/RadioButtonSelect.test.js +113 -92
  185. package/dist/src/ui/components/shared/RadioButtonSelect.test.js.map +1 -1
  186. package/dist/src/ui/components/shared/text-buffer.js +63 -2
  187. package/dist/src/ui/components/shared/text-buffer.js.map +1 -1
  188. package/dist/src/ui/constants.d.ts +1 -0
  189. package/dist/src/ui/constants.js +1 -0
  190. package/dist/src/ui/constants.js.map +1 -1
  191. package/dist/src/ui/contexts/KeypressContext.js +3 -0
  192. package/dist/src/ui/contexts/KeypressContext.js.map +1 -1
  193. package/dist/src/ui/contexts/SessionContext.d.ts +6 -0
  194. package/dist/src/ui/contexts/SessionContext.js +107 -5
  195. package/dist/src/ui/contexts/SessionContext.js.map +1 -1
  196. package/dist/src/ui/contexts/ShellFocusContext.d.ts +7 -0
  197. package/dist/src/ui/contexts/ShellFocusContext.js +9 -0
  198. package/dist/src/ui/contexts/ShellFocusContext.js.map +1 -0
  199. package/dist/src/ui/contexts/UIActionsContext.d.ts +2 -0
  200. package/dist/src/ui/contexts/UIActionsContext.js.map +1 -1
  201. package/dist/src/ui/contexts/UIStateContext.d.ts +7 -4
  202. package/dist/src/ui/contexts/UIStateContext.js +1 -0
  203. package/dist/src/ui/contexts/UIStateContext.js.map +1 -1
  204. package/dist/src/ui/hooks/shellCommandProcessor.js +7 -5
  205. package/dist/src/ui/hooks/shellCommandProcessor.js.map +1 -1
  206. package/dist/src/ui/hooks/shellCommandProcessor.test.js +1 -1
  207. package/dist/src/ui/hooks/shellCommandProcessor.test.js.map +1 -1
  208. package/dist/src/ui/hooks/slashCommandProcessor.d.ts +4 -1
  209. package/dist/src/ui/hooks/slashCommandProcessor.js +7 -1
  210. package/dist/src/ui/hooks/slashCommandProcessor.js.map +1 -1
  211. package/dist/src/ui/hooks/useExtensionUpdates.d.ts +12 -0
  212. package/dist/src/ui/hooks/useExtensionUpdates.js +64 -0
  213. package/dist/src/ui/hooks/useExtensionUpdates.js.map +1 -0
  214. package/dist/src/ui/hooks/useExtensionUpdates.test.d.ts +6 -0
  215. package/dist/src/ui/hooks/useExtensionUpdates.test.js +165 -0
  216. package/dist/src/ui/hooks/useExtensionUpdates.test.js.map +1 -0
  217. package/dist/src/ui/hooks/useFocus.js +10 -0
  218. package/dist/src/ui/hooks/useFocus.js.map +1 -1
  219. package/dist/src/ui/hooks/useFolderTrust.d.ts +1 -1
  220. package/dist/src/ui/hooks/useFolderTrust.js +2 -7
  221. package/dist/src/ui/hooks/useFolderTrust.js.map +1 -1
  222. package/dist/src/ui/hooks/useGeminiStream.js +7 -6
  223. package/dist/src/ui/hooks/useGeminiStream.js.map +1 -1
  224. package/dist/src/ui/hooks/useGitBranchName.test.js.map +1 -1
  225. package/dist/src/ui/hooks/useModelCommand.d.ts +12 -0
  226. package/dist/src/ui/hooks/useModelCommand.js +21 -0
  227. package/dist/src/ui/hooks/useModelCommand.js.map +1 -0
  228. package/dist/src/ui/hooks/useModelCommand.test.d.ts +6 -0
  229. package/dist/src/ui/hooks/useModelCommand.test.js +35 -0
  230. package/dist/src/ui/hooks/useModelCommand.test.js.map +1 -0
  231. package/dist/src/ui/hooks/usePermissionsModifyTrust.d.ts +17 -0
  232. package/dist/src/ui/hooks/usePermissionsModifyTrust.js +78 -0
  233. package/dist/src/ui/hooks/usePermissionsModifyTrust.js.map +1 -0
  234. package/dist/src/ui/hooks/usePermissionsModifyTrust.test.d.ts +6 -0
  235. package/dist/src/ui/hooks/usePermissionsModifyTrust.test.js +182 -0
  236. package/dist/src/ui/hooks/usePermissionsModifyTrust.test.js.map +1 -0
  237. package/dist/src/ui/hooks/useSelectionList.d.ts +33 -0
  238. package/dist/src/ui/hooks/useSelectionList.js +252 -0
  239. package/dist/src/ui/hooks/useSelectionList.js.map +1 -0
  240. package/dist/src/ui/hooks/useSelectionList.test.d.ts +6 -0
  241. package/dist/src/ui/hooks/useSelectionList.test.js +651 -0
  242. package/dist/src/ui/hooks/useSelectionList.test.js.map +1 -0
  243. package/dist/src/ui/hooks/useSlashCompletion.js +7 -2
  244. package/dist/src/ui/hooks/useSlashCompletion.js.map +1 -1
  245. package/dist/src/ui/hooks/useSlashCompletion.test.js +33 -0
  246. package/dist/src/ui/hooks/useSlashCompletion.test.js.map +1 -1
  247. package/dist/src/ui/hooks/useStateAndRef.d.ts +1 -1
  248. package/dist/src/ui/hooks/useStateAndRef.js +2 -2
  249. package/dist/src/ui/hooks/useStateAndRef.js.map +1 -1
  250. package/dist/src/ui/noninteractive/nonInteractiveUi.d.ts +12 -0
  251. package/dist/src/ui/noninteractive/nonInteractiveUi.js +27 -0
  252. package/dist/src/ui/noninteractive/nonInteractiveUi.js.map +1 -0
  253. package/dist/src/ui/privacy/CloudFreePrivacyNotice.js +3 -3
  254. package/dist/src/ui/privacy/CloudFreePrivacyNotice.js.map +1 -1
  255. package/dist/src/ui/state/extensions.d.ts +2 -1
  256. package/dist/src/ui/state/extensions.js +1 -0
  257. package/dist/src/ui/state/extensions.js.map +1 -1
  258. package/dist/src/utils/deepMerge.d.ts +2 -3
  259. package/dist/src/utils/events.d.ts +2 -1
  260. package/dist/src/utils/events.js +1 -0
  261. package/dist/src/utils/events.js.map +1 -1
  262. package/dist/src/utils/relaunch.d.ts +7 -0
  263. package/dist/src/utils/relaunch.js +57 -0
  264. package/dist/src/utils/relaunch.js.map +1 -0
  265. package/dist/src/utils/relaunch.test.d.ts +6 -0
  266. package/dist/src/utils/relaunch.test.js +273 -0
  267. package/dist/src/utils/relaunch.test.js.map +1 -0
  268. package/dist/src/zed-integration/schema.d.ts +22 -22
  269. package/dist/tsconfig.tsbuildinfo +1 -1
  270. package/package.json +5 -4
@@ -0,0 +1,273 @@
1
+ /**
2
+ * @license
3
+ * Copyright 2025 Google LLC
4
+ * SPDX-License-Identifier: Apache-2.0
5
+ */
6
+ import { vi, describe, it, expect, beforeEach, afterEach, } from 'vitest';
7
+ import { EventEmitter } from 'node:events';
8
+ import { RELAUNCH_EXIT_CODE } from './processUtils.js';
9
+ import { spawn } from 'node:child_process';
10
+ vi.mock('node:child_process', async (importOriginal) => {
11
+ const actual = await importOriginal();
12
+ return {
13
+ ...actual,
14
+ spawn: vi.fn(),
15
+ };
16
+ });
17
+ const mockedSpawn = vi.mocked(spawn);
18
+ // Import the functions initially
19
+ import { relaunchAppInChildProcess, relaunchOnExitCode } from './relaunch.js';
20
+ describe('relaunchOnExitCode', () => {
21
+ let processExitSpy;
22
+ let consoleErrorSpy;
23
+ let stdinResumeSpy;
24
+ beforeEach(() => {
25
+ processExitSpy = vi.spyOn(process, 'exit').mockImplementation(() => {
26
+ throw new Error('PROCESS_EXIT_CALLED');
27
+ });
28
+ consoleErrorSpy = vi.spyOn(console, 'error').mockImplementation(() => { });
29
+ stdinResumeSpy = vi
30
+ .spyOn(process.stdin, 'resume')
31
+ .mockImplementation(() => process.stdin);
32
+ vi.clearAllMocks();
33
+ });
34
+ afterEach(() => {
35
+ processExitSpy.mockRestore();
36
+ consoleErrorSpy.mockRestore();
37
+ stdinResumeSpy.mockRestore();
38
+ });
39
+ it('should exit with non-RELAUNCH_EXIT_CODE', async () => {
40
+ const runner = vi.fn().mockResolvedValue(0);
41
+ await expect(relaunchOnExitCode(runner)).rejects.toThrow('PROCESS_EXIT_CALLED');
42
+ expect(runner).toHaveBeenCalledTimes(1);
43
+ expect(processExitSpy).toHaveBeenCalledWith(0);
44
+ });
45
+ it('should continue running when RELAUNCH_EXIT_CODE is returned', async () => {
46
+ let callCount = 0;
47
+ const runner = vi.fn().mockImplementation(async () => {
48
+ callCount++;
49
+ if (callCount === 1)
50
+ return RELAUNCH_EXIT_CODE;
51
+ if (callCount === 2)
52
+ return RELAUNCH_EXIT_CODE;
53
+ return 0; // Exit on third call
54
+ });
55
+ await expect(relaunchOnExitCode(runner)).rejects.toThrow('PROCESS_EXIT_CALLED');
56
+ expect(runner).toHaveBeenCalledTimes(3);
57
+ expect(processExitSpy).toHaveBeenCalledWith(0);
58
+ });
59
+ it('should handle runner errors', async () => {
60
+ const error = new Error('Runner failed');
61
+ const runner = vi.fn().mockRejectedValue(error);
62
+ await expect(relaunchOnExitCode(runner)).rejects.toThrow('PROCESS_EXIT_CALLED');
63
+ expect(runner).toHaveBeenCalledTimes(1);
64
+ expect(consoleErrorSpy).toHaveBeenCalledWith('Fatal error: Failed to relaunch the CLI process.', error);
65
+ expect(stdinResumeSpy).toHaveBeenCalled();
66
+ expect(processExitSpy).toHaveBeenCalledWith(1);
67
+ });
68
+ });
69
+ describe('relaunchAppInChildProcess', () => {
70
+ let processExitSpy;
71
+ let consoleErrorSpy;
72
+ let stdinPauseSpy;
73
+ let stdinResumeSpy;
74
+ // Store original values to restore later
75
+ const originalEnv = { ...process.env };
76
+ const originalExecArgv = [...process.execArgv];
77
+ const originalArgv = [...process.argv];
78
+ const originalExecPath = process.execPath;
79
+ beforeEach(() => {
80
+ vi.clearAllMocks();
81
+ process.env = { ...originalEnv };
82
+ delete process.env['GEMINI_CLI_NO_RELAUNCH'];
83
+ process.execArgv = [...originalExecArgv];
84
+ process.argv = [...originalArgv];
85
+ process.execPath = '/usr/bin/node';
86
+ processExitSpy = vi.spyOn(process, 'exit').mockImplementation(() => {
87
+ throw new Error('PROCESS_EXIT_CALLED');
88
+ });
89
+ consoleErrorSpy = vi.spyOn(console, 'error').mockImplementation(() => { });
90
+ stdinPauseSpy = vi
91
+ .spyOn(process.stdin, 'pause')
92
+ .mockImplementation(() => process.stdin);
93
+ stdinResumeSpy = vi
94
+ .spyOn(process.stdin, 'resume')
95
+ .mockImplementation(() => process.stdin);
96
+ });
97
+ afterEach(() => {
98
+ process.env = { ...originalEnv };
99
+ process.execArgv = [...originalExecArgv];
100
+ process.argv = [...originalArgv];
101
+ process.execPath = originalExecPath;
102
+ processExitSpy.mockRestore();
103
+ consoleErrorSpy.mockRestore();
104
+ stdinPauseSpy.mockRestore();
105
+ stdinResumeSpy.mockRestore();
106
+ });
107
+ describe('when GEMINI_CLI_NO_RELAUNCH is set', () => {
108
+ it('should return early without spawning a child process', async () => {
109
+ process.env['GEMINI_CLI_NO_RELAUNCH'] = 'true';
110
+ await relaunchAppInChildProcess(['--test'], ['--verbose']);
111
+ expect(mockedSpawn).not.toHaveBeenCalled();
112
+ expect(processExitSpy).not.toHaveBeenCalled();
113
+ });
114
+ });
115
+ describe('when GEMINI_CLI_NO_RELAUNCH is not set', () => {
116
+ beforeEach(() => {
117
+ delete process.env['GEMINI_CLI_NO_RELAUNCH'];
118
+ });
119
+ it('should construct correct node arguments from execArgv, additionalNodeArgs, script, additionalScriptArgs, and argv', () => {
120
+ // Test the argument construction logic directly by extracting it into a testable function
121
+ // This tests the same logic that's used in relaunchAppInChildProcess
122
+ // Setup test data to verify argument ordering
123
+ const mockExecArgv = ['--inspect=9229', '--trace-warnings'];
124
+ const mockArgv = [
125
+ '/usr/bin/node',
126
+ '/path/to/cli.js',
127
+ 'command',
128
+ '--flag=value',
129
+ '--verbose',
130
+ ];
131
+ const additionalNodeArgs = [
132
+ '--max-old-space-size=4096',
133
+ '--experimental-modules',
134
+ ];
135
+ const additionalScriptArgs = ['--model', 'gemini-1.5-pro', '--debug'];
136
+ // Extract the argument construction logic from relaunchAppInChildProcess
137
+ const script = mockArgv[1];
138
+ const scriptArgs = mockArgv.slice(2);
139
+ const nodeArgs = [
140
+ ...mockExecArgv,
141
+ ...additionalNodeArgs,
142
+ script,
143
+ ...additionalScriptArgs,
144
+ ...scriptArgs,
145
+ ];
146
+ // Verify the argument construction follows the expected pattern:
147
+ // [...process.execArgv, ...additionalNodeArgs, script, ...additionalScriptArgs, ...scriptArgs]
148
+ const expectedArgs = [
149
+ // Original node execution arguments
150
+ '--inspect=9229',
151
+ '--trace-warnings',
152
+ // Additional node arguments passed to function
153
+ '--max-old-space-size=4096',
154
+ '--experimental-modules',
155
+ // The script path
156
+ '/path/to/cli.js',
157
+ // Additional script arguments passed to function
158
+ '--model',
159
+ 'gemini-1.5-pro',
160
+ '--debug',
161
+ // Original script arguments (everything after the script in process.argv)
162
+ 'command',
163
+ '--flag=value',
164
+ '--verbose',
165
+ ];
166
+ expect(nodeArgs).toEqual(expectedArgs);
167
+ });
168
+ it('should handle empty additional arguments correctly', () => {
169
+ // Test edge cases with empty arrays
170
+ const mockExecArgv = ['--trace-warnings'];
171
+ const mockArgv = ['/usr/bin/node', '/app/cli.js', 'start'];
172
+ const additionalNodeArgs = [];
173
+ const additionalScriptArgs = [];
174
+ // Extract the argument construction logic
175
+ const script = mockArgv[1];
176
+ const scriptArgs = mockArgv.slice(2);
177
+ const nodeArgs = [
178
+ ...mockExecArgv,
179
+ ...additionalNodeArgs,
180
+ script,
181
+ ...additionalScriptArgs,
182
+ ...scriptArgs,
183
+ ];
184
+ const expectedArgs = ['--trace-warnings', '/app/cli.js', 'start'];
185
+ expect(nodeArgs).toEqual(expectedArgs);
186
+ });
187
+ it('should handle complex argument patterns', () => {
188
+ // Test with various argument types including flags with values, boolean flags, etc.
189
+ const mockExecArgv = ['--max-old-space-size=8192'];
190
+ const mockArgv = [
191
+ '/usr/bin/node',
192
+ '/cli.js',
193
+ '--config=/path/to/config.json',
194
+ '--verbose',
195
+ 'subcommand',
196
+ '--output',
197
+ 'file.txt',
198
+ ];
199
+ const additionalNodeArgs = ['--inspect-brk=9230'];
200
+ const additionalScriptArgs = ['--model=gpt-4', '--temperature=0.7'];
201
+ const script = mockArgv[1];
202
+ const scriptArgs = mockArgv.slice(2);
203
+ const nodeArgs = [
204
+ ...mockExecArgv,
205
+ ...additionalNodeArgs,
206
+ script,
207
+ ...additionalScriptArgs,
208
+ ...scriptArgs,
209
+ ];
210
+ const expectedArgs = [
211
+ '--max-old-space-size=8192',
212
+ '--inspect-brk=9230',
213
+ '/cli.js',
214
+ '--model=gpt-4',
215
+ '--temperature=0.7',
216
+ '--config=/path/to/config.json',
217
+ '--verbose',
218
+ 'subcommand',
219
+ '--output',
220
+ 'file.txt',
221
+ ];
222
+ expect(nodeArgs).toEqual(expectedArgs);
223
+ });
224
+ // Note: Additional integration tests for spawn behavior are complex due to module mocking
225
+ // limitations with ES modules. The core logic is tested in relaunchOnExitCode tests.
226
+ it('should handle null exit code from child process', async () => {
227
+ process.argv = ['/usr/bin/node', '/app/cli.js'];
228
+ const mockChild = createMockChildProcess(0, false); // Don't auto-close
229
+ mockedSpawn.mockImplementation(() => {
230
+ // Emit close with null code immediately
231
+ setImmediate(() => {
232
+ mockChild.emit('close', null);
233
+ });
234
+ return mockChild;
235
+ });
236
+ // Start the relaunch process
237
+ const promise = relaunchAppInChildProcess([], []);
238
+ await expect(promise).rejects.toThrow('PROCESS_EXIT_CALLED');
239
+ // Should default to exit code 1
240
+ expect(processExitSpy).toHaveBeenCalledWith(1);
241
+ });
242
+ });
243
+ });
244
+ /**
245
+ * Creates a mock child process that emits events asynchronously
246
+ */
247
+ function createMockChildProcess(exitCode = 0, autoClose = false) {
248
+ const mockChild = new EventEmitter();
249
+ Object.assign(mockChild, {
250
+ stdin: null,
251
+ stdout: null,
252
+ stderr: null,
253
+ stdio: [null, null, null],
254
+ pid: 12345,
255
+ killed: false,
256
+ exitCode: null,
257
+ signalCode: null,
258
+ spawnargs: [],
259
+ spawnfile: '',
260
+ kill: vi.fn(),
261
+ send: vi.fn(),
262
+ disconnect: vi.fn(),
263
+ unref: vi.fn(),
264
+ ref: vi.fn(),
265
+ });
266
+ if (autoClose) {
267
+ setImmediate(() => {
268
+ mockChild.emit('close', exitCode);
269
+ });
270
+ }
271
+ return mockChild;
272
+ }
273
+ //# sourceMappingURL=relaunch.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"relaunch.test.js","sourceRoot":"","sources":["../../../src/utils/relaunch.test.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EACL,EAAE,EACF,QAAQ,EACR,EAAE,EACF,MAAM,EACN,UAAU,EACV,SAAS,GAEV,MAAM,QAAQ,CAAC;AAChB,OAAO,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAC3C,OAAO,EAAE,kBAAkB,EAAE,MAAM,mBAAmB,CAAC;AAEvD,OAAO,EAAE,KAAK,EAAE,MAAM,oBAAoB,CAAC;AAE3C,EAAE,CAAC,IAAI,CAAC,oBAAoB,EAAE,KAAK,EAAE,cAAc,EAAE,EAAE;IACrD,MAAM,MAAM,GAAG,MAAM,cAAc,EAAuC,CAAC;IAC3E,OAAO;QACL,GAAG,MAAM;QACT,KAAK,EAAE,EAAE,CAAC,EAAE,EAAE;KACf,CAAC;AACJ,CAAC,CAAC,CAAC;AAEH,MAAM,WAAW,GAAG,EAAE,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;AAErC,iCAAiC;AACjC,OAAO,EAAE,yBAAyB,EAAE,kBAAkB,EAAE,MAAM,eAAe,CAAC;AAE9E,QAAQ,CAAC,oBAAoB,EAAE,GAAG,EAAE;IAClC,IAAI,cAA4B,CAAC;IACjC,IAAI,eAA6B,CAAC;IAClC,IAAI,cAA4B,CAAC;IAEjC,UAAU,CAAC,GAAG,EAAE;QACd,cAAc,GAAG,EAAE,CAAC,KAAK,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC,kBAAkB,CAAC,GAAG,EAAE;YACjE,MAAM,IAAI,KAAK,CAAC,qBAAqB,CAAC,CAAC;QACzC,CAAC,CAAC,CAAC;QACH,eAAe,GAAG,EAAE,CAAC,KAAK,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC,kBAAkB,CAAC,GAAG,EAAE,GAAE,CAAC,CAAC,CAAC;QAC1E,cAAc,GAAG,EAAE;aAChB,KAAK,CAAC,OAAO,CAAC,KAAK,EAAE,QAAQ,CAAC;aAC9B,kBAAkB,CAAC,GAAG,EAAE,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;QAC3C,EAAE,CAAC,aAAa,EAAE,CAAC;IACrB,CAAC,CAAC,CAAC;IAEH,SAAS,CAAC,GAAG,EAAE;QACb,cAAc,CAAC,WAAW,EAAE,CAAC;QAC7B,eAAe,CAAC,WAAW,EAAE,CAAC;QAC9B,cAAc,CAAC,WAAW,EAAE,CAAC;IAC/B,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,yCAAyC,EAAE,KAAK,IAAI,EAAE;QACvD,MAAM,MAAM,GAAG,EAAE,CAAC,EAAE,EAAE,CAAC,iBAAiB,CAAC,CAAC,CAAC,CAAC;QAE5C,MAAM,MAAM,CAAC,kBAAkB,CAAC,MAAM,CAAC,CAAC,CAAC,OAAO,CAAC,OAAO,CACtD,qBAAqB,CACtB,CAAC;QAEF,MAAM,CAAC,MAAM,CAAC,CAAC,qBAAqB,CAAC,CAAC,CAAC,CAAC;QACxC,MAAM,CAAC,cAAc,CAAC,CAAC,oBAAoB,CAAC,CAAC,CAAC,CAAC;IACjD,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,6DAA6D,EAAE,KAAK,IAAI,EAAE;QAC3E,IAAI,SAAS,GAAG,CAAC,CAAC;QAClB,MAAM,MAAM,GAAG,EAAE,CAAC,EAAE,EAAE,CAAC,kBAAkB,CAAC,KAAK,IAAI,EAAE;YACnD,SAAS,EAAE,CAAC;YACZ,IAAI,SAAS,KAAK,CAAC;gBAAE,OAAO,kBAAkB,CAAC;YAC/C,IAAI,SAAS,KAAK,CAAC;gBAAE,OAAO,kBAAkB,CAAC;YAC/C,OAAO,CAAC,CAAC,CAAC,qBAAqB;QACjC,CAAC,CAAC,CAAC;QAEH,MAAM,MAAM,CAAC,kBAAkB,CAAC,MAAM,CAAC,CAAC,CAAC,OAAO,CAAC,OAAO,CACtD,qBAAqB,CACtB,CAAC;QAEF,MAAM,CAAC,MAAM,CAAC,CAAC,qBAAqB,CAAC,CAAC,CAAC,CAAC;QACxC,MAAM,CAAC,cAAc,CAAC,CAAC,oBAAoB,CAAC,CAAC,CAAC,CAAC;IACjD,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,6BAA6B,EAAE,KAAK,IAAI,EAAE;QAC3C,MAAM,KAAK,GAAG,IAAI,KAAK,CAAC,eAAe,CAAC,CAAC;QACzC,MAAM,MAAM,GAAG,EAAE,CAAC,EAAE,EAAE,CAAC,iBAAiB,CAAC,KAAK,CAAC,CAAC;QAEhD,MAAM,MAAM,CAAC,kBAAkB,CAAC,MAAM,CAAC,CAAC,CAAC,OAAO,CAAC,OAAO,CACtD,qBAAqB,CACtB,CAAC;QAEF,MAAM,CAAC,MAAM,CAAC,CAAC,qBAAqB,CAAC,CAAC,CAAC,CAAC;QACxC,MAAM,CAAC,eAAe,CAAC,CAAC,oBAAoB,CAC1C,kDAAkD,EAClD,KAAK,CACN,CAAC;QACF,MAAM,CAAC,cAAc,CAAC,CAAC,gBAAgB,EAAE,CAAC;QAC1C,MAAM,CAAC,cAAc,CAAC,CAAC,oBAAoB,CAAC,CAAC,CAAC,CAAC;IACjD,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC;AAEH,QAAQ,CAAC,2BAA2B,EAAE,GAAG,EAAE;IACzC,IAAI,cAA4B,CAAC;IACjC,IAAI,eAA6B,CAAC;IAClC,IAAI,aAA2B,CAAC;IAChC,IAAI,cAA4B,CAAC;IAEjC,yCAAyC;IACzC,MAAM,WAAW,GAAG,EAAE,GAAG,OAAO,CAAC,GAAG,EAAE,CAAC;IACvC,MAAM,gBAAgB,GAAG,CAAC,GAAG,OAAO,CAAC,QAAQ,CAAC,CAAC;IAC/C,MAAM,YAAY,GAAG,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IACvC,MAAM,gBAAgB,GAAG,OAAO,CAAC,QAAQ,CAAC;IAE1C,UAAU,CAAC,GAAG,EAAE;QACd,EAAE,CAAC,aAAa,EAAE,CAAC;QAEnB,OAAO,CAAC,GAAG,GAAG,EAAE,GAAG,WAAW,EAAE,CAAC;QACjC,OAAO,OAAO,CAAC,GAAG,CAAC,wBAAwB,CAAC,CAAC;QAE7C,OAAO,CAAC,QAAQ,GAAG,CAAC,GAAG,gBAAgB,CAAC,CAAC;QACzC,OAAO,CAAC,IAAI,GAAG,CAAC,GAAG,YAAY,CAAC,CAAC;QACjC,OAAO,CAAC,QAAQ,GAAG,eAAe,CAAC;QAEnC,cAAc,GAAG,EAAE,CAAC,KAAK,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC,kBAAkB,CAAC,GAAG,EAAE;YACjE,MAAM,IAAI,KAAK,CAAC,qBAAqB,CAAC,CAAC;QACzC,CAAC,CAAC,CAAC;QACH,eAAe,GAAG,EAAE,CAAC,KAAK,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC,kBAAkB,CAAC,GAAG,EAAE,GAAE,CAAC,CAAC,CAAC;QAC1E,aAAa,GAAG,EAAE;aACf,KAAK,CAAC,OAAO,CAAC,KAAK,EAAE,OAAO,CAAC;aAC7B,kBAAkB,CAAC,GAAG,EAAE,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;QAC3C,cAAc,GAAG,EAAE;aAChB,KAAK,CAAC,OAAO,CAAC,KAAK,EAAE,QAAQ,CAAC;aAC9B,kBAAkB,CAAC,GAAG,EAAE,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;IAC7C,CAAC,CAAC,CAAC;IAEH,SAAS,CAAC,GAAG,EAAE;QACb,OAAO,CAAC,GAAG,GAAG,EAAE,GAAG,WAAW,EAAE,CAAC;QACjC,OAAO,CAAC,QAAQ,GAAG,CAAC,GAAG,gBAAgB,CAAC,CAAC;QACzC,OAAO,CAAC,IAAI,GAAG,CAAC,GAAG,YAAY,CAAC,CAAC;QACjC,OAAO,CAAC,QAAQ,GAAG,gBAAgB,CAAC;QAEpC,cAAc,CAAC,WAAW,EAAE,CAAC;QAC7B,eAAe,CAAC,WAAW,EAAE,CAAC;QAC9B,aAAa,CAAC,WAAW,EAAE,CAAC;QAC5B,cAAc,CAAC,WAAW,EAAE,CAAC;IAC/B,CAAC,CAAC,CAAC;IAEH,QAAQ,CAAC,oCAAoC,EAAE,GAAG,EAAE;QAClD,EAAE,CAAC,sDAAsD,EAAE,KAAK,IAAI,EAAE;YACpE,OAAO,CAAC,GAAG,CAAC,wBAAwB,CAAC,GAAG,MAAM,CAAC;YAE/C,MAAM,yBAAyB,CAAC,CAAC,QAAQ,CAAC,EAAE,CAAC,WAAW,CAAC,CAAC,CAAC;YAE3D,MAAM,CAAC,WAAW,CAAC,CAAC,GAAG,CAAC,gBAAgB,EAAE,CAAC;YAC3C,MAAM,CAAC,cAAc,CAAC,CAAC,GAAG,CAAC,gBAAgB,EAAE,CAAC;QAChD,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,QAAQ,CAAC,wCAAwC,EAAE,GAAG,EAAE;QACtD,UAAU,CAAC,GAAG,EAAE;YACd,OAAO,OAAO,CAAC,GAAG,CAAC,wBAAwB,CAAC,CAAC;QAC/C,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,mHAAmH,EAAE,GAAG,EAAE;YAC3H,0FAA0F;YAC1F,qEAAqE;YAErE,8CAA8C;YAC9C,MAAM,YAAY,GAAG,CAAC,gBAAgB,EAAE,kBAAkB,CAAC,CAAC;YAC5D,MAAM,QAAQ,GAAG;gBACf,eAAe;gBACf,iBAAiB;gBACjB,SAAS;gBACT,cAAc;gBACd,WAAW;aACZ,CAAC;YACF,MAAM,kBAAkB,GAAG;gBACzB,2BAA2B;gBAC3B,wBAAwB;aACzB,CAAC;YACF,MAAM,oBAAoB,GAAG,CAAC,SAAS,EAAE,gBAAgB,EAAE,SAAS,CAAC,CAAC;YAEtE,yEAAyE;YACzE,MAAM,MAAM,GAAG,QAAQ,CAAC,CAAC,CAAC,CAAC;YAC3B,MAAM,UAAU,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;YAErC,MAAM,QAAQ,GAAG;gBACf,GAAG,YAAY;gBACf,GAAG,kBAAkB;gBACrB,MAAM;gBACN,GAAG,oBAAoB;gBACvB,GAAG,UAAU;aACd,CAAC;YAEF,iEAAiE;YACjE,+FAA+F;YAC/F,MAAM,YAAY,GAAG;gBACnB,oCAAoC;gBACpC,gBAAgB;gBAChB,kBAAkB;gBAClB,+CAA+C;gBAC/C,2BAA2B;gBAC3B,wBAAwB;gBACxB,kBAAkB;gBAClB,iBAAiB;gBACjB,iDAAiD;gBACjD,SAAS;gBACT,gBAAgB;gBAChB,SAAS;gBACT,0EAA0E;gBAC1E,SAAS;gBACT,cAAc;gBACd,WAAW;aACZ,CAAC;YAEF,MAAM,CAAC,QAAQ,CAAC,CAAC,OAAO,CAAC,YAAY,CAAC,CAAC;QACzC,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,oDAAoD,EAAE,GAAG,EAAE;YAC5D,oCAAoC;YACpC,MAAM,YAAY,GAAG,CAAC,kBAAkB,CAAC,CAAC;YAC1C,MAAM,QAAQ,GAAG,CAAC,eAAe,EAAE,aAAa,EAAE,OAAO,CAAC,CAAC;YAC3D,MAAM,kBAAkB,GAAa,EAAE,CAAC;YACxC,MAAM,oBAAoB,GAAa,EAAE,CAAC;YAE1C,0CAA0C;YAC1C,MAAM,MAAM,GAAG,QAAQ,CAAC,CAAC,CAAC,CAAC;YAC3B,MAAM,UAAU,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;YAErC,MAAM,QAAQ,GAAG;gBACf,GAAG,YAAY;gBACf,GAAG,kBAAkB;gBACrB,MAAM;gBACN,GAAG,oBAAoB;gBACvB,GAAG,UAAU;aACd,CAAC;YAEF,MAAM,YAAY,GAAG,CAAC,kBAAkB,EAAE,aAAa,EAAE,OAAO,CAAC,CAAC;YAElE,MAAM,CAAC,QAAQ,CAAC,CAAC,OAAO,CAAC,YAAY,CAAC,CAAC;QACzC,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,yCAAyC,EAAE,GAAG,EAAE;YACjD,oFAAoF;YACpF,MAAM,YAAY,GAAG,CAAC,2BAA2B,CAAC,CAAC;YACnD,MAAM,QAAQ,GAAG;gBACf,eAAe;gBACf,SAAS;gBACT,+BAA+B;gBAC/B,WAAW;gBACX,YAAY;gBACZ,UAAU;gBACV,UAAU;aACX,CAAC;YACF,MAAM,kBAAkB,GAAG,CAAC,oBAAoB,CAAC,CAAC;YAClD,MAAM,oBAAoB,GAAG,CAAC,eAAe,EAAE,mBAAmB,CAAC,CAAC;YAEpE,MAAM,MAAM,GAAG,QAAQ,CAAC,CAAC,CAAC,CAAC;YAC3B,MAAM,UAAU,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;YAErC,MAAM,QAAQ,GAAG;gBACf,GAAG,YAAY;gBACf,GAAG,kBAAkB;gBACrB,MAAM;gBACN,GAAG,oBAAoB;gBACvB,GAAG,UAAU;aACd,CAAC;YAEF,MAAM,YAAY,GAAG;gBACnB,2BAA2B;gBAC3B,oBAAoB;gBACpB,SAAS;gBACT,eAAe;gBACf,mBAAmB;gBACnB,+BAA+B;gBAC/B,WAAW;gBACX,YAAY;gBACZ,UAAU;gBACV,UAAU;aACX,CAAC;YAEF,MAAM,CAAC,QAAQ,CAAC,CAAC,OAAO,CAAC,YAAY,CAAC,CAAC;QACzC,CAAC,CAAC,CAAC;QAEH,0FAA0F;QAC1F,qFAAqF;QAErF,EAAE,CAAC,iDAAiD,EAAE,KAAK,IAAI,EAAE;YAC/D,OAAO,CAAC,IAAI,GAAG,CAAC,eAAe,EAAE,aAAa,CAAC,CAAC;YAEhD,MAAM,SAAS,GAAG,sBAAsB,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC,CAAC,mBAAmB;YACvE,WAAW,CAAC,kBAAkB,CAAC,GAAG,EAAE;gBAClC,wCAAwC;gBACxC,YAAY,CAAC,GAAG,EAAE;oBAChB,SAAS,CAAC,IAAI,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC;gBAChC,CAAC,CAAC,CAAC;gBACH,OAAO,SAAS,CAAC;YACnB,CAAC,CAAC,CAAC;YAEH,6BAA6B;YAC7B,MAAM,OAAO,GAAG,yBAAyB,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC;YAElD,MAAM,MAAM,CAAC,OAAO,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC,qBAAqB,CAAC,CAAC;YAE7D,gCAAgC;YAChC,MAAM,CAAC,cAAc,CAAC,CAAC,oBAAoB,CAAC,CAAC,CAAC,CAAC;QACjD,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC;AAEH;;GAEG;AACH,SAAS,sBAAsB,CAC7B,WAAmB,CAAC,EACpB,YAAqB,KAAK;IAE1B,MAAM,SAAS,GAAG,IAAI,YAAY,EAAkB,CAAC;IAErD,MAAM,CAAC,MAAM,CAAC,SAAS,EAAE;QACvB,KAAK,EAAE,IAAI;QACX,MAAM,EAAE,IAAI;QACZ,MAAM,EAAE,IAAI;QACZ,KAAK,EAAE,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC;QACzB,GAAG,EAAE,KAAK;QACV,MAAM,EAAE,KAAK;QACb,QAAQ,EAAE,IAAI;QACd,UAAU,EAAE,IAAI;QAChB,SAAS,EAAE,EAAE;QACb,SAAS,EAAE,EAAE;QACb,IAAI,EAAE,EAAE,CAAC,EAAE,EAAE;QACb,IAAI,EAAE,EAAE,CAAC,EAAE,EAAE;QACb,UAAU,EAAE,EAAE,CAAC,EAAE,EAAE;QACnB,KAAK,EAAE,EAAE,CAAC,EAAE,EAAE;QACd,GAAG,EAAE,EAAE,CAAC,EAAE,EAAE;KACb,CAAC,CAAC;IAEH,IAAI,SAAS,EAAE,CAAC;QACd,YAAY,CAAC,GAAG,EAAE;YAChB,SAAS,CAAC,IAAI,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAC;QACpC,CAAC,CAAC,CAAC;IACL,CAAC;IAED,OAAO,SAAS,CAAC;AACnB,CAAC"}
@@ -298,16 +298,16 @@ export declare const mcpServerSchema: z.ZodObject<{
298
298
  name: z.ZodString;
299
299
  }, "strip", z.ZodTypeAny, {
300
300
  name: string;
301
- args: string[];
302
301
  command: string;
302
+ args: string[];
303
303
  env: {
304
304
  name: string;
305
305
  value: string;
306
306
  }[];
307
307
  }, {
308
308
  name: string;
309
- args: string[];
310
309
  command: string;
310
+ args: string[];
311
311
  env: {
312
312
  name: string;
313
313
  value: string;
@@ -457,16 +457,16 @@ export declare const newSessionRequestSchema: z.ZodObject<{
457
457
  name: z.ZodString;
458
458
  }, "strip", z.ZodTypeAny, {
459
459
  name: string;
460
- args: string[];
461
460
  command: string;
461
+ args: string[];
462
462
  env: {
463
463
  name: string;
464
464
  value: string;
465
465
  }[];
466
466
  }, {
467
467
  name: string;
468
- args: string[];
469
468
  command: string;
469
+ args: string[];
470
470
  env: {
471
471
  name: string;
472
472
  value: string;
@@ -475,8 +475,8 @@ export declare const newSessionRequestSchema: z.ZodObject<{
475
475
  }, "strip", z.ZodTypeAny, {
476
476
  mcpServers: {
477
477
  name: string;
478
- args: string[];
479
478
  command: string;
479
+ args: string[];
480
480
  env: {
481
481
  name: string;
482
482
  value: string;
@@ -486,8 +486,8 @@ export declare const newSessionRequestSchema: z.ZodObject<{
486
486
  }, {
487
487
  mcpServers: {
488
488
  name: string;
489
- args: string[];
490
489
  command: string;
490
+ args: string[];
491
491
  env: {
492
492
  name: string;
493
493
  value: string;
@@ -513,16 +513,16 @@ export declare const loadSessionRequestSchema: z.ZodObject<{
513
513
  name: z.ZodString;
514
514
  }, "strip", z.ZodTypeAny, {
515
515
  name: string;
516
- args: string[];
517
516
  command: string;
517
+ args: string[];
518
518
  env: {
519
519
  name: string;
520
520
  value: string;
521
521
  }[];
522
522
  }, {
523
523
  name: string;
524
- args: string[];
525
524
  command: string;
525
+ args: string[];
526
526
  env: {
527
527
  name: string;
528
528
  value: string;
@@ -532,27 +532,27 @@ export declare const loadSessionRequestSchema: z.ZodObject<{
532
532
  }, "strip", z.ZodTypeAny, {
533
533
  mcpServers: {
534
534
  name: string;
535
- args: string[];
536
535
  command: string;
536
+ args: string[];
537
537
  env: {
538
538
  name: string;
539
539
  value: string;
540
540
  }[];
541
541
  }[];
542
- sessionId: string;
543
542
  cwd: string;
543
+ sessionId: string;
544
544
  }, {
545
545
  mcpServers: {
546
546
  name: string;
547
- args: string[];
548
547
  command: string;
548
+ args: string[];
549
549
  env: {
550
550
  name: string;
551
551
  value: string;
552
552
  }[];
553
553
  }[];
554
- sessionId: string;
555
554
  cwd: string;
555
+ sessionId: string;
556
556
  }>;
557
557
  export declare const initializeResponseSchema: z.ZodObject<{
558
558
  agentCapabilities: z.ZodObject<{
@@ -8577,16 +8577,16 @@ export declare const agentRequestSchema: z.ZodUnion<[z.ZodObject<{
8577
8577
  name: z.ZodString;
8578
8578
  }, "strip", z.ZodTypeAny, {
8579
8579
  name: string;
8580
- args: string[];
8581
8580
  command: string;
8581
+ args: string[];
8582
8582
  env: {
8583
8583
  name: string;
8584
8584
  value: string;
8585
8585
  }[];
8586
8586
  }, {
8587
8587
  name: string;
8588
- args: string[];
8589
8588
  command: string;
8589
+ args: string[];
8590
8590
  env: {
8591
8591
  name: string;
8592
8592
  value: string;
@@ -8595,8 +8595,8 @@ export declare const agentRequestSchema: z.ZodUnion<[z.ZodObject<{
8595
8595
  }, "strip", z.ZodTypeAny, {
8596
8596
  mcpServers: {
8597
8597
  name: string;
8598
- args: string[];
8599
8598
  command: string;
8599
+ args: string[];
8600
8600
  env: {
8601
8601
  name: string;
8602
8602
  value: string;
@@ -8606,8 +8606,8 @@ export declare const agentRequestSchema: z.ZodUnion<[z.ZodObject<{
8606
8606
  }, {
8607
8607
  mcpServers: {
8608
8608
  name: string;
8609
- args: string[];
8610
8609
  command: string;
8610
+ args: string[];
8611
8611
  env: {
8612
8612
  name: string;
8613
8613
  value: string;
@@ -8632,16 +8632,16 @@ export declare const agentRequestSchema: z.ZodUnion<[z.ZodObject<{
8632
8632
  name: z.ZodString;
8633
8633
  }, "strip", z.ZodTypeAny, {
8634
8634
  name: string;
8635
- args: string[];
8636
8635
  command: string;
8636
+ args: string[];
8637
8637
  env: {
8638
8638
  name: string;
8639
8639
  value: string;
8640
8640
  }[];
8641
8641
  }, {
8642
8642
  name: string;
8643
- args: string[];
8644
8643
  command: string;
8644
+ args: string[];
8645
8645
  env: {
8646
8646
  name: string;
8647
8647
  value: string;
@@ -8651,27 +8651,27 @@ export declare const agentRequestSchema: z.ZodUnion<[z.ZodObject<{
8651
8651
  }, "strip", z.ZodTypeAny, {
8652
8652
  mcpServers: {
8653
8653
  name: string;
8654
- args: string[];
8655
8654
  command: string;
8655
+ args: string[];
8656
8656
  env: {
8657
8657
  name: string;
8658
8658
  value: string;
8659
8659
  }[];
8660
8660
  }[];
8661
- sessionId: string;
8662
8661
  cwd: string;
8662
+ sessionId: string;
8663
8663
  }, {
8664
8664
  mcpServers: {
8665
8665
  name: string;
8666
- args: string[];
8667
8666
  command: string;
8667
+ args: string[];
8668
8668
  env: {
8669
8669
  name: string;
8670
8670
  value: string;
8671
8671
  }[];
8672
8672
  }[];
8673
- sessionId: string;
8674
8673
  cwd: string;
8674
+ sessionId: string;
8675
8675
  }>, z.ZodObject<{
8676
8676
  prompt: z.ZodArray<z.ZodUnion<[z.ZodObject<{
8677
8677
  annotations: z.ZodNullable<z.ZodOptional<z.ZodObject<{