@google/gemini-cli-core 0.21.0-nightly.20251216.bb0c0d8ee → 0.21.0-nightly.20251218.739c02bd6

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 (191) hide show
  1. package/dist/google-gemini-cli-core-0.21.0-nightly.20251216.bb0c0d8ee.tgz +0 -0
  2. package/dist/index.d.ts +1 -1
  3. package/dist/index.js +1 -1
  4. package/dist/index.js.map +1 -1
  5. package/dist/src/agents/codebase-investigator.d.ts +2 -2
  6. package/dist/src/agents/codebase-investigator.js +6 -5
  7. package/dist/src/agents/codebase-investigator.js.map +1 -1
  8. package/dist/src/agents/codebase-investigator.test.js +2 -2
  9. package/dist/src/agents/codebase-investigator.test.js.map +1 -1
  10. package/dist/src/agents/delegate-to-agent-tool.js +8 -4
  11. package/dist/src/agents/delegate-to-agent-tool.js.map +1 -1
  12. package/dist/src/agents/delegate-to-agent-tool.test.js +5 -4
  13. package/dist/src/agents/delegate-to-agent-tool.test.js.map +1 -1
  14. package/dist/src/agents/{executor.d.ts → local-executor.d.ts} +5 -5
  15. package/dist/src/agents/{executor.js → local-executor.js} +7 -7
  16. package/dist/src/agents/local-executor.js.map +1 -0
  17. package/dist/src/agents/local-executor.test.d.ts +12 -0
  18. package/dist/src/agents/{executor.test.js → local-executor.test.js} +40 -39
  19. package/dist/src/agents/local-executor.test.js.map +1 -0
  20. package/dist/src/agents/{invocation.d.ts → local-invocation.d.ts} +5 -6
  21. package/dist/src/agents/{invocation.js → local-invocation.js} +8 -9
  22. package/dist/src/agents/local-invocation.js.map +1 -0
  23. package/dist/src/agents/{invocation.test.js → local-invocation.test.js} +18 -17
  24. package/dist/src/agents/local-invocation.test.js.map +1 -0
  25. package/dist/src/agents/registry.js +35 -24
  26. package/dist/src/agents/registry.js.map +1 -1
  27. package/dist/src/agents/registry.test.js +34 -4
  28. package/dist/src/agents/registry.test.js.map +1 -1
  29. package/dist/src/agents/remote-invocation.d.ts +21 -0
  30. package/dist/src/agents/remote-invocation.js +31 -0
  31. package/dist/src/agents/remote-invocation.js.map +1 -0
  32. package/dist/src/agents/remote-invocation.test.js +35 -0
  33. package/dist/src/agents/remote-invocation.test.js.map +1 -0
  34. package/dist/src/agents/subagent-tool-wrapper.js +7 -3
  35. package/dist/src/agents/subagent-tool-wrapper.js.map +1 -1
  36. package/dist/src/agents/subagent-tool-wrapper.test.js +10 -9
  37. package/dist/src/agents/subagent-tool-wrapper.test.js.map +1 -1
  38. package/dist/src/agents/types.d.ts +12 -4
  39. package/dist/src/availability/policyCatalog.d.ts +1 -0
  40. package/dist/src/availability/policyCatalog.js +6 -8
  41. package/dist/src/availability/policyCatalog.js.map +1 -1
  42. package/dist/src/availability/policyCatalog.test.js +2 -2
  43. package/dist/src/availability/policyCatalog.test.js.map +1 -1
  44. package/dist/src/availability/policyHelpers.d.ts +9 -5
  45. package/dist/src/availability/policyHelpers.js +43 -37
  46. package/dist/src/availability/policyHelpers.js.map +1 -1
  47. package/dist/src/availability/policyHelpers.test.js +58 -20
  48. package/dist/src/availability/policyHelpers.test.js.map +1 -1
  49. package/dist/src/code_assist/oauth2.js +1 -1
  50. package/dist/src/code_assist/oauth2.js.map +1 -1
  51. package/dist/src/code_assist/oauth2.test.js +6 -8
  52. package/dist/src/code_assist/oauth2.test.js.map +1 -1
  53. package/dist/src/code_assist/server.d.ts +4 -1
  54. package/dist/src/code_assist/server.js +50 -7
  55. package/dist/src/code_assist/server.js.map +1 -1
  56. package/dist/src/code_assist/server.test.js +177 -27
  57. package/dist/src/code_assist/server.test.js.map +1 -1
  58. package/dist/src/code_assist/telemetry.d.ts +14 -0
  59. package/dist/src/code_assist/telemetry.js +156 -0
  60. package/dist/src/code_assist/telemetry.js.map +1 -0
  61. package/dist/src/code_assist/telemetry.test.d.ts +6 -0
  62. package/dist/src/code_assist/telemetry.test.js +300 -0
  63. package/dist/src/code_assist/telemetry.test.js.map +1 -0
  64. package/dist/src/code_assist/types.d.ts +52 -1
  65. package/dist/src/code_assist/types.js +21 -0
  66. package/dist/src/code_assist/types.js.map +1 -1
  67. package/dist/src/config/config.d.ts +6 -13
  68. package/dist/src/config/config.js +61 -38
  69. package/dist/src/config/config.js.map +1 -1
  70. package/dist/src/config/config.test.js +134 -22
  71. package/dist/src/config/config.test.js.map +1 -1
  72. package/dist/src/config/defaultModelConfigs.js +11 -0
  73. package/dist/src/config/defaultModelConfigs.js.map +1 -1
  74. package/dist/src/config/flashFallback.test.js +0 -37
  75. package/dist/src/config/flashFallback.test.js.map +1 -1
  76. package/dist/src/config/models.d.ts +23 -10
  77. package/dist/src/config/models.js +65 -23
  78. package/dist/src/config/models.js.map +1 -1
  79. package/dist/src/config/models.test.js +57 -76
  80. package/dist/src/config/models.test.js.map +1 -1
  81. package/dist/src/core/baseLlmClient.d.ts +3 -1
  82. package/dist/src/core/baseLlmClient.js +51 -43
  83. package/dist/src/core/baseLlmClient.js.map +1 -1
  84. package/dist/src/core/baseLlmClient.test.js +12 -19
  85. package/dist/src/core/baseLlmClient.test.js.map +1 -1
  86. package/dist/src/core/client.js +18 -33
  87. package/dist/src/core/client.js.map +1 -1
  88. package/dist/src/core/client.test.js +14 -65
  89. package/dist/src/core/client.test.js.map +1 -1
  90. package/dist/src/core/contentGenerator.js +1 -1
  91. package/dist/src/core/contentGenerator.js.map +1 -1
  92. package/dist/src/core/contentGenerator.test.js +0 -6
  93. package/dist/src/core/contentGenerator.test.js.map +1 -1
  94. package/dist/src/core/geminiChat.js +29 -88
  95. package/dist/src/core/geminiChat.js.map +1 -1
  96. package/dist/src/core/geminiChat.test.js +35 -257
  97. package/dist/src/core/geminiChat.test.js.map +1 -1
  98. package/dist/src/core/geminiChat_network_retry.test.js +6 -6
  99. package/dist/src/core/geminiChat_network_retry.test.js.map +1 -1
  100. package/dist/src/core/prompts.js +6 -7
  101. package/dist/src/core/prompts.js.map +1 -1
  102. package/dist/src/core/prompts.test.js +10 -7
  103. package/dist/src/core/prompts.test.js.map +1 -1
  104. package/dist/src/core/turn.d.ts +1 -0
  105. package/dist/src/core/turn.js +4 -12
  106. package/dist/src/core/turn.js.map +1 -1
  107. package/dist/src/core/turn.test.js +0 -5
  108. package/dist/src/core/turn.test.js.map +1 -1
  109. package/dist/src/fallback/handler.js +54 -121
  110. package/dist/src/fallback/handler.js.map +1 -1
  111. package/dist/src/fallback/handler.test.js +80 -285
  112. package/dist/src/fallback/handler.test.js.map +1 -1
  113. package/dist/src/generated/git-commit.d.ts +2 -2
  114. package/dist/src/generated/git-commit.js +2 -2
  115. package/dist/src/index.d.ts +2 -0
  116. package/dist/src/index.js +2 -0
  117. package/dist/src/index.js.map +1 -1
  118. package/dist/src/output/json-formatter.test.js +2 -0
  119. package/dist/src/output/json-formatter.test.js.map +1 -1
  120. package/dist/src/output/stream-json-formatter.js +6 -0
  121. package/dist/src/output/stream-json-formatter.js.map +1 -1
  122. package/dist/src/output/stream-json-formatter.test.js +98 -100
  123. package/dist/src/output/stream-json-formatter.test.js.map +1 -1
  124. package/dist/src/output/types.d.ts +2 -0
  125. package/dist/src/routing/modelRouterService.js +0 -15
  126. package/dist/src/routing/modelRouterService.js.map +1 -1
  127. package/dist/src/routing/modelRouterService.test.js +0 -62
  128. package/dist/src/routing/modelRouterService.test.js.map +1 -1
  129. package/dist/src/routing/strategies/classifierStrategy.js +10 -21
  130. package/dist/src/routing/strategies/classifierStrategy.js.map +1 -1
  131. package/dist/src/routing/strategies/classifierStrategy.test.js +2 -1
  132. package/dist/src/routing/strategies/classifierStrategy.test.js.map +1 -1
  133. package/dist/src/routing/strategies/fallbackStrategy.js +20 -12
  134. package/dist/src/routing/strategies/fallbackStrategy.js.map +1 -1
  135. package/dist/src/routing/strategies/fallbackStrategy.test.js +63 -39
  136. package/dist/src/routing/strategies/fallbackStrategy.test.js.map +1 -1
  137. package/dist/src/routing/strategies/overrideStrategy.js +4 -3
  138. package/dist/src/routing/strategies/overrideStrategy.js.map +1 -1
  139. package/dist/src/services/chatCompressionService.js +3 -1
  140. package/dist/src/services/chatCompressionService.js.map +1 -1
  141. package/dist/src/services/loopDetectionService.js +2 -1
  142. package/dist/src/services/loopDetectionService.js.map +1 -1
  143. package/dist/src/services/loopDetectionService.test.js +14 -8
  144. package/dist/src/services/loopDetectionService.test.js.map +1 -1
  145. package/dist/src/services/modelConfig.integration.test.js +1 -1
  146. package/dist/src/services/modelConfig.integration.test.js.map +1 -1
  147. package/dist/src/services/test-data/resolved-aliases-retry.golden.json +16 -0
  148. package/dist/src/services/test-data/resolved-aliases.golden.json +16 -0
  149. package/dist/src/telemetry/sdk.js +2 -2
  150. package/dist/src/telemetry/sdk.js.map +1 -1
  151. package/dist/src/telemetry/uiTelemetry.d.ts +1 -0
  152. package/dist/src/telemetry/uiTelemetry.js +2 -0
  153. package/dist/src/telemetry/uiTelemetry.js.map +1 -1
  154. package/dist/src/telemetry/uiTelemetry.test.js +4 -0
  155. package/dist/src/telemetry/uiTelemetry.test.js.map +1 -1
  156. package/dist/src/tools/ripGrep.js +2 -2
  157. package/dist/src/tools/ripGrep.js.map +1 -1
  158. package/dist/src/utils/checkpointUtils.js +1 -1
  159. package/dist/src/utils/checkpointUtils.js.map +1 -1
  160. package/dist/src/utils/checkpointUtils.test.js +1 -1
  161. package/dist/src/utils/checkpointUtils.test.js.map +1 -1
  162. package/dist/src/utils/editCorrector.js +1 -1
  163. package/dist/src/utils/editCorrector.js.map +1 -1
  164. package/dist/src/utils/editCorrector.test.js +2 -2
  165. package/dist/src/utils/editCorrector.test.js.map +1 -1
  166. package/dist/src/utils/environmentContext.d.ts +1 -0
  167. package/dist/src/utils/environmentContext.js +1 -0
  168. package/dist/src/utils/environmentContext.js.map +1 -1
  169. package/dist/src/utils/events.d.ts +0 -16
  170. package/dist/src/utils/events.js +0 -9
  171. package/dist/src/utils/events.js.map +1 -1
  172. package/dist/src/utils/flashFallback.test.js +1 -1
  173. package/dist/src/utils/flashFallback.test.js.map +1 -1
  174. package/dist/src/utils/generateContentResponseUtilities.d.ts +1 -0
  175. package/dist/src/utils/generateContentResponseUtilities.js +10 -0
  176. package/dist/src/utils/generateContentResponseUtilities.js.map +1 -1
  177. package/dist/src/utils/generateContentResponseUtilities.test.js +59 -2
  178. package/dist/src/utils/generateContentResponseUtilities.test.js.map +1 -1
  179. package/dist/src/utils/retry.js +2 -16
  180. package/dist/src/utils/retry.js.map +1 -1
  181. package/dist/src/utils/retry.test.js +7 -22
  182. package/dist/src/utils/retry.test.js.map +1 -1
  183. package/dist/tsconfig.tsbuildinfo +1 -1
  184. package/package.json +1 -1
  185. package/dist/google-gemini-cli-core-0.21.0-nightly.20251213.977248e09.tgz +0 -0
  186. package/dist/src/agents/executor.js.map +0 -1
  187. package/dist/src/agents/executor.test.js.map +0 -1
  188. package/dist/src/agents/invocation.js.map +0 -1
  189. package/dist/src/agents/invocation.test.js.map +0 -1
  190. /package/dist/src/agents/{executor.test.d.ts → local-invocation.test.d.ts} +0 -0
  191. /package/dist/src/agents/{invocation.test.d.ts → remote-invocation.test.d.ts} +0 -0
