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

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.3";
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 = "9ddc46c59";
208749
+ CLI_VERSION = "0.30.0-preview.3";
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);
@@ -355445,7 +355449,7 @@ 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 resolvedModel = resolveModel(modelFromConfig, config3.getGemini31LaunchedSync?.() ?? false);
355449
355453
  const isAutoPreferred = preferredModel ? isAutoModel(preferredModel) : false;
355450
355454
  const isAutoConfigured = isAutoModel(configuredModel);
355451
355455
  const hasAccessToPreview = config3.getHasAccessToPreviewModel?.() ?? true;
@@ -377560,9 +377564,10 @@ var init_geminiChat = __esm({
377560
377564
  const getAvailabilityContext = createAvailabilityContextProvider(this.config, () => lastModelToUse);
377561
377565
  const initialActiveModel = this.config.getActiveModel();
377562
377566
  const apiCall = async () => {
377563
- let modelToUse = resolveModel(lastModelToUse);
377567
+ const useGemini3_1 = await this.config.getGemini31Launched?.() ?? false;
377568
+ let modelToUse = resolveModel(lastModelToUse, useGemini3_1);
377564
377569
  if (this.config.getActiveModel() !== initialActiveModel) {
377565
- modelToUse = resolveModel(this.config.getActiveModel());
377570
+ modelToUse = resolveModel(this.config.getActiveModel(), useGemini3_1);
377566
377571
  }
377567
377572
  if (modelToUse !== lastModelToUse) {
377568
377573
  const { generateContentConfig: newConfig } = this.config.modelConfigService.getResolvedConfig({
@@ -379486,7 +379491,7 @@ var init_promptProvider = __esm({
379486
379491
  const toolNames = config3.getToolRegistry().getAllToolNames();
379487
379492
  const enabledToolNames = new Set(toolNames);
379488
379493
  const approvedPlanPath = config3.getApprovedPlanPath();
379489
- const desiredModel = resolveModel(config3.getActiveModel());
379494
+ const desiredModel = resolveModel(config3.getActiveModel(), config3.getGemini31LaunchedSync?.() ?? false);
379490
379495
  const isModernModel = supportsModernFeatures(desiredModel);
379491
379496
  const activeSnippets = isModernModel ? snippets_exports : snippets_legacy_exports;
379492
379497
  const contextFilenames = getAllGeminiMdFilenames();
@@ -379573,7 +379578,7 @@ ${mcpToolsList}`;
379573
379578
  return sanitizedPrompt;
379574
379579
  }
379575
379580
  getCompressionPrompt(config3) {
379576
- const desiredModel = resolveModel(config3.getActiveModel());
379581
+ const desiredModel = resolveModel(config3.getActiveModel(), config3.getGemini31LaunchedSync?.() ?? false);
379577
379582
  const isModernModel = supportsModernFeatures(desiredModel);
379578
379583
  const activeSnippets = isModernModel ? snippets_exports : snippets_legacy_exports;
379579
379584
  return activeSnippets.getCompressionPrompt();
@@ -380123,6 +380128,7 @@ function findCompressSplitPoint(contents, fraction) {
380123
380128
  function modelStringToModelConfigAlias(model) {
380124
380129
  switch (model) {
380125
380130
  case PREVIEW_GEMINI_MODEL:
380131
+ case PREVIEW_GEMINI_3_1_MODEL:
380126
380132
  return "chat-compression-3-pro";
380127
380133
  case PREVIEW_GEMINI_FLASH_MODEL:
380128
380134
  return "chat-compression-3-flash";
@@ -380953,7 +380959,7 @@ var init_client3 = __esm({
380953
380959
  if (this.currentSequenceModel) {
380954
380960
  return this.currentSequenceModel;
380955
380961
  }
380956
- return resolveModel(this.config.getActiveModel());
380962
+ return resolveModel(this.config.getActiveModel(), this.config.getGemini31LaunchedSync?.() ?? false);
380957
380963
  }
380958
380964
  async *processTurn(request, signal, prompt_id, boundedTurns, isInvalidStreamRetry, displayContent) {
380959
380965
  let turn = new Turn(this.getChat(), prompt_id);
@@ -386151,7 +386157,7 @@ var init_defaultStrategy = __esm({
386151
386157
  DefaultStrategy = class {
386152
386158
  name = "default";
386153
386159
  async route(_context, config3, _baseLlmClient) {
386154
- const defaultModel = resolveModel(config3.getModel());
386160
+ const defaultModel = resolveModel(config3.getModel(), config3.getGemini31LaunchedSync?.() ?? false);
386155
386161
  return {
386156
386162
  model: defaultModel,
386157
386163
  metadata: {
@@ -386177,6 +386183,7 @@ var init_classifierStrategy = __esm({
386177
386183
  init_messageInspectors();
386178
386184
  init_debugLogger();
386179
386185
  init_types6();
386186
+ init_contentGenerator();
386180
386187
  HISTORY_TURNS_FOR_CONTEXT = 4;
386181
386188
  HISTORY_SEARCH_WINDOW = 20;
386182
386189
  FLASH_MODEL = "flash";
@@ -386297,7 +386304,9 @@ Respond *only* in JSON format according to the following schema. Do not include
386297
386304
  const routerResponse = ClassifierResponseSchema.parse(jsonResponse);
386298
386305
  const reasoning = routerResponse.reasoning;
386299
386306
  const latencyMs = Date.now() - startTime;
386300
- const selectedModel = resolveClassifierModel(model, routerResponse.model_choice);
386307
+ const useGemini3_1 = await config3.getGemini31Launched?.() ?? false;
386308
+ const useCustomToolModel = useGemini3_1 && config3.getContentGeneratorConfig().authType === AuthType2.USE_GEMINI;
386309
+ const selectedModel = resolveClassifierModel(model, routerResponse.model_choice, useGemini3_1, useCustomToolModel);
386301
386310
  return {
386302
386311
  model: selectedModel,
386303
386312
  metadata: {
@@ -386338,6 +386347,7 @@ var init_numericalClassifierStrategy = __esm({
386338
386347
  init_node();
386339
386348
  init_debugLogger();
386340
386349
  init_types6();
386350
+ init_contentGenerator();
386341
386351
  HISTORY_TURNS_FOR_CONTEXT2 = 8;
386342
386352
  FLASH_MODEL2 = "flash";
386343
386353
  PRO_MODEL2 = "pro";
@@ -386442,7 +386452,9 @@ Model: {"complexity_reasoning": "High-level architecture and strategic planning.
386442
386452
  const routerResponse = ClassifierResponseSchema2.parse(jsonResponse);
386443
386453
  const score = routerResponse.complexity_score;
386444
386454
  const { threshold, groupLabel, modelAlias } = await this.getRoutingDecision(score, config3, config3.getSessionId() || "unknown-session");
386445
- const selectedModel = resolveClassifierModel(model, modelAlias);
386455
+ const useGemini3_1 = await config3.getGemini31Launched?.() ?? false;
386456
+ const useCustomToolModel = useGemini3_1 && config3.getContentGeneratorConfig().authType === AuthType2.USE_GEMINI;
386457
+ const selectedModel = resolveClassifierModel(model, modelAlias, useGemini3_1, useCustomToolModel);
386446
386458
  const latencyMs = Date.now() - startTime;
386447
386459
  return {
386448
386460
  model: selectedModel,
@@ -386548,7 +386560,7 @@ var init_fallbackStrategy = __esm({
386548
386560
  name = "fallback";
386549
386561
  async route(context2, config3, _baseLlmClient) {
386550
386562
  const requestedModel = context2.requestedModel ?? config3.getModel();
386551
- const resolvedModel = resolveModel(requestedModel);
386563
+ const resolvedModel = resolveModel(requestedModel, config3.getGemini31LaunchedSync?.() ?? false);
386552
386564
  const service = config3.getModelAvailabilityService();
386553
386565
  const snapshot = service.snapshot(resolvedModel);
386554
386566
  if (snapshot.available) {
@@ -386585,7 +386597,7 @@ var init_overrideStrategy = __esm({
386585
386597
  return null;
386586
386598
  }
386587
386599
  return {
386588
- model: resolveModel(overrideModel),
386600
+ model: resolveModel(overrideModel, config3.getGemini31LaunchedSync?.() ?? false),
386589
386601
  metadata: {
386590
386602
  source: this.name,
386591
386603
  latencyMs: 0,
@@ -397323,7 +397335,8 @@ var init_flagNames = __esm({
397323
397335
  ENABLE_ADMIN_CONTROLS: 45752213,
397324
397336
  MASKING_PROTECTION_THRESHOLD: 45758817,
397325
397337
  MASKING_PRUNABLE_THRESHOLD: 45758818,
397326
- MASKING_PROTECT_LATEST_TURN: 45758819
397338
+ MASKING_PROTECT_LATEST_TURN: 45758819,
397339
+ GEMINI_3_1_PRO_LAUNCHED: 45760185
397327
397340
  };
397328
397341
  }
397329
397342
  });
@@ -401414,6 +401427,9 @@ var init_config3 = __esm({
401414
401427
  this.geminiClient.stripThoughtsFromHistory();
401415
401428
  }
401416
401429
  this.modelAvailabilityService.reset();
401430
+ if (this.contentGeneratorConfig) {
401431
+ this.contentGeneratorConfig.authType = void 0;
401432
+ }
401417
401433
  const newContentGeneratorConfig = await createContentGeneratorConfig(this, authMethod);
401418
401434
  this.contentGenerator = await createContentGenerator(newContentGeneratorConfig, this, this.getSessionId());
401419
401435
  this.contentGeneratorConfig = newContentGeneratorConfig;
@@ -401598,7 +401614,7 @@ var init_config3 = __esm({
401598
401614
  if (pooled.remaining !== void 0) {
401599
401615
  return pooled.remaining;
401600
401616
  }
401601
- const primaryModel = resolveModel(this.getModel());
401617
+ const primaryModel = resolveModel(this.getModel(), this.getGemini31LaunchedSync());
401602
401618
  return this.modelQuotas.get(primaryModel)?.remaining;
401603
401619
  }
401604
401620
  getQuotaLimit() {
@@ -401606,7 +401622,7 @@ var init_config3 = __esm({
401606
401622
  if (pooled.limit !== void 0) {
401607
401623
  return pooled.limit;
401608
401624
  }
401609
- const primaryModel = resolveModel(this.getModel());
401625
+ const primaryModel = resolveModel(this.getModel(), this.getGemini31LaunchedSync());
401610
401626
  return this.modelQuotas.get(primaryModel)?.limit;
401611
401627
  }
401612
401628
  getQuotaResetTime() {
@@ -401614,7 +401630,7 @@ var init_config3 = __esm({
401614
401630
  if (pooled.resetTime !== void 0) {
401615
401631
  return pooled.resetTime;
401616
401632
  }
401617
- const primaryModel = resolveModel(this.getModel());
401633
+ const primaryModel = resolveModel(this.getModel(), this.getGemini31LaunchedSync());
401618
401634
  return this.modelQuotas.get(primaryModel)?.resetTime;
401619
401635
  }
401620
401636
  getEmbeddingModel() {
@@ -402227,6 +402243,28 @@ var init_config3 = __esm({
402227
402243
  await this.ensureExperimentsLoaded();
402228
402244
  return this.experiments?.flags[ExperimentFlags.BANNER_TEXT_CAPACITY_ISSUES]?.stringValue ?? "";
402229
402245
  }
402246
+ /**
402247
+ * Returns whether Gemini 3.1 has been launched.
402248
+ * This method is async and ensures that experiments are loaded before returning the result.
402249
+ */
402250
+ async getGemini31Launched() {
402251
+ await this.ensureExperimentsLoaded();
402252
+ return this.getGemini31LaunchedSync();
402253
+ }
402254
+ /**
402255
+ * Returns whether Gemini 3.1 has been launched.
402256
+ *
402257
+ * Note: This method should only be called after startup, once experiments have been loaded.
402258
+ * If you need to call this during startup or from an async context, use
402259
+ * getGemini31Launched instead.
402260
+ */
402261
+ getGemini31LaunchedSync() {
402262
+ const authType = this.contentGeneratorConfig?.authType;
402263
+ if (authType === AuthType2.USE_GEMINI || authType === AuthType2.USE_VERTEX_AI) {
402264
+ return true;
402265
+ }
402266
+ return this.experiments?.flags[ExperimentFlags.GEMINI_3_1_PRO_LAUNCHED]?.boolValue ?? false;
402267
+ }
402230
402268
  async ensureExperimentsLoaded() {
402231
402269
  if (!this.experimentsPromise) {
402232
402270
  return;