@google/gemini-cli-a2a-server 0.13.0-nightly.20251030.42c79c64 → 0.13.0-nightly.20251031.c89bc30d

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.
@@ -285600,6 +285600,7 @@ var HybridTokenStorage = class extends BaseTokenStorage {
285600
285600
  import * as path14 from "node:path";
285601
285601
  import * as os5 from "node:os";
285602
285602
  import { promises as fs21 } from "node:fs";
285603
+ init_events();
285603
285604
  var KEYCHAIN_SERVICE_NAME = "gemini-cli-oauth";
285604
285605
  var MAIN_ACCOUNT_KEY = "main-account";
285605
285606
  var OAuthCredentialStorage = class {
@@ -287210,6 +287211,7 @@ var API_REQUEST_LATENCY = "gemini_cli.api.request.latency";
287210
287211
  var TOKEN_USAGE = "gemini_cli.token.usage";
287211
287212
  var SESSION_COUNT = "gemini_cli.session.count";
287212
287213
  var FILE_OPERATION_COUNT = "gemini_cli.file.operation.count";
287214
+ var LINES_CHANGED = "gemini_cli.lines.changed";
287213
287215
  var INVALID_CHUNK_COUNT = "gemini_cli.chat.invalid_chunk.count";
287214
287216
  var CONTENT_RETRY_COUNT = "gemini_cli.chat.content_retry.count";
287215
287217
  var CONTENT_RETRY_FAILURE_COUNT = "gemini_cli.chat.content_retry_failure.count";
@@ -287268,6 +287270,12 @@ var COUNTER_DEFINITIONS = {
287268
287270
  assign: (c4) => fileOperationCounter = c4,
287269
287271
  attributes: {}
287270
287272
  },
287273
+ [LINES_CHANGED]: {
287274
+ description: "Number of lines changed (from file diffs).",
287275
+ valueType: ValueType.INT,
287276
+ assign: (c4) => linesChangedCounter = c4,
287277
+ attributes: {}
287278
+ },
287271
287279
  [INVALID_CHUNK_COUNT]: {
287272
287280
  description: "Counts invalid chunks received from a stream.",
287273
287281
  valueType: ValueType.INT,
@@ -287512,6 +287520,7 @@ var apiRequestLatencyHistogram;
287512
287520
  var tokenUsageCounter;
287513
287521
  var sessionCounter;
287514
287522
  var fileOperationCounter;
287523
+ var linesChangedCounter;
287515
287524
  var chatCompressionCounter;
287516
287525
  var invalidChunkCounter;
287517
287526
  var contentRetryCounter;
@@ -287627,6 +287636,17 @@ function recordFileOperationMetric(config2, attributes) {
287627
287636
  ...attributes
287628
287637
  });
287629
287638
  }
287639
+ function recordLinesChanged(config2, lines, changeType, attributes) {
287640
+ if (!linesChangedCounter || !isMetricsInitialized)
287641
+ return;
287642
+ if (!Number.isFinite(lines) || lines <= 0)
287643
+ return;
287644
+ linesChangedCounter.add(lines, {
287645
+ ...baseMetricDefinition.getCommonAttributes(config2),
287646
+ type: changeType,
287647
+ ...attributes ?? {}
287648
+ });
287649
+ }
287630
287650
  function recordContentRetry(config2) {
287631
287651
  if (!contentRetryCounter || !isMetricsInitialized)
287632
287652
  return;
@@ -288967,8 +288987,8 @@ var Float64Vector = import_vector.default.Float64Vector;
288967
288987
  var PointerVector = import_vector.default.PointerVector;
288968
288988
 
288969
288989
  // packages/core/dist/src/generated/git-commit.js
288970
- var GIT_COMMIT_INFO = "42c79c64";
288971
- var CLI_VERSION = "0.13.0-nightly.20251030.42c79c64";
288990
+ var GIT_COMMIT_INFO = "c89bc30d";
288991
+ var CLI_VERSION = "0.13.0-nightly.20251031.c89bc30d";
288972
288992
 
288973
288993
  // packages/core/dist/src/ide/detect-ide.js
288974
288994
  var IDE_DEFINITIONS = {
@@ -289415,6 +289435,12 @@ var ClearcutLogger = class _ClearcutLogger {
289415
289435
  }
289416
289436
  }
289417
289437
  }
289438
+ if (event.extension_id) {
289439
+ data.push({
289440
+ gemini_cli_key: EventMetadataKey.GEMINI_CLI_EXTENSION_ID,
289441
+ value: event.extension_id
289442
+ });
289443
+ }
289418
289444
  const logEvent = this.createLogEvent(EventNames.TOOL_CALL, data);
289419
289445
  this.enqueueLogEvent(logEvent);
289420
289446
  this.flushIfNeeded();
@@ -289595,6 +289621,12 @@ var ClearcutLogger = class _ClearcutLogger {
289595
289621
  value: JSON.stringify(event.status)
289596
289622
  });
