@google/gemini-cli-core 0.52.0 → 0.54.0-nightly.20260725.g3818efbbf

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 (67) hide show
  1. package/dist/docs/CONTRIBUTING.md +3 -3
  2. package/dist/docs/changelogs/index.md +20 -0
  3. package/dist/docs/changelogs/latest.md +53 -18
  4. package/dist/docs/changelogs/preview.md +35 -46
  5. package/dist/docs/cli/sandbox.md +3 -2
  6. package/dist/docs/reference/configuration.md +4 -4
  7. package/dist/google-gemini-cli-core-0.54.0-nightly.20260722.gf743ab579.tgz +0 -0
  8. package/dist/src/agents/auth-provider/credential-leak-prevention.test.d.ts +6 -0
  9. package/dist/src/agents/auth-provider/credential-leak-prevention.test.js +66 -0
  10. package/dist/src/agents/auth-provider/credential-leak-prevention.test.js.map +1 -0
  11. package/dist/src/agents/auth-provider/google-credentials-provider.js +5 -1
  12. package/dist/src/agents/auth-provider/google-credentials-provider.js.map +1 -1
  13. package/dist/src/agents/auth-provider/google-credentials-provider.test.js +4 -0
  14. package/dist/src/agents/auth-provider/google-credentials-provider.test.js.map +1 -1
  15. package/dist/src/availability/autoRoutingFallback.integration.test.js +56 -0
  16. package/dist/src/availability/autoRoutingFallback.integration.test.js.map +1 -1
  17. package/dist/src/code_assist/oauth2.js +92 -59
  18. package/dist/src/code_assist/oauth2.js.map +1 -1
  19. package/dist/src/code_assist/oauth2.test.js +39 -0
  20. package/dist/src/code_assist/oauth2.test.js.map +1 -1
  21. package/dist/src/code_assist/server.d.ts +1 -0
  22. package/dist/src/code_assist/server.js +7 -4
  23. package/dist/src/code_assist/server.js.map +1 -1
  24. package/dist/src/config/config.d.ts +3 -0
  25. package/dist/src/config/config.js +5 -0
  26. package/dist/src/config/config.js.map +1 -1
  27. package/dist/src/core/client.test.js +1 -1
  28. package/dist/src/core/client.test.js.map +1 -1
  29. package/dist/src/core/contentGenerator.js +12 -10
  30. package/dist/src/core/contentGenerator.js.map +1 -1
  31. package/dist/src/core/geminiChat.d.ts +2 -0
  32. package/dist/src/core/geminiChat.js +62 -9
  33. package/dist/src/core/geminiChat.js.map +1 -1
  34. package/dist/src/core/geminiChat.test.js +224 -1
  35. package/dist/src/core/geminiChat.test.js.map +1 -1
  36. package/dist/src/fallback/handler.js +4 -2
  37. package/dist/src/fallback/handler.js.map +1 -1
  38. package/dist/src/fallback/handler.test.js +1 -0
  39. package/dist/src/fallback/handler.test.js.map +1 -1
  40. package/dist/src/generated/git-commit.d.ts +2 -2
  41. package/dist/src/generated/git-commit.js +2 -2
  42. package/dist/src/generated/git-commit.js.map +1 -1
  43. package/dist/src/safety/checker-runner.js +2 -0
  44. package/dist/src/safety/checker-runner.js.map +1 -1
  45. package/dist/src/safety/checker-runner.test.js +4 -0
  46. package/dist/src/safety/checker-runner.test.js.map +1 -1
  47. package/dist/src/safety/context-builder.d.ts +1 -0
  48. package/dist/src/safety/context-builder.js +3 -0
  49. package/dist/src/safety/context-builder.js.map +1 -1
  50. package/dist/src/services/loopDetectionService.d.ts +1 -2
  51. package/dist/src/services/loopDetectionService.js +27 -12
  52. package/dist/src/services/loopDetectionService.js.map +1 -1
  53. package/dist/src/services/loopDetectionService.test.js +72 -0
  54. package/dist/src/services/loopDetectionService.test.js.map +1 -1
  55. package/dist/src/services/shellExecutionService.d.ts +1 -0
  56. package/dist/src/services/shellExecutionService.js +4 -3
  57. package/dist/src/services/shellExecutionService.js.map +1 -1
  58. package/dist/src/tools/shell.js +1 -0
  59. package/dist/src/tools/shell.js.map +1 -1
  60. package/dist/src/tools/trackerTools.test.js +3 -1
  61. package/dist/src/tools/trackerTools.test.js.map +1 -1
  62. package/dist/src/utils/editor.js +5 -0
  63. package/dist/src/utils/editor.js.map +1 -1
  64. package/dist/src/utils/editor.test.js +3 -0
  65. package/dist/src/utils/editor.test.js.map +1 -1
  66. package/dist/tsconfig.tsbuildinfo +1 -1
  67. package/package.json +1 -1
