@google/gemini-cli 0.1.22 → 0.2.0-preview.1

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 (178) hide show
  1. package/README.md +32 -2
  2. package/dist/package.json +2 -2
  3. package/dist/src/config/config.d.ts +1 -0
  4. package/dist/src/config/config.js +15 -1
  5. package/dist/src/config/config.js.map +1 -1
  6. package/dist/src/config/extension.d.ts +0 -1
  7. package/dist/src/config/extension.js +3 -2
  8. package/dist/src/config/extension.js.map +1 -1
  9. package/dist/src/config/settings.d.ts +4 -3
  10. package/dist/src/config/settings.js +57 -49
  11. package/dist/src/config/settings.js.map +1 -1
  12. package/dist/src/config/settingsSchema.d.ts +69 -6
  13. package/dist/src/config/settingsSchema.js +69 -6
  14. package/dist/src/config/settingsSchema.js.map +1 -1
  15. package/dist/src/config/settingsSchema.test.js +2 -1
  16. package/dist/src/config/settingsSchema.test.js.map +1 -1
  17. package/dist/src/gemini.js +25 -2
  18. package/dist/src/gemini.js.map +1 -1
  19. package/dist/src/gemini.test.js +1 -1
  20. package/dist/src/gemini.test.js.map +1 -1
  21. package/dist/src/generated/git-commit.d.ts +2 -2
  22. package/dist/src/generated/git-commit.js +2 -2
  23. package/dist/src/generated/git-commit.js.map +1 -1
  24. package/dist/src/nonInteractiveCli.js +22 -22
  25. package/dist/src/nonInteractiveCli.js.map +1 -1
  26. package/dist/src/services/FileCommandLoader.js +4 -3
  27. package/dist/src/services/FileCommandLoader.js.map +1 -1
  28. package/dist/src/services/McpPromptLoader.d.ts +11 -1
  29. package/dist/src/services/McpPromptLoader.js +42 -16
  30. package/dist/src/services/McpPromptLoader.js.map +1 -1
  31. package/dist/src/services/McpPromptLoader.test.d.ts +6 -0
  32. package/dist/src/services/McpPromptLoader.test.js +114 -0
  33. package/dist/src/services/McpPromptLoader.test.js.map +1 -0
  34. package/dist/src/services/prompt-processors/shellProcessor.js +2 -10
  35. package/dist/src/services/prompt-processors/shellProcessor.js.map +1 -1
  36. package/dist/src/ui/App.js +52 -20
  37. package/dist/src/ui/App.js.map +1 -1
  38. package/dist/src/ui/commands/aboutCommand.js +2 -1
  39. package/dist/src/ui/commands/aboutCommand.js.map +1 -1
  40. package/dist/src/ui/commands/bugCommand.js +7 -1
  41. package/dist/src/ui/commands/bugCommand.js.map +1 -1
  42. package/dist/src/ui/commands/chatCommand.js +2 -1
  43. package/dist/src/ui/commands/chatCommand.js.map +1 -1
  44. package/dist/src/ui/commands/copyCommand.js +1 -1
  45. package/dist/src/ui/commands/copyCommand.js.map +1 -1
  46. package/dist/src/ui/commands/ideCommand.js +29 -11
  47. package/dist/src/ui/commands/ideCommand.js.map +1 -1
  48. package/dist/src/ui/commands/mcpCommand.js +6 -6
  49. package/dist/src/ui/commands/mcpCommand.js.map +1 -1
  50. package/dist/src/ui/commands/restoreCommand.js +2 -6
  51. package/dist/src/ui/commands/restoreCommand.js.map +1 -1
  52. package/dist/src/ui/commands/setupGithubCommand.d.ts +1 -0
  53. package/dist/src/ui/commands/setupGithubCommand.js +39 -1
  54. package/dist/src/ui/commands/setupGithubCommand.js.map +1 -1
  55. package/dist/src/ui/commands/setupGithubCommand.test.js +99 -1
  56. package/dist/src/ui/commands/setupGithubCommand.test.js.map +1 -1
  57. package/dist/src/ui/commands/toolsCommand.js +1 -1
  58. package/dist/src/ui/commands/toolsCommand.js.map +1 -1
  59. package/dist/src/ui/components/AuthDialog.test.js +10 -10
  60. package/dist/src/ui/components/AuthDialog.test.js.map +1 -1
  61. package/dist/src/ui/components/DetailedMessagesDisplay.js +1 -1
  62. package/dist/src/ui/components/DetailedMessagesDisplay.js.map +1 -1
  63. package/dist/src/ui/components/FolderTrustDialog.d.ts +1 -0
  64. package/dist/src/ui/components/FolderTrustDialog.js +9 -3
  65. package/dist/src/ui/components/FolderTrustDialog.js.map +1 -1
  66. package/dist/src/ui/components/FolderTrustDialog.test.js +40 -3
  67. package/dist/src/ui/components/FolderTrustDialog.test.js.map +1 -1
  68. package/dist/src/ui/components/Help.js +1 -1
  69. package/dist/src/ui/components/Help.js.map +1 -1
  70. package/dist/src/ui/components/InputPrompt.js +146 -14
  71. package/dist/src/ui/components/InputPrompt.js.map +1 -1
  72. package/dist/src/ui/components/SettingsDialog.js +363 -62
  73. package/dist/src/ui/components/SettingsDialog.js.map +1 -1
  74. package/dist/src/ui/components/SettingsDialog.test.js +168 -95
  75. package/dist/src/ui/components/SettingsDialog.test.js.map +1 -1
  76. package/dist/src/ui/components/StatsDisplay.js +9 -8
  77. package/dist/src/ui/components/StatsDisplay.js.map +1 -1
  78. package/dist/src/ui/components/messages/CompressionMessage.js +2 -1
  79. package/dist/src/ui/components/messages/CompressionMessage.js.map +1 -1
  80. package/dist/src/ui/components/messages/DiffRenderer.js +2 -1
  81. package/dist/src/ui/components/messages/DiffRenderer.js.map +1 -1
  82. package/dist/src/ui/components/messages/DiffRenderer.test.js +11 -10
  83. package/dist/src/ui/components/messages/DiffRenderer.test.js.map +1 -1
  84. package/dist/src/ui/components/messages/GeminiMessage.js +2 -1
  85. package/dist/src/ui/components/messages/GeminiMessage.js.map +1 -1
  86. package/dist/src/ui/components/messages/UserMessage.js +2 -1
  87. package/dist/src/ui/components/messages/UserMessage.js.map +1 -1
  88. package/dist/src/ui/components/shared/text-buffer.js +7 -45
  89. package/dist/src/ui/components/shared/text-buffer.js.map +1 -1
  90. package/dist/src/ui/constants.d.ts +2 -0
  91. package/dist/src/ui/constants.js +2 -0
  92. package/dist/src/ui/constants.js.map +1 -1
  93. package/dist/src/ui/contexts/KeypressContext.js +24 -25
  94. package/dist/src/ui/contexts/KeypressContext.js.map +1 -1
  95. package/dist/src/ui/contexts/KeypressContext.test.js +36 -37
  96. package/dist/src/ui/contexts/KeypressContext.test.js.map +1 -1
  97. package/dist/src/ui/contexts/SessionContext.d.ts +2 -0
  98. package/dist/src/ui/contexts/SessionContext.js.map +1 -1
  99. package/dist/src/ui/hooks/atCommandProcessor.js +1 -4
  100. package/dist/src/ui/hooks/atCommandProcessor.js.map +1 -1
  101. package/dist/src/ui/hooks/atCommandProcessor.test.js +30 -7
  102. package/dist/src/ui/hooks/atCommandProcessor.test.js.map +1 -1
  103. package/dist/src/ui/hooks/shellCommandProcessor.js +8 -13
  104. package/dist/src/ui/hooks/shellCommandProcessor.js.map +1 -1
  105. package/dist/src/ui/hooks/shellCommandProcessor.test.js +11 -15
  106. package/dist/src/ui/hooks/shellCommandProcessor.test.js.map +1 -1
  107. package/dist/src/ui/hooks/slashCommandProcessor.js +17 -5
  108. package/dist/src/ui/hooks/slashCommandProcessor.js.map +1 -1
  109. package/dist/src/ui/hooks/useAtCompletion.js +1 -0
  110. package/dist/src/ui/hooks/useAtCompletion.js.map +1 -1
  111. package/dist/src/ui/hooks/useCommandCompletion.d.ts +4 -1
  112. package/dist/src/ui/hooks/useCommandCompletion.js +29 -8
  113. package/dist/src/ui/hooks/useCommandCompletion.js.map +1 -1
  114. package/dist/src/ui/hooks/useFolderTrust.d.ts +1 -0
  115. package/dist/src/ui/hooks/useFolderTrust.js +16 -8
  116. package/dist/src/ui/hooks/useFolderTrust.js.map +1 -1
  117. package/dist/src/ui/hooks/useGeminiStream.js +30 -11
  118. package/dist/src/ui/hooks/useGeminiStream.js.map +1 -1
  119. package/dist/src/ui/hooks/useLogger.d.ts +2 -2
  120. package/dist/src/ui/hooks/useLogger.js +3 -3
  121. package/dist/src/ui/hooks/useLogger.js.map +1 -1
  122. package/dist/src/ui/hooks/useMessageQueue.d.ts +22 -0
  123. package/dist/src/ui/hooks/useMessageQueue.js +49 -0
  124. package/dist/src/ui/hooks/useMessageQueue.js.map +1 -0
  125. package/dist/src/ui/hooks/useMessageQueue.test.d.ts +6 -0
  126. package/dist/src/ui/hooks/useMessageQueue.test.js +158 -0
  127. package/dist/src/ui/hooks/useMessageQueue.test.js.map +1 -0
  128. package/dist/src/ui/hooks/usePrivacySettings.js +6 -2
  129. package/dist/src/ui/hooks/usePrivacySettings.js.map +1 -1
  130. package/dist/src/ui/hooks/usePrivacySettings.test.d.ts +6 -0
  131. package/dist/src/ui/hooks/usePrivacySettings.test.js +154 -0
  132. package/dist/src/ui/hooks/usePrivacySettings.test.js.map +1 -0
  133. package/dist/src/ui/hooks/usePromptCompletion.d.ts +23 -0
  134. package/dist/src/ui/hooks/usePromptCompletion.js +176 -0
  135. package/dist/src/ui/hooks/usePromptCompletion.js.map +1 -0
  136. package/dist/src/ui/hooks/useReactToolScheduler.js +0 -1
  137. package/dist/src/ui/hooks/useReactToolScheduler.js.map +1 -1
  138. package/dist/src/ui/hooks/useShellHistory.d.ts +2 -1
  139. package/dist/src/ui/hooks/useShellHistory.js +7 -8
  140. package/dist/src/ui/hooks/useShellHistory.js.map +1 -1
  141. package/dist/src/ui/hooks/useShellHistory.test.js +26 -1
  142. package/dist/src/ui/hooks/useShellHistory.test.js.map +1 -1
  143. package/dist/src/ui/hooks/useToolScheduler.test.js +5 -7
  144. package/dist/src/ui/hooks/useToolScheduler.test.js.map +1 -1
  145. package/dist/src/ui/utils/MarkdownDisplay.js +2 -1
  146. package/dist/src/ui/utils/MarkdownDisplay.js.map +1 -1
  147. package/dist/src/ui/utils/MarkdownDisplay.test.js +17 -16
  148. package/dist/src/ui/utils/MarkdownDisplay.test.js.map +1 -1
  149. package/dist/src/ui/utils/commandUtils.js +36 -11
  150. package/dist/src/ui/utils/commandUtils.js.map +1 -1
  151. package/dist/src/ui/utils/commandUtils.test.js +64 -19
  152. package/dist/src/ui/utils/commandUtils.test.js.map +1 -1
  153. package/dist/src/ui/utils/computeStats.js +3 -1
  154. package/dist/src/ui/utils/computeStats.js.map +1 -1
  155. package/dist/src/ui/utils/textUtils.d.ts +18 -0
  156. package/dist/src/ui/utils/textUtils.js +44 -0
  157. package/dist/src/ui/utils/textUtils.js.map +1 -1
  158. package/dist/src/utils/cleanup.js +3 -2
  159. package/dist/src/utils/cleanup.js.map +1 -1
  160. package/dist/src/utils/readStdin.js +57 -18
  161. package/dist/src/utils/readStdin.js.map +1 -1
  162. package/dist/src/utils/sandbox.d.ts +1 -1
  163. package/dist/src/utils/sandbox.js +7 -6
  164. package/dist/src/utils/sandbox.js.map +1 -1
  165. package/dist/src/utils/settingsUtils.d.ts +8 -0
  166. package/dist/src/utils/settingsUtils.js +16 -7
  167. package/dist/src/utils/settingsUtils.js.map +1 -1
  168. package/dist/src/utils/settingsUtils.test.js +6 -6
  169. package/dist/src/utils/settingsUtils.test.js.map +1 -1
  170. package/dist/src/zed-integration/acp.js +2 -1
  171. package/dist/src/zed-integration/acp.js.map +1 -1
  172. package/dist/src/zed-integration/fileSystemService.d.ts +19 -0
  173. package/dist/src/zed-integration/fileSystemService.js +43 -0
  174. package/dist/src/zed-integration/fileSystemService.js.map +1 -0
  175. package/dist/src/zed-integration/zedIntegration.js +17 -5
  176. package/dist/src/zed-integration/zedIntegration.js.map +1 -1
  177. package/dist/tsconfig.tsbuildinfo +1 -1
  178. package/package.json +3 -3
