@google/gemini-cli 0.3.0-nightly.20250822.15c62bad → 0.3.0-nightly.20250823.1a89d185

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 (96) hide show
  1. package/dist/package.json +2 -2
  2. package/dist/src/config/auth.js +9 -0
  3. package/dist/src/config/auth.js.map +1 -1
  4. package/dist/src/config/config.js +1 -0
  5. package/dist/src/config/config.js.map +1 -1
  6. package/dist/src/config/settingsSchema.d.ts +28 -1
  7. package/dist/src/config/settingsSchema.js +28 -1
  8. package/dist/src/config/settingsSchema.js.map +1 -1
  9. package/dist/src/config/settingsSchema.test.js +11 -0
  10. package/dist/src/config/settingsSchema.test.js.map +1 -1
  11. package/dist/src/generated/git-commit.d.ts +2 -2
  12. package/dist/src/generated/git-commit.js +2 -2
  13. package/dist/src/nonInteractiveCli.js +1 -11
  14. package/dist/src/nonInteractiveCli.js.map +1 -1
  15. package/dist/src/services/McpPromptLoader.d.ts +11 -1
  16. package/dist/src/services/McpPromptLoader.js +42 -16
  17. package/dist/src/services/McpPromptLoader.js.map +1 -1
  18. package/dist/src/services/McpPromptLoader.test.d.ts +6 -0
  19. package/dist/src/services/McpPromptLoader.test.js +114 -0
  20. package/dist/src/services/McpPromptLoader.test.js.map +1 -0
  21. package/dist/src/ui/App.js +6 -1
  22. package/dist/src/ui/App.js.map +1 -1
  23. package/dist/src/ui/commands/aboutCommand.js +8 -1
  24. package/dist/src/ui/commands/aboutCommand.js.map +1 -1
  25. package/dist/src/ui/commands/copyCommand.js +1 -1
  26. package/dist/src/ui/commands/copyCommand.js.map +1 -1
  27. package/dist/src/ui/components/AboutBox.d.ts +2 -0
  28. package/dist/src/ui/components/AboutBox.js +2 -1
  29. package/dist/src/ui/components/AboutBox.js.map +1 -1
  30. package/dist/src/ui/components/AuthDialog.js +5 -1
  31. package/dist/src/ui/components/AuthDialog.js.map +1 -1
  32. package/dist/src/ui/components/DetailedMessagesDisplay.js +1 -1
  33. package/dist/src/ui/components/DetailedMessagesDisplay.js.map +1 -1
  34. package/dist/src/ui/components/HistoryItemDisplay.js +1 -1
  35. package/dist/src/ui/components/HistoryItemDisplay.js.map +1 -1
  36. package/dist/src/ui/components/InputPrompt.js +0 -1
  37. package/dist/src/ui/components/InputPrompt.js.map +1 -1
  38. package/dist/src/ui/components/SuggestionsDisplay.js +11 -4
  39. package/dist/src/ui/components/SuggestionsDisplay.js.map +1 -1
  40. package/dist/src/ui/components/messages/DiffRenderer.js +2 -1
  41. package/dist/src/ui/components/messages/DiffRenderer.js.map +1 -1
  42. package/dist/src/ui/components/messages/DiffRenderer.test.js +11 -10
  43. package/dist/src/ui/components/messages/DiffRenderer.test.js.map +1 -1
  44. package/dist/src/ui/contexts/KeypressContext.d.ts +2 -1
  45. package/dist/src/ui/contexts/KeypressContext.js +22 -3
  46. package/dist/src/ui/contexts/KeypressContext.js.map +1 -1
  47. package/dist/src/ui/contexts/KeypressContext.test.js +112 -1
  48. package/dist/src/ui/contexts/KeypressContext.test.js.map +1 -1
  49. package/dist/src/ui/hooks/atCommandProcessor.js +0 -1
  50. package/dist/src/ui/hooks/atCommandProcessor.js.map +1 -1
  51. package/dist/src/ui/hooks/atCommandProcessor.test.js +1 -0
  52. package/dist/src/ui/hooks/atCommandProcessor.test.js.map +1 -1
  53. package/dist/src/ui/hooks/useAtCompletion.js +1 -0
  54. package/dist/src/ui/hooks/useAtCompletion.js.map +1 -1
  55. package/dist/src/ui/hooks/useGeminiStream.d.ts +0 -1
  56. package/dist/src/ui/hooks/useGeminiStream.js +17 -31
  57. package/dist/src/ui/hooks/useGeminiStream.js.map +1 -1
  58. package/dist/src/ui/hooks/useToolScheduler.test.js +32 -24
  59. package/dist/src/ui/hooks/useToolScheduler.test.js.map +1 -1
  60. package/dist/src/ui/themes/theme-manager.d.ts +2 -0
  61. package/dist/src/ui/themes/theme-manager.js +72 -5
  62. package/dist/src/ui/themes/theme-manager.js.map +1 -1
  63. package/dist/src/ui/themes/theme-manager.test.js +60 -1
  64. package/dist/src/ui/themes/theme-manager.test.js.map +1 -1
  65. package/dist/src/ui/types.d.ts +2 -1
  66. package/dist/src/ui/types.js.map +1 -1
  67. package/dist/src/ui/utils/MarkdownDisplay.js +2 -1
  68. package/dist/src/ui/utils/MarkdownDisplay.js.map +1 -1
  69. package/dist/src/ui/utils/MarkdownDisplay.test.js +15 -14
  70. package/dist/src/ui/utils/MarkdownDisplay.test.js.map +1 -1
  71. package/dist/src/ui/utils/commandUtils.js +16 -3
  72. package/dist/src/ui/utils/commandUtils.js.map +1 -1
  73. package/dist/src/ui/utils/commandUtils.test.js +55 -7
  74. package/dist/src/ui/utils/commandUtils.test.js.map +1 -1
  75. package/dist/src/ui/utils/platformConstants.d.ts +7 -0
  76. package/dist/src/ui/utils/platformConstants.js +7 -0
  77. package/dist/src/ui/utils/platformConstants.js.map +1 -1
  78. package/dist/src/utils/license.d.ts +13 -0
  79. package/dist/src/utils/license.js +35 -0
  80. package/dist/src/utils/license.js.map +1 -0
  81. package/dist/src/utils/license.test.d.ts +6 -0
  82. package/dist/src/utils/license.test.js +77 -0
  83. package/dist/src/utils/license.test.js.map +1 -0
  84. package/dist/src/utils/readStdin.js +57 -18
  85. package/dist/src/utils/readStdin.js.map +1 -1
  86. package/dist/src/utils/sandbox.js +2 -2
  87. package/dist/src/utils/sandbox.js.map +1 -1
  88. package/dist/src/zed-integration/acp.js +2 -1
  89. package/dist/src/zed-integration/acp.js.map +1 -1
  90. package/dist/src/zed-integration/schema.d.ts +116 -13
  91. package/dist/src/zed-integration/schema.js +7 -1
  92. package/dist/src/zed-integration/schema.js.map +1 -1
  93. package/dist/src/zed-integration/zedIntegration.js +130 -94
  94. package/dist/src/zed-integration/zedIntegration.js.map +1 -1
  95. package/dist/tsconfig.tsbuildinfo +1 -1
  96. package/package.json +3 -3
