@google/gemini-cli 0.61.0-preview.0 → 0.61.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 (51) hide show
  1. package/bundle/{chunk-HQQJ2XNS.js → chunk-2YTYPKEZ.js} +17 -2
  2. package/bundle/{chunk-ZJHBR7W3.js → chunk-3BON7LO7.js} +1 -1
  3. package/bundle/{chunk-AIMNGITH.js → chunk-3YIQF3FY.js} +3 -3
  4. package/bundle/{chunk-UUSSUQWL.js → chunk-4DKTUBCF.js} +1 -1
  5. package/bundle/{chunk-XL4BRDNV.js → chunk-4GP6HFBO.js} +7 -7
  6. package/bundle/{chunk-ZOKIJ2CA.js → chunk-55E6VPR2.js} +7 -7
  7. package/bundle/{chunk-FH2AJT7C.js → chunk-5FZXKDXH.js} +327 -138
  8. package/bundle/{chunk-GLGFO33Y.js → chunk-5V744PDA.js} +17 -2
  9. package/bundle/{chunk-3KWHN3A7.js → chunk-75COGLDC.js} +1 -1
  10. package/bundle/{chunk-DOJZLPDE.js → chunk-AMOGWHKC.js} +1 -1
  11. package/bundle/{chunk-4WJNJ3DK.js → chunk-BS3JDRJQ.js} +1 -1
  12. package/bundle/{chunk-FIYKTSCR.js → chunk-DWY2O4BN.js} +1 -1
  13. package/bundle/{chunk-KUWKDEHW.js → chunk-DZZAUXYI.js} +17 -2
  14. package/bundle/{chunk-WFZMFTEE.js → chunk-FJCIWVRV.js} +3 -3
  15. package/bundle/{chunk-OZG5CLDY.js → chunk-HPLZM7PQ.js} +7 -7
  16. package/bundle/{chunk-ACTC6X24.js → chunk-JDPZ4CE3.js} +293 -136
  17. package/bundle/{chunk-BCGPZKAR.js → chunk-RWXT3CQ6.js} +1 -1
  18. package/bundle/{chunk-DO6WSZ5A.js → chunk-S2Z77X3K.js} +2 -2
  19. package/bundle/{chunk-LDL5PSV7.js → chunk-S7IITRXI.js} +2 -2
  20. package/bundle/{chunk-HGJ3LRCZ.js → chunk-TQ3FGGPE.js} +1 -1
  21. package/bundle/{chunk-6HVPDYWM.js → chunk-VT3MBDD3.js} +3 -3
  22. package/bundle/{chunk-UCLFGIUA.js → chunk-W766PNZK.js} +2 -2
  23. package/bundle/{chunk-OANXWSAG.js → chunk-Y2J3C62M.js} +327 -138
  24. package/bundle/{chunk-YJFCJUWN.js → chunk-YKD74FOF.js} +1 -1
  25. package/bundle/{cleanup-AM5TUWBB.js → cleanup-KRMS36ET.js} +2 -2
  26. package/bundle/{cleanup-FLPPBDLV.js → cleanup-PWFFQ2ZF.js} +2 -2
  27. package/bundle/{cleanup-KI735Y45.js → cleanup-XO3PUOXN.js} +2 -2
  28. package/bundle/{core-R7CF7CQD.js → core-4U3AXZ3Y.js} +17 -1
  29. package/bundle/{dist-VH7RJCTA.js → core-BYHFA5QC.js} +17 -1
  30. package/bundle/{devtoolsService-MA34M6Q7.js → devtoolsService-4LLMXKZ3.js} +2 -2
  31. package/bundle/{devtoolsService-UUGXHVTK.js → devtoolsService-JTGAYMK3.js} +2 -2
  32. package/bundle/{devtoolsService-WOA7VJLA.js → devtoolsService-KPCAEWJX.js} +2 -2
  33. package/bundle/{core-F6IWXMFD.js → dist-3UYXETJU.js} +17 -1
  34. package/bundle/docs/reference/configuration.md +88 -25
  35. package/bundle/{gemini-N24ID3HC.js → gemini-3HFX2LNT.js} +19 -17
  36. package/bundle/{gemini-SRSLV7D2.js → gemini-4IF7D7UG.js} +19 -17
  37. package/bundle/{gemini-NLU2EPRF.js → gemini-NPCD6A4N.js} +19 -17
  38. package/bundle/gemini.js +7 -7
  39. package/bundle/{interactiveCli-PNXXOFIE.js → interactiveCli-4ZJLSCID.js} +19 -14
  40. package/bundle/{interactiveCli-DDJZ4B26.js → interactiveCli-F3TDVF3E.js} +19 -14
  41. package/bundle/{interactiveCli-SOMGNC7U.js → interactiveCli-TRXNUIPM.js} +19 -14
  42. package/bundle/{liteRtServerManager-HDIBGLHN.js → liteRtServerManager-C5EQRV4O.js} +4 -4
  43. package/bundle/{liteRtServerManager-XEOODEAA.js → liteRtServerManager-LQNV6EK2.js} +4 -4
  44. package/bundle/{liteRtServerManager-GW22Q7F4.js → liteRtServerManager-T6NSUQ7G.js} +4 -4
  45. package/bundle/{oauth2-provider-ZC45IIOS.js → oauth2-provider-B67V2HIE.js} +1 -1
  46. package/bundle/{oauth2-provider-347DWYC5.js → oauth2-provider-CIEE5U5B.js} +1 -1
  47. package/bundle/{oauth2-provider-SADAKLZ2.js → oauth2-provider-UXWR2XFY.js} +1 -1
  48. package/bundle/{start-IVH46CBG.js → start-4GM5UE3J.js} +6 -6
  49. package/bundle/{start-PRP35I6V.js → start-7IHG7KRC.js} +6 -6
  50. package/bundle/{start-H7F3LFFN.js → start-FBWB5XJU.js} +6 -6
  51. package/package.json +1 -1
@@ -279752,14 +279752,27 @@ var PREVIEW_GEMINI_3_1_MODEL = "gemini-3.1-pro-preview";
279752
279752
  var PREVIEW_GEMINI_3_1_CUSTOM_TOOLS_MODEL = "gemini-3.1-pro-preview-customtools";
279753
279753
  var PREVIEW_GEMINI_FLASH_MODEL = "gemini-3-flash-preview";
279754
279754
  var DEFAULT_GEMINI_MODEL = "gemini-2.5-pro";
279755
- var DEFAULT_GEMINI_FLASH_MODEL = "gemini-2.5-flash";
279756
- var DEFAULT_GEMINI_3_5_FLASH_MODEL = "gemini-3.5-flash";
279757
- var SECONDARY_GEMINI_3_5_FLASH_MODEL = "gemini-3-flash";
279755
+ var BASE_GEMINI_FLASH_MODEL = "gemini-3.5-flash";
279756
+ var LATEST_GEMINI_FLASH_MODEL = "gemini-3.8-flash";
279757
+ var LEGACY_CCPA_FLASH_MODEL = "gemini-3-flash";
279758
+ var DEFAULT_GEMINI_3_5_FLASH_MODEL = BASE_GEMINI_FLASH_MODEL;
279759
+ var SECONDARY_GEMINI_3_5_FLASH_MODEL = LEGACY_CCPA_FLASH_MODEL;
279760
+ var BASE_GEMINI_FLASH_LITE_MODEL = "gemini-3.1-flash-lite";
279761
+ var LATEST_GEMINI_FLASH_LITE_MODEL = "gemini-3.5-flash-lite";
279762
+ var DEFAULT_GEMINI_FLASH_MODEL = BASE_GEMINI_FLASH_MODEL;
279763
+ var DEFAULT_GEMINI_FLASH_LITE_MODEL = BASE_GEMINI_FLASH_LITE_MODEL;
279758
279764
  function setFlashModels(preview, defaultFlash) {
279759
279765
  PREVIEW_GEMINI_FLASH_MODEL = preview;
279760
279766
  DEFAULT_GEMINI_FLASH_MODEL = defaultFlash;
279761
279767
  }
279762
- var DEFAULT_GEMINI_FLASH_LITE_MODEL = "gemini-3.1-flash-lite";
279768
+ function setFlashLiteModel(defaultFlashLite) {
279769
+ DEFAULT_GEMINI_FLASH_LITE_MODEL = defaultFlashLite;
279770
+ }
279771
+ function resetModelsForTesting() {
279772
+ PREVIEW_GEMINI_FLASH_MODEL = "gemini-3-flash-preview";
279773
+ DEFAULT_GEMINI_FLASH_MODEL = BASE_GEMINI_FLASH_MODEL;
279774
+ DEFAULT_GEMINI_FLASH_LITE_MODEL = BASE_GEMINI_FLASH_LITE_MODEL;
279775
+ }
279763
279776
  var PREVIEW_GEMINI_FLASH_LITE_MODEL = "none";
279764
279777
  var GEMMA_4_31B_IT_MODEL = "gemma-4-31b-it";
279765
279778
  var GEMMA_4_26B_A4B_IT_MODEL = "gemma-4-26b-a4b-it";
