@google/gemini-cli 0.32.0-preview.0 → 0.33.0-preview.0

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 (239) hide show
  1. package/README.md +11 -9
  2. package/dist/package.json +3 -3
  3. package/dist/src/config/config.js +6 -1
  4. package/dist/src/config/config.js.map +1 -1
  5. package/dist/src/config/config.test.js +70 -1
  6. package/dist/src/config/config.test.js.map +1 -1
  7. package/dist/src/config/extension-manager.js +1 -0
  8. package/dist/src/config/extension-manager.js.map +1 -1
  9. package/dist/src/config/extension.d.ts +9 -0
  10. package/dist/src/config/extension.js.map +1 -1
  11. package/dist/src/config/sandboxConfig.js +3 -1
  12. package/dist/src/config/sandboxConfig.js.map +1 -1
  13. package/dist/src/config/settings.d.ts +0 -2
  14. package/dist/src/config/settings.js.map +1 -1
  15. package/dist/src/config/settingsSchema.d.ts +9 -13
  16. package/dist/src/config/settingsSchema.js +5 -13
  17. package/dist/src/config/settingsSchema.js.map +1 -1
  18. package/dist/src/gemini.js +1 -1
  19. package/dist/src/gemini.js.map +1 -1
  20. package/dist/src/generated/git-commit.d.ts +2 -2
  21. package/dist/src/generated/git-commit.js +2 -2
  22. package/dist/src/test-utils/render.js +5 -1
  23. package/dist/src/test-utils/render.js.map +1 -1
  24. package/dist/src/ui/AppContainer.js +1 -18
  25. package/dist/src/ui/AppContainer.js.map +1 -1
  26. package/dist/src/ui/commands/extensionsCommand.js +3 -1
  27. package/dist/src/ui/commands/extensionsCommand.js.map +1 -1
  28. package/dist/src/ui/commands/extensionsCommand.test.js +45 -0
  29. package/dist/src/ui/commands/extensionsCommand.test.js.map +1 -1
  30. package/dist/src/ui/commands/hooksCommand.js +12 -8
  31. package/dist/src/ui/commands/hooksCommand.js.map +1 -1
  32. package/dist/src/ui/commands/hooksCommand.test.js +15 -23
  33. package/dist/src/ui/commands/hooksCommand.test.js.map +1 -1
  34. package/dist/src/ui/commands/planCommand.js +33 -3
  35. package/dist/src/ui/commands/planCommand.js.map +1 -1
  36. package/dist/src/ui/commands/planCommand.test.js +29 -1
  37. package/dist/src/ui/commands/planCommand.test.js.map +1 -1
  38. package/dist/src/ui/components/AgentConfigDialog.js +17 -33
  39. package/dist/src/ui/components/AgentConfigDialog.js.map +1 -1
  40. package/dist/src/ui/components/AppHeader.d.ts +1 -1
  41. package/dist/src/ui/components/AppHeader.js +15 -8
  42. package/dist/src/ui/components/AppHeader.js.map +1 -1
  43. package/dist/src/ui/components/AppHeader.test.js +7 -0
  44. package/dist/src/ui/components/AppHeader.test.js.map +1 -1
  45. package/dist/src/ui/components/ContextUsageDisplay.d.ts +1 -1
  46. package/dist/src/ui/components/ContextUsageDisplay.js +15 -3
  47. package/dist/src/ui/components/ContextUsageDisplay.js.map +1 -1
  48. package/dist/src/ui/components/ContextUsageDisplay.test.js +25 -19
  49. package/dist/src/ui/components/ContextUsageDisplay.test.js.map +1 -1
  50. package/dist/src/ui/components/DetailedMessagesDisplay.js +1 -6
  51. package/dist/src/ui/components/DetailedMessagesDisplay.js.map +1 -1
  52. package/dist/src/ui/components/DetailedMessagesDisplay.test.js +2 -2
  53. package/dist/src/ui/components/DetailedMessagesDisplay.test.js.map +1 -1
  54. package/dist/src/ui/components/DialogManager.js +3 -19
  55. package/dist/src/ui/components/DialogManager.js.map +1 -1
  56. package/dist/src/ui/components/ExitPlanModeDialog.js +2 -1
  57. package/dist/src/ui/components/ExitPlanModeDialog.js.map +1 -1
  58. package/dist/src/ui/components/ExitPlanModeDialog.test.js +2 -13
  59. package/dist/src/ui/components/ExitPlanModeDialog.test.js.map +1 -1
  60. package/dist/src/ui/components/Footer.js +3 -1
  61. package/dist/src/ui/components/Footer.js.map +1 -1
  62. package/dist/src/ui/components/Footer.test.js +41 -6
  63. package/dist/src/ui/components/Footer.test.js.map +1 -1
  64. package/dist/src/ui/components/HistoryItemDisplay.js +2 -3
  65. package/dist/src/ui/components/HistoryItemDisplay.js.map +1 -1
  66. package/dist/src/ui/components/HooksDialog.d.ts +36 -0
  67. package/dist/src/ui/components/HooksDialog.js +81 -0
  68. package/dist/src/ui/components/HooksDialog.js.map +1 -0
  69. package/dist/src/ui/components/HooksDialog.test.js +187 -0
  70. package/dist/src/ui/components/HooksDialog.test.js.map +1 -0
  71. package/dist/src/ui/components/MainContent.js +2 -1
  72. package/dist/src/ui/components/MainContent.js.map +1 -1
  73. package/dist/src/ui/components/SettingsDialog.d.ts +1 -5
  74. package/dist/src/ui/components/SettingsDialog.js +90 -254
  75. package/dist/src/ui/components/SettingsDialog.js.map +1 -1
  76. package/dist/src/ui/components/SettingsDialog.test.js +127 -105
  77. package/dist/src/ui/components/SettingsDialog.test.js.map +1 -1
  78. package/dist/src/ui/components/StatusDisplay.test.js +5 -4
  79. package/dist/src/ui/components/StatusDisplay.test.js.map +1 -1
  80. package/dist/src/ui/components/Tips.d.ts +1 -1
  81. package/dist/src/ui/components/Tips.js +1 -1
  82. package/dist/src/ui/components/Tips.js.map +1 -1
  83. package/dist/src/ui/components/Tips.test.d.ts +1 -1
  84. package/dist/src/ui/components/Tips.test.js +6 -7
  85. package/dist/src/ui/components/Tips.test.js.map +1 -1
  86. package/dist/src/ui/components/UserIdentity.d.ts +1 -1
  87. package/dist/src/ui/components/UserIdentity.js +10 -12
  88. package/dist/src/ui/components/UserIdentity.js.map +1 -1
  89. package/dist/src/ui/components/UserIdentity.test.js +23 -10
  90. package/dist/src/ui/components/UserIdentity.test.js.map +1 -1
  91. package/dist/src/ui/components/messages/InfoMessage.d.ts +1 -0
  92. package/dist/src/ui/components/messages/InfoMessage.js +2 -2
  93. package/dist/src/ui/components/messages/InfoMessage.js.map +1 -1
  94. package/dist/src/ui/components/messages/SubagentProgressDisplay.d.ts +11 -0
  95. package/dist/src/ui/components/messages/SubagentProgressDisplay.js +73 -0
  96. package/dist/src/ui/components/messages/SubagentProgressDisplay.js.map +1 -0
  97. package/dist/src/ui/components/messages/SubagentProgressDisplay.test.d.ts +6 -0
  98. package/dist/src/ui/components/messages/SubagentProgressDisplay.test.js +158 -0
  99. package/dist/src/ui/components/messages/SubagentProgressDisplay.test.js.map +1 -0
  100. package/dist/src/ui/components/messages/ToolGroupMessage.js +1 -0
  101. package/dist/src/ui/components/messages/ToolGroupMessage.js.map +1 -1
  102. package/dist/src/ui/components/messages/ToolResultDisplay.js +5 -0
  103. package/dist/src/ui/components/messages/ToolResultDisplay.js.map +1 -1
  104. package/dist/src/ui/components/shared/BaseSettingsDialog.d.ts +5 -2
  105. package/dist/src/ui/components/shared/BaseSettingsDialog.js +3 -2
  106. package/dist/src/ui/components/shared/BaseSettingsDialog.js.map +1 -1
  107. package/dist/src/ui/components/shared/BaseSettingsDialog.test.js +24 -0
  108. package/dist/src/ui/components/shared/BaseSettingsDialog.test.js.map +1 -1
  109. package/dist/src/ui/components/views/ExtensionRegistryView.d.ts +1 -2
  110. package/dist/src/ui/constants/tips.js +1 -1
  111. package/dist/src/ui/constants/tips.js.map +1 -1
  112. package/dist/src/ui/constants.d.ts +4 -0
  113. package/dist/src/ui/constants.js +4 -0
  114. package/dist/src/ui/constants.js.map +1 -1
  115. package/dist/src/ui/contexts/SettingsContext.js +2 -1
  116. package/dist/src/ui/contexts/SettingsContext.js.map +1 -1
  117. package/dist/src/ui/contexts/UIStateContext.d.ts +0 -2
  118. package/dist/src/ui/contexts/UIStateContext.js.map +1 -1
  119. package/dist/src/ui/contexts/VimModeContext.d.ts +1 -3
  120. package/dist/src/ui/contexts/VimModeContext.js +7 -16
  121. package/dist/src/ui/contexts/VimModeContext.js.map +1 -1
  122. package/dist/src/ui/hooks/toolMapping.js +1 -0
  123. package/dist/src/ui/hooks/toolMapping.js.map +1 -1
  124. package/dist/src/ui/hooks/useGeminiStream.js +16 -13
  125. package/dist/src/ui/hooks/useGeminiStream.js.map +1 -1
  126. package/dist/src/ui/hooks/useGeminiStream.test.js +31 -2
  127. package/dist/src/ui/hooks/useGeminiStream.test.js.map +1 -1
  128. package/dist/src/ui/hooks/useLoadingIndicator.d.ts +1 -1
  129. package/dist/src/ui/hooks/useLoadingIndicator.js +1 -1
  130. package/dist/src/ui/hooks/useLoadingIndicator.js.map +1 -1
  131. package/dist/src/ui/hooks/useTerminalTheme.js +6 -3
  132. package/dist/src/ui/hooks/useTerminalTheme.js.map +1 -1
  133. package/dist/src/ui/hooks/useTerminalTheme.test.js +19 -0
  134. package/dist/src/ui/hooks/useTerminalTheme.test.js.map +1 -1
  135. package/dist/src/ui/hooks/useToolScheduler.js +26 -12
  136. package/dist/src/ui/hooks/useToolScheduler.js.map +1 -1
  137. package/dist/src/ui/hooks/useToolScheduler.test.js +101 -8
  138. package/dist/src/ui/hooks/useToolScheduler.test.js.map +1 -1
  139. package/dist/src/ui/themes/theme-manager.d.ts +26 -4
  140. package/dist/src/ui/themes/theme-manager.js +40 -7
  141. package/dist/src/ui/themes/theme-manager.js.map +1 -1
  142. package/dist/src/ui/themes/theme-manager.test.js +2 -1
  143. package/dist/src/ui/themes/theme-manager.test.js.map +1 -1
  144. package/dist/src/ui/types.d.ts +3 -17
  145. package/dist/src/ui/types.js +0 -1
  146. package/dist/src/ui/types.js.map +1 -1
  147. package/dist/src/ui/utils/commandUtils.d.ts +6 -2
  148. package/dist/src/ui/utils/commandUtils.js +12 -5
  149. package/dist/src/ui/utils/commandUtils.js.map +1 -1
  150. package/dist/src/ui/utils/commandUtils.test.js +21 -7
  151. package/dist/src/ui/utils/commandUtils.test.js.map +1 -1
  152. package/dist/src/utils/agentSettings.d.ts +3 -11
  153. package/dist/src/utils/agentSettings.js +23 -81
  154. package/dist/src/utils/agentSettings.js.map +1 -1
  155. package/dist/src/{ui/components/SessionRetentionWarningDialog.test.d.ts → utils/agentSettings.test.d.ts} +0 -2
  156. package/dist/src/utils/agentSettings.test.js +111 -0
  157. package/dist/src/utils/agentSettings.test.js.map +1 -0
  158. package/dist/src/utils/dialogScopeUtils.d.ts +6 -2
  159. package/dist/src/utils/dialogScopeUtils.js +3 -3
  160. package/dist/src/utils/dialogScopeUtils.js.map +1 -1
  161. package/dist/src/utils/dialogScopeUtils.test.js +5 -5
  162. package/dist/src/utils/dialogScopeUtils.test.js.map +1 -1
  163. package/dist/src/utils/featureToggleUtils.d.ts +55 -0
  164. package/dist/src/utils/featureToggleUtils.js +95 -0
  165. package/dist/src/utils/featureToggleUtils.js.map +1 -0
  166. package/dist/src/utils/featureToggleUtils.test.d.ts +6 -0
  167. package/dist/src/utils/featureToggleUtils.test.js +126 -0
  168. package/dist/src/utils/featureToggleUtils.test.js.map +1 -0
  169. package/dist/src/utils/handleAutoUpdate.d.ts +7 -0
  170. package/dist/src/utils/handleAutoUpdate.js +41 -0
  171. package/dist/src/utils/handleAutoUpdate.js.map +1 -1
  172. package/dist/src/utils/handleAutoUpdate.test.js +52 -1
  173. package/dist/src/utils/handleAutoUpdate.test.js.map +1 -1
  174. package/dist/src/utils/processUtils.js +2 -0
  175. package/dist/src/utils/processUtils.js.map +1 -1
  176. package/dist/src/utils/processUtils.test.js +7 -1
  177. package/dist/src/utils/processUtils.test.js.map +1 -1
  178. package/dist/src/utils/sessionCleanup.js +8 -0
  179. package/dist/src/utils/sessionCleanup.js.map +1 -1
  180. package/dist/src/utils/sessionCleanup.test.js +19 -0
  181. package/dist/src/utils/sessionCleanup.test.js.map +1 -1
  182. package/dist/src/utils/settingsUtils.d.ts +18 -91
  183. package/dist/src/utils/settingsUtils.js +127 -207
  184. package/dist/src/utils/settingsUtils.js.map +1 -1
  185. package/dist/src/utils/settingsUtils.test.js +78 -264
  186. package/dist/src/utils/settingsUtils.test.js.map +1 -1
  187. package/dist/src/utils/skillSettings.d.ts +4 -14
  188. package/dist/src/utils/skillSettings.js +32 -81
  189. package/dist/src/utils/skillSettings.js.map +1 -1
  190. package/dist/src/utils/skillSettings.test.d.ts +6 -0
  191. package/dist/src/utils/skillSettings.test.js +142 -0
  192. package/dist/src/utils/skillSettings.test.js.map +1 -0
  193. package/dist/src/zed-integration/acpResume.test.js +8 -0
  194. package/dist/src/zed-integration/acpResume.test.js.map +1 -1
  195. package/dist/src/zed-integration/commandHandler.d.ts +26 -0
  196. package/dist/src/zed-integration/commandHandler.js +102 -0
  197. package/dist/src/zed-integration/commandHandler.js.map +1 -0
  198. package/dist/src/zed-integration/commandHandler.test.d.ts +6 -0
  199. package/dist/src/zed-integration/commandHandler.test.js +25 -0
  200. package/dist/src/zed-integration/commandHandler.test.js.map +1 -0
  201. package/dist/src/zed-integration/commands/commandRegistry.d.ts +12 -0
  202. package/dist/src/zed-integration/commands/commandRegistry.js +26 -0
  203. package/dist/src/zed-integration/commands/commandRegistry.js.map +1 -0
  204. package/dist/src/zed-integration/commands/extensions.d.ts +57 -0
  205. package/dist/src/zed-integration/commands/extensions.js +320 -0
  206. package/dist/src/zed-integration/commands/extensions.js.map +1 -0
  207. package/dist/src/zed-integration/commands/init.d.ts +12 -0
  208. package/dist/src/zed-integration/commands/init.js +47 -0
  209. package/dist/src/zed-integration/commands/init.js.map +1 -0
  210. package/dist/src/zed-integration/commands/memory.d.ts +34 -0
  211. package/dist/src/zed-integration/commands/memory.js +83 -0
  212. package/dist/src/zed-integration/commands/memory.js.map +1 -0
  213. package/dist/src/zed-integration/commands/restore.d.ts +18 -0
  214. package/dist/src/zed-integration/commands/restore.js +140 -0
  215. package/dist/src/zed-integration/commands/restore.js.map +1 -0
  216. package/dist/src/zed-integration/commands/types.d.ts +31 -0
  217. package/dist/src/zed-integration/commands/types.js +7 -0
  218. package/dist/src/zed-integration/commands/types.js.map +1 -0
  219. package/dist/src/zed-integration/zedIntegration.d.ts +9 -2
  220. package/dist/src/zed-integration/zedIntegration.js +170 -8
  221. package/dist/src/zed-integration/zedIntegration.js.map +1 -1
  222. package/dist/src/zed-integration/zedIntegration.test.js +329 -2
  223. package/dist/src/zed-integration/zedIntegration.test.js.map +1 -1
  224. package/dist/tsconfig.tsbuildinfo +1 -1
  225. package/package.json +4 -4
  226. package/dist/src/ui/components/SessionRetentionWarningDialog.d.ts +0 -12
  227. package/dist/src/ui/components/SessionRetentionWarningDialog.js +0 -27
  228. package/dist/src/ui/components/SessionRetentionWarningDialog.js.map +0 -1
  229. package/dist/src/ui/components/SessionRetentionWarningDialog.test.js +0 -72
  230. package/dist/src/ui/components/SessionRetentionWarningDialog.test.js.map +0 -1
  231. package/dist/src/ui/components/views/HooksList.d.ts +0 -24
  232. package/dist/src/ui/components/views/HooksList.js +0 -28
  233. package/dist/src/ui/components/views/HooksList.js.map +0 -1
  234. package/dist/src/ui/hooks/useSessionRetentionCheck.d.ts +0 -12
  235. package/dist/src/ui/hooks/useSessionRetentionCheck.js +0 -57
  236. package/dist/src/ui/hooks/useSessionRetentionCheck.js.map +0 -1
  237. package/dist/src/ui/hooks/useSessionRetentionCheck.test.js +0 -169
  238. package/dist/src/ui/hooks/useSessionRetentionCheck.test.js.map +0 -1
  239. /package/dist/src/ui/{hooks/useSessionRetentionCheck.test.d.ts → components/HooksDialog.test.d.ts} +0 -0
