@google/gemini-cli-core 0.21.0-nightly.20251217.db643e916 → 0.21.0-nightly.20251219.70696e364

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 (212) hide show
  1. package/dist/google-gemini-cli-core-0.21.0-nightly.20251218.739c02bd6.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 -11
  15. package/dist/src/agents/{executor.js → local-executor.js} +75 -51
  16. package/dist/src/agents/local-executor.js.map +1 -0
  17. package/dist/src/agents/{executor.test.js → local-executor.test.js} +61 -45
  18. package/dist/src/agents/local-executor.test.js.map +1 -0
  19. package/dist/src/agents/{invocation.d.ts → local-invocation.d.ts} +5 -6
  20. package/dist/src/agents/{invocation.js → local-invocation.js} +8 -9
  21. package/dist/src/agents/local-invocation.js.map +1 -0
  22. package/dist/src/agents/{invocation.test.js → local-invocation.test.js} +18 -17
  23. package/dist/src/agents/local-invocation.test.js.map +1 -0
  24. package/dist/src/agents/registry.d.ts +1 -0
  25. package/dist/src/agents/registry.js +77 -28
  26. package/dist/src/agents/registry.js.map +1 -1
  27. package/dist/src/agents/registry.test.js +130 -5
  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.d.ts +6 -0
  33. package/dist/src/agents/remote-invocation.test.js +35 -0
  34. package/dist/src/agents/remote-invocation.test.js.map +1 -0
  35. package/dist/src/agents/subagent-tool-wrapper.js +7 -3
  36. package/dist/src/agents/subagent-tool-wrapper.js.map +1 -1
  37. package/dist/src/agents/subagent-tool-wrapper.test.js +10 -9
  38. package/dist/src/agents/subagent-tool-wrapper.test.js.map +1 -1
  39. package/dist/src/agents/toml-loader.d.ts +65 -0
  40. package/dist/src/agents/toml-loader.js +176 -0
  41. package/dist/src/agents/toml-loader.js.map +1 -0
  42. package/dist/src/agents/toml-loader.test.d.ts +6 -0
  43. package/dist/src/agents/toml-loader.test.js +190 -0
  44. package/dist/src/agents/toml-loader.test.js.map +1 -0
  45. package/dist/src/agents/types.d.ts +12 -4
  46. package/dist/src/availability/modelAvailabilityService.d.ts +2 -1
  47. package/dist/src/availability/policyCatalog.d.ts +1 -0
  48. package/dist/src/availability/policyCatalog.js +6 -8
  49. package/dist/src/availability/policyCatalog.js.map +1 -1
  50. package/dist/src/availability/policyCatalog.test.js +2 -2
  51. package/dist/src/availability/policyCatalog.test.js.map +1 -1
  52. package/dist/src/availability/policyHelpers.d.ts +9 -5
  53. package/dist/src/availability/policyHelpers.js +43 -37
  54. package/dist/src/availability/policyHelpers.js.map +1 -1
  55. package/dist/src/availability/policyHelpers.test.js +58 -20
  56. package/dist/src/availability/policyHelpers.test.js.map +1 -1
  57. package/dist/src/code_assist/oauth2.js +1 -1
  58. package/dist/src/code_assist/oauth2.js.map +1 -1
  59. package/dist/src/code_assist/oauth2.test.js +6 -8
  60. package/dist/src/code_assist/oauth2.test.js.map +1 -1
  61. package/dist/src/code_assist/server.js +3 -9
  62. package/dist/src/code_assist/server.js.map +1 -1
  63. package/dist/src/code_assist/server.test.js +18 -3
  64. package/dist/src/code_assist/server.test.js.map +1 -1
  65. package/dist/src/code_assist/telemetry.d.ts +6 -1
  66. package/dist/src/code_assist/telemetry.js +92 -3
  67. package/dist/src/code_assist/telemetry.js.map +1 -1
  68. package/dist/src/code_assist/telemetry.test.js +206 -18
  69. package/dist/src/code_assist/telemetry.test.js.map +1 -1
  70. package/dist/src/config/config.d.ts +9 -13
  71. package/dist/src/config/config.js +68 -38
  72. package/dist/src/config/config.js.map +1 -1
  73. package/dist/src/config/config.test.js +134 -22
  74. package/dist/src/config/config.test.js.map +1 -1
  75. package/dist/src/config/defaultModelConfigs.js +11 -0
  76. package/dist/src/config/defaultModelConfigs.js.map +1 -1
  77. package/dist/src/config/flashFallback.test.js +0 -37
  78. package/dist/src/config/flashFallback.test.js.map +1 -1
  79. package/dist/src/config/models.d.ts +23 -10
  80. package/dist/src/config/models.js +65 -23
  81. package/dist/src/config/models.js.map +1 -1
  82. package/dist/src/config/models.test.js +57 -76
  83. package/dist/src/config/models.test.js.map +1 -1
  84. package/dist/src/config/storage.d.ts +2 -0
  85. package/dist/src/config/storage.js +6 -0
  86. package/dist/src/config/storage.js.map +1 -1
  87. package/dist/src/config/storage.test.js +8 -0
  88. package/dist/src/config/storage.test.js.map +1 -1
  89. package/dist/src/core/baseLlmClient.d.ts +3 -1
  90. package/dist/src/core/baseLlmClient.js +51 -43
  91. package/dist/src/core/baseLlmClient.js.map +1 -1
  92. package/dist/src/core/baseLlmClient.test.js +12 -19
  93. package/dist/src/core/baseLlmClient.test.js.map +1 -1
  94. package/dist/src/core/client.js +18 -33
  95. package/dist/src/core/client.js.map +1 -1
  96. package/dist/src/core/client.test.js +14 -65
  97. package/dist/src/core/client.test.js.map +1 -1
  98. package/dist/src/core/contentGenerator.js +1 -1
  99. package/dist/src/core/contentGenerator.js.map +1 -1
  100. package/dist/src/core/contentGenerator.test.js +0 -6
  101. package/dist/src/core/contentGenerator.test.js.map +1 -1
  102. package/dist/src/core/geminiChat.js +29 -88
  103. package/dist/src/core/geminiChat.js.map +1 -1
  104. package/dist/src/core/geminiChat.test.js +35 -257
  105. package/dist/src/core/geminiChat.test.js.map +1 -1
  106. package/dist/src/core/geminiChat_network_retry.test.js +6 -6
  107. package/dist/src/core/geminiChat_network_retry.test.js.map +1 -1
  108. package/dist/src/core/prompts.js +6 -7
  109. package/dist/src/core/prompts.js.map +1 -1
  110. package/dist/src/core/prompts.test.js +10 -7
  111. package/dist/src/core/prompts.test.js.map +1 -1
  112. package/dist/src/core/turn.d.ts +1 -0
  113. package/dist/src/core/turn.js +3 -2
  114. package/dist/src/core/turn.js.map +1 -1
  115. package/dist/src/fallback/handler.js +54 -121
  116. package/dist/src/fallback/handler.js.map +1 -1
  117. package/dist/src/fallback/handler.test.js +80 -285
  118. package/dist/src/fallback/handler.test.js.map +1 -1
  119. package/dist/src/generated/git-commit.d.ts +2 -2
  120. package/dist/src/generated/git-commit.js +2 -2
  121. package/dist/src/hooks/hookPlanner.js +3 -1
  122. package/dist/src/hooks/hookPlanner.js.map +1 -1
  123. package/dist/src/hooks/hookPlanner.test.js +61 -0
  124. package/dist/src/hooks/hookPlanner.test.js.map +1 -1
  125. package/dist/src/hooks/hookRegistry.d.ts +1 -1
  126. package/dist/src/hooks/hookRegistry.js +2 -2
  127. package/dist/src/hooks/hookRegistry.js.map +1 -1
  128. package/dist/src/hooks/hookRegistry.test.js +73 -0
  129. package/dist/src/hooks/hookRegistry.test.js.map +1 -1
  130. package/dist/src/hooks/hookRunner.js +2 -2
  131. package/dist/src/hooks/hookRunner.js.map +1 -1
  132. package/dist/src/hooks/hookRunner.test.js +23 -0
  133. package/dist/src/hooks/hookRunner.test.js.map +1 -1
  134. package/dist/src/hooks/types.d.ts +2 -0
  135. package/dist/src/hooks/types.js.map +1 -1
  136. package/dist/src/index.d.ts +2 -0
  137. package/dist/src/index.js +2 -0
  138. package/dist/src/index.js.map +1 -1
  139. package/dist/src/routing/modelRouterService.js +0 -15
  140. package/dist/src/routing/modelRouterService.js.map +1 -1
  141. package/dist/src/routing/modelRouterService.test.js +0 -62
  142. package/dist/src/routing/modelRouterService.test.js.map +1 -1
  143. package/dist/src/routing/strategies/classifierStrategy.js +10 -21
  144. package/dist/src/routing/strategies/classifierStrategy.js.map +1 -1
  145. package/dist/src/routing/strategies/classifierStrategy.test.js +2 -1
  146. package/dist/src/routing/strategies/classifierStrategy.test.js.map +1 -1
  147. package/dist/src/routing/strategies/fallbackStrategy.js +20 -12
  148. package/dist/src/routing/strategies/fallbackStrategy.js.map +1 -1
  149. package/dist/src/routing/strategies/fallbackStrategy.test.js +63 -39
  150. package/dist/src/routing/strategies/fallbackStrategy.test.js.map +1 -1
  151. package/dist/src/routing/strategies/overrideStrategy.js +4 -3
  152. package/dist/src/routing/strategies/overrideStrategy.js.map +1 -1
  153. package/dist/src/services/chatCompressionService.js +3 -1
  154. package/dist/src/services/chatCompressionService.js.map +1 -1
  155. package/dist/src/services/loopDetectionService.js +2 -1
  156. package/dist/src/services/loopDetectionService.js.map +1 -1
  157. package/dist/src/services/loopDetectionService.test.js +14 -8
  158. package/dist/src/services/loopDetectionService.test.js.map +1 -1
  159. package/dist/src/services/modelConfig.integration.test.js +1 -1
  160. package/dist/src/services/modelConfig.integration.test.js.map +1 -1
  161. package/dist/src/services/shellExecutionService.js +18 -2
  162. package/dist/src/services/shellExecutionService.js.map +1 -1
  163. package/dist/src/services/test-data/resolved-aliases-retry.golden.json +16 -0
  164. package/dist/src/services/test-data/resolved-aliases.golden.json +16 -0
  165. package/dist/src/telemetry/sdk.js +2 -2
  166. package/dist/src/telemetry/sdk.js.map +1 -1
  167. package/dist/src/tools/ripGrep.js +2 -2
  168. package/dist/src/tools/ripGrep.js.map +1 -1
  169. package/dist/src/tools/tool-names.d.ts +13 -0
  170. package/dist/src/tools/tool-names.js +54 -0
  171. package/dist/src/tools/tool-names.js.map +1 -1
  172. package/dist/src/tools/tool-names.test.d.ts +6 -0
  173. package/dist/src/tools/tool-names.test.js +43 -0
  174. package/dist/src/tools/tool-names.test.js.map +1 -0
  175. package/dist/src/tools/tool-registry.d.ts +0 -1
  176. package/dist/src/tools/tool-registry.js +1 -1
  177. package/dist/src/tools/tool-registry.js.map +1 -1
  178. package/dist/src/tools/tool-registry.test.js +2 -1
  179. package/dist/src/tools/tool-registry.test.js.map +1 -1
  180. package/dist/src/utils/checkpointUtils.js +1 -1
  181. package/dist/src/utils/checkpointUtils.js.map +1 -1
  182. package/dist/src/utils/checkpointUtils.test.js +1 -1
  183. package/dist/src/utils/checkpointUtils.test.js.map +1 -1
  184. package/dist/src/utils/editCorrector.js +1 -1
  185. package/dist/src/utils/editCorrector.js.map +1 -1
  186. package/dist/src/utils/editCorrector.test.js +2 -2
  187. package/dist/src/utils/editCorrector.test.js.map +1 -1
  188. package/dist/src/utils/environmentContext.d.ts +1 -0
  189. package/dist/src/utils/environmentContext.js +1 -0
  190. package/dist/src/utils/environmentContext.js.map +1 -1
  191. package/dist/src/utils/events.d.ts +0 -16
  192. package/dist/src/utils/events.js +0 -9
  193. package/dist/src/utils/events.js.map +1 -1
  194. package/dist/src/utils/flashFallback.test.js +1 -1
  195. package/dist/src/utils/flashFallback.test.js.map +1 -1
  196. package/dist/src/utils/googleQuotaErrors.js +20 -0
  197. package/dist/src/utils/googleQuotaErrors.js.map +1 -1
  198. package/dist/src/utils/googleQuotaErrors.test.js +53 -2
  199. package/dist/src/utils/googleQuotaErrors.test.js.map +1 -1
  200. package/dist/src/utils/retry.js +2 -16
  201. package/dist/src/utils/retry.js.map +1 -1
  202. package/dist/src/utils/retry.test.js +7 -22
  203. package/dist/src/utils/retry.test.js.map +1 -1
  204. package/dist/tsconfig.tsbuildinfo +1 -1
  205. package/package.json +1 -6
  206. package/dist/google-gemini-cli-core-0.21.0-nightly.20251216.bb0c0d8ee.tgz +0 -0
  207. package/dist/src/agents/executor.js.map +0 -1
  208. package/dist/src/agents/executor.test.js.map +0 -1
  209. package/dist/src/agents/invocation.js.map +0 -1
  210. package/dist/src/agents/invocation.test.js.map +0 -1
  211. /package/dist/src/agents/{executor.test.d.ts → local-executor.test.d.ts} +0 -0
  212. /package/dist/src/agents/{invocation.test.d.ts → local-invocation.test.d.ts} +0 -0