@@ -279774,9 +279787,29 @@ var VALID_GEMINI_MODELS = /* @__PURE__ */ new Set([
279774
279787
  DEFAULT_GEMINI_3_5_FLASH_MODEL,
279775
279788
  SECONDARY_GEMINI_3_5_FLASH_MODEL,
279776
279789
  DEFAULT_GEMINI_FLASH_LITE_MODEL,
279790
+ BASE_GEMINI_FLASH_MODEL,
279791
+ LATEST_GEMINI_FLASH_MODEL,
279792
+ LEGACY_CCPA_FLASH_MODEL,
279793
+ BASE_GEMINI_FLASH_LITE_MODEL,
279794
+ LATEST_GEMINI_FLASH_LITE_MODEL,
279777
279795
  GEMMA_4_31B_IT_MODEL,
279778
279796
  GEMMA_4_26B_A4B_IT_MODEL
279779
279797
  ]);
279798
+ function getBackendModelMappings(context2, isCodeAssistBackend = true) {
279799
+ const mappings = {};
279800
+ const useLatestFlash = context2?.hasLatestFlashGAAccess?.() ?? false;
279801
+ const useLatestFlashLite = context2?.hasLatestFlashLiteGAAccess?.() ?? false;
279802
+ if (useLatestFlash) {
279803
+ mappings[BASE_GEMINI_FLASH_MODEL] = LATEST_GEMINI_FLASH_MODEL;
279804
+ mappings[LEGACY_CCPA_FLASH_MODEL] = LATEST_GEMINI_FLASH_MODEL;
279805
+ } else if (isCodeAssistBackend) {
279806
+ mappings[BASE_GEMINI_FLASH_MODEL] = LEGACY_CCPA_FLASH_MODEL;
279807
+ }
279808
+ if (useLatestFlashLite) {
279809
+ mappings[BASE_GEMINI_FLASH_LITE_MODEL] = LATEST_GEMINI_FLASH_LITE_MODEL;
279810
+ }
279811
+ return mappings;
279812
+ }
279780
279813
  var PREVIEW_GEMINI_MODEL_AUTO = "auto-gemini-3";
279781
279814
  var DEFAULT_GEMINI_MODEL_AUTO = "auto-gemini-2.5";
279782
279815
  var GEMINI_MODEL_ALIAS_AUTO = "auto";
@@ -279785,26 +279818,29 @@ var GEMINI_MODEL_ALIAS_FLASH = "flash";
279785
279818
  var GEMINI_MODEL_ALIAS_FLASH_LITE = "flash-lite";
279786
279819
  var DEFAULT_GEMINI_EMBEDDING_MODEL = "gemini-embedding-001";
279787
279820
  var DEFAULT_THINKING_MODE = 8192;
