@google/gemini-cli 0.1.18-nightly.250810.c632ec8b → 0.1.18-nightly.250811.2865a527

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 (38) hide show
  1. package/README.md +193 -136
  2. package/dist/google-gemini-cli-0.1.18.tgz +0 -0
  3. package/dist/package.json +2 -2
  4. package/dist/src/config/settings.d.ts +3 -55
  5. package/dist/src/config/settings.js.map +1 -1
  6. package/dist/src/config/settingsSchema.d.ts +497 -0
  7. package/dist/src/config/settingsSchema.js +470 -0
  8. package/dist/src/config/settingsSchema.js.map +1 -0
  9. package/dist/src/generated/git-commit.d.ts +1 -1
  10. package/dist/src/generated/git-commit.js +1 -1
  11. package/dist/src/services/BuiltinCommandLoader.js +2 -0
  12. package/dist/src/services/BuiltinCommandLoader.js.map +1 -1
  13. package/dist/src/ui/App.js +6 -3
  14. package/dist/src/ui/App.js.map +1 -1
  15. package/dist/src/ui/commands/settingsCommand.d.ts +7 -0
  16. package/dist/src/ui/commands/settingsCommand.js +16 -0
  17. package/dist/src/ui/commands/settingsCommand.js.map +1 -0
  18. package/dist/src/ui/commands/types.d.ts +1 -1
  19. package/dist/src/ui/commands/types.js.map +1 -1
  20. package/dist/src/ui/components/SettingsDialog.d.ts +14 -0
  21. package/dist/src/ui/components/SettingsDialog.js +247 -0
  22. package/dist/src/ui/components/SettingsDialog.js.map +1 -0
  23. package/dist/src/ui/components/ThemeDialog.js +4 -15
  24. package/dist/src/ui/components/ThemeDialog.js.map +1 -1
  25. package/dist/src/ui/hooks/slashCommandProcessor.d.ts +1 -1
  26. package/dist/src/ui/hooks/slashCommandProcessor.js +7 -1
  27. package/dist/src/ui/hooks/slashCommandProcessor.js.map +1 -1
  28. package/dist/src/ui/hooks/useSettingsCommand.d.ts +10 -0
  29. package/dist/src/ui/hooks/useSettingsCommand.js +21 -0
  30. package/dist/src/ui/hooks/useSettingsCommand.js.map +1 -0
  31. package/dist/src/utils/dialogScopeUtils.d.ts +31 -0
  32. package/dist/src/utils/dialogScopeUtils.js +48 -0
  33. package/dist/src/utils/dialogScopeUtils.js.map +1 -0
  34. package/dist/src/utils/settingsUtils.d.ts +126 -0
  35. package/dist/src/utils/settingsUtils.js +327 -0
  36. package/dist/src/utils/settingsUtils.js.map +1 -0
  37. package/dist/tsconfig.tsbuildinfo +1 -1
  38. package/package.json +3 -3