289597
289623
  }
289624
+ if (event.extension_id) {
289625
+ data.push({
289626
+ gemini_cli_key: EventMetadataKey.GEMINI_CLI_EXTENSION_ID,
289627
+ value: event.extension_id
289628
+ });
289629
+ }
289598
289630
  this.enqueueLogEvent(this.createLogEvent(EventNames.SLASH_COMMAND, data));
289599
289631
  this.flushIfNeeded();
289600
289632
  }
@@ -291093,14 +291125,22 @@ function logToolCall(config2, event) {
291093
291125
  function_name: event.function_name,
291094
291126
  success: event.success,
291095
291127
  decision: event.decision,
291096
- tool_type: event.tool_type,
291097
- ...event.metadata ? {
291098
- model_added_lines: event.metadata["model_added_lines"],
291099
- model_removed_lines: event.metadata["model_removed_lines"],
291100
- user_added_lines: event.metadata["user_added_lines"],
291101
- user_removed_lines: event.metadata["user_removed_lines"]
291102
- } : {}
291128
+ tool_type: event.tool_type
291103
291129
  });
291130
+ if (event.metadata) {
291131
+ const added = event.metadata["model_added_lines"];
291132
+ if (typeof added === "number" && added > 0) {
291133
+ recordLinesChanged(config2, added, "added", {
291134
+ function_name: event.function_name
291135
+ });
291136
+ }
291137
+ const removed = event.metadata["model_removed_lines"];
291138
+ if (typeof removed === "number" && removed > 0) {
291139
+ recordLinesChanged(config2, removed, "removed", {
291140
+ function_name: event.function_name
291141
+ });
291142
+ }
291143
+ }
291104
291144
  }