@@ -1,24 +1,47 @@
1
1
  import { jsx as _jsx } from "react/jsx-runtime";
2
- import { useState, useEffect, useMemo, useCallback } from 'react';
2
+ import { useState, useMemo, useCallback, useEffect } from 'react';
3
3
  import { Text } from 'ink';
4
4
  import { AsyncFzf } from 'fzf';
5
5
  import { theme } from '../semantic-colors.js';
6
6
  import { SettingScope } from '../../config/settings.js';
7
7
  import { getScopeMessageForSetting } from '../../utils/dialogScopeUtils.js';
8
- import { getDialogSettingKeys, setPendingSettingValue, getDisplayValue, hasRestartRequiredSettings, saveModifiedSettings, getSettingDefinition, isDefaultValue, requiresRestart, getRestartRequiredFromModified, getEffectiveDefaultValue, setPendingSettingValueAny, getEffectiveValue, } from '../../utils/settingsUtils.js';
9
- import { useVimMode } from '../contexts/VimModeContext.js';
8
+ import { getDialogSettingKeys, getDisplayValue, getSettingDefinition, getDialogRestartRequiredSettings, getEffectiveValue, isInSettingsScope, getEditValue, parseEditedValue, } from '../../utils/settingsUtils.js';
9
+ import { useSettingsStore, } from '../contexts/SettingsContext.js';
10
10
  import { getCachedStringWidth } from '../utils/textUtils.js';
