@google/gemini-cli 0.3.2 → 0.4.0-preview

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 (198) hide show
  1. package/dist/google-gemini-cli-0.3.1.tgz +0 -0
  2. package/dist/package.json +3 -6
  3. package/dist/src/commands/extensions/enable.js +1 -1
  4. package/dist/src/commands/extensions/enable.js.map +1 -1
  5. package/dist/src/commands/extensions/examples/context/GEMINI.md +8 -0
  6. package/dist/src/commands/extensions/examples/context/gemini-extension.json +5 -0
  7. package/dist/src/commands/extensions/examples/custom-commands/commands/fs/grep-code.toml +6 -0
  8. package/dist/src/commands/extensions/examples/custom-commands/gemini-extension.json +4 -0
  9. package/dist/src/commands/extensions/examples/exclude-tools/gemini-extension.json +5 -0
  10. package/dist/src/commands/extensions/examples/mcp-server/example.d.ts +6 -0
  11. package/dist/src/commands/extensions/examples/mcp-server/example.js +46 -0
  12. package/dist/src/commands/extensions/examples/mcp-server/example.js.map +1 -0
  13. package/dist/src/commands/extensions/examples/mcp-server/example.ts +60 -0
  14. package/dist/src/commands/extensions/examples/mcp-server/gemini-extension.json +10 -0
  15. package/dist/src/commands/extensions/install.js +35 -7
  16. package/dist/src/commands/extensions/install.js.map +1 -1
  17. package/dist/src/commands/extensions/install.test.js +20 -2
  18. package/dist/src/commands/extensions/install.test.js.map +1 -1
  19. package/dist/src/commands/extensions/link.d.ts +12 -0
  20. package/dist/src/commands/extensions/link.js +37 -0
  21. package/dist/src/commands/extensions/link.js.map +1 -0
  22. package/dist/src/commands/extensions/new.d.ts +7 -0
  23. package/dist/src/commands/extensions/new.js +70 -0
  24. package/dist/src/commands/extensions/new.js.map +1 -0
  25. package/dist/src/commands/extensions/new.test.d.ts +6 -0
  26. package/dist/src/commands/extensions/new.test.js +50 -0
  27. package/dist/src/commands/extensions/new.test.js.map +1 -0
  28. package/dist/src/commands/extensions/update.d.ts +2 -1
  29. package/dist/src/commands/extensions/update.js +36 -15
  30. package/dist/src/commands/extensions/update.js.map +1 -1
  31. package/dist/src/commands/extensions.js +4 -0
  32. package/dist/src/commands/extensions.js.map +1 -1
  33. package/dist/src/commands/mcp/add.js +1 -1
  34. package/dist/src/commands/mcp/add.js.map +1 -1
  35. package/dist/src/commands/mcp/list.js +2 -2
  36. package/dist/src/commands/mcp/list.js.map +1 -1
  37. package/dist/src/commands/mcp/remove.js +1 -1
  38. package/dist/src/commands/mcp/remove.js.map +1 -1
  39. package/dist/src/config/auth.d.ts +1 -1
  40. package/dist/src/config/auth.js +4 -4
  41. package/dist/src/config/auth.js.map +1 -1
  42. package/dist/src/config/auth.test.js +15 -7
  43. package/dist/src/config/auth.test.js.map +1 -1
  44. package/dist/src/config/config.d.ts +4 -1
  45. package/dist/src/config/config.js +32 -18
  46. package/dist/src/config/config.js.map +1 -1
  47. package/dist/src/config/extension.d.ts +7 -4
  48. package/dist/src/config/extension.js +76 -24
  49. package/dist/src/config/extension.js.map +1 -1
  50. package/dist/src/config/keyBindings.d.ts +1 -0
  51. package/dist/src/config/keyBindings.js +6 -25
  52. package/dist/src/config/keyBindings.js.map +1 -1
  53. package/dist/src/config/settings.d.ts +5 -5
  54. package/dist/src/config/settings.js +93 -224
  55. package/dist/src/config/settings.js.map +1 -1
  56. package/dist/src/config/settingsSchema.d.ts +113 -13
  57. package/dist/src/config/settingsSchema.js +112 -13
  58. package/dist/src/config/settingsSchema.js.map +1 -1
  59. package/dist/src/config/trustedFolders.d.ts +12 -2
  60. package/dist/src/config/trustedFolders.js +59 -40
  61. package/dist/src/config/trustedFolders.js.map +1 -1
  62. package/dist/src/config/trustedFolders.test.js +81 -2
  63. package/dist/src/config/trustedFolders.test.js.map +1 -1
  64. package/dist/src/gemini.d.ts +1 -1
  65. package/dist/src/gemini.js +52 -26
  66. package/dist/src/gemini.js.map +1 -1
  67. package/dist/src/gemini.test.js +2 -30
  68. package/dist/src/gemini.test.js.map +1 -1
  69. package/dist/src/generated/git-commit.d.ts +2 -2
  70. package/dist/src/generated/git-commit.js +2 -2
  71. package/dist/src/generated/git-commit.js.map +1 -1
  72. package/dist/src/services/BuiltinCommandLoader.js +1 -1
  73. package/dist/src/services/BuiltinCommandLoader.js.map +1 -1
  74. package/dist/src/services/BuiltinCommandLoader.test.js +3 -3
  75. package/dist/src/services/BuiltinCommandLoader.test.js.map +1 -1
  76. package/dist/src/services/FileCommandLoader.d.ts +2 -0
  77. package/dist/src/services/FileCommandLoader.js +7 -0
  78. package/dist/src/services/FileCommandLoader.js.map +1 -1
  79. package/dist/src/ui/App.js +109 -47
  80. package/dist/src/ui/App.js.map +1 -1
  81. package/dist/src/ui/commands/aboutCommand.js +9 -3
  82. package/dist/src/ui/commands/aboutCommand.js.map +1 -1
  83. package/dist/src/ui/commands/bugCommand.js +9 -4
  84. package/dist/src/ui/commands/bugCommand.js.map +1 -1
  85. package/dist/src/ui/commands/directoryCommand.js +1 -1
  86. package/dist/src/ui/commands/directoryCommand.js.map +1 -1
  87. package/dist/src/ui/commands/ideCommand.d.ts +1 -2
  88. package/dist/src/ui/commands/ideCommand.js +16 -7
  89. package/dist/src/ui/commands/ideCommand.js.map +1 -1
  90. package/dist/src/ui/commands/mcpCommand.js +6 -4
  91. package/dist/src/ui/commands/mcpCommand.js.map +1 -1
  92. package/dist/src/ui/commands/memoryCommand.js +1 -1
  93. package/dist/src/ui/commands/memoryCommand.js.map +1 -1
  94. package/dist/src/ui/components/AuthDialog.js +8 -2
  95. package/dist/src/ui/components/AuthDialog.js.map +1 -1
  96. package/dist/src/ui/components/AuthDialog.test.js +41 -10
  97. package/dist/src/ui/components/AuthDialog.test.js.map +1 -1
  98. package/dist/src/ui/components/FolderTrustDialog.js +3 -1
  99. package/dist/src/ui/components/FolderTrustDialog.js.map +1 -1
  100. package/dist/src/ui/components/FolderTrustDialog.test.js +19 -4
  101. package/dist/src/ui/components/FolderTrustDialog.test.js.map +1 -1
  102. package/dist/src/ui/components/Footer.d.ts +3 -0
  103. package/dist/src/ui/components/Footer.js +4 -3
  104. package/dist/src/ui/components/Footer.js.map +1 -1
  105. package/dist/src/ui/components/InputPrompt.js +34 -24
  106. package/dist/src/ui/components/InputPrompt.js.map +1 -1
  107. package/dist/src/ui/components/MemoryUsageDisplay.js +1 -1
  108. package/dist/src/ui/components/MemoryUsageDisplay.js.map +1 -1
  109. package/dist/src/ui/components/ProQuotaDialog.d.ts +13 -0
  110. package/dist/src/ui/components/ProQuotaDialog.js +21 -0
  111. package/dist/src/ui/components/ProQuotaDialog.js.map +1 -0
  112. package/dist/src/ui/components/ProQuotaDialog.test.d.ts +6 -0
  113. package/dist/src/ui/components/ProQuotaDialog.test.js +56 -0
  114. package/dist/src/ui/components/ProQuotaDialog.test.js.map +1 -0
  115. package/dist/src/ui/components/SettingsDialog.test.js +2 -2
  116. package/dist/src/ui/components/SettingsDialog.test.js.map +1 -1
  117. package/dist/src/ui/components/messages/ToolConfirmationMessage.js +3 -3
  118. package/dist/src/ui/components/messages/ToolConfirmationMessage.js.map +1 -1
  119. package/dist/src/ui/components/messages/ToolConfirmationMessage.test.js +0 -8
  120. package/dist/src/ui/components/messages/ToolConfirmationMessage.test.js.map +1 -1
  121. package/dist/src/ui/components/shared/MaxSizedBox.js.map +1 -1
  122. package/dist/src/ui/components/shared/text-buffer.js +35 -51
  123. package/dist/src/ui/components/shared/text-buffer.js.map +1 -1
  124. package/dist/src/ui/contexts/KeypressContext.js +255 -42
  125. package/dist/src/ui/contexts/KeypressContext.js.map +1 -1
  126. package/dist/src/ui/contexts/KeypressContext.test.js +115 -1
  127. package/dist/src/ui/contexts/KeypressContext.test.js.map +1 -1
  128. package/dist/src/ui/hooks/slashCommandProcessor.js +11 -6
  129. package/dist/src/ui/hooks/slashCommandProcessor.js.map +1 -1
  130. package/dist/src/ui/hooks/useFolderTrust.js +6 -4
  131. package/dist/src/ui/hooks/useFolderTrust.js.map +1 -1
  132. package/dist/src/ui/hooks/useGeminiStream.d.ts +3 -2
  133. package/dist/src/ui/hooks/useGeminiStream.js +31 -3
  134. package/dist/src/ui/hooks/useGeminiStream.js.map +1 -1
  135. package/dist/src/ui/hooks/useIdeTrustListener.d.ts +14 -0
  136. package/dist/src/ui/hooks/useIdeTrustListener.js +39 -0
  137. package/dist/src/ui/hooks/useIdeTrustListener.js.map +1 -0
  138. package/dist/src/ui/hooks/useInputHistoryStore.d.ts +19 -0
  139. package/dist/src/ui/hooks/useInputHistoryStore.js +81 -0
  140. package/dist/src/ui/hooks/useInputHistoryStore.js.map +1 -0
  141. package/dist/src/ui/hooks/useInputHistoryStore.test.d.ts +6 -0
  142. package/dist/src/ui/hooks/useInputHistoryStore.test.js +234 -0
  143. package/dist/src/ui/hooks/useInputHistoryStore.test.js.map +1 -0
  144. package/dist/src/ui/hooks/useLoadingIndicator.d.ts +1 -1
  145. package/dist/src/ui/hooks/useLoadingIndicator.js +2 -2
  146. package/dist/src/ui/hooks/useLoadingIndicator.js.map +1 -1
  147. package/dist/src/ui/hooks/useLoadingIndicator.test.js +2 -2
  148. package/dist/src/ui/hooks/useLoadingIndicator.test.js.map +1 -1
  149. package/dist/src/ui/hooks/usePhraseCycler.d.ts +1 -1
  150. package/dist/src/ui/hooks/usePhraseCycler.js +11 -8
  151. package/dist/src/ui/hooks/usePhraseCycler.js.map +1 -1
  152. package/dist/src/ui/hooks/usePrivacySettings.d.ts +1 -1
  153. package/dist/src/ui/hooks/usePrivacySettings.js +8 -13
  154. package/dist/src/ui/hooks/usePrivacySettings.js.map +1 -1
  155. package/dist/src/ui/hooks/usePrivacySettings.test.js +33 -97
  156. package/dist/src/ui/hooks/usePrivacySettings.test.js.map +1 -1
  157. package/dist/src/ui/hooks/useSlashCompletion.js +263 -67
  158. package/dist/src/ui/hooks/useSlashCompletion.js.map +1 -1
  159. package/dist/src/ui/hooks/useSlashCompletion.test.d.ts +4 -1
  160. package/dist/src/ui/hooks/useSlashCompletion.test.js +452 -59
  161. package/dist/src/ui/hooks/useSlashCompletion.test.js.map +1 -1
  162. package/dist/src/ui/hooks/useToolScheduler.test.js +57 -59
  163. package/dist/src/ui/hooks/useToolScheduler.test.js.map +1 -1
  164. package/dist/src/ui/keyMatchers.test.js +9 -0
  165. package/dist/src/ui/keyMatchers.test.js.map +1 -1
  166. package/dist/src/ui/utils/MarkdownDisplay.test.js +2 -2
  167. package/dist/src/ui/utils/MarkdownDisplay.test.js.map +1 -1
  168. package/dist/src/ui/utils/highlight.d.ts +10 -0
  169. package/dist/src/ui/utils/highlight.js +41 -0
  170. package/dist/src/ui/utils/highlight.js.map +1 -0
  171. package/dist/src/ui/utils/highlight.test.d.ts +6 -0
  172. package/dist/src/ui/utils/highlight.test.js +93 -0
  173. package/dist/src/ui/utils/highlight.test.js.map +1 -0
  174. package/dist/src/ui/utils/platformConstants.d.ts +24 -1
  175. package/dist/src/ui/utils/platformConstants.js +26 -1
  176. package/dist/src/ui/utils/platformConstants.js.map +1 -1
  177. package/dist/src/utils/deepMerge.d.ts +10 -0
  178. package/dist/src/utils/deepMerge.js +58 -0
  179. package/dist/src/utils/deepMerge.js.map +1 -0
  180. package/dist/src/utils/deepMerge.test.d.ts +6 -0
  181. package/dist/src/utils/deepMerge.test.js +143 -0
  182. package/dist/src/utils/deepMerge.test.js.map +1 -0
  183. package/dist/src/utils/envVarResolver.d.ts +39 -0
  184. package/dist/src/utils/envVarResolver.js +97 -0
  185. package/dist/src/utils/envVarResolver.js.map +1 -0
  186. package/dist/src/utils/envVarResolver.test.d.ts +6 -0
  187. package/dist/src/utils/envVarResolver.test.js +221 -0
  188. package/dist/src/utils/envVarResolver.test.js.map +1 -0
  189. package/dist/src/utils/userStartupWarnings.d.ts +1 -1
  190. package/dist/src/utils/userStartupWarnings.js +1 -1
  191. package/dist/src/utils/userStartupWarnings.js.map +1 -1
  192. package/dist/src/validateNonInterActiveAuth.d.ts +2 -1
  193. package/dist/src/validateNonInterActiveAuth.js +11 -2
  194. package/dist/src/validateNonInterActiveAuth.js.map +1 -1
  195. package/dist/src/zed-integration/zedIntegration.js +7 -5
  196. package/dist/src/zed-integration/zedIntegration.js.map +1 -1
  197. package/dist/tsconfig.tsbuildinfo +1 -1
  198. package/package.json +4 -7