@@ -10,9 +10,11 @@ import { Colors } from '../colors.js';
10
10
  import { SettingScope, } from '../../config/settings.js';
11
11
  import { getScopeItems, getScopeMessageForSetting, } from '../../utils/dialogScopeUtils.js';
12
12
  import { RadioButtonSelect } from './shared/RadioButtonSelect.js';
13
- import { getDialogSettingKeys, getSettingValue, setPendingSettingValue, getDisplayValue, hasRestartRequiredSettings, saveModifiedSettings, getSettingDefinition, isDefaultValue, requiresRestart, getRestartRequiredFromModified, getDefaultValue, } from '../../utils/settingsUtils.js';
13
+ import { getDialogSettingKeys, getSettingValue, setPendingSettingValue, getDisplayValue, hasRestartRequiredSettings, saveModifiedSettings, getSettingDefinition, isDefaultValue, requiresRestart, getRestartRequiredFromModified, getDefaultValue, setPendingSettingValueAny, getNestedValue, } from '../../utils/settingsUtils.js';
14
14
  import { useVimMode } from '../contexts/VimModeContext.js';
15
15
  import { useKeypress } from '../hooks/useKeypress.js';
16
+ import chalk from 'chalk';
17
+ import { cpSlice, cpLen, stripUnsafeCharacters } from '../utils/textUtils.js';
16
18
  const maxItemsToShow = 8;