11
11
  import { TOGGLE_TYPES, } from '../../config/settingsSchema.js';
12
- import { coreEvents, debugLogger } from '@google/gemini-cli-core';
12
+ import { debugLogger } from '@google/gemini-cli-core';
13
13
  import { useSearchBuffer } from '../hooks/useSearchBuffer.js';
14
14
  import { BaseSettingsDialog, } from './shared/BaseSettingsDialog.js';
15
15
  const MAX_ITEMS_TO_SHOW = 8;
16
- export function SettingsDialog({ settings, onSelect, onRestartRequest, availableTerminalHeight, config, }) {
17
- // Get vim mode context to sync vim mode changes
18
- const { vimEnabled, toggleVimEnabled } = useVimMode();
19
- // Scope selector state (User by default)
16
+ // Create a snapshot of the initial per-scope state of Restart Required Settings
17
+ // This creates a nested map of the form
18
+ // restartRequiredSetting -> Map { scopeName -> value }
19
+ function getActiveRestartRequiredSettings(settings) {
20
+ const snapshot = new Map();
21
+ const scopes = [
22
+ ['User', settings.user.settings],
23
+ ['Workspace', settings.workspace.settings],
24
+ ['System', settings.system.settings],
25
+ ];
26
+ for (const key of getDialogRestartRequiredSettings()) {
27
+ const scopeMap = new Map();
28
+ for (const [scopeName, scopeSettings] of scopes) {
29
+ // Raw per-scope value (undefined if not in file)
30
+ const value = isInSettingsScope(key, scopeSettings)
31
+ ? getEffectiveValue(key, scopeSettings)
32
+ : undefined;
33
+ scopeMap.set(scopeName, JSON.stringify(value));
34
+ }
35
+ snapshot.set(key, scopeMap);
36
+ }
37
+ return snapshot;
38
+ }
39
+ export function SettingsDialog({ onSelect, onRestartRequest, availableTerminalHeight, }) {
40
+ // Reactive settings from store (re-renders on any settings change)
41
+ const { settings, setSetting } = useSettingsStore();
20
42
  const [selectedScope, setSelectedScope] = useState(SettingScope.User);
21
- const [showRestartPrompt, setShowRestartPrompt] = useState(false);
43
+ // Snapshot restart-required values at mount time for diff tracking
44
+ const [activeRestartRequiredSettings] = useState(() => getActiveRestartRequiredSettings(settings));
22
45
  // Search state
23
46
  const [searchQuery, setSearchQuery] = useState('');
24
47
  const [filteredKeys, setFilteredKeys] = useState(() => getDialogSettingKeys());
@@ -65,39 +88,32 @@ export function SettingsDialog({ settings, onSelect, onRestartRequest, available
65
88
  active = false;
66
89
  };
67
90
  }, [searchQuery, fzfInstance, searchMap]);
68
- // Local pending settings state for the selected scope
69
- const [pendingSettings, setPendingSettings] = useState(() =>
70
- // Deep clone to avoid mutation
71
- structuredClone(settings.forScope(selectedScope).settings));
72
- // Track which settings have been modified by the user
73
- const [modifiedSettings, setModifiedSettings] = useState(new Set());
74
- const [globalPendingChanges, setGlobalPendingChanges] = useState(new Map());
75
- // Track restart-required settings across scope changes
76
- const [_restartRequiredSettings, setRestartRequiredSettings] = useState(new Set());
77
- useEffect(() => {
78
- // Base settings for selected scope
79
- let updated = structuredClone(settings.forScope(selectedScope).settings);
80
- // Overlay globally pending (unsaved) changes so user sees their modifications in any scope
81
- const newModified = new Set();
82
- const newRestartRequired = new Set();
83
- for (const [key, value] of globalPendingChanges.entries()) {
84
- const def = getSettingDefinition(key);
85
- if (def?.type === 'boolean' && typeof value === 'boolean') {
86
- updated = setPendingSettingValue(key, value, updated);
87
- }
88
- else if ((def?.type === 'number' && typeof value === 'number') ||
89
- (def?.type === 'string' && typeof value === 'string')) {
90
- updated = setPendingSettingValueAny(key, value, updated);
91
+ // Track whether a restart is required to apply the changes in the Settings json file
92
+ // This does not care for inheritance
93
+ // It checks whether a proposed change from this UI to a settings.json file requires a restart to take effect in the app
94
+ const pendingRestartRequiredSettings = useMemo(() => {
95
+ const changed = new Set();
96
+ const scopes = [
97
+ ['User', settings.user.settings],
98
+ ['Workspace', settings.workspace.settings],
99
+ ['System', settings.system.settings],
100
+ ];
101
+ // Iterate through the nested map snapshot in activeRestartRequiredSettings, diff with current settings
102
+ for (const [key, initialScopeMap] of activeRestartRequiredSettings) {
103
+ for (const [scopeName, scopeSettings] of scopes) {
104
+ const currentValue = isInSettingsScope(key, scopeSettings)
105
+ ? getEffectiveValue(key, scopeSettings)
106
+ : undefined;
107
+ const initialJson = initialScopeMap.get(scopeName);
108
+ if (JSON.stringify(currentValue) !== initialJson) {
109
+ changed.add(key);
110
+ break; // one scope changed is enough
111
+ }
91
112
  }
92
- newModified.add(key);
93
- if (requiresRestart(key))
94
- newRestartRequired.add(key);
95
113
  }
96
- setPendingSettings(updated);
97
- setModifiedSettings(newModified);
98
- setRestartRequiredSettings(newRestartRequired);
99
- setShowRestartPrompt(newRestartRequired.size > 0);
100
- }, [selectedScope, settings, globalPendingChanges]);
114
+ return changed;
115
+ }, [settings, activeRestartRequiredSettings]);
116
+ const showRestartPrompt = pendingRestartRequiredSettings.size > 0;
101
117
  // Calculate max width for the left column (Label/Description) to keep values aligned or close
102
118
  const maxLabelOrDescriptionWidth = useMemo(() => {
103
119
  const allKeys = getDialogSettingKeys();
@@ -131,28 +147,28 @@ export function SettingsDialog({ settings, onSelect, onRestartRequest, available
131
147
  const definition = getSettingDefinition(key);
132
148
  const type = definition?.type ?? 'string';
133
149
  // Get the display value (with * indicator if modified)
134
- const displayValue = getDisplayValue(key, scopeSettings, mergedSettings, modifiedSettings, pendingSettings);
150
+ const displayValue = getDisplayValue(key, scopeSettings, mergedSettings);
135
151
  // Get the scope message (e.g., "(Modified in Workspace)")
136
152
  const scopeMessage = getScopeMessageForSetting(key, selectedScope, settings);
137
- // Check if the value is at default (grey it out)
138
- const isGreyedOut = isDefaultValue(key, scopeSettings);
139
- // Get raw value for edit mode initialization
140
- const rawValue = getEffectiveValue(key, pendingSettings, {});
153
+ // Grey out values that defer to defaults
154
+ const isGreyedOut = !isInSettingsScope(key, scopeSettings);
155
+ // Some settings can be edited by an inline editor
156
+ const rawValue = getEffectiveValue(key, scopeSettings);
157
+ // The inline editor needs a string but non primitive settings like Arrays and Objects exist
158
+ const editValue = getEditValue(type, rawValue);
141
159
  return {
142
160
  key,
143
161
  label: definition?.label || key,
144
162
  description: definition?.description,
145
- // eslint-disable-next-line @typescript-eslint/no-unsafe-type-assertion
146
- type: type,
163
+ type,
147
164
  displayValue,
148
165
  isGreyedOut,
149
166
  scopeMessage,
150
- // eslint-disable-next-line @typescript-eslint/no-unsafe-type-assertion
151
- rawValue: rawValue,
167
+ rawValue,
168
+ editValue,
152
169
  };
153
170
  });
154
- }, [settingKeys, selectedScope, settings, modifiedSettings, pendingSettings]);
155
- // Scope selection handler
171
+ }, [settingKeys, selectedScope, settings]);
156
172
  const handleScopeChange = useCallback((scope) => {
157
173
  setSelectedScope(scope);
158
174
  }, []);
@@ -162,17 +178,20 @@ export function SettingsDialog({ settings, onSelect, onRestartRequest, available
162
178
  if (!TOGGLE_TYPES.has(definition?.type)) {
163
179
  return;
164
180
  }
165
- const currentValue = getEffectiveValue(key, pendingSettings, {});
181
+ const scopeSettings = settings.forScope(selectedScope).settings;
182
+ const currentValue = getEffectiveValue(key, scopeSettings);
166
183
  let newValue;
167
184
  if (definition?.type === 'boolean') {
168
- // eslint-disable-next-line @typescript-eslint/no-unsafe-type-assertion
185
+ if (typeof currentValue !== 'boolean') {
186
+ return;
187
+ }
169
188
  newValue = !currentValue;
170
- setPendingSettings((prev) =>
171
- // eslint-disable-next-line @typescript-eslint/no-unsafe-type-assertion
172
- setPendingSettingValue(key, newValue, prev));
173
189
  }
174
190
  else if (definition?.type === 'enum' && definition.options) {
175
191
  const options = definition.options;
192
+ if (options.length === 0) {
193
+ return;
194
+ }
176
195
  const currentIndex = options?.findIndex((opt) => opt.value === currentValue);
177
196
  if (currentIndex !== -1 && currentIndex < options.length - 1) {
178
197
  newValue = options[currentIndex + 1].value;
@@ -180,222 +199,40 @@ export function SettingsDialog({ settings, onSelect, onRestartRequest, available
180
199
  else {
181
200
  newValue = options[0].value; // loop back to start.
182
201
  }
183
- setPendingSettings((prev) => setPendingSettingValueAny(key, newValue, prev));
184
- }
185
- if (!requiresRestart(key)) {
186
- const immediateSettings = new Set([key]);
187
- const currentScopeSettings = settings.forScope(selectedScope).settings;
188
- const immediateSettingsObject = setPendingSettingValueAny(key, newValue, currentScopeSettings);
189
- debugLogger.log(`[DEBUG SettingsDialog] Saving ${key} immediately with value:`, newValue);
190
- saveModifiedSettings(immediateSettings, immediateSettingsObject, settings, selectedScope);
191
- // Special handling for vim mode to sync with VimModeContext
192
- if (key === 'general.vimMode' && newValue !== vimEnabled) {
193
- // Call toggleVimEnabled to sync the VimModeContext local state
194
- toggleVimEnabled().catch((error) => {
195
- coreEvents.emitFeedback('error', 'Failed to toggle vim mode:', error);
196
- });
197
- }
198
- // Remove from modifiedSettings since it's now saved
199
- setModifiedSettings((prev) => {
200
- const updated = new Set(prev);
201
- updated.delete(key);
202
- return updated;
203
- });
204
- // Also remove from restart-required settings if it was there
205
- setRestartRequiredSettings((prev) => {
206
- const updated = new Set(prev);
207
- updated.delete(key);
208
- return updated;
209
- });
210
- // Remove from global pending changes if present
211
- setGlobalPendingChanges((prev) => {
212
- if (!prev.has(key))
213
- return prev;
214
- const next = new Map(prev);
215
- next.delete(key);
216
- return next;
217
- });
218
202
  }
219
203
  else {
220
- // For restart-required settings, track as modified
221
- setModifiedSettings((prev) => {
222
- const updated = new Set(prev).add(key);
223
- const needsRestart = hasRestartRequiredSettings(updated);
224
- debugLogger.log(`[DEBUG SettingsDialog] Modified settings:`, Array.from(updated), 'Needs restart:', needsRestart);
225
- if (needsRestart) {
226
- setShowRestartPrompt(true);
227
- setRestartRequiredSettings((prevRestart) => new Set(prevRestart).add(key));
228
- }
229
- return updated;
230
- });
231
- // Record pending change globally
232
- setGlobalPendingChanges((prev) => {
233
- const next = new Map(prev);
234
- // eslint-disable-next-line @typescript-eslint/no-unsafe-type-assertion
235
- next.set(key, newValue);
236
- return next;
237
- });
204
+ return;
238
205
  }
239
- }, [pendingSettings, settings, selectedScope, vimEnabled, toggleVimEnabled]);
240
- // Edit commit handler
206
+ debugLogger.log(`[DEBUG SettingsDialog] Saving ${key} immediately with value:`, newValue);
207
+ setSetting(selectedScope, key, newValue);
208
+ }, [settings, selectedScope, setSetting]);
209
+ // For inline editor
241
210
  const handleEditCommit = useCallback((key, newValue, _item) => {
242
211
  const definition = getSettingDefinition(key);
243
- const type = definition?.type;
244
- if (newValue.trim() === '' && type === 'number') {
245
- // Nothing entered for a number; cancel edit
212
+ const type = definition?.type ?? 'string';
213
+ const parsed = parseEditedValue(type, newValue);
214
+ if (parsed === null) {
246
215
  return;
247
216
  }
248
- let parsed;
249
- if (type === 'number') {
250
- const numParsed = Number(newValue.trim());
251
- if (Number.isNaN(numParsed)) {
252
- // Invalid number; cancel edit
253
- return;
254
- }
255
- parsed = numParsed;
256
- }
257
- else {
258
- // For strings, use the buffer as is.
259
- parsed = newValue;
260
- }
261
- // Update pending
262
- setPendingSettings((prev) => setPendingSettingValueAny(key, parsed, prev));
263
- if (!requiresRestart(key)) {
264
- const immediateSettings = new Set([key]);
265
- const currentScopeSettings = settings.forScope(selectedScope).settings;
266
- const immediateSettingsObject = setPendingSettingValueAny(key, parsed, currentScopeSettings);
267
- saveModifiedSettings(immediateSettings, immediateSettingsObject, settings, selectedScope);
268
- // Remove from modified sets if present
269
- setModifiedSettings((prev) => {
270
- const updated = new Set(prev);
271
- updated.delete(key);
272
- return updated;
273
- });
274
- setRestartRequiredSettings((prev) => {
275
- const updated = new Set(prev);
276
- updated.delete(key);
277
- return updated;
278
- });
279
- // Remove from global pending since it's immediately saved
280
- setGlobalPendingChanges((prev) => {
281
- if (!prev.has(key))
282
- return prev;
283
- const next = new Map(prev);
284
- next.delete(key);
285
- return next;
286
- });
287
- }
288
- else {
289
- // Mark as modified and needing restart
290
- setModifiedSettings((prev) => {
291
- const updated = new Set(prev).add(key);
292
- const needsRestart = hasRestartRequiredSettings(updated);
293
- if (needsRestart) {
294
- setShowRestartPrompt(true);
295
- setRestartRequiredSettings((prevRestart) => new Set(prevRestart).add(key));
296
- }
297
- return updated;
298
- });
299
- // Record pending change globally for persistence across scopes
300
- setGlobalPendingChanges((prev) => {
301
- const next = new Map(prev);
302
- next.set(key, parsed);
303
- return next;
304
- });
305
- }
306
- }, [settings, selectedScope]);
217
+ setSetting(selectedScope, key, parsed);
218
+ }, [selectedScope, setSetting]);
307
219
  // Clear/reset handler - removes the value from settings.json so it falls back to default
308
220
  const handleItemClear = useCallback((key, _item) => {
309
- const defaultValue = getEffectiveDefaultValue(key, config);
310
- // Update local pending state to show the default value
311
- if (typeof defaultValue === 'boolean') {
312
- setPendingSettings((prev) => setPendingSettingValue(key, defaultValue, prev));
313
- }
314
- else if (typeof defaultValue === 'number' ||
315
- typeof defaultValue === 'string') {
316
- setPendingSettings((prev) => setPendingSettingValueAny(key, defaultValue, prev));
317
- }
318
- // Clear the value from settings.json (set to undefined to remove the key)
319
- if (!requiresRestart(key)) {
320
- settings.setValue(selectedScope, key, undefined);
321
- // Special handling for vim mode
322
- if (key === 'general.vimMode') {
323
- const booleanDefaultValue = typeof defaultValue === 'boolean' ? defaultValue : false;
324
- if (booleanDefaultValue !== vimEnabled) {
325
- toggleVimEnabled().catch((error) => {
326
- coreEvents.emitFeedback('error', 'Failed to toggle vim mode:', error);
327
- });
328
- }
329
- }
330
- }
331
- // Remove from modified sets
332
- setModifiedSettings((prev) => {
333
- const updated = new Set(prev);
334
- updated.delete(key);
335
- return updated;
336
- });
337
- setRestartRequiredSettings((prev) => {
338
- const updated = new Set(prev);
339
- updated.delete(key);
340
- return updated;
341
- });
342
- setGlobalPendingChanges((prev) => {
343
- if (!prev.has(key))
344
- return prev;
345
- const next = new Map(prev);
346
- next.delete(key);
347
- return next;
348
- });
349
- // Update restart prompt
350
- setShowRestartPrompt((_prev) => {
351
- const remaining = getRestartRequiredFromModified(modifiedSettings);
352
- return remaining.filter((k) => k !== key).length > 0;
353
- });
354
- }, [
355
- config,
356
- settings,
357
- selectedScope,
358
- vimEnabled,
359
- toggleVimEnabled,
360
- modifiedSettings,
361
- ]);
362
- const saveRestartRequiredSettings = useCallback(() => {
363
- const restartRequiredSettings = getRestartRequiredFromModified(modifiedSettings);
364
- const restartRequiredSet = new Set(restartRequiredSettings);
365
- if (restartRequiredSet.size > 0) {
366
- saveModifiedSettings(restartRequiredSet, pendingSettings, settings, selectedScope);
367
- // Remove saved keys from global pending changes
368
- setGlobalPendingChanges((prev) => {
369
- if (prev.size === 0)
370
- return prev;
371
- const next = new Map(prev);
372
- for (const key of restartRequiredSet) {
373
- next.delete(key);
374
- }
375
- return next;
376
- });
377
- }
378
- }, [modifiedSettings, pendingSettings, settings, selectedScope]);
379
- // Close handler
221
+ setSetting(selectedScope, key, undefined);
222
+ }, [selectedScope, setSetting]);
380
223
  const handleClose = useCallback(() => {
381
- // Save any restart-required settings before closing
382
- saveRestartRequiredSettings();
383
224
  onSelect(undefined, selectedScope);
384
- }, [saveRestartRequiredSettings, onSelect, selectedScope]);
225
+ }, [onSelect, selectedScope]);
385
226
  // Custom key handler for restart key