@@ -7,65 +7,93 @@ import * as fs from 'node:fs';
7
7
  import * as path from 'node:path';
8
8
  import { homedir, platform } from 'node:os';
9
9
  import * as dotenv from 'dotenv';
10
- import { GEMINI_CONFIG_DIR as GEMINI_DIR, getErrorMessage, Storage, } from '@google/gemini-cli-core';
10
+ import process from 'node:process';
11
+ import { FatalConfigError, GEMINI_CONFIG_DIR as GEMINI_DIR, getErrorMessage, Storage, } from '@google/gemini-cli-core';
11
12
  import stripJsonComments from 'strip-json-comments';
12
13
  import { DefaultLight } from '../ui/themes/default-light.js';
13
14
  import { DefaultDark } from '../ui/themes/default.js';
14
15
  import { isWorkspaceTrusted } from './trustedFolders.js';
15
- import { mergeWith } from 'lodash-es';
16
+ import { SETTINGS_SCHEMA, } from './settingsSchema.js';
17
+ import { resolveEnvVarsInObject } from '../utils/envVarResolver.js';
18
+ import { customDeepMerge } from '../utils/deepMerge.js';
19
+ function getMergeStrategyForPath(path) {
20
+ let current = undefined;
21
+ let currentSchema = SETTINGS_SCHEMA;
22
+ for (const key of path) {
23
+ if (!currentSchema || !currentSchema[key]) {
24
+ return undefined;
25
+ }
26
+ current = currentSchema[key];
27
+ currentSchema = current.properties;
28
+ }
29
+ return current?.mergeStrategy;
30
+ }
16
31
  export const SETTINGS_DIRECTORY_NAME = '.gemini';
