@google/gemini-cli 0.65.0-preview.0 → 0.66.0-nightly.20261017.ged96faedf

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.
Files changed (75) hide show
  1. package/README.md +21 -56
  2. package/bundle/{chunk-NL7ZHGCH.js → chunk-464WBVYM.js} +1 -1
  3. package/bundle/{chunk-QJK54DSE.js → chunk-5VQUE3OF.js} +1 -1
  4. package/bundle/{chunk-VF5WQSOE.js → chunk-7ARQMEMX.js} +1 -1
  5. package/bundle/{chunk-2WVLIJA5.js → chunk-BUG4N6U5.js} +145 -77
  6. package/bundle/{chunk-F6AJM4WN.js → chunk-DPV3ZEOC.js} +3 -3
  7. package/bundle/{chunk-GSQEBEGC.js → chunk-ERBSM2HU.js} +3 -3
  8. package/bundle/{chunk-WTRK3NVX.js → chunk-GEUFOF2X.js} +106 -1500
  9. package/bundle/{chunk-V2R74WAG.js → chunk-H4U2CWBQ.js} +151 -81
  10. package/bundle/chunk-HDP6V6JI.js +1956 -0
  11. package/bundle/{chunk-RPHDSDL6.js → chunk-IDCWFZU3.js} +1 -1
  12. package/bundle/{chunk-SN7QZKXC.js → chunk-IGOTAEJY.js} +170 -1551
  13. package/bundle/chunk-J5QPCO3J.js +101859 -0
  14. package/bundle/{chunk-H2CZXS7F.js → chunk-JY3DYBJT.js} +1 -1
  15. package/bundle/{chunk-HLOOE7YN.js → chunk-LDGJJCVW.js} +9 -8
  16. package/bundle/chunk-MH4KAY5W.js +512 -0
  17. package/bundle/{chunk-LLE5Z636.js → chunk-NAPT3FAL.js} +106 -1500
  18. package/bundle/chunk-NOSWGXRT.js +1956 -0
  19. package/bundle/{chunk-43EXRO7A.js → chunk-NU74STQ5.js} +145 -77
  20. package/bundle/{chunk-K7NOVQ6G.js → chunk-QCWGLPCO.js} +376 -231
  21. package/bundle/{chunk-WGL5FJOS.js → chunk-QF3ALSJN.js} +3 -3
  22. package/bundle/{chunk-K4G5D5ZZ.js → chunk-R4KPURFC.js} +1 -1
  23. package/bundle/chunk-R6XDLHLP.js +1956 -0
  24. package/bundle/chunk-R7UPATQC.js +1956 -0
  25. package/bundle/chunk-RACMC24X.js +118 -0
  26. package/bundle/{chunk-4JGVVJGK.js → chunk-RE4V6I3G.js} +1 -1
  27. package/bundle/{chunk-S7BCRBI4.js → chunk-UTTFPWGQ.js} +1 -1
  28. package/bundle/chunk-VXYA6LA4.js +1571 -0
  29. package/bundle/chunk-XY2QSBID.js +17603 -0
  30. package/bundle/{chunk-K7AA35SP.js → chunk-YOI4DS3V.js} +365 -230
  31. package/bundle/chunk-YP27UYI4.js +154 -0
  32. package/bundle/{chunk-TP236FKO.js → chunk-YPLMNSM4.js} +8243 -15166
  33. package/bundle/chunk-ZFQ347ZN.js +402181 -0
  34. package/bundle/{cleanup-HPADDONA.js → cleanup-6FAZDCL3.js} +2 -2
  35. package/bundle/{cleanup-JOMSXKMP.js → cleanup-GNZLZG55.js} +2 -2
  36. package/bundle/{cleanup-LYRJHMMO.js → cleanup-RX3AC5ET.js} +2 -2
  37. package/bundle/cleanup-WAU2KYGS.js +32 -0
  38. package/bundle/{core-NCJTYARO.js → core-AGGXDQOT.js} +13 -1
  39. package/bundle/{devtoolsService-WP2OPVPB.js → devtoolsService-6XOCGTLC.js} +2 -2
  40. package/bundle/{devtoolsService-JFJBTZ4B.js → devtoolsService-FBTSVQ57.js} +4 -3
  41. package/bundle/{devtoolsService-HIZA3JGR.js → devtoolsService-UO6ZB72B.js} +2 -2
  42. package/bundle/devtoolsService-W5QGZ3SW.js +4359 -0
  43. package/bundle/{dist-GQKLLBDW.js → dist-2ELAEESC.js} +13 -1
  44. package/bundle/{core-IVQAI4S6.js → dist-2R7C2WHA.js} +13 -1
  45. package/bundle/dist-PALH7PJS.js +2280 -0
  46. package/bundle/docs/changelogs/index.md +22 -0
  47. package/bundle/docs/changelogs/latest.md +64 -54
  48. package/bundle/docs/changelogs/preview.md +91 -55
  49. package/bundle/docs/reference/configuration.md +8 -3
  50. package/bundle/docs/reference/keyboard-shortcuts.md +18 -4
  51. package/bundle/{gemini-5TUKZVGS.js → gemini-6MH55Y7F.js} +37 -18
  52. package/bundle/{gemini-7CHJYSHM.js → gemini-DOXUDJDY.js} +37 -18
  53. package/bundle/{gemini-546WMAHG.js → gemini-OHYXI52N.js} +237 -202
  54. package/bundle/gemini-OUEDCH4P.js +17970 -0
  55. package/bundle/gemini.js +14 -15
  56. package/bundle/{interactiveCli-E3PUPYMZ.js → interactiveCli-7LIKGDTJ.js} +1061 -989
  57. package/bundle/{interactiveCli-5XIAIY74.js → interactiveCli-EGQYN3KR.js} +1371 -1280
  58. package/bundle/{interactiveCli-L4PK7YY3.js → interactiveCli-TG7PGV4V.js} +1061 -989
  59. package/bundle/interactiveCli-YEXCUIFZ.js +35601 -0
  60. package/bundle/{liteRtServerManager-JCTYJBV5.js → liteRtServerManager-KAPXZ3EU.js} +4 -4
  61. package/bundle/{liteRtServerManager-JERG6KYC.js → liteRtServerManager-MSJIWMWP.js} +4 -4
  62. package/bundle/{liteRtServerManager-22ISMNN2.js → liteRtServerManager-PD2N3GLD.js} +4 -4
  63. package/bundle/liteRtServerManager-X5SCFYXM.js +65 -0
  64. package/bundle/{oauth2-provider-XRUER2XR.js → oauth2-provider-IUN6Z4IO.js} +1 -1
  65. package/bundle/{oauth2-provider-477UJQX6.js → oauth2-provider-MKJIQNWP.js} +41 -79
  66. package/bundle/{oauth2-provider-MKWWBW4K.js → oauth2-provider-RMF7U2UN.js} +1 -1
  67. package/bundle/oauth2-provider-ZM5GWCNX.js +273 -0
  68. package/bundle/{start-MVIPJNQ5.js → start-5GIUIER3.js} +6 -6
  69. package/bundle/{start-RZWSVT55.js → start-APIVGXZ3.js} +6 -6
  70. package/bundle/{start-AGMBPY3O.js → start-GJ4TH4KZ.js} +6 -6
  71. package/bundle/start-WDS52ZNE.js +18 -0
  72. package/package.json +1 -1
  73. package/bundle/chunk-4DCA4L53.js +0 -425
  74. package/bundle/chunk-BFIV7GTA.js +0 -425
  75. package/bundle/chunk-V72FRESD.js +0 -425
