@google/gemini-cli-core 0.16.0-preview.5 → 0.16.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 (87) hide show
  1. package/dist/index.d.ts +2 -1
  2. package/dist/index.js +2 -1
  3. package/dist/index.js.map +1 -1
  4. package/dist/src/code_assist/experiments/flagNames.d.ts +3 -0
  5. package/dist/src/code_assist/experiments/flagNames.js +3 -0
  6. package/dist/src/code_assist/experiments/flagNames.js.map +1 -1
  7. package/dist/src/config/config.d.ts +13 -0
  8. package/dist/src/config/config.js +44 -1
  9. package/dist/src/config/config.js.map +1 -1
  10. package/dist/src/config/config.test.js +77 -0
  11. package/dist/src/config/config.test.js.map +1 -1
  12. package/dist/src/config/models.d.ts +22 -1
  13. package/dist/src/config/models.js +48 -5
  14. package/dist/src/config/models.js.map +1 -1
  15. package/dist/src/config/models.test.js +71 -10
  16. package/dist/src/config/models.test.js.map +1 -1
  17. package/dist/src/core/client.d.ts +0 -1
  18. package/dist/src/core/client.js +5 -12
  19. package/dist/src/core/client.js.map +1 -1
  20. package/dist/src/core/client.test.js +5 -16
  21. package/dist/src/core/client.test.js.map +1 -1
  22. package/dist/src/core/geminiChat.d.ts +2 -0
  23. package/dist/src/core/geminiChat.js +91 -12
  24. package/dist/src/core/geminiChat.js.map +1 -1
  25. package/dist/src/core/geminiChat.test.js +253 -18
  26. package/dist/src/core/geminiChat.test.js.map +1 -1
  27. package/dist/src/fallback/handler.js +52 -5
  28. package/dist/src/fallback/handler.js.map +1 -1
  29. package/dist/src/fallback/handler.test.js +64 -4
  30. package/dist/src/fallback/handler.test.js.map +1 -1
  31. package/dist/src/fallback/types.d.ts +1 -1
  32. package/dist/src/generated/git-commit.d.ts +2 -2
  33. package/dist/src/generated/git-commit.js +2 -2
  34. package/dist/src/generated/git-commit.js.map +1 -1
  35. package/dist/src/ide/detect-ide.d.ts +4 -0
  36. package/dist/src/ide/detect-ide.js +4 -0
  37. package/dist/src/ide/detect-ide.js.map +1 -1
  38. package/dist/src/ide/detect-ide.test.js +5 -0
  39. package/dist/src/ide/detect-ide.test.js.map +1 -1
  40. package/dist/src/ide/ide-client.d.ts +3 -1
  41. package/dist/src/ide/ide-client.js +5 -4
  42. package/dist/src/ide/ide-client.js.map +1 -1
  43. package/dist/src/ide/ide-installer.js +65 -20
  44. package/dist/src/ide/ide-installer.js.map +1 -1
  45. package/dist/src/ide/ide-installer.test.js +41 -0
  46. package/dist/src/ide/ide-installer.test.js.map +1 -1
  47. package/dist/src/index.d.ts +1 -0
  48. package/dist/src/index.js +1 -0
  49. package/dist/src/index.js.map +1 -1
  50. package/dist/src/routing/modelRouterService.js +15 -0
  51. package/dist/src/routing/modelRouterService.js.map +1 -1
  52. package/dist/src/routing/modelRouterService.test.js +62 -0
  53. package/dist/src/routing/modelRouterService.test.js.map +1 -1
  54. package/dist/src/routing/strategies/classifierStrategy.d.ts +1 -1
  55. package/dist/src/routing/strategies/classifierStrategy.js +4 -4
  56. package/dist/src/routing/strategies/classifierStrategy.js.map +1 -1
  57. package/dist/src/routing/strategies/classifierStrategy.test.js +1 -0
  58. package/dist/src/routing/strategies/classifierStrategy.test.js.map +1 -1
  59. package/dist/src/routing/strategies/fallbackStrategy.js +1 -1
  60. package/dist/src/routing/strategies/fallbackStrategy.js.map +1 -1
  61. package/dist/src/routing/strategies/fallbackStrategy.test.js +4 -0
  62. package/dist/src/routing/strategies/fallbackStrategy.test.js.map +1 -1
  63. package/dist/src/routing/strategies/overrideStrategy.js +2 -2
  64. package/dist/src/routing/strategies/overrideStrategy.js.map +1 -1
  65. package/dist/src/routing/strategies/overrideStrategy.test.js +3 -0
  66. package/dist/src/routing/strategies/overrideStrategy.test.js.map +1 -1
  67. package/dist/src/utils/editor.d.ts +3 -1
  68. package/dist/src/utils/editor.js +18 -1
  69. package/dist/src/utils/editor.js.map +1 -1
  70. package/dist/src/utils/editor.test.js +11 -0
  71. package/dist/src/utils/editor.test.js.map +1 -1
  72. package/dist/src/utils/flashFallback.test.js +2 -2
  73. package/dist/src/utils/flashFallback.test.js.map +1 -1
  74. package/dist/src/utils/googleQuotaErrors.d.ts +2 -1
  75. package/dist/src/utils/googleQuotaErrors.js +20 -12
  76. package/dist/src/utils/googleQuotaErrors.js.map +1 -1
  77. package/dist/src/utils/httpErrors.d.ts +18 -0
  78. package/dist/src/utils/httpErrors.js +36 -0
  79. package/dist/src/utils/httpErrors.js.map +1 -0
  80. package/dist/src/utils/retry.d.ts +0 -9
  81. package/dist/src/utils/retry.js +24 -28
  82. package/dist/src/utils/retry.js.map +1 -1
  83. package/dist/src/utils/retry.test.js +51 -0
  84. package/dist/src/utils/retry.test.js.map +1 -1
  85. package/dist/tsconfig.tsbuildinfo +1 -1
  86. package/package.json +1 -1
  87. package/dist/google-gemini-cli-core-0.16.0-preview.4.tgz +0 -0