17
32
  export const USER_SETTINGS_PATH = Storage.getGlobalSettingsPath();
18
33
  export const USER_SETTINGS_DIR = path.dirname(USER_SETTINGS_PATH);
19
34
  export const DEFAULT_EXCLUDED_ENV_VARS = ['DEBUG', 'DEBUG_MODE'];
20
35
  const MIGRATE_V2_OVERWRITE = false;
21
36
  const MIGRATION_MAP = {
22
- preferredEditor: 'general.preferredEditor',
23
- vimMode: 'general.vimMode',
24
- disableAutoUpdate: 'general.disableAutoUpdate',
25
- disableUpdateNag: 'general.disableUpdateNag',
37
+ accessibility: 'ui.accessibility',
38
+ allowedTools: 'tools.allowed',
39
+ allowMCPServers: 'mcp.allowed',
40
+ autoAccept: 'tools.autoAccept',
41
+ autoConfigureMaxOldSpaceSize: 'advanced.autoConfigureMemory',
42
+ bugCommand: 'advanced.bugCommand',
43
+ chatCompression: 'model.chatCompression',
26
44
  checkpointing: 'general.checkpointing',
27
- theme: 'ui.theme',
45
+ coreTools: 'tools.core',
46
+ contextFileName: 'context.fileName',
28
47
  customThemes: 'ui.customThemes',
48
+ debugKeystrokeLogging: 'general.debugKeystrokeLogging',
49
+ disableAutoUpdate: 'general.disableAutoUpdate',
50
+ disableUpdateNag: 'general.disableUpdateNag',
51
+ dnsResolutionOrder: 'advanced.dnsResolutionOrder',
52
+ enablePromptCompletion: 'general.enablePromptCompletion',
53
+ enforcedAuthType: 'security.auth.enforcedType',
54
+ excludeTools: 'tools.exclude',
55
+ excludeMCPServers: 'mcp.excluded',
56
+ excludedProjectEnvVars: 'advanced.excludedEnvVars',
57
+ extensionManagement: 'advanced.extensionManagement',
58
+ extensions: 'extensions',
59
+ fileFiltering: 'context.fileFiltering',
60
+ folderTrustFeature: 'security.folderTrust.featureEnabled',
61
+ folderTrust: 'security.folderTrust.enabled',
62
+ hasSeenIdeIntegrationNudge: 'ide.hasSeenNudge',
29
63
  hideWindowTitle: 'ui.hideWindowTitle',
30
64
  hideTips: 'ui.hideTips',
31
65
  hideBanner: 'ui.hideBanner',
32
66
  hideFooter: 'ui.hideFooter',
67
+ hideCWD: 'ui.footer.hideCWD',
68
+ hideSandboxStatus: 'ui.footer.hideSandboxStatus',
69
+ hideModelInfo: 'ui.footer.hideModelInfo',
70
+ hideContextSummary: 'ui.hideContextSummary',
33
71
  showMemoryUsage: 'ui.showMemoryUsage',
34
72
  showLineNumbers: 'ui.showLineNumbers',
35
- accessibility: 'ui.accessibility',
73
+ showCitations: 'ui.showCitations',
36
74
  ideMode: 'ide.enabled',
37
- hasSeenIdeIntegrationNudge: 'ide.hasSeenNudge',
38
- usageStatisticsEnabled: 'privacy.usageStatisticsEnabled',
39
- telemetry: 'telemetry',
40
- model: 'model.name',
75
+ includeDirectories: 'context.includeDirectories',
76
+ loadMemoryFromIncludeDirectories: 'context.loadFromIncludeDirectories',
41
77
  maxSessionTurns: 'model.maxSessionTurns',
42
- summarizeToolOutput: 'model.summarizeToolOutput',
43
- chatCompression: 'model.chatCompression',
44
- skipNextSpeakerCheck: 'model.skipNextSpeakerCheck',
45
- contextFileName: 'context.fileName',
78
+ mcpServers: 'mcpServers',
79
+ mcpServerCommand: 'mcp.serverCommand',
46
80
  memoryImportFormat: 'context.importFormat',
47
81
  memoryDiscoveryMaxDirs: 'context.discoveryMaxDirs',
48
- includeDirectories: 'context.includeDirectories',
49
- loadMemoryFromIncludeDirectories: 'context.loadFromIncludeDirectories',
50
- fileFiltering: 'context.fileFiltering',
82
+ model: 'model.name',
83
+ preferredEditor: 'general.preferredEditor',
51
84
  sandbox: 'tools.sandbox',
85
+ selectedAuthType: 'security.auth.selectedType',
52
86
  shouldUseNodePtyShell: 'tools.usePty',
53
- allowedTools: 'tools.allowed',
54
- coreTools: 'tools.core',
55
- excludeTools: 'tools.exclude',
87
+ skipNextSpeakerCheck: 'model.skipNextSpeakerCheck',
88
+ summarizeToolOutput: 'model.summarizeToolOutput',
89
+ telemetry: 'telemetry',
90
+ theme: 'ui.theme',
56
91
  toolDiscoveryCommand: 'tools.discoveryCommand',
57
92
  toolCallCommand: 'tools.callCommand',
58
- mcpServerCommand: 'mcp.serverCommand',
59
- allowMCPServers: 'mcp.allowed',
60
- excludeMCPServers: 'mcp.excluded',
61
- folderTrustFeature: 'security.folderTrust.featureEnabled',
62
- folderTrust: 'security.folderTrust.enabled',
63
- selectedAuthType: 'security.auth.selectedType',
93
+ usageStatisticsEnabled: 'privacy.usageStatisticsEnabled',
64
94
  useExternalAuth: 'security.auth.useExternal',
65
- autoConfigureMaxOldSpaceSize: 'advanced.autoConfigureMemory',
66
- dnsResolutionOrder: 'advanced.dnsResolutionOrder',
67
- excludedProjectEnvVars: 'advanced.excludedEnvVars',
68
- bugCommand: 'advanced.bugCommand',
95
+ useRipgrep: 'tools.useRipgrep',
96
+ vimMode: 'general.vimMode',
69
97
  };
