@google/gemini-cli-a2a-server 0.21.0-nightly.20251205.f4f2bcbd9 → 0.21.0-nightly.20251206.3cf44acc0

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.
@@ -307379,7 +307379,7 @@ function toFriendlyError(error2) {
307379
307379
  if (error2 && typeof error2 === "object" && "response" in error2) {
307380
307380
  const gaxiosError = error2;
307381
307381
  const data = parseResponseData(gaxiosError);
307382
- if (data.error && data.error.message && data.error.code) {
307382
+ if (data && data.error && data.error.message && data.error.code) {
307383
307383
  switch (data.error.code) {
307384
307384
  case 400:
307385
307385
  return new BadRequestError(data.error.message);
@@ -307395,7 +307395,11 @@ function toFriendlyError(error2) {
307395
307395
  }
307396
307396
  function parseResponseData(error2) {
307397
307397
  if (typeof error2.response?.data === "string") {
307398
- return JSON.parse(error2.response?.data);
307398
+ try {
307399
+ return JSON.parse(error2.response?.data);
307400
+ } catch {
307401
+ return void 0;
307402
+ }
307399
307403
  }
307400
307404
  return error2.response?.data;
307401
307405
  }
@@ -311854,8 +311858,8 @@ var Float64Vector = import_vector.default.Float64Vector;
311854
311858
  var PointerVector = import_vector.default.PointerVector;
311855
311859
 
311856
311860
  // packages/core/dist/src/generated/git-commit.js
311857
- var GIT_COMMIT_INFO = "f4f2bcbd9";
311858
- var CLI_VERSION = "0.21.0-nightly.20251205.f4f2bcbd9";
311861
+ var GIT_COMMIT_INFO = "3cf44acc0";
311862
+ var CLI_VERSION = "0.21.0-nightly.20251206.3cf44acc0";
311859
311863
 
311860
311864
  // packages/core/dist/src/ide/detect-ide.js
311861
311865
  var IDE_DEFINITIONS = {
@@ -315000,7 +315004,7 @@ async function createContentGenerator(config3, gcConfig, sessionId2) {
315000
315004
  if (gcConfig.fakeResponses) {
315001
315005
  return FakeContentGenerator.fromFile(gcConfig.fakeResponses);
315002
315006
  }
315003
- const version4 = "0.21.0-nightly.20251205.f4f2bcbd9";
315007
+ const version4 = "0.21.0-nightly.20251206.3cf44acc0";
315004
315008
  const customHeadersEnv = process.env["GEMINI_CLI_CUSTOM_HEADERS"] || void 0;
315005
315009
  const userAgent = `GeminiCLI/${version4} (${process.platform}; ${process.arch})`;
315006
315010
  const customHeadersMap = parseCustomHeaders(customHeadersEnv);
@@ -352871,7 +352875,7 @@ var DEFAULT_RETRY_OPTIONS = {
352871
352875
  initialDelayMs: 5e3,
352872
352876
  maxDelayMs: 3e4,
352873
352877
  // 30 seconds
352874
- shouldRetryOnError: defaultShouldRetry
352878
+ shouldRetryOnError: isRetryableError
352875
352879
  };
352876
352880
  var RETRYABLE_NETWORK_CODES = [
352877
352881
  "ECONNRESET",
@@ -352901,15 +352905,15 @@ function getNetworkErrorCode(error2) {
352901
352905
  return void 0;
352902
352906
  }
352903
352907
  var FETCH_FAILED_MESSAGE = "fetch failed";
352904
- function defaultShouldRetry(error2, retryFetchErrors) {
352908
+ function isRetryableError(error2, retryFetchErrors) {
352909
+ const errorCode = getNetworkErrorCode(error2);
352910
+ if (errorCode && RETRYABLE_NETWORK_CODES.includes(errorCode)) {
352911
+ return true;
352912
+ }
352905
352913
  if (retryFetchErrors && error2 instanceof Error) {
352906
352914
  if (error2.message.toLowerCase().includes(FETCH_FAILED_MESSAGE)) {
352907
352915
  return true;
352908
352916
  }
352909
- const errorCode = getNetworkErrorCode(error2);
352910
- if (errorCode && RETRYABLE_NETWORK_CODES.includes(errorCode)) {
352911
- return true;
352912
- }
352913
352917
  }
352914
352918
  if (error2 instanceof ApiError2) {
352915
352919
  if (error2.status === 400)
@@ -352932,6 +352936,7 @@ async function retryWithBackoff(fn, options2) {
352932
352936
  const cleanOptions = options2 ? Object.fromEntries(Object.entries(options2).filter(([_, v]) => v != null)) : {};
352933
352937
  const { maxAttempts, initialDelayMs, maxDelayMs, onPersistent429, authType, shouldRetryOnError, shouldRetryOnContent, retryFetchErrors, signal } = {
352934
352938
  ...DEFAULT_RETRY_OPTIONS,
352939
+ shouldRetryOnError: isRetryableError,
352935
352940
  ...cleanOptions
352936
352941
  };
352937
352942
  let attempt = 0;
@@ -358993,6 +358998,7 @@ function convertColorToHex(color, colorMode, defaultColor) {
358993
358998
  var { Terminal } = import_headless.default;
358994
358999
  var SIGKILL_TIMEOUT_MS = 200;
358995
359000
  var MAX_CHILD_PROCESS_BUFFER_SIZE = 16 * 1024 * 1024;
359001
+ var SCROLLBACK_LIMIT = 3e5;
358996
359002
  var BASH_SHOPT_OPTIONS = "promptvars nullglob extglob nocaseglob dotglob";
358997
359003
  var BASH_SHOPT_GUARD = `shopt -u ${BASH_SHOPT_OPTIONS};`;
358998
359004
  function ensurePromptvarsDisabled(command, shell) {
@@ -359010,10 +359016,27 @@ var getFullBufferText = (terminal) => {
359010
359016
  const lines = [];
359011
359017
  for (let i4 = 0; i4 < buffer.length; i4++) {
359012
359018
  const line = buffer.getLine(i4);
359013
- const lineContent = line ? line.translateToString() : "";
359014
- lines.push(lineContent);
359019
+ if (!line) {
359020
+ continue;
359021
+ }
359022
+ let trimRight = true;
359023
+ if (i4 + 1 < buffer.length) {
359024
+ const nextLine = buffer.getLine(i4 + 1);
359025
+ if (nextLine?.isWrapped) {
359026
+ trimRight = false;
359027
+ }
359028
+ }
359029
+ const lineContent = line.translateToString(trimRight);
359030
+ if (line.isWrapped && lines.length > 0) {
359031
+ lines[lines.length - 1] += lineContent;
359032
+ } else {
359033
+ lines.push(lineContent);
359034
+ }
359015
359035
  }
359016
- return lines.join("\n").trimEnd();
359036
+ while (lines.length > 0 && lines[lines.length - 1] === "") {
359037
+ lines.pop();
359038
+ }
359039
+ return lines.join("\n");
359017
359040
  };
359018
359041
  var ShellExecutionService = class {
359019
359042
  static activePtys = /* @__PURE__ */ new Map();
@@ -359250,7 +359273,8 @@ var ShellExecutionService = class {
359250
359273
  const headlessTerminal = new Terminal({
359251
359274
  allowProposedApi: true,
359252
359275
  cols,
359253
- rows
359276
+ rows,
359277
+ scrollback: shellExecutionConfig.scrollback ?? SCROLLBACK_LIMIT
359254
359278
  });
359255
359279
  headlessTerminal.scrollToTop();
359256
359280
  this.activePtys.set(ptyProcess.pid, { ptyProcess, headlessTerminal });
@@ -360138,8 +360162,8 @@ var PRIVATE_IP_RANGES = [
360138
360162
  ];
360139
360163
  var FetchError2 = class extends Error {
360140
360164
  code;
360141
- constructor(message, code2) {
360142
- super(message);
360165
+ constructor(message, code2, options2) {
360166
+ super(message, options2);
360143
360167
  this.code = code2;
360144
360168
  this.name = "FetchError";
360145
360169
  }
@@ -360162,7 +360186,7 @@ async function fetchWithTimeout(url5, timeout) {
360162
360186
  if (isNodeError(error2) && error2.code === "ABORT_ERR") {
360163
360187
  throw new FetchError2(`Request timed out after ${timeout}ms`, "ETIMEDOUT");
360164
360188
  }
360165
- throw new FetchError2(getErrorMessage(error2));
360189
+ throw new FetchError2(getErrorMessage(error2), void 0, { cause: error2 });
360166
360190
  } finally {
360167
360191
  clearTimeout(timeoutId);
360168
360192
  }
@@ -365147,10 +365171,17 @@ var WebFetchToolInvocation = class extends BaseToolInvocation {
365147
365171
  url5 = url5.replace("github.com", "raw.githubusercontent.com").replace("/blob/", "/");
365148
365172
  }
365149
365173
  try {
365150
- const response = await fetchWithTimeout(url5, URL_FETCH_TIMEOUT_MS);
365151
- if (!response.ok) {
365152
- throw new Error(`Request failed with status code ${response.status} ${response.statusText}`);
365153
- }
365174
+ const response = await retryWithBackoff(async () => {
365175
+ const res = await fetchWithTimeout(url5, URL_FETCH_TIMEOUT_MS);
365176
+ if (!res.ok) {
365177
+ const error2 = new Error(`Request failed with status code ${res.status} ${res.statusText}`);
365178
+ error2.status = res.status;
365179
+ throw error2;
365180
+ }
365181
+ return res;
365182
+ }, {
365183
+ retryFetchErrors: this.config.getRetryFetchErrors()
365184
+ });
365154
365185
  const rawContent = await response.text();
365155
365186
  const contentType = response.headers.get("content-type") || "";
365156
365187
  let textContent2;
@@ -367378,6 +367409,33 @@ var ChatRecordingService = class {
367378
367409
  updateFn(conversation);
367379
367410
  this.writeConversation(conversation);
367380
367411
  }
367412
+ /**
367413
+ * Saves a summary for the current session.
367414
+ */
367415
+ saveSummary(summary) {
367416
+ if (!this.conversationFile)
367417
+ return;
367418
+ try {
367419
+ this.updateConversation((conversation) => {
367420
+ conversation.summary = summary;
367421
+ });
367422
+ } catch (error2) {
367423
+ debugLogger.error("Error saving summary to chat history.", error2);
367424
+ }
367425
+ }
367426
+ /**
367427
+ * Gets the current conversation data (for summary generation).
367428
+ */
367429
+ getConversation() {
367430
+ if (!this.conversationFile)
367431
+ return null;
367432
+ try {
367433
+ return this.readConversation();
367434
+ } catch (error2) {
367435
+ debugLogger.error("Error reading conversation for summary.", error2);
367436
+ return null;
367437
+ }
367438
+ }
367381
367439
  /**
367382
367440
  * Deletes a session file by session ID.
367383
367441
  */
@@ -367993,6 +368051,7 @@ var GeminiChat = class {
367993
368051
  maxAttempts = 1;
367994
368052
  }
367995
368053
  for (let attempt = 0; attempt < maxAttempts; attempt++) {
368054
+ let isConnectionPhase = true;
367996
368055
  try {
367997
368056
  if (attempt > 0) {
367998
368057
  yield { type: StreamEventType.RETRY };
@@ -368000,19 +368059,27 @@ var GeminiChat = class {
368000
368059
  if (attempt > 0) {
368001
368060
  generateContentConfig.temperature = 1;
368002
368061
  }
368062
+ isConnectionPhase = true;
368003
368063
  const stream3 = await this.makeApiCallAndProcessStream(model, generateContentConfig, requestContents, prompt_id);
368064
+ isConnectionPhase = false;
368004
368065
  for await (const chunk2 of stream3) {
368005
368066
  yield { type: StreamEventType.CHUNK, value: chunk2 };
368006
368067
  }
368007
368068
  lastError = null;
368008
368069
  break;
368009
368070
  } catch (error2) {
368071
+ if (isConnectionPhase) {
368072
+ throw error2;
368073
+ }
368010
368074
  lastError = error2;
368011
368075
  const isContentError = error2 instanceof InvalidStreamError;
368012
- if (isContentError && isGemini2Model(model)) {
368076
+ const isRetryable = isRetryableError(error2, this.config.getRetryFetchErrors());
368077
+ if (isContentError && isGemini2Model(model) || isRetryable && !signal.aborted) {
368013
368078
  if (attempt < maxAttempts - 1) {
368014
- logContentRetry(this.config, new ContentRetryEvent(attempt, error2.type, INVALID_CONTENT_RETRY_OPTIONS.initialDelayMs, model));
368015
- await new Promise((res) => setTimeout(res, INVALID_CONTENT_RETRY_OPTIONS.initialDelayMs * (attempt + 1)));
368079
+ const delayMs = INVALID_CONTENT_RETRY_OPTIONS.initialDelayMs;
368080
+ const retryType = isContentError ? error2.type : "NETWORK_ERROR";
368081
+ logContentRetry(this.config, new ContentRetryEvent(attempt, retryType, delayMs, model));
368082
+ await new Promise((res) => setTimeout(res, delayMs * (attempt + 1)));
368016
368083
  continue;
368017
368084
  }
368018
368085
  }
@@ -381722,7 +381789,7 @@ async function getClientMetadata() {
381722
381789
  clientMetadataPromise = (async () => ({
381723
381790
  ideName: "IDE_UNSPECIFIED",
381724
381791
  pluginType: "GEMINI",
381725
- ideVersion: "0.21.0-nightly.20251205.f4f2bcbd9",
381792
+ ideVersion: "0.21.0-nightly.20251206.3cf44acc0",
381726
381793
  platform: getPlatform(),
381727
381794
  updateChannel: await getReleaseChannel(__dirname5)
381728
381795
  }))();
@@ -385803,7 +385870,8 @@ async function loadConfig(settings, extensionLoader, taskId) {
385803
385870
  },
385804
385871
  ideMode: false,
385805
385872
  folderTrust: settings.folderTrust === true,
385806
- extensionLoader
385873
+ extensionLoader,
385874
+ previewFeatures: settings.general?.previewFeatures
385807
385875
  };
385808
385876
  const fileService = new FileDiscoveryService(workspaceDir);
385809
385877
  const { memoryContent, fileCount } = await loadServerHierarchicalMemory(
@@ -44,6 +44,7 @@ export async function loadConfig(settings, extensionLoader, taskId) {
44
44
  ideMode: false,
45
45
  folderTrust: settings.folderTrust === true,
46
46
  extensionLoader,
47
+ previewFeatures: settings.general?.previewFeatures,
47
48
  };
48
49
  const fileService = new FileDiscoveryService(workspaceDir);
49
50
  const { memoryContent, fileCount } = await loadServerHierarchicalMemory(workspaceDir, [workspaceDir], false, fileService, extensionLoader, settings.folderTrust === true);
@@ -1 +1 @@
1
- {"version":3,"file":"config.js","sourceRoot":"","sources":["../../../src/config/config.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,KAAK,EAAE,MAAM,SAAS,CAAC;AAC9B,OAAO,KAAK,IAAI,MAAM,WAAW,CAAC;AAClC,OAAO,EAAE,OAAO,EAAE,MAAM,SAAS,CAAC;AAClC,OAAO,KAAK,MAAM,MAAM,QAAQ,CAAC;AAGjC,OAAO,EACL,QAAQ,EACR,MAAM,EAEN,oBAAoB,EACpB,YAAY,EACZ,4BAA4B,EAC5B,UAAU,EACV,8BAA8B,EAC9B,oBAAoB,EAEpB,eAAe,GAChB,MAAM,yBAAyB,CAAC;AAEjC,OAAO,EAAE,MAAM,EAAE,MAAM,oBAAoB,CAAC;AAE5C,OAAO,EAAsB,eAAe,EAAE,MAAM,aAAa,CAAC;AAElE,MAAM,CAAC,KAAK,UAAU,UAAU,CAC9B,QAAkB,EAClB,eAAgC,EAChC,MAAc;IAEd,MAAM,YAAY,GAAG,OAAO,CAAC,GAAG,EAAE,CAAC;IACnC,MAAM,WAAW,GAAG,OAAO,CAAC,GAAG,CAAC,gCAAgC,CAAC,CAAC;IAElE,MAAM,YAAY,GAAqB;QACrC,SAAS,EAAE,MAAM;QACjB,KAAK,EAAE,oBAAoB;QAC3B,cAAc,EAAE,8BAA8B;QAC9C,OAAO,EAAE,SAAS,EAAE,wDAAwD;QAC5E,SAAS,EAAE,YAAY,EAAE,gDAAgD;QACzE,SAAS,EAAE,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC,KAAK,MAAM,IAAI,KAAK;QACnD,QAAQ,EAAE,EAAE,EAAE,4CAA4C;QAE1D,SAAS,EAAE,QAAQ,CAAC,SAAS,IAAI,SAAS;QAC1C,YAAY,EAAE,QAAQ,CAAC,YAAY,IAAI,SAAS;QAChD,eAAe,EAAE,QAAQ,CAAC,eAAe,IAAI,KAAK;QAClD,YAAY,EACV,OAAO,CAAC,GAAG,CAAC,kBAAkB,CAAC,KAAK,MAAM;YACxC,CAAC,CAAC,YAAY,CAAC,IAAI;YACnB,CAAC,CAAC,YAAY,CAAC,OAAO;QAC1B,UAAU,EAAE,QAAQ,CAAC,UAAU;QAC/B,GAAG,EAAE,YAAY;QACjB,SAAS,EAAE;YACT,OAAO,EAAE,QAAQ,CAAC,SAAS,EAAE,OAAO;YACpC,MAAM,EAAE,QAAQ,CAAC,SAAS,EAAE,MAAyB;YACrD,YAAY,EACV,OAAO,CAAC,GAAG,CAAC,6BAA6B,CAAC;gBAC1C,QAAQ,CAAC,SAAS,EAAE,YAAY;YAClC,UAAU,EAAE,QAAQ,CAAC,SAAS,EAAE,UAAU;SAC3C;QACD,oCAAoC;QACpC,aAAa,EAAE;YACb,gBAAgB,EAAE,QAAQ,CAAC,aAAa,EAAE,gBAAgB;YAC1D,yBAAyB,EACvB,QAAQ,CAAC,aAAa,EAAE,yBAAyB;SACpD;QACD,OAAO,EAAE,KAAK;QACd,WAAW,EAAE,QAAQ,CAAC,WAAW,KAAK,IAAI;QAC1C,eAAe;KAChB,CAAC;IAEF,MAAM,WAAW,GAAG,IAAI,oBAAoB,CAAC,YAAY,CAAC,CAAC;IAC3D,MAAM,EAAE,aAAa,EAAE,SAAS,EAAE,GAAG,MAAM,4BAA4B,CACrE,YAAY,EACZ,CAAC,YAAY,CAAC,EACd,KAAK,EACL,WAAW,EACX,eAAe,EACf,QAAQ,CAAC,WAAW,KAAK,IAAI,CAC9B,CAAC;IACF,YAAY,CAAC,UAAU,GAAG,aAAa,CAAC;IACxC,YAAY,CAAC,iBAAiB,GAAG,SAAS,CAAC;IAC3C,MAAM,MAAM,GAAG,IAAI,MAAM,CAAC;QACxB,GAAG,YAAY;KAChB,CAAC,CAAC;IACH,sEAAsE;IACtE,MAAM,MAAM,CAAC,UAAU,EAAE,CAAC;IAC1B,eAAe,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;IAE9B,IAAI,OAAO,CAAC,GAAG,CAAC,UAAU,CAAC,EAAE,CAAC;QAC5B,MAAM,CAAC,IAAI,CAAC,2BAA2B,CAAC,CAAC;QACzC,IAAI,CAAC;YACH,IAAI,WAAW,EAAE,CAAC;gBAChB,IAAI,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC;YAC5B,CAAC;QACH,CAAC;QAAC,OAAO,CAAC,EAAE,CAAC;YACX,MAAM,CAAC,KAAK,CACV,oGAAoG,WAAW,WAAW,CAAC,EAAE,CAC9H,CAAC;QACJ,CAAC;QACD,MAAM,MAAM,CAAC,WAAW,CAAC,QAAQ,CAAC,iBAAiB,CAAC,CAAC;QACrD,MAAM,CAAC,IAAI,CACT,kCAAkC,OAAO,CAAC,GAAG,CAAC,sBAAsB,CAAC,EAAE,CACxE,CAAC;IACJ,CAAC;SAAM,IAAI,OAAO,CAAC,GAAG,CAAC,gBAAgB,CAAC,EAAE,CAAC;QACzC,MAAM,CAAC,IAAI,CAAC,+BAA+B,CAAC,CAAC;QAC7C,MAAM,MAAM,CAAC,WAAW,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAC;IAChD,CAAC;SAAM,CAAC;QACN,MAAM,YAAY,GAChB,0FAA0F,CAAC;QAC7F,MAAM,CAAC,KAAK,CAAC,YAAY,CAAC,CAAC;QAC3B,MAAM,IAAI,KAAK,CAAC,YAAY,CAAC,CAAC;IAChC,CAAC;IAED,OAAO,MAAM,CAAC;AAChB,CAAC;AAED,MAAM,UAAU,YAAY,CAAC,aAAwC;IACnE,MAAM,WAAW,GAAG,OAAO,CAAC,GAAG,EAAE,CAAC;IAClC,MAAM,SAAS,GACb,OAAO,CAAC,GAAG,CAAC,4BAA4B,CAAC;QACzC,CAAC,aAAa,EAAE,IAAI,KAAK,eAAe,CAAC,uBAAuB;YAC9D,CAAC,CAAC,aAAa,CAAC,aAAa;YAC7B,CAAC,CAAC,SAAS,CAAC,CAAC;IAEjB,IAAI,CAAC,SAAS,EAAE,CAAC;QACf,OAAO,WAAW,CAAC;IACrB,CAAC;IAED,MAAM,CAAC,IAAI,CACT,sDAAsD,SAAS,EAAE,CAClE,CAAC;IAEF,IAAI,CAAC;QACH,MAAM,YAAY,GAAG,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;QAC7C,OAAO,CAAC,KAAK,CAAC,YAAY,CAAC,CAAC;QAC5B,OAAO,YAAY,CAAC;IACtB,CAAC;IAAC,OAAO,CAAC,EAAE,CAAC;QACX,MAAM,CAAC,KAAK,CACV,wDAAwD,CAAC,+BAA+B,CACzF,CAAC;QACF,OAAO,WAAW,CAAC;IACrB,CAAC;AACH,CAAC;AAED,MAAM,UAAU,eAAe;IAC7B,MAAM,WAAW,GAAG,WAAW,CAAC,OAAO,CAAC,GAAG,EAAE,CAAC,CAAC;IAC/C,IAAI,WAAW,EAAE,CAAC;QAChB,MAAM,CAAC,MAAM,CAAC,EAAE,IAAI,EAAE,WAAW,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC,CAAC;IACvD,CAAC;AACH,CAAC;AAED,SAAS,WAAW,CAAC,QAAgB;IACnC,IAAI,UAAU,GAAG,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;IACxC,OAAO,IAAI,EAAE,CAAC;QACZ,+CAA+C;QAC/C,MAAM,aAAa,GAAG,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,UAAU,EAAE,MAAM,CAAC,CAAC;QAChE,IAAI,EAAE,CAAC,UAAU,CAAC,aAAa,CAAC,EAAE,CAAC;YACjC,OAAO,aAAa,CAAC;QACvB,CAAC;QACD,MAAM,OAAO,GAAG,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,MAAM,CAAC,CAAC;QAC9C,IAAI,EAAE,CAAC,UAAU,CAAC,OAAO,CAAC,EAAE,CAAC;YAC3B,OAAO,OAAO,CAAC;QACjB,CAAC;QACD,MAAM,SAAS,GAAG,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC;QAC3C,IAAI,SAAS,KAAK,UAAU,IAAI,CAAC,SAAS,EAAE,CAAC;YAC3C,2EAA2E;YAC3E,MAAM,iBAAiB,GAAG,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,UAAU,EAAE,MAAM,CAAC,CAAC;YACvE,IAAI,EAAE,CAAC,UAAU,CAAC,iBAAiB,CAAC,EAAE,CAAC;gBACrC,OAAO,iBAAiB,CAAC;YAC3B,CAAC;YACD,MAAM,WAAW,GAAG,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,EAAE,MAAM,CAAC,CAAC;YACjD,IAAI,EAAE,CAAC,UAAU,CAAC,WAAW,CAAC,EAAE,CAAC;gBAC/B,OAAO,WAAW,CAAC;YACrB,CAAC;YACD,OAAO,IAAI,CAAC;QACd,CAAC;QACD,UAAU,GAAG,SAAS,CAAC;IACzB,CAAC;AACH,CAAC"}
1
+ {"version":3,"file":"config.js","sourceRoot":"","sources":["../../../src/config/config.ts"],"names":[],"mappings":"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"}
@@ -15,6 +15,9 @@ export interface Settings {
15
15
  showMemoryUsage?: boolean;
16
16
  checkpointing?: CheckpointingSettings;
17
17
  folderTrust?: boolean;
18
+ general?: {
19
+ previewFeatures?: boolean;
20
+ };
18
21
  fileFiltering?: {
19
22
  respectGitIgnore?: boolean;
20
23
  enableRecursiveFileSearch?: boolean;
@@ -1 +1 @@
1
- {"version":3,"file":"settings.js","sourceRoot":"","sources":["../../../src/config/settings.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"settings.js","sourceRoot":"","sources":["../../../src/config/settings.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,6 @@
1
+ /**
2
+ * @license
3
+ * Copyright 2025 Google LLC
4
+ * SPDX-License-Identifier: Apache-2.0
5
+ */
6
+ export {};
@@ -0,0 +1,161 @@
1
+ /**
2
+ * @license
3
+ * Copyright 2025 Google LLC
4
+ * SPDX-License-Identifier: Apache-2.0
5
+ */
6
+ import { describe, it, expect, vi, beforeEach, afterEach } from 'vitest';
7
+ import * as fs from 'node:fs';
8
+ import * as path from 'node:path';
9
+ import * as os from 'node:os';
10
+ import { loadSettings, USER_SETTINGS_PATH } from './settings.js';
11
+ const mocks = vi.hoisted(() => {
12
+ const suffix = Math.random().toString(36).slice(2);
13
+ return {
14
+ suffix,
15
+ };
16
+ });
17
+ vi.mock('node:os', async (importOriginal) => {
18
+ const actual = await importOriginal();
19
+ const path = await import('node:path');
20
+ return {
21
+ ...actual,
22
+ homedir: () => path.join(actual.tmpdir(), `gemini-home-${mocks.suffix}`),
23
+ };
24
+ });
25
+ vi.mock('@google/gemini-cli-core', () => ({
26
+ GEMINI_DIR: '.gemini',
27
+ debugLogger: {
28
+ error: vi.fn(),
29
+ },
30
+ getErrorMessage: (error) => String(error),
31
+ }));
32
+ describe('loadSettings', () => {
33
+ const mockHomeDir = path.join(os.tmpdir(), `gemini-home-${mocks.suffix}`);
34
+ const mockWorkspaceDir = path.join(os.tmpdir(), `gemini-workspace-${mocks.suffix}`);
35
+ const mockGeminiHomeDir = path.join(mockHomeDir, '.gemini');
36
+ const mockGeminiWorkspaceDir = path.join(mockWorkspaceDir, '.gemini');
37
+ beforeEach(() => {
38
+ vi.clearAllMocks();
39
+ // Create the directories using the real fs
40
+ if (!fs.existsSync(mockGeminiHomeDir)) {
41
+ fs.mkdirSync(mockGeminiHomeDir, { recursive: true });
42
+ }
43
+ if (!fs.existsSync(mockGeminiWorkspaceDir)) {
44
+ fs.mkdirSync(mockGeminiWorkspaceDir, { recursive: true });
45
+ }
46
+ // Clean up settings files before each test
47
+ if (fs.existsSync(USER_SETTINGS_PATH)) {
48
+ fs.rmSync(USER_SETTINGS_PATH);
49
+ }
50
+ const workspaceSettingsPath = path.join(mockGeminiWorkspaceDir, 'settings.json');
51
+ if (fs.existsSync(workspaceSettingsPath)) {
52
+ fs.rmSync(workspaceSettingsPath);
53
+ }
54
+ });
55
+ afterEach(() => {
56
+ try {
57
+ if (fs.existsSync(mockHomeDir)) {
58
+ fs.rmSync(mockHomeDir, { recursive: true, force: true });
59
+ }
60
+ if (fs.existsSync(mockWorkspaceDir)) {
61
+ fs.rmSync(mockWorkspaceDir, { recursive: true, force: true });
62
+ }
63
+ }
64
+ catch (e) {
65
+ console.error('Failed to cleanup temp dirs', e);
66
+ }
67
+ vi.restoreAllMocks();
68
+ });
69
+ it('should load nested previewFeatures from user settings', () => {
70
+ const settings = {
71
+ general: {
72
+ previewFeatures: true,
73
+ },
74
+ };
75
+ fs.writeFileSync(USER_SETTINGS_PATH, JSON.stringify(settings));
76
+ const result = loadSettings(mockWorkspaceDir);
77
+ expect(result.general?.previewFeatures).toBe(true);
78
+ });
79
+ it('should load nested previewFeatures from workspace settings', () => {
80
+ const settings = {
81
+ general: {
82
+ previewFeatures: true,
83
+ },
84
+ };
85
+ const workspaceSettingsPath = path.join(mockGeminiWorkspaceDir, 'settings.json');
86
+ fs.writeFileSync(workspaceSettingsPath, JSON.stringify(settings));
87
+ const result = loadSettings(mockWorkspaceDir);
88
+ expect(result.general?.previewFeatures).toBe(true);
89
+ });
90
+ it('should prioritize workspace settings over user settings', () => {
91
+ const userSettings = {
92
+ general: {
93
+ previewFeatures: false,
94
+ },
95
+ };
96
+ fs.writeFileSync(USER_SETTINGS_PATH, JSON.stringify(userSettings));
97
+ const workspaceSettings = {
98
+ general: {
99
+ previewFeatures: true,
100
+ },
101
+ };
102
+ const workspaceSettingsPath = path.join(mockGeminiWorkspaceDir, 'settings.json');
103
+ fs.writeFileSync(workspaceSettingsPath, JSON.stringify(workspaceSettings));
104
+ const result = loadSettings(mockWorkspaceDir);
105
+ expect(result.general?.previewFeatures).toBe(true);
106
+ });
107
+ it('should handle missing previewFeatures', () => {
108
+ const settings = {
109
+ general: {},
110
+ };
111
+ fs.writeFileSync(USER_SETTINGS_PATH, JSON.stringify(settings));
112
+ const result = loadSettings(mockWorkspaceDir);
113
+ expect(result.general?.previewFeatures).toBeUndefined();
114
+ });
115
+ it('should load other top-level settings correctly', () => {
116
+ const settings = {
117
+ showMemoryUsage: true,
118
+ coreTools: ['tool1', 'tool2'],
119
+ mcpServers: {
120
+ server1: {
121
+ command: 'cmd',
122
+ args: ['arg'],
123
+ },
124
+ },
125
+ fileFiltering: {
126
+ respectGitIgnore: true,
127
+ },
128
+ };
129
+ fs.writeFileSync(USER_SETTINGS_PATH, JSON.stringify(settings));
130
+ const result = loadSettings(mockWorkspaceDir);
131
+ expect(result.showMemoryUsage).toBe(true);
132
+ expect(result.coreTools).toEqual(['tool1', 'tool2']);
133
+ expect(result.mcpServers).toHaveProperty('server1');
134
+ expect(result.fileFiltering?.respectGitIgnore).toBe(true);
135
+ });
136
+ it('should overwrite top-level settings from workspace (shallow merge)', () => {
137
+ const userSettings = {
138
+ showMemoryUsage: false,
139
+ fileFiltering: {
140
+ respectGitIgnore: true,
141
+ enableRecursiveFileSearch: true,
142
+ },
143
+ };
144
+ fs.writeFileSync(USER_SETTINGS_PATH, JSON.stringify(userSettings));
145
+ const workspaceSettings = {
146
+ showMemoryUsage: true,
147
+ fileFiltering: {
148
+ respectGitIgnore: false,
149
+ },
150
+ };
151
+ const workspaceSettingsPath = path.join(mockGeminiWorkspaceDir, 'settings.json');
152
+ fs.writeFileSync(workspaceSettingsPath, JSON.stringify(workspaceSettings));
153
+ const result = loadSettings(mockWorkspaceDir);
154
+ // Primitive value overwritten
155
+ expect(result.showMemoryUsage).toBe(true);
156
+ // Object value completely replaced (shallow merge behavior)
157
+ expect(result.fileFiltering?.respectGitIgnore).toBe(false);
158
+ expect(result.fileFiltering?.enableRecursiveFileSearch).toBeUndefined();
159
+ });
160
+ });
161
+ //# sourceMappingURL=settings.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"settings.test.js","sourceRoot":"","sources":["../../../src/config/settings.test.ts"],"names":[],"mappings":"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"}