@google/gemini-cli 0.40.0-preview.2 → 0.40.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.
Files changed (66) hide show
  1. package/bundle/{chunk-WL5MCPV2.js → chunk-35STMVQ6.js} +2 -2
  2. package/bundle/{chunk-EFCQXWIF.js → chunk-47HVBRLD.js} +3 -3
  3. package/bundle/{chunk-HV36F4CL.js → chunk-5UA5NDVP.js} +134 -354
  4. package/bundle/{chunk-IUVLJUOL.js → chunk-B4NHGUNE.js} +2 -2
  5. package/bundle/{chunk-NO7STVVM.js → chunk-EEQGWBJU.js} +1413 -1089
  6. package/bundle/{chunk-IMEC72NS.js → chunk-EJ5U5A3P.js} +1 -1
  7. package/bundle/{chunk-33ANPP4S.js → chunk-ELANWZTZ.js} +3 -3
  8. package/bundle/{chunk-3GU3LF3I.js → chunk-F2KGMQCY.js} +180 -9
  9. package/bundle/{chunk-VCGILCZV.js → chunk-F73F75XM.js} +16 -0
  10. package/bundle/{chunk-PLUWJHZZ.js → chunk-FRCZJECU.js} +237 -54
  11. package/bundle/{chunk-UBXB5AEJ.js → chunk-GDNYA45E.js} +3 -3
  12. package/bundle/{chunk-TDW6FM3A.js → chunk-KITSDDOZ.js} +1 -1
  13. package/bundle/{chunk-WHIWQCI5.js → chunk-KKO2XSBY.js} +1 -1
  14. package/bundle/{chunk-GXRQOXQF.js → chunk-KUAEOA2Q.js} +177 -7
  15. package/bundle/{chunk-4IJPDKI6.js → chunk-KVGAAOEJ.js} +146 -364
  16. package/bundle/{chunk-QK7UWGBN.js → chunk-MRSOTTBM.js} +1380 -1081
  17. package/bundle/{chunk-MUGUV6RZ.js → chunk-MUEKKRWF.js} +2 -2
  18. package/bundle/chunk-R4ZCSDPK.js +80018 -0
  19. package/bundle/chunk-RMQT572G.js +156 -0
  20. package/bundle/chunk-RVU5Q4NB.js +118 -0
  21. package/bundle/{chunk-2RHFUIH4.js → chunk-UHHRGNIO.js} +16 -0
  22. package/bundle/chunk-UX5CFZ75.js +17505 -0
  23. package/bundle/{chunk-RM43GNQQ.js → chunk-UZ5SUJO4.js} +7709 -12907
  24. package/bundle/chunk-VQVLJLWD.js +1571 -0
  25. package/bundle/{chunk-NIVCRM5L.js → chunk-VUHGADMU.js} +134 -354
  26. package/bundle/chunk-YCTQOSY2.js +351149 -0
  27. package/bundle/{cleanup-A7WXWAMI.js → cleanup-BWZ7GONS.js} +3 -3
  28. package/bundle/{cleanup-EWPIME2M.js → cleanup-F6XR3KDW.js} +3 -3
  29. package/bundle/{cleanup-IPLJJT5S.js → cleanup-PS3UGKWX.js} +3 -3
  30. package/bundle/cleanup-VV6AV4T2.js +33 -0
  31. package/bundle/{core-VCDK23ZC.js → core-NDKZ44LE.js} +28 -2
  32. package/bundle/{devtoolsService-B5VVZ752.js → devtoolsService-DNFLMYOX.js} +3 -3
  33. package/bundle/{devtoolsService-2JXSALRU.js → devtoolsService-F6QBRWPB.js} +5 -4
  34. package/bundle/{devtoolsService-6Y6YER6T.js → devtoolsService-XGIYIDBD.js} +3 -3
  35. package/bundle/devtoolsService-YD6JSR34.js +852 -0
  36. package/bundle/{dist-UIXQETMC.js → dist-54TUMSKA.js} +28 -2
  37. package/bundle/{core-BQT6T3CH.js → dist-6KUUELBS.js} +28 -2
  38. package/bundle/dist-QHCXV4N4.js +2046 -0
  39. package/bundle/docs/cli/cli-reference.md +1 -0
  40. package/bundle/docs/cli/trusted-folders.md +28 -0
  41. package/bundle/docs/reference/configuration.md +14 -0
  42. package/bundle/{gemini-ID44Z5SV.js → gemini-HLGERR6W.js} +65 -21
  43. package/bundle/{gemini-54LH6RUH.js → gemini-IRPF2U4N.js} +241 -182
  44. package/bundle/gemini-QZM4UKD6.js +16087 -0
  45. package/bundle/{gemini-44W2QEZI.js → gemini-TU6PHHWE.js} +63 -20
  46. package/bundle/gemini.js +3 -3
  47. package/bundle/{interactiveCli-5MTJDFYC.js → interactiveCli-374EDFUA.js} +17 -167
  48. package/bundle/{interactiveCli-JFBPGMNM.js → interactiveCli-EKTBCA5F.js} +30 -179
  49. package/bundle/{interactiveCli-5B3X6RNB.js → interactiveCli-GRSDCSR3.js} +300 -432
  50. package/bundle/interactiveCli-HN4DKCW5.js +34448 -0
  51. package/bundle/{liteRtServerManager-76V63PRJ.js → liteRtServerManager-46V57ROR.js} +4 -4
  52. package/bundle/{liteRtServerManager-WQMDPACQ.js → liteRtServerManager-E34UIEBJ.js} +4 -4
  53. package/bundle/{liteRtServerManager-6GJWEP5W.js → liteRtServerManager-EAWDC35K.js} +4 -4
  54. package/bundle/liteRtServerManager-HTDKEOQC.js +65 -0
  55. package/bundle/{memoryDiscovery-RYHYLAPJ.js → memoryDiscovery-CZURD35O.js} +1 -1
  56. package/bundle/{memoryDiscovery-HWEYBJE7.js → memoryDiscovery-GZLXKRGB.js} +1 -1
  57. package/bundle/node_modules/@google/gemini-cli-devtools/package.json +1 -1
  58. package/bundle/{oauth2-provider-JCKLNKRV.js → oauth2-provider-N7Q7FNNA.js} +2 -2
  59. package/bundle/{oauth2-provider-EX6SQEZP.js → oauth2-provider-TW3RXTUS.js} +2 -2
  60. package/bundle/{oauth2-provider-ZF52AWQY.js → oauth2-provider-UQIDMKYA.js} +39 -73
  61. package/bundle/oauth2-provider-WTRWHBI2.js +237 -0
  62. package/bundle/{start-CYDJTOAP.js → start-4D5PYHGK.js} +6 -6
  63. package/bundle/{start-SHOUHW3Y.js → start-7DJXXKMH.js} +6 -6
  64. package/bundle/{start-B6EMQCH5.js → start-ERRBQVDH.js} +6 -6
  65. package/bundle/start-TKRKH572.js +18 -0
  66. package/package.json +1 -1
