@google/gemini-cli 0.1.18 → 0.1.19-nightly.250814.514e883a

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 (254) hide show
  1. package/README.md +199 -132
  2. package/dist/package.json +5 -3
  3. package/dist/src/commands/mcp/add.d.ts +7 -0
  4. package/dist/src/commands/mcp/add.js +155 -0
  5. package/dist/src/commands/mcp/add.js.map +1 -0
  6. package/dist/src/commands/mcp/list.d.ts +8 -0
  7. package/dist/src/commands/mcp/list.js +110 -0
  8. package/dist/src/commands/mcp/list.js.map +1 -0
  9. package/dist/src/commands/mcp/remove.d.ts +7 -0
  10. package/dist/src/commands/mcp/remove.js +44 -0
  11. package/dist/src/commands/mcp/remove.js.map +1 -0
  12. package/dist/src/commands/mcp.d.ts +7 -0
  13. package/dist/src/commands/mcp.js +23 -0
  14. package/dist/src/commands/mcp.js.map +1 -0
  15. package/dist/src/config/config.d.ts +2 -3
  16. package/dist/src/config/config.js +123 -58
  17. package/dist/src/config/config.js.map +1 -1
  18. package/dist/src/config/keyBindings.d.ts +66 -0
  19. package/dist/src/config/keyBindings.js +140 -0
  20. package/dist/src/config/keyBindings.js.map +1 -0
  21. package/dist/src/config/settings.d.ts +3 -50
  22. package/dist/src/config/settings.js +17 -1
  23. package/dist/src/config/settings.js.map +1 -1
  24. package/dist/src/config/settingsSchema.d.ts +488 -0
  25. package/dist/src/config/settingsSchema.js +461 -0
  26. package/dist/src/config/settingsSchema.js.map +1 -0
  27. package/dist/src/config/trustedFolders.d.ts +36 -0
  28. package/dist/src/config/trustedFolders.js +112 -0
  29. package/dist/src/config/trustedFolders.js.map +1 -0
  30. package/dist/src/gemini.js +15 -31
  31. package/dist/src/gemini.js.map +1 -1
  32. package/dist/src/generated/git-commit.d.ts +1 -1
  33. package/dist/src/generated/git-commit.js +1 -1
  34. package/dist/src/nonInteractiveCli.js +2 -4
  35. package/dist/src/nonInteractiveCli.js.map +1 -1
  36. package/dist/src/services/BuiltinCommandLoader.js +5 -2
  37. package/dist/src/services/BuiltinCommandLoader.js.map +1 -1
  38. package/dist/src/ui/App.js +112 -35
  39. package/dist/src/ui/App.js.map +1 -1
  40. package/dist/src/ui/IdeIntegrationNudge.d.ts +16 -0
  41. package/dist/src/ui/IdeIntegrationNudge.js +52 -0
  42. package/dist/src/ui/IdeIntegrationNudge.js.map +1 -0
  43. package/dist/src/ui/commands/chatCommand.js +15 -0
  44. package/dist/src/ui/commands/chatCommand.js.map +1 -1
  45. package/dist/src/ui/commands/directoryCommand.js +2 -4
  46. package/dist/src/ui/commands/directoryCommand.js.map +1 -1
  47. package/dist/src/ui/commands/ideCommand.js +59 -5
  48. package/dist/src/ui/commands/ideCommand.js.map +1 -1
  49. package/dist/src/ui/commands/mcpCommand.js +4 -0
  50. package/dist/src/ui/commands/mcpCommand.js.map +1 -1
  51. package/dist/src/ui/commands/settingsCommand.d.ts +7 -0
  52. package/dist/src/ui/commands/settingsCommand.js +16 -0
  53. package/dist/src/ui/commands/settingsCommand.js.map +1 -0
  54. package/dist/src/ui/commands/setupGithubCommand.js +86 -19
  55. package/dist/src/ui/commands/setupGithubCommand.js.map +1 -1
  56. package/dist/src/ui/commands/terminalSetupCommand.d.ts +13 -0
  57. package/dist/src/ui/commands/terminalSetupCommand.js +41 -0
  58. package/dist/src/ui/commands/terminalSetupCommand.js.map +1 -0
  59. package/dist/src/ui/commands/types.d.ts +14 -2
  60. package/dist/src/ui/commands/types.js.map +1 -1
  61. package/dist/src/ui/components/AsciiArt.d.ts +1 -0
  62. package/dist/src/ui/components/AsciiArt.js +10 -0
  63. package/dist/src/ui/components/AsciiArt.js.map +1 -1
  64. package/dist/src/ui/components/AuthDialog.js +5 -4
  65. package/dist/src/ui/components/AuthDialog.js.map +1 -1
  66. package/dist/src/ui/components/AuthInProgress.js +6 -5
  67. package/dist/src/ui/components/AuthInProgress.js.map +1 -1
  68. package/dist/src/ui/components/ContextSummaryDisplay.js +21 -24
  69. package/dist/src/ui/components/ContextSummaryDisplay.js.map +1 -1
  70. package/dist/src/ui/components/ContextUsageDisplay.d.ts +9 -0
  71. package/dist/src/ui/components/ContextUsageDisplay.js +14 -0
  72. package/dist/src/ui/components/ContextUsageDisplay.js.map +1 -0
  73. package/dist/src/ui/components/DebugProfiler.js +5 -4
  74. package/dist/src/ui/components/DebugProfiler.js.map +1 -1
  75. package/dist/src/ui/components/EditorSettingsDialog.js +6 -5
  76. package/dist/src/ui/components/EditorSettingsDialog.js.map +1 -1
  77. package/dist/src/ui/components/FolderTrustDialog.d.ts +16 -0
  78. package/dist/src/ui/components/FolderTrustDialog.js +39 -0
  79. package/dist/src/ui/components/FolderTrustDialog.js.map +1 -0
  80. package/dist/src/ui/components/Footer.js +14 -5
  81. package/dist/src/ui/components/Footer.js.map +1 -1
  82. package/dist/src/ui/components/Header.d.ts +0 -1
  83. package/dist/src/ui/components/Header.js +13 -5
  84. package/dist/src/ui/components/Header.js.map +1 -1
  85. package/dist/src/ui/components/InputPrompt.d.ts +1 -0
  86. package/dist/src/ui/components/InputPrompt.js +97 -35
  87. package/dist/src/ui/components/InputPrompt.js.map +1 -1
  88. package/dist/src/ui/components/LoadingIndicator.js +10 -5
  89. package/dist/src/ui/components/LoadingIndicator.js.map +1 -1
  90. package/dist/src/ui/components/SettingsDialog.d.ts +14 -0
  91. package/dist/src/ui/components/SettingsDialog.js +249 -0
  92. package/dist/src/ui/components/SettingsDialog.js.map +1 -0
  93. package/dist/src/ui/components/ShellConfirmationDialog.js +5 -4
  94. package/dist/src/ui/components/ShellConfirmationDialog.js.map +1 -1
  95. package/dist/src/ui/components/SuggestionsDisplay.js +1 -1
  96. package/dist/src/ui/components/SuggestionsDisplay.js.map +1 -1
  97. package/dist/src/ui/components/ThemeDialog.js +10 -20
  98. package/dist/src/ui/components/ThemeDialog.js.map +1 -1
  99. package/dist/src/ui/components/messages/ToolConfirmationMessage.js +34 -13
  100. package/dist/src/ui/components/messages/ToolConfirmationMessage.js.map +1 -1
  101. package/dist/src/ui/components/shared/RadioButtonSelect.js +10 -8
  102. package/dist/src/ui/components/shared/RadioButtonSelect.js.map +1 -1
  103. package/dist/src/ui/components/shared/text-buffer.d.ts +17 -4
  104. package/dist/src/ui/components/shared/text-buffer.js +224 -70
  105. package/dist/src/ui/components/shared/text-buffer.js.map +1 -1
  106. package/dist/src/ui/components/shared/vim-buffer-actions.js +139 -152
  107. package/dist/src/ui/components/shared/vim-buffer-actions.js.map +1 -1
  108. package/dist/src/ui/contexts/SettingsContext.d.ts +9 -0
  109. package/dist/src/ui/contexts/SettingsContext.js +15 -0
  110. package/dist/src/ui/contexts/SettingsContext.js.map +1 -0
  111. package/dist/src/ui/hooks/atCommandProcessor.js +7 -4
  112. package/dist/src/ui/hooks/atCommandProcessor.js.map +1 -1
  113. package/dist/src/ui/hooks/slashCommandProcessor.d.ts +6 -2
  114. package/dist/src/ui/hooks/slashCommandProcessor.js +101 -49
  115. package/dist/src/ui/hooks/slashCommandProcessor.js.map +1 -1
  116. package/dist/src/ui/hooks/useAtCompletion.js +4 -1
  117. package/dist/src/ui/hooks/useAtCompletion.js.map +1 -1
  118. package/dist/src/ui/hooks/useAutoAcceptIndicator.js +5 -5
  119. package/dist/src/ui/hooks/useAutoAcceptIndicator.js.map +1 -1
  120. package/dist/src/ui/hooks/useFocus.d.ts +4 -0
  121. package/dist/src/ui/hooks/useFocus.js +4 -4
  122. package/dist/src/ui/hooks/useFocus.js.map +1 -1
  123. package/dist/src/ui/hooks/useFolderTrust.d.ts +12 -0
  124. package/dist/src/ui/hooks/useFolderTrust.js +37 -0
  125. package/dist/src/ui/hooks/useFolderTrust.js.map +1 -0
  126. package/dist/src/ui/hooks/useGeminiStream.d.ts +2 -1
  127. package/dist/src/ui/hooks/useGeminiStream.js +34 -21
  128. package/dist/src/ui/hooks/useGeminiStream.js.map +1 -1
  129. package/dist/src/ui/hooks/useKeypress.d.ts +9 -1
  130. package/dist/src/ui/hooks/useKeypress.js +197 -8
  131. package/dist/src/ui/hooks/useKeypress.js.map +1 -1
  132. package/dist/src/ui/hooks/useKittyKeyboardProtocol.d.ts +15 -0
  133. package/dist/src/ui/hooks/useKittyKeyboardProtocol.js +20 -0
  134. package/dist/src/ui/hooks/useKittyKeyboardProtocol.js.map +1 -0
  135. package/dist/src/ui/hooks/usePhraseCycler.js +2 -2
  136. package/dist/src/ui/hooks/usePhraseCycler.js.map +1 -1
  137. package/dist/src/ui/hooks/useReactToolScheduler.d.ts +1 -1
  138. package/dist/src/ui/hooks/useReactToolScheduler.js +15 -15
  139. package/dist/src/ui/hooks/useReactToolScheduler.js.map +1 -1
  140. package/dist/src/ui/hooks/useSettingsCommand.d.ts +10 -0
  141. package/dist/src/ui/hooks/useSettingsCommand.js +21 -0
  142. package/dist/src/ui/hooks/useSettingsCommand.js.map +1 -0
  143. package/dist/src/ui/keyMatchers.d.ts +26 -0
  144. package/dist/src/ui/keyMatchers.js +68 -0
  145. package/dist/src/ui/keyMatchers.js.map +1 -0
  146. package/dist/src/ui/privacy/CloudFreePrivacyNotice.js +5 -4
  147. package/dist/src/ui/privacy/CloudFreePrivacyNotice.js.map +1 -1
  148. package/dist/src/ui/privacy/CloudPaidPrivacyNotice.js +5 -4
  149. package/dist/src/ui/privacy/CloudPaidPrivacyNotice.js.map +1 -1
  150. package/dist/src/ui/privacy/GeminiPrivacyNotice.js +5 -4
  151. package/dist/src/ui/privacy/GeminiPrivacyNotice.js.map +1 -1
  152. package/dist/src/ui/semantic-colors.d.ts +7 -0
  153. package/dist/src/ui/semantic-colors.js +24 -0
  154. package/dist/src/ui/semantic-colors.js.map +1 -0
  155. package/dist/src/ui/themes/ansi-light.js +2 -1
  156. package/dist/src/ui/themes/ansi-light.js.map +1 -1
  157. package/dist/src/ui/themes/ansi.js +2 -1
  158. package/dist/src/ui/themes/ansi.js.map +1 -1
  159. package/dist/src/ui/themes/atom-one-dark.js +2 -1
  160. package/dist/src/ui/themes/atom-one-dark.js.map +1 -1
  161. package/dist/src/ui/themes/ayu-light.js +2 -1
  162. package/dist/src/ui/themes/ayu-light.js.map +1 -1
  163. package/dist/src/ui/themes/ayu.js +2 -1
  164. package/dist/src/ui/themes/ayu.js.map +1 -1
  165. package/dist/src/ui/themes/default-light.js +2 -1
  166. package/dist/src/ui/themes/default-light.js.map +1 -1
  167. package/dist/src/ui/themes/default.js +2 -1
  168. package/dist/src/ui/themes/default.js.map +1 -1
  169. package/dist/src/ui/themes/dracula.js +2 -1
  170. package/dist/src/ui/themes/dracula.js.map +1 -1
  171. package/dist/src/ui/themes/github-dark.js +2 -1
  172. package/dist/src/ui/themes/github-dark.js.map +1 -1
  173. package/dist/src/ui/themes/github-light.js +2 -1
  174. package/dist/src/ui/themes/github-light.js.map +1 -1
  175. package/dist/src/ui/themes/googlecode.js +2 -1
  176. package/dist/src/ui/themes/googlecode.js.map +1 -1
  177. package/dist/src/ui/themes/no-color.js +30 -1
  178. package/dist/src/ui/themes/no-color.js.map +1 -1
  179. package/dist/src/ui/themes/semantic-tokens.d.ts +37 -0
  180. package/dist/src/ui/themes/semantic-tokens.js +94 -0
  181. package/dist/src/ui/themes/semantic-tokens.js.map +1 -0
  182. package/dist/src/ui/themes/shades-of-purple.js +2 -1
  183. package/dist/src/ui/themes/shades-of-purple.js.map +1 -1
  184. package/dist/src/ui/themes/theme-manager.d.ts +6 -0
  185. package/dist/src/ui/themes/theme-manager.js +7 -0
  186. package/dist/src/ui/themes/theme-manager.js.map +1 -1
  187. package/dist/src/ui/themes/theme.d.ts +45 -2
  188. package/dist/src/ui/themes/theme.js +92 -107
  189. package/dist/src/ui/themes/theme.js.map +1 -1
  190. package/dist/src/ui/themes/xcode.js +2 -1
  191. package/dist/src/ui/themes/xcode.js.map +1 -1
  192. package/dist/src/ui/types.d.ts +1 -1
  193. package/dist/src/ui/utils/CodeColorizer.d.ts +2 -1
  194. package/dist/src/ui/utils/CodeColorizer.js +4 -3
  195. package/dist/src/ui/utils/CodeColorizer.js.map +1 -1
  196. package/dist/src/ui/utils/ConsolePatcher.d.ts +1 -0
  197. package/dist/src/ui/utils/ConsolePatcher.js +3 -0
  198. package/dist/src/ui/utils/ConsolePatcher.js.map +1 -1
  199. package/dist/src/ui/utils/MarkdownDisplay.js +4 -2
  200. package/dist/src/ui/utils/MarkdownDisplay.js.map +1 -1
  201. package/dist/src/ui/utils/commandUtils.d.ts +1 -0
  202. package/dist/src/ui/utils/commandUtils.js +22 -1
  203. package/dist/src/ui/utils/commandUtils.js.map +1 -1
  204. package/dist/src/ui/utils/isNarrowWidth.d.ts +6 -0
  205. package/dist/src/ui/utils/isNarrowWidth.js +9 -0
  206. package/dist/src/ui/utils/isNarrowWidth.js.map +1 -0
  207. package/dist/src/ui/utils/kittyProtocolDetector.d.ts +13 -0
  208. package/dist/src/ui/utils/kittyProtocolDetector.js +88 -0
  209. package/dist/src/ui/utils/kittyProtocolDetector.js.map +1 -0
  210. package/dist/src/ui/utils/platformConstants.d.ts +38 -0
  211. package/dist/src/ui/utils/platformConstants.js +39 -0
  212. package/dist/src/ui/utils/platformConstants.js.map +1 -0
  213. package/dist/src/ui/utils/terminalSetup.d.ts +30 -0
  214. package/dist/src/ui/utils/terminalSetup.js +281 -0
  215. package/dist/src/ui/utils/terminalSetup.js.map +1 -0
  216. package/dist/src/utils/checks.d.ts +19 -0
  217. package/dist/src/utils/checks.js +24 -0
  218. package/dist/src/utils/checks.js.map +1 -0
  219. package/dist/src/utils/cleanup.d.ts +2 -2
  220. package/dist/src/utils/cleanup.js +2 -2
  221. package/dist/src/utils/cleanup.js.map +1 -1
  222. package/dist/src/utils/dialogScopeUtils.d.ts +31 -0
  223. package/dist/src/utils/dialogScopeUtils.js +48 -0
  224. package/dist/src/utils/dialogScopeUtils.js.map +1 -0
  225. package/dist/src/utils/gitUtils.d.ts +21 -1
  226. package/dist/src/utils/gitUtils.js +68 -3
  227. package/dist/src/utils/gitUtils.js.map +1 -1
  228. package/dist/src/utils/sandbox.js +426 -405
  229. package/dist/src/utils/sandbox.js.map +1 -1
  230. package/dist/src/utils/settingsUtils.d.ts +126 -0
  231. package/dist/src/utils/settingsUtils.js +327 -0
  232. package/dist/src/utils/settingsUtils.js.map +1 -0
  233. package/dist/src/zed-integration/acp.d.ts +63 -0
  234. package/dist/src/{acp → zed-integration}/acp.js +76 -44
  235. package/dist/src/zed-integration/acp.js.map +1 -0
  236. package/dist/src/zed-integration/schema.d.ts +11679 -0
  237. package/dist/src/zed-integration/schema.js +305 -0
  238. package/dist/src/zed-integration/schema.js.map +1 -0
  239. package/dist/src/zed-integration/zedIntegration.d.ts +10 -0
  240. package/dist/src/{acp/acpPeer.js → zed-integration/zedIntegration.js} +323 -169
  241. package/dist/src/zed-integration/zedIntegration.js.map +1 -0
  242. package/dist/tsconfig.tsbuildinfo +1 -1
  243. package/package.json +6 -4
  244. package/dist/google-gemini-cli-0.1.17.tgz +0 -0
  245. package/dist/src/acp/acp.d.ts +0 -208
  246. package/dist/src/acp/acp.js.map +0 -1
  247. package/dist/src/acp/acpPeer.d.ts +0 -8
  248. package/dist/src/acp/acpPeer.js.map +0 -1
  249. package/dist/src/ui/components/IDEContextDetailDisplay.d.ts +0 -12
  250. package/dist/src/ui/components/IDEContextDetailDisplay.js +0 -12
  251. package/dist/src/ui/components/IDEContextDetailDisplay.js.map +0 -1
  252. package/dist/src/ui/utils/errorParsing.d.ts +0 -7
  253. package/dist/src/ui/utils/errorParsing.js +0 -90
  254. package/dist/src/ui/utils/errorParsing.js.map +0 -1