@@ -0,0 +1,470 @@
1
+ /**
2
+ * @license
3
+ * Copyright 2025 Google LLC
4
+ * SPDX-License-Identifier: Apache-2.0
5
+ */
6
+ /**
7
+ * The canonical schema for all settings.
8
+ * The structure of this object defines the structure of the `Settings` type.
9
+ * `as const` is crucial for TypeScript to infer the most specific types possible.
10
+ */
11
+ export const SETTINGS_SCHEMA = {
12
+ // UI Settings
13
+ theme: {
14
+ type: 'string',
15
+ label: 'Theme',
16
+ category: 'UI',
17
+ requiresRestart: false,
18
+ default: undefined,
19
+ description: 'The color theme for the UI.',
20
+ showInDialog: false,
21
+ },
22
+ customThemes: {
23
+ type: 'object',
24
+ label: 'Custom Themes',
25
+ category: 'UI',
26
+ requiresRestart: false,
27
+ default: {},
28
+ description: 'Custom theme definitions.',
29
+ showInDialog: false,
30
+ },
31
+ hideWindowTitle: {
32
+ type: 'boolean',
33
+ label: 'Hide Window Title',
34
+ category: 'UI',
35
+ requiresRestart: true,
36
+ default: false,
37
+ description: 'Hide the window title bar',
38
+ showInDialog: true,
39
+ },
40
+ hideTips: {
41
+ type: 'boolean',
42
+ label: 'Hide Tips',
43
+ category: 'UI',
44
+ requiresRestart: false,
45
+ default: false,
46
+ description: 'Hide helpful tips in the UI',
47
+ showInDialog: true,
48
+ },
49
+ hideBanner: {
50
+ type: 'boolean',
51
+ label: 'Hide Banner',
52
+ category: 'UI',
53
+ requiresRestart: false,
54
+ default: false,
55
+ description: 'Hide the application banner',
56
+ showInDialog: true,
57
+ },
58
+ showMemoryUsage: {
59
+ type: 'boolean',
60
+ label: 'Show Memory Usage',
61
+ category: 'UI',
62
+ requiresRestart: false,
63
+ default: false,
64
+ description: 'Display memory usage information in the UI',
65
+ showInDialog: true,
66
+ },
67
+ usageStatisticsEnabled: {
68
+ type: 'boolean',
69
+ label: 'Enable Usage Statistics',
70
+ category: 'General',
71
+ requiresRestart: true,
72
+ default: true,
73
+ description: 'Enable collection of usage statistics',
74
+ showInDialog: true,
75
+ },
76
+ autoConfigureMaxOldSpaceSize: {
77
+ type: 'boolean',
78
+ label: 'Auto Configure Max Old Space Size',
79
+ category: 'General',
80
+ requiresRestart: true,
81
+ default: false,
82
+ description: 'Automatically configure Node.js memory limits',
83
+ showInDialog: true,
84
+ },
85
+ preferredEditor: {
86
+ type: 'string',
87
+ label: 'Preferred Editor',
88
+ category: 'General',
89
+ requiresRestart: false,
90
+ default: undefined,
91
+ description: 'The preferred editor to open files in.',
92
+ showInDialog: false,
93
+ },
94
+ maxSessionTurns: {
95
+ type: 'number',
96
+ label: 'Max Session Turns',
97
+ category: 'General',
98
+ requiresRestart: false,
99
+ default: undefined,
100
+ description: 'Maximum number of user/model/tool turns to keep in a session.',
101
+ showInDialog: false,
102
+ },
103
+ memoryImportFormat: {
104
+ type: 'string',
105
+ label: 'Memory Import Format',
106
+ category: 'General',
107
+ requiresRestart: false,
108
+ default: undefined,
109
+ description: 'The format to use when importing memory.',
110
+ showInDialog: false,
111
+ },
112
+ memoryDiscoveryMaxDirs: {
113
+ type: 'number',
114
+ label: 'Memory Discovery Max Dirs',
115
+ category: 'General',
116
+ requiresRestart: false,
117
+ default: undefined,
118
+ description: 'Maximum number of directories to search for memory.',
119
+ showInDialog: false,
120
+ },
121
+ contextFileName: {
122
+ type: 'object',
123
+ label: 'Context File Name',
124
+ category: 'General',
125
+ requiresRestart: false,
126
+ default: undefined,
127
+ description: 'The name of the context file.',
128
+ showInDialog: false,
129
+ },
130
+ vimMode: {
131
+ type: 'boolean',
132
+ label: 'Vim Mode',
133
+ category: 'Mode',
134
+ requiresRestart: false,
135
+ default: false,
136
+ description: 'Enable Vim keybindings',
137
+ showInDialog: true,
138
+ },
139
+ ideMode: {
140
+ type: 'boolean',
141
+ label: 'IDE Mode',
142
+ category: 'Mode',
143
+ requiresRestart: true,
144
+ default: false,
145
+ description: 'Enable IDE integration mode',
146
+ showInDialog: true,
147
+ },
148
+ accessibility: {
149
+ type: 'object',
150
+ label: 'Accessibility',
151
+ category: 'Accessibility',
152
+ requiresRestart: true,
153
+ default: {},
154
+ description: 'Accessibility settings.',
155
+ showInDialog: false,
156
+ properties: {
157
+ disableLoadingPhrases: {
158
+ type: 'boolean',
159
+ label: 'Disable Loading Phrases',
160
+ category: 'Accessibility',
161
+ requiresRestart: true,
162
+ default: false,
163
+ description: 'Disable loading phrases for accessibility',
164
+ showInDialog: true,
165
+ },
166
+ },
167
+ },
168
+ checkpointing: {
169
+ type: 'object',
170
+ label: 'Checkpointing',
171
+ category: 'Checkpointing',
172
+ requiresRestart: true,
173
+ default: {},
174
+ description: 'Session checkpointing settings.',
175
+ showInDialog: false,
176
+ properties: {
177
+ enabled: {
178
+ type: 'boolean',
179
+ label: 'Enable Checkpointing',
180
+ category: 'Checkpointing',
181
+ requiresRestart: true,
182
+ default: false,
183
+ description: 'Enable session checkpointing for recovery',
184
+ showInDialog: false,
185
+ },
186
+ },
187
+ },
188
+ fileFiltering: {
189
+ type: 'object',
190
+ label: 'File Filtering',
191
+ category: 'File Filtering',
192
+ requiresRestart: true,
193
+ default: {},
194
+ description: 'Settings for git-aware file filtering.',
195
+ showInDialog: false,
196
+ properties: {
197
+ respectGitIgnore: {
198
+ type: 'boolean',
199
+ label: 'Respect .gitignore',
200
+ category: 'File Filtering',
201
+ requiresRestart: true,
202
+ default: true,
203
+ description: 'Respect .gitignore files when searching',
204
+ showInDialog: true,
205
+ },
206
+ respectGeminiIgnore: {
207
+ type: 'boolean',
208
+ label: 'Respect .geminiignore',
209
+ category: 'File Filtering',
210
+ requiresRestart: true,
211
+ default: true,
212
+ description: 'Respect .geminiignore files when searching',
213
+ showInDialog: true,
214
+ },
215
+ enableRecursiveFileSearch: {
216
+ type: 'boolean',
217
+ label: 'Enable Recursive File Search',
218
+ category: 'File Filtering',
219
+ requiresRestart: true,
220
+ default: true,
221
+ description: 'Enable recursive file search functionality',
222
+ showInDialog: true,
223
+ },
224
+ },
225
+ },
226
+ disableAutoUpdate: {
227
+ type: 'boolean',
228
+ label: 'Disable Auto Update',
229
+ category: 'Updates',
230
+ requiresRestart: false,
231
+ default: false,
232
+ description: 'Disable automatic updates',
233
+ showInDialog: true,
234
+ },
235
+ selectedAuthType: {
236
+ type: 'string',
237
+ label: 'Selected Auth Type',
238
+ category: 'Advanced',
239
+ requiresRestart: true,
240
+ default: undefined,
241
+ description: 'The currently selected authentication type.',
242
+ showInDialog: false,
243
+ },
244
+ useExternalAuth: {
245
+ type: 'boolean',
246
+ label: 'Use External Auth',
247
+ category: 'Advanced',
248
+ requiresRestart: true,
249
+ default: undefined,
250
+ description: 'Whether to use an external authentication flow.',
251
+ showInDialog: false,
252
+ },
253
+ sandbox: {
254
+ type: 'object',
255
+ label: 'Sandbox',
256
+ category: 'Advanced',
257
+ requiresRestart: true,
258
+ default: undefined,
259
+ description: 'Sandbox execution environment (can be a boolean or a path string).',
260
+ showInDialog: false,
261
+ },
262
+ coreTools: {
263
+ type: 'array',
264
+ label: 'Core Tools',
265
+ category: 'Advanced',
266
+ requiresRestart: true,
267
+ default: undefined,
268
+ description: 'Paths to core tool definitions.',
269
+ showInDialog: false,
270
+ },
271
+ excludeTools: {
272
+ type: 'array',
273
+ label: 'Exclude Tools',
274
+ category: 'Advanced',
275
+ requiresRestart: true,
276
+ default: undefined,
277
+ description: 'Tool names to exclude from discovery.',
278
+ showInDialog: false,
279
+ },
280
+ toolDiscoveryCommand: {
281
+ type: 'string',
282
+ label: 'Tool Discovery Command',
283
+ category: 'Advanced',
284
+ requiresRestart: true,
285
+ default: undefined,
286
+ description: 'Command to run for tool discovery.',
287
+ showInDialog: false,
288
+ },
289
+ toolCallCommand: {
290
+ type: 'string',
291
+ label: 'Tool Call Command',
292
+ category: 'Advanced',
293
+ requiresRestart: true,
294
+ default: undefined,
295
+ description: 'Command to run for tool calls.',
296
+ showInDialog: false,
297
+ },
298
+ mcpServerCommand: {
299
+ type: 'string',
300
+ label: 'MCP Server Command',
301
+ category: 'Advanced',
302
+ requiresRestart: true,
303
+ default: undefined,
304
+ description: 'Command to start an MCP server.',
305
+ showInDialog: false,
306
+ },
307
+ mcpServers: {
308
+ type: 'object',
309
+ label: 'MCP Servers',
310
+ category: 'Advanced',
311
+ requiresRestart: true,
312
+ default: {},
313
+ description: 'Configuration for MCP servers.',
314
+ showInDialog: false,
315
+ },
316
+ allowMCPServers: {
317
+ type: 'array',
318
+ label: 'Allow MCP Servers',
319
+ category: 'Advanced',
320
+ requiresRestart: true,
321
+ default: undefined,
322
+ description: 'A whitelist of MCP servers to allow.',
323
+ showInDialog: false,
324
+ },
325
+ excludeMCPServers: {
326
+ type: 'array',
327
+ label: 'Exclude MCP Servers',
328
+ category: 'Advanced',
329
+ requiresRestart: true,
330
+ default: undefined,
331
+ description: 'A blacklist of MCP servers to exclude.',
332
+ showInDialog: false,
333
+ },
334
+ telemetry: {
335
+ type: 'object',
336
+ label: 'Telemetry',
337
+ category: 'Advanced',
338
+ requiresRestart: true,
339
+ default: undefined,
340
+ description: 'Telemetry configuration.',
341
+ showInDialog: false,
342
+ },
343
+ bugCommand: {
344
+ type: 'object',
345
+ label: 'Bug Command',
346
+ category: 'Advanced',
347
+ requiresRestart: false,
348
+ default: undefined,
349
+ description: 'Configuration for the bug report command.',
350
+ showInDialog: false,
351
+ },
352
+ summarizeToolOutput: {
353
+ type: 'object',
354
+ label: 'Summarize Tool Output',
355
+ category: 'Advanced',
356
+ requiresRestart: false,
357
+ default: undefined,
358
+ description: 'Settings for summarizing tool output.',
359
+ showInDialog: false,
360
+ },
361
+ ideModeFeature: {
362
+ type: 'boolean',
363
+ label: 'IDE Mode Feature Flag',
364
+ category: 'Advanced',
365
+ requiresRestart: true,
366
+ default: undefined,
367
+ description: 'Internal feature flag for IDE mode.',
368
+ showInDialog: false,
369
+ },
370
+ dnsResolutionOrder: {
371
+ type: 'string',
372
+ label: 'DNS Resolution Order',
373
+ category: 'Advanced',
374
+ requiresRestart: true,
375
+ default: undefined,
376
+ description: 'The DNS resolution order.',
377
+ showInDialog: false,
378
+ },
379
+ excludedProjectEnvVars: {
380
+ type: 'array',
381
+ label: 'Excluded Project Environment Variables',
382
+ category: 'Advanced',
383
+ requiresRestart: false,
384
+ default: ['DEBUG', 'DEBUG_MODE'],
385
+ description: 'Environment variables to exclude from project context.',
386
+ showInDialog: false,
387
+ },
388
+ disableUpdateNag: {
389
+ type: 'boolean',
390
+ label: 'Disable Update Nag',
391
+ category: 'Updates',
392
+ requiresRestart: false,
393
+ default: false,
394
+ description: 'Disable update notification prompts.',
395
+ showInDialog: false,
396
+ },
397
+ includeDirectories: {
398
+ type: 'array',
399
+ label: 'Include Directories',
400
+ category: 'General',
401
+ requiresRestart: false,
402
+ default: [],
403
+ description: 'Additional directories to include in the workspace context.',
404
+ showInDialog: false,
405
+ },
406
+ loadMemoryFromIncludeDirectories: {
407
+ type: 'boolean',
408
+ label: 'Load Memory From Include Directories',
409
+ category: 'General',
410
+ requiresRestart: false,
411
+ default: false,
412
+ description: 'Whether to load memory files from include directories.',
413
+ showInDialog: true,
414
+ },
415
+ model: {
416
+ type: 'string',
417
+ label: 'Model',
418
+ category: 'General',
419
+ requiresRestart: false,
420
+ default: undefined,
421
+ description: 'The Gemini model to use for conversations.',
422
+ showInDialog: false,
423
+ },
424
+ hasSeenIdeIntegrationNudge: {
425
+ type: 'boolean',
426
+ label: 'Has Seen IDE Integration Nudge',
427
+ category: 'General',
428
+ requiresRestart: false,
429
+ default: false,
430
+ description: 'Whether the user has seen the IDE integration nudge.',
431
+ showInDialog: false,
432
+ },
433
+ folderTrustFeature: {
434
+ type: 'boolean',
435
+ label: 'Folder Trust Feature',
436
+ category: 'General',
437
+ requiresRestart: false,
438
+ default: false,
439
+ description: 'Enable folder trust feature for enhanced security.',
440
+ showInDialog: true,
441
+ },
442
+ folderTrust: {
443
+ type: 'boolean',
444
+ label: 'Folder Trust',
445
+ category: 'General',
446
+ requiresRestart: false,
447
+ default: false,
448
+ description: 'Setting to track whether Folder trust is enabled.',
449
+ showInDialog: true,
450
+ },
451
+ chatCompression: {
452
+ type: 'object',
453
+ label: 'Chat Compression',
454
+ category: 'General',
455
+ requiresRestart: false,
456
+ default: undefined,
457
+ description: 'Chat compression settings.',
458
+ showInDialog: false,
459
+ },
460
+ showLineNumbers: {
461
+ type: 'boolean',
462
+ label: 'Show Line Numbers',
463
+ category: 'General',
464
+ requiresRestart: false,
465
+ default: false,
466
+ description: 'Show line numbers in the chat.',
467
+ showInDialog: true,
468
+ },
469
+ };
470
+ //# sourceMappingURL=settingsSchema.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"settingsSchema.js","sourceRoot":"","sources":["../../../src/config/settingsSchema.ts"],"names":[],"mappings":"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"}
@@ -3,4 +3,4 @@
3
3
  * Copyright 2025 Google LLC