@@ -31,7 +31,7 @@ import {
31
31
  partListUnionToString,
32
32
  require_strip_json_comments,
33
33
  sanitizeFilenamePart
34
- } from "./chunk-TP236FKO.js";
34
+ } from "./chunk-QCWGLPCO.js";
35
35
  import {
36
36
  __commonJS,
37
37
  __require,
@@ -16386,6 +16386,18 @@ var LoadedSettings = class {
16386
16386
  return;
16387
16387
  }
16388
16388
  this.isTrusted = isTrusted;
16389
+ if (isTrusted && Object.keys(this._workspaceFile.settings).length === 0 && Object.keys(this._workspaceFile.originalSettings).length > 0) {
16390
+ const resolvedWorkspaceSettings = resolveSettings(
16391
+ this._workspaceFile.originalSettings,
16392
+ this._workspaceFile.path,
16393
+ this.errors
16394
+ );
16395
+ normalizeLegacyTheme(resolvedWorkspaceSettings);
16396
+ this._workspaceFile = {
16397
+ ...this._workspaceFile,
16398
+ settings: resolvedWorkspaceSettings
16399
+ };
16400
+ }
16389
16401
  this.workspace = isTrusted ? this._workspaceFile : this.createEmptyWorkspace(this._workspaceFile);
16390
16402
  this._merged = this.computeMergedSettings();
16391
16403
  coreEvents.emitSettingsChanged();
@@ -16400,12 +16412,12 @@ var LoadedSettings = class {
16400
16412
  }
16401
16413
  computeMergedSettings(forceTrusted = false) {
16402
16414
  const isTrusted = forceTrusted || this.isTrusted;
16403
- const workspace = forceTrusted ? this._workspaceFile : this.workspace;
16415
+ const workspaceSettings = forceTrusted ? Object.keys(this._workspaceFile.settings).length > 0 ? this._workspaceFile.settings : this._workspaceFile.originalSettings : this.workspace.settings;
16404
16416
  const merged = mergeSettings(
16405
16417
  this.system.settings,
16406
16418
  this.systemDefaults.settings,
16407
16419
  this.user.settings,
16408
- workspace.settings,
16420
+ workspaceSettings,
16409
16421
  isTrusted
16410
16422
  );
16411
16423
  const adminSettingSchema = getSettingsSchema().admin;
@@ -16672,6 +16684,75 @@ function loadSettings(workspaceDir = process2.cwd()) {
16672
16684
  () => _doLoadSettings(normalizedWorkspaceDir)
16673
16685
  );
16674
16686
  }
16687
+ function isRecord(value) {
16688
+ return typeof value === "object" && value !== null && !Array.isArray(value);
16689
+ }
16690
+ function getParentRecord(root, objectPath) {
16691
+ let current = root;
16692
+ for (let i = 0; i < objectPath.length - 1; i++) {
16693
+ if (!isRecord(current)) {
16694
+ return void 0;
16695
+ }
16696
+ current = current[objectPath[i]];
16697
+ }
16698
+ return isRecord(current) ? current : void 0;
16699
+ }
16700
+ function coerceValidSettings(expandedSettings, issues) {
16701
+ const clone2 = structuredClone(expandedSettings);
16702
+ const pathsToRestore = [];
16703
+ for (const issue of issues) {
16704
+ const firstNumberIdx = issue.path.findIndex((p) => typeof p === "number");
16705
+ const objectPath = (firstNumberIdx === -1 ? issue.path : issue.path.slice(0, firstNumberIdx)).filter((p) => typeof p === "string");
16706
+ if (objectPath.length === 0) {
16707
+ return expandedSettings;
16708
+ }
16709
+ const lastKey = objectPath[objectPath.length - 1];
16710
+ const container = getParentRecord(clone2, objectPath);
16711
+ if (container && Object.hasOwn(container, lastKey)) {
16712
+ delete container[lastKey];
16713
+ pathsToRestore.push(objectPath);
16714
+ }
16715
+ }
16716
+ const partialValidation = validateSettings(clone2);
16717
+ if (!partialValidation.success || !partialValidation.data) {
16718
+ return expandedSettings;
16719
+ }
16720
+ const coerced = partialValidation.data;
16721
+ for (const objectPath of pathsToRestore) {
16722
+ const lastKey = objectPath[objectPath.length - 1];
16723
+ const sourceContainer = getParentRecord(expandedSettings, objectPath);
16724
+ const targetContainer = getParentRecord(coerced, objectPath);
16725
+ if (sourceContainer && targetContainer && Object.hasOwn(sourceContainer, lastKey)) {
16726
+ targetContainer[lastKey] = sourceContainer[lastKey];
16727
+ }
16728
+ }
16729
+ return coerced;
16730
+ }
16731
+ function normalizeLegacyTheme(settings) {
16732
+ if (settings.ui?.theme === "VS") {
16733
+ settings.ui.theme = DefaultLight.name;
16734
+ } else if (settings.ui?.theme === "VS2015") {
16735
+ settings.ui.theme = DefaultDark.name;
16736
+ }
16737
+ }
16738
+ function resolveSettings(rawSettings, filePath, settingsErrors) {
16739
+ if (Object.keys(rawSettings).length === 0) {
16740
+ return {};
16741
+ }
16742
+ const expandedSettings = resolveEnvVarsInObject(rawSettings);
16743
+ const validationResult = validateSettings(expandedSettings);
16744
+ if (!validationResult.success && validationResult.error) {
16745
+ if (settingsErrors) {
16746
+ settingsErrors.push({
16747
+ message: formatValidationError(validationResult.error, filePath),
16748
+ path: filePath,
16749
+ severity: "warning"
16750
+ });
16751
+ }
16752
+ return coerceValidSettings(expandedSettings, validationResult.error.issues);
16753
+ }
16754
+ return validationResult.data ?? expandedSettings;
16755
+ }
16675
16756
  function _doLoadSettings(workspaceDir) {
16676
16757
  let systemSettings = {};
16677
16758
  let systemDefaultSettings = {};
@@ -16693,37 +16774,9 @@ function _doLoadSettings(workspaceDir) {
16693
16774
  path: filePath,
16694
16775
  severity: "error"
16695
16776
  });
16696
- return { settings: {}, rawSettings: {} };
16697
- }
16698
- const settingsObject = rawSettings;
16699
- const expandedSettings = resolveEnvVarsInObject(
16700
- settingsObject
16701
- );
16702
- const validationResult = validateSettings(expandedSettings);
16703
- if (!validationResult.success && validationResult.error) {
16704
- const errorMessage = formatValidationError(
16705
- validationResult.error,
16706
- filePath
16707
- );
16708
- settingsErrors.push({
16709
- message: errorMessage,
16710
- path: filePath,
16711
- severity: "warning"
16712
- });
16713
- return {
16714
- settings: expandedSettings,
16715
- rawSettings: settingsObject,
16716
- rawJson: content
16717
- };
16777
+ return { rawSettings: {} };
16718
16778
  }
