@google/gemini-cli 0.45.0 → 0.45.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (67) hide show
  1. package/bundle/{chunk-2ARYG3KE.js → chunk-3TMWYG7A.js} +1 -1
  2. package/bundle/{chunk-53SRWMUU.js → chunk-4ISYEWVQ.js} +1 -1
  3. package/bundle/{chunk-6T7N6JF2.js → chunk-6HYYI5PZ.js} +155 -49
  4. package/bundle/{chunk-VL3FKVC7.js → chunk-7U7BOSLX.js} +3 -3
  5. package/bundle/{chunk-YI3KORH5.js → chunk-AFS5F2VL.js} +2 -2
  6. package/bundle/{chunk-K6WTIGVC.js → chunk-AJTJWT5R.js} +2 -2
  7. package/bundle/{chunk-EORX7LYI.js → chunk-BMS36MLD.js} +1 -1
  8. package/bundle/{chunk-SG46YSQ3.js → chunk-BRQZ5N67.js} +7 -7
  9. package/bundle/{chunk-3TWZMAJU.js → chunk-CGB6VOFW.js} +3 -3
  10. package/bundle/{chunk-Z5F25543.js → chunk-CXWB6LIZ.js} +1 -1
  11. package/bundle/{chunk-TWSSMLUS.js → chunk-EN62YYKQ.js} +1 -1
  12. package/bundle/{chunk-HFVEWB6N.js → chunk-FAMDZ3OS.js} +1 -1
  13. package/bundle/{chunk-XV2YFH7B.js → chunk-FFUBQCSE.js} +7654 -14056
  14. package/bundle/chunk-GIZG2CGQ.js +394545 -0
  15. package/bundle/{chunk-THZMPVCN.js → chunk-JKX72O3X.js} +1 -1
  16. package/bundle/{chunk-PNU4GACG.js → chunk-JTXGVKX5.js} +2 -2
  17. package/bundle/{chunk-4EBMYFID.js → chunk-NXVUP5BP.js} +67 -54
  18. package/bundle/chunk-OFSAI2ND.js +398 -0
  19. package/bundle/{chunk-EUYIPFPA.js → chunk-OJ7TLNJC.js} +1 -1
  20. package/bundle/{chunk-4KOU3QNT.js → chunk-QCGIKZK5.js} +8 -5
  21. package/bundle/{chunk-PXEK5ENZ.js → chunk-QDW2YJ2D.js} +9 -8
  22. package/bundle/chunk-S3TA2KSA.js +81685 -0
  23. package/bundle/{chunk-IL7J46PP.js → chunk-T3BZEZLU.js} +3 -3
  24. package/bundle/{chunk-KSNTXH4E.js → chunk-THHB2S2R.js} +7 -7
  25. package/bundle/{chunk-GVEZJIV3.js → chunk-TTFMSSFY.js} +1 -1
  26. package/bundle/chunk-VJA5NYRM.js +17320 -0
  27. package/bundle/{chunk-N6QPQL7E.js → chunk-VXAIUB7K.js} +181 -48
  28. package/bundle/chunk-W53HJSSZ.js +154 -0
  29. package/bundle/{chunk-JLFE3KRS.js → chunk-X5XPILBU.js} +1 -1
  30. package/bundle/chunk-XLA3MMYB.js +512 -0
  31. package/bundle/chunk-Y7YEJIFD.js +118 -0
  32. package/bundle/chunk-ZSZHQ7QN.js +1571 -0
  33. package/bundle/{cleanup-3SMSXJJA.js → cleanup-6QT55YQX.js} +2 -2
  34. package/bundle/{cleanup-FNQ3LEWG.js → cleanup-ASNHXVN2.js} +2 -2
  35. package/bundle/{cleanup-I56KHTTC.js → cleanup-SZ4DUWDJ.js} +2 -2
  36. package/bundle/cleanup-UWYNKBAK.js +32 -0
  37. package/bundle/{core-KGXBOJTX.js → core-FN764RWM.js} +7 -1
  38. package/bundle/{devtoolsService-EW3B2Y63.js → devtoolsService-5GK2JZD4.js} +2 -2
  39. package/bundle/{devtoolsService-F7PHNBEQ.js → devtoolsService-AWH6SSZC.js} +4 -3
  40. package/bundle/{devtoolsService-VFEFRDYG.js → devtoolsService-HS6NZVWU.js} +2 -2
  41. package/bundle/devtoolsService-VDTVF5OM.js +856 -0
  42. package/bundle/{dist-2G5KTD32.js → dist-CVH2R6ZI.js} +7 -1
  43. package/bundle/{core-AQUUQTX2.js → dist-LKE6MKVW.js} +7 -1
  44. package/bundle/dist-VK25J7B7.js +2140 -0
  45. package/bundle/docs/reference/configuration.md +71 -0
  46. package/bundle/{gemini-JMMBFICD.js → gemini-2CSQYYM7.js} +17 -14
  47. package/bundle/{gemini-4KS2EZX6.js → gemini-UUAZKUMD.js} +216 -197
  48. package/bundle/{gemini-ORQHD633.js → gemini-UZPU2BDT.js} +17 -14
  49. package/bundle/gemini-V3OTI3NY.js +16409 -0
  50. package/bundle/gemini.js +7 -7
  51. package/bundle/{interactiveCli-XUZZOZXX.js → interactiveCli-3LDUDMZL.js} +17 -11
  52. package/bundle/{interactiveCli-ESB66RW7.js → interactiveCli-JBILZ4Z2.js} +323 -298
  53. package/bundle/interactiveCli-QUFKABYB.js +34732 -0
  54. package/bundle/{interactiveCli-ZJXV4DW7.js → interactiveCli-TRAAWA7S.js} +17 -11
  55. package/bundle/{liteRtServerManager-HELKQKOZ.js → liteRtServerManager-4LZDDC3B.js} +4 -4
  56. package/bundle/{liteRtServerManager-RNNHEQJI.js → liteRtServerManager-BONHUK6G.js} +4 -4
  57. package/bundle/{liteRtServerManager-DORIWEMR.js → liteRtServerManager-GNA7BP24.js} +4 -4
  58. package/bundle/liteRtServerManager-ILOJICS6.js +65 -0
  59. package/bundle/{oauth2-provider-2IJNOFOO.js → oauth2-provider-FBCFQYBU.js} +1 -1
  60. package/bundle/{oauth2-provider-YYLBPESU.js → oauth2-provider-LYKMC2R6.js} +38 -72
  61. package/bundle/{oauth2-provider-7N4OFPTL.js → oauth2-provider-P4WHK2SH.js} +1 -1
  62. package/bundle/oauth2-provider-WLJL6V4W.js +235 -0
  63. package/bundle/{start-IGG6LDST.js → start-45UFBKOY.js} +6 -6
  64. package/bundle/{start-R7DTCFCN.js → start-PCZ7YDTR.js} +6 -6
  65. package/bundle/{start-66KF6MVV.js → start-VVVRWNSH.js} +6 -6
  66. package/bundle/start-XMLICH3K.js +18 -0
  67. package/package.json +1 -1