@@ -67,13 +67,26 @@ export const copyToClipboard = async (text) => {
67
67
  await run('xsel', ['--clipboard', '--input'], linuxOptions);
68
68
  }
69
69
  catch (fallbackError) {
70
- const primaryMsg = primaryError instanceof Error
70
+ const xclipNotFound = primaryError instanceof Error &&
71
+ primaryError.code === 'ENOENT';
72
+ const xselNotFound = fallbackError instanceof Error &&
73
+ fallbackError.code === 'ENOENT';
74
+ if (xclipNotFound && xselNotFound) {
75
+ throw new Error('Please ensure xclip or xsel is installed and configured.');
76
+ }
77
+ let primaryMsg = primaryError instanceof Error
71
78
  ? primaryError.message
72
79
  : String(primaryError);
73
- const fallbackMsg = fallbackError instanceof Error
80
+ if (xclipNotFound) {
81
+ primaryMsg = `xclip not found`;
82
+ }
83
+ let fallbackMsg = fallbackError instanceof Error
74
84
  ? fallbackError.message
75
85
  : String(fallbackError);
76
- throw new Error(`All copy commands failed. xclip: "${primaryMsg}", xsel: "${fallbackMsg}". Please ensure xclip or xsel is installed and configured.`);
86
+ if (xselNotFound) {
87
+ fallbackMsg = `xsel not found`;
88
+ }
89
+ throw new Error(`All copy commands failed. "${primaryMsg}", "${fallbackMsg}". `);
77
90
  }
78
91
  }
79
92
  return;