386
227
  const handleKeyPress = useCallback((key, _currentItem) => {
387
228
  // 'r' key for restart
388
229
  if (showRestartPrompt && key.sequence === 'r') {
389
- saveRestartRequiredSettings();
390
- setShowRestartPrompt(false);
391
- setModifiedSettings(new Set());
392
- setRestartRequiredSettings(new Set());
393
230
  if (onRestartRequest)
394
231
  onRestartRequest();
395
232
  return true;
396
233
  }
397
234
  return false;
398
- }, [showRestartPrompt, onRestartRequest, saveRestartRequiredSettings]);
235
+ }, [showRestartPrompt, onRestartRequest]);
399
236
  // Calculate effective max items and scope visibility based on terminal height
400
237
  const { effectiveMaxItemsToShow, showScopeSelection, showSearch } = useMemo(() => {
401
238
  // Only show scope selector if we have a workspace
@@ -457,8 +294,7 @@ export function SettingsDialog({ settings, onSelect, onRestartRequest, available
457
294
  settings.workspace.path,
458
295
  showRestartPrompt,
459
296
  ]);
460
- // Footer content for restart prompt
461
- const footerContent = showRestartPrompt ? (_jsx(Text, { color: theme.status.warning, children: "To see changes, Gemini CLI must be restarted. Press r to exit and apply changes now." })) : null;
297
+ const footerContent = showRestartPrompt ? (_jsx(Text, { color: theme.status.warning, children: "Changes that require a restart have been modified. Press r to exit and apply changes now." })) : null;
462
298
  return (_jsx(BaseSettingsDialog, { title: "Settings", borderColor: showRestartPrompt ? theme.status.warning : undefined, searchEnabled: showSearch, searchBuffer: searchBuffer, items: items, showScopeSelector: showScopeSelection, selectedScope: selectedScope, onScopeChange: handleScopeChange, maxItemsToShow: effectiveMaxItemsToShow, maxLabelWidth: maxLabelOrDescriptionWidth, onItemToggle: handleItemToggle, onEditCommit: handleEditCommit, onItemClear: handleItemClear, onClose: handleClose, onKeyPress: handleKeyPress, footerContent: footerContent }));
463
299
  }
464
300
  //# sourceMappingURL=SettingsDialog.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"SettingsDialog.js","sourceRoot":"","sources":["../../../../src/ui/components/SettingsDialog.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"SettingsDialog.js","sourceRoot":"","sources":["../../../../src/ui/components/SettingsDialog.tsx"],"names":[],"mappings":"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"}