@@ -276236,6 +276236,12 @@ var PREVIEW_GEMINI_3_1_CUSTOM_TOOLS_MODEL = "gemini-3.1-pro-preview-customtools"
276236
276236
  var PREVIEW_GEMINI_FLASH_MODEL = "gemini-3-flash-preview";
276237
276237
  var DEFAULT_GEMINI_MODEL = "gemini-2.5-pro";
276238
276238
  var DEFAULT_GEMINI_FLASH_MODEL = "gemini-2.5-flash";
276239
+ var DEFAULT_GEMINI_3_5_FLASH_MODEL = "gemini-3.5-flash";
276240
+ var SECONDARY_GEMINI_3_5_FLASH_MODEL = "gemini-3-flash";
276241
+ function setFlashModels(preview, defaultFlash) {
276242
+ PREVIEW_GEMINI_FLASH_MODEL = preview;
276243
+ DEFAULT_GEMINI_FLASH_MODEL = defaultFlash;
276244
+ }
276239
276245
  var DEFAULT_GEMINI_FLASH_LITE_MODEL = "gemini-3.1-flash-lite";
276240
276246
  var PREVIEW_GEMINI_FLASH_LITE_MODEL = "none";
276241
276247
  var GEMMA_4_31B_IT_MODEL = "gemma-4-31b-it";
