@google/gemini-cli-a2a-server 0.29.3 → 0.29.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.
@@ -328727,6 +328727,8 @@ function getResponseText(response) {
328727
328727
 
328728
328728
  // packages/core/dist/src/config/models.js
328729
328729
  var PREVIEW_GEMINI_MODEL = "gemini-3-pro-preview";
328730
+ var PREVIEW_GEMINI_3_1_MODEL = "gemini-3.1-pro-preview";
328731
+ var PREVIEW_GEMINI_3_1_CUSTOM_TOOLS_MODEL = "gemini-3.1-pro-preview-customtools";
328730
328732
  var PREVIEW_GEMINI_FLASH_MODEL = "gemini-3-flash-preview";
328731
328733
  var DEFAULT_GEMINI_MODEL = "gemini-2.5-pro";
328732
328734
  var DEFAULT_GEMINI_FLASH_MODEL = "gemini-2.5-flash";
@@ -328739,18 +328741,20 @@ var GEMINI_MODEL_ALIAS_FLASH = "flash";
328739
328741
  var GEMINI_MODEL_ALIAS_FLASH_LITE = "flash-lite";
328740
328742
  var DEFAULT_GEMINI_EMBEDDING_MODEL = "gemini-embedding-001";
328741
328743
  var DEFAULT_THINKING_MODE = 8192;
328742
- function resolveModel(requestedModel) {
328744
+ function resolveModel(requestedModel, useGemini3_1 = false, useCustomToolModel = false) {
328743
328745
  switch (requestedModel) {
328744
- case PREVIEW_GEMINI_MODEL_AUTO: {
328746
+ case PREVIEW_GEMINI_MODEL:
328747
+ case PREVIEW_GEMINI_MODEL_AUTO:
328748
+ case GEMINI_MODEL_ALIAS_AUTO:
328749
+ case GEMINI_MODEL_ALIAS_PRO: {
328750
+ if (useGemini3_1) {
328751
+ return useCustomToolModel ? PREVIEW_GEMINI_3_1_CUSTOM_TOOLS_MODEL : PREVIEW_GEMINI_3_1_MODEL;
328752
+ }
328745
328753
  return PREVIEW_GEMINI_MODEL;
328746
328754
  }
328747
328755
  case DEFAULT_GEMINI_MODEL_AUTO: {
328748
328756
  return DEFAULT_GEMINI_MODEL;
328749
328757
  }
328750
- case GEMINI_MODEL_ALIAS_AUTO:
328751
- case GEMINI_MODEL_ALIAS_PRO: {
328752
- return PREVIEW_GEMINI_MODEL;
328753
- }
328754
328758
  case GEMINI_MODEL_ALIAS_FLASH: {
328755
328759
  return PREVIEW_GEMINI_FLASH_MODEL;
328756
328760
  }
@@ -328762,7 +328766,7 @@ function resolveModel(requestedModel) {
328762
328766
  }
328763
328767
  }
328764
328768
  }
328765
- function resolveClassifierModel(requestedModel, modelAlias) {
328769
+ function resolveClassifierModel(requestedModel, modelAlias, useGemini3_1 = false, useCustomToolModel = false) {
328766
328770
  if (modelAlias === GEMINI_MODEL_ALIAS_FLASH) {
328767
328771
  if (requestedModel === DEFAULT_GEMINI_MODEL_AUTO || requestedModel === DEFAULT_GEMINI_MODEL) {
328768
328772
  return DEFAULT_GEMINI_FLASH_MODEL;
@@ -328772,10 +328776,10 @@ function resolveClassifierModel(requestedModel, modelAlias) {
328772
328776
  }
328773
328777
  return resolveModel(GEMINI_MODEL_ALIAS_FLASH);
328774
328778
  }
328775
- return resolveModel(requestedModel);
328779
+ return resolveModel(requestedModel, useGemini3_1, useCustomToolModel);
328776
328780
  }
328777
328781
  function isPreviewModel(model) {
328778
- return model === PREVIEW_GEMINI_MODEL || model === PREVIEW_GEMINI_FLASH_MODEL || model === PREVIEW_GEMINI_MODEL_AUTO;
328782
+ return model === PREVIEW_GEMINI_MODEL || model === PREVIEW_GEMINI_3_1_MODEL || model === PREVIEW_GEMINI_FLASH_MODEL || model === PREVIEW_GEMINI_MODEL_AUTO;
328779
328783
  }
328780
328784
  function isGemini3Model(model) {
328781
328785
  const resolved = resolveModel(model);
@@ -329195,7 +329199,7 @@ var __filename = fileURLToPath5(import.meta.url);
329195
329199
  var __dirname3 = path22.dirname(__filename);
329196
329200
  async function getVersion() {
329197
329201
  const pkgJson = await getPackageJson(__dirname3);
329198
- return "0.29.3";
329202
+ return "0.29.4";
329199
329203
  }
329200
329204
 
329201
329205
  // packages/core/dist/src/code_assist/experiments/client_metadata.js
@@ -332740,8 +332744,8 @@ var Float64Vector = import_vector.default.Float64Vector;
332740
332744
  var PointerVector = import_vector.default.PointerVector;
332741
332745
 
332742
332746
  // packages/core/dist/src/generated/git-commit.js
332743
- var GIT_COMMIT_INFO = "f581ebdd1";
332744
- var CLI_VERSION = "0.29.3";
332747
+ var GIT_COMMIT_INFO = "069641f65";
332748
+ var CLI_VERSION = "0.29.4";
332745
332749
 
332746
332750
  // packages/core/dist/src/ide/detect-ide.js
332747
332751
  var IDE_DEFINITIONS = {
@@ -336221,7 +336225,7 @@ async function createContentGenerator(config3, gcConfig, sessionId2) {
336221
336225
  return new LoggingContentGenerator(fakeGenerator, gcConfig);
336222
336226
  }
336223
336227
  const version4 = await getVersion();
336224
- const model = resolveModel(gcConfig.getModel());
336228
+ const model = resolveModel(gcConfig.getModel(), config3.authType === AuthType2.USE_GEMINI || config3.authType === AuthType2.USE_VERTEX_AI || (await gcConfig.getGemini31Launched?.() ?? false));
336225
336229
  const customHeadersEnv = process.env["GEMINI_CLI_CUSTOM_HEADERS"] || void 0;
336226
336230
  const userAgent = `GeminiCLI/${version4}/${model} (${process.platform}; ${process.arch})`;
336227
336231
  const customHeadersMap = parseCustomHeaders(customHeadersEnv);
@@ -374571,7 +374575,7 @@ function resolvePolicyChain(config3, preferredModel, wrapsAround = false) {
374571
374575
  const modelFromConfig = preferredModel ?? config3.getActiveModel?.() ?? config3.getModel();
374572
374576
  const configuredModel = config3.getModel();
374573
374577
  let chain2;
374574
- const resolvedModel = resolveModel(modelFromConfig);
374578
+ const resolvedModel = resolveModel(modelFromConfig, config3.getGemini31LaunchedSync?.() ?? false);
374575
374579
  const isAutoPreferred = preferredModel ? isAutoModel(preferredModel) : false;
374576
374580
  const isAutoConfigured = isAutoModel(configuredModel);
374577
374581
  if (resolvedModel === DEFAULT_GEMINI_FLASH_LITE_MODEL) {
@@ -386851,9 +386855,10 @@ var GeminiChat = class {
386851
386855
  const getAvailabilityContext = createAvailabilityContextProvider(this.config, () => lastModelToUse);
386852
386856
  const initialActiveModel = this.config.getActiveModel();
386853
386857
  const apiCall = async () => {
386854
- let modelToUse = resolveModel(lastModelToUse);
386858
+ const useGemini3_1 = await this.config.getGemini31Launched?.() ?? false;
386859
+ let modelToUse = resolveModel(lastModelToUse, useGemini3_1);
386855
386860
  if (this.config.getActiveModel() !== initialActiveModel) {
386856
- modelToUse = resolveModel(this.config.getActiveModel());
386861
+ modelToUse = resolveModel(this.config.getActiveModel(), useGemini3_1);
386857
386862
  }
386858
386863
  if (modelToUse !== lastModelToUse) {
386859
386864
  const { generateContentConfig: newConfig } = this.config.modelConfigService.getResolvedConfig({
@@ -388737,7 +388742,7 @@ var PromptProvider = class {
388737
388742
  const toolNames = config3.getToolRegistry().getAllToolNames();
388738
388743
  const enabledToolNames = new Set(toolNames);
388739
388744
  const approvedPlanPath = config3.getApprovedPlanPath();
388740
- const desiredModel = resolveModel(config3.getActiveModel());
388745
+ const desiredModel = resolveModel(config3.getActiveModel(), config3.getGemini31LaunchedSync?.() ?? false);
388741
388746
  const isGemini3 = isPreviewModel(desiredModel);
388742
388747
  const activeSnippets = isGemini3 ? snippets_exports : snippets_legacy_exports;
388743
388748
  const contextFilenames = getAllGeminiMdFilenames();
@@ -388826,7 +388831,7 @@ ${mcpToolsList}`;
388826
388831
  return sanitizedPrompt;
388827
388832
  }
388828
388833
  getCompressionPrompt(config3) {
388829
- const desiredModel = resolveModel(config3.getActiveModel());
388834
+ const desiredModel = resolveModel(config3.getActiveModel(), config3.getGemini31LaunchedSync?.() ?? false);
388830
388835
  const isGemini3 = isPreviewModel(desiredModel);
388831
388836
  const activeSnippets = isGemini3 ? snippets_exports : snippets_legacy_exports;
388832
388837
  return activeSnippets.getCompressionPrompt();
@@ -389340,6 +389345,7 @@ function findCompressSplitPoint(contents, fraction) {
389340
389345
  function modelStringToModelConfigAlias(model) {
389341
389346
  switch (model) {
389342
389347
  case PREVIEW_GEMINI_MODEL:
389348
+ case PREVIEW_GEMINI_3_1_MODEL:
389343
389349
  return "chat-compression-3-pro";
389344
389350
  case PREVIEW_GEMINI_FLASH_MODEL:
389345
389351
  return "chat-compression-3-flash";
@@ -390111,7 +390117,7 @@ var GeminiClient = class {
390111
390117
  if (this.currentSequenceModel) {
390112
390118
  return this.currentSequenceModel;
390113
390119
  }
390114
- return resolveModel(this.config.getActiveModel());
390120
+ return resolveModel(this.config.getActiveModel(), this.config.getGemini31LaunchedSync?.() ?? false);
390115
390121
  }
390116
390122
  async *processTurn(request3, signal, prompt_id, boundedTurns, isInvalidStreamRetry, displayContent) {
390117
390123
  let turn = new Turn(this.getChat(), prompt_id);
@@ -395390,7 +395396,7 @@ var ModelAvailabilityService = class {
395390
395396
  var DefaultStrategy = class {
395391
395397
  name = "default";
395392
395398
  async route(_context, config3, _baseLlmClient) {
395393
- const defaultModel = resolveModel(config3.getModel());
395399
+ const defaultModel = resolveModel(config3.getModel(), config3.getGemini31LaunchedSync?.() ?? false);
395394
395400
  return {
395395
395401
  model: defaultModel,
395396
395402
  metadata: {
@@ -395524,7 +395530,9 @@ var ClassifierStrategy = class {
395524
395530
  const routerResponse = ClassifierResponseSchema.parse(jsonResponse);
395525
395531
  const reasoning = routerResponse.reasoning;
395526
395532
  const latencyMs = Date.now() - startTime;
395527
- const selectedModel = resolveClassifierModel(model, routerResponse.model_choice);
395533
+ const useGemini3_1 = await config3.getGemini31Launched?.() ?? false;
395534
+ const useCustomToolModel = useGemini3_1 && config3.getContentGeneratorConfig().authType === AuthType2.USE_GEMINI;
395535
+ const selectedModel = resolveClassifierModel(model, routerResponse.model_choice, useGemini3_1, useCustomToolModel);
395528
395536
  return {
395529
395537
  model: selectedModel,
395530
395538
  metadata: {
@@ -395658,7 +395666,9 @@ var NumericalClassifierStrategy = class {
395658
395666
  const routerResponse = ClassifierResponseSchema2.parse(jsonResponse);
395659
395667
  const score = routerResponse.complexity_score;
395660
395668
  const { threshold, groupLabel, modelAlias } = await this.getRoutingDecision(score, config3, config3.getSessionId() || "unknown-session");
395661
- const selectedModel = resolveClassifierModel(model, modelAlias);
395669
+ const useGemini3_1 = await config3.getGemini31Launched?.() ?? false;
395670
+ const useCustomToolModel = useGemini3_1 && config3.getContentGeneratorConfig().authType === AuthType2.USE_GEMINI;
395671
+ const selectedModel = resolveClassifierModel(model, modelAlias, useGemini3_1, useCustomToolModel);
395662
395672
  const latencyMs = Date.now() - startTime;
395663
395673
  return {
395664
395674
  model: selectedModel,
@@ -395750,7 +395760,7 @@ var FallbackStrategy = class {
395750
395760
  name = "fallback";
395751
395761
  async route(context2, config3, _baseLlmClient) {
395752
395762
  const requestedModel = context2.requestedModel ?? config3.getModel();
395753
- const resolvedModel = resolveModel(requestedModel);
395763
+ const resolvedModel = resolveModel(requestedModel, config3.getGemini31LaunchedSync?.() ?? false);
395754
395764
  const service = config3.getModelAvailabilityService();
395755
395765
  const snapshot = service.snapshot(resolvedModel);
395756
395766
  if (snapshot.available) {
@@ -395780,7 +395790,7 @@ var OverrideStrategy = class {
395780
395790
  return null;
395781
395791
  }
395782
395792
  return {
395783
- model: resolveModel(overrideModel),
395793
+ model: resolveModel(overrideModel, config3.getGemini31LaunchedSync?.() ?? false),
395784
395794
  metadata: {
395785
395795
  source: this.name,
395786
395796
  latencyMs: 0,
@@ -405356,7 +405366,8 @@ var ExperimentFlags = {
405356
405366
  ENABLE_ADMIN_CONTROLS: 45752213,
405357
405367
  MASKING_PROTECTION_THRESHOLD: 45758817,
405358
405368
  MASKING_PRUNABLE_THRESHOLD: 45758818,
405359
- MASKING_PROTECT_LATEST_TURN: 45758819
405369
+ MASKING_PROTECT_LATEST_TURN: 45758819,
405370
+ GEMINI_3_1_PRO_LAUNCHED: 45760185
405360
405371
  };
405361
405372
 
405362
405373
  // packages/core/dist/src/config/config.js
@@ -409277,6 +409288,9 @@ var Config = class {
409277
409288
  this.geminiClient.stripThoughtsFromHistory();
409278
409289
  }
409279
409290
  this.modelAvailabilityService.reset();
409291
+ if (this.contentGeneratorConfig) {
409292
+ this.contentGeneratorConfig.authType = void 0;
409293
+ }
409280
409294
  const newContentGeneratorConfig = await createContentGeneratorConfig(this, authMethod);
409281
409295
  this.contentGenerator = await createContentGenerator(newContentGeneratorConfig, this, this.getSessionId());
409282
409296
  this.contentGeneratorConfig = newContentGeneratorConfig;
@@ -409458,7 +409472,7 @@ var Config = class {
409458
409472
  if (pooled.remaining !== void 0) {
409459
409473
  return pooled.remaining;
409460
409474
  }
409461
- const primaryModel = resolveModel(this.getModel());
409475
+ const primaryModel = resolveModel(this.getModel(), this.getGemini31LaunchedSync());
409462
409476
  return this.modelQuotas.get(primaryModel)?.remaining;
409463
409477
  }
409464
409478
  getQuotaLimit() {
@@ -409466,7 +409480,7 @@ var Config = class {
409466
409480
  if (pooled.limit !== void 0) {
409467
409481
  return pooled.limit;
409468
409482
  }
409469
- const primaryModel = resolveModel(this.getModel());
409483
+ const primaryModel = resolveModel(this.getModel(), this.getGemini31LaunchedSync());
409470
409484
  return this.modelQuotas.get(primaryModel)?.limit;
409471
409485
  }
409472
409486
  getQuotaResetTime() {
@@ -409474,7 +409488,7 @@ var Config = class {
409474
409488
  if (pooled.resetTime !== void 0) {
409475
409489
  return pooled.resetTime;
409476
409490
  }
409477
- const primaryModel = resolveModel(this.getModel());
409491
+ const primaryModel = resolveModel(this.getModel(), this.getGemini31LaunchedSync());
409478
409492
  return this.modelQuotas.get(primaryModel)?.resetTime;
409479
409493
  }
409480
409494
  getEmbeddingModel() {
@@ -410083,6 +410097,28 @@ var Config = class {
410083
410097
  await this.ensureExperimentsLoaded();
410084
410098
  return this.experiments?.flags[ExperimentFlags.BANNER_TEXT_CAPACITY_ISSUES]?.stringValue ?? "";
410085
410099
  }
410100
+ /**
410101
+ * Returns whether Gemini 3.1 has been launched.
410102
+ * This method is async and ensures that experiments are loaded before returning the result.
410103
+ */
410104
+ async getGemini31Launched() {
410105
+ await this.ensureExperimentsLoaded();
410106
+ return this.getGemini31LaunchedSync();
410107
+ }
410108
+ /**
410109
+ * Returns whether Gemini 3.1 has been launched.
410110
+ *
410111
+ * Note: This method should only be called after startup, once experiments have been loaded.
410112
+ * If you need to call this during startup or from an async context, use
410113
+ * getGemini31Launched instead.
410114
+ */
410115
+ getGemini31LaunchedSync() {
410116
+ const authType = this.contentGeneratorConfig?.authType;
410117
+ if (authType === AuthType2.USE_GEMINI || authType === AuthType2.USE_VERTEX_AI) {
410118
+ return true;
410119
+ }
410120
+ return this.experiments?.flags[ExperimentFlags.GEMINI_3_1_PRO_LAUNCHED]?.boolValue ?? false;
410121
+ }
410086
410122
  async ensureExperimentsLoaded() {
410087
410123
  if (!this.experimentsPromise) {
410088
410124
  return;