@@ -0,0 +1,461 @@
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
+ dnsResolutionOrder: {
362
+ type: 'string',
363
+ label: 'DNS Resolution Order',
364
+ category: 'Advanced',
365
+ requiresRestart: true,
366
+ default: undefined,
367
+ description: 'The DNS resolution order.',
368
+ showInDialog: false,
369
+ },
370
+ excludedProjectEnvVars: {
371
+ type: 'array',
372
+ label: 'Excluded Project Environment Variables',
373
+ category: 'Advanced',
374
+ requiresRestart: false,
375
+ default: ['DEBUG', 'DEBUG_MODE'],
376
+ description: 'Environment variables to exclude from project context.',
377
+ showInDialog: false,
378
+ },
379
+ disableUpdateNag: {
380
+ type: 'boolean',
381
+ label: 'Disable Update Nag',
382
+ category: 'Updates',
383
+ requiresRestart: false,
384
+ default: false,
385
+ description: 'Disable update notification prompts.',
386
+ showInDialog: false,
387
+ },
388
+ includeDirectories: {
389
+ type: 'array',
390
+ label: 'Include Directories',
391
+ category: 'General',
392
+ requiresRestart: false,
393
+ default: [],
394
+ description: 'Additional directories to include in the workspace context.',
395
+ showInDialog: false,
396
+ },
397
+ loadMemoryFromIncludeDirectories: {
398
+ type: 'boolean',
399
+ label: 'Load Memory From Include Directories',
400
+ category: 'General',
401
+ requiresRestart: false,
402
+ default: false,
403
+ description: 'Whether to load memory files from include directories.',
404
+ showInDialog: true,
405
+ },
406
+ model: {
407
+ type: 'string',
408
+ label: 'Model',
409
+ category: 'General',
410
+ requiresRestart: false,
411
+ default: undefined,
412
+ description: 'The Gemini model to use for conversations.',
413
+ showInDialog: false,
414
+ },
415
+ hasSeenIdeIntegrationNudge: {
416
+ type: 'boolean',
417
+ label: 'Has Seen IDE Integration Nudge',
418
+ category: 'General',
419
+ requiresRestart: false,
420
+ default: false,
421
+ description: 'Whether the user has seen the IDE integration nudge.',
422
+ showInDialog: false,
423
+ },
424
+ folderTrustFeature: {
425
+ type: 'boolean',
426
+ label: 'Folder Trust Feature',
427
+ category: 'General',
428
+ requiresRestart: false,
429
+ default: false,
430
+ description: 'Enable folder trust feature for enhanced security.',
431
+ showInDialog: true,
432
+ },
433
+ folderTrust: {
434
+ type: 'boolean',
435
+ label: 'Folder Trust',
436
+ category: 'General',
437
+ requiresRestart: false,
438
+ default: false,
439
+ description: 'Setting to track whether Folder trust is enabled.',
440
+ showInDialog: true,
441
+ },
442
+ chatCompression: {
443
+ type: 'object',
444
+ label: 'Chat Compression',
445
+ category: 'General',
446
+ requiresRestart: false,
447
+ default: undefined,
448
+ description: 'Chat compression settings.',
449
+ showInDialog: false,
450
+ },
451
+ showLineNumbers: {
452
+ type: 'boolean',
453
+ label: 'Show Line Numbers',
454
+ category: 'General',
455
+ requiresRestart: false,
456
+ default: false,
457
+ description: 'Show line numbers in the chat.',
458
+ showInDialog: true,
459
+ },
460
+ };
461
+ //# 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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"}
@@ -0,0 +1,36 @@
1
+ /**
2
+ * @license
3
+ * Copyright 2025 Google LLC
4
+ * SPDX-License-Identifier: Apache-2.0
5
+ */
6
+ export declare const TRUSTED_FOLDERS_FILENAME = "trustedFolders.json";
7
+ export declare const SETTINGS_DIRECTORY_NAME = ".gemini";
8
+ export declare const USER_SETTINGS_DIR: string;
9
+ export declare const USER_TRUSTED_FOLDERS_PATH: string;
10
+ export declare enum TrustLevel {
11
+ TRUST_FOLDER = "TRUST_FOLDER",
12
+ TRUST_PARENT = "TRUST_PARENT",
13
+ DO_NOT_TRUST = "DO_NOT_TRUST"
14
+ }
15
+ export interface TrustRule {
16
+ path: string;
17
+ trustLevel: TrustLevel;
18
+ }
19
+ export interface TrustedFoldersError {
20
+ message: string;
21
+ path: string;
22
+ }
23
+ export interface TrustedFoldersFile {
24
+ config: Record<string, TrustLevel>;
25
+ path: string;
26
+ }
27
+ export declare class LoadedTrustedFolders {
28
+ user: TrustedFoldersFile;
29
+ errors: TrustedFoldersError[];
30
+ constructor(user: TrustedFoldersFile, errors: TrustedFoldersError[]);
31
+ get rules(): TrustRule[];
32
+ setValue(path: string, trustLevel: TrustLevel): void;
33
+ }
34
+ export declare function loadTrustedFolders(): LoadedTrustedFolders;
35
+ export declare function saveTrustedFolders(trustedFoldersFile: TrustedFoldersFile): void;
36
+ export declare function isWorkspaceTrusted(): boolean | undefined;
@@ -0,0 +1,112 @@
1
+ /**
2
+ * @license
3
+ * Copyright 2025 Google LLC
4
+ * SPDX-License-Identifier: Apache-2.0
5
+ */
6
+ import * as fs from 'fs';
7
+ import * as path from 'path';
8
+ import { homedir } from 'os';
9
+ import { getErrorMessage, isWithinRoot } from '@google/gemini-cli-core';
10
+ import stripJsonComments from 'strip-json-comments';
11
+ export const TRUSTED_FOLDERS_FILENAME = 'trustedFolders.json';
12
+ export const SETTINGS_DIRECTORY_NAME = '.gemini';
13
+ export const USER_SETTINGS_DIR = path.join(homedir(), SETTINGS_DIRECTORY_NAME);
14
+ export const USER_TRUSTED_FOLDERS_PATH = path.join(USER_SETTINGS_DIR, TRUSTED_FOLDERS_FILENAME);
15
+ export var TrustLevel;
16
+ (function (TrustLevel) {
17
+ TrustLevel["TRUST_FOLDER"] = "TRUST_FOLDER";
18
+ TrustLevel["TRUST_PARENT"] = "TRUST_PARENT";
19
+ TrustLevel["DO_NOT_TRUST"] = "DO_NOT_TRUST";
20
+ })(TrustLevel || (TrustLevel = {}));
21
+ export class LoadedTrustedFolders {
22
+ user;
23
+ errors;
24
+ constructor(user, errors) {
25
+ this.user = user;
26
+ this.errors = errors;
27
+ }
28
+ get rules() {
29
+ return Object.entries(this.user.config).map(([path, trustLevel]) => ({
30
+ path,
31
+ trustLevel,
32
+ }));
33
+ }
34
+ setValue(path, trustLevel) {
35
+ this.user.config[path] = trustLevel;
36
+ saveTrustedFolders(this.user);
37
+ }
38
+ }
39
+ export function loadTrustedFolders() {
40
+ const errors = [];
41
+ const userConfig = {};
42
+ const userPath = USER_TRUSTED_FOLDERS_PATH;
43
+ // Load user trusted folders
44
+ try {
45
+ if (fs.existsSync(userPath)) {
46
+ const content = fs.readFileSync(userPath, 'utf-8');
47
+ const parsed = JSON.parse(stripJsonComments(content));
48
+ if (parsed) {
49
+ Object.assign(userConfig, parsed);
50
+ }
51
+ }
52
+ }
53
+ catch (error) {
54
+ errors.push({
55
+ message: getErrorMessage(error),
56
+ path: userPath,
57
+ });
58
+ }
59
+ return new LoadedTrustedFolders({ path: userPath, config: userConfig }, errors);
60
+ }
61
+ export function saveTrustedFolders(trustedFoldersFile) {
62
+ try {
63
+ // Ensure the directory exists
64
+ const dirPath = path.dirname(trustedFoldersFile.path);
65
+ if (!fs.existsSync(dirPath)) {
66
+ fs.mkdirSync(dirPath, { recursive: true });
67
+ }
68
+ fs.writeFileSync(trustedFoldersFile.path, JSON.stringify(trustedFoldersFile.config, null, 2), 'utf-8');
69
+ }
70
+ catch (error) {
71
+ console.error('Error saving trusted folders file:', error);
72
+ }
73
+ }
74
+ export function isWorkspaceTrusted() {
75
+ const { rules, errors } = loadTrustedFolders();
76
+ if (errors.length > 0) {
77
+ for (const error of errors) {
78
+ console.error(`Error loading trusted folders config from ${error.path}: ${error.message}`);
79
+ }
80
+ }
81
+ const trustedPaths = [];
82
+ const untrustedPaths = [];
83
+ for (const rule of rules) {
84
+ switch (rule.trustLevel) {
85
+ case TrustLevel.TRUST_FOLDER:
86
+ trustedPaths.push(rule.path);
87
+ break;
88
+ case TrustLevel.TRUST_PARENT:
89
+ trustedPaths.push(path.dirname(rule.path));
90
+ break;
91
+ case TrustLevel.DO_NOT_TRUST:
92
+ untrustedPaths.push(rule.path);
93
+ break;
94
+ default:
95
+ // Do nothing for unknown trust levels.
96
+ break;
97
+ }
98
+ }
99
+ const cwd = process.cwd();
100
+ for (const trustedPath of trustedPaths) {
101
+ if (isWithinRoot(cwd, trustedPath)) {
102
+ return true;
103
+ }
104
+ }
105
+ for (const untrustedPath of untrustedPaths) {
106
+ if (path.normalize(cwd) === path.normalize(untrustedPath)) {
107
+ return false;
108
+ }
109
+ }
110
+ return undefined;
111
+ }
112
+ //# sourceMappingURL=trustedFolders.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"trustedFolders.js","sourceRoot":"","sources":["../../../src/config/trustedFolders.ts"],"names":[],"mappings":"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"}