@@ -91,7 +91,7 @@ export class Turn {
91
91
  // Handle function calls (requesting tool execution)
92
92
  const functionCalls = resp.functionCalls ?? [];
93
93
  for (const fnCall of functionCalls) {
94
- const event = this.handlePendingFunctionCall(fnCall);
94
+ const event = this.handlePendingFunctionCall(fnCall, traceId);
95
95
  if (event) {
96
96
  yield event;
97
97
  }
@@ -155,7 +155,7 @@ export class Turn {
155
155
  return;
156
156
  }
157
157
  }
158
- handlePendingFunctionCall(fnCall) {
158
+ handlePendingFunctionCall(fnCall, traceId) {
159
159
  const callId = fnCall.id ??
160
160
  `${fnCall.name}-${Date.now()}-${Math.random().toString(16).slice(2)}`;
161
161
  const name = fnCall.name || 'undefined_tool_name';
@@ -166,6 +166,7 @@ export class Turn {
166
166
  args,
167
167
  isClientInitiated: false,
168
168
  prompt_id: this.prompt_id,
169
+ traceId,
169
170
  };
170
171
  this.pendingToolCalls.push(toolCallRequest);
171
172
  // Yield a request for the tool call, not the pending/confirming status
@@ -1 +1 @@
1
- {"version":3,"file":"turn.js","sourceRoot":"","sources":["../../../src/core/turn.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"turn.js","sourceRoot":"","sources":["../../../src/core/turn.ts"],"names":[],"mappings":"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"}
@@ -4,64 +4,14 @@
4
4
  * SPDX-License-Identifier: Apache-2.0
5
5
  */
6
6
  import { AuthType } from '../core/contentGenerator.js';
7
- import { DEFAULT_GEMINI_FLASH_MODEL, DEFAULT_GEMINI_MODEL, PREVIEW_GEMINI_MODEL, } from '../config/models.js';
8
- import { logFlashFallback, FlashFallbackEvent } from '../telemetry/index.js';
9
7
  import { openBrowserSecurely } from '../utils/secure-browser-launcher.js';
10
8
  import { debugLogger } from '../utils/debugLogger.js';
11
9
  import { getErrorMessage } from '../utils/errors.js';
12
- import { ModelNotFoundError } from '../utils/httpErrors.js';
13
- import { TerminalQuotaError } from '../utils/googleQuotaErrors.js';
14
- import { coreEvents } from '../utils/events.js';
15
10
  import { classifyFailureKind } from '../availability/errorClassification.js';
16
- import { buildFallbackPolicyContext, resolvePolicyChain, resolvePolicyAction, } from '../availability/policyHelpers.js';
11
+ import { buildFallbackPolicyContext, resolvePolicyChain, resolvePolicyAction, applyAvailabilityTransition, } from '../availability/policyHelpers.js';
17
12
  const UPGRADE_URL_PAGE = 'https://goo.gle/set-up-gemini-code-assist';
18
13
  export async function handleFallback(config, failedModel, authType, error) {
19
- if (config.isModelAvailabilityServiceEnabled()) {
20
- return handlePolicyDrivenFallback(config, failedModel, authType, error);
21
- }
22
- return legacyHandleFallback(config, failedModel, authType, error);
23
- }
24
- /**
25
- * Old fallback logic relying on hard coded strings
26
- */
27
- async function legacyHandleFallback(config, failedModel, authType, error) {
28
- if (authType !== AuthType.LOGIN_WITH_GOOGLE)
29
- return null;
30
- // Guardrail: If it's a ModelNotFoundError but NOT the preview model, do not handle it.
31
- if (error instanceof ModelNotFoundError &&
32
- failedModel !== PREVIEW_GEMINI_MODEL) {
33
- return null;
34
- }
35
- const shouldActivatePreviewFallback = failedModel === PREVIEW_GEMINI_MODEL &&
36
- !(error instanceof TerminalQuotaError);
37
- // Preview Model Specific Logic
38
- if (shouldActivatePreviewFallback) {
39
- // Always set bypass mode for the immediate retry, for non-TerminalQuotaErrors.
40
- // This ensures the next attempt uses 2.5 Pro.
41
- config.setPreviewModelBypassMode(true);
42
- // If we are already in Preview Model fallback mode (user previously said "Always"),
43
- // we silently retry (which will use 2.5 Pro due to bypass mode).
44
- if (config.isPreviewModelFallbackMode()) {
45
- return true;
46
- }
47
- }
48
- const fallbackModel = shouldActivatePreviewFallback
49
- ? DEFAULT_GEMINI_MODEL
50
- : DEFAULT_GEMINI_FLASH_MODEL;
51
- // Consult UI Handler for Intent
52
- const fallbackModelHandler = config.fallbackModelHandler;
53
- if (typeof fallbackModelHandler !== 'function')
54
- return null;
55
- try {
56
- // Pass the specific failed model to the UI handler.
57
- const intent = await fallbackModelHandler(failedModel, fallbackModel, error);
58
- // Process Intent and Update State
59
- return await processIntent(config, intent, failedModel, fallbackModel, authType, error);
60
- }
61
- catch (handlerError) {
62
- console.error('Fallback UI handler failed:', handlerError);
63
- return null;
64
- }
14
+ return handlePolicyDrivenFallback(config, failedModel, authType, error);
65
15
  }
66
16
  /**
67
17
  * New fallback logic using the ModelAvailabilityService
@@ -73,39 +23,58 @@ async function handlePolicyDrivenFallback(config, failedModel, authType, error)
73
23
  const chain = resolvePolicyChain(config);
74
24
  const { failedPolicy, candidates } = buildFallbackPolicyContext(chain, failedModel);
75
25
  const failureKind = classifyFailureKind(error);
76
- if (!candidates.length) {
77
- return null;
78
- }
79
26
  const availability = config.getModelAvailabilityService();
80
- const selection = availability.selectFirstAvailable(candidates.map((policy) => policy.model));
81
- const lastResortPolicy = candidates.find((policy) => policy.isLastResort);
82
- const fallbackModel = selection.selectedModel ?? lastResortPolicy?.model;
83
- const selectedPolicy = candidates.find((policy) => policy.model === fallbackModel);
84
- if (!fallbackModel || fallbackModel === failedModel || !selectedPolicy) {
85
- return null;
86
- }
87
- // failureKind is already declared and calculated above
88
- const action = resolvePolicyAction(failureKind, selectedPolicy);
89
- if (action === 'silent') {
90
- return processIntent(config, 'retry_always', failedModel, fallbackModel, authType, error);
91
- }
92
- // This will be used in the future when FallbackRecommendation is passed through UI
93
- const recommendation = {
94
- ...selection,
95
- selectedModel: fallbackModel,
96
- action,
97
- failureKind,
98
- failedPolicy,
99
- selectedPolicy,
27
+ const getAvailabilityContext = () => {
28
+ if (!failedPolicy)
29
+ return undefined;
30
+ return { service: availability, policy: failedPolicy };
100
31
  };
101
- void recommendation;
32
+ let fallbackModel;
33
+ if (!candidates.length) {
34
+ fallbackModel = failedModel;
35
+ }
36
+ else {
37
+ const selection = availability.selectFirstAvailable(candidates.map((policy) => policy.model));
38
+ const lastResortPolicy = candidates.find((policy) => policy.isLastResort);
39
+ const selectedFallbackModel = selection.selectedModel ?? lastResortPolicy?.model;
40
+ const selectedPolicy = candidates.find((policy) => policy.model === selectedFallbackModel);
41
+ if (!selectedFallbackModel ||
42
+ selectedFallbackModel === failedModel ||
43
+ !selectedPolicy) {
44
+ return null;
45
+ }
46
+ fallbackModel = selectedFallbackModel;
47
+ // failureKind is already declared and calculated above
48
+ const action = resolvePolicyAction(failureKind, selectedPolicy);
49
+ if (action === 'silent') {
50
+ applyAvailabilityTransition(getAvailabilityContext, failureKind);
51
+ return processIntent(config, 'retry_always', fallbackModel);
52
+ }
53
+ // This will be used in the future when FallbackRecommendation is passed through UI
54
+ const recommendation = {
55
+ ...selection,
56
+ selectedModel: fallbackModel,
57
+ action,
58
+ failureKind,
59
+ failedPolicy,
60
+ selectedPolicy,
61
+ };
62
+ void recommendation;
63
+ }
102
64
  const handler = config.getFallbackModelHandler();
103
65
  if (typeof handler !== 'function') {
104
66
  return null;
105
67
  }
106
68
  try {
107
69
  const intent = await handler(failedModel, fallbackModel, error);
108
- return await processIntent(config, intent, failedModel, fallbackModel, authType, error);
70
+ // If the user chose to switch/retry, we apply the availability transition
71
+ // to the failed model (e.g. marking it terminal if it had a quota error).
72
+ // We DO NOT apply it if the user chose 'stop' or 'retry_later', allowing
73
+ // them to try again later with the same model state.
74
+ if (intent === 'retry_always' || intent === 'retry_once') {
75
+ applyAvailabilityTransition(getAvailabilityContext, failureKind);
76
+ }
77
+ return await processIntent(config, intent, fallbackModel);
109
78
  }
110
79
  catch (handlerError) {
111
80
  debugLogger.error('Fallback handler failed:', handlerError);
@@ -120,41 +89,20 @@ async function handleUpgrade() {
120
89
  debugLogger.warn('Failed to open browser automatically:', getErrorMessage(error));
121
90
  }
122
91
  }
123
- async function processIntent(config, intent, failedModel, fallbackModel, authType, error) {
124
- const isAvailabilityEnabled = config.isModelAvailabilityServiceEnabled();
92
+ async function processIntent(config, intent, fallbackModel) {
125
93
  switch (intent) {
126
94
  case 'retry_always':
127
- if (isAvailabilityEnabled) {
128
- // TODO(telemetry): Implement generic fallback event logging. Existing
129
- // logFlashFallback is specific to a single Model.
130
- config.setActiveModel(fallbackModel);
131
- }
132
- else {
133
- // If the error is non-retryable, e.g. TerminalQuota Error, trigger a regular fallback to flash.
134
- // For all other errors, activate previewModel fallback.
135
- if (failedModel === PREVIEW_GEMINI_MODEL &&
136
- !(error instanceof TerminalQuotaError)) {
137
- activatePreviewModelFallbackMode(config);
138
- }
139
- else {
140
- activateFallbackMode(config, authType);
141
- }
142
- }
95
+ // TODO(telemetry): Implement generic fallback event logging. Existing
96
+ // logFlashFallback is specific to a single Model.
97
+ config.setActiveModel(fallbackModel);
143
98
  return true;
144
99
  case 'retry_once':
145
- if (isAvailabilityEnabled) {
146
- config.setActiveModel(fallbackModel);
147
- }
100
+ // For distinct retry (retry_once), we do NOT set the active model permanently.
101
+ // The FallbackStrategy will handle routing to the available model for this turn
102
+ // based on the availability service state (which is updated before this).
148
103
  return true;
149
104
  case 'stop':
150
- if (isAvailabilityEnabled) {
151
- // TODO(telemetry): Implement generic fallback event logging. Existing
152
- // logFlashFallback is specific to a single Model.
153
- config.setActiveModel(fallbackModel);
154
- }
155
- else {
156
- activateFallbackMode(config, authType);
157
- }
105
+ // Do not switch model on stop. User wants to stay on current model (and stop).
158
106
  return false;
159
107
  case 'retry_later':
160
108
  return false;
@@ -165,19 +113,4 @@ async function processIntent(config, intent, failedModel, fallbackModel, authTyp
165
113
  throw new Error(`Unexpected fallback intent received from fallbackModelHandler: "${intent}"`);
166
114
  }
167
115
  }
168
- function activateFallbackMode(config, authType) {
169
- if (!config.isInFallbackMode()) {
170
- config.setFallbackMode(true);
171
- coreEvents.emitFallbackModeChanged(true);
172
- if (authType) {
173
- logFlashFallback(config, new FlashFallbackEvent(authType));
174
- }
175
- }
176
- }
177
- function activatePreviewModelFallbackMode(config) {
178
- if (!config.isPreviewModelFallbackMode()) {
179
- config.setPreviewModelFallbackMode(true);
180
- // We might want a specific event for Preview Model fallback, but for now we just set the mode.
181
- }
182
- }
183
116
  //# sourceMappingURL=handler.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"handler.js","sourceRoot":"","sources":["../../../src/fallback/handler.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"handler.js","sourceRoot":"","sources":["../../../src/fallback/handler.ts"],"names":[],"mappings":"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"}