@@ -1,7 +1,7 @@
1
1
  const require = (await import('node:module')).createRequire(import.meta.url); const __chunk_filename = (await import('node:url')).fileURLToPath(import.meta.url); const __chunk_dirname = (await import('node:path')).dirname(__chunk_filename);
2
2
  import {
3
3
  runExitCleanup
4
- } from "./chunk-WL5MCPV2.js";
4
+ } from "./chunk-MUEKKRWF.js";
5
5
  import {
6
6
  __commonJS,
7
7
  __require
@@ -2,7 +2,7 @@ const require = (await import('node:module')).createRequire(import.meta.url); co
2
2
  import {
3
3
  exitCli,
4
4
  require_source
5
- } from "./chunk-WHIWQCI5.js";
5
+ } from "./chunk-KITSDDOZ.js";
6
6
  import {
7
7
  DEFAULT_PORT,
8
8
  SERVER_START_WAIT_MS,
@@ -14,10 +14,10 @@ import {
14
14
  isServerRunning,
15
15
  resolveGemmaConfig,
16
16
  writeServerProcessInfo
17
- } from "./chunk-4IJPDKI6.js";
17
+ } from "./chunk-UX5CFZ75.js";
18
18
  import {
19
19
  debugLogger
20
- } from "./chunk-2RHFUIH4.js";
20
+ } from "./chunk-F73F75XM.js";
21
21
  import {
22
22
  __toESM
23
23
  } from "./chunk-34MYV7JD.js";
