@google/gemini-cli 0.23.0-preview.4 → 0.24.0-nightly.20251231.05049b5ab

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 (214) hide show
  1. package/dist/google-gemini-cli-0.24.0-nightly.20251227.37be16243.tgz +0 -0
  2. package/dist/package.json +2 -2
  3. package/dist/src/commands/extensions/install.js +7 -31
  4. package/dist/src/commands/extensions/install.js.map +1 -1
  5. package/dist/src/commands/extensions/install.test.js +21 -3
  6. package/dist/src/commands/extensions/install.test.js.map +1 -1
  7. package/dist/src/commands/extensions/validate.test.js +1 -1
  8. package/dist/src/commands/extensions/validate.test.js.map +1 -1
  9. package/dist/src/commands/mcp/list.js +7 -1
  10. package/dist/src/commands/mcp/list.js.map +1 -1
  11. package/dist/src/config/config.d.ts +10 -2
  12. package/dist/src/config/config.js +12 -4
  13. package/dist/src/config/config.js.map +1 -1
  14. package/dist/src/config/config.test.js +4 -12
  15. package/dist/src/config/config.test.js.map +1 -1
  16. package/dist/src/config/extension-manager.d.ts +6 -0
  17. package/dist/src/config/extension-manager.js +59 -2
  18. package/dist/src/config/extension-manager.js.map +1 -1
  19. package/dist/src/config/policy-engine.integration.test.js +13 -1
  20. package/dist/src/config/policy-engine.integration.test.js.map +1 -1
  21. package/dist/src/config/settings-validation.js +1 -1
  22. package/dist/src/config/settings-validation.js.map +1 -1
  23. package/dist/src/config/settings-validation.test.js +49 -1
  24. package/dist/src/config/settings-validation.test.js.map +1 -1
  25. package/dist/src/config/settings.d.ts +4 -1
  26. package/dist/src/config/settings.js +23 -11
  27. package/dist/src/config/settings.js.map +1 -1
  28. package/dist/src/config/settingsSchema.d.ts +86 -9
  29. package/dist/src/config/settingsSchema.js +86 -13
  30. package/dist/src/config/settingsSchema.js.map +1 -1
  31. package/dist/src/config/settings_repro.test.js +1 -1
  32. package/dist/src/config/settings_repro.test.js.map +1 -1
  33. package/dist/src/config/settings_validation_warning.test.d.ts +6 -0
  34. package/dist/src/config/settings_validation_warning.test.js +118 -0
  35. package/dist/src/config/settings_validation_warning.test.js.map +1 -0
  36. package/dist/src/config/trustedFolders.js.map +1 -1
  37. package/dist/src/gemini.js +48 -18
  38. package/dist/src/gemini.js.map +1 -1
  39. package/dist/src/gemini.test.js +19 -6
  40. package/dist/src/gemini.test.js.map +1 -1
  41. package/dist/src/gemini_cleanup.test.js +3 -0
  42. package/dist/src/gemini_cleanup.test.js.map +1 -1
  43. package/dist/src/generated/git-commit.d.ts +2 -2
  44. package/dist/src/generated/git-commit.js +2 -2
  45. package/dist/src/generated/git-commit.js.map +1 -1
  46. package/dist/src/nonInteractiveCli.js +29 -1
  47. package/dist/src/nonInteractiveCli.js.map +1 -1
  48. package/dist/src/nonInteractiveCli.test.js +48 -10
  49. package/dist/src/nonInteractiveCli.test.js.map +1 -1
  50. package/dist/src/services/BuiltinCommandLoader.js +3 -3
  51. package/dist/src/services/BuiltinCommandLoader.js.map +1 -1
  52. package/dist/src/services/BuiltinCommandLoader.test.js +11 -14
  53. package/dist/src/services/BuiltinCommandLoader.test.js.map +1 -1
  54. package/dist/src/services/FileCommandLoader.js +6 -6
  55. package/dist/src/services/FileCommandLoader.js.map +1 -1
  56. package/dist/src/ui/AppContainer.js +4 -13
  57. package/dist/src/ui/AppContainer.js.map +1 -1
  58. package/dist/src/ui/IdeIntegrationNudge.test.js +18 -7
  59. package/dist/src/ui/IdeIntegrationNudge.test.js.map +1 -1
  60. package/dist/src/ui/auth/AuthInProgress.test.js +16 -6
  61. package/dist/src/ui/auth/AuthInProgress.test.js.map +1 -1
  62. package/dist/src/ui/commands/extensionsCommand.js +103 -2
  63. package/dist/src/ui/commands/extensionsCommand.js.map +1 -1
  64. package/dist/src/ui/commands/extensionsCommand.test.js +127 -4
  65. package/dist/src/ui/commands/extensionsCommand.test.js.map +1 -1
  66. package/dist/src/ui/commands/skillsCommand.d.ts +7 -0
  67. package/dist/src/ui/commands/skillsCommand.js +148 -0
  68. package/dist/src/ui/commands/skillsCommand.js.map +1 -0
  69. package/dist/src/ui/commands/skillsCommand.test.d.ts +6 -0
  70. package/dist/src/ui/commands/skillsCommand.test.js +162 -0
  71. package/dist/src/ui/commands/skillsCommand.test.js.map +1 -0
  72. package/dist/src/ui/components/EditorSettingsDialog.js +2 -1
  73. package/dist/src/ui/components/EditorSettingsDialog.js.map +1 -1
  74. package/dist/src/ui/components/EditorSettingsDialog.test.js +3 -2
  75. package/dist/src/ui/components/EditorSettingsDialog.test.js.map +1 -1
  76. package/dist/src/ui/components/HistoryItemDisplay.js +2 -1
  77. package/dist/src/ui/components/HistoryItemDisplay.js.map +1 -1
  78. package/dist/src/ui/components/IdeTrustChangeDialog.js +2 -1
  79. package/dist/src/ui/components/IdeTrustChangeDialog.js.map +1 -1
  80. package/dist/src/ui/components/IdeTrustChangeDialog.test.js +4 -3
  81. package/dist/src/ui/components/IdeTrustChangeDialog.test.js.map +1 -1
  82. package/dist/src/ui/components/InputPrompt.js +19 -11
  83. package/dist/src/ui/components/InputPrompt.js.map +1 -1
  84. package/dist/src/ui/components/InputPrompt.test.js +41 -5
  85. package/dist/src/ui/components/InputPrompt.test.js.map +1 -1
  86. package/dist/src/ui/components/ModelDialog.js +1 -1
  87. package/dist/src/ui/components/ModelDialog.js.map +1 -1
  88. package/dist/src/ui/components/ModelDialog.test.js +1 -0
  89. package/dist/src/ui/components/ModelDialog.test.js.map +1 -1
  90. package/dist/src/ui/components/Notifications.js +2 -2
  91. package/dist/src/ui/components/Notifications.js.map +1 -1
  92. package/dist/src/ui/components/SettingsDialog.js +2 -2
  93. package/dist/src/ui/components/SettingsDialog.js.map +1 -1
  94. package/dist/src/ui/components/shared/MaxSizedBox.js +4 -3
  95. package/dist/src/ui/components/shared/MaxSizedBox.js.map +1 -1
  96. package/dist/src/ui/components/shared/text-buffer.d.ts +36 -0
  97. package/dist/src/ui/components/shared/text-buffer.js +200 -25
  98. package/dist/src/ui/components/shared/text-buffer.js.map +1 -1
  99. package/dist/src/ui/components/shared/text-buffer.test.js +147 -1
  100. package/dist/src/ui/components/shared/text-buffer.test.js.map +1 -1
  101. package/dist/src/ui/components/shared/vim-buffer-actions.test.js +3 -0
  102. package/dist/src/ui/components/shared/vim-buffer-actions.test.js.map +1 -1
  103. package/dist/src/ui/components/views/ExtensionsList.js +2 -2
  104. package/dist/src/ui/components/views/ExtensionsList.js.map +1 -1
  105. package/dist/src/ui/components/views/ExtensionsList.test.js +26 -0
  106. package/dist/src/ui/components/views/ExtensionsList.test.js.map +1 -1
  107. package/dist/src/ui/components/views/HooksList.js +17 -23
  108. package/dist/src/ui/components/views/HooksList.js.map +1 -1
  109. package/dist/src/ui/components/views/McpStatus.js +7 -2
  110. package/dist/src/ui/components/views/McpStatus.js.map +1 -1
  111. package/dist/src/ui/components/views/McpStatus.test.js +10 -0
  112. package/dist/src/ui/components/views/McpStatus.test.js.map +1 -1
  113. package/dist/src/ui/components/views/SkillsList.d.ts +13 -0
  114. package/dist/src/ui/components/views/SkillsList.js +15 -0
  115. package/dist/src/ui/components/views/SkillsList.js.map +1 -0
  116. package/dist/src/ui/components/views/SkillsList.test.d.ts +6 -0
  117. package/dist/src/ui/components/views/SkillsList.test.js +64 -0
  118. package/dist/src/ui/components/views/SkillsList.test.js.map +1 -0
  119. package/dist/src/ui/constants.d.ts +1 -0
  120. package/dist/src/ui/constants.js +2 -0
  121. package/dist/src/ui/constants.js.map +1 -1
  122. package/dist/src/ui/hooks/atCommandProcessor.js +1 -1
  123. package/dist/src/ui/hooks/atCommandProcessor.js.map +1 -1
  124. package/dist/src/ui/hooks/slashCommandProcessor.js +0 -6
  125. package/dist/src/ui/hooks/slashCommandProcessor.js.map +1 -1
  126. package/dist/src/ui/hooks/slashCommandProcessor.test.js +0 -2
  127. package/dist/src/ui/hooks/slashCommandProcessor.test.js.map +1 -1
  128. package/dist/src/ui/hooks/useExtensionUpdates.js +5 -7
  129. package/dist/src/ui/hooks/useExtensionUpdates.js.map +1 -1
  130. package/dist/src/ui/hooks/useExtensionUpdates.test.js +2 -2
  131. package/dist/src/ui/hooks/useExtensionUpdates.test.js.map +1 -1
  132. package/dist/src/ui/hooks/useGeminiStream.js +13 -1
  133. package/dist/src/ui/hooks/useGeminiStream.js.map +1 -1
  134. package/dist/src/ui/hooks/useGeminiStream.test.js +60 -0
  135. package/dist/src/ui/hooks/useGeminiStream.test.js.map +1 -1
  136. package/dist/src/ui/hooks/useIncludeDirsTrust.js +2 -2
  137. package/dist/src/ui/hooks/useIncludeDirsTrust.js.map +1 -1
  138. package/dist/src/ui/hooks/useQuotaAndFallback.js +3 -2
  139. package/dist/src/ui/hooks/useQuotaAndFallback.js.map +1 -1
  140. package/dist/src/ui/hooks/useQuotaAndFallback.test.js +9 -0
  141. package/dist/src/ui/hooks/useQuotaAndFallback.test.js.map +1 -1
  142. package/dist/src/ui/hooks/useSelectionList.js +2 -1
  143. package/dist/src/ui/hooks/useSelectionList.js.map +1 -1
  144. package/dist/src/ui/hooks/useSessionBrowser.js +3 -3
  145. package/dist/src/ui/hooks/useSessionBrowser.js.map +1 -1
  146. package/dist/src/ui/hooks/useSessionBrowser.test.js +4 -10
  147. package/dist/src/ui/hooks/useSessionBrowser.test.js.map +1 -1
  148. package/dist/src/ui/hooks/useShellHistory.js +3 -3
  149. package/dist/src/ui/hooks/useShellHistory.js.map +1 -1
  150. package/dist/src/ui/hooks/useToolScheduler.test.js +0 -1
  151. package/dist/src/ui/hooks/useToolScheduler.test.js.map +1 -1
  152. package/dist/src/ui/hooks/vim.test.js +7 -0
  153. package/dist/src/ui/hooks/vim.test.js.map +1 -1
  154. package/dist/src/ui/types.d.ts +12 -1
  155. package/dist/src/ui/types.js +1 -0
  156. package/dist/src/ui/types.js.map +1 -1
  157. package/dist/src/ui/utils/ConsolePatcher.js +1 -0
  158. package/dist/src/ui/utils/ConsolePatcher.js.map +1 -1
  159. package/dist/src/ui/utils/InlineMarkdownRenderer.js +2 -1
  160. package/dist/src/ui/utils/InlineMarkdownRenderer.js.map +1 -1
  161. package/dist/src/ui/utils/highlight.d.ts +3 -2
  162. package/dist/src/ui/utils/highlight.js +46 -36
  163. package/dist/src/ui/utils/highlight.js.map +1 -1
  164. package/dist/src/ui/utils/highlight.test.js +75 -0
  165. package/dist/src/ui/utils/highlight.test.js.map +1 -1
  166. package/dist/src/ui/utils/terminalCapabilityManager.d.ts +7 -0
  167. package/dist/src/ui/utils/terminalCapabilityManager.js +49 -1
  168. package/dist/src/ui/utils/terminalCapabilityManager.js.map +1 -1
  169. package/dist/src/ui/utils/terminalCapabilityManager.test.js +71 -0
  170. package/dist/src/ui/utils/terminalCapabilityManager.test.js.map +1 -1
  171. package/dist/src/utils/errors.js +9 -10
  172. package/dist/src/utils/errors.js.map +1 -1
  173. package/dist/src/utils/errors.test.js +95 -37
  174. package/dist/src/utils/errors.test.js.map +1 -1
  175. package/dist/src/utils/readStdin.js +7 -0
  176. package/dist/src/utils/readStdin.js.map +1 -1
  177. package/dist/src/utils/readStdin.test.js +4 -0
  178. package/dist/src/utils/readStdin.test.js.map +1 -1
  179. package/dist/src/utils/readStdin_safety.test.d.ts +6 -0
  180. package/dist/src/utils/readStdin_safety.test.js +68 -0
  181. package/dist/src/utils/readStdin_safety.test.js.map +1 -0
  182. package/dist/src/utils/relaunch.js +3 -1
  183. package/dist/src/utils/relaunch.js.map +1 -1
  184. package/dist/src/utils/relaunch.test.js +13 -7
  185. package/dist/src/utils/relaunch.test.js.map +1 -1
  186. package/dist/src/utils/sandbox.js +10 -7
  187. package/dist/src/utils/sandbox.js.map +1 -1
  188. package/dist/src/utils/sessionCleanup.integration.test.js +2 -2
  189. package/dist/src/utils/sessionCleanup.integration.test.js.map +1 -1
  190. package/dist/src/utils/sessionCleanup.js +4 -4
  191. package/dist/src/utils/sessionCleanup.js.map +1 -1
  192. package/dist/src/utils/sessionCleanup.test.js +18 -68
  193. package/dist/src/utils/sessionCleanup.test.js.map +1 -1
  194. package/dist/src/utils/sessionUtils.d.ts +20 -0
  195. package/dist/src/utils/sessionUtils.js +32 -4
  196. package/dist/src/utils/sessionUtils.js.map +1 -1
  197. package/dist/src/utils/sessionUtils.test.js +3 -3
  198. package/dist/src/utils/sessionUtils.test.js.map +1 -1
  199. package/dist/src/utils/sessions.js +9 -9
  200. package/dist/src/utils/sessions.js.map +1 -1
  201. package/dist/src/utils/sessions.test.js +38 -41
  202. package/dist/src/utils/sessions.test.js.map +1 -1
  203. package/dist/src/validateNonInterActiveAuth.d.ts +1 -1
  204. package/dist/src/validateNonInterActiveAuth.js +1 -2
  205. package/dist/src/validateNonInterActiveAuth.js.map +1 -1
  206. package/dist/src/validateNonInterActiveAuth.test.js +40 -56
  207. package/dist/src/validateNonInterActiveAuth.test.js.map +1 -1
  208. package/dist/src/zed-integration/zedIntegration.js +3 -3
  209. package/dist/src/zed-integration/zedIntegration.js.map +1 -1
  210. package/dist/src/zed-integration/zedIntegration.test.js +1 -1
  211. package/dist/src/zed-integration/zedIntegration.test.js.map +1 -1
  212. package/dist/tsconfig.tsbuildinfo +1 -1
  213. package/package.json +3 -3
  214. package/dist/google-gemini-cli-0.23.0-preview.3.tgz +0 -0