4
4
  * SPDX-License-Identifier: Apache-2.0
5
5
  */
6
- export declare const GIT_COMMIT_INFO = "c632ec8b";
6
+ export declare const GIT_COMMIT_INFO = "2865a527";
@@ -5,5 +5,5 @@
5
5
  */
6
6
  // This file is auto-generated by the build script (scripts/generate-git-commit-info.js)
7
7
  // Do not edit this file manually.
8
- export const GIT_COMMIT_INFO = 'c632ec8b';
8
+ export const GIT_COMMIT_INFO = '2865a527';
9
9
  //# sourceMappingURL=git-commit.js.map
@@ -26,6 +26,7 @@ import { restoreCommand } from '../ui/commands/restoreCommand.js';
26
26
  import { statsCommand } from '../ui/commands/statsCommand.js';
27
27
  import { themeCommand } from '../ui/commands/themeCommand.js';
28
28
  import { toolsCommand } from '../ui/commands/toolsCommand.js';
29
+ import { settingsCommand } from '../ui/commands/settingsCommand.js';
29
30
  import { vimCommand } from '../ui/commands/vimCommand.js';
30
31
  import { setupGithubCommand } from '../ui/commands/setupGithubCommand.js';
31
32
  /**
@@ -69,6 +70,7 @@ export class BuiltinCommandLoader {
69
70
  statsCommand,
70
71
  themeCommand,
71
72
  toolsCommand,
73
+ settingsCommand,
72
74
  vimCommand,
73
75
  setupGithubCommand,
74
76
  ];
@@ -1 +1 @@
1
- {"version":3,"file":"BuiltinCommandLoader.js","sourceRoot":"","sources":["../../../src/services/BuiltinCommandLoader.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAKH,OAAO,EAAE,YAAY,EAAE,MAAM,gCAAgC,CAAC;AAC9D,OAAO,EAAE,WAAW,EAAE,MAAM,+BAA+B,CAAC;AAC5D,OAAO,EAAE,UAAU,EAAE,MAAM,8BAA8B,CAAC;AAC1D,OAAO,EAAE,WAAW,EAAE,MAAM,+BAA+B,CAAC;AAC5D,OAAO,EAAE,YAAY,EAAE,MAAM,gCAAgC,CAAC;AAC9D,OAAO,EAAE,eAAe,EAAE,MAAM,mCAAmC,CAAC;AACpE,OAAO,EAAE,WAAW,EAAE,MAAM,+BAA+B,CAAC;AAC5D,OAAO,EAAE,YAAY,EAAE,MAAM,gCAAgC,CAAC;AAC9D,OAAO,EAAE,WAAW,EAAE,MAAM,+BAA+B,CAAC;AAC5D,OAAO,EAAE,gBAAgB,EAAE,MAAM,oCAAoC,CAAC;AACtE,OAAO,EAAE,aAAa,EAAE,MAAM,iCAAiC,CAAC;AAChE,OAAO,EAAE,iBAAiB,EAAE,MAAM,qCAAqC,CAAC;AACxE,OAAO,EAAE,WAAW,EAAE,MAAM,+BAA+B,CAAC;AAC5D,OAAO,EAAE,UAAU,EAAE,MAAM,8BAA8B,CAAC;AAC1D,OAAO,EAAE,WAAW,EAAE,MAAM,+BAA+B,CAAC;AAC5D,OAAO,EAAE,UAAU,EAAE,MAAM,8BAA8B,CAAC;AAC1D,OAAO,EAAE,aAAa,EAAE,MAAM,iCAAiC,CAAC;AAChE,OAAO,EAAE,cAAc,EAAE,MAAM,kCAAkC,CAAC;AAClE,OAAO,EAAE,WAAW,EAAE,MAAM,+BAA+B,CAAC;AAC5D,OAAO,EAAE,cAAc,EAAE,MAAM,kCAAkC,CAAC;AAClE,OAAO,EAAE,YAAY,EAAE,MAAM,gCAAgC,CAAC;AAC9D,OAAO,EAAE,YAAY,EAAE,MAAM,gCAAgC,CAAC;AAC9D,OAAO,EAAE,YAAY,EAAE,MAAM,gCAAgC,CAAC;AAC9D,OAAO,EAAE,UAAU,EAAE,MAAM,8BAA8B,CAAC;AAC1D,OAAO,EAAE,kBAAkB,EAAE,MAAM,sCAAsC,CAAC;AAE1E;;;GAGG;AACH,MAAM,OAAO,oBAAoB;IACX;IAApB,YAAoB,MAAqB;QAArB,WAAM,GAAN,MAAM,CAAe;IAAG,CAAC;IAE7C;;;;;;OAMG;IACH,KAAK,CAAC,YAAY,CAAC,OAAoB;QACrC,MAAM,cAAc,GAA+B;YACjD,YAAY;YACZ,WAAW;YACX,UAAU;YACV,WAAW;YACX,YAAY;YACZ,eAAe;YACf,WAAW;YACX,YAAY;YACZ,WAAW;YACX,gBAAgB;YAChB,aAAa;YACb,iBAAiB;YACjB,WAAW;YACX,UAAU,CAAC,IAAI,CAAC,MAAM,CAAC;YACvB,WAAW;YACX,UAAU;YACV,aAAa;YACb,cAAc;YACd,WAAW;YACX,cAAc,CAAC,IAAI,CAAC,MAAM,CAAC;YAC3B,YAAY;YACZ,YAAY;YACZ,YAAY;YACZ,UAAU;YACV,kBAAkB;SACnB,CAAC;QAEF,OAAO,cAAc,CAAC,MAAM,CAAC,CAAC,GAAG,EAAuB,EAAE,CAAC,GAAG,KAAK,IAAI,CAAC,CAAC;IAC3E,CAAC;CACF"}
1
+ {"version":3,"file":"BuiltinCommandLoader.js","sourceRoot":"","sources":["../../../src/services/BuiltinCommandLoader.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAKH,OAAO,EAAE,YAAY,EAAE,MAAM,gCAAgC,CAAC;AAC9D,OAAO,EAAE,WAAW,EAAE,MAAM,+BAA+B,CAAC;AAC5D,OAAO,EAAE,UAAU,EAAE,MAAM,8BAA8B,CAAC;AAC1D,OAAO,EAAE,WAAW,EAAE,MAAM,+BAA+B,CAAC;AAC5D,OAAO,EAAE,YAAY,EAAE,MAAM,gCAAgC,CAAC;AAC9D,OAAO,EAAE,eAAe,EAAE,MAAM,mCAAmC,CAAC;AACpE,OAAO,EAAE,WAAW,EAAE,MAAM,+BAA+B,CAAC;AAC5D,OAAO,EAAE,YAAY,EAAE,MAAM,gCAAgC,CAAC;AAC9D,OAAO,EAAE,WAAW,EAAE,MAAM,+BAA+B,CAAC;AAC5D,OAAO,EAAE,gBAAgB,EAAE,MAAM,oCAAoC,CAAC;AACtE,OAAO,EAAE,aAAa,EAAE,MAAM,iCAAiC,CAAC;AAChE,OAAO,EAAE,iBAAiB,EAAE,MAAM,qCAAqC,CAAC;AACxE,OAAO,EAAE,WAAW,EAAE,MAAM,+BAA+B,CAAC;AAC5D,OAAO,EAAE,UAAU,EAAE,MAAM,8BAA8B,CAAC;AAC1D,OAAO,EAAE,WAAW,EAAE,MAAM,+BAA+B,CAAC;AAC5D,OAAO,EAAE,UAAU,EAAE,MAAM,8BAA8B,CAAC;AAC1D,OAAO,EAAE,aAAa,EAAE,MAAM,iCAAiC,CAAC;AAChE,OAAO,EAAE,cAAc,EAAE,MAAM,kCAAkC,CAAC;AAClE,OAAO,EAAE,WAAW,EAAE,MAAM,+BAA+B,CAAC;AAC5D,OAAO,EAAE,cAAc,EAAE,MAAM,kCAAkC,CAAC;AAClE,OAAO,EAAE,YAAY,EAAE,MAAM,gCAAgC,CAAC;AAC9D,OAAO,EAAE,YAAY,EAAE,MAAM,gCAAgC,CAAC;AAC9D,OAAO,EAAE,YAAY,EAAE,MAAM,gCAAgC,CAAC;AAC9D,OAAO,EAAE,eAAe,EAAE,MAAM,mCAAmC,CAAC;AACpE,OAAO,EAAE,UAAU,EAAE,MAAM,8BAA8B,CAAC;AAC1D,OAAO,EAAE,kBAAkB,EAAE,MAAM,sCAAsC,CAAC;AAE1E;;;GAGG;AACH,MAAM,OAAO,oBAAoB;IACX;IAApB,YAAoB,MAAqB;QAArB,WAAM,GAAN,MAAM,CAAe;IAAG,CAAC;IAE7C;;;;;;OAMG;IACH,KAAK,CAAC,YAAY,CAAC,OAAoB;QACrC,MAAM,cAAc,GAA+B;YACjD,YAAY;YACZ,WAAW;YACX,UAAU;YACV,WAAW;YACX,YAAY;YACZ,eAAe;YACf,WAAW;YACX,YAAY;YACZ,WAAW;YACX,gBAAgB;YAChB,aAAa;YACb,iBAAiB;YACjB,WAAW;YACX,UAAU,CAAC,IAAI,CAAC,MAAM,CAAC;YACvB,WAAW;YACX,UAAU;YACV,aAAa;YACb,cAAc;YACd,WAAW;YACX,cAAc,CAAC,IAAI,CAAC,MAAM,CAAC;YAC3B,YAAY;YACZ,YAAY;YACZ,YAAY;YACZ,eAAe;YACf,UAAU;YACV,kBAAkB;SACnB,CAAC;QAEF,OAAO,cAAc,CAAC,MAAM,CAAC,CAAC,GAAG,EAAuB,EAAE,CAAC,GAAG,KAAK,IAAI,CAAC,CAAC;IAC3E,CAAC;CACF"}
@@ -62,6 +62,8 @@ import ansiEscapes from 'ansi-escapes';
62
62
  import { OverflowProvider } from './contexts/OverflowContext.js';
63
63
  import { ShowMoreLines } from './components/ShowMoreLines.js';
64
64
  import { PrivacyNotice } from './privacy/PrivacyNotice.js';
65
+ import { useSettingsCommand } from './hooks/useSettingsCommand.js';
66
+ import { SettingsDialog } from './components/SettingsDialog.js';
65
67
  import { setUpdateHandler } from '../utils/handleAutoUpdate.js';
66
68
  import { appEvents, AppEvent } from '../utils/events.js';
67
69
  import { isNarrowWidth } from './utils/isNarrowWidth.js';
@@ -163,6 +165,7 @@ const App = ({ config, settings, startupWarnings = [], version }) => {
163
165
  .filter((msg) => msg.type === 'error')
164
166
  .reduce((total, msg) => total + msg.count, 0), [consoleMessages]);
165
167
  const { isThemeDialogOpen, openThemeDialog, handleThemeSelect, handleThemeHighlight, } = useThemeCommand(settings, setThemeError, addItem);
168
+ const { isSettingsDialogOpen, openSettingsDialog, closeSettingsDialog } = useSettingsCommand();
166
169
  const { isFolderTrustDialogOpen, handleFolderTrustSelect } = useFolderTrust(settings);
167
170
  const { isAuthDialogOpen, openAuthDialog, handleAuthSelect, isAuthenticating, cancelAuthentication, } = useAuthCommand(settings, setAuthError, config);
168
171
  useEffect(() => {
@@ -336,7 +339,7 @@ const App = ({ config, settings, startupWarnings = [], version }) => {
336
339
  }, [openAuthDialog, setAuthError]);
337
340
  // Core hooks and processors
338
341
  const { vimEnabled: vimModeEnabled, vimMode, toggleVimEnabled, } = useVimMode();
339
- const { handleSlashCommand, slashCommands, pendingHistoryItems: pendingSlashCommandHistoryItems, commandContext, shellConfirmationRequest, confirmationRequest, } = useSlashCommandProcessor(config, settings, addItem, clearItems, loadHistory, refreshStatic, setDebugMessage, openThemeDialog, openAuthDialog, openEditorDialog, toggleCorgiMode, setQuittingMessages, openPrivacyNotice, toggleVimEnabled, setIsProcessing, setGeminiMdFileCount);
342
+ const { handleSlashCommand, slashCommands, pendingHistoryItems: pendingSlashCommandHistoryItems, commandContext, shellConfirmationRequest, confirmationRequest, } = useSlashCommandProcessor(config, settings, addItem, clearItems, loadHistory, refreshStatic, setDebugMessage, openThemeDialog, openAuthDialog, openEditorDialog, toggleCorgiMode, setQuittingMessages, openPrivacyNotice, openSettingsDialog, toggleVimEnabled, setIsProcessing, setGeminiMdFileCount);
340
343
  const buffer = useTextBuffer({
341
344
  initialText: '',
342
345
  viewport: { height: 10, width: inputWidth },
@@ -586,7 +589,7 @@ const App = ({ config, settings, startupWarnings = [], version }) => {
586
589
  confirmationRequest.onConfirm(value);
587
590
  } }) })] })) : isThemeDialogOpen ? (_jsxs(Box, { flexDirection: "column", children: [themeError && (_jsx(Box, { marginBottom: 1, children: _jsx(Text, { color: Colors.AccentRed, children: themeError }) })), _jsx(ThemeDialog, { onSelect: handleThemeSelect, onHighlight: handleThemeHighlight, settings: settings, availableTerminalHeight: constrainHeight
588
591
  ? terminalHeight - staticExtraHeight
589
- : undefined, terminalWidth: mainAreaWidth })] })) : isAuthenticating ? (_jsxs(_Fragment, { children: [_jsx(AuthInProgress, { onTimeout: () => {
592
+ : undefined, terminalWidth: mainAreaWidth })] })) : isSettingsDialogOpen ? (_jsx(Box, { flexDirection: "column", children: _jsx(SettingsDialog, { settings: settings, onSelect: () => closeSettingsDialog(), onRestartRequest: () => process.exit(0) }) })) : isAuthenticating ? (_jsxs(_Fragment, { children: [_jsx(AuthInProgress, { onTimeout: () => {
590
593
  setAuthError('Authentication timed out. Please try again.');
591
594
  cancelAuthentication();
592
595
  openAuthDialog();
@@ -596,6 +599,6 @@ const App = ({ config, settings, startupWarnings = [], version }) => {
596
599
  : thought, currentLoadingPhrase: config.getAccessibility()?.disableLoadingPhrases
597
600
  ? undefined
598
601
  : currentLoadingPhrase, elapsedTime: elapsedTime }), _jsxs(Box, { marginTop: 1, justifyContent: "space-between", width: "100%", flexDirection: isNarrow ? 'column' : 'row', alignItems: isNarrow ? 'flex-start' : 'center', children: [_jsxs(Box, { children: [process.env.GEMINI_SYSTEM_MD && (_jsx(Text, { color: Colors.AccentRed, children: "|\u2310\u25A0_\u25A0| " })), ctrlCPressedOnce ? (_jsx(Text, { color: Colors.AccentYellow, children: "Press Ctrl+C again to exit." })) : ctrlDPressedOnce ? (_jsx(Text, { color: Colors.AccentYellow, children: "Press Ctrl+D again to exit." })) : showEscapePrompt ? (_jsx(Text, { color: Colors.Gray, children: "Press Esc again to clear." })) : (_jsx(ContextSummaryDisplay, { ideContext: ideContextState, geminiMdFileCount: geminiMdFileCount, contextFileNames: contextFileNames, mcpServers: config.getMcpServers(), blockedMcpServers: config.getBlockedMcpServers(), showToolDescriptions: showToolDescriptions }))] }), _jsxs(Box, { paddingTop: isNarrow ? 1 : 0, children: [showAutoAcceptIndicator !== ApprovalMode.DEFAULT &&
599
- !shellModeActive && (_jsx(AutoAcceptIndicator, { approvalMode: showAutoAcceptIndicator })), shellModeActive && _jsx(ShellModeIndicator, {})] })] }), showErrorDetails && (_jsx(OverflowProvider, { children: _jsxs(Box, { flexDirection: "column", children: [_jsx(DetailedMessagesDisplay, { messages: filteredConsoleMessages, maxHeight: constrainHeight ? debugConsoleMaxHeight : undefined, width: inputWidth }), _jsx(ShowMoreLines, { constrainHeight: constrainHeight })] }) })), isInputActive && (_jsx(InputPrompt, { buffer: buffer, inputWidth: inputWidth, suggestionsWidth: suggestionsWidth, onSubmit: handleFinalSubmit, userMessages: userMessages, onClearScreen: handleClearScreen, config: config, slashCommands: slashCommands, commandContext: commandContext, shellModeActive: shellModeActive, setShellModeActive: setShellModeActive, onEscapePromptChange: handleEscapePromptChange, focus: isFocused, vimHandleInput: vimHandleInput, placeholder: placeholder }))] })), initError && streamingState !== StreamingState.Responding && (_jsx(Box, { borderStyle: "round", borderColor: Colors.AccentRed, paddingX: 1, marginBottom: 1, children: history.find((item) => item.type === 'error' && item.text?.includes(initError))?.text ? (_jsx(Text, { color: Colors.AccentRed, children: history.find((item) => item.type === 'error' && item.text?.includes(initError))?.text })) : (_jsxs(_Fragment, { children: [_jsxs(Text, { color: Colors.AccentRed, children: ["Initialization Error: ", initError] }), _jsxs(Text, { color: Colors.AccentRed, children: [' ', "Please check API key and configuration."] })] })) })), _jsx(Footer, { model: currentModel, targetDir: config.getTargetDir(), debugMode: config.getDebugMode(), branchName: branchName, debugMessage: debugMessage, corgiMode: corgiMode, errorCount: errorCount, showErrorDetails: showErrorDetails, showMemoryUsage: config.getDebugMode() || config.getShowMemoryUsage(), promptTokenCount: sessionStats.lastPromptTokenCount, nightly: nightly, vimMode: vimModeEnabled ? vimMode : undefined })] })] }) }));
602
+ !shellModeActive && (_jsx(AutoAcceptIndicator, { approvalMode: showAutoAcceptIndicator })), shellModeActive && _jsx(ShellModeIndicator, {})] })] }), showErrorDetails && (_jsx(OverflowProvider, { children: _jsxs(Box, { flexDirection: "column", children: [_jsx(DetailedMessagesDisplay, { messages: filteredConsoleMessages, maxHeight: constrainHeight ? debugConsoleMaxHeight : undefined, width: inputWidth }), _jsx(ShowMoreLines, { constrainHeight: constrainHeight })] }) })), isInputActive && (_jsx(InputPrompt, { buffer: buffer, inputWidth: inputWidth, suggestionsWidth: suggestionsWidth, onSubmit: handleFinalSubmit, userMessages: userMessages, onClearScreen: handleClearScreen, config: config, slashCommands: slashCommands, commandContext: commandContext, shellModeActive: shellModeActive, setShellModeActive: setShellModeActive, onEscapePromptChange: handleEscapePromptChange, focus: isFocused, vimHandleInput: vimHandleInput, placeholder: placeholder }))] })), initError && streamingState !== StreamingState.Responding && (_jsx(Box, { borderStyle: "round", borderColor: Colors.AccentRed, paddingX: 1, marginBottom: 1, children: history.find((item) => item.type === 'error' && item.text?.includes(initError))?.text ? (_jsx(Text, { color: Colors.AccentRed, children: history.find((item) => item.type === 'error' && item.text?.includes(initError))?.text })) : (_jsxs(_Fragment, { children: [_jsxs(Text, { color: Colors.AccentRed, children: ["Initialization Error: ", initError] }), _jsxs(Text, { color: Colors.AccentRed, children: [' ', "Please check API key and configuration."] })] })) })), _jsx(Footer, { model: currentModel, targetDir: config.getTargetDir(), debugMode: config.getDebugMode(), branchName: branchName, debugMessage: debugMessage, corgiMode: corgiMode, errorCount: errorCount, showErrorDetails: showErrorDetails, showMemoryUsage: config.getDebugMode() || settings.merged.showMemoryUsage || false, promptTokenCount: sessionStats.lastPromptTokenCount, nightly: nightly, vimMode: vimModeEnabled ? vimMode : undefined })] })] }) }));
600
603
  };
601
604
  //# sourceMappingURL=App.js.map