@@ -6,7 +6,7 @@ import {
6
6
  import {
7
7
  exitCli,
8
8
  require_source
9
- } from "./chunk-IMEC72NS.js";
9
+ } from "./chunk-KITSDDOZ.js";
10
10
  import {
11
11
  DEFAULT_BACKGROUND_OPACITY,
12
12
  DEFAULT_BORDER_OPACITY,
@@ -32,6 +32,7 @@ import {
32
32
  escapeAnsiCtrlCodes,
33
33
  getBinaryPath,
34
34
  getCachedStringWidth,
35
+ getSettingsSchema,
35
36
  getThemeTypeFromBackgroundColor,
36
37
  interpolateColor,
37
38
  isBinaryInstalled,
@@ -58,10 +59,10 @@ import {
58
59
  stripUnsafeCharacters,
59
60
  toCodePoints,
60
61
  validateCustomTheme
61
- } from "./chunk-HV36F4CL.js";
62
+ } from "./chunk-UX5CFZ75.js";
62
63
  import {
63
64
  runExitCleanup
64
- } from "./chunk-WL5MCPV2.js";
65
+ } from "./chunk-35STMVQ6.js";
65
66
  import {
66
67
  AsyncFzf,
67
68
  AuthType,
@@ -95,6 +96,7 @@ import {
95
96
  SessionStartSource,
96
97
  ShellExecutionService,
97
98
  StartSessionEvent,
99
+ TrustLevel,
98
100
  UPGRADE_URL_PAGE,
99
101
  UserAccountManager,
100
102
  ValidationRequiredError,
@@ -206,7 +208,7 @@ import {
206
208
  stripAnsi,
207
209
  tokenLimit,
208
210
  uiTelemetryService
209
- } from "./chunk-QK7UWGBN.js";
211
+ } from "./chunk-UZ5SUJO4.js";
210
212
  import {
211
213
  ApprovalMode,
212
214
  CoreEvent,
@@ -233,7 +235,7 @@ import {
233
235
  shortenPath,
234
236
  tildeifyPath,
235
237
  unescapePath
236
- } from "./chunk-VCGILCZV.js";
238
+ } from "./chunk-F73F75XM.js";
237
239
  import {
238
240
  require_src
239
241
  } from "./chunk-RJTRUG2J.js";
@@ -44616,7 +44618,7 @@ var ExtensionManager = class extends ExtensionLoader {
44616
44618
  const trustedFolders = loadTrustedFolders();
44617
44619
  await trustedFolders.setValue(
44618
44620
  this.workspaceDir,
44619
- "TRUST_FOLDER" /* TRUST_FOLDER */
44621
+ TrustLevel.TRUST_FOLDER
44620
44622
  );
44621
44623
  } else {
44622
44624
  throw new Error(
@@ -45785,6 +45787,165 @@ var McpServerEnablementManager = class _McpServerEnablementManager {
45785
45787
  }
45786
45788
  };
45787
45789
 
45790
+ // packages/cli/src/utils/settingsUtils.ts
45791
+ function flattenSchema(schema, prefix = "") {
45792
+ let result = {};
45793
+ for (const key in schema) {
45794
+ const newKey = prefix ? `${prefix}.${key}` : key;
45795
+ const definition = schema[key];
45796
+ result[newKey] = { ...definition, key: newKey };
45797
+ if (definition.properties) {
45798
+ result = { ...result, ...flattenSchema(definition.properties, newKey) };
45799
+ }
45800
+ }
45801
+ return result;
45802
+ }
45803
+ var _FLATTENED_SCHEMA;
45804
+ function getFlattenedSchema() {
45805
+ return _FLATTENED_SCHEMA ?? (_FLATTENED_SCHEMA = flattenSchema(getSettingsSchema()));
45806
+ }
45807
+ function getSettingDefinition(key) {
45808
+ return getFlattenedSchema()[key];
45809
+ }
45810
+ function getDefaultValue(key) {
45811
+ return getFlattenedSchema()[key]?.default;
45812
+ }
45813
+ function getDialogRestartRequiredSettings() {
45814
+ return Object.values(getFlattenedSchema()).filter(
45815
+ (definition) => definition.requiresRestart && definition.showInDialog !== false
45816
+ ).map((definition) => definition.key);
45817
+ }
45818
+ function isRecord(value) {
45819
+ return typeof value === "object" && value !== null;
45820
+ }
45821
+ function isSettingsValue(value) {
45822
+ if (value === void 0) return true;
45823
+ if (value === null) return false;
45824
+ const type = typeof value;
45825
+ return type === "string" || type === "number" || type === "boolean" || type === "object";
45826
+ }
45827
+ function getNestedValue(obj, path37) {
45828
+ let current = obj;
45829
+ for (const key of path37) {
45830
+ if (!isRecord(current) || !(key in current)) {
45831
+ return void 0;
45832
+ }
45833
+ current = current[key];
45834
+ }
45835
+ return current;
45836
+ }
45837
+ function getEffectiveValue(key, settings) {
45838
+ const definition = getSettingDefinition(key);
45839
+ if (!definition) {
45840
+ return void 0;
45841
+ }
45842
+ const path37 = key.split(".");
45843
+ const value = getNestedValue(settings, path37);
45844
+ if (value !== void 0 && isSettingsValue(value)) {
45845
+ return value;
45846
+ }
45847
+ return definition.default;
45848
+ }
45849
+ function getDialogSettingKeys() {
45850
+ return Object.values(getFlattenedSchema()).filter((definition) => definition.showInDialog !== false).map((definition) => definition.key);
45851
+ }
45852
+ function isInSettingsScope(key, scopeSettings) {
45853
+ const path37 = key.split(".");
45854
+ const value = getNestedValue(scopeSettings, path37);
45855
+ return value !== void 0;
45856
+ }
45857
+ function getDisplayValue(key, scopeSettings, _mergedSettings) {
45858
+ const definition = getSettingDefinition(key);
45859
+ const existsInScope = isInSettingsScope(key, scopeSettings);
45860
+ let value;
45861
+ if (existsInScope) {
45862
+ value = getEffectiveValue(key, scopeSettings);
45863
+ } else {
45864
+ value = getDefaultValue(key);
45865
+ }
45866
+ let valueString = String(value);
45867
+ if (definition?.type === "object" && value !== null && typeof value === "object") {
45868
+ valueString = JSON.stringify(value);
45869
+ } else if (definition?.type === "enum" && definition.options) {
45870
+ const option = definition.options?.find((option2) => option2.value === value);
45871
+ valueString = option?.label ?? `${value}`;
45872
+ }
45873
+ if (definition?.unit === "%" && typeof value === "number") {
45874
+ valueString = `${value} (${Math.round(value * 100)}%)`;
45875
+ } else if (definition?.unit) {
45876
+ valueString = `${valueString}${definition.unit}`;
45877
+ }
45878
+ if (existsInScope) {
45879
+ return `${valueString}*`;
45880
+ }
45881
+ return valueString;
45882
+ }
45883
+ function tryParseJsonStringArray(input) {
45884
+ try {
45885
+ const parsed = JSON.parse(input);
45886
+ if (Array.isArray(parsed) && parsed.every((item) => typeof item === "string")) {
45887
+ return parsed;
45888
+ }
45889
+ return null;
45890
+ } catch {
45891
+ return null;
45892
+ }
45893
+ }
45894
+ function tryParseJsonObject(input) {
45895
+ try {
45896
+ const parsed = JSON.parse(input);
45897
+ if (isRecord(parsed) && !Array.isArray(parsed)) {
45898
+ return parsed;
45899
+ }
45900
+ return null;
45901
+ } catch {
45902
+ return null;
45903
+ }
45904
+ }
45905
+ function parseStringArrayValue(input) {
45906
+ const trimmed = input.trim();
45907
+ if (trimmed === "") return [];
45908
+ return tryParseJsonStringArray(trimmed) ?? input.split(",").map((p2) => p2.trim()).filter((p2) => p2.length > 0);
45909
+ }
45910
+ function parseObjectValue(input) {
45911
+ const trimmed = input.trim();
45912
+ if (trimmed === "") {
45913
+ return null;
45914
+ }
45915
+ return tryParseJsonObject(trimmed);
45916
+ }
45917
+ function parseEditedValue(type, newValue) {
45918
+ if (type === "number") {
45919
+ if (newValue.trim() === "") {
45920
+ return null;
45921
+ }
45922
+ const numParsed = Number(newValue.trim());
45923
+ if (Number.isNaN(numParsed)) {
45924
+ return null;
45925
+ }
45926
+ return numParsed;
45927
+ }
45928
+ if (type === "array") {
45929
+ return parseStringArrayValue(newValue);
45930
+ }
45931
+ if (type === "object") {
45932
+ return parseObjectValue(newValue);
45933
+ }
45934
+ return newValue;
45935
+ }
45936
+ function getEditValue(type, rawValue) {
45937
+ if (rawValue === void 0) {
45938
+ return void 0;
45939
+ }
45940
+ if (type === "array" && Array.isArray(rawValue)) {
45941
+ return rawValue.join(", ");
45942
+ }
45943
+ if (type === "object" && rawValue !== null && typeof rawValue === "object") {
45944
+ return JSON.stringify(rawValue);
45945
+ }
45946
+ return void 0;
45947
+ }
45948
+
45788
45949
  // packages/cli/src/ui/hooks/atCommandProcessor.ts
45789
45950
  import * as fs19 from "node:fs/promises";
45790
45951
  import * as path13 from "node:path";
@@ -54070,7 +54231,7 @@ var MultiFolderTrustDialog = ({
54070
54231
  if (choice === 1 /* YES_AND_REMEMBER */) {
54071
54232
  await trustedFolders.setValue(
54072
54233
  expandedPath,
54073
- "TRUST_FOLDER" /* TRUST_FOLDER */
54234
+ TrustLevel.TRUST_FOLDER
54074
54235
  );
54075
54236
  }
54076
54237
  workspaceContext.addDirectory(expandedPath);
@@ -54849,7 +55010,7 @@ var authCommand = {
54849
55010
  import process29 from "node:process";
54850
55011
 
54851
55012
  // packages/cli/src/generated/git-commit.ts
54852
- var GIT_COMMIT_INFO = "ee7e037c9";
55013
+ var GIT_COMMIT_INFO = "61c6a2adf";
54853
55014
 
54854
55015
  // packages/cli/src/ui/utils/historyExportUtils.ts
54855
55016
  import * as fsPromises from "node:fs/promises";
@@ -60334,7 +60495,7 @@ Use /mcp auth <server-name> to authenticate.`
60334
60495
  type: "info",
60335
60496
  text: `Starting OAuth authentication for MCP server '${serverName}'...`
60336
60497
  });
60337
- const { MCPOAuthProvider } = await import("./dist-UIXQETMC.js");
60498
+ const { MCPOAuthProvider } = await import("./dist-6KUUELBS.js");
60338
60499
  let oauthConfig = server.oauth;
60339
60500
  if (!oauthConfig) {
60340
60501
  oauthConfig = { enabled: false };
@@ -79618,6 +79779,16 @@ export {
79618
79779
  linkSkill,
79619
79780
  uninstallSkill,
79620
79781
  statusCommand,
79782
+ getSettingDefinition,
79783
+ getDialogRestartRequiredSettings,
79784
+ isRecord,
79785
+ getNestedValue,
79786
+ getEffectiveValue,
79787
+ getDialogSettingKeys,
79788
+ isInSettingsScope,
79789
+ getDisplayValue,
79790
+ parseEditedValue,
79791
+ getEditValue,
79621
79792
  ConsolePatcher,
79622
79793
  clipboardy_default,
79623
79794
  escapeAtSymbols,
@@ -25743,6 +25743,12 @@ var FatalToolExecutionError = class extends FatalError {
25743
25743
  this.name = "FatalToolExecutionError";
25744
25744
  }
25745
25745
  };
25746
+ var FatalUntrustedWorkspaceError = class extends FatalError {
25747
+ constructor(message) {
25748
+ super(message, 55);
25749
+ this.name = "FatalUntrustedWorkspaceError";
25750
+ }
25751
+ };
25746
25752
  var FatalCancellationError = class extends FatalError {
25747
25753
  constructor(message) {
25748
25754
  super(message, 130);
@@ -41666,6 +41672,7 @@ import * as fs4 from "node:fs";
41666
41672
  import { fileURLToPath } from "node:url";
41667
41673
  var GEMINI_DIR = ".gemini";
41668
41674
  var GOOGLE_ACCOUNTS_FILENAME = "google_accounts.json";
41675
+ var TRUSTED_FOLDERS_FILENAME = "trustedFolders.json";
41669
41676
  function homedir() {
41670
41677
  const envHome = process.env["GEMINI_CLI_HOME"];
41671
41678
  if (envHome) {
@@ -42267,6 +42274,7 @@ var StorageMigration = class {
42267
42274
 
42268
42275
  // packages/core/dist/src/config/storage.js
42269
42276
  var OAUTH_FILE = "oauth_creds.json";
42277
+ var TRUSTED_FOLDERS_FILENAME2 = "trustedFolders.json";
42270
42278
  var TMP_DIR_NAME = "tmp";
42271
42279
  var BIN_DIR_NAME = "bin";
42272
42280
  var AGENTS_DIR_NAME = ".agents";
@@ -42319,6 +42327,12 @@ var Storage = class _Storage {
42319
42327
  static getGoogleAccountsPath() {
42320
42328
  return path6.join(_Storage.getGlobalGeminiDir(), GOOGLE_ACCOUNTS_FILENAME);
42321
42329
  }
42330
+ static getTrustedFoldersPath() {
42331
+ if (process.env["GEMINI_CLI_TRUSTED_FOLDERS_PATH"]) {
42332
+ return process.env["GEMINI_CLI_TRUSTED_FOLDERS_PATH"];
42333
+ }
42334
+ return path6.join(_Storage.getGlobalGeminiDir(), TRUSTED_FOLDERS_FILENAME2);
42335
+ }
42322
42336
  static getUserCommandsDir() {
42323
42337
  return path6.join(_Storage.getGlobalGeminiDir(), "commands");
42324
42338
  }
@@ -52232,6 +52246,7 @@ export {
52232
52246
  READ_ONLY_KINDS,
52233
52247
  GEMINI_DIR,
52234
52248
  GOOGLE_ACCOUNTS_FILENAME,
52249
+ TRUSTED_FOLDERS_FILENAME,
52235
52250
  homedir,
52236
52251
  tmpdir,
52237
52252
  tildeifyPath,
@@ -52260,6 +52275,7 @@ export {
52260
52275
  FatalConfigError,
52261
52276
  FatalTurnLimitedError,
52262
52277
  FatalToolExecutionError,
52278
+ FatalUntrustedWorkspaceError,
52263
52279
  FatalCancellationError,
52264
52280
  CanceledError,
52265
52281
  ForbiddenError,