279788
- function getAutoModelDescription(hasAccessToPreview, useGemini3_1 = false, useGemini3_5Flash = false) {
279821
+ function getAutoModelDescription(hasAccessToPreview, useGemini3_1 = false, useLatestFlash = false) {
279789
279822
  const proModel = hasAccessToPreview ? useGemini3_1 ? PREVIEW_GEMINI_3_1_MODEL : PREVIEW_GEMINI_MODEL : DEFAULT_GEMINI_MODEL;
279790
- const flashModel = hasAccessToPreview ? useGemini3_5Flash ? DEFAULT_GEMINI_3_5_FLASH_MODEL : PREVIEW_GEMINI_FLASH_MODEL : DEFAULT_GEMINI_FLASH_MODEL;
279823
+ const flashModel = hasAccessToPreview ? useLatestFlash ? LATEST_GEMINI_FLASH_MODEL : PREVIEW_GEMINI_FLASH_MODEL : DEFAULT_GEMINI_FLASH_MODEL;
279791
279824
  return `Let Gemini CLI decide the best model for the task: ${getDisplayString(proModel)}, ${getDisplayString(flashModel)}`;
279792
279825
  }
279793
- function resolveModel(requestedModel, useGemini3_1 = false, useCustomToolModel = false, hasAccessToPreview = true, config2, useGemini3_5Flash = false) {
279826
+ function resolveModel(requestedModel, useGemini3_1 = false, useCustomToolModel = false, hasAccessToPreview = true, config2, useLatestFlash = false, useLatestFlashLite = false) {
279794
279827
  const normalizedModel = Array.isArray(requestedModel) ? String(requestedModel.at(-1) ?? "").trim() || "" : typeof requestedModel !== "string" ? String(requestedModel ?? "").trim() || "" : requestedModel.trim() || "";
279828
+ const effectiveUseLatestFlash = useLatestFlash || (config2?.hasLatestFlashGAAccess?.() ?? false);
279829
+ const effectiveUseLatestFlashLite = useLatestFlashLite || (config2?.hasLatestFlashLiteGAAccess?.() ?? false);
279795
279830
  if (config2?.getExperimentalDynamicModelConfiguration?.() === true) {
279796
279831
  const resolved2 = config2.modelConfigService.resolveModelId(normalizedModel, {
279797
279832
  useGemini3_1,
279798
279833
  useCustomTools: useCustomToolModel,
279799
279834
  hasAccessToPreview,
279800
- useGemini3_5Flash
279835
+ useLatestFlash: effectiveUseLatestFlash,
279836
+ useLatestFlashLite: effectiveUseLatestFlashLite
279801
279837
  });
279802
279838
  if (!hasAccessToPreview && isPreviewModel(resolved2, config2)) {
279803
279839
  if (resolved2.includes("flash-lite")) {
279804
- return DEFAULT_GEMINI_FLASH_LITE_MODEL;
279840
+ return effectiveUseLatestFlashLite ? LATEST_GEMINI_FLASH_LITE_MODEL : BASE_GEMINI_FLASH_LITE_MODEL;
279805
279841
  }
279806
279842
  if (resolved2.includes("flash")) {
279807
- return DEFAULT_GEMINI_FLASH_MODEL;
279843
+ return effectiveUseLatestFlash ? LATEST_GEMINI_FLASH_MODEL : BASE_GEMINI_FLASH_MODEL;
279808
279844
  }
279809
279845
  return DEFAULT_GEMINI_MODEL;
279810
279846
  }
@@ -279833,11 +279869,11 @@ function resolveModel(requestedModel, useGemini3_1 = false, useCustomToolModel =
279833
279869
  break;
279834
279870
  }
279835
279871
  case GEMINI_MODEL_ALIAS_FLASH: {
279836
- resolved = useGemini3_5Flash ? DEFAULT_GEMINI_FLASH_MODEL : PREVIEW_GEMINI_FLASH_MODEL;
279872
+ resolved = effectiveUseLatestFlash ? LATEST_GEMINI_FLASH_MODEL : PREVIEW_GEMINI_FLASH_MODEL;
279837
279873
  break;
279838
279874
  }
279839
279875
  case GEMINI_MODEL_ALIAS_FLASH_LITE: {
279840
- resolved = DEFAULT_GEMINI_FLASH_LITE_MODEL;
279876
+ resolved = effectiveUseLatestFlashLite ? LATEST_GEMINI_FLASH_LITE_MODEL : BASE_GEMINI_FLASH_LITE_MODEL;
279841
279877
  break;
279842
279878
  }
279843
279879
  default: {
@@ -279846,25 +279882,28 @@ function resolveModel(requestedModel, useGemini3_1 = false, useCustomToolModel =
279846
279882
  }
279847
279883
  }
279848
279884
  if (resolved === "none") {
279849
- return DEFAULT_GEMINI_FLASH_LITE_MODEL;
279885
+ return effectiveUseLatestFlashLite ? LATEST_GEMINI_FLASH_LITE_MODEL : BASE_GEMINI_FLASH_LITE_MODEL;
279886
+ }
279887
+ if (effectiveUseLatestFlash && isPromotableFlashModel(resolved) && normalizedModel !== PREVIEW_GEMINI_FLASH_MODEL) {
279888
+ return LATEST_GEMINI_FLASH_MODEL;
279850
279889
  }
279851
- if (useGemini3_5Flash && isPromotableFlashModel(resolved) && normalizedModel !== PREVIEW_GEMINI_FLASH_MODEL) {
279852
- return DEFAULT_GEMINI_FLASH_MODEL;
279890
+ if (effectiveUseLatestFlashLite && isPromotableFlashLiteModel(resolved)) {
279891
+ return LATEST_GEMINI_FLASH_LITE_MODEL;
279853
279892
  }
279854
279893
  if (!hasAccessToPreview && isPreviewModel(resolved)) {
279855
279894
  switch (resolved) {
279856
279895
  case PREVIEW_GEMINI_FLASH_MODEL:
279857
- return DEFAULT_GEMINI_FLASH_MODEL;
279896
+ return effectiveUseLatestFlash ? LATEST_GEMINI_FLASH_MODEL : BASE_GEMINI_FLASH_MODEL;
279858
279897
  case PREVIEW_GEMINI_MODEL:
279859
279898
  case PREVIEW_GEMINI_3_1_MODEL:
279860
279899
  case PREVIEW_GEMINI_3_1_CUSTOM_TOOLS_MODEL:
279861
279900
  return DEFAULT_GEMINI_MODEL;
279862
279901
  default:
279863
279902
  if (resolved.includes("flash-lite")) {
279864
- return DEFAULT_GEMINI_FLASH_LITE_MODEL;
279903
+ return effectiveUseLatestFlashLite ? LATEST_GEMINI_FLASH_LITE_MODEL : BASE_GEMINI_FLASH_LITE_MODEL;
279865
279904
  }
279866
279905
  if (resolved.includes("flash")) {
279867
- return DEFAULT_GEMINI_FLASH_MODEL;
279906
+ return effectiveUseLatestFlash ? LATEST_GEMINI_FLASH_MODEL : BASE_GEMINI_FLASH_MODEL;
279868
279907
  }
279869
279908
  return DEFAULT_GEMINI_MODEL;
279870
279909
  }
@@ -279872,30 +279911,40 @@ function resolveModel(requestedModel, useGemini3_1 = false, useCustomToolModel =
279872
279911
  return resolved;
279873
279912
  }
279874
279913
  function isPromotableFlashModel(model) {
279875
- return model === DEFAULT_GEMINI_FLASH_MODEL || model === PREVIEW_GEMINI_FLASH_MODEL || model === DEFAULT_GEMINI_3_5_FLASH_MODEL || model === SECONDARY_GEMINI_3_5_FLASH_MODEL || model === GEMINI_MODEL_ALIAS_FLASH;
279914
+ return model === DEFAULT_GEMINI_FLASH_MODEL || model === PREVIEW_GEMINI_FLASH_MODEL || model === DEFAULT_GEMINI_3_5_FLASH_MODEL || model === SECONDARY_GEMINI_3_5_FLASH_MODEL || model === GEMINI_MODEL_ALIAS_FLASH || model === BASE_GEMINI_FLASH_MODEL || model === LEGACY_CCPA_FLASH_MODEL;
279915
+ }
279916
+ function isPromotableFlashLiteModel(model) {
279917
+ return model === DEFAULT_GEMINI_FLASH_LITE_MODEL || model === BASE_GEMINI_FLASH_LITE_MODEL || model === GEMINI_MODEL_ALIAS_FLASH_LITE;
279876
279918
  }
279877
- function resolveClassifierModel(requestedModel, modelAlias, useGemini3_1 = false, useCustomToolModel = false, hasAccessToPreview = true, config2, useGemini3_5Flash = false) {
279919
+ function resolveClassifierModel(requestedModel, modelAlias, useGemini3_1 = false, useCustomToolModel = false, hasAccessToPreview = true, config2, useLatestFlash = false, useLatestFlashLite = false) {
279920
+ const effectiveUseLatestFlash = useLatestFlash || (config2?.hasLatestFlashGAAccess?.() ?? false);
279921
+ const effectiveUseLatestFlashLite = useLatestFlashLite || (config2?.hasLatestFlashLiteGAAccess?.() ?? false);
279922
+ const effectiveHasAccessToPreview = hasAccessToPreview || (config2?.getHasAccessToPreviewModel?.() ?? false);
279878
279923
  if (config2?.getExperimentalDynamicModelConfiguration?.() === true) {
279879
279924
  return config2.modelConfigService.resolveClassifierModelId(modelAlias, requestedModel, {
279880
279925
  useGemini3_1,
279881
279926
  useCustomTools: useCustomToolModel,
279882
- hasAccessToPreview,
279883
- useGemini3_5Flash
279927
+ hasAccessToPreview: effectiveHasAccessToPreview,
279928
+ useLatestFlash: effectiveUseLatestFlash,
279929
+ useLatestFlashLite: effectiveUseLatestFlashLite
279884
279930
  });
279885
279931
  }
279886
279932
  if (modelAlias === GEMINI_MODEL_ALIAS_FLASH) {
279887
279933
  if (requestedModel === DEFAULT_GEMINI_MODEL_AUTO || requestedModel === DEFAULT_GEMINI_MODEL) {
279888
- return DEFAULT_GEMINI_FLASH_MODEL;
279934
+ return effectiveUseLatestFlash ? LATEST_GEMINI_FLASH_MODEL : BASE_GEMINI_FLASH_MODEL;
279889
279935
  }
279890
279936
  if (requestedModel === PREVIEW_GEMINI_MODEL_AUTO || requestedModel === PREVIEW_GEMINI_MODEL || requestedModel === GEMINI_MODEL_ALIAS_AUTO) {
279891
- if (useGemini3_5Flash) {
279892
- return DEFAULT_GEMINI_FLASH_MODEL;
279937
+ if (effectiveUseLatestFlash) {
279938
+ return LATEST_GEMINI_FLASH_MODEL;
279893
279939
  }
279894
- return hasAccessToPreview ? PREVIEW_GEMINI_FLASH_MODEL : DEFAULT_GEMINI_FLASH_MODEL;
279940
+ return effectiveHasAccessToPreview ? PREVIEW_GEMINI_FLASH_MODEL : BASE_GEMINI_FLASH_MODEL;
279895
279941
  }
279896
- return resolveModel(GEMINI_MODEL_ALIAS_FLASH, false, false, hasAccessToPreview, config2, useGemini3_5Flash);
279942
+ return resolveModel(GEMINI_MODEL_ALIAS_FLASH, false, false, effectiveHasAccessToPreview, config2, effectiveUseLatestFlash, effectiveUseLatestFlashLite);
279943
+ }
279944
+ if (modelAlias === GEMINI_MODEL_ALIAS_FLASH_LITE) {
279945
+ return resolveModel(GEMINI_MODEL_ALIAS_FLASH_LITE, false, false, effectiveHasAccessToPreview, config2, effectiveUseLatestFlash, effectiveUseLatestFlashLite);
279897
279946
  }
279898
- return resolveModel(requestedModel, useGemini3_1, useCustomToolModel, hasAccessToPreview, config2, useGemini3_5Flash);
279947
+ return resolveModel(requestedModel, useGemini3_1, useCustomToolModel, effectiveHasAccessToPreview, config2, effectiveUseLatestFlash, effectiveUseLatestFlashLite);
279899
279948
  }
279900
279949
  function getDisplayString(model, config2) {
279901
279950
  if (config2?.getExperimentalDynamicModelConfiguration?.() === true) {
@@ -279904,9 +279953,14 @@ function getDisplayString(model, config2) {
279904
279953
  return definition.displayName;
279905
279954
  }
279906
279955
  }
279956
+ const useLatestFlash = config2?.hasLatestFlashGAAccess?.() ?? false;
279957
+ const useLatestFlashLite = config2?.hasLatestFlashLiteGAAccess?.() ?? false;
279907
279958
  switch (model) {
279908
- case "gemini-3-flash":
279909
- return DEFAULT_GEMINI_3_5_FLASH_MODEL;
279959
+ case LEGACY_CCPA_FLASH_MODEL:
279960
+ case BASE_GEMINI_FLASH_MODEL:
279961
+ return useLatestFlash ? LATEST_GEMINI_FLASH_MODEL : BASE_GEMINI_FLASH_MODEL;
279962
+ case BASE_GEMINI_FLASH_LITE_MODEL:
279963
+ return useLatestFlashLite ? LATEST_GEMINI_FLASH_LITE_MODEL : BASE_GEMINI_FLASH_LITE_MODEL;
279910
279964
  case GEMINI_MODEL_ALIAS_AUTO:
279911
279965
  return "Auto";
279912
279966
  case PREVIEW_GEMINI_MODEL_AUTO:
@@ -283246,8 +283300,8 @@ function isValidToolName(name3, options = {}) {
283246
283300
  }
283247
283301
 
283248
283302
  // packages/core/dist/src/generated/git-commit.js
283249
- var GIT_COMMIT_INFO = "ae28844fb";
283250
- var CLI_VERSION = "0.61.0-preview.0";
283303
+ var GIT_COMMIT_INFO = "cc0107ed2";
283304
+ var CLI_VERSION = "0.61.0";
283251
283305
 
283252
283306
  // packages/core/dist/src/ide/detect-ide.js
283253
283307
  var IDE_DEFINITIONS = {
@@ -306541,7 +306595,7 @@ function getVersion() {
306541
306595
  }
306542
306596
  versionPromise = (async () => {
306543
306597
  const pkgJson = await getPackageJson(__dirname4);
306544
- return "0.61.0-preview.0";
306598
+ return "0.61.0";
306545
306599
  })();
306546
306600
  return versionPromise;
306547
306601
  }
@@ -307406,25 +307460,10 @@ var AUTO_ROUTING_OVERRIDES = {
307406
307460
  transient: "sticky_retry"
307407
307461
  }
307408
307462
  };
307409
- var FLASH_LITE_CHAIN = [
307410
- definePolicy({
307411
- model: DEFAULT_GEMINI_FLASH_LITE_MODEL,
307412
- actions: SILENT_ACTIONS
307413
- }),
307414
- definePolicy({
307415
- model: DEFAULT_GEMINI_FLASH_MODEL,
307416
- actions: SILENT_ACTIONS
307417
- }),
307418
- definePolicy({
307419
- model: DEFAULT_GEMINI_MODEL,
307420
- isLastResort: true,
307421
- actions: SILENT_ACTIONS
307422
- })
307423
- ];
307424
307463
  function getModelPolicyChain(options) {
307425
307464
  const isAuto = options.isAutoSelection ?? false;
307426
307465
  if (options.previewEnabled) {
307427
- const proModel = resolveModel(PREVIEW_GEMINI_MODEL, options.useGemini31, options.useCustomToolModel, true, void 0, options.useGemini3_5Flash);
307466
+ const proModel = resolveModel(PREVIEW_GEMINI_MODEL, options.useGemini31, options.useCustomToolModel, true, void 0, options.useLatestFlash, options.useLatestFlashLite);
307428
307467
  return [
307429
307468
  definePolicy({
307430
307469
  model: proModel,
@@ -307457,7 +307496,21 @@ function createSingleModelChain(model) {
307457
307496
  return [definePolicy({ model, isLastResort: true })];
307458
307497
  }
307459
307498
  function getFlashLitePolicyChain() {
307460
- return cloneChain(FLASH_LITE_CHAIN);
307499
+ return [
307500
+ definePolicy({
307501
+ model: DEFAULT_GEMINI_FLASH_LITE_MODEL,
307502
+ actions: SILENT_ACTIONS
307503
+ }),
307504
+ definePolicy({
307505
+ model: DEFAULT_GEMINI_FLASH_MODEL,
307506
+ actions: SILENT_ACTIONS
307507
+ }),
307508
+ definePolicy({
307509
+ model: DEFAULT_GEMINI_MODEL,
307510
+ isLastResort: true,
307511
+ actions: SILENT_ACTIONS
307512
+ })
307513
+ ];
307461
307514
  }
307462
307515
  function createDefaultPolicy(model, options) {
307463
307516
  return definePolicy({ model, isLastResort: options?.isLastResort });
@@ -307474,16 +307527,6 @@ function definePolicy(config2) {
307474
307527
  }
307475
307528
  };
307476
307529
  }
307477
- function clonePolicy(policy) {
307478
- return {
307479
- ...policy,
307480
- actions: { ...policy.actions },
307481
- stateTransitions: { ...policy.stateTransitions }
307482
- };
307483
- }
307484
- function cloneChain(chain2) {
307485
- return chain2.map(clonePolicy);
307486
- }
307487
307530
 
307488
307531
  // packages/core/dist/src/utils/modelUtils.js
307489
307532
  function normalizeModelId(modelId) {
@@ -307499,9 +307542,10 @@ function resolvePolicyChain(config2, preferredModel, wrapsAround = false) {
307499
307542
  const useGemini31 = config2.getGemini31LaunchedSync?.() ?? false;
307500
307543
  const useCustomToolModel = config2.getUseCustomToolModelSync?.() ?? false;
307501
307544
  const hasAccessToPreview = config2.getHasAccessToPreviewModel?.() ?? false;
307502
- const useGemini3_5Flash = config2.hasGemini35FlashGAAccess?.() ?? false;
307545
+ const useLatestFlash = config2.hasLatestFlashGAAccess?.() ?? false;
307546
+ const useLatestFlashLite = config2.hasLatestFlashLiteGAAccess?.() ?? false;
307503
307547
  const isOriginallyGemini3 = isGemini3Model(modelFromConfig, config2);
307504
- const resolvedModel = normalizeModelId(resolveModel(modelFromConfig, useGemini31, useCustomToolModel, hasAccessToPreview, config2, useGemini3_5Flash));
307548
+ const resolvedModel = normalizeModelId(resolveModel(modelFromConfig, useGemini31, useCustomToolModel, hasAccessToPreview, config2, useLatestFlash, useLatestFlashLite));
307505
307549
  const isAutoPreferred = normalizedPreferredModel ? isAutoModel(normalizedPreferredModel, config2) : false;
307506
307550
  const isAutoConfigured = isAutoModel(configuredModel, config2);
307507
307551
  const effectiveWrapsAround = wrapsAround || isAutoPreferred || isAutoConfigured || isOriginallyGemini3;
@@ -307509,7 +307553,8 @@ function resolvePolicyChain(config2, preferredModel, wrapsAround = false) {
307509
307553
  const context2 = {
307510
307554
  useGemini3_1: useGemini31,
307511
307555
  useCustomTools: useCustomToolModel,
307512
- useGemini3_5Flash
307556
+ useLatestFlash,
307557
+ useLatestFlashLite
307513
307558
  };
307514
307559
  if (resolvedModel === DEFAULT_GEMINI_FLASH_LITE_MODEL) {
307515
307560
  chain2 = config2.modelConfigService.resolveChain("lite", context2);
@@ -307519,7 +307564,7 @@ function resolvePolicyChain(config2, preferredModel, wrapsAround = false) {
307519
307564
  }
307520
307565
  if (!chain2) {
307521
307566
  const isAutoSelection = isAutoPreferred || isAutoConfigured;
307522
- const previewEnabled = hasAccessToPreview && (isGemini3Model(resolvedModel, config2) || normalizedPreferredModel === PREVIEW_GEMINI_MODEL_AUTO || configuredModel === PREVIEW_GEMINI_MODEL_AUTO);
307567
+ const previewEnabled = hasAccessToPreview && configuredModel !== DEFAULT_GEMINI_MODEL_AUTO && (isGemini3Model(resolvedModel, config2) || normalizedPreferredModel === PREVIEW_GEMINI_MODEL_AUTO || configuredModel === PREVIEW_GEMINI_MODEL_AUTO);
307523
307568
  const autoPrefix = isAutoSelection ? "auto-" : "";
307524
307569
  const chainKey = previewEnabled ? "preview" : "default";
307525
307570
  chain2 = config2.modelConfigService.resolveChain(`${autoPrefix}${chainKey}`, context2);
@@ -307535,14 +307580,15 @@ function resolvePolicyChain(config2, preferredModel, wrapsAround = false) {
307535
307580
  } else if (isOriginallyGemini3 || isAutoPreferred || isAutoConfigured) {
307536
307581
  const isAutoSelection = isAutoPreferred || isAutoConfigured;
307537
307582
  if (hasAccessToPreview) {
307538
- const previewEnabled = isOriginallyGemini3 || normalizedPreferredModel === PREVIEW_GEMINI_MODEL_AUTO || configuredModel === PREVIEW_GEMINI_MODEL_AUTO;
307583
+ const previewEnabled = configuredModel !== DEFAULT_GEMINI_MODEL_AUTO && (isOriginallyGemini3 || normalizedPreferredModel === PREVIEW_GEMINI_MODEL_AUTO || configuredModel === PREVIEW_GEMINI_MODEL_AUTO);
307539
307584
  chain2 = getModelPolicyChain({
307540
307585
  previewEnabled,
307541
307586
  isAutoSelection,
307542
307587
  userTier: config2.getUserTier(),
307543
307588
  useGemini31,
307544
307589
  useCustomToolModel,
307545
- useGemini3_5Flash
307590
+ useLatestFlash,
307591
+ useLatestFlashLite
307546
307592
  });
307547
307593
  } else {
307548
307594
  chain2 = getModelPolicyChain({
@@ -307551,7 +307597,8 @@ function resolvePolicyChain(config2, preferredModel, wrapsAround = false) {
307551
307597
  userTier: config2.getUserTier(),
307552
307598
  useGemini31,
307553
307599
  useCustomToolModel,
307554
- useGemini3_5Flash
307600
+ useLatestFlash,
307601
+ useLatestFlashLite
307555
307602
  });
307556
307603
  }
307557
307604
  } else {
@@ -307601,8 +307648,8 @@ function createAvailabilityContextProvider(config2, modelGetter) {
307601
307648
  }
307602
307649
  function selectModelForAvailability(config2, requestedModel) {
307603
307650
  const chain2 = resolvePolicyChain(config2, requestedModel);
307604
- const selection = config2.getModelAvailabilityService().selectFirstAvailable(chain2.map((p) => p.model));
307605
- if (selection.selectedModel)
307651
+ const selection = config2.getModelAvailabilityService?.()?.selectFirstAvailable(chain2.map((p) => p.model));
307652
+ if (selection?.selectedModel)
307606
307653
  return selection;
307607
307654
  const backupModel = chain2.find((p) => p.isLastResort)?.model ?? DEFAULT_GEMINI_MODEL;
307608
307655
  return { selectedModel: backupModel, skipped: [] };
@@ -311494,11 +311541,12 @@ var ModelMappingContentGenerator = class {
311494
311541
  }
311495
311542
  mapModel(req) {
311496
311543
  if (req.model) {
311544
+ const activeMappings = typeof this.mappings === "function" ? this.mappings() : this.mappings;
311497
311545
  const normalizedModel = normalizeModelId(req.model);
311498
- if (this.mappings[normalizedModel]) {
311546
+ if (activeMappings[normalizedModel]) {
311499
311547
  return {
311500
311548
  ...req,
311501
- model: req.model.startsWith("models/") ? `models/${this.mappings[normalizedModel]}` : this.mappings[normalizedModel]
311549
+ model: req.model.startsWith("models/") ? `models/${activeMappings[normalizedModel]}` : activeMappings[normalizedModel]
311502
311550
  };
311503
311551
  }
311504
311552
  }
@@ -311913,7 +311961,7 @@ async function createContentGenerator(config2, gcConfig, sessionId) {
311913
311961
  }
311914
311962
  if (config2.authType === AuthType2.LOGIN_WITH_GOOGLE || config2.authType === AuthType2.COMPUTE_ADC) {
311915
311963
  const httpOptions = { headers: baseHeaders };
311916
- return new LoggingContentGenerator(new ModelMappingContentGenerator(await createCodeAssistContentGenerator(httpOptions, config2.authType, gcConfig, sessionId), CCPA_AI_MODEL_MAPPINGS), gcConfig);
311964
+ return new LoggingContentGenerator(new ModelMappingContentGenerator(await createCodeAssistContentGenerator(httpOptions, config2.authType, gcConfig, sessionId), () => getBackendModelMappings(gcConfig, true)), gcConfig);
311917
311965
  }
311918
311966
  if (config2.authType === AuthType2.USE_GEMINI || config2.authType === AuthType2.USE_VERTEX_AI || config2.authType === AuthType2.GATEWAY) {
311919
311967
  let headers = { ...baseHeaders };
@@ -311982,7 +312030,7 @@ async function createContentGenerator(config2, gcConfig, sessionId) {
311982
312030
  }
311983
312031
  }
311984
312032
  });
311985
- return new LoggingContentGenerator(googleGenAI.models, gcConfig);
312033
+ return new LoggingContentGenerator(new ModelMappingContentGenerator(googleGenAI.models, () => getBackendModelMappings(gcConfig, false)), gcConfig);
311986
312034
  }
311987
312035
  throw new Error(`Error creating contentGenerator: Unsupported authType: ${config2.authType}`);
311988
312036
  })();
@@ -335476,16 +335524,21 @@ function modelStringToModelConfigAlias(model) {
335476
335524
  case PREVIEW_GEMINI_3_1_MODEL:
335477
335525
  return "chat-compression-3-pro";
335478
335526
  case PREVIEW_GEMINI_FLASH_MODEL:
335527
+ case BASE_GEMINI_FLASH_MODEL:
335528
+ case LATEST_GEMINI_FLASH_MODEL:
335529
+ case LEGACY_CCPA_FLASH_MODEL:
335479
335530
  return "chat-compression-3-flash";
335480
335531
  case PREVIEW_GEMINI_FLASH_LITE_MODEL:
335481
335532
  // fallthrough
335533
+ case BASE_GEMINI_FLASH_LITE_MODEL:
335482
335534
  case DEFAULT_GEMINI_FLASH_LITE_MODEL:
335535
+ case LATEST_GEMINI_FLASH_LITE_MODEL:
335483
335536
  return "chat-compression-3.1-flash-lite";
335484
335537
  case "gemini-2.5-flash-lite":
335485
335538
  return "chat-compression-2.5-flash-lite";
335486
335539
  case DEFAULT_GEMINI_MODEL:
335487
335540
  return "chat-compression-2.5-pro";
335488
- case DEFAULT_GEMINI_FLASH_MODEL:
335541
+ case "gemini-2.5-flash":
335489
335542
  return "chat-compression-2.5-flash";
335490
335543
  default:
335491
335544
  return "chat-compression-default";
@@ -340084,7 +340137,7 @@ var A2AAuthProviderFactory = class _A2AAuthProviderFactory {
340084
340137
  return provider;
340085
340138
  }
340086
340139
  case "oauth2": {
340087
- const { OAuth2AuthProvider } = await import("./oauth2-provider-SADAKLZ2.js");
340140
+ const { OAuth2AuthProvider } = await import("./oauth2-provider-UXWR2XFY.js");
340088
340141
  const provider = new OAuth2AuthProvider(authConfig, options.agentName ?? "unknown", agentCard, options.agentCardUrl);
340089
340142
  await provider.initialize();
340090
340143
  return provider;
@@ -340228,7 +340281,7 @@ var ModelConfigService = class _ModelConfigService {
340228
340281
  const definitions = this.config.modelDefinitions ?? {};
340229
340282
  const shouldShowPreviewModels = context2.hasAccessToPreview ?? false;
340230
340283
  const useGemini31 = context2.useGemini3_1 ?? false;
340231
- const useGemini3_5Flash = context2.useGemini3_5Flash ?? false;
340284
+ const useLatestFlash = context2.useLatestFlash ?? false;
340232
340285
  const mainOptions = Object.entries(definitions).filter(([_, m]) => {
340233
340286
  if (m.isVisible !== true)
340234
340287
  return false;
@@ -340240,7 +340293,7 @@ var ModelConfigService = class _ModelConfigService {
340240
340293
  }).map(([id, m]) => {
340241
340294
  let description = m.dialogDescription ?? "";
340242
340295
  if (id === "auto") {
340243
- description = getAutoModelDescription(shouldShowPreviewModels, useGemini31, useGemini3_5Flash);
340296
+ description = getAutoModelDescription(shouldShowPreviewModels, useGemini31, useLatestFlash);
340244
340297
  } else if (id === "auto-gemini-3" && useGemini31) {
340245
340298
  description = description.replace("gemini-3-pro", "gemini-3.1-pro");
340246
340299
  }
@@ -340308,14 +340361,22 @@ var ModelConfigService = class _ModelConfigService {
340308
340361
  switch (key) {
340309
340362
  case "useGemini3_1":
340310
340363
  return value === context2.useGemini3_1;
340311
- case "useGemini3_1FlashLite":
340312
- return value === context2.useGemini3_1FlashLite;
340313
- case "useGemini3_5Flash":
340314
- return value === context2.useGemini3_5Flash;
340364
+ case "useLatestFlashLite":
340365
+ case "useGemini3_1FlashLite": {
340366
+ const actualValue = key === "useLatestFlashLite" ? context2.useLatestFlashLite ?? context2.useGemini3_1FlashLite : context2.useGemini3_1FlashLite ?? context2.useLatestFlashLite;
340367
+ return value === actualValue;
340368
+ }
340369
+ case "useLatestFlash":
340370
+ case "useGemini3_5Flash": {
340371
+ const actualValue = key === "useLatestFlash" ? context2.useLatestFlash ?? context2.useGemini3_5Flash : context2.useGemini3_5Flash ?? context2.useLatestFlash;
340372
+ return value === actualValue;
340373
+ }
340315
340374
  case "useCustomTools":
340316
340375
  return value === context2.useCustomTools;
340317
340376
  case "hasAccessToPreview":
340318
340377
  return value === context2.hasAccessToPreview;
340378
+ case "hasAccessToProModel":
340379
+ return value === context2.hasAccessToProModel;
340319
340380
  case "requestedModels":
340320
340381
  return Array.isArray(value) && !!context2.requestedModel && value.includes(context2.requestedModel);
340321
340382
  default:
@@ -359814,8 +359875,9 @@ ${formattedHistory}
359814
359875
  config2.getUseCustomToolModel(),
359815
359876
  config2.getHasAccessToPreviewModel()
359816
359877
  ]);
359817
- const useGemini3_5Flash = config2.hasGemini35FlashGAAccess?.() ?? false;
359818
- const selectedModel = resolveClassifierModel(context2.requestedModel ?? config2.getModel(), routerResponse.model_choice, useGemini3_1, useCustomToolModel, hasAccessToPreview, config2, useGemini3_5Flash);
359878
+ const useLatestFlash = config2.hasLatestFlashGAAccess?.() ?? false;
359879
+ const useLatestFlashLite = config2.hasLatestFlashLiteGAAccess?.() ?? false;
359880
+ const selectedModel = resolveClassifierModel(context2.requestedModel ?? config2.getModel(), routerResponse.model_choice, useGemini3_1, useCustomToolModel, hasAccessToPreview, config2, useLatestFlash, useLatestFlashLite);
359819
359881
  return {
359820
359882
  model: selectedModel,
359821
359883
  metadata: {
@@ -359835,7 +359897,7 @@ ${formattedHistory}
359835
359897
  var DefaultStrategy = class {
359836
359898
  name = "default";
359837
359899
  async route(_context, config2, _baseLlmClient, _localLiteRtLmClient) {
359838
- const defaultModel = resolveModel(config2.getModel(), config2.getGemini31LaunchedSync?.() ?? false, false, config2.getHasAccessToPreviewModel?.() ?? true, config2, config2.hasGemini35FlashGAAccess?.() ?? false);
359900
+ const defaultModel = resolveModel(config2.getModel(), config2.getGemini31LaunchedSync?.() ?? false, false, config2.getHasAccessToPreviewModel?.() ?? true, config2, config2.hasLatestFlashGAAccess?.() ?? false, config2.hasLatestFlashLiteGAAccess?.() ?? false);
359839
359901
  return {
359840
359902
  model: defaultModel,
359841
359903
  metadata: {
@@ -359976,8 +360038,9 @@ var ClassifierStrategy = class {
359976
360038
  config2.getGemini31Launched(),
359977
360039
  config2.getUseCustomToolModel()
359978
360040
  ]);
359979
- const useGemini3_5Flash = config2.hasGemini35FlashGAAccess?.() ?? false;
359980
- const selectedModel = normalizeModelId(resolveClassifierModel(normalizeModelId(model), routerResponse.model_choice, useGemini3_1, useCustomToolModel, config2.getHasAccessToPreviewModel?.() ?? true, config2, useGemini3_5Flash));
360041
+ const useLatestFlash = config2.hasLatestFlashGAAccess?.() ?? false;
360042
+ const useLatestFlashLite = config2.hasLatestFlashLiteGAAccess?.() ?? false;
360043
+ const selectedModel = normalizeModelId(resolveClassifierModel(normalizeModelId(model), routerResponse.model_choice, useGemini3_1, useCustomToolModel, config2.getHasAccessToPreviewModel?.() ?? true, config2, useLatestFlash, useLatestFlashLite));
359981
360044
  const service = config2.getModelAvailabilityService();
359982
360045
  const snapshot = service.snapshot(selectedModel);
359983
360046
  if (!snapshot.available) {
@@ -360120,8 +360183,9 @@ var NumericalClassifierStrategy = class {
360120
360183
  config2.getGemini31Launched(),
360121
360184
  config2.getUseCustomToolModel()
360122
360185
  ]);
360123
- const useGemini3_5Flash = config2.hasGemini35FlashGAAccess?.() ?? false;
360124
- const selectedModel = normalizeModelId(resolveClassifierModel(normalizeModelId(model), modelAlias, useGemini3_1, useCustomToolModel, config2.getHasAccessToPreviewModel?.() ?? true, config2, useGemini3_5Flash));
360186
+ const useLatestFlash = config2.hasLatestFlashGAAccess?.() ?? false;
360187
+ const useLatestFlashLite = config2.hasLatestFlashLiteGAAccess?.() ?? false;
360188
+ const selectedModel = normalizeModelId(resolveClassifierModel(normalizeModelId(model), modelAlias, useGemini3_1, useCustomToolModel, config2.getHasAccessToPreviewModel?.() ?? true, config2, useLatestFlash, useLatestFlashLite));
360125
360189
  const service = config2.getModelAvailabilityService();
360126
360190
  const snapshot = service.snapshot(selectedModel);
360127
360191
  if (!snapshot.available) {
@@ -360215,7 +360279,7 @@ var FallbackStrategy = class {
360215
360279
  name = "fallback";
360216
360280
  async route(context2, config2, _baseLlmClient, _localLiteRtLmClient) {
360217
360281
  const requestedModel = context2.requestedModel ?? config2.getModel();
360218
- const resolvedModel = resolveModel(requestedModel, config2.getGemini31LaunchedSync?.() ?? false, false, config2.getHasAccessToPreviewModel?.() ?? true, config2, config2.hasGemini35FlashGAAccess?.() ?? false);
360282
+ const resolvedModel = resolveModel(requestedModel, config2.getGemini31LaunchedSync?.() ?? false, false, config2.getHasAccessToPreviewModel?.() ?? true, config2, config2.hasLatestFlashGAAccess?.() ?? false, config2.hasLatestFlashLiteGAAccess?.() ?? false);
360219
360283
  const service = config2.getModelAvailabilityService();
360220
360284
  const snapshot = service.snapshot(resolvedModel);
360221
360285
  if (snapshot.available) {
@@ -360245,7 +360309,7 @@ var OverrideStrategy = class {
360245
360309
  return null;
360246
360310
  }
360247
360311
  return {
360248
- model: resolveModel(overrideModel, config2.getGemini31LaunchedSync?.() ?? false, false, config2.getHasAccessToPreviewModel?.() ?? true, config2, config2.hasGemini35FlashGAAccess?.() ?? false),
360312
+ model: resolveModel(overrideModel, config2.getGemini31LaunchedSync?.() ?? false, false, config2.getHasAccessToPreviewModel?.() ?? true, config2, config2.hasLatestFlashGAAccess?.() ?? false, config2.hasLatestFlashLiteGAAccess?.() ?? false),
360249
360313
  metadata: {
360250
360314
  source: this.name,
360251
360315
  latencyMs: 0,
@@ -360274,9 +360338,10 @@ var ApprovalModeStrategy = class {
360274
360338
  config2.getUseCustomToolModel(),
360275
360339
  config2.getHasAccessToPreviewModel()
360276
360340
  ]);
360277
- const useGemini3_5Flash = config2.hasGemini35FlashGAAccess?.() ?? false;
360341
+ const useLatestFlash = config2.hasLatestFlashGAAccess?.() ?? false;
360342
+ const useLatestFlashLite = config2.hasLatestFlashLiteGAAccess?.() ?? false;
360278
360343
  if (approvalMode === ApprovalMode.PLAN) {
360279
- const proModel = resolveClassifierModel(model, GEMINI_MODEL_ALIAS_PRO, useGemini3_1, useCustomToolModel, hasAccessToPreview, config2, useGemini3_5Flash);
360344
+ const proModel = resolveClassifierModel(model, GEMINI_MODEL_ALIAS_PRO, useGemini3_1, useCustomToolModel, hasAccessToPreview, config2, useLatestFlash, useLatestFlashLite);
360280
360345
  return {
360281
360346
  model: proModel,
360282
360347
  metadata: {
@@ -360286,7 +360351,7 @@ var ApprovalModeStrategy = class {
360286
360351
  }
360287
360352
  };
360288
360353
  } else if (approvedPlanPath) {
360289
- const flashModel = resolveClassifierModel(model, GEMINI_MODEL_ALIAS_FLASH, useGemini3_1, useCustomToolModel, hasAccessToPreview, config2, useGemini3_5Flash);
360354
+ const flashModel = resolveClassifierModel(model, GEMINI_MODEL_ALIAS_FLASH, useGemini3_1, useCustomToolModel, hasAccessToPreview, config2, useLatestFlash, useLatestFlashLite);
360290
360355
  return {
360291
360356
  model: flashModel,
360292
360357
  metadata: {
@@ -360483,12 +360548,24 @@ var DEFAULT_MODEL_CONFIGS = {
360483
360548
  model: "gemini-3.1-flash-lite"
360484
360549
  }
360485
360550
  },
360551
+ "gemini-3.5-flash-lite": {
360552
+ extends: "chat-base-3",
360553
+ modelConfig: {
360554
+ model: "gemini-3.5-flash-lite"
360555
+ }
360556
+ },
360486
360557
  "gemini-3.5-flash": {
360487
360558
  extends: "chat-base-3",
360488
360559
  modelConfig: {
360489
360560
  model: "gemini-3.5-flash"
360490
360561
  }
360491
360562
  },
360563
+ "gemini-3.8-flash": {
360564
+ extends: "chat-base-3",
360565
+ modelConfig: {
360566
+ model: "gemini-3.8-flash"
360567
+ }
360568
+ },
360492
360569
  "gemma-4-31b-it": {
360493
360570
  extends: "chat-base-3",
360494
360571
  modelConfig: {
@@ -360699,6 +360776,13 @@ var DEFAULT_MODEL_CONFIGS = {
360699
360776
  isVisible: true,
360700
360777
  features: { thinking: false, multimodalToolUse: true }
360701
360778
  },
360779
+ "gemini-3.5-flash-lite": {
360780
+ tier: "flash-lite",
360781
+ family: "gemini-3",
360782
+ isPreview: false,
360783
+ isVisible: true,
360784
+ features: { thinking: false, multimodalToolUse: true }
360785
+ },
360702
360786
  "gemini-3.1-pro-preview": {
360703
360787
  tier: "pro",
360704
360788
  family: "gemini-3",
@@ -360734,6 +360818,13 @@ var DEFAULT_MODEL_CONFIGS = {
360734
360818
  isVisible: true,
360735
360819
  features: { thinking: false, multimodalToolUse: true }
360736
360820
  },
360821
+ "gemini-3.8-flash": {
360822
+ tier: "flash",
360823
+ family: "gemini-3",
360824
+ isPreview: false,
360825
+ isVisible: true,
360826
+ features: { thinking: false, multimodalToolUse: true }
360827
+ },
360737
360828
  "gemini-2.5-pro": {
360738
360829
  tier: "pro",
360739
360830
  family: "gemini-2.5",
@@ -360837,32 +360928,40 @@ var DEFAULT_MODEL_CONFIGS = {
360837
360928
  default: "gemini-3-flash-preview",
360838
360929
  contexts: [
360839
360930
  {
360840
- condition: { hasAccessToPreview: false, useGemini3_5Flash: true },
360841
- target: "gemini-3.5-flash"
360931
+ condition: { hasAccessToPreview: false, useLatestFlash: true },
360932
+ target: LATEST_GEMINI_FLASH_MODEL
360842
360933
  },
360843
360934
  {
360844
- condition: { hasAccessToPreview: false, useGemini3_5Flash: false },
360845
- target: "gemini-2.5-flash"
360935
+ condition: { hasAccessToPreview: false, useLatestFlash: false },
360936
+ target: BASE_GEMINI_FLASH_MODEL
360846
360937
  }
360847
360938
  ]
360848
360939
  },
360849
- "gemini-3.5-flash": {
360850
- default: "gemini-3.5-flash",
360940
+ [BASE_GEMINI_FLASH_MODEL]: {
360941
+ default: BASE_GEMINI_FLASH_MODEL,
360851
360942
  contexts: [
360852
360943
  {
360853
- condition: { useGemini3_5Flash: false, hasAccessToPreview: false },
360854
- target: "gemini-2.5-flash"
360855
- },
360944
+ condition: { useLatestFlash: true },
360945
+ target: LATEST_GEMINI_FLASH_MODEL
360946
+ }
360947
+ ]
360948
+ },
360949
+ [LATEST_GEMINI_FLASH_MODEL]: {
360950
+ default: LATEST_GEMINI_FLASH_MODEL,
360951
+ contexts: [
360856
360952
  {
360857
- condition: { useGemini3_5Flash: false },
360858
- target: "gemini-3-flash-preview"
360953
+ condition: { useLatestFlash: false },
360954
+ target: BASE_GEMINI_FLASH_MODEL
360859
360955
  }
360860
360956
  ]
360861
360957
  },
360862
360958
  "gemini-2.5-flash": {
360863
360959
  default: "gemini-2.5-flash",
360864
360960
  contexts: [
360865
- { condition: { useGemini3_5Flash: true }, target: "gemini-3.5-flash" }
360961
+ {
360962
+ condition: { useLatestFlash: true },
360963
+ target: LATEST_GEMINI_FLASH_MODEL
360964
+ }
360866
360965
  ]
360867
360966
  },
360868
360967
  "gemini-3-pro-preview": {
@@ -360907,21 +361006,45 @@ var DEFAULT_MODEL_CONFIGS = {
360907
361006
  }
360908
361007
  ]
360909
361008
  },
360910
- "gemini-3.1-flash-lite": {
360911
- default: "gemini-3.1-flash-lite"
361009
+ [BASE_GEMINI_FLASH_LITE_MODEL]: {
361010
+ default: BASE_GEMINI_FLASH_LITE_MODEL,
361011
+ contexts: [
361012
+ {
361013
+ condition: { useLatestFlashLite: true },
361014
+ target: LATEST_GEMINI_FLASH_LITE_MODEL
361015
+ }
361016
+ ]
361017
+ },
361018
+ [LATEST_GEMINI_FLASH_LITE_MODEL]: {
361019
+ default: LATEST_GEMINI_FLASH_LITE_MODEL,
361020
+ contexts: [
361021
+ {
361022
+ condition: { useLatestFlashLite: false },
361023
+ target: BASE_GEMINI_FLASH_LITE_MODEL
361024
+ }
361025
+ ]
360912
361026
  },
360913
361027
  flash: {
360914
361028
  default: "gemini-3-flash-preview",
360915
361029
  contexts: [
360916
- { condition: { useGemini3_5Flash: true }, target: "gemini-3.5-flash" },
361030
+ {
361031
+ condition: { useLatestFlash: true },
361032
+ target: LATEST_GEMINI_FLASH_MODEL
361033
+ },
360917
361034
  {
360918
361035
  condition: { hasAccessToPreview: false },
360919
- target: "gemini-2.5-flash"
361036
+ target: BASE_GEMINI_FLASH_MODEL
360920
361037
  }
360921
361038
  ]
360922
361039
  },
360923
361040
  "flash-lite": {
360924
- default: "gemini-3.1-flash-lite"
361041
+ default: BASE_GEMINI_FLASH_LITE_MODEL,
361042
+ contexts: [
361043
+ {
361044
+ condition: { useLatestFlashLite: true },
361045
+ target: LATEST_GEMINI_FLASH_LITE_MODEL
361046
+ }
361047
+ ]
360925
361048
  },
360926
361049
  "auto-gemini-3": {
360927
361050
  default: "gemini-3-pro-preview",
@@ -360945,14 +361068,17 @@ var DEFAULT_MODEL_CONFIGS = {
360945
361068
  flash: {
360946
361069
  default: "gemini-3-flash-preview",
360947
361070
  contexts: [
360948
- { condition: { useGemini3_5Flash: true }, target: "gemini-3.5-flash" },
361071
+ {
361072
+ condition: { useLatestFlash: true },
361073
+ target: LATEST_GEMINI_FLASH_MODEL
361074
+ },
360949
361075
  {
360950
361076
  condition: { hasAccessToPreview: false },
360951
- target: "gemini-2.5-flash"
361077
+ target: BASE_GEMINI_FLASH_MODEL
360952
361078
  },
360953
361079
  {
360954
361080
  condition: { requestedModels: ["gemini-2.5-pro", "auto-gemini-2.5"] },
360955
- target: "gemini-2.5-flash"
361081
+ target: BASE_GEMINI_FLASH_MODEL
360956
361082
  }
360957
361083
  ]
360958
361084
  },
@@ -361050,7 +361176,7 @@ var DEFAULT_MODEL_CONFIGS = {
361050
361176
  ],
361051
361177
  default: [
361052
361178
  {
361053
- model: "gemini-2.5-pro",
361179
+ model: DEFAULT_GEMINI_MODEL,
361054
361180
  actions: {
361055
361181
  terminal: "prompt",
361056
361182
  transient: "prompt",
@@ -361065,7 +361191,7 @@ var DEFAULT_MODEL_CONFIGS = {
361065
361191
  }
361066
361192
  },
361067
361193
  {
361068
- model: "gemini-2.5-flash",
361194
+ model: BASE_GEMINI_FLASH_MODEL,
361069
361195
  isLastResort: true,
361070
361196
  maxAttempts: 10,
361071
361197
  actions: {
@@ -361084,7 +361210,7 @@ var DEFAULT_MODEL_CONFIGS = {
361084
361210
  ],
361085
361211
  "auto-default": [
361086
361212
  {
361087
- model: "gemini-2.5-pro",
361213
+ model: DEFAULT_GEMINI_MODEL,
361088
361214
  maxAttempts: 3,
361089
361215
  actions: {
361090
361216
  terminal: "prompt",
@@ -361100,7 +361226,7 @@ var DEFAULT_MODEL_CONFIGS = {
361100
361226
  }
361101
361227
  },
361102
361228
  {
361103
- model: "gemini-2.5-flash",
361229
+ model: BASE_GEMINI_FLASH_MODEL,
361104
361230
  isLastResort: true,
361105
361231
  maxAttempts: 10,
361106
361232
  actions: {
@@ -361119,7 +361245,7 @@ var DEFAULT_MODEL_CONFIGS = {
361119
361245
  ],
361120
361246
  lite: [
361121
361247
  {
361122
- model: "flash-lite",
361248
+ model: BASE_GEMINI_FLASH_LITE_MODEL,
361123
361249
  actions: {
361124
361250
  terminal: "silent",
361125
361251
  transient: "silent",
@@ -361134,7 +361260,7 @@ var DEFAULT_MODEL_CONFIGS = {
361134
361260
  }
361135
361261
  },
361136
361262
  {
361137
- model: "gemini-2.5-flash",
361263
+ model: BASE_GEMINI_FLASH_MODEL,
361138
361264
  actions: {
361139
361265
  terminal: "silent",
361140
361266
  transient: "silent",
@@ -361149,7 +361275,7 @@ var DEFAULT_MODEL_CONFIGS = {
361149
361275
  }
361150
361276
  },
361151
361277
  {
361152
- model: "gemini-2.5-pro",
361278
+ model: DEFAULT_GEMINI_MODEL,
361153
361279
  isLastResort: true,
361154
361280
  actions: {
361155
361281
  terminal: "silent",
@@ -364369,6 +364495,9 @@ var ExperimentFlags = {
364369
364495
  GEMINI_3_1_PRO_LAUNCHED: 45760185,
364370
364496
  PRO_MODEL_NO_ACCESS: 45768879,
364371
364497
  DEFAULT_REQUEST_TIMEOUT: 45773134,
364498
+ LATEST_FLASH_GA_LAUNCHED: 45842815,
364499
+ LATEST_FLASH_LITE_GA_LAUNCHED: 45827489,
364500
+ /** @deprecated Use LATEST_FLASH_GA_LAUNCHED */
364372
364501
  GEMINI_3_5_FLASH_GA_LAUNCHED: 45780819
364373
364502
  };
364374
364503
 
@@ -379470,7 +379599,7 @@ var Config = class {
379470
379599
  if (!isAutoModel(model, this)) {
379471
379600
  return {};
379472
379601
  }
379473
- const primaryModel = resolveModel(model, this.getGemini31LaunchedSync(), this.getUseCustomToolModelSync(), this.getHasAccessToPreviewModel(), this, this.hasGemini35FlashGAAccess());
379602
+ const primaryModel = resolveModel(model, this.getGemini31LaunchedSync(), this.getUseCustomToolModelSync(), this.getHasAccessToPreviewModel(), this, this.hasLatestFlashGAAccess(), this.hasLatestFlashLiteGAAccess());
379474
379603
  const isPreview2 = isPreviewModel(primaryModel, this);
379475
379604
  const proModel = primaryModel;
379476
379605
  const flashModel = isPreview2 ? PREVIEW_GEMINI_FLASH_MODEL : DEFAULT_GEMINI_FLASH_MODEL;
@@ -379491,7 +379620,7 @@ var Config = class {
379491
379620
  if (pooled.remaining !== void 0) {
379492
379621
  return pooled.remaining;
379493
379622
  }
379494
- const primaryModel = resolveModel(this.getModel(), this.getGemini31LaunchedSync(), this.getUseCustomToolModelSync(), this.getHasAccessToPreviewModel(), this, this.hasGemini35FlashGAAccess());
379623
+ const primaryModel = resolveModel(this.getModel(), this.getGemini31LaunchedSync(), this.getUseCustomToolModelSync(), this.getHasAccessToPreviewModel(), this, this.hasLatestFlashGAAccess(), this.hasLatestFlashLiteGAAccess());
379495
379624
  return this.modelQuotas.get(primaryModel)?.remaining;
379496
379625
  }
379497
379626
  getQuotaLimit() {
@@ -379499,7 +379628,7 @@ var Config = class {
379499
379628
  if (pooled.limit !== void 0) {
379500
379629
  return pooled.limit;
379501
379630
  }
379502
- const primaryModel = resolveModel(this.getModel(), this.getGemini31LaunchedSync(), this.getUseCustomToolModelSync(), this.getHasAccessToPreviewModel(), this, this.hasGemini35FlashGAAccess());
379631
+ const primaryModel = resolveModel(this.getModel(), this.getGemini31LaunchedSync(), this.getUseCustomToolModelSync(), this.getHasAccessToPreviewModel(), this, this.hasLatestFlashGAAccess(), this.hasLatestFlashLiteGAAccess());
379503
379632
  return this.modelQuotas.get(primaryModel)?.limit;
379504
379633
  }
379505
379634
  getQuotaResetTime() {
@@ -379507,7 +379636,7 @@ var Config = class {
379507
379636
  if (pooled.resetTime !== void 0) {
379508
379637
  return pooled.resetTime;
379509
379638
  }
379510
- const primaryModel = resolveModel(this.getModel(), this.getGemini31LaunchedSync(), this.getUseCustomToolModelSync(), this.getHasAccessToPreviewModel(), this, this.hasGemini35FlashGAAccess());
379639
+ const primaryModel = resolveModel(this.getModel(), this.getGemini31LaunchedSync(), this.getUseCustomToolModelSync(), this.getHasAccessToPreviewModel(), this, this.hasLatestFlashGAAccess(), this.hasLatestFlashLiteGAAccess());
379511
379640
  return this.modelQuotas.get(primaryModel)?.resetTime;
379512
379641
  }
379513
379642
  getEmbeddingModel() {
@@ -379644,8 +379773,10 @@ var Config = class {
379644
379773
  continue;
379645
379774
  }
379646
379775
  let modelId = bucket.modelId;
379647
- if (modelId === SECONDARY_GEMINI_3_5_FLASH_MODEL) {
379648
- modelId = DEFAULT_GEMINI_3_5_FLASH_MODEL;
379776
+ if (modelId === LEGACY_CCPA_FLASH_MODEL || modelId === BASE_GEMINI_FLASH_MODEL || modelId === LATEST_GEMINI_FLASH_MODEL) {
379777
+ modelId = this.hasLatestFlashGAAccess() ? LATEST_GEMINI_FLASH_MODEL : BASE_GEMINI_FLASH_MODEL;
379778
+ } else if (modelId === BASE_GEMINI_FLASH_LITE_MODEL || modelId === LATEST_GEMINI_FLASH_LITE_MODEL) {
379779
+ modelId = this.hasLatestFlashLiteGAAccess() ? LATEST_GEMINI_FLASH_LITE_MODEL : BASE_GEMINI_FLASH_LITE_MODEL;
379649
379780
  }
379650
379781
  let remaining;
379651
379782
  let limit;
@@ -380505,29 +380636,45 @@ ${sections.join("\n")}
380505
380636
  return authType === AuthType2.USE_GEMINI || authType === AuthType2.USE_VERTEX_AI || authType === AuthType2.GATEWAY;
380506
380637
  }
380507
380638
  /**
380508
- * Returns whether Gemini 3.5 Flash GA has been launched.
380509
- *
380510
- * Note: This method should only be called after startup, once experiments have been loaded.
380639
+ * Returns whether the latest Flash GA model (currently Gemini 3.8 Flash) has been launched.
380511
380640
  */
380512
- hasGemini35FlashGAAccess() {
380641
+ hasLatestFlashGAAccess() {
380513
380642
  const authType = this.contentGeneratorConfig?.authType;
380514
380643
  const hasAccess = (() => {
380515
380644
  if (this.isGemini31LaunchedForAuthType(authType)) {
380516
380645
  return true;
380517
380646
  }
380518
- return this.experiments?.flags[ExperimentFlags.GEMINI_3_5_FLASH_GA_LAUNCHED]?.boolValue ?? false;
380647
+ return this.experiments?.flags[ExperimentFlags.LATEST_FLASH_GA_LAUNCHED]?.boolValue ?? false;
380519
380648
  })();
380520
380649
  if (hasAccess) {
380521
380650
  if (authType === AuthType2.USE_GEMINI) {
380522
- setFlashModels("gemini-3-flash-preview", "gemini-3.5-flash");
380651
+ setFlashModels("gemini-3-flash-preview", LATEST_GEMINI_FLASH_MODEL);
380523
380652
  } else {
380524
- setFlashModels("gemini-3.5-flash", "gemini-3.5-flash");
380653
+ setFlashModels(LATEST_GEMINI_FLASH_MODEL, LATEST_GEMINI_FLASH_MODEL);
380525
380654
  }
380526
380655
  } else {
380527
- setFlashModels("gemini-3-flash-preview", "gemini-2.5-flash");
380656
+ setFlashModels("gemini-3-flash-preview", BASE_GEMINI_FLASH_MODEL);
380528
380657
  }
380529
380658
  return hasAccess;
380530
380659
  }
380660
+ /** @deprecated Use hasLatestFlashGAAccess() */
380661
+ hasGemini35FlashGAAccess() {
380662
+ return this.hasLatestFlashGAAccess();
380663
+ }
380664
+ /**
380665
+ * Returns whether the latest Flash Lite GA model (currently Gemini 3.5 Flash Lite) has been launched.
380666
+ */
380667
+ hasLatestFlashLiteGAAccess() {
380668
+ const authType = this.contentGeneratorConfig?.authType;
380669
+ const hasAccess = (() => {
380670
+ if (this.isGemini31LaunchedForAuthType(authType)) {
380671
+ return true;
380672
+ }
380673
+ return this.experiments?.flags[ExperimentFlags.LATEST_FLASH_LITE_GA_LAUNCHED]?.boolValue ?? false;
380674
+ })();
380675
+ setFlashLiteModel(hasAccess ? LATEST_GEMINI_FLASH_LITE_MODEL : BASE_GEMINI_FLASH_LITE_MODEL);
380676
+ return hasAccess;
380677
+ }
380531
380678
  /**
380532
380679
  * Returns whether Gemini 3.1 has been launched.
380533
380680
  *
@@ -380920,6 +381067,8 @@ ${sections.join("\n")}
380920
381067
  compact: false
380921
381068
  });
380922
381069
  debugLogger.debug("Experiments loaded", summaryString);
381070
+ this.hasLatestFlashGAAccess();
381071
+ this.hasLatestFlashLiteGAAccess();
380923
381072
  }
380924
381073
  onAgentsRefreshed = async () => {
380925
381074
  const client = this.geminiClient;
@@ -398037,15 +398186,23 @@ export {
398037
398186
  PREVIEW_GEMINI_3_1_CUSTOM_TOOLS_MODEL,
398038
398187
  PREVIEW_GEMINI_FLASH_MODEL,
398039
398188
  DEFAULT_GEMINI_MODEL,
398040
- DEFAULT_GEMINI_FLASH_MODEL,
398189
+ BASE_GEMINI_FLASH_MODEL,
398190
+ LATEST_GEMINI_FLASH_MODEL,
398191
+ LEGACY_CCPA_FLASH_MODEL,
398041
398192
  DEFAULT_GEMINI_3_5_FLASH_MODEL,
398042
398193
  SECONDARY_GEMINI_3_5_FLASH_MODEL,
398043
- setFlashModels,
398194
+ BASE_GEMINI_FLASH_LITE_MODEL,
398195
+ LATEST_GEMINI_FLASH_LITE_MODEL,
398196
+ DEFAULT_GEMINI_FLASH_MODEL,
398044
398197
  DEFAULT_GEMINI_FLASH_LITE_MODEL,
398198
+ setFlashModels,
398199
+ setFlashLiteModel,
398200
+ resetModelsForTesting,
398045
398201
  PREVIEW_GEMINI_FLASH_LITE_MODEL,
398046
398202
  GEMMA_4_31B_IT_MODEL,
398047
398203
  GEMMA_4_26B_A4B_IT_MODEL,
398048
398204
  VALID_GEMINI_MODELS,
398205
+ getBackendModelMappings,
398049
398206
  PREVIEW_GEMINI_MODEL_AUTO,
398050
398207
  DEFAULT_GEMINI_MODEL_AUTO,
398051
398208
  GEMINI_MODEL_ALIAS_AUTO,