@@ -11,7 +11,7 @@ import { AgentChatHistory } from './agentChatHistory.js';
11
11
  import { randomUUID } from 'node:crypto';
12
12
  import { toParts } from '../code_assist/converter.js';
13
13
  import { retryWithBackoff, isRetryableError, getRetryErrorType, } from '../utils/retry.js';
14
- import { resolveModel, supportsModernFeatures } from '../config/models.js';
14
+ import { resolveModel, supportsModernFeatures, isGemini2Model, } from '../config/models.js';
15
15
  import { hasCycleInSchema } from '../tools/tools.js';
16
16
  import { logContentRetry, logContentRetryFailure, logNetworkRetryAttempt, } from '../telemetry/loggers.js';
17
17
  import { ChatRecordingService, } from '../services/chatRecordingService.js';
@@ -491,9 +491,11 @@ export class GeminiChat {
491
491
  async makeApiCallAndProcessStream(modelConfigKey, requestHistory, prompt_id, abortSignal, role, apiHistoryOverride) {
492
492
  // Last mile scrubbing to remove internal tracking properties (e.g. callIndex)
493
493
  // before sending to the Gemini API. This whitelists only standard Gemini fields.
494
- const scrubbedHistory = this.context.config.isContextManagementEnabled()
494
+ let scrubbedHistory = this.context.config.isContextManagementEnabled()
495
495
  ? scrubHistory([...requestHistory])
496
496
  : [...requestHistory];
497
+ // Always coalesce consecutive roles to prevent 400 Bad Request errors
498
+ scrubbedHistory = coalesceConsecutiveRoles(scrubbedHistory);
497
499
  const scrubbedContents = scrubbedHistory.map((h) => h.content);
498
500
  const requestContents = apiHistoryOverride
499
501
  ? scrubContents(apiHistoryOverride)
@@ -534,7 +536,7 @@ export class GeminiChat {
534
536
  tools: this.tools,
535
537
  abortSignal,
536
538
  };
537
- let contentsToUse = supportsModernFeatures(modelToUse)
539
+ let contentsToUse = supportsModernFeatures(modelToUse) || isGemini2Model(modelToUse)
538
540
  ? [...contentsForPreviewModel]
539
541
  : [...requestContents];
540
542
  const hookSystem = this.context.config.getHookSystem();
@@ -560,9 +562,10 @@ export class GeminiChat {
560
562
  modelToUse = resolveModel(beforeModelResult.modifiedModel, useGemini3_1, false, hasAccessToPreview, this.context.config, this.context.config.hasGemini35FlashGAAccess?.() ?? false);
561
563
  lastModelToUse = modelToUse;
562
564
  // Re-evaluate contentsToUse based on the new model's feature support
563
- contentsToUse = supportsModernFeatures(modelToUse)
564
- ? [...contentsForPreviewModel]
565
- : [...requestContents];
565
+ contentsToUse =
566
+ supportsModernFeatures(modelToUse) || isGemini2Model(modelToUse)
567
+ ? [...contentsForPreviewModel]
568
+ : [...requestContents];
566
569
  }
567
570
  if (beforeModelResult.modifiedConfig) {
568
571
  Object.assign(config, beforeModelResult.modifiedConfig);
@@ -668,9 +671,14 @@ export class GeminiChat {
668
671
  const history = curated
669
672
  ? extractCuratedHistory(this.agentHistory.get())
670
673
  : [...this.agentHistory.get()];
671
- return this.context.config.isContextManagementEnabled()
672
- ? scrubHistory(history)
673
- : history;
674
+ if (this.context.config.isContextManagementEnabled()) {
675
+ return scrubHistory(history);
676
+ }
677
+ const model = this.context.config.getModel();
678
+ if (isGemini2Model(model) || supportsModernFeatures(model)) {
679
+ return coalesceConsecutiveRoles(stripThoughts(history));
680
+ }
681
+ return history;
674
682
  }
675
683
  /**
676
684
  * Clears the chat history.
@@ -1095,4 +1103,49 @@ export function stripToolCallIdPrefixes(contents) {
1095
1103
  }),
1096
1104
  }));
1097
1105
  }
1106
+ export function coalesceConsecutiveRoles(history) {
1107
+ const result = [];
1108
+ for (const turn of history) {
1109
+ const lastIdx = result.length - 1;
1110
+ const last = result[lastIdx];
1111
+ if (last && last.content.role && last.content.role === turn.content.role) {
1112
+ const hasParts = last.content.parts || turn.content.parts;
1113
+ result[lastIdx] = {
1114
+ id: last.id,
1115
+ content: {
1116
+ ...last.content,
1117
+ parts: hasParts
1118
+ ? [...(last.content.parts || []), ...(turn.content.parts || [])]
1119
+ : undefined,
1120
+ },
1121
+ };
1122
+ }
1123
+ else {
1124
+ result.push({
1125
+ id: turn.id,
1126
+ content: { ...turn.content },
1127
+ });
1128
+ }
1129
+ }
1130
+ return result;
1131
+ }
1132
+ export function stripThoughts(history) {
1133
+ return history
1134
+ .map((turn) => {
1135
+ if (!turn.content.parts)
1136
+ return turn;
1137
+ const hasThought = turn.content.parts.some((p) => p && p.thought);
1138
+ if (!hasThought)
1139
+ return turn;
1140
+ const nonThoughtParts = turn.content.parts.filter((p) => p && !p.thought);
1141
+ return {
1142
+ ...turn,
1143
+ content: {
1144
+ ...turn.content,
1145
+ parts: nonThoughtParts,
1146
+ },
1147
+ };
1148
+ })
1149
+ .filter((turn) => !turn.content.parts || turn.content.parts.length > 0);
1150
+ }
1098
1151
  //# sourceMappingURL=geminiChat.js.map
@@ -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,7 +5,7 @@
5
5
  */
6
6
  import { describe, it, expect, vi, beforeEach, afterEach } from 'vitest';
7
7
  import { ApiError, ThinkingLevel, } from '@google/genai';
8
- import { GeminiChat, InvalidStreamError, StreamEventType, SYNTHETIC_THOUGHT_SIGNATURE, stripToolCallIdPrefixes, } from './geminiChat.js';
8
+ import { GeminiChat, InvalidStreamError, StreamEventType, SYNTHETIC_THOUGHT_SIGNATURE, stripToolCallIdPrefixes, coalesceConsecutiveRoles, stripThoughts, } from './geminiChat.js';
9
9
  import { CoreToolCallStatus, } from '../scheduler/types.js';
10
10
  import { MockTool } from '../test-utils/mock-tool.js';
11
11
  import { setSimulate429 } from '../utils/testUtils.js';
@@ -1648,6 +1648,94 @@ describe('GeminiChat', () => {
1648
1648
  text: 'actual conversational response',
1649
1649
  });
1650
1650
  });
1651
+ it('should completely filter out thought parts from getHistoryTurns when context management is disabled but model is gemini-2/modern', () => {
1652
+ vi.mocked(mockConfig.isContextManagementEnabled).mockReturnValue(false);
1653
+ vi.mocked(mockConfig.getModel).mockReturnValue('gemini-2.5-pro');
1654
+ chat.setHistory([
1655
+ {
1656
+ role: 'user',
1657
+ parts: [{ text: 'hello' }],
1658
+ },
1659
+ {
1660
+ role: 'model',
1661
+ parts: [
1662
+ { text: 'internal monologue', thought: true },
1663
+ { text: 'actual conversational response' },
1664
+ ],
1665
+ },
1666
+ ]);
1667
+ const turns = chat.getHistoryTurns(true);
1668
+ expect(turns).toHaveLength(2);
1669
+ const modelTurn = turns[1];
1670
+ expect(modelTurn.content.parts).toHaveLength(1);
1671
+ expect(modelTurn.content.parts[0]).toEqual({
1672
+ text: 'actual conversational response',
1673
+ });
1674
+ });
1675
+ it('should completely filter out thought parts from getHistoryTurns when model supports modern features', () => {
1676
+ vi.mocked(mockConfig.isContextManagementEnabled).mockReturnValue(false);
1677
+ vi.mocked(mockConfig.getModel).mockReturnValue('gemini-3.1-pro-preview');
1678
+ chat.setHistory([
1679
+ {
1680
+ role: 'user',
1681
+ parts: [{ text: 'hello' }],
1682
+ },
1683
+ {
1684
+ role: 'model',
1685
+ parts: [
1686
+ { text: 'internal monologue', thought: true },
1687
+ { text: 'actual conversational response' },
1688
+ ],
1689
+ },
1690
+ ]);
1691
+ const turns = chat.getHistoryTurns(true);
1692
+ expect(turns).toHaveLength(2);
1693
+ const modelTurn = turns[1];
1694
+ expect(modelTurn.content.parts).toHaveLength(1);
1695
+ expect(modelTurn.content.parts[0]).toEqual({
1696
+ text: 'actual conversational response',
1697
+ });
1698
+ });
1699
+ it('should completely filter out model turns that end up with empty parts after stripping thoughts', () => {
1700
+ vi.mocked(mockConfig.isContextManagementEnabled).mockReturnValue(false);
1701
+ vi.mocked(mockConfig.getModel).mockReturnValue('gemini-2.5-pro');
1702
+ chat.setHistory([
1703
+ {
1704
+ role: 'user',
1705
+ parts: [{ text: 'hello' }],
1706
+ },
1707
+ {
1708
+ role: 'model',
1709
+ parts: [
1710
+ { text: 'internal monologue', thought: true },
1711
+ ],
1712
+ },
1713
+ ]);
1714
+ const turns = chat.getHistoryTurns(true);
1715
+ // Since the model turn contains only a thought part, it should be filtered out entirely.
1716
+ expect(turns).toHaveLength(1);
1717
+ expect(turns[0].content.role).toBe('user');
1718
+ });
1719
+ it('should coalesce consecutive user turns when an intermediate model turn is stripped', () => {
1720
+ vi.mocked(mockConfig.isContextManagementEnabled).mockReturnValue(false);
1721
+ vi.mocked(mockConfig.getModel).mockReturnValue('gemini-2.5-pro');
1722
+ chat.setHistory([
1723
+ { role: 'user', parts: [{ text: 'Question 1' }] },
1724
+ {
1725
+ role: 'model',
1726
+ parts: [{ text: 'thinking...', thought: true }],
1727
+ },
1728
+ { role: 'user', parts: [{ text: 'Question 2' }] },
1729
+ ]);
1730
+ const turns = chat.getHistoryTurns(true);
1731
+ // The model turn contains only a thought part, so it is stripped.
1732
+ // The two adjacent user turns must be coalesced into one user turn.
1733
+ expect(turns).toHaveLength(1);
1734
+ expect(turns[0].content.role).toBe('user');
1735
+ expect(turns[0].content.parts).toHaveLength(2);
1736
+ expect(turns[0].content.parts[0].text).toBe('Question 1');
1737
+ expect(turns[0].content.parts[1].text).toBe('Question 2');
1738
+ });
1651
1739
  });