@@ -1 +1 @@
1
- {"version":3,"file":"geminiChat.js","sourceRoot":"","sources":["../../../src/core/geminiChat.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"geminiChat.js","sourceRoot":"","sources":["../../../src/core/geminiChat.ts"],"names":[],"mappings":"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"}
@@ -5,11 +5,12 @@
5
5
  */
6
6
  import { describe, it, expect, vi, beforeEach, afterEach } from 'vitest';
7
7
  import { ApiError } from '@google/genai';
8
- import { GeminiChat, InvalidStreamError, StreamEventType, } from './geminiChat.js';
8
+ import { GeminiChat, InvalidStreamError, StreamEventType, SYNTHETIC_THOUGHT_SIGNATURE, } from './geminiChat.js';
9
9
  import { setSimulate429 } from '../utils/testUtils.js';
10
- import { DEFAULT_GEMINI_FLASH_MODEL } from '../config/models.js';
10
+ import { DEFAULT_GEMINI_FLASH_MODEL, DEFAULT_GEMINI_MODEL, PREVIEW_GEMINI_MODEL, } from '../config/models.js';
11
11
  import { AuthType } from './contentGenerator.js';
12
- import {} from '../utils/retry.js';
12
+ import { TerminalQuotaError } from '../utils/googleQuotaErrors.js';
13
+ import { retryWithBackoff } from '../utils/retry.js';
13
14
  import { uiTelemetryService } from '../telemetry/uiTelemetry.js';
14
15
  // Mock fs module to prevent actual file system operations during tests
15
16
  const mockFileSystem = new Map();
@@ -83,6 +84,7 @@ describe('GeminiChat', () => {
83
84
  getTelemetryLogPromptsEnabled: () => true,
84
85
  getUsageStatisticsEnabled: () => true,
85
86
  getDebugMode: () => false,
87
+ getPreviewFeatures: () => false,
86
88
  getContentGeneratorConfig: vi.fn().mockReturnValue({
87
89
  authType: 'oauth-personal', // Ensure this is set for fallback tests
88
90
  model: 'test-model',
@@ -102,6 +104,10 @@ describe('GeminiChat', () => {
102
104
  }),
103
105
  getContentGenerator: vi.fn().mockReturnValue(mockContentGenerator),
104
106
  getRetryFetchErrors: vi.fn().mockReturnValue(false),
107
+ isPreviewModelBypassMode: vi.fn().mockReturnValue(false),
108
+ setPreviewModelBypassMode: vi.fn(),
109
+ isPreviewModelFallbackMode: vi.fn().mockReturnValue(false),
110
+ setPreviewModelFallbackMode: vi.fn(),
105
111
  isInteractive: vi.fn().mockReturnValue(false),
106
112
  };
107
113
  // Disable 429 simulation for tests
@@ -197,7 +203,7 @@ describe('GeminiChat', () => {
197
203
  })();
198
204
  vi.mocked(mockContentGenerator.generateContentStream).mockResolvedValue(streamWithNoFinish);
199
205
  // 2. Action & Assert: The stream should fail because there's no finish reason.
200
- const stream = await chat.sendMessageStream('test-model', { message: 'test message' }, 'prompt-id-no-finish-empty-end');
206
+ const stream = await chat.sendMessageStream('gemini-2.0-flash', { message: 'test message' }, 'prompt-id-no-finish-empty-end');
201
207
  await expect((async () => {
202
208
  for await (const _ of stream) {
203
209
  /* consume stream */
@@ -367,6 +373,84 @@ describe('GeminiChat', () => {
367
373
  expect(modelTurn?.parts?.length).toBe(1);
368
374
  expect(modelTurn?.parts[0].text).toBe('This is the visible text that should not be lost.');
369
375
  });
376
+ it('should use maxAttempts=1 for retryWithBackoff when in Preview Model Fallback Mode', async () => {
377
+ vi.mocked(mockConfig.isPreviewModelFallbackMode).mockReturnValue(true);
378
+ vi.mocked(mockContentGenerator.generateContentStream).mockResolvedValue((async function* () {
379
+ yield {
380
+ candidates: [
381
+ {
382
+ content: { parts: [{ text: 'Success' }] },
383
+ finishReason: 'STOP',
384
+ },
385
+ ],
386
+ };
387
+ })());
388
+ const stream = await chat.sendMessageStream(PREVIEW_GEMINI_MODEL, { message: 'test' }, 'prompt-id-fast-retry');
389
+ for await (const _ of stream) {
390
+ // consume stream
391
+ }
392
+ expect(mockRetryWithBackoff).toHaveBeenCalledWith(expect.any(Function), expect.objectContaining({
393
+ maxAttempts: 1,
394
+ }));
395
+ });
396
+ it('should NOT use maxAttempts=1 for other models even in Preview Model Fallback Mode', async () => {
397
+ vi.mocked(mockConfig.isPreviewModelFallbackMode).mockReturnValue(true);
398
+ vi.mocked(mockContentGenerator.generateContentStream).mockResolvedValue((async function* () {
399
+ yield {
400
+ candidates: [
401
+ {
402
+ content: { parts: [{ text: 'Success' }] },
403
+ finishReason: 'STOP',
404
+ },
405
+ ],
406
+ };
407
+ })());
408
+ const stream = await chat.sendMessageStream(DEFAULT_GEMINI_FLASH_MODEL, { message: 'test' }, 'prompt-id-normal-retry');
409
+ for await (const _ of stream) {
410
+ // consume stream
411
+ }
412
+ expect(mockRetryWithBackoff).toHaveBeenCalledWith(expect.any(Function), expect.objectContaining({
413
+ maxAttempts: undefined, // Should use default
414
+ }));
415
+ });
416
+ it('should pass DEFAULT_GEMINI_MODEL to handleFallback when Preview Model is bypassed (downgraded)', async () => {
417
+ // ARRANGE
418
+ vi.mocked(mockConfig.isPreviewModelBypassMode).mockReturnValue(true);
419
+ // Mock retryWithBackoff to simulate catching the error and calling onPersistent429
420
+ vi.mocked(retryWithBackoff).mockImplementation(async (apiCall, options) => {
421
+ const onPersistent429 = options?.onPersistent429;
422
+ try {
423
+ await apiCall();
424
+ }
425
+ catch (error) {
426
+ if (onPersistent429) {
427
+ await onPersistent429(AuthType.LOGIN_WITH_GOOGLE, error);
428
+ }
429
+ throw error;
430
+ }
431
+ });
432
+ // We need the API call to fail so retryWithBackoff calls the callback.
433
+ vi.mocked(mockContentGenerator.generateContentStream).mockRejectedValue(new TerminalQuotaError('Simulated Quota Error', {
434
+ code: 429,
435
+ message: 'Simulated Quota Error',
436
+ details: [],
437
+ }));
438
+ // ACT
439
+ const consumeStream = async () => {
440
+ const stream = await chat.sendMessageStream(PREVIEW_GEMINI_MODEL, { message: 'test' }, 'prompt-id-bypass');
441
+ // Consume the stream to trigger execution
442
+ for await (const _ of stream) {
443
+ // do nothing
444
+ }
445
+ };
446
+ await expect(consumeStream()).rejects.toThrow('Simulated Quota Error');
447
+ expect(retryWithBackoff).toHaveBeenCalled();
448
+ // ASSERT
449
+ // handleFallback is called via onPersistent429Callback
450
+ // We verify it was called with DEFAULT_GEMINI_MODEL
451
+ expect(mockHandleFallback).toHaveBeenCalledWith(expect.anything(), DEFAULT_GEMINI_MODEL, // This is the key assertion
452
+ expect.anything(), expect.anything());
453
+ });
370
454
  it('should throw an error when a tool call is followed by an empty stream response', async () => {
371
455
  // 1. Setup: A history where the model has just made a function call.
372
456
  const initialHistory = [
@@ -400,7 +484,7 @@ describe('GeminiChat', () => {
400
484
  })();
401
485
  vi.mocked(mockContentGenerator.generateContentStream).mockResolvedValue(emptyStreamResponse);
402
486
  // 3. Action: Send the function response back to the model and consume the stream.
403
- const stream = await chat.sendMessageStream('test-model', {
487
+ const stream = await chat.sendMessageStream('gemini-2.0-flash', {
404
488
  message: {
405
489
  functionResponse: {
406
490
  name: 'find_restaurant',
@@ -462,7 +546,7 @@ describe('GeminiChat', () => {
462
546
  };
463
547
  })();
464
548
  vi.mocked(mockContentGenerator.generateContentStream).mockResolvedValue(streamWithoutFinishReason);
465
- const stream = await chat.sendMessageStream('test-model', { message: 'test' }, 'prompt-id-1');
549
+ const stream = await chat.sendMessageStream('gemini-2.0-flash', { message: 'test' }, 'prompt-id-1');
466
550
  await expect((async () => {
467
551
  for await (const _ of stream) {
468
552
  // consume stream
@@ -485,7 +569,7 @@ describe('GeminiChat', () => {
485
569
  };
486
570
  })();
487
571
  vi.mocked(mockContentGenerator.generateContentStream).mockResolvedValue(streamWithEmptyResponse);
488
- const stream = await chat.sendMessageStream('test-model', { message: 'test' }, 'prompt-id-1');
572
+ const stream = await chat.sendMessageStream('gemini-2.0-flash', { message: 'test' }, 'prompt-id-1');
489
573
  await expect((async () => {
490
574
  for await (const _ of stream) {
491
575
  // consume stream
@@ -532,7 +616,7 @@ describe('GeminiChat', () => {
532
616
  };
533
617
  })();
534
618
  vi.mocked(mockContentGenerator.generateContentStream).mockResolvedValue(streamWithMalformedFunctionCall);
535
- const stream = await chat.sendMessageStream('test-model', { message: 'test' }, 'prompt-id-malformed');
619
+ const stream = await chat.sendMessageStream('gemini-2.5-pro', { message: 'test' }, 'prompt-id-malformed');
536
620
  // Should throw an error
537
621
  await expect((async () => {
538
622
  for await (const _ of stream) {
@@ -566,7 +650,7 @@ describe('GeminiChat', () => {
566
650
  };
567
651
  })());
568
652
  // 2. Send a message
569
- const stream = await chat.sendMessageStream('test-model', { message: 'test retry' }, 'prompt-id-retry-malformed');
653
+ const stream = await chat.sendMessageStream('gemini-2.5-pro', { message: 'test retry' }, 'prompt-id-retry-malformed');
570
654
  const events = [];
571
655
  for await (const event of stream) {
572
656
  events.push(event);
@@ -649,6 +733,23 @@ describe('GeminiChat', () => {
649
733
  });
650
734
  });
651
735
  describe('sendMessageStream with retries', () => {
736
+ it('should not retry on invalid content if model does not start with gemini-2', async () => {
737
+ // Mock the stream to fail.
738
+ vi.mocked(mockContentGenerator.generateContentStream).mockImplementation(async () => (async function* () {
739
+ yield {
740
+ candidates: [{ content: { parts: [{ text: '' }] } }],
741
+ };
742
+ })());
743
+ const stream = await chat.sendMessageStream('gemini-1.5-pro', { message: 'test' }, 'prompt-id-no-retry');
744
+ await expect((async () => {
745
+ for await (const _ of stream) {
746
+ // Must loop to trigger the internal logic that throws.
747
+ }
748
+ })()).rejects.toThrow(InvalidStreamError);
749
+ // Should be called only 1 time (no retry)
750
+ expect(mockContentGenerator.generateContentStream).toHaveBeenCalledTimes(1);
751
+ expect(mockLogContentRetry).not.toHaveBeenCalled();
752
+ });
652
753
  it('should yield a RETRY event when an invalid stream is encountered', async () => {
653
754
  // ARRANGE: Mock the stream to fail once, then succeed.
654
755
  vi.mocked(mockContentGenerator.generateContentStream)
@@ -672,7 +773,7 @@ describe('GeminiChat', () => {
672
773
  };
673
774
  })());
674
775
  // ACT: Send a message and collect all events from the stream.
675
- const stream = await chat.sendMessageStream('test-model', { message: 'test' }, 'prompt-id-yield-retry');
776
+ const stream = await chat.sendMessageStream('gemini-2.0-flash', { message: 'test' }, 'prompt-id-yield-retry');
676
777
  const events = [];
677
778
  for await (const event of stream) {
678
779
  events.push(event);
@@ -704,7 +805,7 @@ describe('GeminiChat', () => {
704
805
  ],
705
806
  };
706
807
  })());
707
- const stream = await chat.sendMessageStream('test-model', { message: 'test' }, 'prompt-id-retry-success');
808
+ const stream = await chat.sendMessageStream('gemini-2.0-flash', { message: 'test' }, 'prompt-id-retry-success');
708
809
  const chunks = [];
709
810
  for await (const chunk of stream) {
710
811
  chunks.push(chunk);
@@ -755,7 +856,7 @@ describe('GeminiChat', () => {
755
856
  ],
756
857
  };
757
858
  })());
758
- const stream = await chat.sendMessageStream('test-model', { message: 'test', config: { temperature: 0.5 } }, 'prompt-id-retry-temperature');
859
+ const stream = await chat.sendMessageStream('gemini-2.0-flash', { message: 'test', config: { temperature: 0.5 } }, 'prompt-id-retry-temperature');
759
860
  for await (const _ of stream) {
760
861
  // consume stream
761
862
  }
@@ -786,7 +887,7 @@ describe('GeminiChat', () => {
786
887
  ],
787
888
  };
788
889
  })());
789
- const stream = await chat.sendMessageStream('test-model', { message: 'test' }, 'prompt-id-retry-fail');
890
+ const stream = await chat.sendMessageStream('gemini-2.0-flash', { message: 'test' }, 'prompt-id-retry-fail');
790
891
  await expect(async () => {
791
892
  for await (const _ of stream) {
792
893
  // Must loop to trigger the internal logic that throws.
@@ -835,7 +936,7 @@ describe('GeminiChat', () => {
835
936
  it('should not retry on 400 Bad Request errors', async () => {
836
937
  const error400 = new ApiError({ message: 'Bad Request', status: 400 });
837
938
  vi.mocked(mockContentGenerator.generateContentStream).mockRejectedValue(error400);
838
- const stream = await chat.sendMessageStream('test-model', { message: 'test' }, 'prompt-id-400');
939
+ const stream = await chat.sendMessageStream('gemini-2.0-flash', { message: 'test' }, 'prompt-id-400');
839
940
  await expect((async () => {
840
941
  for await (const _ of stream) {
841
942
  /* consume stream */
@@ -966,7 +1067,7 @@ describe('GeminiChat', () => {
966
1067
  };
967
1068
  })());
968
1069
  // 3. Send a new message
969
- const stream = await chat.sendMessageStream('test-model', { message: 'Second question' }, 'prompt-id-retry-existing');
1070
+ const stream = await chat.sendMessageStream('gemini-2.0-flash', { message: 'Second question' }, 'prompt-id-retry-existing');
970
1071
  for await (const _ of stream) {
971
1072
  // consume stream
972
1073
  }
@@ -1018,7 +1119,7 @@ describe('GeminiChat', () => {
1018
1119
  };
1019
1120
  })());
1020
1121
  // 2. Call the method and consume the stream.
1021
- const stream = await chat.sendMessageStream('test-model', { message: 'test empty stream' }, 'prompt-id-empty-stream');
1122
+ const stream = await chat.sendMessageStream('gemini-2.0-flash', { message: 'test empty stream' }, 'prompt-id-empty-stream');
1022
1123
  const chunks = [];
1023
1124
  for await (const chunk of stream) {
1024
1125
  chunks.push(chunk);
@@ -1202,7 +1303,7 @@ describe('GeminiChat', () => {
1202
1303
  vi.mocked(mockConfig.getModel).mockReturnValue('gemini-pro');
1203
1304
  vi.mocked(mockContentGenerator.generateContentStream).mockRejectedValue(error429);
1204
1305
  mockHandleFallback.mockResolvedValue(false);
1205
- const stream = await chat.sendMessageStream('test-model', { message: 'test stop' }, 'prompt-id-fb2');
1306
+ const stream = await chat.sendMessageStream('gemini-2.0-flash', { message: 'test stop' }, 'prompt-id-fb2');
1206
1307
  await expect((async () => {
1207
1308
  for await (const _ of stream) {
1208
1309
  /* consume stream */
@@ -1246,7 +1347,7 @@ describe('GeminiChat', () => {
1246
1347
  };
1247
1348
  })());
1248
1349
  // Send a message and consume the stream
1249
- const stream = await chat.sendMessageStream('test-model', { message: 'test' }, 'prompt-id-discard-test');
1350
+ const stream = await chat.sendMessageStream('gemini-2.0-flash', { message: 'test' }, 'prompt-id-discard-test');
1250
1351
  const events = [];
1251
1352
  for await (const event of stream) {
1252
1353
  events.push(event);
@@ -1297,5 +1398,139 @@ describe('GeminiChat', () => {
1297
1398
  ]);
1298
1399
  });
1299
1400
  });
1401
+ describe('Preview Model Fallback Logic', () => {
1402
+ it('should reset previewModelBypassMode to false at the start of sendMessageStream', async () => {
1403
+ const stream = (async function* () {
1404
+ yield {
1405
+ candidates: [
1406
+ {
1407
+ content: { role: 'model', parts: [{ text: 'Success' }] },
1408
+ finishReason: 'STOP',
1409
+ },
1410
+ ],
1411
+ };
1412
+ })();
1413
+ vi.mocked(mockContentGenerator.generateContentStream).mockResolvedValue(stream);
1414
+ await chat.sendMessageStream('test-model', { message: 'test' }, 'prompt-id-preview-model-reset');
1415
+ expect(mockConfig.setPreviewModelBypassMode).toHaveBeenCalledWith(false);
1416
+ });
1417
+ it('should reset previewModelFallbackMode to false upon successful Preview Model usage', async () => {
1418
+ const stream = (async function* () {
1419
+ yield {
1420
+ candidates: [
1421
+ {
1422
+ content: { role: 'model', parts: [{ text: 'Success' }] },
1423
+ finishReason: 'STOP',
1424
+ },
1425
+ ],
1426
+ };
1427
+ })();
1428
+ vi.mocked(mockContentGenerator.generateContentStream).mockResolvedValue(stream);
1429
+ const resultStream = await chat.sendMessageStream(PREVIEW_GEMINI_MODEL, { message: 'test' }, 'prompt-id-preview-model-healing');
1430
+ for await (const _ of resultStream) {
1431
+ // consume stream
1432
+ }
1433
+ expect(mockConfig.setPreviewModelFallbackMode).toHaveBeenCalledWith(false);
1434
+ });
1435
+ it('should NOT reset previewModelFallbackMode if Preview Model was bypassed (downgraded)', async () => {
1436
+ const stream = (async function* () {
1437
+ yield {
1438
+ candidates: [
1439
+ {
1440
+ content: { role: 'model', parts: [{ text: 'Success' }] },
1441
+ finishReason: 'STOP',
1442
+ },
1443
+ ],
1444
+ };
1445
+ })();
1446
+ vi.mocked(mockContentGenerator.generateContentStream).mockResolvedValue(stream);
1447
+ // Simulate bypass mode being active (downgrade happened)
1448
+ vi.mocked(mockConfig.isPreviewModelBypassMode).mockReturnValue(true);
1449
+ const resultStream = await chat.sendMessageStream(PREVIEW_GEMINI_MODEL, { message: 'test' }, 'prompt-id-bypass-no-healing');
1450
+ for await (const _ of resultStream) {
1451
+ // consume stream
1452
+ }
1453
+ expect(mockConfig.setPreviewModelFallbackMode).not.toHaveBeenCalled();
1454
+ });
1455
+ });
1456
+ describe('ensureActiveLoopHasThoughtSignatures', () => {
1457
+ it('should add thoughtSignature to the first functionCall in each model turn of the active loop', () => {
1458
+ const chat = new GeminiChat(mockConfig, {}, []);
1459
+ const history = [
1460
+ { role: 'user', parts: [{ text: 'Old message' }] },
1461
+ {
1462
+ role: 'model',
1463
+ parts: [{ functionCall: { name: 'old_tool', args: {} } }],
1464
+ },
1465
+ { role: 'user', parts: [{ text: 'Find a restaurant' }] }, // active loop starts here
1466
+ {
1467
+ role: 'model',
1468
+ parts: [
1469
+ { functionCall: { name: 'find_restaurant', args: {} } }, // This one gets a signature
1470
+ { functionCall: { name: 'find_restaurant_2', args: {} } }, // This one does NOT
1471
+ ],
1472
+ },
1473
+ {
1474
+ role: 'user',
1475
+ parts: [
1476
+ { functionResponse: { name: 'find_restaurant', response: {} } },
1477
+ ],
1478
+ },
1479
+ {
1480
+ role: 'model',
1481
+ parts: [
1482
+ {
1483
+ functionCall: { name: 'tool_with_sig', args: {} },
1484
+ thoughtSignature: 'existing-sig',
1485
+ },
1486
+ { functionCall: { name: 'another_tool', args: {} } }, // This one does NOT get a signature
1487
+ ],
1488
+ },
1489
+ ];
1490
+ const newContents = chat.ensureActiveLoopHasThoughtSignatures(history);
1491
+ // Outside active loop - unchanged
1492
+ expect(newContents[1]?.parts?.[0]).not.toHaveProperty('thoughtSignature');
1493
+ // Inside active loop, first model turn
1494
+ // First function call gets a signature
1495
+ expect(newContents[3]?.parts?.[0]?.thoughtSignature).toBe(SYNTHETIC_THOUGHT_SIGNATURE);
1496
+ // Second function call does NOT
1497
+ expect(newContents[3]?.parts?.[1]).not.toHaveProperty('thoughtSignature');
1498
+ // User functionResponse part - unchanged (this is not a model turn)
1499
+ expect(newContents[4]?.parts?.[0]).not.toHaveProperty('thoughtSignature');
1500
+ // Inside active loop, second model turn
1501
+ // First function call already has a signature, so nothing changes
1502
+ expect(newContents[5]?.parts?.[0]?.thoughtSignature).toBe('existing-sig');
1503
+ // Second function call does NOT get a signature
1504
+ expect(newContents[5]?.parts?.[1]).not.toHaveProperty('thoughtSignature');
1505
+ });
1506
+ it('should not modify contents if there is no user text message', () => {
1507
+ const chat = new GeminiChat(mockConfig, {}, []);
1508
+ const history = [
1509
+ {
1510
+ role: 'user',
1511
+ parts: [{ functionResponse: { name: 'tool1', response: {} } }],
1512
+ },
1513
+ {
1514
+ role: 'model',
1515
+ parts: [{ functionCall: { name: 'tool2', args: {} } }],
1516
+ },
1517
+ ];
1518
+ const newContents = chat.ensureActiveLoopHasThoughtSignatures(history);
1519
+ expect(newContents).toEqual(history);
1520
+ expect(newContents[1]?.parts?.[0]).not.toHaveProperty('thoughtSignature');
1521
+ });
1522
+ it('should handle an empty history', () => {
1523
+ const chat = new GeminiChat(mockConfig, {}, []);
1524
+ const history = [];
1525
+ const newContents = chat.ensureActiveLoopHasThoughtSignatures(history);
1526
+ expect(newContents).toEqual([]);
1527
+ });
1528
+ it('should handle history with only a user message', () => {
1529
+ const chat = new GeminiChat(mockConfig, {}, []);
1530
+ const history = [{ role: 'user', parts: [{ text: 'Hello' }] }];
1531
+ const newContents = chat.ensureActiveLoopHasThoughtSignatures(history);
1532
+ expect(newContents).toEqual(history);
1533
+ });
1534
+ });
1300
1535
  });
1301
1536
  //# sourceMappingURL=geminiChat.test.js.map