16719
- return {
16720
- // Since we've successfully validated expandedSettings against settingsZodSchema,
16721
- // it's safe to cast the resulting data to the Settings type.
16722
- // eslint-disable-next-line @typescript-eslint/no-unsafe-type-assertion
16723
- settings: validationResult.data ?? expandedSettings,
16724
- rawSettings: settingsObject,
16725
- rawJson: content
16726
- };
16779
+ return { rawSettings, rawJson: content };
16727
16780
  }
16728
16781
  } catch (error) {
16729
16782
  settingsErrors.push({
@@ -16732,12 +16785,12 @@ function _doLoadSettings(workspaceDir) {
16732
16785
  severity: "error"
16733
16786
  });
16734
16787
  }
16735
- return { settings: {}, rawSettings: {} };
16788
+ return { rawSettings: {} };
16736
16789
  };
16737
16790
  const securityCache = createPathSecurityCache();
16738
16791
  const loadSystemFile = (filePath, fileLabel) => {
16739
16792
  if (!fs4.existsSync(filePath)) {
16740
- return { settings: {}, rawSettings: {} };
16793
+ return { rawSettings: {} };
16741
16794
  }
16742
16795
  const check = isFileAndDirectorySecureSync(filePath, securityCache);
16743
16796
  if (!check.secure) {
@@ -16746,7 +16799,7 @@ function _doLoadSettings(workspaceDir) {
16746
16799
  path: filePath,
16747
16800
  severity: "warning"
16748
16801
  });
16749
- return { settings: {}, rawSettings: {} };
16802
+ return { rawSettings: {} };
16750
16803
  }