@@ -4,7 +4,7 @@
4
4
  * SPDX-License-Identifier: Apache-2.0
5
5
  */
6
6
  import { describe, it, expect } from 'vitest';
7
- import { getEffectiveModel, DEFAULT_GEMINI_MODEL, PREVIEW_GEMINI_MODEL, DEFAULT_GEMINI_FLASH_MODEL, DEFAULT_GEMINI_FLASH_LITE_MODEL, GEMINI_MODEL_ALIAS_PRO, GEMINI_MODEL_ALIAS_FLASH, GEMINI_MODEL_ALIAS_FLASH_LITE, supportsMultimodalFunctionResponse, } from './models.js';
7
+ import { getEffectiveModel, resolveClassifierModel, isGemini2Model, DEFAULT_GEMINI_MODEL, PREVIEW_GEMINI_MODEL, DEFAULT_GEMINI_FLASH_MODEL, DEFAULT_GEMINI_FLASH_LITE_MODEL, supportsMultimodalFunctionResponse, GEMINI_MODEL_ALIAS_PRO, GEMINI_MODEL_ALIAS_FLASH, GEMINI_MODEL_ALIAS_FLASH_LITE, PREVIEW_GEMINI_FLASH_MODEL, PREVIEW_GEMINI_MODEL_AUTO, DEFAULT_GEMINI_MODEL_AUTO, } from './models.js';
8
8
  describe('supportsMultimodalFunctionResponse', () => {
9
9
  it('should return true for gemini-3 model', () => {
10
10
  expect(supportsMultimodalFunctionResponse('gemini-3-pro')).toBe(true);
@@ -19,111 +19,92 @@ describe('supportsMultimodalFunctionResponse', () => {
19
19
  });
20
20
  });
21
21
  describe('getEffectiveModel', () => {
22
- describe('When NOT in fallback mode', () => {
23
- const isInFallbackMode = false;
24
- it('should return the Pro model when Pro is requested', () => {
25
- const model = getEffectiveModel(isInFallbackMode, DEFAULT_GEMINI_MODEL, false);
26
- expect(model).toBe(DEFAULT_GEMINI_MODEL);
22
+ describe('delegation to resolveModel', () => {
23
+ it('should return the Preview Pro model when auto-gemini-3 is requested', () => {
24
+ const model = getEffectiveModel(PREVIEW_GEMINI_MODEL_AUTO, false);
25
+ expect(model).toBe(PREVIEW_GEMINI_MODEL);
27
26
  });
28
- it('should return the Flash model when Flash is requested', () => {
29
- const model = getEffectiveModel(isInFallbackMode, DEFAULT_GEMINI_FLASH_MODEL, false);
30
- expect(model).toBe(DEFAULT_GEMINI_FLASH_MODEL);
27
+ it('should return the Default Pro model when auto-gemini-2.5 is requested', () => {
28
+ const model = getEffectiveModel(DEFAULT_GEMINI_MODEL_AUTO, false);
29
+ expect(model).toBe(DEFAULT_GEMINI_MODEL);
31
30
  });
32
- it('should return the Lite model when Lite is requested', () => {
33
- const model = getEffectiveModel(isInFallbackMode, DEFAULT_GEMINI_FLASH_LITE_MODEL, false);
34
- expect(model).toBe(DEFAULT_GEMINI_FLASH_LITE_MODEL);
31
+ it('should return the requested model as-is for explicit specific models', () => {
32
+ expect(getEffectiveModel(DEFAULT_GEMINI_MODEL, false)).toBe(DEFAULT_GEMINI_MODEL);
33
+ expect(getEffectiveModel(DEFAULT_GEMINI_FLASH_MODEL, false)).toBe(DEFAULT_GEMINI_FLASH_MODEL);
34
+ expect(getEffectiveModel(DEFAULT_GEMINI_FLASH_LITE_MODEL, false)).toBe(DEFAULT_GEMINI_FLASH_LITE_MODEL);
35
35
  });
36
36
  it('should return a custom model name when requested', () => {
37
37
  const customModel = 'custom-model-v1';
38
- const model = getEffectiveModel(isInFallbackMode, customModel, false);
38
+ const model = getEffectiveModel(customModel, false);
39
39
  expect(model).toBe(customModel);
40
40
  });
41
41
  describe('with preview features', () => {
42
42
  it('should return the preview model when pro alias is requested', () => {
43
- const model = getEffectiveModel(isInFallbackMode, GEMINI_MODEL_ALIAS_PRO, true);
43
+ const model = getEffectiveModel(GEMINI_MODEL_ALIAS_PRO, true);
44
44
  expect(model).toBe(PREVIEW_GEMINI_MODEL);
45
45
  });
46
46
  it('should return the default pro model when pro alias is requested and preview is off', () => {
47
- const model = getEffectiveModel(isInFallbackMode, GEMINI_MODEL_ALIAS_PRO, false);
47
+ const model = getEffectiveModel(GEMINI_MODEL_ALIAS_PRO, false);
48
48
  expect(model).toBe(DEFAULT_GEMINI_MODEL);
49
49
  });
50
50
  it('should return the flash model when flash is requested and preview is on', () => {
51
- const model = getEffectiveModel(isInFallbackMode, GEMINI_MODEL_ALIAS_FLASH, true);
52
- expect(model).toBe(DEFAULT_GEMINI_FLASH_MODEL);
51
+ const model = getEffectiveModel(GEMINI_MODEL_ALIAS_FLASH, true);
52
+ expect(model).toBe(PREVIEW_GEMINI_FLASH_MODEL);
53
53
  });
54
54
  it('should return the flash model when lite is requested and preview is on', () => {
55
- const model = getEffectiveModel(isInFallbackMode, GEMINI_MODEL_ALIAS_FLASH_LITE, true);
55
+ const model = getEffectiveModel(GEMINI_MODEL_ALIAS_FLASH_LITE, true);
56
56
  expect(model).toBe(DEFAULT_GEMINI_FLASH_LITE_MODEL);
57
57
  });
58
58
  it('should return the flash model when the flash model name is explicitly requested and preview is on', () => {
59
- const model = getEffectiveModel(isInFallbackMode, DEFAULT_GEMINI_FLASH_MODEL, true);
59
+ const model = getEffectiveModel(DEFAULT_GEMINI_FLASH_MODEL, true);
60
60
  expect(model).toBe(DEFAULT_GEMINI_FLASH_MODEL);
61
61
  });
62
62
  it('should return the lite model when the lite model name is requested and preview is on', () => {
63
- const model = getEffectiveModel(isInFallbackMode, DEFAULT_GEMINI_FLASH_LITE_MODEL, true);
63
+ const model = getEffectiveModel(DEFAULT_GEMINI_FLASH_LITE_MODEL, true);
64
64
  expect(model).toBe(DEFAULT_GEMINI_FLASH_LITE_MODEL);
65
65
  });
66
66
  it('should return the default gemini model when the model is explicitly set and preview is on', () => {
67
- const model = getEffectiveModel(isInFallbackMode, DEFAULT_GEMINI_MODEL, true);
67
+ const model = getEffectiveModel(DEFAULT_GEMINI_MODEL, true);
68
68
  expect(model).toBe(DEFAULT_GEMINI_MODEL);
69
69
  });
70
70
  });
71
71
  });
72
- describe('When IN fallback mode', () => {
73
- const isInFallbackMode = true;
74
- it('should downgrade the Pro model to the Flash model', () => {
75
- const model = getEffectiveModel(isInFallbackMode, DEFAULT_GEMINI_MODEL, false);
76
- expect(model).toBe(DEFAULT_GEMINI_FLASH_MODEL);
77
- });
78
- it('should return the Flash model when Flash is requested', () => {
79
- const model = getEffectiveModel(isInFallbackMode, DEFAULT_GEMINI_FLASH_MODEL, false);
80
- expect(model).toBe(DEFAULT_GEMINI_FLASH_MODEL);
81
- });
82
- it('should HONOR the Lite model when Lite is requested', () => {
83
- const model = getEffectiveModel(isInFallbackMode, DEFAULT_GEMINI_FLASH_LITE_MODEL, false);
84
- expect(model).toBe(DEFAULT_GEMINI_FLASH_LITE_MODEL);
85
- });
86
- it('should HONOR any model with "lite" in its name', () => {
87
- const customLiteModel = 'gemini-2.5-custom-lite-vNext';
88
- const model = getEffectiveModel(isInFallbackMode, customLiteModel, false);
89
- expect(model).toBe(customLiteModel);
90
- });
91
- it('should downgrade any other custom model to the Flash model', () => {
92
- const customModel = 'custom-model-v1-unlisted';
93
- const model = getEffectiveModel(isInFallbackMode, customModel, false);
94
- expect(model).toBe(DEFAULT_GEMINI_FLASH_MODEL);
95
- });
96
- describe('with preview features', () => {
97
- it('should downgrade the Pro alias to the Flash model', () => {
98
- const model = getEffectiveModel(isInFallbackMode, GEMINI_MODEL_ALIAS_PRO, true);
99
- expect(model).toBe(DEFAULT_GEMINI_FLASH_MODEL);
100
- });
101
- it('should return the Flash alias when requested', () => {
102
- const model = getEffectiveModel(isInFallbackMode, GEMINI_MODEL_ALIAS_FLASH, true);
103
- expect(model).toBe(DEFAULT_GEMINI_FLASH_MODEL);
104
- });
105
- it('should return the Lite alias when requested', () => {
106
- const model = getEffectiveModel(isInFallbackMode, GEMINI_MODEL_ALIAS_FLASH_LITE, true);
107
- expect(model).toBe(DEFAULT_GEMINI_FLASH_LITE_MODEL);
108
- });
109
- it('should downgrade the default Gemini model to the Flash model', () => {
110
- const model = getEffectiveModel(isInFallbackMode, DEFAULT_GEMINI_MODEL, true);
111
- expect(model).toBe(DEFAULT_GEMINI_FLASH_MODEL);
112
- });
113
- it('should return the default Flash model when requested', () => {
114
- const model = getEffectiveModel(isInFallbackMode, DEFAULT_GEMINI_FLASH_MODEL, true);
115
- expect(model).toBe(DEFAULT_GEMINI_FLASH_MODEL);
116
- });
117
- it('should return the default Lite model when requested', () => {
118
- const model = getEffectiveModel(isInFallbackMode, DEFAULT_GEMINI_FLASH_LITE_MODEL, true);
119
- expect(model).toBe(DEFAULT_GEMINI_FLASH_LITE_MODEL);
120
- });
121
- it('should downgrade any other custom model to the Flash model', () => {
122
- const customModel = 'custom-model-v1-unlisted';
123
- const model = getEffectiveModel(isInFallbackMode, customModel, true);
124
- expect(model).toBe(DEFAULT_GEMINI_FLASH_MODEL);
125
- });
126
- });
72
+ });
73
+ describe('isGemini2Model', () => {
74
+ it('should return true for gemini-2.5-pro', () => {
75
+ expect(isGemini2Model('gemini-2.5-pro')).toBe(true);
76
+ });
77
+ it('should return true for gemini-2.5-flash', () => {
78
+ expect(isGemini2Model('gemini-2.5-flash')).toBe(true);
79
+ });
80
+ it('should return true for gemini-2.0-flash', () => {
81
+ expect(isGemini2Model('gemini-2.0-flash')).toBe(true);
82
+ });
83
+ it('should return false for gemini-1.5-pro', () => {
84
+ expect(isGemini2Model('gemini-1.5-pro')).toBe(false);
85
+ });
86
+ it('should return false for gemini-3-pro', () => {
87
+ expect(isGemini2Model('gemini-3-pro')).toBe(false);
88
+ });
89
+ it('should return false for arbitrary strings', () => {
90
+ expect(isGemini2Model('gpt-4')).toBe(false);
91
+ });
92
+ });
93
+ describe('resolveClassifierModel', () => {
94
+ it('should return flash model when alias is flash', () => {
95
+ expect(resolveClassifierModel(DEFAULT_GEMINI_MODEL_AUTO, GEMINI_MODEL_ALIAS_FLASH)).toBe(DEFAULT_GEMINI_FLASH_MODEL);
96
+ expect(resolveClassifierModel(PREVIEW_GEMINI_MODEL_AUTO, GEMINI_MODEL_ALIAS_FLASH)).toBe(PREVIEW_GEMINI_FLASH_MODEL);
97
+ });
98
+ it('should return pro model when alias is pro', () => {
99
+ expect(resolveClassifierModel(DEFAULT_GEMINI_MODEL_AUTO, GEMINI_MODEL_ALIAS_PRO)).toBe(DEFAULT_GEMINI_MODEL);
100
+ expect(resolveClassifierModel(PREVIEW_GEMINI_MODEL_AUTO, GEMINI_MODEL_ALIAS_PRO)).toBe(PREVIEW_GEMINI_MODEL);
101
+ });
102
+ it('should handle preview features being enabled', () => {
103
+ // If preview is enabled, resolving 'flash' without context (fallback) might switch to preview flash,
104
+ // but here we test explicit auto models which should stick to their families if possible?
105
+ // Actually our logic forces DEFAULT_GEMINI_FLASH_MODEL for DEFAULT_GEMINI_MODEL_AUTO even if preview is on,
106
+ // because the USER requested 2.5 explicitly via "auto-gemini-2.5".
107
+ expect(resolveClassifierModel(DEFAULT_GEMINI_MODEL_AUTO, GEMINI_MODEL_ALIAS_FLASH, true)).toBe(DEFAULT_GEMINI_FLASH_MODEL);
127
108
  });
128
109
  });
129
110
  //# sourceMappingURL=models.test.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"models.test.js","sourceRoot":"","sources":["../../../src/config/models.test.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,QAAQ,EAAE,EAAE,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAC9C,OAAO,EACL,iBAAiB,EACjB,oBAAoB,EACpB,oBAAoB,EACpB,0BAA0B,EAC1B,+BAA+B,EAC/B,sBAAsB,EACtB,wBAAwB,EACxB,6BAA6B,EAC7B,kCAAkC,GACnC,MAAM,aAAa,CAAC;AAErB,QAAQ,CAAC,oCAAoC,EAAE,GAAG,EAAE;IAClD,EAAE,CAAC,uCAAuC,EAAE,GAAG,EAAE;QAC/C,MAAM,CAAC,kCAAkC,CAAC,cAAc,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IACxE,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,yCAAyC,EAAE,GAAG,EAAE;QACjD,MAAM,CAAC,kCAAkC,CAAC,gBAAgB,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QACzE,MAAM,CAAC,kCAAkC,CAAC,kBAAkB,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IAC7E,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,sCAAsC,EAAE,GAAG,EAAE;QAC9C,MAAM,CAAC,kCAAkC,CAAC,kBAAkB,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QAC3E,MAAM,CAAC,kCAAkC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IAC7D,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC;AAEH,QAAQ,CAAC,mBAAmB,EAAE,GAAG,EAAE;IACjC,QAAQ,CAAC,2BAA2B,EAAE,GAAG,EAAE;QACzC,MAAM,gBAAgB,GAAG,KAAK,CAAC;QAE/B,EAAE,CAAC,mDAAmD,EAAE,GAAG,EAAE;YAC3D,MAAM,KAAK,GAAG,iBAAiB,CAC7B,gBAAgB,EAChB,oBAAoB,EACpB,KAAK,CACN,CAAC;YACF,MAAM,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,oBAAoB,CAAC,CAAC;QAC3C,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,uDAAuD,EAAE,GAAG,EAAE;YAC/D,MAAM,KAAK,GAAG,iBAAiB,CAC7B,gBAAgB,EAChB,0BAA0B,EAC1B,KAAK,CACN,CAAC;YACF,MAAM,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,0BAA0B,CAAC,CAAC;QACjD,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,qDAAqD,EAAE,GAAG,EAAE;YAC7D,MAAM,KAAK,GAAG,iBAAiB,CAC7B,gBAAgB,EAChB,+BAA+B,EAC/B,KAAK,CACN,CAAC;YACF,MAAM,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,+BAA+B,CAAC,CAAC;QACtD,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,kDAAkD,EAAE,GAAG,EAAE;YAC1D,MAAM,WAAW,GAAG,iBAAiB,CAAC;YACtC,MAAM,KAAK,GAAG,iBAAiB,CAAC,gBAAgB,EAAE,WAAW,EAAE,KAAK,CAAC,CAAC;YACtE,MAAM,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;QAClC,CAAC,CAAC,CAAC;QAEH,QAAQ,CAAC,uBAAuB,EAAE,GAAG,EAAE;YACrC,EAAE,CAAC,6DAA6D,EAAE,GAAG,EAAE;gBACrE,MAAM,KAAK,GAAG,iBAAiB,CAC7B,gBAAgB,EAChB,sBAAsB,EACtB,IAAI,CACL,CAAC;gBACF,MAAM,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,oBAAoB,CAAC,CAAC;YAC3C,CAAC,CAAC,CAAC;YAEH,EAAE,CAAC,oFAAoF,EAAE,GAAG,EAAE;gBAC5F,MAAM,KAAK,GAAG,iBAAiB,CAC7B,gBAAgB,EAChB,sBAAsB,EACtB,KAAK,CACN,CAAC;gBACF,MAAM,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,oBAAoB,CAAC,CAAC;YAC3C,CAAC,CAAC,CAAC;YAEH,EAAE,CAAC,yEAAyE,EAAE,GAAG,EAAE;gBACjF,MAAM,KAAK,GAAG,iBAAiB,CAC7B,gBAAgB,EAChB,wBAAwB,EACxB,IAAI,CACL,CAAC;gBACF,MAAM,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,0BAA0B,CAAC,CAAC;YACjD,CAAC,CAAC,CAAC;YAEH,EAAE,CAAC,wEAAwE,EAAE,GAAG,EAAE;gBAChF,MAAM,KAAK,GAAG,iBAAiB,CAC7B,gBAAgB,EAChB,6BAA6B,EAC7B,IAAI,CACL,CAAC;gBACF,MAAM,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,+BAA+B,CAAC,CAAC;YACtD,CAAC,CAAC,CAAC;YAEH,EAAE,CAAC,mGAAmG,EAAE,GAAG,EAAE;gBAC3G,MAAM,KAAK,GAAG,iBAAiB,CAC7B,gBAAgB,EAChB,0BAA0B,EAC1B,IAAI,CACL,CAAC;gBACF,MAAM,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,0BAA0B,CAAC,CAAC;YACjD,CAAC,CAAC,CAAC;YAEH,EAAE,CAAC,sFAAsF,EAAE,GAAG,EAAE;gBAC9F,MAAM,KAAK,GAAG,iBAAiB,CAC7B,gBAAgB,EAChB,+BAA+B,EAC/B,IAAI,CACL,CAAC;gBACF,MAAM,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,+BAA+B,CAAC,CAAC;YACtD,CAAC,CAAC,CAAC;YAEH,EAAE,CAAC,2FAA2F,EAAE,GAAG,EAAE;gBACnG,MAAM,KAAK,GAAG,iBAAiB,CAC7B,gBAAgB,EAChB,oBAAoB,EACpB,IAAI,CACL,CAAC;gBACF,MAAM,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,oBAAoB,CAAC,CAAC;YAC3C,CAAC,CAAC,CAAC;QACL,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,QAAQ,CAAC,uBAAuB,EAAE,GAAG,EAAE;QACrC,MAAM,gBAAgB,GAAG,IAAI,CAAC;QAE9B,EAAE,CAAC,mDAAmD,EAAE,GAAG,EAAE;YAC3D,MAAM,KAAK,GAAG,iBAAiB,CAC7B,gBAAgB,EAChB,oBAAoB,EACpB,KAAK,CACN,CAAC;YACF,MAAM,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,0BAA0B,CAAC,CAAC;QACjD,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,uDAAuD,EAAE,GAAG,EAAE;YAC/D,MAAM,KAAK,GAAG,iBAAiB,CAC7B,gBAAgB,EAChB,0BAA0B,EAC1B,KAAK,CACN,CAAC;YACF,MAAM,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,0BAA0B,CAAC,CAAC;QACjD,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,oDAAoD,EAAE,GAAG,EAAE;YAC5D,MAAM,KAAK,GAAG,iBAAiB,CAC7B,gBAAgB,EAChB,+BAA+B,EAC/B,KAAK,CACN,CAAC;YACF,MAAM,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,+BAA+B,CAAC,CAAC;QACtD,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,gDAAgD,EAAE,GAAG,EAAE;YACxD,MAAM,eAAe,GAAG,8BAA8B,CAAC;YACvD,MAAM,KAAK,GAAG,iBAAiB,CAAC,gBAAgB,EAAE,eAAe,EAAE,KAAK,CAAC,CAAC;YAC1E,MAAM,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC;QACtC,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,4DAA4D,EAAE,GAAG,EAAE;YACpE,MAAM,WAAW,GAAG,0BAA0B,CAAC;YAC/C,MAAM,KAAK,GAAG,iBAAiB,CAAC,gBAAgB,EAAE,WAAW,EAAE,KAAK,CAAC,CAAC;YACtE,MAAM,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,0BAA0B,CAAC,CAAC;QACjD,CAAC,CAAC,CAAC;QAEH,QAAQ,CAAC,uBAAuB,EAAE,GAAG,EAAE;YACrC,EAAE,CAAC,mDAAmD,EAAE,GAAG,EAAE;gBAC3D,MAAM,KAAK,GAAG,iBAAiB,CAC7B,gBAAgB,EAChB,sBAAsB,EACtB,IAAI,CACL,CAAC;gBACF,MAAM,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,0BAA0B,CAAC,CAAC;YACjD,CAAC,CAAC,CAAC;YAEH,EAAE,CAAC,8CAA8C,EAAE,GAAG,EAAE;gBACtD,MAAM,KAAK,GAAG,iBAAiB,CAC7B,gBAAgB,EAChB,wBAAwB,EACxB,IAAI,CACL,CAAC;gBACF,MAAM,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,0BAA0B,CAAC,CAAC;YACjD,CAAC,CAAC,CAAC;YAEH,EAAE,CAAC,6CAA6C,EAAE,GAAG,EAAE;gBACrD,MAAM,KAAK,GAAG,iBAAiB,CAC7B,gBAAgB,EAChB,6BAA6B,EAC7B,IAAI,CACL,CAAC;gBACF,MAAM,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,+BAA+B,CAAC,CAAC;YACtD,CAAC,CAAC,CAAC;YAEH,EAAE,CAAC,8DAA8D,EAAE,GAAG,EAAE;gBACtE,MAAM,KAAK,GAAG,iBAAiB,CAC7B,gBAAgB,EAChB,oBAAoB,EACpB,IAAI,CACL,CAAC;gBACF,MAAM,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,0BAA0B,CAAC,CAAC;YACjD,CAAC,CAAC,CAAC;YAEH,EAAE,CAAC,sDAAsD,EAAE,GAAG,EAAE;gBAC9D,MAAM,KAAK,GAAG,iBAAiB,CAC7B,gBAAgB,EAChB,0BAA0B,EAC1B,IAAI,CACL,CAAC;gBACF,MAAM,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,0BAA0B,CAAC,CAAC;YACjD,CAAC,CAAC,CAAC;YAEH,EAAE,CAAC,qDAAqD,EAAE,GAAG,EAAE;gBAC7D,MAAM,KAAK,GAAG,iBAAiB,CAC7B,gBAAgB,EAChB,+BAA+B,EAC/B,IAAI,CACL,CAAC;gBACF,MAAM,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,+BAA+B,CAAC,CAAC;YACtD,CAAC,CAAC,CAAC;YAEH,EAAE,CAAC,4DAA4D,EAAE,GAAG,EAAE;gBACpE,MAAM,WAAW,GAAG,0BAA0B,CAAC;gBAC/C,MAAM,KAAK,GAAG,iBAAiB,CAAC,gBAAgB,EAAE,WAAW,EAAE,IAAI,CAAC,CAAC;gBACrE,MAAM,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,0BAA0B,CAAC,CAAC;YACjD,CAAC,CAAC,CAAC;QACL,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
1
+ {"version":3,"file":"models.test.js","sourceRoot":"","sources":["../../../src/config/models.test.ts"],"names":[],"mappings":"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"}
@@ -6,6 +6,7 @@
6
6
  import type { Content, Part, GenerateContentResponse } from '@google/genai';
7
7
  import type { Config } from '../config/config.js';
8
8
  import type { ContentGenerator } from './contentGenerator.js';
9
+ import type { AuthType } from './contentGenerator.js';
9
10
  import type { ModelConfigKey } from '../services/modelConfigService.js';
10
11
  /**
11
12
  * Options for the generateJson utility function.
@@ -63,7 +64,8 @@ export interface GenerateContentOptions {
63
64
  export declare class BaseLlmClient {
64
65
  private readonly contentGenerator;
65
66
  private readonly config;
66
- constructor(contentGenerator: ContentGenerator, config: Config);
67
+ private readonly authType?;
68
+ constructor(contentGenerator: ContentGenerator, config: Config, authType?: AuthType | undefined);
67
69
  generateJson(options: GenerateJsonOptions): Promise<Record<string, unknown>>;
68
70
  generateEmbedding(texts: string[]): Promise<number[][]>;
69
71
  private cleanJsonResponse;
@@ -3,6 +3,7 @@
3
3
  * Copyright 2025 Google LLC
4
4
  * SPDX-License-Identifier: Apache-2.0
5
5
  */
6
+ import { handleFallback } from '../fallback/handler.js';
6
7
  import { getResponseText } from '../utils/partUtils.js';
7
8
  import { reportError } from '../utils/errorReporting.js';
8
9
  import { getErrorMessage } from '../utils/errors.js';
@@ -17,13 +18,15 @@ const DEFAULT_MAX_ATTEMPTS = 5;
17
18
  export class BaseLlmClient {
18
19
  contentGenerator;
19
20
  config;
20
- constructor(contentGenerator, config) {
21
+ authType;
22
+ constructor(contentGenerator, config, authType) {
21
23
  this.contentGenerator = contentGenerator;
22
24
  this.config = config;
25
+ this.authType = authType;
23
26
  }
24
27
  async generateJson(options) {
25
28
  const { schema, modelConfigKey, contents, systemInstruction, abortSignal, promptId, maxAttempts, } = options;
26
- const { model, generateContentConfig } = this.config.modelConfigService.getResolvedConfig(modelConfigKey);
29
+ const { model } = this.config.modelConfigService.getResolvedConfig(modelConfigKey);
27
30
  const shouldRetryOnContent = (response) => {
28
31
  const text = getResponseText(response)?.trim();
29
32
  if (!text) {
@@ -39,16 +42,17 @@ export class BaseLlmClient {
39
42
  }
40
43
  };
41
44
  const result = await this._generateWithRetry({
42
- model,
45
+ modelConfigKey,
43
46
  contents,
44
- config: {
45
- ...generateContentConfig,
46
- ...(systemInstruction && { systemInstruction }),
47
+ abortSignal,
48
+ promptId,
49
+ maxAttempts,
50
+ systemInstruction,
51
+ additionalProperties: {
47
52
  responseJsonSchema: schema,
48
53
  responseMimeType: 'application/json',
49
- abortSignal,
50
54
  },
51
- }, promptId, maxAttempts, shouldRetryOnContent, 'generateJson');
55
+ }, shouldRetryOnContent, 'generateJson');
52
56
  // If we are here, the content is valid (not empty and parsable).
53
57
  return JSON.parse(this.cleanJsonResponse(getResponseText(result).trim(), model));
54
58
  }
@@ -87,57 +91,61 @@ export class BaseLlmClient {
87
91
  }
88
92
  async generateContent(options) {
89
93
  const { modelConfigKey, contents, systemInstruction, abortSignal, promptId, maxAttempts, } = options;
90
- const { model, generateContentConfig } = this.config.modelConfigService.getResolvedConfig(modelConfigKey);
91
94
  const shouldRetryOnContent = (response) => {
92
95
  const text = getResponseText(response)?.trim();
93
96
  return !text; // Retry on empty response
94
97
  };
95
98
  return this._generateWithRetry({
96
- model,
99
+ modelConfigKey,
97
100
  contents,
98
- config: {
99
- ...generateContentConfig,
100
- ...(systemInstruction && { systemInstruction }),
101
- abortSignal,
102
- },
103
- }, promptId, maxAttempts, shouldRetryOnContent, 'generateContent');
101
+ systemInstruction,
102
+ abortSignal,
103
+ promptId,
104
+ maxAttempts,
105
+ }, shouldRetryOnContent, 'generateContent');
104
106
  }
105
- async _generateWithRetry(requestParams, promptId, maxAttempts, shouldRetryOnContent, errorContext) {
106
- const abortSignal = requestParams.config?.abortSignal;
107
+ async _generateWithRetry(options, shouldRetryOnContent, errorContext) {
108
+ const { modelConfigKey, contents, systemInstruction, abortSignal, promptId, maxAttempts, additionalProperties, } = options;
109
+ const { model, config: generateContentConfig, maxAttempts: availabilityMaxAttempts, } = applyModelSelection(this.config, modelConfigKey);
110
+ let currentModel = model;
111
+ let currentGenerateContentConfig = generateContentConfig;
107
112
  // Define callback to fetch context dynamically since active model may get updated during retry loop
108
- const getAvailabilityContext = createAvailabilityContextProvider(this.config, () => requestParams.model);
109
- const { model, config: newConfig, maxAttempts: availabilityMaxAttempts, } = applyModelSelection(this.config, requestParams.model, requestParams.config);
110
- requestParams.model = model;
111
- if (newConfig) {
112
- requestParams.config = newConfig;
113
- }
114
- if (abortSignal) {
115
- requestParams.config = { ...requestParams.config, abortSignal };
116
- }
113
+ const getAvailabilityContext = createAvailabilityContextProvider(this.config, () => currentModel);
117
114
  try {
118
115
  const apiCall = () => {
119
- // If availability is enabled, ensure we use the current active model
116
+ // Ensure we use the current active model
120
117
  // in case a fallback occurred in a previous attempt.
121
- if (this.config.isModelAvailabilityServiceEnabled()) {
122
- const activeModel = this.config.getActiveModel();
123
- if (activeModel !== requestParams.model) {
124
- requestParams.model = activeModel;
125
- // Re-resolve config if model changed during retry
126
- const { generateContentConfig } = this.config.modelConfigService.getResolvedConfig({
127
- model: activeModel,
128
- });
129
- requestParams.config = {
130
- ...requestParams.config,
131
- ...generateContentConfig,
132
- };
133
- }
118
+ const activeModel = this.config.getActiveModel();
119
+ if (activeModel !== currentModel) {
120
+ currentModel = activeModel;
121
+ // Re-resolve config if model changed during retry
122
+ const { generateContentConfig } = this.config.modelConfigService.getResolvedConfig({
123
+ ...modelConfigKey,
124
+ model: activeModel,
125
+ });
126
+ currentGenerateContentConfig = generateContentConfig;
134
127
  }
128
+ const finalConfig = {
129
+ ...currentGenerateContentConfig,
130
+ ...(systemInstruction && { systemInstruction }),
131
+ ...additionalProperties,
132
+ abortSignal,
133
+ };
134
+ const requestParams = {
135
+ model: currentModel,
136
+ config: finalConfig,
137
+ contents,
138
+ };
135
139
  return this.contentGenerator.generateContent(requestParams, promptId);
136
140
  };
137
141
  return await retryWithBackoff(apiCall, {
138
142
  shouldRetryOnContent,
139
143
  maxAttempts: availabilityMaxAttempts ?? maxAttempts ?? DEFAULT_MAX_ATTEMPTS,
140
144
  getAvailabilityContext,
145
+ onPersistent429: this.config.isInteractive()
146
+ ? (authType, error) => handleFallback(this.config, currentModel, authType, error)
147
+ : undefined,
148
+ authType: this.authType ?? this.config.getContentGeneratorConfig()?.authType,
141
149
  });
142
150
  }
143
151
  catch (error) {
@@ -147,10 +155,10 @@ export class BaseLlmClient {
147
155
  // Check if the error is from exhausting retries, and report accordingly.
148
156
  if (error instanceof Error &&
149
157
  error.message.includes('Retry attempts exhausted')) {
150
- await reportError(error, `API returned invalid content after all retries.`, requestParams.contents, `${errorContext}-invalid-content`);
158
+ await reportError(error, `API returned invalid content after all retries.`, contents, `${errorContext}-invalid-content`);
151
159
  }
152
160
  else {
153
- await reportError(error, `Error generating content via API.`, requestParams.contents, `${errorContext}-api`);
161
+ await reportError(error, `Error generating content via API.`, contents, `${errorContext}-api`);
154
162
  }
155
163
  throw new Error(`Failed to generate content: ${getErrorMessage(error)}`);
156
164
  }
@@ -1 +1 @@
1
- {"version":3,"file":"baseLlmClient.js","sourceRoot":"","sources":["../../../src/core/baseLlmClient.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"baseLlmClient.js","sourceRoot":"","sources":["../../../src/core/baseLlmClient.ts"],"names":[],"mappings":"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"}
@@ -78,12 +78,12 @@ describe('BaseLlmClient', () => {
78
78
  .fn()
79
79
  .mockImplementation(({ model }) => makeResolvedModelConfig(model)),
80
80
  },
81
- isModelAvailabilityServiceEnabled: vi.fn().mockReturnValue(false),
82
- getModelAvailabilityService: vi.fn(),
81
+ getModelAvailabilityService: vi
82
+ .fn()
83
+ .mockReturnValue(createAvailabilityServiceMock()),
83
84
  setActiveModel: vi.fn(),
84
85
  getPreviewFeatures: vi.fn().mockReturnValue(false),
85
86
  getUserTier: vi.fn().mockReturnValue(undefined),
86
- isInFallbackMode: vi.fn().mockReturnValue(false),
87
87
  getModel: vi.fn().mockReturnValue('test-model'),
88
88
  getActiveModel: vi.fn().mockReturnValue('test-model'),
89
89
  };
@@ -410,9 +410,6 @@ describe('BaseLlmClient', () => {
410
410
  let contentOptions;
411
411
  let jsonOptions;
412
412
  beforeEach(() => {
413
- mockConfig.isModelAvailabilityServiceEnabled = vi
414
- .fn()
415
- .mockReturnValue(true);
416
413
  mockAvailabilityService = createAvailabilityServiceMock({
417
414
  selectedModel: 'test-model',
418
415
  skipped: [],
@@ -435,16 +432,6 @@ describe('BaseLlmClient', () => {
435
432
  promptId: 'json-prompt-id',
436
433
  };
437
434
  });
438
- it('should preserve legacy behavior when availability is disabled', async () => {
439
- mockConfig.isModelAvailabilityServiceEnabled = vi
440
- .fn()
441
- .mockReturnValue(false);
442
- mockGenerateContent.mockResolvedValue(createMockResponse('Some text response'));
443
- await client.generateContent(contentOptions);
444
- expect(mockAvailabilityService.selectFirstAvailable).not.toHaveBeenCalled();
445
- expect(mockConfig.setActiveModel).not.toHaveBeenCalled();
446
- expect(mockAvailabilityService.markHealthy).not.toHaveBeenCalled();
447
- });
448
435
  it('should mark model as healthy on success', async () => {
449
436
  const successfulModel = 'gemini-pro';
450
437
  vi.mocked(mockAvailabilityService.selectFirstAvailable).mockReturnValue({
@@ -535,9 +522,15 @@ describe('BaseLlmClient', () => {
535
522
  const fallbackModel = 'gemini-flash';
536
523
  // Provide distinct configs per model
537
524
  const getResolvedConfigMock = vi.mocked(mockConfig.modelConfigService.getResolvedConfig);
538
- getResolvedConfigMock
539
- .mockReturnValueOnce(makeResolvedModelConfig(firstModel, { temperature: 0.1 }))
540
- .mockReturnValueOnce(makeResolvedModelConfig(fallbackModel, { temperature: 0.9 }));
525
+ getResolvedConfigMock.mockImplementation((key) => {
526
+ if (key.model === firstModel) {
527
+ return makeResolvedModelConfig(firstModel, { temperature: 0.1 });
528
+ }
529
+ if (key.model === fallbackModel) {
530
+ return makeResolvedModelConfig(fallbackModel, { temperature: 0.9 });
531
+ }
532
+ return makeResolvedModelConfig(key.model);
533
+ });
541
534
  // Availability selects the first model initially
542
535
  vi.mocked(mockAvailabilityService.selectFirstAvailable).mockReturnValue({
543
536
  selectedModel: firstModel,
@@ -1 +1 @@
1
- {"version":3,"file":"baseLlmClient.test.js","sourceRoot":"","sources":["../../../src/core/baseLlmClient.test.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"baseLlmClient.test.js","sourceRoot":"","sources":["../../../src/core/baseLlmClient.test.ts"],"names":[],"mappings":"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"}