@@ -276248,6 +276254,8 @@ var VALID_GEMINI_MODELS = /* @__PURE__ */ new Set([
276248
276254
  PREVIEW_GEMINI_FLASH_LITE_MODEL,
276249
276255
  DEFAULT_GEMINI_MODEL,
276250
276256
  DEFAULT_GEMINI_FLASH_MODEL,
276257
+ DEFAULT_GEMINI_3_5_FLASH_MODEL,
276258
+ SECONDARY_GEMINI_3_5_FLASH_MODEL,
276251
276259
  DEFAULT_GEMINI_FLASH_LITE_MODEL,
276252
276260
  GEMMA_4_31B_IT_MODEL,
276253
276261
  GEMMA_4_26B_A4B_IT_MODEL
@@ -276260,18 +276268,19 @@ var GEMINI_MODEL_ALIAS_FLASH = "flash";
276260
276268
  var GEMINI_MODEL_ALIAS_FLASH_LITE = "flash-lite";
276261
276269
  var DEFAULT_GEMINI_EMBEDDING_MODEL = "gemini-embedding-001";
276262
276270
  var DEFAULT_THINKING_MODE = 8192;
276263
- function getAutoModelDescription(hasAccessToPreview, useGemini3_1 = false) {
276271
+ function getAutoModelDescription(hasAccessToPreview, useGemini3_1 = false, useGemini3_5Flash = false) {
276264
276272
  const proModel = hasAccessToPreview ? useGemini3_1 ? PREVIEW_GEMINI_3_1_MODEL : PREVIEW_GEMINI_MODEL : DEFAULT_GEMINI_MODEL;
276265
- const flashModel = hasAccessToPreview ? PREVIEW_GEMINI_FLASH_MODEL : DEFAULT_GEMINI_FLASH_MODEL;
276266
- return `Let Gemini CLI decide the best model for the task: ${proModel}, ${flashModel}`;
276273
+ const flashModel = hasAccessToPreview ? useGemini3_5Flash ? DEFAULT_GEMINI_3_5_FLASH_MODEL : PREVIEW_GEMINI_FLASH_MODEL : DEFAULT_GEMINI_FLASH_MODEL;
276274
+ return `Let Gemini CLI decide the best model for the task: ${getDisplayString(proModel)}, ${getDisplayString(flashModel)}`;
276267
276275
  }
276268
- function resolveModel(requestedModel, useGemini3_1 = false, useCustomToolModel = false, hasAccessToPreview = true, config2) {
276276
+ function resolveModel(requestedModel, useGemini3_1 = false, useCustomToolModel = false, hasAccessToPreview = true, config2, useGemini3_5Flash = false) {
276269
276277
  const normalizedModel = Array.isArray(requestedModel) ? String(requestedModel.at(-1) ?? "").trim() || "" : typeof requestedModel !== "string" ? String(requestedModel ?? "").trim() || "" : requestedModel.trim() || "";
276270
276278
  if (config2?.getExperimentalDynamicModelConfiguration?.() === true) {
276271
276279
  const resolved2 = config2.modelConfigService.resolveModelId(normalizedModel, {
276272
276280
  useGemini3_1,
276273
276281
  useCustomTools: useCustomToolModel,
276274
- hasAccessToPreview
276282
+ hasAccessToPreview,
276283
+ useGemini3_5Flash
276275
276284
  });
276276
276285
  if (!hasAccessToPreview && isPreviewModel(resolved2, config2)) {
276277
276286
  if (resolved2.includes("flash-lite")) {
@@ -276307,7 +276316,7 @@ function resolveModel(requestedModel, useGemini3_1 = false, useCustomToolModel =
276307
276316
  break;
276308
276317
  }
276309
276318
  case GEMINI_MODEL_ALIAS_FLASH: {
276310
- resolved = PREVIEW_GEMINI_FLASH_MODEL;
276319
+ resolved = useGemini3_5Flash ? DEFAULT_GEMINI_FLASH_MODEL : PREVIEW_GEMINI_FLASH_MODEL;
276311
276320
  break;
276312
276321
  }
276313
276322
  case GEMINI_MODEL_ALIAS_FLASH_LITE: {
@@ -276322,6 +276331,9 @@ function resolveModel(requestedModel, useGemini3_1 = false, useCustomToolModel =
276322
276331
  if (resolved === "none") {
276323
276332
  return DEFAULT_GEMINI_FLASH_LITE_MODEL;
276324
276333
  }
276334
+ if (useGemini3_5Flash && isFlashModel(resolved) && normalizedModel !== PREVIEW_GEMINI_FLASH_MODEL) {
276335
+ return DEFAULT_GEMINI_FLASH_MODEL;
276336
+ }
276325
276337
  if (!hasAccessToPreview && isPreviewModel(resolved)) {
276326
276338
  switch (resolved) {
276327
276339
  case PREVIEW_GEMINI_FLASH_MODEL:
@@ -276342,7 +276354,10 @@ function resolveModel(requestedModel, useGemini3_1 = false, useCustomToolModel =
276342
276354
  }
276343
276355
  return resolved;
276344
276356
  }
276345
- function resolveClassifierModel(requestedModel, modelAlias, useGemini3_1 = false, useCustomToolModel = false, hasAccessToPreview = true, config2) {
276357
+ function isFlashModel(model) {
276358
+ 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 === "flash" || model.endsWith("flash");
276359
+ }
276360
+ function resolveClassifierModel(requestedModel, modelAlias, useGemini3_1 = false, useCustomToolModel = false, hasAccessToPreview = true, config2, useGemini3_5Flash = false) {
276346
276361
  if (config2?.getExperimentalDynamicModelConfiguration?.() === true) {
276347
276362
  return config2.modelConfigService.resolveClassifierModelId(
276348
276363
  modelAlias,
@@ -276350,7 +276365,8 @@ function resolveClassifierModel(requestedModel, modelAlias, useGemini3_1 = false
276350
276365
  {
276351
276366
  useGemini3_1,
276352
276367
  useCustomTools: useCustomToolModel,
276353
- hasAccessToPreview
276368
+ hasAccessToPreview,
276369
+ useGemini3_5Flash
276354
276370
  }
276355
276371
  );
276356
276372
  }
@@ -276359,13 +276375,18 @@ function resolveClassifierModel(requestedModel, modelAlias, useGemini3_1 = false
276359
276375
  return DEFAULT_GEMINI_FLASH_MODEL;
276360
276376
  }
276361
276377
  if (requestedModel === PREVIEW_GEMINI_MODEL_AUTO || requestedModel === PREVIEW_GEMINI_MODEL || requestedModel === GEMINI_MODEL_ALIAS_AUTO) {
276378
+ if (useGemini3_5Flash) {
276379
+ return DEFAULT_GEMINI_FLASH_MODEL;
276380
+ }
276362
276381
  return hasAccessToPreview ? PREVIEW_GEMINI_FLASH_MODEL : DEFAULT_GEMINI_FLASH_MODEL;
276363
276382
  }
276364
276383
  return resolveModel(
276365
276384
  GEMINI_MODEL_ALIAS_FLASH,
276366
276385
  false,
276367
276386
  false,
276368
- hasAccessToPreview
276387
+ hasAccessToPreview,
276388
+ config2,
276389
+ useGemini3_5Flash
276369
276390
  );
276370
276391
  }
276371
276392
  return resolveModel(
@@ -276373,7 +276394,8 @@ function resolveClassifierModel(requestedModel, modelAlias, useGemini3_1 = false
276373
276394
  useGemini3_1,
276374
276395
  useCustomToolModel,
276375
276396
  hasAccessToPreview,
276376
- config2
276397
+ config2,
276398
+ useGemini3_5Flash
276377
276399
  );
276378
276400
  }
276379
276401
  function getDisplayString(model, config2) {
@@ -276384,6 +276406,8 @@ function getDisplayString(model, config2) {
276384
276406
  }
276385
276407
  }
276386
276408
  switch (model) {
276409
+ case "gemini-3-flash":
276410
+ return DEFAULT_GEMINI_3_5_FLASH_MODEL;
276387
276411
  case GEMINI_MODEL_ALIAS_AUTO:
276388
276412
  return "Auto";
276389
276413
  case PREVIEW_GEMINI_MODEL_AUTO:
@@ -279535,7 +279559,7 @@ function isValidToolName(name3, options = {}) {
279535
279559
  }
279536
279560
 
279537
279561
  // packages/core/src/generated/git-commit.ts
279538
- var GIT_COMMIT_INFO = "8acfe0c4a";
279562
+ var GIT_COMMIT_INFO = "57f1c6912";
279539
279563
  var CLI_VERSION = "0.45.0";
279540
279564
 
279541
279565
  // packages/core/src/ide/detect-ide.ts
@@ -304968,7 +304992,10 @@ function getModelPolicyChain(options) {
304968
304992
  const proModel = resolveModel(
304969
304993
  PREVIEW_GEMINI_MODEL,
304970
304994
  options.useGemini31,
304971
- options.useCustomToolModel
304995
+ options.useCustomToolModel,
304996
+ true,
304997
+ void 0,
304998
+ options.useGemini3_5Flash
304972
304999
  );
304973
305000
  return [
304974
305001
  definePolicy({
@@ -305046,6 +305073,7 @@ function resolvePolicyChain(config2, preferredModel, wrapsAround = false) {
305046
305073
  const useGemini31 = config2.getGemini31LaunchedSync?.() ?? false;
305047
305074
  const useCustomToolModel = config2.getUseCustomToolModelSync?.() ?? false;
305048
305075
  const hasAccessToPreview = config2.getHasAccessToPreviewModel?.() ?? false;
305076
+ const useGemini3_5Flash = config2.hasGemini35FlashGAAccess?.() ?? false;
305049
305077
  const isOriginallyGemini3 = isGemini3Model(modelFromConfig, config2);
305050
305078
  const resolvedModel = normalizeModelId(
305051
305079
  resolveModel(
@@ -305053,7 +305081,8 @@ function resolvePolicyChain(config2, preferredModel, wrapsAround = false) {
305053
305081
  useGemini31,
305054
305082
  useCustomToolModel,
305055
305083
  hasAccessToPreview,
305056
- config2
305084
+ config2,
305085
+ useGemini3_5Flash
305057
305086
  )
305058
305087
  );
305059
305088
  const isAutoPreferred = normalizedPreferredModel ? isAutoModel(normalizedPreferredModel, config2) : false;
@@ -305062,7 +305091,8 @@ function resolvePolicyChain(config2, preferredModel, wrapsAround = false) {
305062
305091
  if (config2.getExperimentalDynamicModelConfiguration?.() === true) {
305063
305092
  const context2 = {
305064
305093
  useGemini3_1: useGemini31,
305065
- useCustomTools: useCustomToolModel
305094
+ useCustomTools: useCustomToolModel,
305095
+ useGemini3_5Flash
305066
305096
  };
305067
305097
  if (resolvedModel === DEFAULT_GEMINI_FLASH_LITE_MODEL) {
305068
305098
  chain2 = config2.modelConfigService.resolveChain("lite", context2);
@@ -305100,7 +305130,8 @@ function resolvePolicyChain(config2, preferredModel, wrapsAround = false) {
305100
305130
  isAutoSelection,
305101
305131
  userTier: config2.getUserTier(),
305102
305132
  useGemini31,
305103
- useCustomToolModel
305133
+ useCustomToolModel,
305134
+ useGemini3_5Flash
305104
305135
  });
305105
305136
  } else {
305106
305137
  chain2 = getModelPolicyChain({
@@ -305108,7 +305139,8 @@ function resolvePolicyChain(config2, preferredModel, wrapsAround = false) {
305108
305139
  isAutoSelection,
305109
305140
  userTier: config2.getUserTier(),
305110
305141
  useGemini31,
305111
- useCustomToolModel
305142
+ useCustomToolModel,
305143
+ useGemini3_5Flash
305112
305144
  });
305113
305145
  }
305114
305146
  } else {
@@ -309612,7 +309644,8 @@ async function createContentGenerator(config2, gcConfig, sessionId) {
309612
309644
  config2.authType === "gemini-api-key" /* USE_GEMINI */ || config2.authType === "vertex-ai" /* USE_VERTEX_AI */ || (await gcConfig.getGemini31Launched?.() ?? false),
309613
309645
  false,
309614
309646
  gcConfig.getHasAccessToPreviewModel?.() ?? true,
309615
- gcConfig
309647
+ gcConfig,
309648
+ gcConfig.hasGemini35FlashGAAccess?.() ?? false
309616
309649
  );
309617
309650
  const customHeadersEnv = process.env["GEMINI_CLI_CUSTOM_HEADERS"] || void 0;
309618
309651
  const clientName = gcConfig.getClientName();
@@ -323119,16 +323152,18 @@ ${result2.output}`;
323119
323152
  }
323120
323153
  signal.removeEventListener("abort", onAbort);
323121
323154
  timeoutController.signal.removeEventListener("abort", onAbort);
323122
- if (tempFilePath) {
323123
- try {
323124
- await fsPromises9.unlink(tempFilePath);
323125
- } catch {
323155
+ if (!this.params.is_background) {
323156
+ if (tempFilePath) {
323157
+ try {
323158
+ await fsPromises9.unlink(tempFilePath);
323159
+ } catch {
323160
+ }
323126
323161
  }
323127
- }
323128
- if (tempDir) {
323129
- try {
323130
- await fsPromises9.rm(tempDir, { recursive: true, force: true });
323131
- } catch {
323162
+ if (tempDir) {
323163
+ try {
323164
+ await fsPromises9.rm(tempDir, { recursive: true, force: true });
323165
+ } catch {
323166
+ }
323132
323167
  }
323133
323168
  }
323134
323169
  }
@@ -330349,7 +330384,8 @@ var GeminiChat = class {
330349
330384
  useGemini3_1,
330350
330385
  false,
330351
330386
  hasAccessToPreview,
330352
- this.context.config
330387
+ this.context.config,
330388
+ this.context.config.hasGemini35FlashGAAccess?.() ?? false
330353
330389
  );
330354
330390
  if (this.context.config.getActiveModel() !== initialActiveModel) {
330355
330391
  modelToUse = resolveModel(
@@ -330357,7 +330393,8 @@ var GeminiChat = class {
330357
330393
  useGemini3_1,
330358
330394
  false,
330359
330395
  hasAccessToPreview,
330360
- this.context.config
330396
+ this.context.config,
330397
+ this.context.config.hasGemini35FlashGAAccess?.() ?? false
330361
330398
  );
330362
330399
  }
330363
330400
  if (modelToUse !== lastModelToUse) {
@@ -330407,7 +330444,8 @@ var GeminiChat = class {
330407
330444
  useGemini3_1,
330408
330445
  false,
330409
330446
  hasAccessToPreview,
330410
- this.context.config
330447
+ this.context.config,
330448
+ this.context.config.hasGemini35FlashGAAccess?.() ?? false
330411
330449
  );
330412
330450
  lastModelToUse = modelToUse;
330413
330451
  contentsToUse = supportsModernFeatures(modelToUse) ? [...contentsForPreviewModel] : [...requestContents];
@@ -332848,7 +332886,8 @@ var PromptProvider = class {
332848
332886
  context2.config.getGemini31LaunchedSync?.() ?? false,
332849
332887
  false,
332850
332888
  context2.config.getHasAccessToPreviewModel?.() ?? true,
332851
- context2.config
332889
+ context2.config,
332890
+ context2.config.hasGemini35FlashGAAccess?.() ?? false
332852
332891
  );
332853
332892
  const isModernModel = supportsModernFeatures(desiredModel);
332854
332893
  const activeSnippets = isModernModel ? snippets_exports : snippets_legacy_exports;
@@ -333024,7 +333063,8 @@ var PromptProvider = class {
333024
333063
  context2.config.getGemini31LaunchedSync?.() ?? false,
333025
333064
  false,
333026
333065
  context2.config.getHasAccessToPreviewModel?.() ?? true,
333027
- context2.config
333066
+ context2.config,
333067
+ context2.config.hasGemini35FlashGAAccess?.() ?? false
333028
333068
  );
333029
333069
  const isModernModel = supportsModernFeatures(desiredModel);
333030
333070
  const activeSnippets = isModernModel ? snippets_exports : snippets_legacy_exports;
@@ -338333,7 +338373,7 @@ var A2AAuthProviderFactory = class _A2AAuthProviderFactory {
338333
338373
  return provider;
338334
338374
  }
338335
338375
  case "oauth2": {
338336
- const { OAuth2AuthProvider } = await import("./oauth2-provider-7N4OFPTL.js");
338376
+ const { OAuth2AuthProvider } = await import("./oauth2-provider-P4WHK2SH.js");
338337
338377
  const provider = new OAuth2AuthProvider(
338338
338378
  authConfig,
338339
338379
  options.agentName ?? "unknown",
@@ -338504,6 +338544,7 @@ var ModelConfigService = class _ModelConfigService {
338504
338544
  const definitions = this.config.modelDefinitions ?? {};
338505
338545
  const shouldShowPreviewModels = context2.hasAccessToPreview ?? false;
338506
338546
  const useGemini31 = context2.useGemini3_1 ?? false;
338547
+ const useGemini3_5Flash = context2.useGemini3_5Flash ?? false;
338507
338548
  const mainOptions = Object.entries(definitions).filter(([_2, m]) => {
338508
338549
  if (m.isVisible !== true) return false;
338509
338550
  if (m.isPreview && !shouldShowPreviewModels) return false;
@@ -338514,7 +338555,8 @@ var ModelConfigService = class _ModelConfigService {
338514
338555
  if (id === "auto") {
338515
338556
  description = getAutoModelDescription(
338516
338557
  shouldShowPreviewModels,
338517
- useGemini31
338558
+ useGemini31,
338559
+ useGemini3_5Flash
338518
338560
  );
338519
338561
  } else if (id === "auto-gemini-3" && useGemini31) {
338520
338562
  description = description.replace("gemini-3-pro", "gemini-3.1-pro");
@@ -338579,6 +338621,8 @@ var ModelConfigService = class _ModelConfigService {
338579
338621
  return value === context2.useGemini3_1;
338580
338622
  case "useGemini3_1FlashLite":
338581
338623
  return value === context2.useGemini3_1FlashLite;
338624
+ case "useGemini3_5Flash":
338625
+ return value === context2.useGemini3_5Flash;
338582
338626
  case "useCustomTools":
338583
338627
  return value === context2.useCustomTools;
338584
338628
  case "hasAccessToPreview":
@@ -345379,7 +345423,8 @@ var GeminiClient = class {
345379
345423
  this.config.getGemini31LaunchedSync?.() ?? false,
345380
345424
  false,
345381
345425
  this.config.getHasAccessToPreviewModel?.() ?? true,
345382
- this.config
345426
+ this.config,
345427
+ this.config.hasGemini35FlashGAAccess?.() ?? false
345383
345428
  );
345384
345429
  }
345385
345430
  async *processTurn(request, signal, prompt_id, boundedTurns, displayContent) {
@@ -360004,13 +360049,15 @@ ${formattedHistory}
360004
360049
  config2.getUseCustomToolModel(),
360005
360050
  config2.getHasAccessToPreviewModel()
360006
360051
  ]);
360052
+ const useGemini3_5Flash = config2.hasGemini35FlashGAAccess?.() ?? false;
360007
360053
  const selectedModel = resolveClassifierModel(
360008
360054
  context2.requestedModel ?? config2.getModel(),
360009
360055
  routerResponse.model_choice,
360010
360056
  useGemini3_1,
360011
360057
  useCustomToolModel,
360012
360058
  hasAccessToPreview,
360013
- config2
360059
+ config2,
360060
+ useGemini3_5Flash
360014
360061
  );
360015
360062
  return {
360016
360063
  model: selectedModel,
@@ -360036,7 +360083,8 @@ var DefaultStrategy = class {
360036
360083
  config2.getGemini31LaunchedSync?.() ?? false,
360037
360084
  false,
360038
360085
  config2.getHasAccessToPreviewModel?.() ?? true,
360039
- config2
360086
+ config2,
360087
+ config2.hasGemini35FlashGAAccess?.() ?? false
360040
360088
  );
360041
360089
  return {
360042
360090
  model: defaultModel,
@@ -360182,6 +360230,7 @@ var ClassifierStrategy = class {
360182
360230
  config2.getGemini31Launched(),
360183
360231
  config2.getUseCustomToolModel()
360184
360232
  ]);
360233
+ const useGemini3_5Flash = config2.hasGemini35FlashGAAccess?.() ?? false;
360185
360234
  const selectedModel = normalizeModelId(
360186
360235
  resolveClassifierModel(
360187
360236
  normalizeModelId(model),
@@ -360189,7 +360238,8 @@ var ClassifierStrategy = class {
360189
360238
  useGemini3_1,
360190
360239
  useCustomToolModel,
360191
360240
  config2.getHasAccessToPreviewModel?.() ?? true,
360192
- config2
360241
+ config2,
360242
+ useGemini3_5Flash
360193
360243
  )
360194
360244
  );
360195
360245
  const service = config2.getModelAvailabilityService();
@@ -360338,6 +360388,7 @@ var NumericalClassifierStrategy = class {
360338
360388
  config2.getGemini31Launched(),
360339
360389
  config2.getUseCustomToolModel()
360340
360390
  ]);
360391
+ const useGemini3_5Flash = config2.hasGemini35FlashGAAccess?.() ?? false;
360341
360392
  const selectedModel = normalizeModelId(
360342
360393
  resolveClassifierModel(
360343
360394
  normalizeModelId(model),
@@ -360345,7 +360396,8 @@ var NumericalClassifierStrategy = class {
360345
360396
  useGemini3_1,
360346
360397
  useCustomToolModel,
360347
360398
  config2.getHasAccessToPreviewModel?.() ?? true,
360348
- config2
360399
+ config2,
360400
+ useGemini3_5Flash
360349
360401
  )
360350
360402
  );
360351
360403
  const service = config2.getModelAvailabilityService();
@@ -360468,7 +360520,8 @@ var FallbackStrategy = class {
360468
360520
  config2.getGemini31LaunchedSync?.() ?? false,
360469
360521
  false,
360470
360522
  config2.getHasAccessToPreviewModel?.() ?? true,
360471
- config2
360523
+ config2,
360524
+ config2.hasGemini35FlashGAAccess?.() ?? false
360472
360525
  );
360473
360526
  const service = config2.getModelAvailabilityService();
360474
360527
  const snapshot = service.snapshot(resolvedModel);
@@ -360504,7 +360557,8 @@ var OverrideStrategy = class {
360504
360557
  config2.getGemini31LaunchedSync?.() ?? false,
360505
360558
  false,
360506
360559
  config2.getHasAccessToPreviewModel?.() ?? true,
360507
- config2
360560
+ config2,
360561
+ config2.hasGemini35FlashGAAccess?.() ?? false
360508
360562
  ),
360509
360563
  metadata: {
360510
360564
  source: this.name,
@@ -360534,6 +360588,7 @@ var ApprovalModeStrategy = class {
360534
360588
  config2.getUseCustomToolModel(),
360535
360589
  config2.getHasAccessToPreviewModel()
360536
360590
  ]);
360591
+ const useGemini3_5Flash = config2.hasGemini35FlashGAAccess?.() ?? false;
360537
360592
  if (approvalMode === "plan" /* PLAN */) {
360538
360593
  const proModel = resolveClassifierModel(
360539
360594
  model,
@@ -360541,7 +360596,8 @@ var ApprovalModeStrategy = class {
360541
360596
  useGemini3_1,
360542
360597
  useCustomToolModel,
360543
360598
  hasAccessToPreview,
360544
- config2
360599
+ config2,
360600
+ useGemini3_5Flash
360545
360601
  );
360546
360602
  return {
360547
360603
  model: proModel,
@@ -360558,7 +360614,8 @@ var ApprovalModeStrategy = class {
360558
360614
  useGemini3_1,
360559
360615
  useCustomToolModel,
360560
360616
  hasAccessToPreview,
360561
- config2
360617
+ config2,
360618
+ useGemini3_5Flash
360562
360619
  );
360563
360620
  return {
360564
360621
  model: flashModel,
@@ -360778,6 +360835,12 @@ var DEFAULT_MODEL_CONFIGS = {
360778
360835
  model: "gemini-3.1-flash-lite"
360779
360836
  }
360780
360837
  },
360838
+ "gemini-3.5-flash": {
360839
+ extends: "chat-base-3",
360840
+ modelConfig: {
360841
+ model: "gemini-3.5-flash"
360842
+ }
360843
+ },
360781
360844
  "gemma-4-31b-it": {
360782
360845
  extends: "chat-base-3",
360783
360846
  modelConfig: {
@@ -360803,6 +360866,12 @@ var DEFAULT_MODEL_CONFIGS = {
360803
360866
  model: "gemini-3-flash-preview"
360804
360867
  }
360805
360868
  },
360869
+ "gemini-3.5-flash-base": {
360870
+ extends: "base",
360871
+ modelConfig: {
360872
+ model: "gemini-3.5-flash"
360873
+ }
360874
+ },
360806
360875
  classifier: {
360807
360876
  extends: "base",
360808
360877
  modelConfig: {
@@ -361010,6 +361079,13 @@ var DEFAULT_MODEL_CONFIGS = {
361010
361079
  isVisible: true,
361011
361080
  features: { thinking: false, multimodalToolUse: true }
361012
361081
  },
361082
+ "gemini-3.5-flash": {
361083
+ tier: "flash",
361084
+ family: "gemini-3",
361085
+ isPreview: false,
361086
+ isVisible: true,
361087
+ features: { thinking: false, multimodalToolUse: true }
361088
+ },
361013
361089
  "gemini-2.5-pro": {
361014
361090
  tier: "pro",
361015
361091
  family: "gemini-2.5",
@@ -361113,11 +361189,34 @@ var DEFAULT_MODEL_CONFIGS = {
361113
361189
  default: "gemini-3-flash-preview",
361114
361190
  contexts: [
361115
361191
  {
361116
- condition: { hasAccessToPreview: false },
361192
+ condition: { hasAccessToPreview: false, useGemini3_5Flash: true },
361193
+ target: "gemini-3.5-flash"
361194
+ },
361195
+ {
361196
+ condition: { hasAccessToPreview: false, useGemini3_5Flash: false },
361197
+ target: "gemini-2.5-flash"
361198
+ }
361199
+ ]
361200
+ },
361201
+ "gemini-3.5-flash": {
361202
+ default: "gemini-3.5-flash",
361203
+ contexts: [
361204
+ {
361205
+ condition: { useGemini3_5Flash: false, hasAccessToPreview: false },
361117
361206
  target: "gemini-2.5-flash"
361207
+ },
361208
+ {
361209
+ condition: { useGemini3_5Flash: false },
361210
+ target: "gemini-3-flash-preview"
361118
361211
  }
361119
361212
  ]
361120
361213
  },
361214
+ "gemini-2.5-flash": {
361215
+ default: "gemini-2.5-flash",
361216
+ contexts: [
361217
+ { condition: { useGemini3_5Flash: true }, target: "gemini-3.5-flash" }
361218
+ ]
361219
+ },
361121
361220
  "gemini-3-pro-preview": {
361122
361221
  default: "gemini-3-pro-preview",
361123
361222
  contexts: [
@@ -361166,6 +361265,7 @@ var DEFAULT_MODEL_CONFIGS = {
361166
361265
  flash: {
361167
361266
  default: "gemini-3-flash-preview",
361168
361267
  contexts: [
361268
+ { condition: { useGemini3_5Flash: true }, target: "gemini-3.5-flash" },
361169
361269
  {
361170
361270
  condition: { hasAccessToPreview: false },
361171
361271
  target: "gemini-2.5-flash"
@@ -361197,6 +361297,7 @@ var DEFAULT_MODEL_CONFIGS = {
361197
361297
  flash: {
361198
361298
  default: "gemini-3-flash-preview",
361199
361299
  contexts: [
361300
+ { condition: { useGemini3_5Flash: true }, target: "gemini-3.5-flash" },
361200
361301
  {
361201
361302
  condition: { hasAccessToPreview: false },
361202
361303
  target: "gemini-2.5-flash"
@@ -364923,7 +365024,8 @@ var ExperimentFlags = {
364923
365024
  MASKING_PROTECT_LATEST_TURN: 45758819,
364924
365025
  GEMINI_3_1_PRO_LAUNCHED: 45760185,
364925
365026
  PRO_MODEL_NO_ACCESS: 45768879,
364926
- DEFAULT_REQUEST_TIMEOUT: 45773134
365027
+ DEFAULT_REQUEST_TIMEOUT: 45773134,
365028
+ GEMINI_3_5_FLASH_GA_LAUNCHED: 45780819
364927
365029
  };
364928
365030
 
364929
365031
  // packages/core/src/skills/skillManager.ts
@@ -380236,7 +380338,8 @@ var Config = class {
380236
380338
  this.getGemini31LaunchedSync(),
380237
380339
  this.getUseCustomToolModelSync(),
380238
380340
  this.getHasAccessToPreviewModel(),
380239
- this
380341
+ this,
380342
+ this.hasGemini35FlashGAAccess()
380240
380343
  );
380241
380344
  const isPreview2 = isPreviewModel(primaryModel, this);
380242
380345
  const proModel = primaryModel;
@@ -380263,7 +380366,8 @@ var Config = class {
380263
380366
  this.getGemini31LaunchedSync(),
380264
380367
  this.getUseCustomToolModelSync(),
380265
380368
  this.getHasAccessToPreviewModel(),
380266
- this
380369
+ this,
380370
+ this.hasGemini35FlashGAAccess()
380267
380371
  );
380268
380372
  return this.modelQuotas.get(primaryModel)?.remaining;
380269
380373
  }
@@ -380277,7 +380381,8 @@ var Config = class {
380277
380381
  this.getGemini31LaunchedSync(),
380278
380382
  this.getUseCustomToolModelSync(),
380279
380383
  this.getHasAccessToPreviewModel(),
380280
- this
380384
+ this,
380385
+ this.hasGemini35FlashGAAccess()
380281
380386
  );
380282
380387
  return this.modelQuotas.get(primaryModel)?.limit;
380283
380388
  }
@@ -380291,7 +380396,8 @@ var Config = class {
380291
380396
  this.getGemini31LaunchedSync(),
380292
380397
  this.getUseCustomToolModelSync(),
380293
380398
  this.getHasAccessToPreviewModel(),
380294
- this
380399
+ this,
380400
+ this.hasGemini35FlashGAAccess()
380295
380401
  );
380296
380402
  return this.modelQuotas.get(primaryModel)?.resetTime;
380297
380403
  }
@@ -381332,6 +381438,30 @@ ${sections.join("\n")}
381332
381438
  isGemini31LaunchedForAuthType(authType) {
381333
381439
  return authType === "gemini-api-key" /* USE_GEMINI */ || authType === "vertex-ai" /* USE_VERTEX_AI */ || authType === "gateway" /* GATEWAY */;
381334
381440
  }
381441
+ /**
381442
+ * Returns whether Gemini 3.5 Flash GA has been launched.
381443
+ *
381444
+ * Note: This method should only be called after startup, once experiments have been loaded.
381445
+ */
381446
+ hasGemini35FlashGAAccess() {
381447
+ const authType = this.contentGeneratorConfig?.authType;
381448
+ const hasAccess = (() => {
381449
+ if (this.isGemini31LaunchedForAuthType(authType)) {
381450
+ return true;
381451
+ }
381452
+ return this.experiments?.flags[ExperimentFlags.GEMINI_3_5_FLASH_GA_LAUNCHED]?.boolValue ?? false;
381453
+ })();
381454
+ if (hasAccess) {
381455
+ if (authType === "gemini-api-key" /* USE_GEMINI */) {
381456
+ setFlashModels("gemini-3-flash-preview", "gemini-3.5-flash");
381457
+ } else {
381458
+ setFlashModels("gemini-3-flash", "gemini-3-flash");
381459
+ }
381460
+ } else {
381461
+ setFlashModels("gemini-3-flash-preview", "gemini-2.5-flash");
381462
+ }
381463
+ return hasAccess;
381464
+ }
381335
381465
  /**
381336
381466
  * Returns whether Gemini 3.1 has been launched.
381337
381467
  *
@@ -399761,6 +399891,9 @@ export {
399761
399891
  PREVIEW_GEMINI_FLASH_MODEL,
399762
399892
  DEFAULT_GEMINI_MODEL,
399763
399893
  DEFAULT_GEMINI_FLASH_MODEL,
399894
+ DEFAULT_GEMINI_3_5_FLASH_MODEL,
399895
+ SECONDARY_GEMINI_3_5_FLASH_MODEL,
399896
+ setFlashModels,
399764
399897
  DEFAULT_GEMINI_FLASH_LITE_MODEL,
399765
399898
  PREVIEW_GEMINI_FLASH_LITE_MODEL,
399766
399899
  GEMMA_4_31B_IT_MODEL,