17
19
  export function SettingsDialog({ settings, onSelect, onRestartRequest, }) {
18
20
  // Get vim mode context to sync vim mode changes
@@ -32,48 +34,52 @@ export function SettingsDialog({ settings, onSelect, onRestartRequest, }) {
32
34
  structuredClone(settings.forScope(selectedScope).settings));
33
35
  // Track which settings have been modified by the user
34
36
  const [modifiedSettings, setModifiedSettings] = useState(new Set());
35
- // Track the intended values for modified settings
36
- const [modifiedValues, setModifiedValues] = useState(new Map());
37
+ const [globalPendingChanges, setGlobalPendingChanges] = useState(new Map());
37
38
  // Track restart-required settings across scope changes
38
- const [restartRequiredSettings, setRestartRequiredSettings] = useState(new Set());
39
+ const [_restartRequiredSettings, setRestartRequiredSettings] = useState(new Set());
39
40
  useEffect(() => {
40
- setPendingSettings(structuredClone(settings.forScope(selectedScope).settings));
41
- // Don't reset modifiedSettings when scope changes - preserve user's pending changes
42
- if (restartRequiredSettings.size === 0) {
43
- setShowRestartPrompt(false);
44
- }
45
- }, [selectedScope, settings, restartRequiredSettings]);
46
- // Preserve pending changes when scope changes
47
- useEffect(() => {
48
- if (modifiedSettings.size > 0) {
49
- setPendingSettings((prevPending) => {
50
- let updatedPending = { ...prevPending };
51
- // Reapply all modified settings to the new pending settings using stored values
52
- modifiedSettings.forEach((key) => {
53
- const storedValue = modifiedValues.get(key);
54
- if (storedValue !== undefined) {
55
- updatedPending = setPendingSettingValue(key, storedValue, updatedPending);
56
- }
57
- });
58
- return updatedPending;
59
- });
41
+ // Base settings for selected scope
42
+ let updated = structuredClone(settings.forScope(selectedScope).settings);
43
+ // Overlay globally pending (unsaved) changes so user sees their modifications in any scope
44
+ const newModified = new Set();
45
+ const newRestartRequired = new Set();
46
+ for (const [key, value] of globalPendingChanges.entries()) {
47
+ const def = getSettingDefinition(key);
48
+ if (def?.type === 'boolean' && typeof value === 'boolean') {
49
+ updated = setPendingSettingValue(key, value, updated);
50
+ }
51
+ else if ((def?.type === 'number' && typeof value === 'number') ||
52
+ (def?.type === 'string' && typeof value === 'string')) {
53
+ updated = setPendingSettingValueAny(key, value, updated);
54
+ }
55
+ newModified.add(key);
56
+ if (requiresRestart(key))
57
+ newRestartRequired.add(key);
60
58
  }
61
- }, [selectedScope, modifiedSettings, modifiedValues, settings]);
59
+ setPendingSettings(updated);
60
+ setModifiedSettings(newModified);
61
+ setRestartRequiredSettings(newRestartRequired);
62
+ setShowRestartPrompt(newRestartRequired.size > 0);
63
+ }, [selectedScope, settings, globalPendingChanges]);
62
64
  const generateSettingsItems = () => {
63
65
  const settingKeys = getDialogSettingKeys();
64
66
  return settingKeys.map((key) => {
65
- const currentValue = getSettingValue(key, pendingSettings, {});
66
67
  const definition = getSettingDefinition(key);
67
68
  return {
68
69
  label: definition?.label || key,
69
70
  value: key,
70
- checked: currentValue,
71
+ type: definition?.type,
71
72
  toggle: () => {
73
+ if (definition?.type !== 'boolean') {
74
+ // For non-boolean items, toggle will be handled via edit mode.
75
+ return;
76
+ }
77
+ const currentValue = getSettingValue(key, pendingSettings, {});
72
78
  const newValue = !currentValue;
73
79
  setPendingSettings((prev) => setPendingSettingValue(key, newValue, prev));
74
80
  if (!requiresRestart(key)) {
75
81
  const immediateSettings = new Set([key]);
76
- const immediateSettingsObject = setPendingSettingValue(key, newValue, {});
82
+ const immediateSettingsObject = setPendingSettingValueAny(key, newValue, {});
77
83
  console.log(`[DEBUG SettingsDialog] Saving ${key} immediately with value:`, newValue);
78
84
  saveModifiedSettings(immediateSettings, immediateSettingsObject, settings, selectedScope);
79
85
  // Special handling for vim mode to sync with VimModeContext
@@ -83,46 +89,31 @@ export function SettingsDialog({ settings, onSelect, onRestartRequest, }) {
83
89
  console.error('Failed to toggle vim mode:', error);
84
90
  });
85
91
  }
86
- // Capture the current modified settings before updating state
87
- const currentModifiedSettings = new Set(modifiedSettings);
88
- // Remove the saved setting from modifiedSettings since it's now saved
92
+ // Remove from modifiedSettings since it's now saved
89
93
  setModifiedSettings((prev) => {
90
94
  const updated = new Set(prev);
91
95
  updated.delete(key);
92
96
  return updated;
93
97
  });
94
- // Remove from modifiedValues as well
95
- setModifiedValues((prev) => {
96
- const updated = new Map(prev);
97
- updated.delete(key);
98
- return updated;
99
- });
100
98
  // Also remove from restart-required settings if it was there
101
99
  setRestartRequiredSettings((prev) => {
102
100
  const updated = new Set(prev);
103
101
  updated.delete(key);
104
102
  return updated;
105
103
  });
106
- setPendingSettings((_prevPending) => {
107
- let updatedPending = structuredClone(settings.forScope(selectedScope).settings);
108
- currentModifiedSettings.forEach((modifiedKey) => {
109
- if (modifiedKey !== key) {
110
- const modifiedValue = modifiedValues.get(modifiedKey);
111
- if (modifiedValue !== undefined) {
112
- updatedPending = setPendingSettingValue(modifiedKey, modifiedValue, updatedPending);
113
- }
114
- }
115
- });
116
- return updatedPending;
104
+ // Remove from global pending changes if present
105
+ setGlobalPendingChanges((prev) => {
106
+ if (!prev.has(key))
107
+ return prev;
108
+ const next = new Map(prev);
109
+ next.delete(key);
110
+ return next;
117
111
  });
112
+ // Refresh pending settings from the saved state
113
+ setPendingSettings(structuredClone(settings.forScope(selectedScope).settings));
118
114
  }
119
115
  else {
120
- // For restart-required settings, store the actual value
121
- setModifiedValues((prev) => {
122
- const updated = new Map(prev);
123
- updated.set(key, newValue);
124
- return updated;
125
- });
116
+ // For restart-required settings, track as modified
126
117
  setModifiedSettings((prev) => {
127
118
  const updated = new Set(prev).add(key);
128
119
  const needsRestart = hasRestartRequiredSettings(updated);
@@ -133,12 +124,111 @@ export function SettingsDialog({ settings, onSelect, onRestartRequest, }) {
133
124
  }
134
125
  return updated;
135
126
  });
127
+ // Add/update pending change globally so it persists across scopes
128
+ setGlobalPendingChanges((prev) => {
129
+ const next = new Map(prev);
130
+ next.set(key, newValue);
131
+ return next;
132
+ });
136
133
  }
137
134
  },
138
135
  };
139
136
  });
140
137
  };