291105
291145
  function logToolOutputTruncated(config2, event) {
291106
291146
  ClearcutLogger.getInstance(config2)?.logToolOutputTruncatedEvent(event);
@@ -291709,7 +291749,7 @@ async function createContentGenerator(config2, gcConfig, sessionId2) {
291709
291749
  if (gcConfig.fakeResponses) {
291710
291750
  return FakeContentGenerator.fromFile(gcConfig.fakeResponses);
291711
291751
  }
291712
- const version3 = "0.13.0-nightly.20251030.42c79c64";
291752
+ const version3 = "0.13.0-nightly.20251031.c89bc30d";
291713
291753
  const userAgent = `GeminiCLI/${version3} (${process.platform}; ${process.arch})`;
291714
291754
  const baseHeaders = {
291715
291755
  "User-Agent": userAgent
@@ -299506,6 +299546,7 @@ async function openBrowserSecurely(url4) {
299506
299546
  }
299507
299547
 
299508
299548
  // packages/core/dist/src/mcp/oauth-token-storage.js
299549
+ init_events();
299509
299550
  import { promises as fs25 } from "node:fs";
299510
299551
  import * as path17 from "node:path";
299511
299552
  var MCPOAuthTokenStorage = class {
@@ -300264,6 +300305,7 @@ var McpClient = class {
300264
300305
  if (this.status !== MCPServerStatus.CONNECTED) {
300265
300306
  return;
300266
300307
  }
300308
+ this.toolRegistry.removeMcpToolsByServer(this.serverName);
300267
300309
  this.updateStatus(MCPServerStatus.DISCONNECTING);
300268
300310
  const client = this.client;
300269
300311
  this.client = void 0;
@@ -300829,40 +300871,123 @@ init_events();
300829
300871
  var McpClientManager = class {
300830
300872
  clients = /* @__PURE__ */ new Map();
300831
300873
  toolRegistry;
300874
+ cliConfig;
300875
+ // If we have ongoing MCP client discovery, this completes once that is done.
300876
+ discoveryPromise;
300832
300877
  discoveryState = MCPDiscoveryState.NOT_STARTED;
300833
300878
  eventEmitter;
300834
- constructor(toolRegistry, eventEmitter) {
300879
+ constructor(toolRegistry, cliConfig, eventEmitter) {
300835
300880
  this.toolRegistry = toolRegistry;
300881
+ this.cliConfig = cliConfig;
300836
300882
  this.eventEmitter = eventEmitter;
300883
+ if (this.cliConfig.getEnableExtensionReloading()) {
300884
+ this.cliConfig.getExtensionLoader().extensionEvents().on("extensionLoaded", (event) => this.loadExtension(event.extension)).on("extensionEnabled", (event) => this.loadExtension(event.extension)).on("extensionDisabled", (event) => this.unloadExtension(event.extension)).on("extensionUnloaded", (event) => this.unloadExtension(event.extension));
300885
+ }
300886
+ }
300887
+ /**
300888
+ * For all the MCP servers associated with this extension:
300889
+ *
300890
+ * - Removes all its MCP servers from the global configuration object.
300891
+ * - Disconnects all MCP clients from their servers.
300892
+ * - Updates the Gemini chat configuration to load the new tools.
300893
+ */
300894
+ async unloadExtension(extension) {
300895
+ debugLogger.log(`Unloading extension: ${extension.name}`);
300896
+ await Promise.all(Object.keys(extension.mcpServers ?? {}).map((name4) => {
300897
+ const newMcpServers = {
300898
+ ...this.cliConfig.getMcpServers()
300899
+ };
300900
+ delete newMcpServers[name4];
300901
+ this.cliConfig.setMcpServers(newMcpServers);
300902
+ return this.disconnectClient(name4);
300903
+ }));
300904
+ this.cliConfig.getGeminiClient().setTools();
300905
+ }
300906
+ /**
300907
+ * For all the MCP servers associated with this extension:
300908
+ *
300909
+ * - Adds all its MCP servers to the global configuration object.
300910
+ * - Connects MCP clients to each server and discovers their tools.
300911
+ * - Updates the Gemini chat configuration to load the new tools.
300912
+ */
300913
+ async loadExtension(extension) {
300914
+ debugLogger.log(`Loading extension: ${extension.name}`);
300915
+ await Promise.all(Object.entries(extension.mcpServers ?? {}).map(([name4, config2]) => {
300916
+ this.cliConfig.setMcpServers({
300917
+ ...this.cliConfig.getMcpServers(),
300918
+ [name4]: config2
300919
+ });
300920
+ return this.discoverMcpTools(name4, config2);
300921
+ }));
300922
+ this.cliConfig.getGeminiClient().setTools();
300923
+ }
300924
+ async disconnectClient(name4) {
300925
+ const existing = this.clients.get(name4);
300926
+ if (existing) {
300927
+ try {
300928
+ this.clients.delete(name4);
300929
+ this.eventEmitter?.emit("mcp-client-update", this.clients);
300930
+ await existing.disconnect();
300931
+ } catch (error) {
300932
+ debugLogger.warn(`Error stopping client '${name4}': ${getErrorMessage(error)}`);
300933
+ }
300934
+ }
300935
+ }
300936
+ discoverMcpTools(name4, config2) {
300937
+ if (!this.cliConfig.isTrustedFolder()) {
300938
+ return;
300939
+ }
300940
+ if (config2.extension && !config2.extension.isActive) {
300941
+ return;
300942
+ }
300943
+ const currentDiscoveryPromise = new Promise((resolve13, _reject) => {
300944
+ (async () => {
300945
+ try {
300946
+ await this.disconnectClient(name4);
300947
+ const client = new McpClient(name4, config2, this.toolRegistry, this.cliConfig.getPromptRegistry(), this.cliConfig.getWorkspaceContext(), this.cliConfig.getDebugMode());
300948
+ this.clients.set(name4, client);
300949
+ this.eventEmitter?.emit("mcp-client-update", this.clients);
300950
+ try {
300951
+ await client.connect();
300952
+ await client.discover(this.cliConfig);
300953
+ this.eventEmitter?.emit("mcp-client-update", this.clients);
300954
+ } catch (error) {
300955
+ this.eventEmitter?.emit("mcp-client-update", this.clients);
300956
+ coreEvents.emitFeedback("error", `Error during discovery for server '${name4}': ${getErrorMessage(error)}`, error);
300957
+ }
300958
+ } finally {
300959
+ resolve13();
300960
+ }
300961
+ })();
300962
+ });
300963
+ if (this.discoveryPromise) {
300964
+ this.discoveryPromise = this.discoveryPromise.then(() => currentDiscoveryPromise);
300965
+ } else {
300966
+ this.discoveryState = MCPDiscoveryState.IN_PROGRESS;
300967
+ this.discoveryPromise = currentDiscoveryPromise;
300968
+ }
300969
+ const currentPromise = this.discoveryPromise;
300970
+ currentPromise.then((_) => {
300971
+ if (currentPromise === this.discoveryPromise) {
300972
+ this.discoveryPromise = void 0;
300973
+ this.discoveryState = MCPDiscoveryState.COMPLETED;
300974
+ }
300975
+ });
300976
+ return currentPromise;
300837
300977
  }
300838
300978
  /**
300839
300979
  * Initiates the tool discovery process for all configured MCP servers.
300840
300980
  * It connects to each server, discovers its available tools, and registers
300841
300981
  * them with the `ToolRegistry`.
300842
300982
  */
300843
- async discoverAllMcpTools(cliConfig) {
300844
- if (!cliConfig.isTrustedFolder()) {
300983
+ async discoverAllMcpTools() {
300984
+ if (!this.cliConfig.isTrustedFolder()) {
300845
300985
  return;
300846
300986
  }
300847
300987
  await this.stop();
300848
- const servers = populateMcpServerCommand(cliConfig.getMcpServers() || {}, cliConfig.getMcpServerCommand());
300849
- this.discoveryState = MCPDiscoveryState.IN_PROGRESS;
300988
+ const servers = populateMcpServerCommand(this.cliConfig.getMcpServers() || {}, this.cliConfig.getMcpServerCommand());
300850
300989
  this.eventEmitter?.emit("mcp-client-update", this.clients);
300851
- const discoveryPromises = Object.entries(servers).filter(([_, config2]) => !config2.extension || config2.extension.isActive).map(async ([name4, config2]) => {
300852
- const client = new McpClient(name4, config2, this.toolRegistry, cliConfig.getPromptRegistry(), cliConfig.getWorkspaceContext(), cliConfig.getDebugMode());
300853
- this.clients.set(name4, client);
300854
- this.eventEmitter?.emit("mcp-client-update", this.clients);
300855
- try {
300856
- await client.connect();
300857
- await client.discover(cliConfig);
300858
- this.eventEmitter?.emit("mcp-client-update", this.clients);
300859
- } catch (error) {
300860
- this.eventEmitter?.emit("mcp-client-update", this.clients);
300861
- coreEvents.emitFeedback("error", `Error during discovery for server '${name4}': ${getErrorMessage(error)}`, error);
300862
- }
300863
- });
300864
- await Promise.all(discoveryPromises);
300865
- this.discoveryState = MCPDiscoveryState.COMPLETED;
300990
+ await Promise.all(Object.entries(servers).map(async ([name4, config2]) => this.discoverMcpTools(name4, config2)));
300866
300991
  }
300867
300992
  /**
300868
300993
  * Stops all running local MCP servers and closes all client connections.
@@ -301010,7 +301135,7 @@ var ToolRegistry = class {
301010
301135
  messageBus;
301011
301136
  constructor(config2, eventEmitter) {
301012
301137
  this.config = config2;
301013
- this.mcpClientManager = new McpClientManager(this, eventEmitter);
301138
+ this.mcpClientManager = new McpClientManager(this, config2, eventEmitter);
301014
301139
  }
301015
301140
  setMessageBus(messageBus) {
301016
301141
  this.messageBus = messageBus;
@@ -301059,7 +301184,7 @@ var ToolRegistry = class {
301059
301184
  this.removeDiscoveredTools();
301060
301185
  this.config.getPromptRegistry().clear();
301061
301186
  await this.discoverAndRegisterToolsFromCommand();
301062
- await this.mcpClientManager.discoverAllMcpTools(this.config);
301187
+ await this.mcpClientManager.discoverAllMcpTools();
301063
301188
  }
301064
301189
  /**
301065
301190
  * Discovers tools from project (if available and configured).
@@ -301069,7 +301194,7 @@ var ToolRegistry = class {
301069
301194
  async discoverMcpTools() {
301070
301195
  this.removeDiscoveredTools();
301071
301196
  this.config.getPromptRegistry().clear();
301072
- await this.mcpClientManager.discoverAllMcpTools(this.config);
301197
+ await this.mcpClientManager.discoverAllMcpTools();
301073
301198
  }
301074
301199
  /**
301075
301200
  * Restarts all MCP servers and re-discovers tools.
@@ -326441,8 +326566,7 @@ var EditToolInvocation2 = class extends BaseToolInvocation {
326441
326566
  "Proposed",
326442
326567
  DEFAULT_DIFF_OPTIONS
326443
326568
  );
326444
- const originallyProposedContent = this.params.ai_proposed_string || this.params.new_string;
326445
- const diffStat = getDiffStat(fileName, editData.currentContent ?? "", originallyProposedContent, this.params.new_string);
326569
+ const diffStat = getDiffStat(fileName, editData.currentContent ?? "", editData.newContent, this.params.new_string);
326446
326570
  displayResult = {
326447
326571
  fileDiff,
326448
326572
  fileName,
@@ -339873,6 +339997,7 @@ var GeminiChat = class {
339873
339997
  // model.
339874
339998
  sendPromise = Promise.resolve();
339875
339999
  chatRecordingService;
340000
+ lastPromptTokenCount;
339876
340001
  constructor(config2, generationConfig = {}, history = []) {
339877
340002
  this.config = config2;
339878
340003
  this.generationConfig = generationConfig;
@@ -339880,6 +340005,7 @@ var GeminiChat = class {
339880
340005
  validateHistory2(history);
339881
340006
  this.chatRecordingService = new ChatRecordingService(config2);
339882
340007
  this.chatRecordingService.initialize();
340008
+ this.lastPromptTokenCount = Math.ceil(JSON.stringify(this.history).length / 4);
339883
340009
  }
339884
340010
  setSystemInstruction(sysInstr) {
339885
340011
  this.generationConfig.systemInstruction = sysInstr;
@@ -340095,7 +340221,7 @@ This error was probably caused by cyclic schema references in one of the followi
340095
340221
  if (chunk2.usageMetadata) {
340096
340222
  this.chatRecordingService.recordMessageTokens(chunk2.usageMetadata);
340097
340223
  if (chunk2.usageMetadata.promptTokenCount !== void 0) {
340098
- uiTelemetryService.setLastPromptTokenCount(chunk2.usageMetadata.promptTokenCount);
340224
+ this.lastPromptTokenCount = chunk2.usageMetadata.promptTokenCount;
340099
340225
  }
340100
340226
  }
340101
340227
  yield chunk2;
@@ -340126,6 +340252,9 @@ This error was probably caused by cyclic schema references in one of the followi
340126
340252
  }
340127
340253
  this.history.push({ role: "model", parts: consolidatedParts });
340128
340254
  }
340255
+ getLastPromptTokenCount() {
340256
+ return this.lastPromptTokenCount;
340257
+ }
340129
340258
  /**
340130
340259
  * Gets the chat recording service instance.
340131
340260
  */
@@ -341144,7 +341273,7 @@ var LoopDetectionService = class {
341144
341273
  };
341145
341274
 
341146
341275
  // packages/core/dist/src/services/chatCompressionService.js
341147
- var COMPRESSION_TOKEN_THRESHOLD = 0.7;
341276
+ var DEFAULT_COMPRESSION_TOKEN_THRESHOLD = 0.2;
341148
341277
  var COMPRESSION_PRESERVE_THRESHOLD = 0.3;
341149
341278
  function findCompressSplitPoint(contents, fraction) {
341150
341279
  if (fraction <= 0 || fraction >= 1) {
@@ -341184,10 +341313,9 @@ var ChatCompressionService = class {
341184
341313
  }
341185
341314
  };
341186
341315
  }
341187
- const originalTokenCount = uiTelemetryService.getLastPromptTokenCount();
341188
- const contextPercentageThreshold = config2.getChatCompression()?.contextPercentageThreshold;
341316
+ const originalTokenCount = chat.getLastPromptTokenCount();
341189
341317
  if (!force) {
341190
- const threshold = contextPercentageThreshold ?? COMPRESSION_TOKEN_THRESHOLD;
341318
+ const threshold = config2.getCompressionThreshold() ?? DEFAULT_COMPRESSION_TOKEN_THRESHOLD;
341191
341319
  if (originalTokenCount < threshold * tokenLimit(model)) {
341192
341320
  return {
341193
341321
  newHistory: null,
@@ -341257,7 +341385,6 @@ var ChatCompressionService = class {
341257
341385
  }
341258
341386
  };
341259
341387
  } else {
341260
- uiTelemetryService.setLastPromptTokenCount(newTokenCount);
341261
341388
  return {
341262
341389
  newHistory: extraHistory,
341263
341390
  info: {
@@ -341300,8 +341427,14 @@ var GeminiClient = class {
341300
341427
  this.compressionService = new ChatCompressionService();
341301
341428
  this.lastPromptId = this.config.getSessionId();
341302
341429
  }
341430
+ updateTelemetryTokenCount() {
341431
+ if (this.chat) {
341432
+ uiTelemetryService.setLastPromptTokenCount(this.chat.getLastPromptTokenCount());
341433
+ }
341434
+ }
341303
341435
  async initialize() {
341304
341436
  this.chat = await this.startChat();
341437
+ this.updateTelemetryTokenCount();
341305
341438
  }
341306
341439
  getContentGeneratorOrFail() {
341307
341440
  if (!this.config.getContentGenerator()) {
@@ -341339,6 +341472,7 @@ var GeminiClient = class {
341339
341472
  }
341340
341473
  async resetChat() {
341341
341474
  this.chat = await this.startChat();
341475
+ this.updateTelemetryTokenCount();
341342
341476
  }
341343
341477
  getChatRecordingService() {
341344
341478
  return this.chat?.getChatRecordingService();
@@ -341536,7 +341670,7 @@ var GeminiClient = class {
341536
341670
  }
341537
341671
  const modelForLimitCheck = this._getEffectiveModelForCurrentTurn();
341538
341672
  const estimatedRequestTokenCount = Math.floor(JSON.stringify(request3).length / 4);
341539
- const remainingTokenCount = tokenLimit(modelForLimitCheck) - uiTelemetryService.getLastPromptTokenCount();
341673
+ const remainingTokenCount = tokenLimit(modelForLimitCheck) - this.getChat().getLastPromptTokenCount();
341540
341674
  if (estimatedRequestTokenCount > remainingTokenCount * 0.95) {
341541
341675
  yield {
341542
341676
  type: GeminiEventType.ContextWindowWillOverflow,
@@ -341595,6 +341729,7 @@ var GeminiClient = class {
341595
341729
  return turn;
341596
341730
  }
341597
341731
  yield event;
341732
+ this.updateTelemetryTokenCount();
341598
341733
  if (event.type === GeminiEventType.InvalidStream) {
341599
341734
  if (this.config.getContinueOnFailedApiCall()) {
341600
341735
  if (isInvalidStreamRetry) {
@@ -341682,6 +341817,7 @@ var GeminiClient = class {
341682
341817
  } else if (info2.compressionStatus === CompressionStatus.COMPRESSED) {
341683
341818
  if (newHistory) {
341684
341819
  this.chat = await this.startChat(newHistory);
341820
+ this.updateTelemetryTokenCount();
341685
341821
  this.forceFullIdeContext = true;
341686
341822
  }
341687
341823
  }
@@ -349526,13 +349662,14 @@ var Config = class {
349526
349662
  listExtensions;
349527
349663
  _extensionLoader;
349528
349664
  _enabledExtensions;
349665
+ enableExtensionReloading;
349529
349666
  _blockedMcpServers;
349530
349667
  fallbackModelHandler;
349531
349668
  quotaErrorOccurred = false;
349532
349669
  summarizeToolOutput;
349533
349670
  experimentalZedIntegration = false;
349534
349671
  loadMemoryFromIncludeDirectories = false;
349535
- chatCompression;
349672
+ compressionThreshold;
349536
349673
  interactive;
349537
349674
  ptyInfo;
349538
349675
  trustedFolder;
@@ -349620,7 +349757,7 @@ var Config = class {
349620
349757
  this.folderTrust = params.folderTrust ?? false;
349621
349758
  this.ideMode = params.ideMode ?? false;
349622
349759
  this.loadMemoryFromIncludeDirectories = params.loadMemoryFromIncludeDirectories ?? false;
349623
- this.chatCompression = params.chatCompression;
349760
+ this.compressionThreshold = params.compressionThreshold;
349624
349761
  this.interactive = params.interactive ?? false;
349625
349762
  this.ptyInfo = params.ptyInfo ?? "child_process";
349626
349763
  this.trustedFolder = params.trustedFolder;
@@ -349640,9 +349777,7 @@ var Config = class {
349640
349777
  this.useWriteTodos = params.useWriteTodos ?? false;
349641
349778
  this.initialUseModelRouter = params.useModelRouter ?? false;
349642
349779
  this.useModelRouter = this.initialUseModelRouter;
349643
- this.disableModelRouterForAuth = params.disableModelRouterForAuth ?? [
349644
- AuthType2.LOGIN_WITH_GOOGLE
349645
- ];
349780
+ this.disableModelRouterForAuth = params.disableModelRouterForAuth ?? [];
349646
349781
  this.enableMessageBusIntegration = params.enableMessageBusIntegration ?? false;
349647
349782
  this.codebaseInvestigatorSettings = {
349648
349783
  enabled: params.codebaseInvestigatorSettings?.enabled ?? false,
@@ -349654,6 +349789,7 @@ var Config = class {
349654
349789
  this.continueOnFailedApiCall = params.continueOnFailedApiCall ?? true;
349655
349790
  this.enableShellOutputEfficiency = params.enableShellOutputEfficiency ?? true;
349656
349791
  this.extensionManagement = params.extensionManagement ?? true;
349792
+ this.enableExtensionReloading = params.enableExtensionReloading ?? false;
349657
349793
  this.storage = new Storage2(this.targetDir);
349658
349794
  this.fakeResponses = params.fakeResponses;
349659
349795
  this.recordResponses = params.recordResponses;
@@ -349827,6 +349963,9 @@ var Config = class {
349827
349963
  getMcpServers() {
349828
349964
  return this.mcpServers;
349829
349965
  }
349966
+ setMcpServers(mcpServers) {
349967
+ this.mcpServers = mcpServers;
349968
+ }
349830
349969
  getUserMemory() {
349831
349970
  return this.userMemory;
349832
349971
  }
@@ -349957,6 +350096,9 @@ var Config = class {
349957
350096
  getEnabledExtensions() {
349958
350097
  return this._enabledExtensions;
349959
350098
  }
350099
+ getEnableExtensionReloading() {
350100
+ return this.enableExtensionReloading;
350101
+ }
349960
350102
  getBlockedMcpServers() {
349961
350103
  return this._blockedMcpServers;
349962
350104
  }
@@ -350004,8 +350146,8 @@ var Config = class {
350004
350146
  setFileSystemService(fileSystemService) {
350005
350147
  this.fileSystemService = fileSystemService;
350006
350148
  }
350007
- getChatCompression() {
350008
- return this.chatCompression;
350149
+ getCompressionThreshold() {
350150
+ return this.compressionThreshold;
350009
350151
  }
350010
350152
  isInteractiveShellEnabled() {
350011
350153
  return this.interactive && this.ptyInfo !== "child_process" && this.enableInteractiveShell;
@@ -37,6 +37,7 @@ export function createMockConfig(overrides = {}) {
37
37
  getEnableMessageBusIntegration: vi.fn().mockReturnValue(false),
38
38
  getMessageBus: vi.fn(),
39
39
  getPolicyEngine: vi.fn(),
40
+ getEnableExtensionReloading: vi.fn().mockReturnValue(false),
40
41
  ...overrides,
41
42
  };
42
43
  mockConfig.getGeminiClient = vi
@@ -1 +1 @@
1
- {"version":3,"file":"testing_utils.js","sourceRoot":"","sources":["../../../src/utils/testing_utils.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"testing_utils.js","sourceRoot":"","sources":["../../../src/utils/testing_utils.ts"],"names":[],"mappings":"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"}