@google/gemini-cli 0.13.0-nightly.20251103.9187f6f6 → 0.13.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.
- package/dist/google-gemini-cli-0.13.0-nightly.20251031.c89bc30d.tgz +0 -0
- package/dist/package.json +3 -3
- package/dist/src/commands/mcp/list.test.js +25 -21
- package/dist/src/commands/mcp/list.test.js.map +1 -1
- package/dist/src/config/config.js +8 -84
- package/dist/src/config/config.js.map +1 -1
- package/dist/src/config/config.test.js +13 -30
- package/dist/src/config/config.test.js.map +1 -1
- package/dist/src/config/extension-manager.d.ts +18 -6
- package/dist/src/config/extension-manager.js +25 -19
- package/dist/src/config/extension-manager.js.map +1 -1
- package/dist/src/config/extension.test.js +9 -9
- package/dist/src/config/extension.test.js.map +1 -1
- package/dist/src/config/extensions/extensionSettings.test.js +39 -43
- package/dist/src/config/extensions/extensionSettings.test.js.map +1 -1
- package/dist/src/config/extensions/github.test.js +133 -165
- package/dist/src/config/extensions/github.test.js.map +1 -1
- package/dist/src/config/keyBindings.d.ts +3 -0
- package/dist/src/config/keyBindings.js +29 -7
- package/dist/src/config/keyBindings.js.map +1 -1
- package/dist/src/config/keyBindings.test.js +17 -0
- package/dist/src/config/keyBindings.test.js.map +1 -1
- package/dist/src/config/policy.d.ts +0 -7
- package/dist/src/config/policy.js +10 -177
- package/dist/src/config/policy.js.map +1 -1
- package/dist/src/config/settingsSchema.d.ts +103 -21
- package/dist/src/config/settingsSchema.js +352 -21
- package/dist/src/config/settingsSchema.js.map +1 -1
- package/dist/src/config/settingsSchema.test.js +40 -1
- package/dist/src/config/settingsSchema.test.js.map +1 -1
- package/dist/src/gemini.js +15 -5
- package/dist/src/gemini.js.map +1 -1
- package/dist/src/gemini.test.js +2 -0
- package/dist/src/gemini.test.js.map +1 -1
- package/dist/src/generated/git-commit.d.ts +2 -2
- package/dist/src/generated/git-commit.js +2 -2
- package/dist/src/generated/git-commit.js.map +1 -1
- package/dist/src/nonInteractiveCli.js +68 -1
- package/dist/src/nonInteractiveCli.js.map +1 -1
- package/dist/src/services/BuiltinCommandLoader.js +4 -0
- package/dist/src/services/BuiltinCommandLoader.js.map +1 -1
- package/dist/src/services/BuiltinCommandLoader.test.js +22 -0
- package/dist/src/services/BuiltinCommandLoader.test.js.map +1 -1
- package/dist/src/services/McpPromptLoader.js +2 -2
- package/dist/src/services/McpPromptLoader.js.map +1 -1
- package/dist/src/services/McpPromptLoader.test.js +4 -2
- package/dist/src/services/McpPromptLoader.test.js.map +1 -1
- package/dist/src/test-utils/render.d.ts +2 -1
- package/dist/src/test-utils/render.js +3 -2
- package/dist/src/test-utils/render.js.map +1 -1
- package/dist/src/ui/AppContainer.js +32 -15
- package/dist/src/ui/AppContainer.js.map +1 -1
- package/dist/src/ui/AppContainer.test.js +160 -0
- package/dist/src/ui/AppContainer.test.js.map +1 -1
- package/dist/src/ui/commands/mcpCommand.js +14 -14
- package/dist/src/ui/commands/mcpCommand.js.map +1 -1
- package/dist/src/ui/commands/mcpCommand.test.js +4 -0
- package/dist/src/ui/commands/mcpCommand.test.js.map +1 -1
- package/dist/src/ui/commands/policiesCommand.d.ts +7 -0
- package/dist/src/ui/commands/policiesCommand.js +59 -0
- package/dist/src/ui/commands/policiesCommand.js.map +1 -0
- package/dist/src/ui/commands/policiesCommand.test.js +83 -0
- package/dist/src/ui/commands/policiesCommand.test.js.map +1 -0
- package/dist/src/ui/components/Composer.js +1 -1
- package/dist/src/ui/components/Composer.js.map +1 -1
- package/dist/src/ui/components/Composer.test.js +4 -1
- package/dist/src/ui/components/Composer.test.js.map +1 -1
- package/dist/src/ui/components/ConfigInitDisplay.js +4 -6
- package/dist/src/ui/components/ConfigInitDisplay.js.map +1 -1
- package/dist/src/ui/components/InputPrompt.js +22 -2
- package/dist/src/ui/components/InputPrompt.js.map +1 -1
- package/dist/src/ui/components/InputPrompt.test.js +70 -5
- package/dist/src/ui/components/InputPrompt.test.js.map +1 -1
- package/dist/src/ui/components/MainContent.js +15 -4
- package/dist/src/ui/components/MainContent.js.map +1 -1
- package/dist/src/ui/components/Notifications.js +38 -5
- package/dist/src/ui/components/Notifications.js.map +1 -1
- package/dist/src/ui/components/SettingsDialog.js +32 -25
- package/dist/src/ui/components/SettingsDialog.js.map +1 -1
- package/dist/src/ui/components/ShellConfirmationDialog.js +1 -1
- package/dist/src/ui/components/ShellConfirmationDialog.js.map +1 -1
- package/dist/src/ui/components/messages/InfoMessage.js +1 -1
- package/dist/src/ui/components/messages/InfoMessage.js.map +1 -1
- package/dist/src/ui/components/messages/ToolConfirmationMessage.js +1 -1
- package/dist/src/ui/components/messages/ToolConfirmationMessage.js.map +1 -1
- package/dist/src/ui/components/messages/WarningMessage.js +2 -2
- package/dist/src/ui/components/messages/WarningMessage.js.map +1 -1
- package/dist/src/ui/components/shared/text-buffer.d.ts +1 -0
- package/dist/src/ui/components/shared/text-buffer.js +23 -0
- package/dist/src/ui/components/shared/text-buffer.js.map +1 -1
- package/dist/src/ui/components/shared/text-buffer.test.js +246 -201
- package/dist/src/ui/components/shared/text-buffer.test.js.map +1 -1
- package/dist/src/ui/contexts/KeypressContext.js +182 -132
- package/dist/src/ui/contexts/KeypressContext.js.map +1 -1
- package/dist/src/ui/contexts/KeypressContext.test.js +144 -8
- package/dist/src/ui/contexts/KeypressContext.test.js.map +1 -1
- package/dist/src/ui/contexts/MouseContext.d.ts +21 -0
- package/dist/src/ui/contexts/MouseContext.js +89 -0
- package/dist/src/ui/contexts/MouseContext.js.map +1 -0
- package/dist/src/ui/contexts/MouseContext.test.js +164 -0
- package/dist/src/ui/contexts/MouseContext.test.js.map +1 -0
- package/dist/src/ui/hooks/slashCommandProcessor.test.js +70 -73
- package/dist/src/ui/hooks/slashCommandProcessor.test.js.map +1 -1
- package/dist/src/ui/hooks/useGeminiStream.test.js +135 -368
- package/dist/src/ui/hooks/useGeminiStream.test.js.map +1 -1
- package/dist/src/ui/hooks/useKeypress.test.js +17 -9
- package/dist/src/ui/hooks/useKeypress.test.js.map +1 -1
- package/dist/src/ui/hooks/useMouse.d.ts +17 -0
- package/dist/src/ui/hooks/useMouse.js +27 -0
- package/dist/src/ui/hooks/useMouse.js.map +1 -0
- package/dist/src/ui/hooks/useMouse.test.d.ts +6 -0
- package/dist/src/ui/hooks/useMouse.test.js +57 -0
- package/dist/src/ui/hooks/useMouse.test.js.map +1 -0
- package/dist/src/ui/hooks/useSelectionList.js +5 -4
- package/dist/src/ui/hooks/useSelectionList.js.map +1 -1
- package/dist/src/ui/hooks/useSelectionList.test.js +24 -3
- package/dist/src/ui/hooks/useSelectionList.test.js.map +1 -1
- package/dist/src/ui/hooks/useToolScheduler.test.js +109 -200
- package/dist/src/ui/hooks/useToolScheduler.test.js.map +1 -1
- package/dist/src/ui/keyMatchers.test.js +27 -0
- package/dist/src/ui/keyMatchers.test.js.map +1 -1
- package/dist/src/ui/themes/no-color.js +1 -0
- package/dist/src/ui/themes/no-color.js.map +1 -1
- package/dist/src/ui/themes/semantic-tokens.d.ts +1 -0
- package/dist/src/ui/themes/semantic-tokens.js +3 -0
- package/dist/src/ui/themes/semantic-tokens.js.map +1 -1
- package/dist/src/ui/themes/theme.d.ts +1 -0
- package/dist/src/ui/themes/theme.js +4 -0
- package/dist/src/ui/themes/theme.js.map +1 -1
- package/dist/src/ui/utils/InlineMarkdownRenderer.d.ts +1 -0
- package/dist/src/ui/utils/InlineMarkdownRenderer.js +11 -10
- package/dist/src/ui/utils/InlineMarkdownRenderer.js.map +1 -1
- package/dist/src/ui/utils/MarkdownDisplay.js +11 -9
- package/dist/src/ui/utils/MarkdownDisplay.js.map +1 -1
- package/dist/src/ui/utils/input.d.ts +17 -0
- package/dist/src/ui/utils/input.js +51 -0
- package/dist/src/ui/utils/input.js.map +1 -0
- package/dist/src/ui/utils/input.test.d.ts +6 -0
- package/dist/src/ui/utils/input.test.js +44 -0
- package/dist/src/ui/utils/input.test.js.map +1 -0
- package/dist/src/ui/utils/kittyProtocolDetector.js +13 -4
- package/dist/src/ui/utils/kittyProtocolDetector.js.map +1 -1
- package/dist/src/ui/utils/mouse.d.ts +31 -0
- package/dist/src/ui/utils/mouse.js +164 -0
- package/dist/src/ui/utils/mouse.js.map +1 -0
- package/dist/src/ui/utils/mouse.test.d.ts +6 -0
- package/dist/src/ui/utils/mouse.test.js +131 -0
- package/dist/src/ui/utils/mouse.test.js.map +1 -0
- package/dist/src/utils/events.d.ts +11 -2
- package/dist/src/utils/events.js +1 -0
- package/dist/src/utils/events.js.map +1 -1
- package/dist/src/utils/sandbox.js +16 -18
- package/dist/src/utils/sandbox.js.map +1 -1
- package/dist/tsconfig.tsbuildinfo +1 -1
- package/package.json +4 -4
- package/dist/src/config/policy-toml-loader.d.ts +0 -46
- package/dist/src/config/policy-toml-loader.js +0 -314
- package/dist/src/config/policy-toml-loader.js.map +0 -1
- package/dist/src/config/policy-toml-loader.test.js +0 -626
- package/dist/src/config/policy-toml-loader.test.js.map +0 -1
- package/dist/src/config/policy.test.js +0 -1058
- package/dist/src/config/policy.test.js.map +0 -1
- /package/dist/src/{config/policy-toml-loader.test.d.ts → ui/commands/policiesCommand.test.d.ts} +0 -0
- /package/dist/src/{config/policy.test.d.ts → ui/contexts/MouseContext.test.d.ts} +0 -0
|
@@ -14,6 +14,16 @@ export const TOGGLE_TYPES = new Set([
|
|
|
14
14
|
'boolean',
|
|
15
15
|
'enum',
|
|
16
16
|
]);
|
|
17
|
+
function oneLine(strings, ...values) {
|
|
18
|
+
let result = '';
|
|
19
|
+
for (let i = 0; i < strings.length; i++) {
|
|
20
|
+
result += strings[i];
|
|
21
|
+
if (i < values.length) {
|
|
22
|
+
result += String(values[i]);
|
|
23
|
+
}
|
|
24
|
+
}
|
|
25
|
+
return result.replace(/\s+/g, ' ').trim();
|
|
26
|
+
}
|
|
17
27
|
export var MergeStrategy;
|
|
18
28
|
(function (MergeStrategy) {
|
|
19
29
|
// Replace the old value with the new value. This is the default.
|
|
@@ -41,6 +51,10 @@ const SETTINGS_SCHEMA = {
|
|
|
41
51
|
description: 'Configuration for MCP servers.',
|
|
42
52
|
showInDialog: false,
|
|
43
53
|
mergeStrategy: MergeStrategy.SHALLOW_MERGE,
|
|
54
|
+
additionalProperties: {
|
|
55
|
+
type: 'object',
|
|
56
|
+
ref: 'MCPServerConfig',
|
|
57
|
+
},
|
|
44
58
|
},
|
|
45
59
|
general: {
|
|
46
60
|
type: 'object',
|
|
@@ -221,7 +235,7 @@ const SETTINGS_SCHEMA = {
|
|
|
221
235
|
category: 'UI',
|
|
222
236
|
requiresRestart: false,
|
|
223
237
|
default: undefined,
|
|
224
|
-
description: 'The color theme for the UI.',
|
|
238
|
+
description: 'The color theme for the UI. See the CLI themes guide for available options.',
|
|
225
239
|
showInDialog: false,
|
|
226
240
|
},
|
|
227
241
|
customThemes: {
|
|
@@ -232,6 +246,10 @@ const SETTINGS_SCHEMA = {
|
|
|
232
246
|
default: {},
|
|
233
247
|
description: 'Custom theme definitions.',
|
|
234
248
|
showInDialog: false,
|
|
249
|
+
additionalProperties: {
|
|
250
|
+
type: 'object',
|
|
251
|
+
ref: 'CustomTheme',
|
|
252
|
+
},
|
|
235
253
|
},
|
|
236
254
|
hideWindowTitle: {
|
|
237
255
|
type: 'boolean',
|
|
@@ -370,14 +388,27 @@ const SETTINGS_SCHEMA = {
|
|
|
370
388
|
description: 'Use the entire width of the terminal for output.',
|
|
371
389
|
showInDialog: true,
|
|
372
390
|
},
|
|
391
|
+
useAlternateBuffer: {
|
|
392
|
+
type: 'boolean',
|
|
393
|
+
label: 'Use Alternate Screen Buffer',
|
|
394
|
+
category: 'UI',
|
|
395
|
+
requiresRestart: true,
|
|
396
|
+
default: false,
|
|
397
|
+
description: 'Use an alternate screen buffer for the UI, preserving shell history.',
|
|
398
|
+
showInDialog: true,
|
|
399
|
+
},
|
|
373
400
|
customWittyPhrases: {
|
|
374
401
|
type: 'array',
|
|
375
402
|
label: 'Custom Witty Phrases',
|
|
376
403
|
category: 'UI',
|
|
377
404
|
requiresRestart: false,
|
|
378
405
|
default: [],
|
|
379
|
-
description:
|
|
406
|
+
description: oneLine `
|
|
407
|
+
Custom witty phrases to display during loading.
|
|
408
|
+
When provided, the CLI cycles through these instead of the defaults.
|
|
409
|
+
`,
|
|
380
410
|
showInDialog: false,
|
|
411
|
+
items: { type: 'string' },
|
|
381
412
|
},
|
|
382
413
|
accessibility: {
|
|
383
414
|
type: 'object',
|
|
@@ -467,6 +498,7 @@ const SETTINGS_SCHEMA = {
|
|
|
467
498
|
default: undefined,
|
|
468
499
|
description: 'Telemetry configuration.',
|
|
469
500
|
showInDialog: false,
|
|
501
|
+
ref: 'TelemetrySettings',
|
|
470
502
|
},
|
|
471
503
|
model: {
|
|
472
504
|
type: 'object',
|
|
@@ -501,8 +533,17 @@ const SETTINGS_SCHEMA = {
|
|
|
501
533
|
category: 'Model',
|
|
502
534
|
requiresRestart: false,
|
|
503
535
|
default: undefined,
|
|
504
|
-
description:
|
|
536
|
+
description: oneLine `
|
|
537
|
+
Enables or disables summarization of tool output.
|
|
538
|
+
Configure per-tool token budgets (for example {"run_shell_command": {"tokenBudget": 2000}}).
|
|
539
|
+
Currently only the run_shell_command tool supports summarization.
|
|
540
|
+
`,
|
|
505
541
|
showInDialog: false,
|
|
542
|
+
additionalProperties: {
|
|
543
|
+
type: 'object',
|
|
544
|
+
description: 'Per-tool summarization settings with an optional tokenBudget.',
|
|
545
|
+
ref: 'SummarizeToolOutputSettings',
|
|
546
|
+
},
|
|
506
547
|
},
|
|
507
548
|
compressionThreshold: {
|
|
508
549
|
type: 'number',
|
|
@@ -534,12 +575,13 @@ const SETTINGS_SCHEMA = {
|
|
|
534
575
|
showInDialog: false,
|
|
535
576
|
properties: {
|
|
536
577
|
fileName: {
|
|
537
|
-
type: '
|
|
578
|
+
type: 'string',
|
|
538
579
|
label: 'Context File Name',
|
|
539
580
|
category: 'Context',
|
|
540
581
|
requiresRestart: false,
|
|
541
582
|
default: undefined,
|
|
542
|
-
|
|
583
|
+
ref: 'StringOrStringArray',
|
|
584
|
+
description: 'The name of the context file or files to load into memory. Accepts either a single string or an array of strings.',
|
|
543
585
|
showInDialog: false,
|
|
544
586
|
},
|
|
545
587
|
importFormat: {
|
|
@@ -566,8 +608,12 @@ const SETTINGS_SCHEMA = {
|
|
|
566
608
|
category: 'Context',
|
|
567
609
|
requiresRestart: false,
|
|
568
610
|
default: [],
|
|
569
|
-
description:
|
|
611
|
+
description: oneLine `
|
|
612
|
+
Additional directories to include in the workspace context.
|
|
613
|
+
Missing directories will be skipped with a warning.
|
|
614
|
+
`,
|
|
570
615
|
showInDialog: false,
|
|
616
|
+
items: { type: 'string' },
|
|
571
617
|
mergeStrategy: MergeStrategy.CONCAT,
|
|
572
618
|
},
|
|
573
619
|
loadMemoryFromIncludeDirectories: {
|
|
@@ -576,7 +622,10 @@ const SETTINGS_SCHEMA = {
|
|
|
576
622
|
category: 'Context',
|
|
577
623
|
requiresRestart: false,
|
|
578
624
|
default: false,
|
|
579
|
-
description:
|
|
625
|
+
description: oneLine `
|
|
626
|
+
Controls how /memory refresh loads GEMINI.md files.
|
|
627
|
+
When true, include directories are scanned; when false, only the current directory is used.
|
|
628
|
+
`,
|
|
580
629
|
showInDialog: true,
|
|
581
630
|
},
|
|
582
631
|
fileFiltering: {
|
|
@@ -612,7 +661,9 @@ const SETTINGS_SCHEMA = {
|
|
|
612
661
|
category: 'Context',
|
|
613
662
|
requiresRestart: true,
|
|
614
663
|
default: true,
|
|
615
|
-
description:
|
|
664
|
+
description: oneLine `
|
|
665
|
+
Enable recursive file search functionality when completing @ references in the prompt.
|
|
666
|
+
`,
|
|
616
667
|
showInDialog: true,
|
|
617
668
|
},
|
|
618
669
|
disableFuzzySearch: {
|
|
@@ -638,12 +689,16 @@ const SETTINGS_SCHEMA = {
|
|
|
638
689
|
showInDialog: false,
|
|
639
690
|
properties: {
|
|
640
691
|
sandbox: {
|
|
641
|
-
type: '
|
|
692
|
+
type: 'string',
|
|
642
693
|
label: 'Sandbox',
|
|
643
694
|
category: 'Tools',
|
|
644
695
|
requiresRestart: true,
|
|
645
696
|
default: undefined,
|
|
646
|
-
|
|
697
|
+
ref: 'BooleanOrString',
|
|
698
|
+
description: oneLine `
|
|
699
|
+
Sandbox execution environment.
|
|
700
|
+
Set to a boolean to enable or disable the sandbox, or provide a string path to a sandbox profile.
|
|
701
|
+
`,
|
|
647
702
|
showInDialog: false,
|
|
648
703
|
},
|
|
649
704
|
shell: {
|
|
@@ -661,7 +716,10 @@ const SETTINGS_SCHEMA = {
|
|
|
661
716
|
category: 'Tools',
|
|
662
717
|
requiresRestart: true,
|
|
663
718
|
default: true,
|
|
664
|
-
description:
|
|
719
|
+
description: oneLine `
|
|
720
|
+
Use node-pty for an interactive shell experience.
|
|
721
|
+
Fallback to child_process still applies.
|
|
722
|
+
`,
|
|
665
723
|
showInDialog: true,
|
|
666
724
|
},
|
|
667
725
|
pager: {
|
|
@@ -690,7 +748,9 @@ const SETTINGS_SCHEMA = {
|
|
|
690
748
|
category: 'Tools',
|
|
691
749
|
requiresRestart: false,
|
|
692
750
|
default: false,
|
|
693
|
-
description:
|
|
751
|
+
description: oneLine `
|
|
752
|
+
Automatically accept and execute tool calls that are considered safe (e.g., read-only operations).
|
|
753
|
+
`,
|
|
694
754
|
showInDialog: true,
|
|
695
755
|
},
|
|
696
756
|
core: {
|
|
@@ -699,8 +759,12 @@ const SETTINGS_SCHEMA = {
|
|
|
699
759
|
category: 'Tools',
|
|
700
760
|
requiresRestart: true,
|
|
701
761
|
default: undefined,
|
|
702
|
-
description:
|
|
762
|
+
description: oneLine `
|
|
763
|
+
Restrict the set of built-in tools with an allowlist.
|
|
764
|
+
Match semantics mirror tools.allowed; see the built-in tools documentation for available names.
|
|
765
|
+
`,
|
|
703
766
|
showInDialog: false,
|
|
767
|
+
items: { type: 'string' },
|
|
704
768
|
},
|
|
705
769
|
allowed: {
|
|
706
770
|
type: 'array',
|
|
@@ -708,8 +772,13 @@ const SETTINGS_SCHEMA = {
|
|
|
708
772
|
category: 'Advanced',
|
|
709
773
|
requiresRestart: true,
|
|
710
774
|
default: undefined,
|
|
711
|
-
description:
|
|
775
|
+
description: oneLine `
|
|
776
|
+
Tool names that bypass the confirmation dialog.
|
|
777
|
+
Useful for trusted commands (for example ["run_shell_command(git)", "run_shell_command(npm test)"]).
|
|
778
|
+
See shell tool command restrictions for matching details.
|
|
779
|
+
`,
|
|
712
780
|
showInDialog: false,
|
|
781
|
+
items: { type: 'string' },
|
|
713
782
|
},
|
|
714
783
|
exclude: {
|
|
715
784
|
type: 'array',
|
|
@@ -719,6 +788,7 @@ const SETTINGS_SCHEMA = {
|
|
|
719
788
|
default: undefined,
|
|
720
789
|
description: 'Tool names to exclude from discovery.',
|
|
721
790
|
showInDialog: false,
|
|
791
|
+
items: { type: 'string' },
|
|
722
792
|
mergeStrategy: MergeStrategy.UNION,
|
|
723
793
|
},
|
|
724
794
|
discoveryCommand: {
|
|
@@ -736,7 +806,10 @@ const SETTINGS_SCHEMA = {
|
|
|
736
806
|
category: 'Tools',
|
|
737
807
|
requiresRestart: true,
|
|
738
808
|
default: undefined,
|
|
739
|
-
description:
|
|
809
|
+
description: oneLine `
|
|
810
|
+
Defines a custom shell command for invoking discovered tools.
|
|
811
|
+
The command must take the tool name as the first argument, read JSON arguments from stdin, and emit JSON results on stdout.
|
|
812
|
+
`,
|
|
740
813
|
showInDialog: false,
|
|
741
814
|
},
|
|
742
815
|
useRipgrep: {
|
|
@@ -781,7 +854,10 @@ const SETTINGS_SCHEMA = {
|
|
|
781
854
|
category: 'Tools',
|
|
782
855
|
requiresRestart: true,
|
|
783
856
|
default: false,
|
|
784
|
-
description:
|
|
857
|
+
description: oneLine `
|
|
858
|
+
Enable policy-based tool confirmation via message bus integration.
|
|
859
|
+
When enabled, tools automatically respect policy engine decisions (ALLOW/DENY/ASK_USER) without requiring individual tool implementations.
|
|
860
|
+
`,
|
|
785
861
|
showInDialog: true,
|
|
786
862
|
},
|
|
787
863
|
enableHooks: {
|
|
@@ -821,6 +897,7 @@ const SETTINGS_SCHEMA = {
|
|
|
821
897
|
default: undefined,
|
|
822
898
|
description: 'A list of MCP servers to allow.',
|
|
823
899
|
showInDialog: false,
|
|
900
|
+
items: { type: 'string' },
|
|
824
901
|
},
|
|
825
902
|
excluded: {
|
|
826
903
|
type: 'array',
|
|
@@ -830,6 +907,7 @@ const SETTINGS_SCHEMA = {
|
|
|
830
907
|
default: undefined,
|
|
831
908
|
description: 'A list of MCP servers to exclude.',
|
|
832
909
|
showInDialog: false,
|
|
910
|
+
items: { type: 'string' },
|
|
833
911
|
},
|
|
834
912
|
},
|
|
835
913
|
},
|
|
@@ -847,7 +925,7 @@ const SETTINGS_SCHEMA = {
|
|
|
847
925
|
label: 'Use Write Todos',
|
|
848
926
|
category: 'Advanced',
|
|
849
927
|
requiresRestart: false,
|
|
850
|
-
default:
|
|
928
|
+
default: true,
|
|
851
929
|
description: 'Enable the write_todos_list tool.',
|
|
852
930
|
showInDialog: false,
|
|
853
931
|
},
|
|
@@ -964,6 +1042,7 @@ const SETTINGS_SCHEMA = {
|
|
|
964
1042
|
default: ['DEBUG', 'DEBUG_MODE'],
|
|
965
1043
|
description: 'Environment variables to exclude from project context.',
|
|
966
1044
|
showInDialog: false,
|
|
1045
|
+
items: { type: 'string' },
|
|
967
1046
|
mergeStrategy: MergeStrategy.UNION,
|
|
968
1047
|
},
|
|
969
1048
|
bugCommand: {
|
|
@@ -974,6 +1053,7 @@ const SETTINGS_SCHEMA = {
|
|
|
974
1053
|
default: undefined,
|
|
975
1054
|
description: 'Configuration for the bug report command.',
|
|
976
1055
|
showInDialog: false,
|
|
1056
|
+
ref: 'BugCommandSettings',
|
|
977
1057
|
},
|
|
978
1058
|
},
|
|
979
1059
|
},
|
|
@@ -1027,7 +1107,7 @@ const SETTINGS_SCHEMA = {
|
|
|
1027
1107
|
label: 'Enable Codebase Investigator',
|
|
1028
1108
|
category: 'Experimental',
|
|
1029
1109
|
requiresRestart: true,
|
|
1030
|
-
default:
|
|
1110
|
+
default: true,
|
|
1031
1111
|
description: 'Enable the Codebase Investigator agent.',
|
|
1032
1112
|
showInDialog: true,
|
|
1033
1113
|
},
|
|
@@ -1036,7 +1116,7 @@ const SETTINGS_SCHEMA = {
|
|
|
1036
1116
|
label: 'Codebase Investigator Max Num Turns',
|
|
1037
1117
|
category: 'Experimental',
|
|
1038
1118
|
requiresRestart: true,
|
|
1039
|
-
default:
|
|
1119
|
+
default: 10,
|
|
1040
1120
|
description: 'Maximum number of turns for the Codebase Investigator agent.',
|
|
1041
1121
|
showInDialog: true,
|
|
1042
1122
|
},
|
|
@@ -1045,7 +1125,7 @@ const SETTINGS_SCHEMA = {
|
|
|
1045
1125
|
label: 'Max Time (Minutes)',
|
|
1046
1126
|
category: 'Experimental',
|
|
1047
1127
|
requiresRestart: true,
|
|
1048
|
-
default:
|
|
1128
|
+
default: 3,
|
|
1049
1129
|
description: 'Maximum time for the Codebase Investigator agent (in minutes).',
|
|
1050
1130
|
showInDialog: false,
|
|
1051
1131
|
},
|
|
@@ -1054,7 +1134,7 @@ const SETTINGS_SCHEMA = {
|
|
|
1054
1134
|
label: 'Thinking Budget',
|
|
1055
1135
|
category: 'Experimental',
|
|
1056
1136
|
requiresRestart: true,
|
|
1057
|
-
default:
|
|
1137
|
+
default: 8192,
|
|
1058
1138
|
description: 'The thinking budget for the Codebase Investigator agent.',
|
|
1059
1139
|
showInDialog: false,
|
|
1060
1140
|
},
|
|
@@ -1088,6 +1168,7 @@ const SETTINGS_SCHEMA = {
|
|
|
1088
1168
|
default: [],
|
|
1089
1169
|
description: 'List of disabled extensions.',
|
|
1090
1170
|
showInDialog: false,
|
|
1171
|
+
items: { type: 'string' },
|
|
1091
1172
|
mergeStrategy: MergeStrategy.UNION,
|
|
1092
1173
|
},
|
|
1093
1174
|
workspacesWithMigrationNudge: {
|
|
@@ -1098,6 +1179,7 @@ const SETTINGS_SCHEMA = {
|
|
|
1098
1179
|
default: [],
|
|
1099
1180
|
description: 'List of workspaces for which the migration nudge has been shown.',
|
|
1100
1181
|
showInDialog: false,
|
|
1182
|
+
items: { type: 'string' },
|
|
1101
1183
|
mergeStrategy: MergeStrategy.UNION,
|
|
1102
1184
|
},
|
|
1103
1185
|
},
|
|
@@ -1113,6 +1195,255 @@ const SETTINGS_SCHEMA = {
|
|
|
1113
1195
|
mergeStrategy: MergeStrategy.SHALLOW_MERGE,
|
|
1114
1196
|
},
|
|
1115
1197
|
};
|
|
1198
|
+
export const SETTINGS_SCHEMA_DEFINITIONS = {
|
|
1199
|
+
MCPServerConfig: {
|
|
1200
|
+
type: 'object',
|
|
1201
|
+
description: 'Definition of a Model Context Protocol (MCP) server configuration.',
|
|
1202
|
+
additionalProperties: false,
|
|
1203
|
+
properties: {
|
|
1204
|
+
command: {
|
|
1205
|
+
type: 'string',
|
|
1206
|
+
description: 'Executable invoked for stdio transport.',
|
|
1207
|
+
},
|
|
1208
|
+
args: {
|
|
1209
|
+
type: 'array',
|
|
1210
|
+
description: 'Command-line arguments for the stdio transport command.',
|
|
1211
|
+
items: { type: 'string' },
|
|
1212
|
+
},
|
|
1213
|
+
env: {
|
|
1214
|
+
type: 'object',
|
|
1215
|
+
description: 'Environment variables to set for the server process.',
|
|
1216
|
+
additionalProperties: { type: 'string' },
|
|
1217
|
+
},
|
|
1218
|
+
cwd: {
|
|
1219
|
+
type: 'string',
|
|
1220
|
+
description: 'Working directory for the server process.',
|
|
1221
|
+
},
|
|
1222
|
+
url: {
|
|
1223
|
+
type: 'string',
|
|
1224
|
+
description: 'SSE transport URL.',
|
|
1225
|
+
},
|
|
1226
|
+
httpUrl: {
|
|
1227
|
+
type: 'string',
|
|
1228
|
+
description: 'Streaming HTTP transport URL.',
|
|
1229
|
+
},
|
|
1230
|
+
headers: {
|
|
1231
|
+
type: 'object',
|
|
1232
|
+
description: 'Additional HTTP headers sent to the server.',
|
|
1233
|
+
additionalProperties: { type: 'string' },
|
|
1234
|
+
},
|
|
1235
|
+
tcp: {
|
|
1236
|
+
type: 'string',
|
|
1237
|
+
description: 'TCP address for websocket transport.',
|
|
1238
|
+
},
|
|
1239
|
+
timeout: {
|
|
1240
|
+
type: 'number',
|
|
1241
|
+
description: 'Timeout in milliseconds for MCP requests.',
|
|
1242
|
+
},
|
|
1243
|
+
trust: {
|
|
1244
|
+
type: 'boolean',
|
|
1245
|
+
description: 'Marks the server as trusted. Trusted servers may gain additional capabilities.',
|
|
1246
|
+
},
|
|
1247
|
+
description: {
|
|
1248
|
+
type: 'string',
|
|
1249
|
+
description: 'Human-readable description of the server.',
|
|
1250
|
+
},
|
|
1251
|
+
includeTools: {
|
|
1252
|
+
type: 'array',
|
|
1253
|
+
description: 'Subset of tools that should be enabled for this server. When omitted all tools are enabled.',
|
|
1254
|
+
items: { type: 'string' },
|
|
1255
|
+
},
|
|
1256
|
+
excludeTools: {
|
|
1257
|
+
type: 'array',
|
|
1258
|
+
description: 'Tools that should be disabled for this server even if exposed.',
|
|
1259
|
+
items: { type: 'string' },
|
|
1260
|
+
},
|
|
1261
|
+
extension: {
|
|
1262
|
+
type: 'object',
|
|
1263
|
+
description: 'Metadata describing the Gemini CLI extension that owns this MCP server.',
|
|
1264
|
+
additionalProperties: { type: ['string', 'boolean', 'number'] },
|
|
1265
|
+
},
|
|
1266
|
+
oauth: {
|
|
1267
|
+
type: 'object',
|
|
1268
|
+
description: 'OAuth configuration for authenticating with the server.',
|
|
1269
|
+
additionalProperties: true,
|
|
1270
|
+
},
|
|
1271
|
+
authProviderType: {
|
|
1272
|
+
type: 'string',
|
|
1273
|
+
description: 'Authentication provider used for acquiring credentials (for example `dynamic_discovery`).',
|
|
1274
|
+
enum: [
|
|
1275
|
+
'dynamic_discovery',
|
|
1276
|
+
'google_credentials',
|
|
1277
|
+
'service_account_impersonation',
|
|
1278
|
+
],
|
|
1279
|
+
},
|
|
1280
|
+
targetAudience: {
|
|
1281
|
+
type: 'string',
|
|
1282
|
+
description: 'OAuth target audience (CLIENT_ID.apps.googleusercontent.com).',
|
|
1283
|
+
},
|
|
1284
|
+
targetServiceAccount: {
|
|
1285
|
+
type: 'string',
|
|
1286
|
+
description: 'Service account email to impersonate (name@project.iam.gserviceaccount.com).',
|
|
1287
|
+
},
|
|
1288
|
+
},
|
|
1289
|
+
},
|
|
1290
|
+
TelemetrySettings: {
|
|
1291
|
+
type: 'object',
|
|
1292
|
+
description: 'Telemetry configuration for Gemini CLI.',
|
|
1293
|
+
additionalProperties: false,
|
|
1294
|
+
properties: {
|
|
1295
|
+
enabled: {
|
|
1296
|
+
type: 'boolean',
|
|
1297
|
+
description: 'Enables telemetry emission.',
|
|
1298
|
+
},
|
|
1299
|
+
target: {
|
|
1300
|
+
type: 'string',
|
|
1301
|
+
description: 'Telemetry destination (for example `stderr`, `stdout`, or `otlp`).',
|
|
1302
|
+
},
|
|
1303
|
+
otlpEndpoint: {
|
|
1304
|
+
type: 'string',
|
|
1305
|
+
description: 'Endpoint for OTLP exporters.',
|
|
1306
|
+
},
|
|
1307
|
+
otlpProtocol: {
|
|
1308
|
+
type: 'string',
|
|
1309
|
+
description: 'Protocol for OTLP exporters.',
|
|
1310
|
+
enum: ['grpc', 'http'],
|
|
1311
|
+
},
|
|
1312
|
+
logPrompts: {
|
|
1313
|
+
type: 'boolean',
|
|
1314
|
+
description: 'Whether prompts are logged in telemetry payloads.',
|
|
1315
|
+
},
|
|
1316
|
+
outfile: {
|
|
1317
|
+
type: 'string',
|
|
1318
|
+
description: 'File path for writing telemetry output.',
|
|
1319
|
+
},
|
|
1320
|
+
useCollector: {
|
|
1321
|
+
type: 'boolean',
|
|
1322
|
+
description: 'Whether to forward telemetry to an OTLP collector.',
|
|
1323
|
+
},
|
|
1324
|
+
},
|
|
1325
|
+
},
|
|
1326
|
+
BugCommandSettings: {
|
|
1327
|
+
type: 'object',
|
|
1328
|
+
description: 'Configuration for the bug report helper command.',
|
|
1329
|
+
additionalProperties: false,
|
|
1330
|
+
properties: {
|
|
1331
|
+
urlTemplate: {
|
|
1332
|
+
type: 'string',
|
|
1333
|
+
description: 'Template used to open a bug report URL. Variables in the template are populated at runtime.',
|
|
1334
|
+
},
|
|
1335
|
+
},
|
|
1336
|
+
required: ['urlTemplate'],
|
|
1337
|
+
},
|
|
1338
|
+
SummarizeToolOutputSettings: {
|
|
1339
|
+
type: 'object',
|
|
1340
|
+
description: 'Controls summarization behavior for individual tools. All properties are optional.',
|
|
1341
|
+
additionalProperties: false,
|
|
1342
|
+
properties: {
|
|
1343
|
+
tokenBudget: {
|
|
1344
|
+
type: 'number',
|
|
1345
|
+
description: 'Maximum number of tokens used when summarizing tool output.',
|
|
1346
|
+
},
|
|
1347
|
+
},
|
|
1348
|
+
},
|
|
1349
|
+
CustomTheme: {
|
|
1350
|
+
type: 'object',
|
|
1351
|
+
description: 'Custom theme definition used for styling Gemini CLI output. Colors are provided as hex strings or named ANSI colors.',
|
|
1352
|
+
additionalProperties: false,
|
|
1353
|
+
properties: {
|
|
1354
|
+
type: {
|
|
1355
|
+
type: 'string',
|
|
1356
|
+
enum: ['custom'],
|
|
1357
|
+
default: 'custom',
|
|
1358
|
+
},
|
|
1359
|
+
name: {
|
|
1360
|
+
type: 'string',
|
|
1361
|
+
description: 'Theme display name.',
|
|
1362
|
+
},
|
|
1363
|
+
text: {
|
|
1364
|
+
type: 'object',
|
|
1365
|
+
additionalProperties: false,
|
|
1366
|
+
properties: {
|
|
1367
|
+
primary: { type: 'string' },
|
|
1368
|
+
secondary: { type: 'string' },
|
|
1369
|
+
link: { type: 'string' },
|
|
1370
|
+
accent: { type: 'string' },
|
|
1371
|
+
},
|
|
1372
|
+
},
|
|
1373
|
+
background: {
|
|
1374
|
+
type: 'object',
|
|
1375
|
+
additionalProperties: false,
|
|
1376
|
+
properties: {
|
|
1377
|
+
primary: { type: 'string' },
|
|
1378
|
+
diff: {
|
|
1379
|
+
type: 'object',
|
|
1380
|
+
additionalProperties: false,
|
|
1381
|
+
properties: {
|
|
1382
|
+
added: { type: 'string' },
|
|
1383
|
+
removed: { type: 'string' },
|
|
1384
|
+
},
|
|
1385
|
+
},
|
|
1386
|
+
},
|
|
1387
|
+
},
|
|
1388
|
+
border: {
|
|
1389
|
+
type: 'object',
|
|
1390
|
+
additionalProperties: false,
|
|
1391
|
+
properties: {
|
|
1392
|
+
default: { type: 'string' },
|
|
1393
|
+
focused: { type: 'string' },
|
|
1394
|
+
},
|
|
1395
|
+
},
|
|
1396
|
+
ui: {
|
|
1397
|
+
type: 'object',
|
|
1398
|
+
additionalProperties: false,
|
|
1399
|
+
properties: {
|
|
1400
|
+
comment: { type: 'string' },
|
|
1401
|
+
symbol: { type: 'string' },
|
|
1402
|
+
gradient: {
|
|
1403
|
+
type: 'array',
|
|
1404
|
+
items: { type: 'string' },
|
|
1405
|
+
},
|
|
1406
|
+
},
|
|
1407
|
+
},
|
|
1408
|
+
status: {
|
|
1409
|
+
type: 'object',
|
|
1410
|
+
additionalProperties: false,
|
|
1411
|
+
properties: {
|
|
1412
|
+
error: { type: 'string' },
|
|
1413
|
+
success: { type: 'string' },
|
|
1414
|
+
warning: { type: 'string' },
|
|
1415
|
+
},
|
|
1416
|
+
},
|
|
1417
|
+
Background: { type: 'string' },
|
|
1418
|
+
Foreground: { type: 'string' },
|
|
1419
|
+
LightBlue: { type: 'string' },
|
|
1420
|
+
AccentBlue: { type: 'string' },
|
|
1421
|
+
AccentPurple: { type: 'string' },
|
|
1422
|
+
AccentCyan: { type: 'string' },
|
|
1423
|
+
AccentGreen: { type: 'string' },
|
|
1424
|
+
AccentYellow: { type: 'string' },
|
|
1425
|
+
AccentRed: { type: 'string' },
|
|
1426
|
+
DiffAdded: { type: 'string' },
|
|
1427
|
+
DiffRemoved: { type: 'string' },
|
|
1428
|
+
Comment: { type: 'string' },
|
|
1429
|
+
Gray: { type: 'string' },
|
|
1430
|
+
DarkGray: { type: 'string' },
|
|
1431
|
+
GradientColors: {
|
|
1432
|
+
type: 'array',
|
|
1433
|
+
items: { type: 'string' },
|
|
1434
|
+
},
|
|
1435
|
+
},
|
|
1436
|
+
required: ['type', 'name'],
|
|
1437
|
+
},
|
|
1438
|
+
StringOrStringArray: {
|
|
1439
|
+
description: 'Accepts either a single string or an array of strings.',
|
|
1440
|
+
anyOf: [{ type: 'string' }, { type: 'array', items: { type: 'string' } }],
|
|
1441
|
+
},
|
|
1442
|
+
BooleanOrString: {
|
|
1443
|
+
description: 'Accepts either a boolean flag or a string command name.',
|
|
1444
|
+
anyOf: [{ type: 'boolean' }, { type: 'string' }],
|
|
1445
|
+
},
|
|
1446
|
+
};
|
|
1116
1447
|
export function getSettingsSchema() {
|
|
1117
1448
|
return SETTINGS_SCHEMA;
|
|
1118
1449
|
}
|