70
98
  export function getSystemSettingsPath() {
71
99
  if (process.env['GEMINI_CLI_SYSTEM_SETTINGS_PATH']) {
@@ -115,8 +143,24 @@ function setNestedProperty(obj, path, value) {
115
143
  }
116
144
  current[lastKey] = value;
117
145
  }
118
- function needsMigration(settings) {
119
- return !('general' in settings);
146
+ export function needsMigration(settings) {
147
+ // A file needs migration if it contains any top-level key that is moved to a
148
+ // nested location in V2.
149
+ const hasV1Keys = Object.entries(MIGRATION_MAP).some(([v1Key, v2Path]) => {
150
+ if (v1Key === v2Path || !(v1Key in settings)) {
151
+ return false;
152
+ }
153
+ // If a key exists that is both a V1 key and a V2 container (like 'model'),
154
+ // we need to check the type. If it's an object, it's a V2 container and not
155
+ // a V1 key that needs migration.
156
+ if (KNOWN_V2_CONTAINERS.has(v1Key) &&
157
+ typeof settings[v1Key] === 'object' &&
158
+ settings[v1Key] !== null) {
159
+ return false;
160
+ }
161
+ return true;
162
+ });
163
+ return hasV1Keys;
120
164
  }
121
165
  function migrateSettingsToV2(flatSettings) {
122
166
  if (!needsMigration(flatSettings)) {
@@ -200,7 +244,6 @@ function mergeSettings(system, systemDefaults, user, workspace, isTrusted) {
200
244
  }
201
245
  : {
202
246
  ...restOfWorkspace,
203
- security: {},
204
247
  };
205
248
  // Settings are merged with the following precedence (last one wins for
206
249
  // single values):
@@ -208,144 +251,15 @@ function mergeSettings(system, systemDefaults, user, workspace, isTrusted) {
208
251
  // 2. User Settings
209
252
  // 3. Workspace Settings
210
253
  // 4. System Settings (as overrides)
211
- //
212
- // For properties that are arrays (e.g., includeDirectories), the arrays
213
- // are concatenated. For objects (e.g., customThemes), they are merged.
214
- return {
215
- ...systemDefaults,
216
- ...user,
217
- ...safeWorkspaceWithoutFolderTrust,
218
- ...system,
219
- general: {
220
- ...(systemDefaults.general || {}),
221
- ...(user.general || {}),
222
- ...(safeWorkspaceWithoutFolderTrust.general || {}),
223
- ...(system.general || {}),
224
- },
225
- ui: {
226
- ...(systemDefaults.ui || {}),
227
- ...(user.ui || {}),
228
- ...(safeWorkspaceWithoutFolderTrust.ui || {}),
229
- ...(system.ui || {}),
230
- customThemes: {
231
- ...(systemDefaults.ui?.customThemes || {}),
232
- ...(user.ui?.customThemes || {}),
233
- ...(safeWorkspaceWithoutFolderTrust.ui?.customThemes || {}),
234
- ...(system.ui?.customThemes || {}),
235
- },
236
- },
237
- ide: {
238
- ...(systemDefaults.ide || {}),
239
- ...(user.ide || {}),
240
- ...(safeWorkspaceWithoutFolderTrust.ide || {}),
241
- ...(system.ide || {}),
242
- },
243
- privacy: {
244
- ...(systemDefaults.privacy || {}),
245
- ...(user.privacy || {}),
246
- ...(safeWorkspaceWithoutFolderTrust.privacy || {}),
247
- ...(system.privacy || {}),
248
- },
249
- telemetry: {
250
- ...(systemDefaults.telemetry || {}),
251
- ...(user.telemetry || {}),
252
- ...(safeWorkspaceWithoutFolderTrust.telemetry || {}),
253
- ...(system.telemetry || {}),
254
- },
255
- security: {
256
- ...(systemDefaults.security || {}),
257
- ...(user.security || {}),
258
- ...(safeWorkspaceWithoutFolderTrust.security || {}),
259
- ...(system.security || {}),
260
- },
261
- mcp: {
262
- ...(systemDefaults.mcp || {}),
263
- ...(user.mcp || {}),
264
- ...(safeWorkspaceWithoutFolderTrust.mcp || {}),
265
- ...(system.mcp || {}),
266
- },
267
- mcpServers: {
268
- ...(systemDefaults.mcpServers || {}),
269
- ...(user.mcpServers || {}),
270
- ...(safeWorkspaceWithoutFolderTrust.mcpServers || {}),
271
- ...(system.mcpServers || {}),
272
- },
273
- tools: {
274
- ...(systemDefaults.tools || {}),
275
- ...(user.tools || {}),
276
- ...(safeWorkspaceWithoutFolderTrust.tools || {}),
277
- ...(system.tools || {}),
278
- },
279
- context: {
280
- ...(systemDefaults.context || {}),
281
- ...(user.context || {}),
282
- ...(safeWorkspaceWithoutFolderTrust.context || {}),
283
- ...(system.context || {}),
284
- includeDirectories: [
285
- ...(systemDefaults.context?.includeDirectories || []),
286
- ...(user.context?.includeDirectories || []),
287
- ...(safeWorkspaceWithoutFolderTrust.context?.includeDirectories || []),
288
- ...(system.context?.includeDirectories || []),
289
- ],
290
- },
291
- model: {
292
- ...(systemDefaults.model || {}),
293
- ...(user.model || {}),
294
- ...(safeWorkspaceWithoutFolderTrust.model || {}),
295
- ...(system.model || {}),
296
- chatCompression: {
297
- ...(systemDefaults.model?.chatCompression || {}),
298
- ...(user.model?.chatCompression || {}),
299
- ...(safeWorkspaceWithoutFolderTrust.model?.chatCompression || {}),
300
- ...(system.model?.chatCompression || {}),
301
- },
302
- },
303
- advanced: {
304
- ...(systemDefaults.advanced || {}),
305
- ...(user.advanced || {}),
306
- ...(safeWorkspaceWithoutFolderTrust.advanced || {}),
307
- ...(system.advanced || {}),
308
- excludedEnvVars: [
309
- ...new Set([
310
- ...(systemDefaults.advanced?.excludedEnvVars || []),
311
- ...(user.advanced?.excludedEnvVars || []),
312
- ...(safeWorkspaceWithoutFolderTrust.advanced?.excludedEnvVars || []),
313
- ...(system.advanced?.excludedEnvVars || []),
314
- ]),
315
- ],
316
- },
317
- extensions: {
318
- ...(systemDefaults.extensions || {}),
319
- ...(user.extensions || {}),
320
- ...(safeWorkspaceWithoutFolderTrust.extensions || {}),
321
- ...(system.extensions || {}),
322
- disabled: [
323
- ...new Set([
324
- ...(systemDefaults.extensions?.disabled || []),
325
- ...(user.extensions?.disabled || []),
326
- ...(safeWorkspaceWithoutFolderTrust.extensions?.disabled || []),
327
- ...(system.extensions?.disabled || []),
328
- ]),
329
- ],
330
- workspacesWithMigrationNudge: [
331
- ...new Set([
332
- ...(systemDefaults.extensions?.workspacesWithMigrationNudge || []),
333
- ...(user.extensions?.workspacesWithMigrationNudge || []),
334
- ...(safeWorkspaceWithoutFolderTrust.extensions
335
- ?.workspacesWithMigrationNudge || []),
336
- ...(system.extensions?.workspacesWithMigrationNudge || []),
337
- ]),
338
- ],
339
- },
340
- };
254
+ return customDeepMerge(getMergeStrategyForPath, {}, // Start with an empty object
255
+ systemDefaults, user, safeWorkspaceWithoutFolderTrust, system);
341
256
  }
342
257
  export class LoadedSettings {
343
- constructor(system, systemDefaults, user, workspace, errors, isTrusted, migratedInMemorScopes) {
258
+ constructor(system, systemDefaults, user, workspace, isTrusted, migratedInMemorScopes) {
344
259
  this.system = system;
345
260
  this.systemDefaults = systemDefaults;
346
261
  this.user = user;
347
262
  this.workspace = workspace;
348
- this.errors = errors;
349
263
  this.isTrusted = isTrusted;
350
264
  this.migratedInMemorScopes = migratedInMemorScopes;
351
265
  this._merged = this.computeMergedSettings();
@@ -354,7 +268,6 @@ export class LoadedSettings {
354
268
  systemDefaults;
355
269
  user;
356
270
  workspace;
357
- errors;
358
271
  isTrusted;
359
272
  migratedInMemorScopes;
360
273
  _merged;
@@ -385,40 +298,6 @@ export class LoadedSettings {
385
298
  saveSettings(settingsFile);
386
299
  }
387
300
  }
388
- function resolveEnvVarsInString(value) {
389
- const envVarRegex = /\$(?:(\w+)|{([^}]+)})/g; // Find $VAR_NAME or ${VAR_NAME}
390
- return value.replace(envVarRegex, (match, varName1, varName2) => {
391
- const varName = varName1 || varName2;
392
- if (process && process.env && typeof process.env[varName] === 'string') {
393
- return process.env[varName];
394
- }
395
- return match;
396
- });
397
- }
398
- function resolveEnvVarsInObject(obj) {
399
- if (obj === null ||
400
- obj === undefined ||
401
- typeof obj === 'boolean' ||
402
- typeof obj === 'number') {
403
- return obj;
404
- }
405
- if (typeof obj === 'string') {
406
- return resolveEnvVarsInString(obj);
407
- }
408
- if (Array.isArray(obj)) {
409
- return obj.map((item) => resolveEnvVarsInObject(item));
410
- }
411
- if (typeof obj === 'object') {
412
- const newObj = { ...obj };
413
- for (const key in newObj) {
414
- if (Object.prototype.hasOwnProperty.call(newObj, key)) {
415
- newObj[key] = resolveEnvVarsInObject(newObj[key]);
416
- }
417
- }
418
- return newObj;
419
- }
420
- return obj;
421
- }
422
301
  function findEnvFile(startDir) {
423
302
  let currentDir = path.resolve(startDir);
424
303
  while (true) {
@@ -472,33 +351,20 @@ export function setUpCloudShellEnvironment(envFilePath) {
472
351
  }
473
352
  export function loadEnvironment(settings) {
474
353
  const envFilePath = findEnvFile(process.cwd());
354
+ if (!isWorkspaceTrusted(settings)) {
355
+ return;
356
+ }
475
357
  // Cloud Shell environment variable handling
476
358
  if (process.env['CLOUD_SHELL'] === 'true') {
477
359
  setUpCloudShellEnvironment(envFilePath);
478
360
  }
479
- // If no settings provided, try to load workspace settings for exclusions
480
- let resolvedSettings = settings;
481
- if (!resolvedSettings) {
482
- const workspaceSettingsPath = new Storage(process.cwd()).getWorkspaceSettingsPath();
483
- try {
484
- if (fs.existsSync(workspaceSettingsPath)) {
485
- const workspaceContent = fs.readFileSync(workspaceSettingsPath, 'utf-8');
486
- const parsedWorkspaceSettings = JSON.parse(stripJsonComments(workspaceContent));
487
- resolvedSettings = resolveEnvVarsInObject(parsedWorkspaceSettings);
488
- }
489
- }
490
- catch (_e) {
491
- // Ignore errors loading workspace settings
492
- }
493
- }
494
361
  if (envFilePath) {
495
362
  // Manually parse and load environment variables to handle exclusions correctly.
496
363
  // This avoids modifying environment variables that were already set from the shell.
497
364
  try {
498
365
  const envFileContent = fs.readFileSync(envFilePath, 'utf-8');
499
366
  const parsedEnv = dotenv.parse(envFileContent);
500
- const excludedVars = resolvedSettings?.advanced?.excludedEnvVars ||
501
- DEFAULT_EXCLUDED_ENV_VARS;
367
+ const excludedVars = settings?.advanced?.excludedEnvVars || DEFAULT_EXCLUDED_ENV_VARS;
502
368
  const isProjectEnvFile = !envFilePath.includes(GEMINI_DIR);
503
369
  for (const key in parsedEnv) {
504
370
  if (Object.hasOwn(parsedEnv, key)) {
@@ -522,7 +388,7 @@ export function loadEnvironment(settings) {
522
388
  * Loads settings from user and workspace directories.
523
389
  * Project settings override user settings.
524
390
  */
525
- export function loadSettings(workspaceDir) {
391
+ export function loadSettings(workspaceDir = process.cwd()) {
526
392
  let systemSettings = {};
527
393
  let systemDefaultSettings = {};
528
394
  let userSettings = {};
@@ -609,7 +475,7 @@ export function loadSettings(workspaceDir) {
609
475
  workspaceSettings.ui.theme = DefaultDark.name;
610
476
  }
611
477
  // For the initial trust check, we can only use user and system settings.
612
- const initialTrustCheckSettings = mergeWith({}, systemSettings, userSettings);
478
+ const initialTrustCheckSettings = customDeepMerge(getMergeStrategyForPath, {}, systemSettings, userSettings);
613
479
  const isTrusted = isWorkspaceTrusted(initialTrustCheckSettings) ?? true;
614
480
  // Create a temporary merged settings object to pass to loadEnvironment.
615
481
  const tempMergedSettings = mergeSettings(systemSettings, systemDefaultSettings, userSettings, workspaceSettings, isTrusted);
@@ -621,7 +487,11 @@ export function loadSettings(workspaceDir) {
621
487
  userSettings = resolveEnvVarsInObject(userSettings);
622
488
  workspaceSettings = resolveEnvVarsInObject(workspaceSettings);
623
489
  // Create LoadedSettings first
624
- const loadedSettings = new LoadedSettings({
490
+ if (settingsErrors.length > 0) {
491
+ const errorMessages = settingsErrors.map((error) => `Error in ${error.path}: ${error.message}`);
492
+ throw new FatalConfigError(`${errorMessages.join('\n')}\nPlease fix the configuration file(s) and try again.`);
493
+ }
494
+ return new LoadedSettings({
625
495
  path: systemSettingsPath,
626
496
  settings: systemSettings,
627
497
  }, {
@@ -633,8 +503,7 @@ export function loadSettings(workspaceDir) {
633
503
  }, {
634
504
  path: workspaceSettingsPath,
635
505
  settings: workspaceSettings,
636
- }, settingsErrors, isTrusted, migratedInMemorScopes);
637
- return loadedSettings;
506
+ }, isTrusted, migratedInMemorScopes);
638
507
  }
639
508
  export function saveSettings(settingsFile) {
640
509
  try {
@@ -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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"}