1652
1740
  describe('ensureActiveLoopHasThoughtSignatures', () => {
1653
1741
  it('should add thoughtSignature to the first functionCall in each model turn of the active loop', () => {
@@ -2302,5 +2390,140 @@ describe('GeminiChat', () => {
2302
2390
  expect(stripped[1].parts[0].functionResponse.id).toBe('call_123');
2303
2391
  });
2304
2392
  });
2393
+ describe('coalesceConsecutiveRoles', () => {
2394
+ it('should return empty history if empty array is passed', () => {
2395
+ expect(coalesceConsecutiveRoles([])).toEqual([]);
2396
+ });
2397
+ it('should not modify history when roles alternate correctly', () => {
2398
+ const history = [
2399
+ { id: '1', content: { role: 'user', parts: [{ text: 'hello' }] } },
2400
+ { id: '2', content: { role: 'model', parts: [{ text: 'hi' }] } },
2401
+ {
2402
+ id: '3',
2403
+ content: { role: 'user', parts: [{ text: 'how are you?' }] },
2404
+ },
2405
+ ];
2406
+ expect(coalesceConsecutiveRoles(history)).toEqual(history);
2407
+ });
2408
+ it('should coalesce consecutive user turns', () => {
2409
+ const history = [
2410
+ { id: '1', content: { role: 'user', parts: [{ text: 'hello' }] } },
2411
+ { id: '2', content: { role: 'user', parts: [{ text: 'world' }] } },
2412
+ ];
2413
+ expect(coalesceConsecutiveRoles(history)).toEqual([
2414
+ {
2415
+ id: '1',
2416
+ content: {
2417
+ role: 'user',
2418
+ parts: [{ text: 'hello' }, { text: 'world' }],
2419
+ },
2420
+ },
2421
+ ]);
2422
+ });
2423
+ it('should handle undefined or missing parts gracefully', () => {
2424
+ const history = [
2425
+ { id: '1', content: { role: 'user' } },
2426
+ { id: '2', content: { role: 'user', parts: [{ text: 'world' }] } },
2427
+ ];
2428
+ expect(coalesceConsecutiveRoles(history)).toEqual([
2429
+ {
2430
+ id: '1',
2431
+ content: {
2432
+ role: 'user',
2433
+ parts: [{ text: 'world' }],
2434
+ },
2435
+ },
2436
+ ]);
2437
+ });
2438
+ it('should not coalesce turns if roles are undefined', () => {
2439
+ const history = [
2440
+ { id: '1', content: { parts: [{ text: 'hello' }] } },
2441
+ { id: '2', content: { parts: [{ text: 'world' }] } },
2442
+ ];
2443
+ expect(coalesceConsecutiveRoles(history)).toEqual(history);
2444
+ });
2445
+ });
2446
+ describe('stripThoughts', () => {
2447
+ it('should return empty history if empty array is passed', () => {
2448
+ expect(stripThoughts([])).toEqual([]);
2449
+ });
2450
+ it('should strip thought parts and keep the turn if other parts remain', () => {
2451
+ const history = [
2452
+ {
2453
+ id: '1',
2454
+ content: {
2455
+ role: 'model',
2456
+ parts: [
2457
+ { text: 'internal monologue', thought: true },
2458
+ { text: 'visible response' },
2459
+ ],
2460
+ },
2461
+ },
2462
+ ];
2463
+ expect(stripThoughts(history)).toEqual([
2464
+ {
2465
+ id: '1',
2466
+ content: {
2467
+ role: 'model',
2468
+ parts: [{ text: 'visible response' }],
2469
+ },
2470
+ },
2471
+ ]);
2472
+ });
2473
+ it('should completely remove a turn if all its parts are thought parts', () => {
2474
+ const history = [
2475
+ {
2476
+ id: '1',
2477
+ content: {
2478
+ role: 'user',
2479
+ parts: [{ text: 'hello' }],
2480
+ },
2481
+ },
2482
+ {
2483
+ id: '2',
2484
+ content: {
2485
+ role: 'model',
2486
+ parts: [
2487
+ { text: 'internal monologue', thought: true },
2488
+ ],
2489
+ },
2490
+ },
2491
+ ];
2492
+ expect(stripThoughts(history)).toEqual([
2493
+ {
2494
+ id: '1',
2495
+ content: {
2496
+ role: 'user',
2497
+ parts: [{ text: 'hello' }],
2498
+ },
2499
+ },
2500
+ ]);
2501
+ });
2502
+ it('should preserve turns that do not have parts arrays', () => {
2503
+ const history = [{ id: '1', content: { role: 'user' } }];
2504
+ expect(stripThoughts(history)).toEqual(history);
2505
+ });
2506
+ it('should preserve top-level metadata when stripping thoughts', () => {
2507
+ const history = [
2508
+ {
2509
+ id: '1',
2510
+ content: {
2511
+ role: 'model',
2512
+ parts: [
2513
+ { text: 'internal monologue', thought: true },
2514
+ { text: 'visible response' },
2515
+ ],
2516
+ },
2517
+ // top-level turn metadata
2518
+ timestamp: '2026-07-23T00:00:00.000Z',
2519
+ metadata: { some: 'value' },
2520
+ },
2521
+ ];
2522
+ const stripped = stripThoughts(history);
2523
+ expect(stripped).toHaveLength(1);
2524
+ expect(stripped[0]).toHaveProperty('timestamp', '2026-07-23T00:00:00.000Z');
2525
+ expect(stripped[0]).toHaveProperty('metadata', { some: 'value' });
2526
+ });
2527
+ });
2305
2528
  });
2306
2529
  //# sourceMappingURL=geminiChat.test.js.map