@google/gemini-cli 0.45.0-preview.0 → 0.46.0-preview.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 (55) hide show
  1. package/bundle/{chunk-Y5REX36P.js → chunk-2GMVQS2Q.js} +1 -1
  2. package/bundle/{chunk-J4QUIOHJ.js → chunk-4AGOZ7LL.js} +7 -7
  3. package/bundle/{chunk-GIXFMPPJ.js → chunk-4K3E3G6Z.js} +1 -1
  4. package/bundle/{chunk-EZCW6IDX.js → chunk-5LUCCXOB.js} +1 -1
  5. package/bundle/{chunk-2RRZM3IR.js → chunk-773AJHDP.js} +7 -7
  6. package/bundle/{chunk-IPQLMJS5.js → chunk-BOJOJVNV.js} +1 -1
  7. package/bundle/{chunk-2O7YSVPU.js → chunk-F2LLVPPS.js} +2 -2
  8. package/bundle/{chunk-4FNXKOEB.js → chunk-FIM2LOYZ.js} +153 -54
  9. package/bundle/{chunk-NOJPXYUJ.js → chunk-GTRQQGSJ.js} +1 -1
  10. package/bundle/{chunk-J7SEBVDD.js → chunk-HHFFICNK.js} +176 -56
  11. package/bundle/{chunk-LUQGJPIY.js → chunk-HMR43ZX2.js} +2 -2
  12. package/bundle/{chunk-4M3TG6ZU.js → chunk-HZNEV3DS.js} +1 -1
  13. package/bundle/{chunk-DMCSPKNM.js → chunk-J444UQD3.js} +1 -1
  14. package/bundle/{chunk-I7UI7NB6.js → chunk-LBE2WKE7.js} +3 -3
  15. package/bundle/{chunk-TH3OOWK4.js → chunk-MFYAVF7Y.js} +7 -7
  16. package/bundle/{chunk-OY6QYVTR.js → chunk-QFEJQS5X.js} +1 -1
  17. package/bundle/{chunk-R5OZKB4U.js → chunk-RXG3JOOZ.js} +1 -1
  18. package/bundle/{chunk-S4CJ6KAO.js → chunk-S2ICEQVC.js} +3 -3
  19. package/bundle/{chunk-N4X4WHSW.js → chunk-SHFHGDWR.js} +2 -2
  20. package/bundle/{chunk-APSDEHHA.js → chunk-TDYUKPZH.js} +1 -1
  21. package/bundle/{chunk-CWAXEILN.js → chunk-XRDSBRG4.js} +174 -54
  22. package/bundle/{chunk-WPCNMQ6J.js → chunk-YMNECODB.js} +1 -1
  23. package/bundle/{chunk-Q3UZDZZV.js → chunk-ZQGZKIDD.js} +3 -3
  24. package/bundle/{chunk-VS2OY6HJ.js → chunk-ZXN4VW7M.js} +1 -1
  25. package/bundle/{cleanup-2WCUS5XU.js → cleanup-2WXD6UQP.js} +2 -2
  26. package/bundle/{cleanup-7FHLTEXT.js → cleanup-L3CLNVX6.js} +2 -2
  27. package/bundle/{cleanup-WGOZFAQJ.js → cleanup-SUDL37MT.js} +2 -2
  28. package/bundle/{core-SIRU2VWJ.js → core-MOYKPEYV.js} +5 -1
  29. package/bundle/{dist-67ZORME5.js → core-VVRQ2GQD.js} +5 -1
  30. package/bundle/{devtoolsService-F5XFL4BF.js → devtoolsService-E62WA3CY.js} +2 -2
  31. package/bundle/{devtoolsService-4Y2RGEUE.js → devtoolsService-GLW7S6PS.js} +2 -2
  32. package/bundle/{devtoolsService-IANYOK3R.js → devtoolsService-ZYCBBAV3.js} +2 -2
  33. package/bundle/{core-LD6MHGD6.js → dist-GPCRVPKS.js} +5 -1
  34. package/bundle/docs/changelogs/index.md +14 -0
  35. package/bundle/docs/changelogs/latest.md +202 -199
  36. package/bundle/docs/changelogs/preview.md +44 -200
  37. package/bundle/docs/issue-and-pr-automation.md +29 -1
  38. package/bundle/docs/reference/configuration.md +69 -0
  39. package/bundle/{gemini-74UML3PJ.js → gemini-2JTOIMGM.js} +14 -14
  40. package/bundle/{gemini-24ENZ343.js → gemini-KV5CHM4H.js} +14 -14
  41. package/bundle/{gemini-5ZI322FJ.js → gemini-R5NCXCEL.js} +13 -13
  42. package/bundle/gemini.js +10 -9
  43. package/bundle/{interactiveCli-BVZLMTVC.js → interactiveCli-7SIMXKNU.js} +20 -10
  44. package/bundle/{interactiveCli-XM5HDVD7.js → interactiveCli-HVAQTBJK.js} +20 -10
  45. package/bundle/{interactiveCli-7GM3U7SA.js → interactiveCli-RMWTSIEN.js} +20 -10
  46. package/bundle/{liteRtServerManager-6N5DYDEQ.js → liteRtServerManager-BP7XKGNU.js} +4 -4
  47. package/bundle/{liteRtServerManager-JVMDH3TN.js → liteRtServerManager-FY23PYSD.js} +4 -4
  48. package/bundle/{liteRtServerManager-3HS3VUPU.js → liteRtServerManager-LDS45QKP.js} +4 -4
  49. package/bundle/{oauth2-provider-U72EWZHQ.js → oauth2-provider-4SSSEI6P.js} +1 -1
  50. package/bundle/{oauth2-provider-WS7LUQ5V.js → oauth2-provider-KL44D6HV.js} +1 -1
  51. package/bundle/{oauth2-provider-RUFABDNL.js → oauth2-provider-VVNBQH45.js} +1 -1
  52. package/bundle/{start-KOAGXRA2.js → start-DLEOBFRC.js} +6 -6
  53. package/bundle/{start-XLIGOOW3.js → start-FRM2XDGC.js} +6 -6
  54. package/bundle/{start-DJ6EBFEA.js → start-OEPJINIW.js} +6 -6
  55. package/package.json +1 -1