@@ -1 +1 @@
1
- {"version":3,"file":"commandUtils.js","sourceRoot":"","sources":["../../../../src/ui/utils/commandUtils.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"commandUtils.js","sourceRoot":"","sources":["../../../../src/ui/utils/commandUtils.ts"],"names":[],"mappings":"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"}
@@ -163,7 +163,9 @@ describe('commandUtils', () => {
163
163
  setTimeout(() => {
164
164
  if (callCount === 0) {
165
165
  // First call (xclip) fails
166
- child.stderr.emit('data', 'xclip not found');
166
+ const error = new Error('spawn xclip ENOENT');
167
+ error.code = 'ENOENT';
168
+ child.emit('error', error);
167
169
  child.emit('close', 1);
168
170
  callCount++;
169
171
  }
@@ -179,9 +181,12 @@ describe('commandUtils', () => {
179
181
  expect(mockSpawn).toHaveBeenNthCalledWith(1, 'xclip', ['-selection', 'clipboard'], linuxOptions);
180
182
  expect(mockSpawn).toHaveBeenNthCalledWith(2, 'xsel', ['--clipboard', '--input'], linuxOptions);
181
183
  });
182
- it('should throw error when both xclip and xsel fail', async () => {
184
+ it('should throw error when both xclip and xsel are not found', async () => {
183
185
  const testText = 'Hello, world!';
184
186
  let callCount = 0;
187
+ const linuxOptions = {
188
+ stdio: ['pipe', 'inherit', 'pipe'],
189
+ };
185
190
  mockSpawn.mockImplementation(() => {
186
191
  const child = Object.assign(new EventEmitter(), {
187
192
  stdin: Object.assign(new EventEmitter(), {
@@ -192,21 +197,64 @@ describe('commandUtils', () => {
192
197
  });
193
198
  setTimeout(() => {
194
199
  if (callCount === 0) {
195
- // First call (xclip) fails
196
- child.stderr.emit('data', 'xclip command not found');
200
+ // First call (xclip) fails with ENOENT
201
+ const error = new Error('spawn xclip ENOENT');
202
+ error.code = 'ENOENT';
203
+ child.emit('error', error);
197
204
  child.emit('close', 1);
198
205
  callCount++;
199
206
  }
200
207
  else {
201
- // Second call (xsel) fails
202
- child.stderr.emit('data', 'xsel command not found');
208
+ // Second call (xsel) fails with ENOENT
209
+ const error = new Error('spawn xsel ENOENT');
210
+ error.code = 'ENOENT';
211
+ child.emit('error', error);
203
212
  child.emit('close', 1);
204
213
  }
205
214
  }, 0);
206
215
  return child;
207
216
  });
208
- await expect(copyToClipboard(testText)).rejects.toThrow(/All copy commands failed/);
217
+ await expect(copyToClipboard(testText)).rejects.toThrow('Please ensure xclip or xsel is installed and configured.');
218
+ expect(mockSpawn).toHaveBeenCalledTimes(2);
219
+ expect(mockSpawn).toHaveBeenNthCalledWith(1, 'xclip', ['-selection', 'clipboard'], linuxOptions);
220
+ expect(mockSpawn).toHaveBeenNthCalledWith(2, 'xsel', ['--clipboard', '--input'], linuxOptions);
221
+ });
222
+ it('should emit error when xclip or xsel fail with stderr output (command installed)', async () => {
223
+ const testText = 'Hello, world!';
224
+ let callCount = 0;
225
+ const linuxOptions = {
226
+ stdio: ['pipe', 'inherit', 'pipe'],
227
+ };
228
+ const errorMsg = "Error: Can't open display:";
229
+ const exitCode = 1;
230
+ mockSpawn.mockImplementation(() => {
231
+ const child = Object.assign(new EventEmitter(), {
232
+ stdin: Object.assign(new EventEmitter(), {
233
+ write: vi.fn(),
234
+ end: vi.fn(),
235
+ }),
236
+ stderr: new EventEmitter(),
237
+ });
238
+ setTimeout(() => {
239
+ // e.g., cannot connect to X server
240
+ if (callCount === 0) {
241
+ child.stderr.emit('data', errorMsg);
242
+ child.emit('close', exitCode);
243
+ callCount++;
244
+ }
245
+ else {
246
+ child.stderr.emit('data', errorMsg);
247
+ child.emit('close', exitCode);
248
+ }
249
+ }, 0);
250
+ return child;
251
+ });
252
+ const xclipErrorMsg = `'xclip' exited with code ${exitCode}${errorMsg ? `: ${errorMsg}` : ''}`;
253
+ const xselErrorMsg = `'xsel' exited with code ${exitCode}${errorMsg ? `: ${errorMsg}` : ''}`;
254
+ await expect(copyToClipboard(testText)).rejects.toThrow(`All copy commands failed. "${xclipErrorMsg}", "${xselErrorMsg}". `);
209
255
  expect(mockSpawn).toHaveBeenCalledTimes(2);
256
+ expect(mockSpawn).toHaveBeenNthCalledWith(1, 'xclip', ['-selection', 'clipboard'], linuxOptions);
257
+ expect(mockSpawn).toHaveBeenNthCalledWith(2, 'xsel', ['--clipboard', '--input'], linuxOptions);
210
258
  });
211
259
  });
212
260
  describe('on unsupported platform', () => {
@@ -1 +1 @@
1
- {"version":3,"file":"commandUtils.test.js","sourceRoot":"","sources":["../../../../src/ui/utils/commandUtils.test.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"commandUtils.test.js","sourceRoot":"","sources":["../../../../src/ui/utils/commandUtils.test.ts"],"names":[],"mappings":"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"}
@@ -41,3 +41,10 @@ export declare const BACKSLASH_ENTER_DETECTION_WINDOW_MS = 5;
41
41
  * We use 12 to provide a small buffer.
42
42
  */
43
43
  export declare const MAX_KITTY_SEQUENCE_LENGTH = 12;
44
+ /**
45
+ * Character codes for common escape sequences
46
+ */
47
+ export declare const CHAR_CODE_ESC = 27;
48
+ export declare const CHAR_CODE_LEFT_BRACKET = 91;
49
+ export declare const CHAR_CODE_1 = 49;
50
+ export declare const CHAR_CODE_2 = 50;
@@ -41,4 +41,11 @@ export const BACKSLASH_ENTER_DETECTION_WINDOW_MS = 5;
41
41
  * We use 12 to provide a small buffer.
42
42
  */
43
43
  export const MAX_KITTY_SEQUENCE_LENGTH = 12;
44
+ /**
45
+ * Character codes for common escape sequences
46
+ */
47
+ export const CHAR_CODE_ESC = 27;
48
+ export const CHAR_CODE_LEFT_BRACKET = 91;
49
+ export const CHAR_CODE_1 = 49;
50
+ export const CHAR_CODE_2 = 50;
44
51
  //# sourceMappingURL=platformConstants.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"platformConstants.js","sourceRoot":"","sources":["../../../../src/ui/utils/platformConstants.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH;;;;;GAKG;AAEH;;;GAGG;AACH,MAAM,CAAC,MAAM,YAAY,GAAG,QAAQ,CAAC;AAErC;;GAEG;AACH,MAAM,CAAC,MAAM,mBAAmB,GAAG,EAAE,CAAC;AACtC,MAAM,CAAC,MAAM,0BAA0B,GAAG,KAAK,CAAC;AAEhD;;GAEG;AACH,MAAM,CAAC,MAAM,4BAA4B,GAAG,IAAI,CAAC;AAEjD;;GAEG;AACH,MAAM,CAAC,MAAM,2BAA2B,GAAG,QAAQ,CAAC;AAEpD;;;;GAIG;AACH,MAAM,CAAC,MAAM,mCAAmC,GAAG,CAAC,CAAC;AAErD;;;;;;GAMG;AACH,MAAM,CAAC,MAAM,yBAAyB,GAAG,EAAE,CAAC"}
1
+ {"version":3,"file":"platformConstants.js","sourceRoot":"","sources":["../../../../src/ui/utils/platformConstants.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH;;;;;GAKG;AAEH;;;GAGG;AACH,MAAM,CAAC,MAAM,YAAY,GAAG,QAAQ,CAAC;AAErC;;GAEG;AACH,MAAM,CAAC,MAAM,mBAAmB,GAAG,EAAE,CAAC;AACtC,MAAM,CAAC,MAAM,0BAA0B,GAAG,KAAK,CAAC;AAEhD;;GAEG;AACH,MAAM,CAAC,MAAM,4BAA4B,GAAG,IAAI,CAAC;AAEjD;;GAEG;AACH,MAAM,CAAC,MAAM,2BAA2B,GAAG,QAAQ,CAAC;AAEpD;;;;GAIG;AACH,MAAM,CAAC,MAAM,mCAAmC,GAAG,CAAC,CAAC;AAErD;;;;;;GAMG;AACH,MAAM,CAAC,MAAM,yBAAyB,GAAG,EAAE,CAAC;AAE5C;;GAEG;AACH,MAAM,CAAC,MAAM,aAAa,GAAG,EAAE,CAAC;AAChC,MAAM,CAAC,MAAM,sBAAsB,GAAG,EAAE,CAAC;AACzC,MAAM,CAAC,MAAM,WAAW,GAAG,EAAE,CAAC;AAC9B,MAAM,CAAC,MAAM,WAAW,GAAG,EAAE,CAAC"}
@@ -0,0 +1,13 @@
1
+ /**
2
+ * @license
3
+ * Copyright 2025 Google LLC
4
+ * SPDX-License-Identifier: Apache-2.0
5
+ */
6
+ import { UserTierId } from '@google/gemini-cli-core';
7
+ /**
8
+ * Get human-readable license display text based on auth type and user tier.
9
+ * @param selectedAuthType - The authentication type selected by the user
10
+ * @param userTier - Optional user tier information from the server
11
+ * @returns Human-readable license information
12
+ */
13
+ export declare function getLicenseDisplay(selectedAuthType: string, userTier?: UserTierId): string;
@@ -0,0 +1,35 @@
1
+ /**
2
+ * @license
3
+ * Copyright 2025 Google LLC
4
+ * SPDX-License-Identifier: Apache-2.0
5
+ */
6
+ import { AuthType, UserTierId } from '@google/gemini-cli-core';
7
+ /**
8
+ * Get human-readable license display text based on auth type and user tier.
9
+ * @param selectedAuthType - The authentication type selected by the user
10
+ * @param userTier - Optional user tier information from the server
11
+ * @returns Human-readable license information
12
+ */
13
+ export function getLicenseDisplay(selectedAuthType, userTier) {
14
+ switch (selectedAuthType) {
15
+ case AuthType.LOGIN_WITH_GOOGLE:
16
+ return 'Free Tier (Login with Google)';
17
+ case AuthType.LOGIN_WITH_GOOGLE_GCA:
18
+ if (userTier === UserTierId.STANDARD) {
19
+ return 'Gemini Code Assist Standard (Google Workspace)';
20
+ }
21
+ else if (userTier === UserTierId.LEGACY) {
22
+ return 'Gemini Code Assist Enterprise (Google Workspace)';
23
+ }
24
+ return 'Gemini Code Assist (Google Workspace)';
25
+ case AuthType.USE_GEMINI:
26
+ return 'Gemini API Key';
27
+ case AuthType.USE_VERTEX_AI:
28
+ return 'Vertex AI';
29
+ case AuthType.CLOUD_SHELL:
30
+ return 'Cloud Shell';
31
+ default:
32
+ return selectedAuthType;
33
+ }
34
+ }
35
+ //# sourceMappingURL=license.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"license.js","sourceRoot":"","sources":["../../../src/utils/license.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,QAAQ,EAAE,UAAU,EAAE,MAAM,yBAAyB,CAAC;AAE/D;;;;;GAKG;AACH,MAAM,UAAU,iBAAiB,CAC/B,gBAAwB,EACxB,QAAqB;IAErB,QAAQ,gBAAgB,EAAE,CAAC;QACzB,KAAK,QAAQ,CAAC,iBAAiB;YAC7B,OAAO,+BAA+B,CAAC;QAEzC,KAAK,QAAQ,CAAC,qBAAqB;YACjC,IAAI,QAAQ,KAAK,UAAU,CAAC,QAAQ,EAAE,CAAC;gBACrC,OAAO,gDAAgD,CAAC;YAC1D,CAAC;iBAAM,IAAI,QAAQ,KAAK,UAAU,CAAC,MAAM,EAAE,CAAC;gBAC1C,OAAO,kDAAkD,CAAC;YAC5D,CAAC;YACD,OAAO,uCAAuC,CAAC;QAEjD,KAAK,QAAQ,CAAC,UAAU;YACtB,OAAO,gBAAgB,CAAC;QAE1B,KAAK,QAAQ,CAAC,aAAa;YACzB,OAAO,WAAW,CAAC;QAErB,KAAK,QAAQ,CAAC,WAAW;YACvB,OAAO,aAAa,CAAC;QAEvB;YACE,OAAO,gBAAgB,CAAC;IAC5B,CAAC;AACH,CAAC"}
@@ -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,77 @@
1
+ /**
2
+ * @license
3
+ * Copyright 2025 Google LLC
4
+ * SPDX-License-Identifier: Apache-2.0
5
+ */
6
+ import { describe, it, expect } from 'vitest';
7
+ import { getLicenseDisplay } from './license.js';
8
+ import { AuthType, UserTierId } from '@google/gemini-cli-core';
9
+ describe('getLicenseDisplay', () => {
10
+ describe('Free Tier (Login with Google)', () => {
11
+ it('should return Free Tier for LOGIN_WITH_GOOGLE', () => {
12
+ expect(getLicenseDisplay(AuthType.LOGIN_WITH_GOOGLE)).toBe('Free Tier (Login with Google)');
13
+ });
14
+ it('should ignore userTier for LOGIN_WITH_GOOGLE', () => {
15
+ expect(getLicenseDisplay(AuthType.LOGIN_WITH_GOOGLE, UserTierId.STANDARD)).toBe('Free Tier (Login with Google)');
16
+ expect(getLicenseDisplay(AuthType.LOGIN_WITH_GOOGLE, UserTierId.LEGACY)).toBe('Free Tier (Login with Google)');
17
+ });
18
+ });
19
+ describe('Gemini Code Assist (Google Workspace)', () => {
20
+ it('should return GCA Standard for LOGIN_WITH_GOOGLE_GCA with STANDARD tier', () => {
21
+ expect(getLicenseDisplay(AuthType.LOGIN_WITH_GOOGLE_GCA, UserTierId.STANDARD)).toBe('Gemini Code Assist Standard (Google Workspace)');
22
+ });
23
+ it('should return GCA Enterprise for LOGIN_WITH_GOOGLE_GCA with LEGACY tier', () => {
24
+ expect(getLicenseDisplay(AuthType.LOGIN_WITH_GOOGLE_GCA, UserTierId.LEGACY)).toBe('Gemini Code Assist Enterprise (Google Workspace)');
25
+ });
26
+ it('should return generic GCA for LOGIN_WITH_GOOGLE_GCA without tier', () => {
27
+ expect(getLicenseDisplay(AuthType.LOGIN_WITH_GOOGLE_GCA)).toBe('Gemini Code Assist (Google Workspace)');
28
+ });
29
+ it('should return generic GCA for LOGIN_WITH_GOOGLE_GCA with unknown tier', () => {
30
+ expect(getLicenseDisplay(AuthType.LOGIN_WITH_GOOGLE_GCA, 'unknown-tier')).toBe('Gemini Code Assist (Google Workspace)');
31
+ });
32
+ it('should return generic GCA for LOGIN_WITH_GOOGLE_GCA with FREE tier', () => {
33
+ expect(getLicenseDisplay(AuthType.LOGIN_WITH_GOOGLE_GCA, UserTierId.FREE)).toBe('Gemini Code Assist (Google Workspace)');
34
+ });
35
+ });
36
+ describe('Gemini API Key', () => {
37
+ it('should return Gemini API Key for USE_GEMINI', () => {
38
+ expect(getLicenseDisplay(AuthType.USE_GEMINI)).toBe('Gemini API Key');
39
+ });
40
+ it('should ignore userTier for USE_GEMINI', () => {
41
+ expect(getLicenseDisplay(AuthType.USE_GEMINI, UserTierId.STANDARD)).toBe('Gemini API Key');
42
+ });
43
+ });
44
+ describe('Vertex AI', () => {
45
+ it('should return Vertex AI for USE_VERTEX_AI', () => {
46
+ expect(getLicenseDisplay(AuthType.USE_VERTEX_AI)).toBe('Vertex AI');
47
+ });
48
+ it('should ignore userTier for USE_VERTEX_AI', () => {
49
+ expect(getLicenseDisplay(AuthType.USE_VERTEX_AI, UserTierId.LEGACY)).toBe('Vertex AI');
50
+ });
51
+ });
52
+ describe('Cloud Shell', () => {
53
+ it('should return Cloud Shell for CLOUD_SHELL', () => {
54
+ expect(getLicenseDisplay(AuthType.CLOUD_SHELL)).toBe('Cloud Shell');
55
+ });
56
+ it('should ignore userTier for CLOUD_SHELL', () => {
57
+ expect(getLicenseDisplay(AuthType.CLOUD_SHELL, UserTierId.STANDARD)).toBe('Cloud Shell');
58
+ });
59
+ });
60
+ describe('Unknown auth types', () => {
61
+ it('should return the auth type as-is for unknown values', () => {
62
+ expect(getLicenseDisplay('custom-auth-type')).toBe('custom-auth-type');
63
+ expect(getLicenseDisplay('oauth')).toBe('oauth');
64
+ expect(getLicenseDisplay('unknown-auth')).toBe('unknown-auth');
65
+ });
66
+ it('should handle undefined gracefully', () => {
67
+ expect(getLicenseDisplay(undefined)).toBe(undefined);
68
+ });
69
+ it('should handle null gracefully', () => {
70
+ expect(getLicenseDisplay(null)).toBe(null);
71
+ });
72
+ it('should handle empty string', () => {
73
+ expect(getLicenseDisplay('')).toBe('');
74
+ });
75
+ });
76
+ });
77
+ //# sourceMappingURL=license.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"license.test.js","sourceRoot":"","sources":["../../../src/utils/license.test.ts"],"names":[],"mappings":"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"}
@@ -8,34 +8,73 @@ export async function readStdin() {
8
8
  return new Promise((resolve, reject) => {
9
9
  let data = '';
10
10
  let totalSize = 0;
11
+ let hasReceivedData = false;
11
12
  process.stdin.setEncoding('utf8');
12
- const onReadable = () => {
13
+ function cleanup() {
14
+ clearTimeout(timeout);
15
+ process.stdin.removeListener('readable', onReadable);
16
+ process.stdin.removeListener('end', onEnd);
17
+ process.stdin.removeListener('error', onError);
18
+ }
19
+ function processChunk(chunk) {
20
+ hasReceivedData = true;
21
+ if (totalSize + chunk.length > MAX_STDIN_SIZE) {
22
+ const remainingSize = MAX_STDIN_SIZE - totalSize;
23
+ data += chunk.slice(0, remainingSize);
24
+ console.warn(`Warning: stdin input truncated to ${MAX_STDIN_SIZE} bytes.`);
25
+ process.stdin.destroy();
26
+ return true; // Indicates truncation occurred
27
+ }
28
+ else {
29
+ data += chunk;
30
+ totalSize += chunk.length;
31
+ return false;
32
+ }
33
+ }
34
+ function checkInitialState() {
35
+ if (process.stdin.destroyed || process.stdin.readableEnded) {
36
+ cleanup();
37
+ resolve('');
38
+ return true;
39
+ }
40
+ const chunk = process.stdin.read();
41
+ if (chunk !== null) {
42
+ processChunk(chunk);
43
+ return false;
44
+ }
45
+ if (!process.stdin.readable) {
46
+ cleanup();
47
+ resolve('');
48
+ return true;
49
+ }
50
+ return false;
51
+ }
52
+ if (checkInitialState()) {
53
+ return;
54
+ }
55
+ function onReadable() {
13
56
  let chunk;
14
57
  while ((chunk = process.stdin.read()) !== null) {
15
- if (totalSize + chunk.length > MAX_STDIN_SIZE) {
16
- const remainingSize = MAX_STDIN_SIZE - totalSize;
17
- data += chunk.slice(0, remainingSize);
18
- console.warn(`Warning: stdin input truncated to ${MAX_STDIN_SIZE} bytes.`);
19
- process.stdin.destroy(); // Stop reading further
58
+ const truncated = processChunk(chunk);
59
+ if (truncated) {
20
60
  break;
21
61
  }
22
- data += chunk;
23
- totalSize += chunk.length;
24
62
  }
25
- };
26
- const onEnd = () => {
63
+ }
64
+ function onEnd() {
27
65
  cleanup();
28
66
  resolve(data);
29
- };
30
- const onError = (err) => {
67
+ }
68
+ function onError(err) {
31
69
  cleanup();
32
70
  reject(err);
33
- };
34
- const cleanup = () => {
35
- process.stdin.removeListener('readable', onReadable);
36
- process.stdin.removeListener('end', onEnd);
37
- process.stdin.removeListener('error', onError);
38
- };
71
+ }
72
+ const timeout = setTimeout(() => {
73
+ if (!hasReceivedData) {
74
+ cleanup();
75
+ resolve('');
76
+ }
77
+ }, 50);
39
78
  process.stdin.on('readable', onReadable);
40
79
  process.stdin.on('end', onEnd);
41
80
  process.stdin.on('error', onError);
@@ -1 +1 @@
1
- {"version":3,"file":"readStdin.js","sourceRoot":"","sources":["../../../src/utils/readStdin.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,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,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,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,OAAO,CAAC,IAAI,CACV,qCAAqC,cAAc,SAAS,CAC7D,CAAC;oBACF,OAAO,CAAC,KAAK,CAAC,OAAO,EAAE,CAAC,CAAC,uBAAuB;oBAChD,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,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":"AAAA;;;;GAIG;AAEH,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,IAAI,eAAe,GAAG,KAAK,CAAC;QAE5B,OAAO,CAAC,KAAK,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC;QAElC,SAAS,OAAO;YACd,YAAY,CAAC,OAAO,CAAC,CAAC;YACtB,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;QAED,SAAS,YAAY,CAAC,KAAa;YACjC,eAAe,GAAG,IAAI,CAAC;YACvB,IAAI,SAAS,GAAG,KAAK,CAAC,MAAM,GAAG,cAAc,EAAE,CAAC;gBAC9C,MAAM,aAAa,GAAG,cAAc,GAAG,SAAS,CAAC;gBACjD,IAAI,IAAI,KAAK,CAAC,KAAK,CAAC,CAAC,EAAE,aAAa,CAAC,CAAC;gBACtC,OAAO,CAAC,IAAI,CACV,qCAAqC,cAAc,SAAS,CAC7D,CAAC;gBACF,OAAO,CAAC,KAAK,CAAC,OAAO,EAAE,CAAC;gBACxB,OAAO,IAAI,CAAC,CAAC,gCAAgC;YAC/C,CAAC;iBAAM,CAAC;gBACN,IAAI,IAAI,KAAK,CAAC;gBACd,SAAS,IAAI,KAAK,CAAC,MAAM,CAAC;gBAC1B,OAAO,KAAK,CAAC;YACf,CAAC;QACH,CAAC;QAED,SAAS,iBAAiB;YACxB,IAAI,OAAO,CAAC,KAAK,CAAC,SAAS,IAAI,OAAO,CAAC,KAAK,CAAC,aAAa,EAAE,CAAC;gBAC3D,OAAO,EAAE,CAAC;gBACV,OAAO,CAAC,EAAE,CAAC,CAAC;gBACZ,OAAO,IAAI,CAAC;YACd,CAAC;YAED,MAAM,KAAK,GAAG,OAAO,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC;YACnC,IAAI,KAAK,KAAK,IAAI,EAAE,CAAC;gBACnB,YAAY,CAAC,KAAK,CAAC,CAAC;gBACpB,OAAO,KAAK,CAAC;YACf,CAAC;YAED,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,QAAQ,EAAE,CAAC;gBAC5B,OAAO,EAAE,CAAC;gBACV,OAAO,CAAC,EAAE,CAAC,CAAC;gBACZ,OAAO,IAAI,CAAC;YACd,CAAC;YAED,OAAO,KAAK,CAAC;QACf,CAAC;QAED,IAAI,iBAAiB,EAAE,EAAE,CAAC;YACxB,OAAO;QACT,CAAC;QAED,SAAS,UAAU;YACjB,IAAI,KAAK,CAAC;YACV,OAAO,CAAC,KAAK,GAAG,OAAO,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC,KAAK,IAAI,EAAE,CAAC;gBAC/C,MAAM,SAAS,GAAG,YAAY,CAAC,KAAK,CAAC,CAAC;gBACtC,IAAI,SAAS,EAAE,CAAC;oBACd,MAAM;gBACR,CAAC;YACH,CAAC;QACH,CAAC;QAED,SAAS,KAAK;YACZ,OAAO,EAAE,CAAC;YACV,OAAO,CAAC,IAAI,CAAC,CAAC;QAChB,CAAC;QAED,SAAS,OAAO,CAAC,GAAU;YACzB,OAAO,EAAE,CAAC;YACV,MAAM,CAAC,GAAG,CAAC,CAAC;QACd,CAAC;QAED,MAAM,OAAO,GAAG,UAAU,CAAC,GAAG,EAAE;YAC9B,IAAI,CAAC,eAAe,EAAE,CAAC;gBACrB,OAAO,EAAE,CAAC;gBACV,OAAO,CAAC,EAAE,CAAC,CAAC;YACd,CAAC;QACH,CAAC,EAAE,EAAE,CAAC,CAAC;QAEP,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"}
@@ -8,6 +8,7 @@ import os from 'node:os';
8
8
  import path from 'node:path';
9
9
  import fs from 'node:fs';
10
10
  import { readFile } from 'node:fs/promises';
11
+ import { fileURLToPath } from 'node:url';
11
12
  import { quote, parse } from 'shell-quote';
12
13
  import { USER_SETTINGS_DIR, SETTINGS_DIRECTORY_NAME, } from '../config/settings.js';
13
14
  import { promisify } from 'util';
@@ -157,8 +158,7 @@ export async function start_sandbox(config, nodeArgs = [], cliConfig, cliArgs =
157
158
  process.exit(1);
158
159
  }
159
160
  const profile = (process.env['SEATBELT_PROFILE'] ??= 'permissive-open');
160
- let profileFile = new URL(`sandbox-macos-${profile}.sb`, import.meta.url)
161
- .pathname;
161
+ let profileFile = fileURLToPath(new URL(`sandbox-macos-${profile}.sb`, import.meta.url));
162
162
  // if profile name is not recognized, then look for file under project settings directory
163
163
  if (!BUILTIN_SEATBELT_PROFILES.includes(profile)) {
164
164
  profileFile = path.join(SETTINGS_DIRECTORY_NAME, `sandbox-macos-${profile}.sb`);