@google/gemini-cli-a2a-server 0.30.0-preview.2 → 0.30.0-preview.4

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.
@@ -122894,18 +122894,20 @@ var init_partUtils = __esm({
122894
122894
  });
122895
122895
 
122896
122896
  // packages/core/dist/src/config/models.js
122897
- function resolveModel(requestedModel) {
122897
+ function resolveModel(requestedModel, useGemini3_1 = false, useCustomToolModel = false) {
122898
122898
  switch (requestedModel) {
122899
- case PREVIEW_GEMINI_MODEL_AUTO: {
122899
+ case PREVIEW_GEMINI_MODEL:
122900
+ case PREVIEW_GEMINI_MODEL_AUTO:
122901
+ case GEMINI_MODEL_ALIAS_AUTO:
122902
+ case GEMINI_MODEL_ALIAS_PRO: {
122903
+ if (useGemini3_1) {
122904
+ return useCustomToolModel ? PREVIEW_GEMINI_3_1_CUSTOM_TOOLS_MODEL : PREVIEW_GEMINI_3_1_MODEL;
122905
+ }
122900
122906
  return PREVIEW_GEMINI_MODEL;
122901
122907
  }
122902
122908
  case DEFAULT_GEMINI_MODEL_AUTO: {
122903
122909
  return DEFAULT_GEMINI_MODEL;
122904
122910
  }
122905
- case GEMINI_MODEL_ALIAS_AUTO:
122906
- case GEMINI_MODEL_ALIAS_PRO: {
122907
- return PREVIEW_GEMINI_MODEL;
122908
- }
122909
122911
  case GEMINI_MODEL_ALIAS_FLASH: {
122910
122912
  return PREVIEW_GEMINI_FLASH_MODEL;
122911
122913
  }
@@ -122917,7 +122919,7 @@ function resolveModel(requestedModel) {
122917
122919
  }
122918
122920
  }
122919
122921
  }
122920
- function resolveClassifierModel(requestedModel, modelAlias) {
122922
+ function resolveClassifierModel(requestedModel, modelAlias, useGemini3_1 = false, useCustomToolModel = false) {
122921
122923
  if (modelAlias === GEMINI_MODEL_ALIAS_FLASH) {
122922
122924
  if (requestedModel === DEFAULT_GEMINI_MODEL_AUTO || requestedModel === DEFAULT_GEMINI_MODEL) {
122923
122925
  return DEFAULT_GEMINI_FLASH_MODEL;
@@ -122927,10 +122929,10 @@ function resolveClassifierModel(requestedModel, modelAlias) {
122927
122929
  }
122928
122930
  return resolveModel(GEMINI_MODEL_ALIAS_FLASH);
122929
122931
  }
122930
- return resolveModel(requestedModel);
122932
+ return resolveModel(requestedModel, useGemini3_1, useCustomToolModel);
122931
122933
  }
122932
122934
  function isPreviewModel(model) {
122933
- return model === PREVIEW_GEMINI_MODEL || model === PREVIEW_GEMINI_FLASH_MODEL || model === PREVIEW_GEMINI_MODEL_AUTO;
122935
+ return model === PREVIEW_GEMINI_MODEL || model === PREVIEW_GEMINI_3_1_MODEL || model === PREVIEW_GEMINI_FLASH_MODEL || model === PREVIEW_GEMINI_MODEL_AUTO;
122934
122936
  }
122935
122937
  function isGemini3Model(model) {
122936
122938
  const resolved = resolveModel(model);
@@ -122954,11 +122956,13 @@ function isAutoModel(model) {
122954
122956
  function supportsMultimodalFunctionResponse(model) {
122955
122957
  return model.startsWith("gemini-3-");
122956
122958
  }
122957
- var PREVIEW_GEMINI_MODEL, PREVIEW_GEMINI_FLASH_MODEL, DEFAULT_GEMINI_MODEL, DEFAULT_GEMINI_FLASH_MODEL, DEFAULT_GEMINI_FLASH_LITE_MODEL, PREVIEW_GEMINI_MODEL_AUTO, DEFAULT_GEMINI_MODEL_AUTO, GEMINI_MODEL_ALIAS_AUTO, GEMINI_MODEL_ALIAS_PRO, GEMINI_MODEL_ALIAS_FLASH, GEMINI_MODEL_ALIAS_FLASH_LITE, DEFAULT_GEMINI_EMBEDDING_MODEL, DEFAULT_THINKING_MODE;
122959
+ var PREVIEW_GEMINI_MODEL, PREVIEW_GEMINI_3_1_MODEL, PREVIEW_GEMINI_3_1_CUSTOM_TOOLS_MODEL, PREVIEW_GEMINI_FLASH_MODEL, DEFAULT_GEMINI_MODEL, DEFAULT_GEMINI_FLASH_MODEL, DEFAULT_GEMINI_FLASH_LITE_MODEL, PREVIEW_GEMINI_MODEL_AUTO, DEFAULT_GEMINI_MODEL_AUTO, GEMINI_MODEL_ALIAS_AUTO, GEMINI_MODEL_ALIAS_PRO, GEMINI_MODEL_ALIAS_FLASH, GEMINI_MODEL_ALIAS_FLASH_LITE, DEFAULT_GEMINI_EMBEDDING_MODEL, DEFAULT_THINKING_MODE;
122958
122960
  var init_models = __esm({
122959
122961
  "packages/core/dist/src/config/models.js"() {
122960
122962
  "use strict";
122961
122963
  PREVIEW_GEMINI_MODEL = "gemini-3-pro-preview";
122964
+ PREVIEW_GEMINI_3_1_MODEL = "gemini-3.1-pro-preview";
122965
+ PREVIEW_GEMINI_3_1_CUSTOM_TOOLS_MODEL = "gemini-3.1-pro-preview-customtools";
122962
122966
  PREVIEW_GEMINI_FLASH_MODEL = "gemini-3-flash-preview";
122963
122967
  DEFAULT_GEMINI_MODEL = "gemini-2.5-pro";
122964
122968
  DEFAULT_GEMINI_FLASH_MODEL = "gemini-2.5-flash";
@@ -131341,7 +131345,7 @@ function getVersion() {
131341
131345
  }
131342
131346
  versionPromise = (async () => {
131343
131347
  const pkgJson = await getPackageJson(__dirname3);
131344
- return "0.30.0-preview.2";
131348
+ return "0.30.0-preview.4";
131345
131349
  })();
131346
131350
  return versionPromise;
131347
131351
  }
@@ -208741,8 +208745,8 @@ var GIT_COMMIT_INFO, CLI_VERSION;
208741
208745
  var init_git_commit = __esm({
208742
208746
  "packages/core/dist/src/generated/git-commit.js"() {
208743
208747
  "use strict";
208744
- GIT_COMMIT_INFO = "54a1200ef";
208745
- CLI_VERSION = "0.30.0-preview.2";
208748
+ GIT_COMMIT_INFO = "09c6514d7";
208749
+ CLI_VERSION = "0.30.0-preview.4";
208746
208750
  }
208747
208751
  });
208748
208752
 
@@ -280782,7 +280786,7 @@ async function createContentGenerator(config3, gcConfig, sessionId2) {
280782
280786
  return new LoggingContentGenerator(fakeGenerator, gcConfig);
280783
280787
  }
280784
280788
  const version4 = await getVersion();
280785
- const model = resolveModel(gcConfig.getModel());
280789
+ const model = resolveModel(gcConfig.getModel(), config3.authType === AuthType2.USE_GEMINI || config3.authType === AuthType2.USE_VERTEX_AI || (await gcConfig.getGemini31Launched?.() ?? false));
280786
280790
  const customHeadersEnv = process.env["GEMINI_CLI_CUSTOM_HEADERS"] || void 0;
280787
280791
  const userAgent = `GeminiCLI/${version4}/${model} (${process.platform}; ${process.arch})`;
280788
280792
  const customHeadersMap = parseCustomHeaders(customHeadersEnv);
@@ -355357,7 +355361,11 @@ var init_errorClassification = __esm({
355357
355361
  // packages/core/dist/src/availability/policyCatalog.js
355358
355362
  function getModelPolicyChain(options) {
355359
355363
  if (options.previewEnabled) {
355360
- return cloneChain(PREVIEW_CHAIN);
355364
+ const previewModel = resolveModel(PREVIEW_GEMINI_MODEL, options.useGemini31, options.useCustomToolModel);
355365
+ return [
355366
+ definePolicy({ model: previewModel }),
355367
+ definePolicy({ model: PREVIEW_GEMINI_FLASH_MODEL, isLastResort: true })
355368
+ ];
355361
355369
  }
355362
355370
  return cloneChain(DEFAULT_CHAIN);
355363
355371
  }
@@ -355391,7 +355399,7 @@ function clonePolicy(policy) {
355391
355399
  function cloneChain(chain2) {
355392
355400
  return chain2.map(clonePolicy);
355393
355401
  }
355394
- var DEFAULT_ACTIONS, SILENT_ACTIONS, DEFAULT_STATE, DEFAULT_CHAIN, PREVIEW_CHAIN, FLASH_LITE_CHAIN;
355402
+ var DEFAULT_ACTIONS, SILENT_ACTIONS, DEFAULT_STATE, DEFAULT_CHAIN, FLASH_LITE_CHAIN;
355395
355403
  var init_policyCatalog = __esm({
355396
355404
  "packages/core/dist/src/availability/policyCatalog.js"() {
355397
355405
  "use strict";
@@ -355418,10 +355426,6 @@ var init_policyCatalog = __esm({
355418
355426
  definePolicy({ model: DEFAULT_GEMINI_MODEL }),
355419
355427
  definePolicy({ model: DEFAULT_GEMINI_FLASH_MODEL, isLastResort: true })
355420
355428
  ];
355421
- PREVIEW_CHAIN = [
355422
- definePolicy({ model: PREVIEW_GEMINI_MODEL }),
355423
- definePolicy({ model: PREVIEW_GEMINI_FLASH_MODEL, isLastResort: true })
355424
- ];
355425
355429
  FLASH_LITE_CHAIN = [
355426
355430
  definePolicy({
355427
355431
  model: DEFAULT_GEMINI_FLASH_LITE_MODEL,
@@ -355445,7 +355449,9 @@ function resolvePolicyChain(config3, preferredModel, wrapsAround = false) {
355445
355449
  const modelFromConfig = preferredModel ?? config3.getActiveModel?.() ?? config3.getModel();
355446
355450
  const configuredModel = config3.getModel();
355447
355451
  let chain2;
355448
- const resolvedModel = resolveModel(modelFromConfig);
355452
+ const useGemini31 = config3.getGemini31LaunchedSync?.() ?? false;
355453
+ const useCustomToolModel = useGemini31 && config3.getContentGeneratorConfig?.()?.authType === AuthType2.USE_GEMINI;
355454
+ const resolvedModel = resolveModel(modelFromConfig, useGemini31, useCustomToolModel);
355449
355455
  const isAutoPreferred = preferredModel ? isAutoModel(preferredModel) : false;
355450
355456
  const isAutoConfigured = isAutoModel(configuredModel);
355451
355457
  const hasAccessToPreview = config3.getHasAccessToPreviewModel?.() ?? true;
@@ -355456,12 +355462,16 @@ function resolvePolicyChain(config3, preferredModel, wrapsAround = false) {
355456
355462
  const previewEnabled = isGemini3Model(resolvedModel) || preferredModel === PREVIEW_GEMINI_MODEL_AUTO || configuredModel === PREVIEW_GEMINI_MODEL_AUTO;
355457
355463
  chain2 = getModelPolicyChain({
355458
355464
  previewEnabled,
355459
- userTier: config3.getUserTier()
355465
+ userTier: config3.getUserTier(),
355466
+ useGemini31,
355467
+ useCustomToolModel
355460
355468
  });
355461
355469
  } else {
355462
355470
  return getModelPolicyChain({
355463
355471
  previewEnabled: false,
355464
- userTier: config3.getUserTier()
355472
+ userTier: config3.getUserTier(),
355473
+ useGemini31,
355474
+ useCustomToolModel
355465
355475
  });
355466
355476
  }
355467
355477
  } else {
@@ -355546,6 +355556,7 @@ function applyAvailabilityTransition(getContext, failureKind) {
355546
355556
  var init_policyHelpers = __esm({
355547
355557
  "packages/core/dist/src/availability/policyHelpers.js"() {
355548
355558
  "use strict";
355559
+ init_contentGenerator();
355549
355560
  init_policyCatalog();
355550
355561
  init_models();
355551
355562
  }
@@ -377560,9 +377571,10 @@ var init_geminiChat = __esm({
377560
377571
  const getAvailabilityContext = createAvailabilityContextProvider(this.config, () => lastModelToUse);
377561
377572
  const initialActiveModel = this.config.getActiveModel();
377562
377573
  const apiCall = async () => {
377563
- let modelToUse = resolveModel(lastModelToUse);
377574
+ const useGemini3_1 = await this.config.getGemini31Launched?.() ?? false;
377575
+ let modelToUse = resolveModel(lastModelToUse, useGemini3_1);
377564
377576
  if (this.config.getActiveModel() !== initialActiveModel) {
377565
- modelToUse = resolveModel(this.config.getActiveModel());
377577
+ modelToUse = resolveModel(this.config.getActiveModel(), useGemini3_1);
377566
377578
  }
377567
377579
  if (modelToUse !== lastModelToUse) {
377568
377580
  const { generateContentConfig: newConfig } = this.config.modelConfigService.getResolvedConfig({
@@ -379486,7 +379498,7 @@ var init_promptProvider = __esm({
379486
379498
  const toolNames = config3.getToolRegistry().getAllToolNames();
379487
379499
  const enabledToolNames = new Set(toolNames);
379488
379500
  const approvedPlanPath = config3.getApprovedPlanPath();
379489
- const desiredModel = resolveModel(config3.getActiveModel());
379501
+ const desiredModel = resolveModel(config3.getActiveModel(), config3.getGemini31LaunchedSync?.() ?? false);
379490
379502
  const isModernModel = supportsModernFeatures(desiredModel);
379491
379503
  const activeSnippets = isModernModel ? snippets_exports : snippets_legacy_exports;
379492
379504
  const contextFilenames = getAllGeminiMdFilenames();
@@ -379573,7 +379585,7 @@ ${mcpToolsList}`;
379573
379585
  return sanitizedPrompt;
379574
379586
  }
379575
379587
  getCompressionPrompt(config3) {
379576
- const desiredModel = resolveModel(config3.getActiveModel());
379588
+ const desiredModel = resolveModel(config3.getActiveModel(), config3.getGemini31LaunchedSync?.() ?? false);
379577
379589
  const isModernModel = supportsModernFeatures(desiredModel);
379578
379590
  const activeSnippets = isModernModel ? snippets_exports : snippets_legacy_exports;
379579
379591
  return activeSnippets.getCompressionPrompt();
@@ -380123,6 +380135,7 @@ function findCompressSplitPoint(contents, fraction) {
380123
380135
  function modelStringToModelConfigAlias(model) {
380124
380136
  switch (model) {
380125
380137
  case PREVIEW_GEMINI_MODEL:
380138
+ case PREVIEW_GEMINI_3_1_MODEL:
380126
380139
  return "chat-compression-3-pro";
380127
380140
  case PREVIEW_GEMINI_FLASH_MODEL:
380128
380141
  return "chat-compression-3-flash";
@@ -380953,7 +380966,7 @@ var init_client3 = __esm({
380953
380966
  if (this.currentSequenceModel) {
380954
380967
  return this.currentSequenceModel;
380955
380968
  }
380956
- return resolveModel(this.config.getActiveModel());
380969
+ return resolveModel(this.config.getActiveModel(), this.config.getGemini31LaunchedSync?.() ?? false);
380957
380970
  }
380958
380971
  async *processTurn(request, signal, prompt_id, boundedTurns, isInvalidStreamRetry, displayContent) {
380959
380972
  let turn = new Turn(this.getChat(), prompt_id);
@@ -386151,7 +386164,7 @@ var init_defaultStrategy = __esm({
386151
386164
  DefaultStrategy = class {
386152
386165
  name = "default";
386153
386166
  async route(_context, config3, _baseLlmClient) {
386154
- const defaultModel = resolveModel(config3.getModel());
386167
+ const defaultModel = resolveModel(config3.getModel(), config3.getGemini31LaunchedSync?.() ?? false);
386155
386168
  return {
386156
386169
  model: defaultModel,
386157
386170
  metadata: {
@@ -386177,6 +386190,7 @@ var init_classifierStrategy = __esm({
386177
386190
  init_messageInspectors();
386178
386191
  init_debugLogger();
386179
386192
  init_types6();
386193
+ init_contentGenerator();
386180
386194
  HISTORY_TURNS_FOR_CONTEXT = 4;
386181
386195
  HISTORY_SEARCH_WINDOW = 20;
386182
386196
  FLASH_MODEL = "flash";
@@ -386297,7 +386311,9 @@ Respond *only* in JSON format according to the following schema. Do not include
386297
386311
  const routerResponse = ClassifierResponseSchema.parse(jsonResponse);
386298
386312
  const reasoning = routerResponse.reasoning;
386299
386313
  const latencyMs = Date.now() - startTime;
386300
- const selectedModel = resolveClassifierModel(model, routerResponse.model_choice);
386314
+ const useGemini3_1 = await config3.getGemini31Launched?.() ?? false;
386315
+ const useCustomToolModel = useGemini3_1 && config3.getContentGeneratorConfig().authType === AuthType2.USE_GEMINI;
386316
+ const selectedModel = resolveClassifierModel(model, routerResponse.model_choice, useGemini3_1, useCustomToolModel);
386301
386317
  return {
386302
386318
  model: selectedModel,
386303
386319
  metadata: {
@@ -386338,6 +386354,7 @@ var init_numericalClassifierStrategy = __esm({
386338
386354
  init_node();
386339
386355
  init_debugLogger();
386340
386356
  init_types6();
386357
+ init_contentGenerator();
386341
386358
  HISTORY_TURNS_FOR_CONTEXT2 = 8;
386342
386359
  FLASH_MODEL2 = "flash";
386343
386360
  PRO_MODEL2 = "pro";
@@ -386442,7 +386459,9 @@ Model: {"complexity_reasoning": "High-level architecture and strategic planning.
386442
386459
  const routerResponse = ClassifierResponseSchema2.parse(jsonResponse);
386443
386460
  const score = routerResponse.complexity_score;
386444
386461
  const { threshold, groupLabel, modelAlias } = await this.getRoutingDecision(score, config3, config3.getSessionId() || "unknown-session");
386445
- const selectedModel = resolveClassifierModel(model, modelAlias);
386462
+ const useGemini3_1 = await config3.getGemini31Launched?.() ?? false;
386463
+ const useCustomToolModel = useGemini3_1 && config3.getContentGeneratorConfig().authType === AuthType2.USE_GEMINI;
386464
+ const selectedModel = resolveClassifierModel(model, modelAlias, useGemini3_1, useCustomToolModel);
386446
386465
  const latencyMs = Date.now() - startTime;
386447
386466
  return {
386448
386467
  model: selectedModel,
@@ -386548,7 +386567,7 @@ var init_fallbackStrategy = __esm({
386548
386567
  name = "fallback";
386549
386568
  async route(context2, config3, _baseLlmClient) {
386550
386569
  const requestedModel = context2.requestedModel ?? config3.getModel();
386551
- const resolvedModel = resolveModel(requestedModel);
386570
+ const resolvedModel = resolveModel(requestedModel, config3.getGemini31LaunchedSync?.() ?? false);
386552
386571
  const service = config3.getModelAvailabilityService();
386553
386572
  const snapshot = service.snapshot(resolvedModel);
386554
386573
  if (snapshot.available) {
@@ -386585,7 +386604,7 @@ var init_overrideStrategy = __esm({
386585
386604
  return null;
386586
386605
  }
386587
386606
  return {
386588
- model: resolveModel(overrideModel),
386607
+ model: resolveModel(overrideModel, config3.getGemini31LaunchedSync?.() ?? false),
386589
386608
  metadata: {
386590
386609
  source: this.name,
386591
386610
  latencyMs: 0,
@@ -397323,7 +397342,8 @@ var init_flagNames = __esm({
397323
397342
  ENABLE_ADMIN_CONTROLS: 45752213,
397324
397343
  MASKING_PROTECTION_THRESHOLD: 45758817,
397325
397344
  MASKING_PRUNABLE_THRESHOLD: 45758818,
397326
- MASKING_PROTECT_LATEST_TURN: 45758819
397345
+ MASKING_PROTECT_LATEST_TURN: 45758819,
397346
+ GEMINI_3_1_PRO_LAUNCHED: 45760185
397327
397347
  };
397328
397348
  }
397329
397349
  });
@@ -401414,6 +401434,9 @@ var init_config3 = __esm({
401414
401434
  this.geminiClient.stripThoughtsFromHistory();
401415
401435
  }
401416
401436
  this.modelAvailabilityService.reset();
401437
+ if (this.contentGeneratorConfig) {
401438
+ this.contentGeneratorConfig.authType = void 0;
401439
+ }
401417
401440
  const newContentGeneratorConfig = await createContentGeneratorConfig(this, authMethod);
401418
401441
  this.contentGenerator = await createContentGenerator(newContentGeneratorConfig, this, this.getSessionId());
401419
401442
  this.contentGeneratorConfig = newContentGeneratorConfig;
@@ -401598,7 +401621,7 @@ var init_config3 = __esm({
401598
401621
  if (pooled.remaining !== void 0) {
401599
401622
  return pooled.remaining;
401600
401623
  }
401601
- const primaryModel = resolveModel(this.getModel());
401624
+ const primaryModel = resolveModel(this.getModel(), this.getGemini31LaunchedSync());
401602
401625
  return this.modelQuotas.get(primaryModel)?.remaining;
401603
401626
  }
401604
401627
  getQuotaLimit() {
@@ -401606,7 +401629,7 @@ var init_config3 = __esm({
401606
401629
  if (pooled.limit !== void 0) {
401607
401630
  return pooled.limit;
401608
401631
  }
401609
- const primaryModel = resolveModel(this.getModel());
401632
+ const primaryModel = resolveModel(this.getModel(), this.getGemini31LaunchedSync());
401610
401633
  return this.modelQuotas.get(primaryModel)?.limit;
401611
401634
  }
401612
401635
  getQuotaResetTime() {
@@ -401614,7 +401637,7 @@ var init_config3 = __esm({
401614
401637
  if (pooled.resetTime !== void 0) {
401615
401638
  return pooled.resetTime;
401616
401639
  }
401617
- const primaryModel = resolveModel(this.getModel());
401640
+ const primaryModel = resolveModel(this.getModel(), this.getGemini31LaunchedSync());
401618
401641
  return this.modelQuotas.get(primaryModel)?.resetTime;
401619
401642
  }
401620
401643
  getEmbeddingModel() {
@@ -402227,6 +402250,28 @@ var init_config3 = __esm({
402227
402250
  await this.ensureExperimentsLoaded();
402228
402251
  return this.experiments?.flags[ExperimentFlags.BANNER_TEXT_CAPACITY_ISSUES]?.stringValue ?? "";
402229
402252
  }
402253
+ /**
402254
+ * Returns whether Gemini 3.1 has been launched.
402255
+ * This method is async and ensures that experiments are loaded before returning the result.
402256
+ */
402257
+ async getGemini31Launched() {
402258
+ await this.ensureExperimentsLoaded();
402259
+ return this.getGemini31LaunchedSync();
402260
+ }
402261
+ /**
402262
+ * Returns whether Gemini 3.1 has been launched.
402263
+ *
402264
+ * Note: This method should only be called after startup, once experiments have been loaded.
402265
+ * If you need to call this during startup or from an async context, use
402266
+ * getGemini31Launched instead.
402267
+ */
402268
+ getGemini31LaunchedSync() {
402269
+ const authType = this.contentGeneratorConfig?.authType;
402270
+ if (authType === AuthType2.USE_GEMINI || authType === AuthType2.USE_VERTEX_AI) {
402271
+ return true;
402272
+ }
402273
+ return this.experiments?.flags[ExperimentFlags.GEMINI_3_1_PRO_LAUNCHED]?.boolValue ?? false;
402274
+ }
402230
402275
  async ensureExperimentsLoaded() {
402231
402276
  if (!this.experimentsPromise) {
402232
402277
  return;