@@ -275810,6 +275810,11 @@ var PREVIEW_GEMINI_3_1_CUSTOM_TOOLS_MODEL = "gemini-3.1-pro-preview-customtools"
275810
275810
  var PREVIEW_GEMINI_FLASH_MODEL = "gemini-3-flash-preview";
275811
275811
  var DEFAULT_GEMINI_MODEL = "gemini-2.5-pro";
275812
275812
  var DEFAULT_GEMINI_FLASH_MODEL = "gemini-2.5-flash";
275813
+ var DEFAULT_GEMINI_3_5_FLASH_MODEL = "gemini-3.5-flash";
275814
+ function setFlashModels(preview, defaultFlash) {
275815
+ PREVIEW_GEMINI_FLASH_MODEL = preview;
275816
+ DEFAULT_GEMINI_FLASH_MODEL = defaultFlash;
275817
+ }
275813
275818
  var DEFAULT_GEMINI_FLASH_LITE_MODEL = "gemini-3.1-flash-lite";
275814
275819
  var PREVIEW_GEMINI_FLASH_LITE_MODEL = "none";
275815
275820
  var GEMMA_4_31B_IT_MODEL = "gemma-4-31b-it";
@@ -275822,6 +275827,7 @@ var VALID_GEMINI_MODELS = /* @__PURE__ */ new Set([
275822
275827
  PREVIEW_GEMINI_FLASH_LITE_MODEL,
275823
275828
  DEFAULT_GEMINI_MODEL,
275824
275829
  DEFAULT_GEMINI_FLASH_MODEL,
275830
+ DEFAULT_GEMINI_3_5_FLASH_MODEL,
275825
275831
  DEFAULT_GEMINI_FLASH_LITE_MODEL,
275826
275832
  GEMMA_4_31B_IT_MODEL,
275827
275833
  GEMMA_4_26B_A4B_IT_MODEL
@@ -275839,20 +275845,21 @@ function getAutoModelDescription(hasAccessToPreview, useGemini3_1 = false) {
275839
275845
  const flashModel = hasAccessToPreview ? PREVIEW_GEMINI_FLASH_MODEL : DEFAULT_GEMINI_FLASH_MODEL;
275840
275846
  return `Let Gemini CLI decide the best model for the task: ${proModel}, ${flashModel}`;
275841
275847
  }
275842
- function resolveModel(requestedModel, useGemini3_1 = false, useCustomToolModel = false, hasAccessToPreview = true, config2) {
275848
+ function resolveModel(requestedModel, useGemini3_1 = false, useCustomToolModel = false, hasAccessToPreview = true, config2, useGemini3_5Flash = false) {
275843
275849
  const normalizedModel = Array.isArray(requestedModel) ? String(requestedModel.at(-1) ?? "").trim() || "" : typeof requestedModel !== "string" ? String(requestedModel ?? "").trim() || "" : requestedModel.trim() || "";
275844
275850
  if (config2?.getExperimentalDynamicModelConfiguration?.() === true) {
275845
275851
  const resolved2 = config2.modelConfigService.resolveModelId(normalizedModel, {
275846
275852
  useGemini3_1,
275847
275853
  useCustomTools: useCustomToolModel,
275848
- hasAccessToPreview
275854
+ hasAccessToPreview,
275855
+ useGemini3_5Flash
275849
275856
  });
275850
275857
  if (!hasAccessToPreview && isPreviewModel(resolved2, config2)) {
275851
275858
  if (resolved2.includes("flash-lite")) {
275852
275859
  return DEFAULT_GEMINI_FLASH_LITE_MODEL;
275853
275860
  }
275854
275861
  if (resolved2.includes("flash")) {
275855
- return DEFAULT_GEMINI_FLASH_MODEL;
275862
+ return useGemini3_5Flash ? DEFAULT_GEMINI_3_5_FLASH_MODEL : DEFAULT_GEMINI_FLASH_MODEL;
275856
275863
  }
275857
275864
  return DEFAULT_GEMINI_MODEL;
275858
275865
  }
@@ -275881,7 +275888,7 @@ function resolveModel(requestedModel, useGemini3_1 = false, useCustomToolModel =
275881
275888
  break;
275882
275889
  }
275883
275890
  case GEMINI_MODEL_ALIAS_FLASH: {
275884
- resolved = PREVIEW_GEMINI_FLASH_MODEL;
275891
+ resolved = useGemini3_5Flash ? DEFAULT_GEMINI_3_5_FLASH_MODEL : PREVIEW_GEMINI_FLASH_MODEL;
275885
275892
  break;
275886
275893
  }
275887
275894
  case GEMINI_MODEL_ALIAS_FLASH_LITE: {
@@ -275896,10 +275903,13 @@ function resolveModel(requestedModel, useGemini3_1 = false, useCustomToolModel =
275896
275903
  if (resolved === "none") {
275897
275904
  return DEFAULT_GEMINI_FLASH_LITE_MODEL;
275898
275905
  }
275906
+ if (useGemini3_5Flash && isFlashModel(resolved)) {
275907
+ return DEFAULT_GEMINI_3_5_FLASH_MODEL;
275908
+ }
275899
275909
  if (!hasAccessToPreview && isPreviewModel(resolved)) {
275900
275910
  switch (resolved) {
275901
275911
  case PREVIEW_GEMINI_FLASH_MODEL:
275902
- return DEFAULT_GEMINI_FLASH_MODEL;
275912
+ return useGemini3_5Flash ? DEFAULT_GEMINI_3_5_FLASH_MODEL : DEFAULT_GEMINI_FLASH_MODEL;
275903
275913
  case PREVIEW_GEMINI_MODEL:
275904
275914
  case PREVIEW_GEMINI_3_1_MODEL:
275905
275915
  case PREVIEW_GEMINI_3_1_CUSTOM_TOOLS_MODEL:
@@ -275909,31 +275919,38 @@ function resolveModel(requestedModel, useGemini3_1 = false, useCustomToolModel =
275909
275919
  return DEFAULT_GEMINI_FLASH_LITE_MODEL;
275910
275920
  }
275911
275921
  if (resolved.includes("flash")) {
275912
- return DEFAULT_GEMINI_FLASH_MODEL;
275922
+ return useGemini3_5Flash ? DEFAULT_GEMINI_3_5_FLASH_MODEL : DEFAULT_GEMINI_FLASH_MODEL;
275913
275923
  }
275914
275924
  return DEFAULT_GEMINI_MODEL;
275915
275925
  }
275916
275926
  }
275917
275927
  return resolved;
275918
275928
  }
275919
- function resolveClassifierModel(requestedModel, modelAlias, useGemini3_1 = false, useCustomToolModel = false, hasAccessToPreview = true, config2) {
275929
+ function isFlashModel(model) {
275930
+ return model === DEFAULT_GEMINI_FLASH_MODEL || model === PREVIEW_GEMINI_FLASH_MODEL || model === DEFAULT_GEMINI_3_5_FLASH_MODEL || model === "flash" || model.endsWith("flash");
275931
+ }
275932
+ function resolveClassifierModel(requestedModel, modelAlias, useGemini3_1 = false, useCustomToolModel = false, hasAccessToPreview = true, config2, useGemini3_5Flash = false) {
275920
275933
  if (config2?.getExperimentalDynamicModelConfiguration?.() === true) {
275921
275934
  return config2.modelConfigService.resolveClassifierModelId(modelAlias, requestedModel, {
275922
275935
  useGemini3_1,
275923
275936
  useCustomTools: useCustomToolModel,
275924
- hasAccessToPreview
275937
+ hasAccessToPreview,
275938
+ useGemini3_5Flash
275925
275939
  });
275926
275940
  }
275927
275941
  if (modelAlias === GEMINI_MODEL_ALIAS_FLASH) {
275928
275942
  if (requestedModel === DEFAULT_GEMINI_MODEL_AUTO || requestedModel === DEFAULT_GEMINI_MODEL) {
275929
- return DEFAULT_GEMINI_FLASH_MODEL;
275943
+ return useGemini3_5Flash ? DEFAULT_GEMINI_3_5_FLASH_MODEL : DEFAULT_GEMINI_FLASH_MODEL;
275930
275944
  }
275931
275945
  if (requestedModel === PREVIEW_GEMINI_MODEL_AUTO || requestedModel === PREVIEW_GEMINI_MODEL || requestedModel === GEMINI_MODEL_ALIAS_AUTO) {
275946
+ if (useGemini3_5Flash) {
275947
+ return DEFAULT_GEMINI_3_5_FLASH_MODEL;
275948
+ }
275932
275949
  return hasAccessToPreview ? PREVIEW_GEMINI_FLASH_MODEL : DEFAULT_GEMINI_FLASH_MODEL;
275933
275950
  }
275934
- return resolveModel(GEMINI_MODEL_ALIAS_FLASH, false, false, hasAccessToPreview);
275951
+ return resolveModel(GEMINI_MODEL_ALIAS_FLASH, false, false, hasAccessToPreview, config2, useGemini3_5Flash);
275935
275952
  }
275936
- return resolveModel(requestedModel, useGemini3_1, useCustomToolModel, hasAccessToPreview, config2);
275953
+ return resolveModel(requestedModel, useGemini3_1, useCustomToolModel, hasAccessToPreview, config2, useGemini3_5Flash);
275937
275954
  }
275938
275955
  function getDisplayString(model, config2) {
275939
275956
  if (config2?.getExperimentalDynamicModelConfiguration?.() === true) {
@@ -279279,8 +279296,8 @@ function isValidToolName(name3, options = {}) {
279279
279296
  }
279280
279297
 
279281
279298
  // packages/core/dist/src/generated/git-commit.js
279282
- var GIT_COMMIT_INFO = "5cac7c10f";
279283
- var CLI_VERSION = "0.45.0-preview.0";
279299
+ var GIT_COMMIT_INFO = "cfcecebe8";
279300
+ var CLI_VERSION = "0.46.0-preview.0";
279284
279301
 
279285
279302
  // packages/core/dist/src/ide/detect-ide.js
279286
279303
  var IDE_DEFINITIONS = {
@@ -303445,7 +303462,7 @@ function getVersion() {
303445
303462
  }
303446
303463
  versionPromise = (async () => {
303447
303464
  const pkgJson = await getPackageJson(__dirname4);
303448
- return "0.45.0-preview.0";
303465
+ return "0.46.0-preview.0";
303449
303466
  })();
303450
303467
  return versionPromise;
303451
303468
  }
@@ -304279,7 +304296,7 @@ var FLASH_LITE_CHAIN = [
304279
304296
  function getModelPolicyChain(options) {
304280
304297
  const isAuto = options.isAutoSelection ?? false;
304281
304298
  if (options.previewEnabled) {
304282
- const proModel = resolveModel(PREVIEW_GEMINI_MODEL, options.useGemini31, options.useCustomToolModel);
304299
+ const proModel = resolveModel(PREVIEW_GEMINI_MODEL, options.useGemini31, options.useCustomToolModel, true, void 0, options.useGemini3_5Flash);
304283
304300
  return [
304284
304301
  definePolicy({
304285
304302
  model: proModel,
@@ -304354,15 +304371,17 @@ function resolvePolicyChain(config2, preferredModel, wrapsAround = false) {
304354
304371
  const useGemini31 = config2.getGemini31LaunchedSync?.() ?? false;
304355
304372
  const useCustomToolModel = config2.getUseCustomToolModelSync?.() ?? false;
304356
304373
  const hasAccessToPreview = config2.getHasAccessToPreviewModel?.() ?? false;
304374
+ const useGemini3_5Flash = config2.hasGemini35FlashGAAccess?.() ?? false;
304357
304375
  const isOriginallyGemini3 = isGemini3Model(modelFromConfig, config2);
304358
- const resolvedModel = normalizeModelId(resolveModel(modelFromConfig, useGemini31, useCustomToolModel, hasAccessToPreview, config2));
304376
+ const resolvedModel = normalizeModelId(resolveModel(modelFromConfig, useGemini31, useCustomToolModel, hasAccessToPreview, config2, useGemini3_5Flash));
304359
304377
  const isAutoPreferred = normalizedPreferredModel ? isAutoModel(normalizedPreferredModel, config2) : false;
304360
304378
  const isAutoConfigured = isAutoModel(configuredModel, config2);
304361
304379
  const effectiveWrapsAround = wrapsAround || isAutoPreferred || isAutoConfigured || isOriginallyGemini3;
304362
304380
  if (config2.getExperimentalDynamicModelConfiguration?.() === true) {
304363
304381
  const context2 = {
304364
304382
  useGemini3_1: useGemini31,
304365
- useCustomTools: useCustomToolModel
304383
+ useCustomTools: useCustomToolModel,
304384
+ useGemini3_5Flash
304366
304385
  };
304367
304386
  if (resolvedModel === DEFAULT_GEMINI_FLASH_LITE_MODEL) {
304368
304387
  chain2 = config2.modelConfigService.resolveChain("lite", context2);
@@ -304394,7 +304413,8 @@ function resolvePolicyChain(config2, preferredModel, wrapsAround = false) {
304394
304413
  isAutoSelection,
304395
304414
  userTier: config2.getUserTier(),
304396
304415
  useGemini31,
304397
- useCustomToolModel
304416
+ useCustomToolModel,
304417
+ useGemini3_5Flash
304398
304418
  });
304399
304419
  } else {
304400
304420
  chain2 = getModelPolicyChain({
@@ -304402,7 +304422,8 @@ function resolvePolicyChain(config2, preferredModel, wrapsAround = false) {
304402
304422
  isAutoSelection,
304403
304423
  userTier: config2.getUserTier(),
304404
304424
  useGemini31,
304405
- useCustomToolModel
304425
+ useCustomToolModel,
304426
+ useGemini3_5Flash
304406
304427
  });
304407
304428
  }
304408
304429
  } else {
@@ -308219,7 +308240,7 @@ async function createContentGenerator(config2, gcConfig, sessionId) {
308219
308240
  return new LoggingContentGenerator(fakeGenerator, gcConfig);
308220
308241
  }
308221
308242
  const version4 = await getVersion();
308222
- const model = resolveModel(gcConfig.getModel(), config2.authType === AuthType2.USE_GEMINI || config2.authType === AuthType2.USE_VERTEX_AI || (await gcConfig.getGemini31Launched?.() ?? false), false, gcConfig.getHasAccessToPreviewModel?.() ?? true, gcConfig);
308243
+ const model = resolveModel(gcConfig.getModel(), config2.authType === AuthType2.USE_GEMINI || config2.authType === AuthType2.USE_VERTEX_AI || (await gcConfig.getGemini31Launched?.() ?? false), false, gcConfig.getHasAccessToPreviewModel?.() ?? true, gcConfig, gcConfig.hasGemini35FlashGAAccess?.() ?? false);
308223
308244
  const customHeadersEnv = process.env["GEMINI_CLI_CUSTOM_HEADERS"] || void 0;
308224
308245
  const clientName = gcConfig.getClientName();
308225
308246
  const surface = determineSurface2();
@@ -320228,21 +320249,31 @@ ${truncated}`;
320228
320249
  return;
320229
320250
  }
320230
320251
  const activePty = this.activePtys.get(pid);
320231
- if (activePty) {
320252
+ if (!activePty) {
320253
+ return;
320254
+ }
320255
+ if (process.platform !== "win32") {
320232
320256
  try {
320233
- activePty.ptyProcess.resize(cols, rows);
320234
- activePty.headlessTerminal.resize(cols, rows);
320257
+ process.kill(pid, 0);
320235
320258
  } catch (e2) {
320236
- const err2 = e2;
320237
- const isEsrch = err2.code === "ESRCH";
320238
- const isEbadf = err2.code === "EBADF" || err2.message?.includes("EBADF");
320239
- const isWindowsPtyError = err2.message?.includes("Cannot resize a pty that has already exited");
320240
- if (isEsrch || isEbadf || isWindowsPtyError) {
320241
- } else {
320242
- throw e2;
320259
+ if (isNodeError(e2) && e2.code === "ESRCH") {
320260
+ return;
320243
320261
  }
320244
320262
  }
320245
320263
  }
320264
+ try {
320265
+ activePty.ptyProcess.resize(cols, rows);
320266
+ activePty.headlessTerminal.resize(cols, rows);
320267
+ } catch (e2) {
320268
+ const err2 = e2;
320269
+ const isEsrch = err2.code === "ESRCH";
320270
+ const isEbadf = err2.code === "EBADF" || err2.message?.includes("EBADF");
320271
+ const isWindowsPtyError = err2.message?.includes("Cannot resize a pty that has already exited");
320272
+ if (isEsrch || isEbadf || isWindowsPtyError) {
320273
+ } else {
320274
+ throw e2;
320275
+ }
320276
+ }
320246
320277
  if (activePty) {
320247
320278
  const endLine = activePty.headlessTerminal.buffer.active.length;
320248
320279
  const startLine = Math.max(0, endLine - (activePty.maxSerializedLines ?? 2e3));
@@ -321133,16 +321164,18 @@ ${result2.output}`;
321133
321164
  }
321134
321165
  signal.removeEventListener("abort", onAbort);
321135
321166
  timeoutController.signal.removeEventListener("abort", onAbort);
321136
- if (tempFilePath) {
321137
- try {
321138
- await fsPromises9.unlink(tempFilePath);
321139
- } catch {
321167
+ if (!this.params.is_background) {
321168
+ if (tempFilePath) {
321169
+ try {
321170
+ await fsPromises9.unlink(tempFilePath);
321171
+ } catch {
321172
+ }
321140
321173
  }
321141
- }
321142
- if (tempDir) {
321143
- try {
321144
- await fsPromises9.rm(tempDir, { recursive: true, force: true });
321145
- } catch {
321174
+ if (tempDir) {
321175
+ try {
321176
+ await fsPromises9.rm(tempDir, { recursive: true, force: true });
321177
+ } catch {
321178
+ }
321146
321179
  }
321147
321180
  }
321148
321181
  }
@@ -328136,9 +328169,9 @@ var GeminiChat = class {
328136
328169
  const apiCall = async () => {
328137
328170
  const useGemini3_1 = await this.context.config.getGemini31Launched?.() ?? false;
328138
328171
  const hasAccessToPreview = this.context.config.getHasAccessToPreviewModel?.() ?? true;
328139
- let modelToUse = resolveModel(lastModelToUse, useGemini3_1, false, hasAccessToPreview, this.context.config);
328172
+ let modelToUse = resolveModel(lastModelToUse, useGemini3_1, false, hasAccessToPreview, this.context.config, this.context.config.hasGemini35FlashGAAccess?.() ?? false);
328140
328173
  if (this.context.config.getActiveModel() !== initialActiveModel) {
328141
- modelToUse = resolveModel(this.context.config.getActiveModel(), useGemini3_1, false, hasAccessToPreview, this.context.config);
328174
+ modelToUse = resolveModel(this.context.config.getActiveModel(), useGemini3_1, false, hasAccessToPreview, this.context.config, this.context.config.hasGemini35FlashGAAccess?.() ?? false);
328142
328175
  }
328143
328176
  if (modelToUse !== lastModelToUse) {
328144
328177
  const { generateContentConfig: newConfig } = this.context.config.modelConfigService.getResolvedConfig({
@@ -328177,7 +328210,7 @@ var GeminiChat = class {
328177
328210
  throw new AgentExecutionBlockedError(beforeModelResult.reason || "Model call blocked by hook", syntheticResponse);
328178
328211
  }
328179
328212
  if (beforeModelResult.modifiedModel) {
328180
- modelToUse = resolveModel(beforeModelResult.modifiedModel, useGemini3_1, false, hasAccessToPreview, this.context.config);
328213
+ modelToUse = resolveModel(beforeModelResult.modifiedModel, useGemini3_1, false, hasAccessToPreview, this.context.config, this.context.config.hasGemini35FlashGAAccess?.() ?? false);
328181
328214
  lastModelToUse = modelToUse;
328182
328215
  contentsToUse = supportsModernFeatures(modelToUse) ? [...contentsForPreviewModel] : [...requestContents];
328183
328216
  }
@@ -330535,7 +330568,7 @@ var PromptProvider = class {
330535
330568
  const isTopicUpdateNarrationEnabled = topicUpdateNarrationOverride ?? context2.config.isTopicUpdateNarrationEnabled();
330536
330569
  const enabledToolNames = new Set(toolNames);
330537
330570
  const approvedPlanPath = context2.config.getApprovedPlanPath();
330538
- const desiredModel = resolveModel(context2.config.getActiveModel(), context2.config.getGemini31LaunchedSync?.() ?? false, false, context2.config.getHasAccessToPreviewModel?.() ?? true, context2.config);
330571
+ const desiredModel = resolveModel(context2.config.getActiveModel(), context2.config.getGemini31LaunchedSync?.() ?? false, false, context2.config.getHasAccessToPreviewModel?.() ?? true, context2.config, context2.config.hasGemini35FlashGAAccess?.() ?? false);
330539
330572
  const isModernModel = supportsModernFeatures(desiredModel);
330540
330573
  const activeSnippets = isModernModel ? snippets_exports : snippets_legacy_exports;
330541
330574
  const contextFilenames = getAllGeminiMdFilenames();
@@ -330653,7 +330686,7 @@ var PromptProvider = class {
330653
330686
  return sanitizedPrompt;
330654
330687
  }
330655
330688
  getCompressionPrompt(context2) {
330656
- const desiredModel = resolveModel(context2.config.getActiveModel(), context2.config.getGemini31LaunchedSync?.() ?? false, false, context2.config.getHasAccessToPreviewModel?.() ?? true, context2.config);
330689
+ const desiredModel = resolveModel(context2.config.getActiveModel(), context2.config.getGemini31LaunchedSync?.() ?? false, false, context2.config.getHasAccessToPreviewModel?.() ?? true, context2.config, context2.config.hasGemini35FlashGAAccess?.() ?? false);
330657
330690
  const isModernModel = supportsModernFeatures(desiredModel);
330658
330691
  const activeSnippets = isModernModel ? snippets_exports : snippets_legacy_exports;
330659
330692
  return activeSnippets.getCompressionPrompt(context2.config.getApprovedPlanPath());
@@ -335767,7 +335800,7 @@ var A2AAuthProviderFactory = class _A2AAuthProviderFactory {
335767
335800
  return provider;
335768
335801
  }
335769
335802
  case "oauth2": {
335770
- const { OAuth2AuthProvider } = await import("./oauth2-provider-RUFABDNL.js");
335803
+ const { OAuth2AuthProvider } = await import("./oauth2-provider-VVNBQH45.js");
335771
335804
  const provider = new OAuth2AuthProvider(authConfig, options.agentName ?? "unknown", agentCard, options.agentCardUrl);
335772
335805
  await provider.initialize();
335773
335806
  return provider;
@@ -335992,6 +336025,8 @@ var ModelConfigService = class _ModelConfigService {
335992
336025
  return value === context2.useGemini3_1;
335993
336026
  case "useGemini3_1FlashLite":
335994
336027
  return value === context2.useGemini3_1FlashLite;
336028
+ case "useGemini3_5Flash":
336029
+ return value === context2.useGemini3_5Flash;
335995
336030
  case "useCustomTools":
335996
336031
  return value === context2.useCustomTools;
335997
336032
  case "hasAccessToPreview":
@@ -342158,7 +342193,7 @@ var GeminiClient = class {
342158
342193
  if (this.currentSequenceModel) {
342159
342194
  return this.currentSequenceModel;
342160
342195
  }
342161
- return resolveModel(this.config.getActiveModel(), this.config.getGemini31LaunchedSync?.() ?? false, false, this.config.getHasAccessToPreviewModel?.() ?? true, this.config);
342196
+ return resolveModel(this.config.getActiveModel(), this.config.getGemini31LaunchedSync?.() ?? false, false, this.config.getHasAccessToPreviewModel?.() ?? true, this.config, this.config.hasGemini35FlashGAAccess?.() ?? false);
342162
342197
  }
342163
342198
  async *processTurn(request, signal, prompt_id, boundedTurns, displayContent) {
342164
342199
  let turn = new Turn(this.getChat(), prompt_id);
@@ -355679,7 +355714,7 @@ ${formattedHistory}
355679
355714
  var DefaultStrategy = class {
355680
355715
  name = "default";
355681
355716
  async route(_context, config2, _baseLlmClient, _localLiteRtLmClient) {
355682
- const defaultModel = resolveModel(config2.getModel(), config2.getGemini31LaunchedSync?.() ?? false, false, config2.getHasAccessToPreviewModel?.() ?? true, config2);
355717
+ const defaultModel = resolveModel(config2.getModel(), config2.getGemini31LaunchedSync?.() ?? false, false, config2.getHasAccessToPreviewModel?.() ?? true, config2, config2.hasGemini35FlashGAAccess?.() ?? false);
355683
355718
  return {
355684
355719
  model: defaultModel,
355685
355720
  metadata: {
@@ -356057,7 +356092,7 @@ var FallbackStrategy = class {
356057
356092
  name = "fallback";
356058
356093
  async route(context2, config2, _baseLlmClient, _localLiteRtLmClient) {
356059
356094
  const requestedModel = context2.requestedModel ?? config2.getModel();
356060
- const resolvedModel = resolveModel(requestedModel, config2.getGemini31LaunchedSync?.() ?? false, false, config2.getHasAccessToPreviewModel?.() ?? true, config2);
356095
+ const resolvedModel = resolveModel(requestedModel, config2.getGemini31LaunchedSync?.() ?? false, false, config2.getHasAccessToPreviewModel?.() ?? true, config2, config2.hasGemini35FlashGAAccess?.() ?? false);
356061
356096
  const service = config2.getModelAvailabilityService();
356062
356097
  const snapshot = service.snapshot(resolvedModel);
356063
356098
  if (snapshot.available) {
@@ -356087,7 +356122,7 @@ var OverrideStrategy = class {
356087
356122
  return null;
356088
356123
  }
356089
356124
  return {
356090
- model: resolveModel(overrideModel, config2.getGemini31LaunchedSync?.() ?? false, false, config2.getHasAccessToPreviewModel?.() ?? true, config2),
356125
+ model: resolveModel(overrideModel, config2.getGemini31LaunchedSync?.() ?? false, false, config2.getHasAccessToPreviewModel?.() ?? true, config2, config2.hasGemini35FlashGAAccess?.() ?? false),
356091
356126
  metadata: {
356092
356127
  source: this.name,
356093
356128
  latencyMs: 0,
@@ -356324,6 +356359,12 @@ var DEFAULT_MODEL_CONFIGS = {
356324
356359
  model: "gemini-3.1-flash-lite"
356325
356360
  }
356326
356361
  },
356362
+ "gemini-3.5-flash": {
356363
+ extends: "chat-base-3",
356364
+ modelConfig: {
356365
+ model: "gemini-3.5-flash"
356366
+ }
356367
+ },
356327
356368
  "gemma-4-31b-it": {
356328
356369
  extends: "chat-base-3",
356329
356370
  modelConfig: {
@@ -356349,6 +356390,12 @@ var DEFAULT_MODEL_CONFIGS = {
356349
356390
  model: "gemini-3-flash-preview"
356350
356391
  }
356351
356392
  },
356393
+ "gemini-3.5-flash-base": {
356394
+ extends: "base",
356395
+ modelConfig: {
356396
+ model: "gemini-3.5-flash"
356397
+ }
356398
+ },
356352
356399
  classifier: {
356353
356400
  extends: "base",
356354
356401
  modelConfig: {
@@ -356556,6 +356603,13 @@ var DEFAULT_MODEL_CONFIGS = {
356556
356603
  isVisible: true,
356557
356604
  features: { thinking: false, multimodalToolUse: true }
356558
356605
  },
356606
+ "gemini-3.5-flash": {
356607
+ tier: "flash",
356608
+ family: "gemini-3",
356609
+ isPreview: false,
356610
+ isVisible: true,
356611
+ features: { thinking: false, multimodalToolUse: true }
356612
+ },
356559
356613
  "gemini-2.5-pro": {
356560
356614
  tier: "pro",
356561
356615
  family: "gemini-2.5",
@@ -356658,12 +356712,32 @@ var DEFAULT_MODEL_CONFIGS = {
356658
356712
  "gemini-3-flash-preview": {
356659
356713
  default: "gemini-3-flash-preview",
356660
356714
  contexts: [
356715
+ { condition: { useGemini3_5Flash: true }, target: "gemini-3.5-flash" },
356661
356716
  {
356662
356717
  condition: { hasAccessToPreview: false },
356663
356718
  target: "gemini-2.5-flash"
356664
356719
  }
356665
356720
  ]
356666
356721
  },
356722
+ "gemini-3.5-flash": {
356723
+ default: "gemini-3.5-flash",
356724
+ contexts: [
356725
+ {
356726
+ condition: { useGemini3_5Flash: false, hasAccessToPreview: false },
356727
+ target: "gemini-2.5-flash"
356728
+ },
356729
+ {
356730
+ condition: { useGemini3_5Flash: false },
356731
+ target: "gemini-3-flash-preview"
356732
+ }
356733
+ ]
356734
+ },
356735
+ "gemini-2.5-flash": {
356736
+ default: "gemini-2.5-flash",
356737
+ contexts: [
356738
+ { condition: { useGemini3_5Flash: true }, target: "gemini-3.5-flash" }
356739
+ ]
356740
+ },
356667
356741
  "gemini-3-pro-preview": {
356668
356742
  default: "gemini-3-pro-preview",
356669
356743
  contexts: [
@@ -356712,6 +356786,7 @@ var DEFAULT_MODEL_CONFIGS = {
356712
356786
  flash: {
356713
356787
  default: "gemini-3-flash-preview",
356714
356788
  contexts: [
356789
+ { condition: { useGemini3_5Flash: true }, target: "gemini-3.5-flash" },
356715
356790
  {
356716
356791
  condition: { hasAccessToPreview: false },
356717
356792
  target: "gemini-2.5-flash"
@@ -356743,6 +356818,7 @@ var DEFAULT_MODEL_CONFIGS = {
356743
356818
  flash: {
356744
356819
  default: "gemini-3-flash-preview",
356745
356820
  contexts: [
356821
+ { condition: { useGemini3_5Flash: true }, target: "gemini-3.5-flash" },
356746
356822
  {
356747
356823
  condition: { hasAccessToPreview: false },
356748
356824
  target: "gemini-2.5-flash"
@@ -360044,7 +360120,8 @@ var ExperimentFlags = {
360044
360120
  MASKING_PROTECT_LATEST_TURN: 45758819,
360045
360121
  GEMINI_3_1_PRO_LAUNCHED: 45760185,
360046
360122
  PRO_MODEL_NO_ACCESS: 45768879,
360047
- DEFAULT_REQUEST_TIMEOUT: 45773134
360123
+ DEFAULT_REQUEST_TIMEOUT: 45773134,
360124
+ GEMINI_3_5_FLASH_GA_LAUNCHED: 45780819
360048
360125
  };
360049
360126
 
360050
360127
  // packages/core/dist/src/skills/skillManager.js
@@ -374515,7 +374592,7 @@ var Config = class {
374515
374592
  if (!isAutoModel(model, this)) {
374516
374593
  return {};
374517
374594
  }
374518
- const primaryModel = resolveModel(model, this.getGemini31LaunchedSync(), this.getUseCustomToolModelSync(), this.getHasAccessToPreviewModel(), this);
374595
+ const primaryModel = resolveModel(model, this.getGemini31LaunchedSync(), this.getUseCustomToolModelSync(), this.getHasAccessToPreviewModel(), this, this.hasGemini35FlashGAAccess());
374519
374596
  const isPreview2 = isPreviewModel(primaryModel, this);
374520
374597
  const proModel = primaryModel;
374521
374598
  const flashModel = isPreview2 ? PREVIEW_GEMINI_FLASH_MODEL : DEFAULT_GEMINI_FLASH_MODEL;
@@ -374536,7 +374613,7 @@ var Config = class {
374536
374613
  if (pooled.remaining !== void 0) {
374537
374614
  return pooled.remaining;
374538
374615
  }
374539
- const primaryModel = resolveModel(this.getModel(), this.getGemini31LaunchedSync(), this.getUseCustomToolModelSync(), this.getHasAccessToPreviewModel(), this);
374616
+ const primaryModel = resolveModel(this.getModel(), this.getGemini31LaunchedSync(), this.getUseCustomToolModelSync(), this.getHasAccessToPreviewModel(), this, this.hasGemini35FlashGAAccess());
374540
374617
  return this.modelQuotas.get(primaryModel)?.remaining;
374541
374618
  }
374542
374619
  getQuotaLimit() {
@@ -374544,7 +374621,7 @@ var Config = class {
374544
374621
  if (pooled.limit !== void 0) {
374545
374622
  return pooled.limit;
374546
374623
  }
374547
- const primaryModel = resolveModel(this.getModel(), this.getGemini31LaunchedSync(), this.getUseCustomToolModelSync(), this.getHasAccessToPreviewModel(), this);
374624
+ const primaryModel = resolveModel(this.getModel(), this.getGemini31LaunchedSync(), this.getUseCustomToolModelSync(), this.getHasAccessToPreviewModel(), this, this.hasGemini35FlashGAAccess());
374548
374625
  return this.modelQuotas.get(primaryModel)?.limit;
374549
374626
  }
374550
374627
  getQuotaResetTime() {
@@ -374552,7 +374629,7 @@ var Config = class {
374552
374629
  if (pooled.resetTime !== void 0) {
374553
374630
  return pooled.resetTime;
374554
374631
  }
374555
- const primaryModel = resolveModel(this.getModel(), this.getGemini31LaunchedSync(), this.getUseCustomToolModelSync(), this.getHasAccessToPreviewModel(), this);
374632
+ const primaryModel = resolveModel(this.getModel(), this.getGemini31LaunchedSync(), this.getUseCustomToolModelSync(), this.getHasAccessToPreviewModel(), this, this.hasGemini35FlashGAAccess());
374556
374633
  return this.modelQuotas.get(primaryModel)?.resetTime;
374557
374634
  }
374558
374635
  getEmbeddingModel() {
@@ -375536,6 +375613,26 @@ ${sections.join("\n")}
375536
375613
  isGemini31LaunchedForAuthType(authType) {
375537
375614
  return authType === AuthType2.USE_GEMINI || authType === AuthType2.USE_VERTEX_AI || authType === AuthType2.GATEWAY;
375538
375615
  }
375616
+ /**
375617
+ * Returns whether Gemini 3.5 Flash GA has been launched.
375618
+ *
375619
+ * Note: This method should only be called after startup, once experiments have been loaded.
375620
+ */
375621
+ hasGemini35FlashGAAccess() {
375622
+ const authType = this.contentGeneratorConfig?.authType;
375623
+ const hasAccess = (() => {
375624
+ if (this.isGemini31LaunchedForAuthType(authType)) {
375625
+ return true;
375626
+ }
375627
+ return this.experiments?.flags[ExperimentFlags.GEMINI_3_5_FLASH_GA_LAUNCHED]?.boolValue ?? false;
375628
+ })();
375629
+ if (hasAccess) {
375630
+ setFlashModels("gemini-3.5-flash", "gemini-3.5-flash");
375631
+ } else {
375632
+ setFlashModels("gemini-3-flash-preview", "gemini-2.5-flash");
375633
+ }
375634
+ return hasAccess;
375635
+ }
375539
375636
  /**
375540
375637
  * Returns whether Gemini 3.1 has been launched.
375541
375638
  *
@@ -393243,6 +393340,8 @@ export {
393243
393340
  PREVIEW_GEMINI_FLASH_MODEL,
393244
393341
  DEFAULT_GEMINI_MODEL,
393245
393342
  DEFAULT_GEMINI_FLASH_MODEL,
393343
+ DEFAULT_GEMINI_3_5_FLASH_MODEL,
393344
+ setFlashModels,
393246
393345
  DEFAULT_GEMINI_FLASH_LITE_MODEL,
393247
393346
  PREVIEW_GEMINI_FLASH_LITE_MODEL,
393248
393347
  GEMMA_4_31B_IT_MODEL,
@@ -2,7 +2,7 @@ const require = (await import('node:module')).createRequire(import.meta.url); co
2
2
  import {
3
3
  CoreToolCallStatus,
4
4
  checkExhaustive
5
- } from "./chunk-4FNXKOEB.js";
5
+ } from "./chunk-FIM2LOYZ.js";
6
6
  import {
7
7
  __commonJS,
8
8
  __toESM