16751
16804
  return load(filePath);
16752
16805
  };
@@ -16756,26 +16809,10 @@ function _doLoadSettings(workspaceDir) {
16756
16809
  "system defaults"
16757
16810
  );
16758
16811
  const userResult = load(USER_SETTINGS_PATH);
16759
- let workspaceResult = {
16760
- settings: {},
16761
- rawSettings: {},
16762
- rawJson: void 0
16763
- };
16812
+ let workspaceResult = { rawSettings: {} };
16764
16813
  if (!storage.isWorkspaceHomeDir()) {
16765
16814
  workspaceResult = load(workspaceSettingsPath);
16766
16815
  }
16767
- const systemOriginalSettings = structuredClone(systemResult.rawSettings);
16768
- const systemDefaultsOriginalSettings = structuredClone(
16769
- systemDefaultsResult.rawSettings
16770
- );
16771
- const userOriginalSettings = structuredClone(userResult.rawSettings);
16772
- const workspaceOriginalSettings = structuredClone(
16773
- workspaceResult.rawSettings
16774
- );
16775
- systemSettings = systemResult.settings;
16776
- systemDefaultSettings = systemDefaultsResult.settings;
16777
- userSettings = userResult.settings;
16778
- workspaceSettings = workspaceResult.settings;
16779
16816
  const envAuthOverride = process2.env["GEMINI_CLI_AUTH_OVERRIDE"];