141
138
  const items = generateSettingsItems();
139
+ // Generic edit state
140
+ const [editingKey, setEditingKey] = useState(null);
141
+ const [editBuffer, setEditBuffer] = useState('');
142
+ const [editCursorPos, setEditCursorPos] = useState(0); // Cursor position within edit buffer
143
+ const [cursorVisible, setCursorVisible] = useState(true);
144
+ useEffect(() => {
145
+ if (!editingKey) {
146
+ setCursorVisible(true);
147
+ return;
148
+ }
149
+ const id = setInterval(() => setCursorVisible((v) => !v), 500);
150
+ return () => clearInterval(id);
151
+ }, [editingKey]);
152
+ const startEditing = (key, initial) => {
153
+ setEditingKey(key);
154
+ const initialValue = initial ?? '';
155
+ setEditBuffer(initialValue);
156
+ setEditCursorPos(cpLen(initialValue)); // Position cursor at end of initial value
157
+ };
158
+ const commitEdit = (key) => {
159
+ const definition = getSettingDefinition(key);
160
+ const type = definition?.type;
161
+ if (editBuffer.trim() === '' && type === 'number') {
162
+ // Nothing entered for a number; cancel edit
163
+ setEditingKey(null);
164
+ setEditBuffer('');
165
+ setEditCursorPos(0);
166
+ return;
167
+ }
168
+ let parsed;
169
+ if (type === 'number') {
170
+ const numParsed = Number(editBuffer.trim());
171
+ if (Number.isNaN(numParsed)) {
172
+ // Invalid number; cancel edit
173
+ setEditingKey(null);
174
+ setEditBuffer('');
175
+ setEditCursorPos(0);
176
+ return;
177
+ }
178
+ parsed = numParsed;
179
+ }
180
+ else {
181
+ // For strings, use the buffer as is.
182
+ parsed = editBuffer;
183
+ }
184
+ // Update pending
185
+ setPendingSettings((prev) => setPendingSettingValueAny(key, parsed, prev));
186
+ if (!requiresRestart(key)) {
187
+ const immediateSettings = new Set([key]);
188
+ const immediateSettingsObject = setPendingSettingValueAny(key, parsed, {});
189
+ saveModifiedSettings(immediateSettings, immediateSettingsObject, settings, selectedScope);
190
+ // Remove from modified sets if present
191
+ setModifiedSettings((prev) => {
192
+ const updated = new Set(prev);
193
+ updated.delete(key);
194
+ return updated;
195
+ });
196
+ setRestartRequiredSettings((prev) => {
197
+ const updated = new Set(prev);
198
+ updated.delete(key);
199
+ return updated;
200
+ });
201
+ // Remove from global pending since it's immediately saved
202
+ setGlobalPendingChanges((prev) => {
203
+ if (!prev.has(key))
204
+ return prev;
205
+ const next = new Map(prev);
206
+ next.delete(key);
207
+ return next;
208
+ });
209
+ }
210
+ else {
211
+ // Mark as modified and needing restart
212
+ setModifiedSettings((prev) => {
213
+ const updated = new Set(prev).add(key);
214
+ const needsRestart = hasRestartRequiredSettings(updated);
215
+ if (needsRestart) {
216
+ setShowRestartPrompt(true);
217
+ setRestartRequiredSettings((prevRestart) => new Set(prevRestart).add(key));
218
+ }
219
+ return updated;
220
+ });
221
+ // Record pending change globally for persistence across scopes
222
+ setGlobalPendingChanges((prev) => {
223
+ const next = new Map(prev);
224
+ next.set(key, parsed);
225
+ return next;
226
+ });
227
+ }
228
+ setEditingKey(null);
229
+ setEditBuffer('');
230
+ setEditCursorPos(0);
231
+ };
142
232
  // Scope selector items