@@ -3,9 +3,14 @@
3
3
  * Copyright 2025 Google LLC
4
4
  * SPDX-License-Identifier: Apache-2.0
5
5
  */
6
- import { vi } from 'vitest';
7
- import { OutputFormat, FatalInputError } from '@google/gemini-cli-core';
6
+ import { vi, describe, it, expect, beforeEach, afterEach, } from 'vitest';
7
+ import { OutputFormat, FatalInputError, debugLogger, coreEvents, } from '@google/gemini-cli-core';
8
8
  import { getErrorMessage, handleError, handleToolError, handleCancellationError, handleMaxTurnsExceededError, } from './errors.js';
9
+ import { runSyncCleanup } from './cleanup.js';
10
+ // Mock the cleanup module
11
+ vi.mock('./cleanup.js', () => ({
12
+ runSyncCleanup: vi.fn(),
13
+ }));
9
14
  // Mock the core modules
10
15
  vi.mock('@google/gemini-cli-core', async (importOriginal) => {
11
16
  const original = await importOriginal();
@@ -45,6 +50,9 @@ vi.mock('@google/gemini-cli-core', async (importOriginal) => {
45
50
  JsonStreamEventType: {
46
51
  RESULT: 'result',
47
52
  },
53
+ coreEvents: {
54
+ emitFeedback: vi.fn(),
55
+ },
48
56
  FatalToolExecutionError: class extends Error {
49
57
  constructor(message) {
50
58
  super(message);
@@ -66,13 +74,25 @@ vi.mock('@google/gemini-cli-core', async (importOriginal) => {
66
74
  describe('errors', () => {
67
75
  let mockConfig;
68
76
  let processExitSpy;
69
- let consoleErrorSpy;
77
+ let debugLoggerErrorSpy;
78
+ let debugLoggerWarnSpy;
79
+ let coreEventsEmitFeedbackSpy;
80
+ let runSyncCleanupSpy;
70
81
  const TEST_SESSION_ID = 'test-session-123';
71
82
  beforeEach(() => {
72
83
  // Reset mocks
73
84
  vi.clearAllMocks();
74
- // Mock console.error
75
- consoleErrorSpy = vi.spyOn(console, 'error').mockImplementation(() => { });
85
+ // Mock debugLogger
86
+ debugLoggerErrorSpy = vi
87
+ .spyOn(debugLogger, 'error')
88
+ .mockImplementation(() => { });
89
+ debugLoggerWarnSpy = vi
90
+ .spyOn(debugLogger, 'warn')
91
+ .mockImplementation(() => { });
92
+ // Mock coreEvents
93
+ coreEventsEmitFeedbackSpy = vi.mocked(coreEvents.emitFeedback);
94
+ // Mock runSyncCleanup
95
+ runSyncCleanupSpy = vi.mocked(runSyncCleanup);
76
96
  // Mock process.exit to throw instead of actually exiting
77
97
  processExitSpy = vi.spyOn(process, 'exit').mockImplementation((code) => {
78
98
  throw new Error(`process.exit called with code: ${code}`);
@@ -85,7 +105,8 @@ describe('errors', () => {
85
105
  };
86
106
  });
87
107
  afterEach(() => {
88
- consoleErrorSpy.mockRestore();
108
+ debugLoggerErrorSpy.mockRestore();
109
+ debugLoggerWarnSpy.mockRestore();
89
110
  processExitSpy.mockRestore();
90
111
  });
91
112
  describe('getErrorMessage', () => {
@@ -109,31 +130,31 @@ describe('errors', () => {
109
130
  beforeEach(() => {
110
131
  mockConfig.getOutputFormat.mockReturnValue(OutputFormat.TEXT);
111
132
  });
112
- it('should log error message and re-throw', () => {
133
+ it('should re-throw without logging to debugLogger', () => {
113
134
  const testError = new Error('Test error');
114
135
  expect(() => {
115
136
  handleError(testError, mockConfig);
116
137
  }).toThrow(testError);
117
- expect(consoleErrorSpy).toHaveBeenCalledWith('API Error: Test error');
138
+ expect(debugLoggerErrorSpy).not.toHaveBeenCalled();
118
139
  });
119
140
  it('should handle non-Error objects', () => {
120
141
  const testError = 'String error';
121
142
  expect(() => {
122
143
  handleError(testError, mockConfig);
123
144
  }).toThrow(testError);
124
- expect(consoleErrorSpy).toHaveBeenCalledWith('API Error: String error');
125
145
  });
126
146
  });
127
147
  describe('in JSON mode', () => {
128
148
  beforeEach(() => {
129
149
  mockConfig.getOutputFormat.mockReturnValue(OutputFormat.JSON);
130
150
  });
131
- it('should format error as JSON and exit with default code', () => {
151
+ it('should format error as JSON, emit feedback exactly once, and exit with default code', () => {
132
152
  const testError = new Error('Test error');
133
153
  expect(() => {
134
154
  handleError(testError, mockConfig);
135
155
  }).toThrow('process.exit called with code: 1');
136
- expect(consoleErrorSpy).toHaveBeenCalledWith(JSON.stringify({
156
+ expect(coreEventsEmitFeedbackSpy).toHaveBeenCalledTimes(1);
157
+ expect(coreEventsEmitFeedbackSpy).toHaveBeenCalledWith('error', JSON.stringify({
137
158
  session_id: TEST_SESSION_ID,
138
159
  error: {
139
160
  type: 'Error',
@@ -141,13 +162,16 @@ describe('errors', () => {
141
162
  code: 1,
142
163
  },
143
164
  }, null, 2));
165
+ expect(debugLoggerErrorSpy).not.toHaveBeenCalled();
166
+ expect(runSyncCleanupSpy).toHaveBeenCalled();
144
167
  });
145
- it('should use custom error code when provided', () => {
168
+ it('should use custom error code when provided and only surface once', () => {
146
169
  const testError = new Error('Test error');
147
170
  expect(() => {
148
171
  handleError(testError, mockConfig, 42);
149
172
  }).toThrow('process.exit called with code: 42');
150
- expect(consoleErrorSpy).toHaveBeenCalledWith(JSON.stringify({
173
+ expect(coreEventsEmitFeedbackSpy).toHaveBeenCalledTimes(1);
174
+ expect(coreEventsEmitFeedbackSpy).toHaveBeenCalledWith('error', JSON.stringify({
151
175
  session_id: TEST_SESSION_ID,
152
176
  error: {
153
177
  type: 'Error',
@@ -155,13 +179,15 @@ describe('errors', () => {
155
179
  code: 42,
156
180
  },
157
181
  }, null, 2));
182
+ expect(debugLoggerErrorSpy).not.toHaveBeenCalled();
158
183
  });
159
- it('should extract exitCode from FatalError instances', () => {
184
+ it('should extract exitCode from FatalError instances and only surface once', () => {
160
185
  const fatalError = new FatalInputError('Fatal error');
161
186
  expect(() => {
162
187
  handleError(fatalError, mockConfig);
163
188
  }).toThrow('process.exit called with code: 42');
164
- expect(consoleErrorSpy).toHaveBeenCalledWith(JSON.stringify({
189
+ expect(coreEventsEmitFeedbackSpy).toHaveBeenCalledTimes(1);
190
+ expect(coreEventsEmitFeedbackSpy).toHaveBeenCalledWith('error', JSON.stringify({
165
191
  session_id: TEST_SESSION_ID,
166
192
  error: {
167
193
  type: 'FatalInputError',
@@ -169,6 +195,7 @@ describe('errors', () => {
169
195
  code: 42,
170
196
  },
171
197
  }, null, 2));
198
+ expect(debugLoggerErrorSpy).not.toHaveBeenCalled();
172
199
  });
173
200
  it('should handle error with code property', () => {
174
201
  const errorWithCode = new Error('Error with code');
@@ -183,7 +210,7 @@ describe('errors', () => {
183
210
  expect(() => {
184
211
  handleError(errorWithStatus, mockConfig);
185
212
  }).toThrow('process.exit called with code: 1'); // string codes become 1
186
- expect(consoleErrorSpy).toHaveBeenCalledWith(JSON.stringify({
213
+ expect(coreEventsEmitFeedbackSpy).toHaveBeenCalledWith('error', JSON.stringify({
187
214
  session_id: TEST_SESSION_ID,
188
215
  error: {
189
216
  type: 'Error',
@@ -197,11 +224,12 @@ describe('errors', () => {
197
224
  beforeEach(() => {
198
225
  mockConfig.getOutputFormat.mockReturnValue(OutputFormat.STREAM_JSON);
199
226
  });
200
- it('should emit result event and exit', () => {
227
+ it('should emit result event, run cleanup, and exit', () => {
201
228
  const testError = new Error('Test error');
202
229
  expect(() => {
203
230
  handleError(testError, mockConfig);
204
231
  }).toThrow('process.exit called with code: 1');
232
+ expect(runSyncCleanupSpy).toHaveBeenCalled();
205
233
  });
206
234
  it('should extract exitCode from FatalError instances', () => {
207
235
  const fatalError = new FatalInputError('Fatal error');
@@ -218,13 +246,22 @@ describe('errors', () => {
218
246
  beforeEach(() => {
219
247
  mockConfig.getOutputFormat.mockReturnValue(OutputFormat.TEXT);
220
248
  });
221
- it('should log error message to stderr', () => {
249
+ it('should log error message to stderr (via debugLogger) for non-fatal', () => {
222
250
  handleToolError(toolName, toolError, mockConfig);
223
- expect(consoleErrorSpy).toHaveBeenCalledWith('Error executing tool test-tool: Tool failed');
251
+ expect(debugLoggerWarnSpy).toHaveBeenCalledWith('Error executing tool test-tool: Tool failed');
224
252
  });
225
253
  it('should use resultDisplay when provided', () => {
226
254
  handleToolError(toolName, toolError, mockConfig, 'CUSTOM_ERROR', 'Custom display message');
227
- expect(consoleErrorSpy).toHaveBeenCalledWith('Error executing tool test-tool: Custom display message');
255
+ expect(debugLoggerWarnSpy).toHaveBeenCalledWith('Error executing tool test-tool: Custom display message');
256
+ });
257
+ it('should emit feedback exactly once for fatal errors and not use debugLogger', () => {
258
+ expect(() => {
259
+ handleToolError(toolName, toolError, mockConfig, 'no_space_left');
260
+ }).toThrow('process.exit called with code: 54');
261
+ expect(coreEventsEmitFeedbackSpy).toHaveBeenCalledTimes(1);
262
+ expect(coreEventsEmitFeedbackSpy).toHaveBeenCalledWith('error', 'Error executing tool test-tool: Tool failed');
263
+ expect(debugLoggerErrorSpy).not.toHaveBeenCalled();
264
+ expect(runSyncCleanupSpy).toHaveBeenCalled();
228
265
  });
229
266
  });
230
267
  describe('in JSON mode', () => {
@@ -234,37 +271,42 @@ describe('errors', () => {
234
271
  describe('non-fatal errors', () => {
235
272
  it('should log error message to stderr without exiting for recoverable errors', () => {
236
273
  handleToolError(toolName, toolError, mockConfig, 'invalid_tool_params');
237
- expect(consoleErrorSpy).toHaveBeenCalledWith('Error executing tool test-tool: Tool failed');
274
+ expect(debugLoggerWarnSpy).toHaveBeenCalledWith('Error executing tool test-tool: Tool failed');
238
275
  // Should not exit for non-fatal errors
239
276
  expect(processExitSpy).not.toHaveBeenCalled();
277
+ expect(coreEventsEmitFeedbackSpy).not.toHaveBeenCalled();
240
278
  });
241
279
  it('should not exit for file not found errors', () => {
242
280
  handleToolError(toolName, toolError, mockConfig, 'file_not_found');
243
- expect(consoleErrorSpy).toHaveBeenCalledWith('Error executing tool test-tool: Tool failed');
281
+ expect(debugLoggerWarnSpy).toHaveBeenCalledWith('Error executing tool test-tool: Tool failed');
244
282
  expect(processExitSpy).not.toHaveBeenCalled();
283
+ expect(coreEventsEmitFeedbackSpy).not.toHaveBeenCalled();
245
284
  });
246
285
  it('should not exit for permission denied errors', () => {
247
286
  handleToolError(toolName, toolError, mockConfig, 'permission_denied');
248
- expect(consoleErrorSpy).toHaveBeenCalledWith('Error executing tool test-tool: Tool failed');
287
+ expect(debugLoggerWarnSpy).toHaveBeenCalledWith('Error executing tool test-tool: Tool failed');
249
288
  expect(processExitSpy).not.toHaveBeenCalled();
289
+ expect(coreEventsEmitFeedbackSpy).not.toHaveBeenCalled();
250
290
  });
251
291
  it('should not exit for path not in workspace errors', () => {
252
292
  handleToolError(toolName, toolError, mockConfig, 'path_not_in_workspace');
253
- expect(consoleErrorSpy).toHaveBeenCalledWith('Error executing tool test-tool: Tool failed');
293
+ expect(debugLoggerWarnSpy).toHaveBeenCalledWith('Error executing tool test-tool: Tool failed');
254
294
  expect(processExitSpy).not.toHaveBeenCalled();
295
+ expect(coreEventsEmitFeedbackSpy).not.toHaveBeenCalled();
255
296
  });
256
297
  it('should prefer resultDisplay over error message', () => {
257
298
  handleToolError(toolName, toolError, mockConfig, 'invalid_tool_params', 'Display message');
258
- expect(consoleErrorSpy).toHaveBeenCalledWith('Error executing tool test-tool: Display message');
299
+ expect(debugLoggerWarnSpy).toHaveBeenCalledWith('Error executing tool test-tool: Display message');
259
300
  expect(processExitSpy).not.toHaveBeenCalled();
260
301
  });
261
302
  });
262
303
  describe('fatal errors', () => {
263
- it('should exit immediately for NO_SPACE_LEFT errors', () => {
304
+ it('should exit immediately for NO_SPACE_LEFT errors and only surface once', () => {
264
305
  expect(() => {
265
306
  handleToolError(toolName, toolError, mockConfig, 'no_space_left');
266
307
  }).toThrow('process.exit called with code: 54');
267
- expect(consoleErrorSpy).toHaveBeenCalledWith(JSON.stringify({
308
+ expect(coreEventsEmitFeedbackSpy).toHaveBeenCalledTimes(1);
309
+ expect(coreEventsEmitFeedbackSpy).toHaveBeenCalledWith('error', JSON.stringify({
268
310
  session_id: TEST_SESSION_ID,
269
311
  error: {
270
312
  type: 'FatalToolExecutionError',
@@ -272,6 +314,8 @@ describe('errors', () => {
272
314
  code: 'no_space_left',
273
315
  },
274
316
  }, null, 2));
317
+ expect(debugLoggerErrorSpy).not.toHaveBeenCalled();
318
+ expect(runSyncCleanupSpy).toHaveBeenCalled();
275
319
  });
276
320
  });
277
321
  });
@@ -279,14 +323,16 @@ describe('errors', () => {
279
323
  beforeEach(() => {
280
324
  mockConfig.getOutputFormat.mockReturnValue(OutputFormat.STREAM_JSON);
281
325
  });
282
- it('should emit result event and exit for fatal errors', () => {
326
+ it('should emit result event, run cleanup, and exit for fatal errors', () => {
283
327
  expect(() => {
284
328
  handleToolError(toolName, toolError, mockConfig, 'no_space_left');
285
329
  }).toThrow('process.exit called with code: 54');
330
+ expect(runSyncCleanupSpy).toHaveBeenCalled();
331
+ expect(coreEventsEmitFeedbackSpy).not.toHaveBeenCalled(); // Stream mode uses emitEvent
286
332
  });
287
333
  it('should log to stderr and not exit for non-fatal errors', () => {
288
334
  handleToolError(toolName, toolError, mockConfig, 'invalid_tool_params');
289
- expect(consoleErrorSpy).toHaveBeenCalledWith('Error executing tool test-tool: Tool failed');
335
+ expect(debugLoggerWarnSpy).toHaveBeenCalledWith('Error executing tool test-tool: Tool failed');
290
336
  expect(processExitSpy).not.toHaveBeenCalled();
291
337
  });
292
338
  });
@@ -296,22 +342,26 @@ describe('errors', () => {
296
342
  beforeEach(() => {
297
343
  mockConfig.getOutputFormat.mockReturnValue(OutputFormat.TEXT);
298
344
  });
299
- it('should log cancellation message and exit with 130', () => {
345
+ it('should emit feedback exactly once, run cleanup, and exit with 130', () => {
300
346
  expect(() => {
301
347
  handleCancellationError(mockConfig);
302
348
  }).toThrow('process.exit called with code: 130');
303
- expect(consoleErrorSpy).toHaveBeenCalledWith('Operation cancelled.');
349
+ expect(coreEventsEmitFeedbackSpy).toHaveBeenCalledTimes(1);
350
+ expect(coreEventsEmitFeedbackSpy).toHaveBeenCalledWith('error', 'Operation cancelled.');
351
+ expect(debugLoggerErrorSpy).not.toHaveBeenCalled();
352
+ expect(runSyncCleanupSpy).toHaveBeenCalled();
304
353
  });
305
354
  });
306
355
  describe('in JSON mode', () => {
307
356
  beforeEach(() => {
308
357
  mockConfig.getOutputFormat.mockReturnValue(OutputFormat.JSON);
309
358
  });
310
- it('should format cancellation as JSON and exit with 130', () => {
359
+ it('should format cancellation as JSON, emit feedback once, and exit with 130', () => {
311
360
  expect(() => {
312
361
  handleCancellationError(mockConfig);
313
362
  }).toThrow('process.exit called with code: 130');
314
- expect(consoleErrorSpy).toHaveBeenCalledWith(JSON.stringify({
363
+ expect(coreEventsEmitFeedbackSpy).toHaveBeenCalledTimes(1);
364
+ expect(coreEventsEmitFeedbackSpy).toHaveBeenCalledWith('error', JSON.stringify({
315
365
  session_id: TEST_SESSION_ID,
316
366
  error: {
317
367
  type: 'FatalCancellationError',
@@ -319,6 +369,7 @@ describe('errors', () => {
319
369
  code: 130,
320
370
  },
321
371
  }, null, 2));
372
+ expect(debugLoggerErrorSpy).not.toHaveBeenCalled();
322
373
  });
323
374
  });
324
375
  describe('in STREAM_JSON mode', () => {
@@ -329,6 +380,7 @@ describe('errors', () => {
329
380
  expect(() => {
330
381
  handleCancellationError(mockConfig);
331
382
  }).toThrow('process.exit called with code: 130');
383
+ expect(coreEventsEmitFeedbackSpy).not.toHaveBeenCalled();
332
384
  });
333
385
  });
334
386
  });
@@ -337,22 +389,26 @@ describe('errors', () => {
337
389
  beforeEach(() => {
338
390
  mockConfig.getOutputFormat.mockReturnValue(OutputFormat.TEXT);
339
391
  });
340
- it('should log max turns message and exit with 53', () => {
392
+ it('should emit feedback exactly once, run cleanup, and exit with 53', () => {
341
393
  expect(() => {
342
394
  handleMaxTurnsExceededError(mockConfig);
343
395
  }).toThrow('process.exit called with code: 53');
344
- expect(consoleErrorSpy).toHaveBeenCalledWith('Reached max session turns for this session. Increase the number of turns by specifying maxSessionTurns in settings.json.');
396
+ expect(coreEventsEmitFeedbackSpy).toHaveBeenCalledTimes(1);
397
+ expect(coreEventsEmitFeedbackSpy).toHaveBeenCalledWith('error', 'Reached max session turns for this session. Increase the number of turns by specifying maxSessionTurns in settings.json.');
398
+ expect(debugLoggerErrorSpy).not.toHaveBeenCalled();
399
+ expect(runSyncCleanupSpy).toHaveBeenCalled();
345
400
  });
346
401
  });
347
402
  describe('in JSON mode', () => {
348
403
  beforeEach(() => {
349
404
  mockConfig.getOutputFormat.mockReturnValue(OutputFormat.JSON);
350
405
  });
351
- it('should format max turns error as JSON and exit with 53', () => {
406
+ it('should format max turns error as JSON, emit feedback once, and exit with 53', () => {
352
407
  expect(() => {
353
408
  handleMaxTurnsExceededError(mockConfig);
354
409
  }).toThrow('process.exit called with code: 53');
355
- expect(consoleErrorSpy).toHaveBeenCalledWith(JSON.stringify({
410
+ expect(coreEventsEmitFeedbackSpy).toHaveBeenCalledTimes(1);
411
+ expect(coreEventsEmitFeedbackSpy).toHaveBeenCalledWith('error', JSON.stringify({
356
412
  session_id: TEST_SESSION_ID,
357
413
  error: {
358
414
  type: 'FatalTurnLimitedError',
@@ -360,6 +416,7 @@ describe('errors', () => {
360
416
  code: 53,
361
417
  },
362
418
  }, null, 2));
419
+ expect(debugLoggerErrorSpy).not.toHaveBeenCalled();
363
420
  });
364
421
  });
365
422
  describe('in STREAM_JSON mode', () => {
@@ -370,6 +427,7 @@ describe('errors', () => {
370
427
  expect(() => {
371
428
  handleMaxTurnsExceededError(mockConfig);
372
429
  }).toThrow('process.exit called with code: 53');
430
+ expect(coreEventsEmitFeedbackSpy).not.toHaveBeenCalled();
373
431
  });
374
432
  });
375
433
  });
@@ -1 +1 @@
1
- {"version":3,"file":"errors.test.js","sourceRoot":"","sources":["../../../src/utils/errors.test.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"errors.test.js","sourceRoot":"","sources":["../../../src/utils/errors.test.ts"],"names":[],"mappings":"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"}
@@ -52,10 +52,17 @@ export async function readStdin() {
52
52
  process.stdin.removeListener('readable', onReadable);
53
53
  process.stdin.removeListener('end', onEnd);
54
54
  process.stdin.removeListener('error', onError);
55
+ // Add a no-op error listener if no other error listeners are present to prevent
56
+ // unhandled 'error' events (like EIO) from crashing the process after we stop reading.
57
+ // This is especially important for background execution where TTY might cause EIO.
58
+ if (process.stdin.listenerCount('error') === 0) {
59
+ process.stdin.on('error', noopErrorHandler);
60
+ }
55
61
  };
56
62
  process.stdin.on('readable', onReadable);
57
63
  process.stdin.on('end', onEnd);
58
64
  process.stdin.on('error', onError);
59
65
  });
60
66
  }
67
+ function noopErrorHandler() { }
61
68
  //# sourceMappingURL=readStdin.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"readStdin.js","sourceRoot":"","sources":["../../../src/utils/readStdin.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,WAAW,EAAE,MAAM,yBAAyB,CAAC;AAEtD,MAAM,CAAC,KAAK,UAAU,SAAS;IAC7B,MAAM,cAAc,GAAG,CAAC,GAAG,IAAI,GAAG,IAAI,CAAC,CAAC,MAAM;IAC9C,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;QACrC,IAAI,IAAI,GAAG,EAAE,CAAC;QACd,IAAI,SAAS,GAAG,CAAC,CAAC;QAClB,OAAO,CAAC,KAAK,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC;QAElC,MAAM,+BAA+B,GAAG,GAAG,CAAC;QAC5C,IAAI,iBAAiB,GAA0B,UAAU,CAAC,GAAG,EAAE;YAC7D,6DAA6D;YAC7D,4DAA4D;YAC5D,kEAAkE;YAClE,KAAK,EAAE,CAAC;QACV,CAAC,EAAE,+BAA+B,CAAC,CAAC;QAEpC,MAAM,UAAU,GAAG,GAAG,EAAE;YACtB,IAAI,KAAK,CAAC;YACV,OAAO,CAAC,KAAK,GAAG,OAAO,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC,KAAK,IAAI,EAAE,CAAC;gBAC/C,IAAI,iBAAiB,EAAE,CAAC;oBACtB,YAAY,CAAC,iBAAiB,CAAC,CAAC;oBAChC,iBAAiB,GAAG,IAAI,CAAC;gBAC3B,CAAC;gBAED,IAAI,SAAS,GAAG,KAAK,CAAC,MAAM,GAAG,cAAc,EAAE,CAAC;oBAC9C,MAAM,aAAa,GAAG,cAAc,GAAG,SAAS,CAAC;oBACjD,IAAI,IAAI,KAAK,CAAC,KAAK,CAAC,CAAC,EAAE,aAAa,CAAC,CAAC;oBACtC,WAAW,CAAC,IAAI,CACd,qCAAqC,cAAc,SAAS,CAC7D,CAAC;oBACF,OAAO,CAAC,KAAK,CAAC,OAAO,EAAE,CAAC,CAAC,uBAAuB;oBAChD,KAAK,EAAE,CAAC;oBACR,MAAM;gBACR,CAAC;gBACD,IAAI,IAAI,KAAK,CAAC;gBACd,SAAS,IAAI,KAAK,CAAC,MAAM,CAAC;YAC5B,CAAC;QACH,CAAC,CAAC;QAEF,MAAM,KAAK,GAAG,GAAG,EAAE;YACjB,OAAO,EAAE,CAAC;YACV,OAAO,CAAC,IAAI,CAAC,CAAC;QAChB,CAAC,CAAC;QAEF,MAAM,OAAO,GAAG,CAAC,GAAU,EAAE,EAAE;YAC7B,OAAO,EAAE,CAAC;YACV,MAAM,CAAC,GAAG,CAAC,CAAC;QACd,CAAC,CAAC;QAEF,MAAM,OAAO,GAAG,GAAG,EAAE;YACnB,IAAI,iBAAiB,EAAE,CAAC;gBACtB,YAAY,CAAC,iBAAiB,CAAC,CAAC;gBAChC,iBAAiB,GAAG,IAAI,CAAC;YAC3B,CAAC;YACD,OAAO,CAAC,KAAK,CAAC,cAAc,CAAC,UAAU,EAAE,UAAU,CAAC,CAAC;YACrD,OAAO,CAAC,KAAK,CAAC,cAAc,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC;YAC3C,OAAO,CAAC,KAAK,CAAC,cAAc,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;QACjD,CAAC,CAAC;QAEF,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC,UAAU,EAAE,UAAU,CAAC,CAAC;QACzC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC;QAC/B,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;IACrC,CAAC,CAAC,CAAC;AACL,CAAC"}
1
+ {"version":3,"file":"readStdin.js","sourceRoot":"","sources":["../../../src/utils/readStdin.ts"],"names":[],"mappings":"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"}
@@ -18,6 +18,8 @@ const mockStdin = {
18
18
  on: vi.fn(),
19
19
  removeListener: vi.fn(),
20
20
  destroy: vi.fn(),
21
+ listeners: vi.fn().mockReturnValue([]),
22
+ listenerCount: vi.fn().mockReturnValue(0),
21
23
  };
22
24
  describe('readStdin', () => {
23
25
  let originalStdin;
@@ -42,6 +44,8 @@ describe('readStdin', () => {
42
44
  if (event === 'error')
43
45
  onErrorHandler = handler;
44
46
  });
47
+ mockStdin.listeners.mockReturnValue([]);
48
+ mockStdin.listenerCount.mockReturnValue(0);
45
49
  });
46
50
  afterEach(() => {
47
51
  vi.restoreAllMocks();
@@ -1 +1 @@
1
- {"version":3,"file":"readStdin.test.js","sourceRoot":"","sources":["../../../src/utils/readStdin.test.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"readStdin.test.js","sourceRoot":"","sources":["../../../src/utils/readStdin.test.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,6 @@
1
+ /**
2
+ * @license
3
+ * Copyright 2025 Google LLC
4
+ * SPDX-License-Identifier: Apache-2.0
5
+ */
6
+ export {};
@@ -0,0 +1,68 @@
1
+ /**
2
+ * @license
3
+ * Copyright 2025 Google LLC
4
+ * SPDX-License-Identifier: Apache-2.0
5
+ */
6
+ import { vi, describe, expect, it, beforeEach, afterEach } from 'vitest';
7
+ import { readStdin } from './readStdin.js';
8
+ import { EventEmitter } from 'node:events';
9
+ // Mock debugLogger to avoid clutter
10
+ vi.mock('@google/gemini-cli-core', () => ({
11
+ debugLogger: {
12
+ warn: vi.fn(),
13
+ },
14
+ }));
15
+ describe('readStdin EIO Reproduction', () => {
16
+ let originalStdin;
17
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
18
+ let fakeStdin;
19
+ beforeEach(() => {
20
+ originalStdin = process.stdin;
21
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
22
+ fakeStdin = new EventEmitter();
23
+ fakeStdin.setEncoding = vi.fn();
24
+ fakeStdin.read = vi.fn().mockReturnValue(null); // Return null to simulate end of reading or no data
25
+ fakeStdin.destroy = vi.fn();
26
+ Object.defineProperty(process, 'stdin', {
27
+ value: fakeStdin,
28
+ writable: true,
29
+ configurable: true,
30
+ });
31
+ });
32
+ afterEach(() => {
33
+ Object.defineProperty(process, 'stdin', {
34
+ value: originalStdin,
35
+ writable: true,
36
+ configurable: true,
37
+ });
38
+ vi.restoreAllMocks();
39
+ });
40
+ it('crashes (throws unhandled error) if EIO happens after readStdin completes', async () => {
41
+ const promise = readStdin();
42
+ fakeStdin.emit('end');
43
+ await promise;
44
+ // Verify listeners are removed (implementation detail check)
45
+ // We expect 1 listener now (our no-op handler) because we started with 0.
46
+ expect(fakeStdin.listenerCount('error')).toBe(1);
47
+ // This mimics the crash.
48
+ // We expect this NOT to throw now that we've added a no-op handler.
49
+ expect(() => {
50
+ fakeStdin.emit('error', new Error('EIO'));
51
+ }).not.toThrow();
52
+ });
53
+ it('does NOT add a no-op handler if another error listener is present', async () => {
54
+ const customErrorHandler = vi.fn();
55
+ fakeStdin.on('error', customErrorHandler);
56
+ const promise = readStdin();
57
+ fakeStdin.emit('end');
58
+ await promise;
59
+ // It should have exactly 1 listener (our custom one), not 2.
60
+ expect(fakeStdin.listenerCount('error')).toBe(1);
61
+ expect(fakeStdin.listeners('error')).toContain(customErrorHandler);
62
+ // Triggering error should call our handler and NOT crash (because there is a listener)
63
+ const error = new Error('EIO');
64
+ fakeStdin.emit('error', error);
65
+ expect(customErrorHandler).toHaveBeenCalledWith(error);
66
+ });
67
+ });
68
+ //# sourceMappingURL=readStdin_safety.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"readStdin_safety.test.js","sourceRoot":"","sources":["../../../src/utils/readStdin_safety.test.ts"],"names":[],"mappings":"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"}
@@ -5,6 +5,7 @@
5
5
  */
6
6
  import { spawn } from 'node:child_process';
7
7
  import { RELAUNCH_EXIT_CODE } from './processUtils.js';
8
+ import { writeToStderr } from '@google/gemini-cli-core';
8
9
  export async function relaunchOnExitCode(runner) {
9
10
  while (true) {
10
11
  try {
@@ -15,7 +16,8 @@ export async function relaunchOnExitCode(runner) {
15
16
  }
16
17
  catch (error) {
17
18
  process.stdin.resume();
18
- console.error('Fatal error: Failed to relaunch the CLI process.', error);
19
+ const errorMessage = error instanceof Error ? (error.stack ?? error.message) : String(error);
20
+ writeToStderr(`Fatal error: Failed to relaunch the CLI process.\n${errorMessage}\n`);
19
21
  process.exit(1);
20
22
  }
21
23
  }
@@ -1 +1 @@
1
- {"version":3,"file":"relaunch.js","sourceRoot":"","sources":["../../../src/utils/relaunch.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,KAAK,EAAE,MAAM,oBAAoB,CAAC;AAC3C,OAAO,EAAE,kBAAkB,EAAE,MAAM,mBAAmB,CAAC;AAEvD,MAAM,CAAC,KAAK,UAAU,kBAAkB,CAAC,MAA6B;IACpE,OAAO,IAAI,EAAE,CAAC;QACZ,IAAI,CAAC;YACH,MAAM,QAAQ,GAAG,MAAM,MAAM,EAAE,CAAC;YAEhC,IAAI,QAAQ,KAAK,kBAAkB,EAAE,CAAC;gBACpC,OAAO,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;YACzB,CAAC;QACH,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,OAAO,CAAC,KAAK,CAAC,MAAM,EAAE,CAAC;YACvB,OAAO,CAAC,KAAK,CAAC,kDAAkD,EAAE,KAAK,CAAC,CAAC;YACzE,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAClB,CAAC;IACH,CAAC;AACH,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,yBAAyB,CAC7C,kBAA4B,EAC5B,oBAA8B;IAE9B,IAAI,OAAO,CAAC,GAAG,CAAC,wBAAwB,CAAC,EAAE,CAAC;QAC1C,OAAO;IACT,CAAC;IAED,MAAM,MAAM,GAAG,GAAG,EAAE;QAClB,0CAA0C;QAC1C,6DAA6D;QAC7D,MAAM,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAC/B,MAAM,UAAU,GAAG,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;QAEzC,MAAM,QAAQ,GAAG;YACf,GAAG,OAAO,CAAC,QAAQ;YACnB,GAAG,kBAAkB;YACrB,MAAM;YACN,GAAG,oBAAoB;YACvB,GAAG,UAAU;SACd,CAAC;QACF,MAAM,MAAM,GAAG,EAAE,GAAG,OAAO,CAAC,GAAG,EAAE,sBAAsB,EAAE,MAAM,EAAE,CAAC;QAElE,kFAAkF;QAClF,OAAO,CAAC,KAAK,CAAC,KAAK,EAAE,CAAC;QAEtB,MAAM,KAAK,GAAG,KAAK,CAAC,OAAO,CAAC,QAAQ,EAAE,QAAQ,EAAE;YAC9C,KAAK,EAAE,SAAS;YAChB,GAAG,EAAE,MAAM;SACZ,CAAC,CAAC;QAEH,OAAO,IAAI,OAAO,CAAS,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;YAC7C,KAAK,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;YAC1B,KAAK,CAAC,EAAE,CAAC,OAAO,EAAE,CAAC,IAAI,EAAE,EAAE;gBACzB,gDAAgD;gBAChD,OAAO,CAAC,KAAK,CAAC,MAAM,EAAE,CAAC;gBACvB,OAAO,CAAC,IAAI,IAAI,CAAC,CAAC,CAAC;YACrB,CAAC,CAAC,CAAC;QACL,CAAC,CAAC,CAAC;IACL,CAAC,CAAC;IAEF,MAAM,kBAAkB,CAAC,MAAM,CAAC,CAAC;AACnC,CAAC"}
1
+ {"version":3,"file":"relaunch.js","sourceRoot":"","sources":["../../../src/utils/relaunch.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,KAAK,EAAE,MAAM,oBAAoB,CAAC;AAC3C,OAAO,EAAE,kBAAkB,EAAE,MAAM,mBAAmB,CAAC;AACvD,OAAO,EAAE,aAAa,EAAE,MAAM,yBAAyB,CAAC;AAExD,MAAM,CAAC,KAAK,UAAU,kBAAkB,CAAC,MAA6B;IACpE,OAAO,IAAI,EAAE,CAAC;QACZ,IAAI,CAAC;YACH,MAAM,QAAQ,GAAG,MAAM,MAAM,EAAE,CAAC;YAEhC,IAAI,QAAQ,KAAK,kBAAkB,EAAE,CAAC;gBACpC,OAAO,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;YACzB,CAAC;QACH,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,OAAO,CAAC,KAAK,CAAC,MAAM,EAAE,CAAC;YACvB,MAAM,YAAY,GAChB,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,IAAI,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;YAC1E,aAAa,CACX,qDAAqD,YAAY,IAAI,CACtE,CAAC;YACF,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAClB,CAAC;IACH,CAAC;AACH,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,yBAAyB,CAC7C,kBAA4B,EAC5B,oBAA8B;IAE9B,IAAI,OAAO,CAAC,GAAG,CAAC,wBAAwB,CAAC,EAAE,CAAC;QAC1C,OAAO;IACT,CAAC;IAED,MAAM,MAAM,GAAG,GAAG,EAAE;QAClB,0CAA0C;QAC1C,6DAA6D;QAC7D,MAAM,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAC/B,MAAM,UAAU,GAAG,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;QAEzC,MAAM,QAAQ,GAAG;YACf,GAAG,OAAO,CAAC,QAAQ;YACnB,GAAG,kBAAkB;YACrB,MAAM;YACN,GAAG,oBAAoB;YACvB,GAAG,UAAU;SACd,CAAC;QACF,MAAM,MAAM,GAAG,EAAE,GAAG,OAAO,CAAC,GAAG,EAAE,sBAAsB,EAAE,MAAM,EAAE,CAAC;QAElE,kFAAkF;QAClF,OAAO,CAAC,KAAK,CAAC,KAAK,EAAE,CAAC;QAEtB,MAAM,KAAK,GAAG,KAAK,CAAC,OAAO,CAAC,QAAQ,EAAE,QAAQ,EAAE;YAC9C,KAAK,EAAE,SAAS;YAChB,GAAG,EAAE,MAAM;SACZ,CAAC,CAAC;QAEH,OAAO,IAAI,OAAO,CAAS,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;YAC7C,KAAK,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;YAC1B,KAAK,CAAC,EAAE,CAAC,OAAO,EAAE,CAAC,IAAI,EAAE,EAAE;gBACzB,gDAAgD;gBAChD,OAAO,CAAC,KAAK,CAAC,MAAM,EAAE,CAAC;gBACvB,OAAO,CAAC,IAAI,IAAI,CAAC,CAAC,CAAC;YACrB,CAAC,CAAC,CAAC;QACL,CAAC,CAAC,CAAC;IACL,CAAC,CAAC;IAEF,MAAM,kBAAkB,CAAC,MAAM,CAAC,CAAC;AACnC,CAAC"}