16780
16817
  if (envAuthOverride) {
16781
16818
  delete process2.env["GEMINI_CLI_AUTH_OVERRIDE"];
@@ -16786,31 +16823,34 @@ function _doLoadSettings(workspaceDir) {
16786
16823
  envAuthOverride
16787
16824
  ) : void 0;
16788
16825
  if (authOverride) {
16789
- if (!userSettings.security) {
16790
- userSettings.security = {};
16791
- }
16792
- if (!userSettings.security.auth) {
16793
- userSettings.security.auth = {};
16794
- }
16795
- userSettings.security.auth.selectedType = authOverride;
16796
- if (!userOriginalSettings.security) {
16797
- userOriginalSettings.security = {};
16798
- }
16799
- if (!userOriginalSettings.security.auth) {
16800
- userOriginalSettings.security.auth = {};
16801
- }
16802
- userOriginalSettings.security.auth.selectedType = authOverride;
16803
- }
16804
- if (userSettings.ui?.theme === "VS") {
16805
- userSettings.ui.theme = DefaultLight.name;
16806
- } else if (userSettings.ui?.theme === "VS2015") {
16807
- userSettings.ui.theme = DefaultDark.name;
16808
- }
16809
- if (workspaceSettings.ui?.theme === "VS") {
16810
- workspaceSettings.ui.theme = DefaultLight.name;
16811
- } else if (workspaceSettings.ui?.theme === "VS2015") {
16812
- workspaceSettings.ui.theme = DefaultDark.name;
16826
+ userResult.rawSettings = {
16827
+ ...userResult.rawSettings,
16828
+ security: {
16829
+ ...userResult.rawSettings?.security,
16830
+ auth: {
16831
+ ...userResult.rawSettings?.security?.auth,
16832
+ selectedType: authOverride
16833
+ }
16834
+ }
16835
+ };
16813
16836
  }
16837
+ const systemOriginalSettings = structuredClone(systemResult.rawSettings);
16838
+ const systemDefaultsOriginalSettings = structuredClone(
16839
+ systemDefaultsResult.rawSettings
16840
+ );
16841
+ const userOriginalSettings = structuredClone(userResult.rawSettings);
16842
+ const workspaceOriginalSettings = structuredClone(
16843
+ workspaceResult.rawSettings
16844
+ );
16845
+ systemSettings = resolveSettings(
16846
+ systemResult.rawSettings,
16847
+ systemSettingsPath
16848
+ );
16849
+ systemDefaultSettings = resolveSettings(
16850
+ systemDefaultsResult.rawSettings,
16851
+ systemDefaultsPath
16852
+ );
16853
+ userSettings = resolveSettings(userResult.rawSettings, USER_SETTINGS_PATH);
16814
16854
  const initialTrustCheckSettings = customDeepMerge(
16815
16855
  getMergeStrategyForPath,
16816
16856
  getDefaultsFromSchema(),
@@ -16819,6 +16859,12 @@ function _doLoadSettings(workspaceDir) {
16819
16859
  systemSettings
16820
16860
  );
16821
16861
  const isTrusted = isWorkspaceTrusted(initialTrustCheckSettings, workspaceDir)?.isTrusted ?? false;
16862
+ if (isTrusted) {
16863
+ workspaceSettings = resolveSettings(
16864
+ workspaceResult.rawSettings,
16865
+ workspaceSettingsPath
16866
+ );
16867
+ }
16822
16868
  const tempMergedSettings = mergeSettings(
16823
16869
  systemSettings,
16824
16870
  systemDefaultSettings,
@@ -16827,6 +16873,28 @@ function _doLoadSettings(workspaceDir) {
16827
16873
  isTrusted
16828
16874
  );
16829
16875
  loadEnvironment(tempMergedSettings, workspaceDir);
16876
+ systemSettings = resolveSettings(
16877
+ systemResult.rawSettings,
16878
+ systemSettingsPath,
16879
+ settingsErrors
16880
+ );
16881
+ systemDefaultSettings = resolveSettings(
16882
+ systemDefaultsResult.rawSettings,
16883
+ systemDefaultsPath,
16884
+ settingsErrors
16885
+ );
16886
+ userSettings = resolveSettings(
16887
+ userResult.rawSettings,
16888
+ USER_SETTINGS_PATH,
16889
+ settingsErrors
16890
+ );
16891
+ workspaceSettings = isTrusted ? resolveSettings(
16892
+ workspaceResult.rawSettings,
16893
+ workspaceSettingsPath,
16894
+ settingsErrors
16895
+ ) : {};
16896
+ normalizeLegacyTheme(userSettings);
16897
+ normalizeLegacyTheme(workspaceSettings);
16830
16898
  const fatalErrors = settingsErrors.filter((e) => e.severity === "error");
16831
16899
  if (fatalErrors.length > 0) {
16832
16900
  const errorMessages = fatalErrors.map(