143
233
  const scopeItems = getScopeItems();
144
234
  const handleScopeHighlight = (scope) => {
@@ -159,7 +249,99 @@ export function SettingsDialog({ settings, onSelect, onRestartRequest, }) {
159
249
  setFocusSection((prev) => (prev === 'settings' ? 'scope' : 'settings'));
160
250
  }
161
251
  if (focusSection === 'settings') {
252
+ // If editing, capture input and control keys
253
+ if (editingKey) {
254
+ const definition = getSettingDefinition(editingKey);
255
+ const type = definition?.type;
256
+ if (key.paste && key.sequence) {
257
+ let pasted = key.sequence;
258
+ if (type === 'number') {
259
+ pasted = key.sequence.replace(/[^0-9\-+.]/g, '');
260
+ }
261
+ if (pasted) {
262
+ setEditBuffer((b) => {
263
+ const before = cpSlice(b, 0, editCursorPos);
264
+ const after = cpSlice(b, editCursorPos);
265
+ return before + pasted + after;
266
+ });
267
+ setEditCursorPos((pos) => pos + cpLen(pasted));
268
+ }
269
+ return;
270
+ }
271
+ if (name === 'backspace' || name === 'delete') {
272
+ if (name === 'backspace' && editCursorPos > 0) {
273
+ setEditBuffer((b) => {
274
+ const before = cpSlice(b, 0, editCursorPos - 1);
275
+ const after = cpSlice(b, editCursorPos);
276
+ return before + after;
277
+ });
278
+ setEditCursorPos((pos) => pos - 1);
279
+ }
280
+ else if (name === 'delete' && editCursorPos < cpLen(editBuffer)) {
281
+ setEditBuffer((b) => {
282
+ const before = cpSlice(b, 0, editCursorPos);
283
+ const after = cpSlice(b, editCursorPos + 1);
284
+ return before + after;
285
+ });
286
+ // Cursor position stays the same for delete
287
+ }
288
+ return;
289
+ }
290
+ if (name === 'escape') {
291
+ commitEdit(editingKey);
292
+ return;
293
+ }
294
+ if (name === 'return') {
295
+ commitEdit(editingKey);
296
+ return;
297
+ }
298
+ let ch = key.sequence;
299
+ let isValidChar = false;
300
+ if (type === 'number') {
301
+ // Allow digits, minus, plus, and dot.
302
+ isValidChar = /[0-9\-+.]/.test(ch);
303
+ }
304
+ else {
305
+ ch = stripUnsafeCharacters(ch);
306
+ // For strings, allow any single character that isn't a control
307
+ // sequence.
308
+ isValidChar = ch.length === 1;
309
+ }
310
+ if (isValidChar) {
311
+ setEditBuffer((currentBuffer) => {
312
+ const beforeCursor = cpSlice(currentBuffer, 0, editCursorPos);
313
+ const afterCursor = cpSlice(currentBuffer, editCursorPos);
314
+ return beforeCursor + ch + afterCursor;
315
+ });
316
+ setEditCursorPos((pos) => pos + 1);
317
+ return;
318
+ }
319
+ // Arrow key navigation
320
+ if (name === 'left') {
321
+ setEditCursorPos((pos) => Math.max(0, pos - 1));
322
+ return;
323
+ }
324
+ if (name === 'right') {
325
+ setEditCursorPos((pos) => Math.min(cpLen(editBuffer), pos + 1));
326
+ return;
327
+ }
328
+ // Home and End keys
329
+ if (name === 'home') {
330
+ setEditCursorPos(0);
331
+ return;
332
+ }
333
+ if (name === 'end') {
334
+ setEditCursorPos(cpLen(editBuffer));
335
+ return;
336
+ }
337
+ // Block other keys while editing
338
+ return;
339
+ }
162
340
  if (name === 'up' || name === 'k') {
341
+ // If editing, commit first
342
+ if (editingKey) {
343
+ commitEdit(editingKey);
344
+ }
163
345
  const newIndex = activeSettingIndex > 0 ? activeSettingIndex - 1 : items.length - 1;
164
346
  setActiveSettingIndex(newIndex);
165
347
  // Adjust scroll offset for wrap-around
@@ -171,6 +353,10 @@ export function SettingsDialog({ settings, onSelect, onRestartRequest, }) {
171
353
  }
172
354
  }
173
355
  else if (name === 'down' || name === 'j') {
356
+ // If editing, commit first
357
+ if (editingKey) {
358
+ commitEdit(editingKey);
359
+ }
174
360
  const newIndex = activeSettingIndex < items.length - 1 ? activeSettingIndex + 1 : 0;
175
361
  setActiveSettingIndex(newIndex);
176
362
  // Adjust scroll offset for wrap-around
@@ -182,17 +368,37 @@ export function SettingsDialog({ settings, onSelect, onRestartRequest, }) {
182
368
  }
183
369
  }
184
370
  else if (name === 'return' || name === 'space') {
185
- items[activeSettingIndex]?.toggle();
371
+ const currentItem = items[activeSettingIndex];
372
+ if (currentItem?.type === 'number' ||
373
+ currentItem?.type === 'string') {
374
+ startEditing(currentItem.value);
375
+ }
376
+ else {
377
+ currentItem?.toggle();
378
+ }
379
+ }
380
+ else if (/^[0-9]$/.test(key.sequence || '') && !editingKey) {
381
+ const currentItem = items[activeSettingIndex];
382
+ if (currentItem?.type === 'number') {
383
+ startEditing(currentItem.value, key.sequence);
384
+ }
186
385
  }
187
386
  else if (ctrl && (name === 'c' || name === 'l')) {
188
387
  // Ctrl+C or Ctrl+L: Clear current setting and reset to default
189
388
  const currentSetting = items[activeSettingIndex];
190
389
  if (currentSetting) {
191
390
  const defaultValue = getDefaultValue(currentSetting.value);
192
- // Ensure defaultValue is a boolean for setPendingSettingValue
193
- const booleanDefaultValue = typeof defaultValue === 'boolean' ? defaultValue : false;
194
- // Update pending settings to default value
195
- setPendingSettings((prev) => setPendingSettingValue(currentSetting.value, booleanDefaultValue, prev));
391
+ const defType = currentSetting.type;
392
+ if (defType === 'boolean') {
393
+ const booleanDefaultValue = typeof defaultValue === 'boolean' ? defaultValue : false;
394
+ setPendingSettings((prev) => setPendingSettingValue(currentSetting.value, booleanDefaultValue, prev));
395
+ }
396
+ else if (defType === 'number' || defType === 'string') {
397
+ if (typeof defaultValue === 'number' ||
398
+ typeof defaultValue === 'string') {
399
+ setPendingSettings((prev) => setPendingSettingValueAny(currentSetting.value, defaultValue, prev));
400
+ }
401
+ }
196
402
  // Remove from modified settings since it's now at default
197
403
  setModifiedSettings((prev) => {
198
404
  const updated = new Set(prev);
@@ -208,8 +414,41 @@ export function SettingsDialog({ settings, onSelect, onRestartRequest, }) {
208
414
  // If this setting doesn't require restart, save it immediately
209
415
  if (!requiresRestart(currentSetting.value)) {
210
416
  const immediateSettings = new Set([currentSetting.value]);
211
- const immediateSettingsObject = setPendingSettingValue(currentSetting.value, booleanDefaultValue, {});
417
+ const toSaveValue = currentSetting.type === 'boolean'
418
+ ? typeof defaultValue === 'boolean'
419
+ ? defaultValue
420
+ : false
421
+ : typeof defaultValue === 'number' ||
422
+ typeof defaultValue === 'string'
423
+ ? defaultValue
424
+ : undefined;
425
+ const immediateSettingsObject = toSaveValue !== undefined
426
+ ? setPendingSettingValueAny(currentSetting.value, toSaveValue, {})
427
+ : {};
212
428
  saveModifiedSettings(immediateSettings, immediateSettingsObject, settings, selectedScope);
429
+ // Remove from global pending changes if present
430
+ setGlobalPendingChanges((prev) => {
431
+ if (!prev.has(currentSetting.value))
432
+ return prev;
433
+ const next = new Map(prev);
434
+ next.delete(currentSetting.value);
435
+ return next;
436
+ });
437
+ }
438
+ else {
439
+ // Track default reset as a pending change if restart required
440
+ if ((currentSetting.type === 'boolean' &&
441
+ typeof defaultValue === 'boolean') ||
442
+ (currentSetting.type === 'number' &&
443
+ typeof defaultValue === 'number') ||
444
+ (currentSetting.type === 'string' &&
445
+ typeof defaultValue === 'string')) {
446
+ setGlobalPendingChanges((prev) => {
447
+ const next = new Map(prev);
448
+ next.set(currentSetting.value, defaultValue);
449
+ return next;
450
+ });
451
+ }
213
452
  }
214
453
  }
215
454
  }
@@ -220,6 +459,16 @@ export function SettingsDialog({ settings, onSelect, onRestartRequest, }) {
220
459
  const restartRequiredSet = new Set(restartRequiredSettings);
221
460
  if (restartRequiredSet.size > 0) {
222
461
  saveModifiedSettings(restartRequiredSet, pendingSettings, settings, selectedScope);
462
+ // Remove saved keys from global pending changes
463
+ setGlobalPendingChanges((prev) => {
464
+ if (prev.size === 0)
465
+ return prev;
466
+ const next = new Map(prev);
467
+ for (const key of restartRequiredSet) {
468
+ next.delete(key);
469
+ }
470
+ return next;
471
+ });
223
472
  }
224
473
  setShowRestartPrompt(false);
225
474
  setRestartRequiredSettings(new Set()); // Clear restart-required settings
@@ -227,7 +476,12 @@ export function SettingsDialog({ settings, onSelect, onRestartRequest, }) {
227
476
  onRestartRequest();
228
477
  }
229
478
  if (name === 'escape') {
230
- onSelect(undefined, selectedScope);
479
+ if (editingKey) {
480
+ commitEdit(editingKey);
481
+ }
482
+ else {
483
+ onSelect(undefined, selectedScope);
484
+ }
231
485
  }
232
486
  }, { isActive: true });
233
487
  return (_jsx(Box, { borderStyle: "round", borderColor: Colors.Gray, flexDirection: "row", padding: 1, width: "100%", height: "100%", children: _jsxs(Box, { flexDirection: "column", flexGrow: 1, children: [_jsx(Text, { bold: true, color: Colors.AccentBlue, children: "Settings" }), _jsx(Box, { height: 1 }), showScrollUp && _jsx(Text, { color: Colors.Gray, children: "\u25B2" }), visibleItems.map((item, idx) => {
@@ -235,7 +489,54 @@ export function SettingsDialog({ settings, onSelect, onRestartRequest, }) {
235
489
  activeSettingIndex === idx + scrollOffset;
236
490
  const scopeSettings = settings.forScope(selectedScope).settings;
237
491
  const mergedSettings = settings.merged;
238
- const displayValue = getDisplayValue(item.value, scopeSettings, mergedSettings, modifiedSettings, pendingSettings);
492
+ let displayValue;
493
+ if (editingKey === item.value) {
494
+ // Show edit buffer with advanced cursor highlighting
495
+ if (cursorVisible && editCursorPos < cpLen(editBuffer)) {
496
+ // Cursor is in the middle or at start of text
497
+ const beforeCursor = cpSlice(editBuffer, 0, editCursorPos);
498
+ const atCursor = cpSlice(editBuffer, editCursorPos, editCursorPos + 1);
499
+ const afterCursor = cpSlice(editBuffer, editCursorPos + 1);
500
+ displayValue =
501
+ beforeCursor + chalk.inverse(atCursor) + afterCursor;
502
+ }
503
+ else if (cursorVisible && editCursorPos >= cpLen(editBuffer)) {
504
+ // Cursor is at the end - show inverted space
505
+ displayValue = editBuffer + chalk.inverse(' ');
506
+ }
507
+ else {
508
+ // Cursor not visible
509
+ displayValue = editBuffer;
510
+ }
511
+ }
512
+ else if (item.type === 'number' || item.type === 'string') {
513
+ // For numbers/strings, get the actual current value from pending settings
514
+ const path = item.value.split('.');
515
+ const currentValue = getNestedValue(pendingSettings, path);
516
+ const defaultValue = getDefaultValue(item.value);
517
+ if (currentValue !== undefined && currentValue !== null) {
518
+ displayValue = String(currentValue);
519
+ }
520
+ else {
521
+ displayValue =
522
+ defaultValue !== undefined && defaultValue !== null
523
+ ? String(defaultValue)
524
+ : '';
525
+ }
526
+ // Add * if value differs from default OR if currently being modified
527
+ const isModified = modifiedSettings.has(item.value);
528
+ const effectiveCurrentValue = currentValue !== undefined && currentValue !== null
529
+ ? currentValue
530
+ : defaultValue;
531
+ const isDifferentFromDefault = effectiveCurrentValue !== defaultValue;
532
+ if (isDifferentFromDefault || isModified) {
533
+ displayValue += '*';
534
+ }
535
+ }
536
+ else {
537
+ // For booleans and other types, use existing logic
538
+ displayValue = getDisplayValue(item.value, scopeSettings, mergedSettings, modifiedSettings, pendingSettings);
539
+ }
239
540
  const shouldBeGreyedOut = isDefaultValue(item.value, scopeSettings);
240
541
  // Generate scope message for this setting
241
542
  const scopeMessage = getScopeMessageForSetting(item.value, selectedScope, settings);
@@ -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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"}