@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,110 @@
1
+ /**
2
+ * @license
3
+ * Copyright 2025 Google LLC
4
+ * SPDX-License-Identifier: Apache-2.0
5
+ */
6
+ import { loadSettings } from '../../config/settings.js';
7
+ import { MCPServerStatus, createTransport, } from '@google/gemini-cli-core';
8
+ import { Client } from '@modelcontextprotocol/sdk/client/index.js';
9
+ import { loadExtensions } from '../../config/extension.js';
10
+ const COLOR_GREEN = '\u001b[32m';
11
+ const COLOR_YELLOW = '\u001b[33m';
12
+ const COLOR_RED = '\u001b[31m';
13
+ const RESET_COLOR = '\u001b[0m';
14
+ async function getMcpServersFromConfig() {
15
+ const settings = loadSettings(process.cwd());
16
+ const extensions = loadExtensions(process.cwd());
17
+ const mcpServers = { ...(settings.merged.mcpServers || {}) };
18
+ for (const extension of extensions) {
19
+ Object.entries(extension.config.mcpServers || {}).forEach(([key, server]) => {
20
+ if (mcpServers[key]) {
21
+ return;
22
+ }
23
+ mcpServers[key] = {
24
+ ...server,
25
+ extensionName: extension.config.name,
26
+ };
27
+ });
28
+ }
29
+ return mcpServers;
30
+ }
31
+ async function testMCPConnection(serverName, config) {
32
+ const client = new Client({
33
+ name: 'mcp-test-client',
34
+ version: '0.0.1',
35
+ });
36
+ let transport;
37
+ try {
38
+ // Use the same transport creation logic as core
39
+ transport = await createTransport(serverName, config, false);
40
+ }
41
+ catch (_error) {
42
+ await client.close();
43
+ return MCPServerStatus.DISCONNECTED;
44
+ }
45
+ try {
46
+ // Attempt actual MCP connection with short timeout
47
+ await client.connect(transport, { timeout: 5000 }); // 5s timeout
48
+ // Test basic MCP protocol by pinging the server
49
+ await client.ping();
50
+ await client.close();
51
+ return MCPServerStatus.CONNECTED;
52
+ }
53
+ catch (_error) {
54
+ await transport.close();
55
+ return MCPServerStatus.DISCONNECTED;
56
+ }
57
+ }
58
+ async function getServerStatus(serverName, server) {
59
+ // Test all server types by attempting actual connection
60
+ return await testMCPConnection(serverName, server);
61
+ }
62
+ export async function listMcpServers() {
63
+ const mcpServers = await getMcpServersFromConfig();
64
+ const serverNames = Object.keys(mcpServers);
65
+ if (serverNames.length === 0) {
66
+ console.log('No MCP servers configured.');
67
+ return;
68
+ }
69
+ console.log('Configured MCP servers:\n');
70
+ for (const serverName of serverNames) {
71
+ const server = mcpServers[serverName];
72
+ const status = await getServerStatus(serverName, server);
73
+ let statusIndicator = '';
74
+ let statusText = '';
75
+ switch (status) {
76
+ case MCPServerStatus.CONNECTED:
77
+ statusIndicator = COLOR_GREEN + '✓' + RESET_COLOR;
78
+ statusText = 'Connected';
79
+ break;
80
+ case MCPServerStatus.CONNECTING:
81
+ statusIndicator = COLOR_YELLOW + '…' + RESET_COLOR;
82
+ statusText = 'Connecting';
83
+ break;
84
+ case MCPServerStatus.DISCONNECTED:
85
+ default:
86
+ statusIndicator = COLOR_RED + '✗' + RESET_COLOR;
87
+ statusText = 'Disconnected';
88
+ break;
89
+ }
90
+ let serverInfo = `${serverName}: `;
91
+ if (server.httpUrl) {
92
+ serverInfo += `${server.httpUrl} (http)`;
93
+ }
94
+ else if (server.url) {
95
+ serverInfo += `${server.url} (sse)`;
96
+ }
97
+ else if (server.command) {
98
+ serverInfo += `${server.command} ${server.args?.join(' ') || ''} (stdio)`;
99
+ }
100
+ console.log(`${statusIndicator} ${serverInfo} - ${statusText}`);
101
+ }
102
+ }
103
+ export const listCommand = {
104
+ command: 'list',
105
+ describe: 'List all configured MCP servers',
106
+ handler: async () => {
107
+ await listMcpServers();
108
+ },
109
+ };
110
+ //# sourceMappingURL=list.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"list.js","sourceRoot":"","sources":["../../../../src/commands/mcp/list.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,7 @@
1
+ /**
2
+ * @license
3
+ * Copyright 2025 Google LLC
4
+ * SPDX-License-Identifier: Apache-2.0
5
+ */
6
+ import type { CommandModule } from 'yargs';
7
+ export declare const removeCommand: CommandModule;
@@ -0,0 +1,44 @@
1
+ /**
2
+ * @license
3
+ * Copyright 2025 Google LLC
4
+ * SPDX-License-Identifier: Apache-2.0
5
+ */
6
+ import { loadSettings, SettingScope } from '../../config/settings.js';
7
+ async function removeMcpServer(name, options) {
8
+ const { scope } = options;
9
+ const settingsScope = scope === 'user' ? SettingScope.User : SettingScope.Workspace;
10
+ const settings = loadSettings(process.cwd());
11
+ const existingSettings = settings.forScope(settingsScope).settings;
12
+ const mcpServers = existingSettings.mcpServers || {};
13
+ if (!mcpServers[name]) {
14
+ console.log(`Server "${name}" not found in ${scope} settings.`);
15
+ return;
16
+ }
17
+ delete mcpServers[name];
18
+ settings.setValue(settingsScope, 'mcpServers', mcpServers);
19
+ console.log(`Server "${name}" removed from ${scope} settings.`);
20
+ }
21
+ export const removeCommand = {
22
+ command: 'remove <name>',
23
+ describe: 'Remove a server',
24
+ builder: (yargs) => yargs
25
+ .usage('Usage: gemini mcp remove [options] <name>')
26
+ .positional('name', {
27
+ describe: 'Name of the server',
28
+ type: 'string',
29
+ demandOption: true,
30
+ })
31
+ .option('scope', {
32
+ alias: 's',
33
+ describe: 'Configuration scope (user or project)',
34
+ type: 'string',
35
+ default: 'project',
36
+ choices: ['user', 'project'],
37
+ }),
38
+ handler: async (argv) => {
39
+ await removeMcpServer(argv.name, {
40
+ scope: argv.scope,
41
+ });
42
+ },
43
+ };
44
+ //# sourceMappingURL=remove.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"remove.js","sourceRoot":"","sources":["../../../../src/commands/mcp/remove.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAIH,OAAO,EAAE,YAAY,EAAE,YAAY,EAAE,MAAM,0BAA0B,CAAC;AAEtE,KAAK,UAAU,eAAe,CAC5B,IAAY,EACZ,OAEC;IAED,MAAM,EAAE,KAAK,EAAE,GAAG,OAAO,CAAC;IAC1B,MAAM,aAAa,GACjB,KAAK,KAAK,MAAM,CAAC,CAAC,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC,CAAC,YAAY,CAAC,SAAS,CAAC;IAChE,MAAM,QAAQ,GAAG,YAAY,CAAC,OAAO,CAAC,GAAG,EAAE,CAAC,CAAC;IAE7C,MAAM,gBAAgB,GAAG,QAAQ,CAAC,QAAQ,CAAC,aAAa,CAAC,CAAC,QAAQ,CAAC;IACnE,MAAM,UAAU,GAAG,gBAAgB,CAAC,UAAU,IAAI,EAAE,CAAC;IAErD,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,EAAE,CAAC;QACtB,OAAO,CAAC,GAAG,CAAC,WAAW,IAAI,kBAAkB,KAAK,YAAY,CAAC,CAAC;QAChE,OAAO;IACT,CAAC;IAED,OAAO,UAAU,CAAC,IAAI,CAAC,CAAC;IAExB,QAAQ,CAAC,QAAQ,CAAC,aAAa,EAAE,YAAY,EAAE,UAAU,CAAC,CAAC;IAE3D,OAAO,CAAC,GAAG,CAAC,WAAW,IAAI,kBAAkB,KAAK,YAAY,CAAC,CAAC;AAClE,CAAC;AAED,MAAM,CAAC,MAAM,aAAa,GAAkB;IAC1C,OAAO,EAAE,eAAe;IACxB,QAAQ,EAAE,iBAAiB;IAC3B,OAAO,EAAE,CAAC,KAAK,EAAE,EAAE,CACjB,KAAK;SACF,KAAK,CAAC,2CAA2C,CAAC;SAClD,UAAU,CAAC,MAAM,EAAE;QAClB,QAAQ,EAAE,oBAAoB;QAC9B,IAAI,EAAE,QAAQ;QACd,YAAY,EAAE,IAAI;KACnB,CAAC;SACD,MAAM,CAAC,OAAO,EAAE;QACf,KAAK,EAAE,GAAG;QACV,QAAQ,EAAE,uCAAuC;QACjD,IAAI,EAAE,QAAQ;QACd,OAAO,EAAE,SAAS;QAClB,OAAO,EAAE,CAAC,MAAM,EAAE,SAAS,CAAC;KAC7B,CAAC;IACN,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,EAAE;QACtB,MAAM,eAAe,CAAC,IAAI,CAAC,IAAc,EAAE;YACzC,KAAK,EAAE,IAAI,CAAC,KAAe;SAC5B,CAAC,CAAC;IACL,CAAC;CACF,CAAC"}
@@ -0,0 +1,7 @@
1
+ /**
2
+ * @license
3
+ * Copyright 2025 Google LLC
4
+ * SPDX-License-Identifier: Apache-2.0
5
+ */
6
+ import type { CommandModule } from 'yargs';
7
+ export declare const mcpCommand: CommandModule;
@@ -0,0 +1,23 @@
1
+ /**
2
+ * @license
3
+ * Copyright 2025 Google LLC
4
+ * SPDX-License-Identifier: Apache-2.0
5
+ */
6
+ import { addCommand } from './mcp/add.js';
7
+ import { removeCommand } from './mcp/remove.js';
8
+ import { listCommand } from './mcp/list.js';
9
+ export const mcpCommand = {
10
+ command: 'mcp',
11
+ describe: 'Manage MCP servers',
12
+ builder: (yargs) => yargs
13
+ .command(addCommand)
14
+ .command(removeCommand)
15
+ .command(listCommand)
16
+ .demandCommand(1, 'You need at least one command before continuing.')
17
+ .version(false),
18
+ handler: () => {
19
+ // yargs will automatically show help if no subcommand is provided
20
+ // thanks to demandCommand(1) in the builder.
21
+ },
22
+ };
23
+ //# sourceMappingURL=mcp.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"mcp.js","sourceRoot":"","sources":["../../../src/commands/mcp.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAIH,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAC1C,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAChD,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAE5C,MAAM,CAAC,MAAM,UAAU,GAAkB;IACvC,OAAO,EAAE,KAAK;IACd,QAAQ,EAAE,oBAAoB;IAC9B,OAAO,EAAE,CAAC,KAAW,EAAE,EAAE,CACvB,KAAK;SACF,OAAO,CAAC,UAAU,CAAC;SACnB,OAAO,CAAC,aAAa,CAAC;SACtB,OAAO,CAAC,WAAW,CAAC;SACpB,aAAa,CAAC,CAAC,EAAE,kDAAkD,CAAC;SACpE,OAAO,CAAC,KAAK,CAAC;IACnB,OAAO,EAAE,GAAG,EAAE;QACZ,kEAAkE;QAClE,6CAA6C;IAC/C,CAAC;CACF,CAAC"}
@@ -18,6 +18,7 @@ export interface CliArgs {
18
18
  showMemoryUsage: boolean | undefined;
19
19
  show_memory_usage: boolean | undefined;
20
20
  yolo: boolean | undefined;
21
+ approvalMode: string | undefined;
21
22
  telemetry: boolean | undefined;
22
23
  checkpointing: boolean | undefined;
23
24
  telemetryTarget: string | undefined;
@@ -28,14 +29,12 @@ export interface CliArgs {
28
29
  experimentalAcp: boolean | undefined;
29
30
  extensions: string[] | undefined;
30
31
  listExtensions: boolean | undefined;
31
- ideModeFeature: boolean | undefined;
32
32
  proxy: string | undefined;
33
33
  includeDirectories: string[] | undefined;
34
- loadMemoryFromIncludeDirectories: boolean | undefined;
35
34
  }
36
35
  export declare function parseArguments(): Promise<CliArgs>;
37
36
  export declare function loadHierarchicalGeminiMemory(currentWorkingDirectory: string, includeDirectoriesToReadGemini: readonly string[] | undefined, debugMode: boolean, fileService: FileDiscoveryService, settings: Settings, extensionContextFilePaths?: string[], memoryImportFormat?: 'flat' | 'tree', fileFilteringOptions?: FileFilteringOptions): Promise<{
38
37
  memoryContent: string;
39
38
  fileCount: number;
40
39
  }>;
41
- export declare function loadCliConfig(settings: Settings, extensions: Extension[], sessionId: string, argv: CliArgs): Promise<Config>;
40
+ export declare function loadCliConfig(settings: Settings, extensions: Extension[], sessionId: string, argv: CliArgs, cwd?: string): Promise<Config>;
@@ -9,11 +9,13 @@ import { homedir } from 'node:os';
9
9
  import yargs from 'yargs/yargs';
10
10
  import { hideBin } from 'yargs/helpers';
11
11
  import process from 'node:process';
12
- import { Config, loadServerHierarchicalMemory, setGeminiMdFilename as setServerGeminiMdFilename, getCurrentGeminiMdFilename, ApprovalMode, DEFAULT_GEMINI_MODEL, DEFAULT_GEMINI_EMBEDDING_MODEL, DEFAULT_MEMORY_FILE_FILTERING_OPTIONS, FileDiscoveryService, } from '@google/gemini-cli-core';
12
+ import { mcpCommand } from '../commands/mcp.js';
13
+ import { Config, loadServerHierarchicalMemory, setGeminiMdFilename as setServerGeminiMdFilename, getCurrentGeminiMdFilename, ApprovalMode, DEFAULT_GEMINI_MODEL, DEFAULT_GEMINI_EMBEDDING_MODEL, DEFAULT_MEMORY_FILE_FILTERING_OPTIONS, FileDiscoveryService, ShellTool, EditTool, WriteFileTool, } from '@google/gemini-cli-core';
13
14
  import { annotateActiveExtensions } from './extension.js';
14
15
  import { getCliVersion } from '../utils/version.js';
15
16
  import { loadSandboxConfig } from './sandboxConfig.js';
16
17
  import { resolvePath } from '../utils/resolvePath.js';
18
+ import { isWorkspaceTrusted } from './trustedFolders.js';
17
19
  // Simple console logger for now - replace with actual logger if available
18
20
  const logger = {
19
21
  // eslint-disable-next-line @typescript-eslint/no-explicit-any
@@ -26,7 +28,8 @@ const logger = {
26
28
  export async function parseArguments() {
27
29
  const yargsInstance = yargs(hideBin(process.argv))
28
30
  .scriptName('gemini')
29
- .usage('$0 [options]', 'Gemini CLI - Launch an interactive CLI, use -p/--prompt for non-interactive mode')
31
+ .usage('Usage: gemini [options] [command]\n\nGemini CLI - Launch an interactive CLI, use -p/--prompt for non-interactive mode')
32
+ .command('$0', 'Launch Gemini CLI', (yargsInstance) => yargsInstance
30
33
  .option('model', {
31
34
  alias: 'm',
32
35
  type: 'string',
@@ -86,6 +89,11 @@ export async function parseArguments() {
86
89
  type: 'boolean',
87
90
  description: 'Automatically accept all actions (aka YOLO mode, see https://www.youtube.com/watch?v=xvFZjo5PgG0 for more details)?',
88
91
  default: false,
92
+ })
93
+ .option('approval-mode', {
94
+ type: 'string',
95
+ choices: ['default', 'auto_edit', 'yolo'],
96
+ description: 'Set the approval mode: default (prompt for approval), auto_edit (auto-approve edit tools), yolo (auto-approve all tools)',
89
97
  })
90
98
  .option('telemetry', {
91
99
  type: 'boolean',
@@ -133,10 +141,6 @@ export async function parseArguments() {
133
141
  alias: 'l',
134
142
  type: 'boolean',
135
143
  description: 'List all available extensions and exit.',
136
- })
137
- .option('ide-mode-feature', {
138
- type: 'boolean',
139
- description: 'Run in IDE mode?',
140
144
  })
141
145
  .option('proxy', {
142
146
  type: 'string',
@@ -150,24 +154,31 @@ export async function parseArguments() {
150
154
  // Handle comma-separated values
151
155
  dirs.flatMap((dir) => dir.split(',').map((d) => d.trim())),
152
156
  })
153
- .option('load-memory-from-include-directories', {
154
- type: 'boolean',
155
- description: 'If true, when refreshing memory, GEMINI.md files should be loaded from all directories that are added. If false, GEMINI.md files should only be loaded from the primary working directory.',
156
- default: false,
157
- })
158
- .version(await getCliVersion()) // This will enable the --version flag based on package.json
159
- .alias('v', 'version')
160
- .help()
161
- .alias('h', 'help')
162
- .strict()
163
157
  .check((argv) => {
164
158
  if (argv.prompt && argv.promptInteractive) {
165
159
  throw new Error('Cannot use both --prompt (-p) and --prompt-interactive (-i) together');
166
160
  }
161
+ if (argv.yolo && argv.approvalMode) {
162
+ throw new Error('Cannot use both --yolo (-y) and --approval-mode together. Use --approval-mode=yolo instead.');
163
+ }
167
164
  return true;
168
- });
165
+ }))
166
+ // Register MCP subcommands
167
+ .command(mcpCommand)
168
+ .version(await getCliVersion()) // This will enable the --version flag based on package.json
169
+ .alias('v', 'version')
170
+ .help()
171
+ .alias('h', 'help')
172
+ .strict()
173
+ .demandCommand(0, 0); // Allow base command to run with no subcommands
169
174
  yargsInstance.wrap(yargsInstance.terminalWidth());
170
- const result = yargsInstance.parseSync();
175
+ const result = await yargsInstance.parse();
176
+ // Handle case where MCP subcommands are executed - they should exit the process
177
+ // and not return to main CLI logic
178
+ if (result._.length > 0 && result._[0] === 'mcp') {
179
+ // MCP commands handle their own execution and process exit
180
+ process.exit(0);
181
+ }
171
182
  // The import format is now only controlled by settings.memoryImportFormat
172
183
  // We no longer accept it as a CLI argument
173
184
  return result;
@@ -189,13 +200,16 @@ export async function loadHierarchicalGeminiMemory(currentWorkingDirectory, incl
189
200
  // Directly call the server function with the corrected path.
190
201
  return loadServerHierarchicalMemory(effectiveCwd, includeDirectoriesToReadGemini, debugMode, fileService, extensionContextFilePaths, memoryImportFormat, fileFilteringOptions, settings.memoryDiscoveryMaxDirs);
191
202
  }
192
- export async function loadCliConfig(settings, extensions, sessionId, argv) {
203
+ export async function loadCliConfig(settings, extensions, sessionId, argv, cwd = process.cwd()) {
193
204
  const debugMode = argv.debug ||
194
205
  [process.env.DEBUG, process.env.DEBUG_MODE].some((v) => v === 'true' || v === '1') ||
195
206
  false;
196
207
  const memoryImportFormat = settings.memoryImportFormat || 'tree';
197
208
  const ideMode = settings.ideMode ?? false;
198
- const ideModeFeature = argv.ideModeFeature ?? settings.ideModeFeature ?? false;
209
+ const folderTrustFeature = settings.folderTrustFeature ?? false;
210
+ const folderTrustSetting = settings.folderTrust ?? true;
211
+ const folderTrust = folderTrustFeature && folderTrustSetting;
212
+ const trustedFolder = folderTrust ? isWorkspaceTrusted() : true;
199
213
  const allExtensions = annotateActiveExtensions(extensions, argv.extensions || []);
200
214
  const activeExtensions = extensions.filter((_, i) => allExtensions[i].isActive);
201
215
  // Set the context filename in the server's memoryTool module BEFORE loading memory
@@ -210,7 +224,7 @@ export async function loadCliConfig(settings, extensions, sessionId, argv) {
210
224
  setServerGeminiMdFilename(getCurrentGeminiMdFilename());
211
225
  }
212
226
  const extensionContextFilePaths = activeExtensions.flatMap((e) => e.contextFiles);
213
- const fileService = new FileDiscoveryService(process.cwd());
227
+ const fileService = new FileDiscoveryService(cwd);
214
228
  const fileFiltering = {
215
229
  ...DEFAULT_MEMORY_FILE_FILTERING_OPTIONS,
216
230
  ...settings.fileFiltering,
@@ -219,16 +233,58 @@ export async function loadCliConfig(settings, extensions, sessionId, argv) {
219
233
  .map(resolvePath)
220
234
  .concat((argv.includeDirectories || []).map(resolvePath));
221
235
  // Call the (now wrapper) loadHierarchicalGeminiMemory which calls the server's version
222
- const { memoryContent, fileCount } = await loadHierarchicalGeminiMemory(process.cwd(), settings.loadMemoryFromIncludeDirectories ? includeDirectories : [], debugMode, fileService, settings, extensionContextFilePaths, memoryImportFormat, fileFiltering);
236
+ const { memoryContent, fileCount } = await loadHierarchicalGeminiMemory(cwd, settings.loadMemoryFromIncludeDirectories ? includeDirectories : [], debugMode, fileService, settings, extensionContextFilePaths, memoryImportFormat, fileFiltering);
223
237
  let mcpServers = mergeMcpServers(settings, activeExtensions);
224
- const excludeTools = mergeExcludeTools(settings, activeExtensions);
238
+ const question = argv.promptInteractive || argv.prompt || '';
239
+ // Determine approval mode with backward compatibility
240
+ let approvalMode;
241
+ if (argv.approvalMode) {
242
+ // New --approval-mode flag takes precedence
243
+ switch (argv.approvalMode) {
244
+ case 'yolo':
245
+ approvalMode = ApprovalMode.YOLO;
246
+ break;
247
+ case 'auto_edit':
248
+ approvalMode = ApprovalMode.AUTO_EDIT;
249
+ break;
250
+ case 'default':
251
+ approvalMode = ApprovalMode.DEFAULT;
252
+ break;
253
+ default:
254
+ throw new Error(`Invalid approval mode: ${argv.approvalMode}. Valid values are: yolo, auto_edit, default`);
255
+ }
256
+ }
257
+ else {
258
+ // Fallback to legacy --yolo flag behavior
259
+ approvalMode =
260
+ argv.yolo || false ? ApprovalMode.YOLO : ApprovalMode.DEFAULT;
261
+ }
262
+ const interactive = !!argv.promptInteractive || (process.stdin.isTTY && question.length === 0);
263
+ // In non-interactive mode, exclude tools that require a prompt.
264
+ const extraExcludes = [];
265
+ if (!interactive && !argv.experimentalAcp) {
266
+ switch (approvalMode) {
267
+ case ApprovalMode.DEFAULT:
268
+ // In default non-interactive mode, all tools that require approval are excluded.
269
+ extraExcludes.push(ShellTool.Name, EditTool.Name, WriteFileTool.Name);
270
+ break;
271
+ case ApprovalMode.AUTO_EDIT:
272
+ // In auto-edit non-interactive mode, only tools that still require a prompt are excluded.
273
+ extraExcludes.push(ShellTool.Name);
274
+ break;
275
+ case ApprovalMode.YOLO:
276
+ // No extra excludes for YOLO mode.
277
+ break;
278
+ default:
279
+ // This should never happen due to validation earlier, but satisfies the linter
280
+ break;
281
+ }
282
+ }
283
+ const excludeTools = mergeExcludeTools(settings, activeExtensions, extraExcludes.length > 0 ? extraExcludes : undefined);
225
284
  const blockedMcpServers = [];
226
285
  if (!argv.allowedMcpServerNames) {
227
286
  if (settings.allowMCPServers) {
228
- const allowedNames = new Set(settings.allowMCPServers.filter(Boolean));
229
- if (allowedNames.size > 0) {
230
- mcpServers = Object.fromEntries(Object.entries(mcpServers).filter(([key]) => allowedNames.has(key)));
231
- }
287
+ mcpServers = allowedMcpServers(mcpServers, settings.allowMCPServers, blockedMcpServers);
232
288
  }
233
289
  if (settings.excludeMCPServers) {
234
290
  const excludedNames = new Set(settings.excludeMCPServers.filter(Boolean));
@@ -238,39 +294,18 @@ export async function loadCliConfig(settings, extensions, sessionId, argv) {
238
294
  }
239
295
  }
240
296
  if (argv.allowedMcpServerNames) {
241
- const allowedNames = new Set(argv.allowedMcpServerNames.filter(Boolean));
242
- if (allowedNames.size > 0) {
243
- mcpServers = Object.fromEntries(Object.entries(mcpServers).filter(([key, server]) => {
244
- const isAllowed = allowedNames.has(key);
245
- if (!isAllowed) {
246
- blockedMcpServers.push({
247
- name: key,
248
- extensionName: server.extensionName || '',
249
- });
250
- }
251
- return isAllowed;
252
- }));
253
- }
254
- else {
255
- blockedMcpServers.push(...Object.entries(mcpServers).map(([key, server]) => ({
256
- name: key,
257
- extensionName: server.extensionName || '',
258
- })));
259
- mcpServers = {};
260
- }
297
+ mcpServers = allowedMcpServers(mcpServers, argv.allowedMcpServerNames, blockedMcpServers);
261
298
  }
262
299
  const sandboxConfig = await loadSandboxConfig(settings, argv);
263
300
  return new Config({
264
301
  sessionId,
265
302
  embeddingModel: DEFAULT_GEMINI_EMBEDDING_MODEL,
266
303
  sandbox: sandboxConfig,
267
- targetDir: process.cwd(),
304
+ targetDir: cwd,
268
305
  includeDirectories,
269
- loadMemoryFromIncludeDirectories: argv.loadMemoryFromIncludeDirectories ||
270
- settings.loadMemoryFromIncludeDirectories ||
271
- false,
306
+ loadMemoryFromIncludeDirectories: settings.loadMemoryFromIncludeDirectories || false,
272
307
  debugMode,
273
- question: argv.promptInteractive || argv.prompt || '',
308
+ question,
274
309
  fullContext: argv.allFiles || argv.all_files || false,
275
310
  coreTools: settings.coreTools || undefined,
276
311
  excludeTools,
@@ -280,7 +315,7 @@ export async function loadCliConfig(settings, extensions, sessionId, argv) {
280
315
  mcpServers,
281
316
  userMemory: memoryContent,
282
317
  geminiMdFileCount: fileCount,
283
- approvalMode: argv.yolo || false ? ApprovalMode.YOLO : ApprovalMode.DEFAULT,
318
+ approvalMode,
284
319
  showMemoryUsage: argv.showMemoryUsage ||
285
320
  argv.show_memory_usage ||
286
321
  settings.showMemoryUsage ||
@@ -309,22 +344,49 @@ export async function loadCliConfig(settings, extensions, sessionId, argv) {
309
344
  process.env.https_proxy ||
310
345
  process.env.HTTP_PROXY ||
311
346
  process.env.http_proxy,
312
- cwd: process.cwd(),
347
+ cwd,
313
348
  fileDiscoveryService: fileService,
314
349
  bugCommand: settings.bugCommand,
315
350
  model: argv.model || settings.model || DEFAULT_GEMINI_MODEL,
316
351
  extensionContextFilePaths,
317
352
  maxSessionTurns: settings.maxSessionTurns ?? -1,
318
- experimentalAcp: argv.experimentalAcp || false,
353
+ experimentalZedIntegration: argv.experimentalAcp || false,
319
354
  listExtensions: argv.listExtensions || false,
320
355
  extensions: allExtensions,
321
356
  blockedMcpServers,
322
357
  noBrowser: !!process.env.NO_BROWSER,
323
358
  summarizeToolOutput: settings.summarizeToolOutput,
324
359
  ideMode,
325
- ideModeFeature,
360
+ chatCompression: settings.chatCompression,
361
+ folderTrustFeature,
362
+ folderTrust,
363
+ interactive,
364
+ trustedFolder,
326
365
  });
327
366
  }
367
+ function allowedMcpServers(mcpServers, allowMCPServers, blockedMcpServers) {
368
+ const allowedNames = new Set(allowMCPServers.filter(Boolean));
369
+ if (allowedNames.size > 0) {
370
+ mcpServers = Object.fromEntries(Object.entries(mcpServers).filter(([key, server]) => {
371
+ const isAllowed = allowedNames.has(key);
372
+ if (!isAllowed) {
373
+ blockedMcpServers.push({
374
+ name: key,
375
+ extensionName: server.extensionName || '',
376
+ });
377
+ }
378
+ return isAllowed;
379
+ }));
380
+ }
381
+ else {
382
+ blockedMcpServers.push(...Object.entries(mcpServers).map(([key, server]) => ({
383
+ name: key,
384
+ extensionName: server.extensionName || '',
385
+ })));
386
+ mcpServers = {};
387
+ }
388
+ return mcpServers;
389
+ }
328
390
  function mergeMcpServers(settings, extensions) {
329
391
  const mcpServers = { ...(settings.mcpServers || {}) };
330
392
  for (const extension of extensions) {
@@ -341,8 +403,11 @@ function mergeMcpServers(settings, extensions) {
341
403
  }
342
404
  return mcpServers;
343
405
  }
344
- function mergeExcludeTools(settings, extensions) {
345
- const allExcludeTools = new Set(settings.excludeTools || []);
406
+ function mergeExcludeTools(settings, extensions, extraExcludes) {
407
+ const allExcludeTools = new Set([
408
+ ...(settings.excludeTools || []),
409
+ ...(extraExcludes || []),
410
+ ]);
346
411
  for (const extension of extensions) {
347
412
  for (const tool of extension.config.excludeTools || []) {
348
413
  allExcludeTools.add(tool);
@@ -1 +1 @@
1
- {"version":3,"file":"config.js","sourceRoot":"","sources":["../../../src/config/config.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"config.js","sourceRoot":"","sources":["../../../src/config/config.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,KAAK,EAAE,MAAM,IAAI,CAAC;AACzB,OAAO,KAAK,IAAI,MAAM,MAAM,CAAC;AAC7B,OAAO,EAAE,OAAO,EAAE,MAAM,SAAS,CAAC;AAClC,OAAO,KAAK,MAAM,aAAa,CAAC;AAChC,OAAO,EAAE,OAAO,EAAE,MAAM,eAAe,CAAC;AACxC,OAAO,OAAO,MAAM,cAAc,CAAC;AACnC,OAAO,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAC;AAChD,OAAO,EACL,MAAM,EACN,4BAA4B,EAC5B,mBAAmB,IAAI,yBAAyB,EAChD,0BAA0B,EAC1B,YAAY,EACZ,oBAAoB,EACpB,8BAA8B,EAC9B,qCAAqC,EACrC,oBAAoB,EAGpB,SAAS,EACT,QAAQ,EACR,aAAa,GAEd,MAAM,yBAAyB,CAAC;AAGjC,OAAO,EAAa,wBAAwB,EAAE,MAAM,gBAAgB,CAAC;AACrE,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AACpD,OAAO,EAAE,iBAAiB,EAAE,MAAM,oBAAoB,CAAC;AACvD,OAAO,EAAE,WAAW,EAAE,MAAM,yBAAyB,CAAC;AAEtD,OAAO,EAAE,kBAAkB,EAAE,MAAM,qBAAqB,CAAC;AAEzD,0EAA0E;AAC1E,MAAM,MAAM,GAAG;IACb,8DAA8D;IAC9D,KAAK,EAAE,CAAC,GAAG,IAAW,EAAE,EAAE,CAAC,OAAO,CAAC,KAAK,CAAC,SAAS,EAAE,GAAG,IAAI,CAAC;IAC5D,8DAA8D;IAC9D,IAAI,EAAE,CAAC,GAAG,IAAW,EAAE,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,QAAQ,EAAE,GAAG,IAAI,CAAC;IACzD,8DAA8D;IAC9D,KAAK,EAAE,CAAC,GAAG,IAAW,EAAE,EAAE,CAAC,OAAO,CAAC,KAAK,CAAC,SAAS,EAAE,GAAG,IAAI,CAAC;CAC7D,CAAC;AA6BF,MAAM,CAAC,KAAK,UAAU,cAAc;IAClC,MAAM,aAAa,GAAG,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;SAC/C,UAAU,CAAC,QAAQ,CAAC;SACpB,KAAK,CACJ,uHAAuH,CACxH;SACA,OAAO,CAAC,IAAI,EAAE,mBAAmB,EAAE,CAAC,aAAa,EAAE,EAAE,CACpD,aAAa;SACV,MAAM,CAAC,OAAO,EAAE;QACf,KAAK,EAAE,GAAG;QACV,IAAI,EAAE,QAAQ;QACd,WAAW,EAAE,OAAO;QACpB,OAAO,EAAE,OAAO,CAAC,GAAG,CAAC,YAAY;KAClC,CAAC;SACD,MAAM,CAAC,QAAQ,EAAE;QAChB,KAAK,EAAE,GAAG;QACV,IAAI,EAAE,QAAQ;QACd,WAAW,EAAE,8CAA8C;KAC5D,CAAC;SACD,MAAM,CAAC,oBAAoB,EAAE;QAC5B,KAAK,EAAE,GAAG;QACV,IAAI,EAAE,QAAQ;QACd,WAAW,EACT,8DAA8D;KACjE,CAAC;SACD,MAAM,CAAC,SAAS,EAAE;QACjB,KAAK,EAAE,GAAG;QACV,IAAI,EAAE,SAAS;QACf,WAAW,EAAE,iBAAiB;KAC/B,CAAC;SACD,MAAM,CAAC,eAAe,EAAE;QACvB,IAAI,EAAE,QAAQ;QACd,WAAW,EAAE,oBAAoB;KAClC,CAAC;SACD,MAAM,CAAC,OAAO,EAAE;QACf,KAAK,EAAE,GAAG;QACV,IAAI,EAAE,SAAS;QACf,WAAW,EAAE,oBAAoB;QACjC,OAAO,EAAE,KAAK;KACf,CAAC;SACD,MAAM,CAAC,WAAW,EAAE;QACnB,KAAK,EAAE,CAAC,GAAG,CAAC;QACZ,IAAI,EAAE,SAAS;QACf,WAAW,EAAE,+BAA+B;QAC5C,OAAO,EAAE,KAAK;KACf,CAAC;SACD,MAAM,CAAC,WAAW,EAAE;QACnB,IAAI,EAAE,SAAS;QACf,WAAW,EAAE,+BAA+B;QAC5C,OAAO,EAAE,KAAK;KACf,CAAC;SACD,eAAe,CACd,WAAW,EACX,+EAA+E,CAChF;SACA,MAAM,CAAC,mBAAmB,EAAE;QAC3B,IAAI,EAAE,SAAS;QACf,WAAW,EAAE,iCAAiC;QAC9C,OAAO,EAAE,KAAK;KACf,CAAC;SACD,MAAM,CAAC,mBAAmB,EAAE;QAC3B,IAAI,EAAE,SAAS;QACf,WAAW,EAAE,iCAAiC;QAC9C,OAAO,EAAE,KAAK;KACf,CAAC;SACD,eAAe,CACd,mBAAmB,EACnB,+FAA+F,CAChG;SACA,MAAM,CAAC,MAAM,EAAE;QACd,KAAK,EAAE,GAAG;QACV,IAAI,EAAE,SAAS;QACf,WAAW,EACT,qHAAqH;QACvH,OAAO,EAAE,KAAK;KACf,CAAC;SACD,MAAM,CAAC,eAAe,EAAE;QACvB,IAAI,EAAE,QAAQ;QACd,OAAO,EAAE,CAAC,SAAS,EAAE,WAAW,EAAE,MAAM,CAAC;QACzC,WAAW,EACT,0HAA0H;KAC7H,CAAC;SACD,MAAM,CAAC,WAAW,EAAE;QACnB,IAAI,EAAE,SAAS;QACf,WAAW,EACT,iKAAiK;KACpK,CAAC;SACD,MAAM,CAAC,kBAAkB,EAAE;QAC1B,IAAI,EAAE,QAAQ;QACd,OAAO,EAAE,CAAC,OAAO,EAAE,KAAK,CAAC;QACzB,WAAW,EACT,oEAAoE;KACvE,CAAC;SACD,MAAM,CAAC,yBAAyB,EAAE;QACjC,IAAI,EAAE,QAAQ;QACd,WAAW,EACT,0FAA0F;KAC7F,CAAC;SACD,MAAM,CAAC,uBAAuB,EAAE;QAC/B,IAAI,EAAE,SAAS;QACf,WAAW,EACT,oFAAoF;KACvF,CAAC;SACD,MAAM,CAAC,mBAAmB,EAAE;QAC3B,IAAI,EAAE,QAAQ;QACd,WAAW,EAAE,sDAAsD;KACpE,CAAC;SACD,MAAM,CAAC,eAAe,EAAE;QACvB,KAAK,EAAE,GAAG;QACV,IAAI,EAAE,SAAS;QACf,WAAW,EAAE,qCAAqC;QAClD,OAAO,EAAE,KAAK;KACf,CAAC;SACD,MAAM,CAAC,kBAAkB,EAAE;QAC1B,IAAI,EAAE,SAAS;QACf,WAAW,EAAE,8BAA8B;KAC5C,CAAC;SACD,MAAM,CAAC,0BAA0B,EAAE;QAClC,IAAI,EAAE,OAAO;QACb,MAAM,EAAE,IAAI;QACZ,WAAW,EAAE,0BAA0B;KACxC,CAAC;SACD,MAAM,CAAC,YAAY,EAAE;QACpB,KAAK,EAAE,GAAG;QACV,IAAI,EAAE,OAAO;QACb,MAAM,EAAE,IAAI;QACZ,WAAW,EACT,wEAAwE;KAC3E,CAAC;SACD,MAAM,CAAC,iBAAiB,EAAE;QACzB,KAAK,EAAE,GAAG;QACV,IAAI,EAAE,SAAS;QACf,WAAW,EAAE,yCAAyC;KACvD,CAAC;SACD,MAAM,CAAC,OAAO,EAAE;QACf,IAAI,EAAE,QAAQ;QACd,WAAW,EACT,gEAAgE;KACnE,CAAC;SACD,MAAM,CAAC,qBAAqB,EAAE;QAC7B,IAAI,EAAE,OAAO;QACb,MAAM,EAAE,IAAI;QACZ,WAAW,EACT,wGAAwG;QAC1G,MAAM,EAAE,CAAC,IAAc,EAAE,EAAE;QACzB,gCAAgC;QAChC,IAAI,CAAC,OAAO,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC;KAC7D,CAAC;SACD,KAAK,CAAC,CAAC,IAAI,EAAE,EAAE;QACd,IAAI,IAAI,CAAC,MAAM,IAAI,IAAI,CAAC,iBAAiB,EAAE,CAAC;YAC1C,MAAM,IAAI,KAAK,CACb,sEAAsE,CACvE,CAAC;QACJ,CAAC;QACD,IAAI,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC,YAAY,EAAE,CAAC;YACnC,MAAM,IAAI,KAAK,CACb,6FAA6F,CAC9F,CAAC;QACJ,CAAC;QACD,OAAO,IAAI,CAAC;IACd,CAAC,CAAC,CACL;QACD,2BAA2B;SAC1B,OAAO,CAAC,UAAU,CAAC;SACnB,OAAO,CAAC,MAAM,aAAa,EAAE,CAAC,CAAC,4DAA4D;SAC3F,KAAK,CAAC,GAAG,EAAE,SAAS,CAAC;SACrB,IAAI,EAAE;SACN,KAAK,CAAC,GAAG,EAAE,MAAM,CAAC;SAClB,MAAM,EAAE;SACR,aAAa,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,gDAAgD;IAExE,aAAa,CAAC,IAAI,CAAC,aAAa,CAAC,aAAa,EAAE,CAAC,CAAC;IAClD,MAAM,MAAM,GAAG,MAAM,aAAa,CAAC,KAAK,EAAE,CAAC;IAE3C,gFAAgF;IAChF,mCAAmC;IACnC,IAAI,MAAM,CAAC,CAAC,CAAC,MAAM,GAAG,CAAC,IAAI,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,KAAK,EAAE,CAAC;QACjD,2DAA2D;QAC3D,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;IAED,0EAA0E;IAC1E,2CAA2C;IAC3C,OAAO,MAA4B,CAAC;AACtC,CAAC;AAED,0EAA0E;AAC1E,gFAAgF;AAChF,oGAAoG;AACpG,MAAM,CAAC,KAAK,UAAU,4BAA4B,CAChD,uBAA+B,EAC/B,iCAAoD,EAAE,EACtD,SAAkB,EAClB,WAAiC,EACjC,QAAkB,EAClB,4BAAsC,EAAE,EACxC,qBAAsC,MAAM,EAC5C,oBAA2C;IAE3C,+EAA+E;IAC/E,MAAM,OAAO,GAAG,EAAE,CAAC,YAAY,CAAC,IAAI,CAAC,OAAO,CAAC,uBAAuB,CAAC,CAAC,CAAC;IACvE,MAAM,QAAQ,GAAG,EAAE,CAAC,YAAY,CAAC,IAAI,CAAC,OAAO,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC;IAC1D,MAAM,eAAe,GAAG,OAAO,KAAK,QAAQ,CAAC;IAE7C,uEAAuE;IACvE,+DAA+D;IAC/D,MAAM,YAAY,GAAG,eAAe,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,uBAAuB,CAAC;IAEpE,IAAI,SAAS,EAAE,CAAC;QACd,MAAM,CAAC,KAAK,CACV,+DAA+D,uBAAuB,yBAAyB,kBAAkB,GAAG,CACrI,CAAC;IACJ,CAAC;IAED,6DAA6D;IAC7D,OAAO,4BAA4B,CACjC,YAAY,EACZ,8BAA8B,EAC9B,SAAS,EACT,WAAW,EACX,yBAAyB,EACzB,kBAAkB,EAClB,oBAAoB,EACpB,QAAQ,CAAC,sBAAsB,CAChC,CAAC;AACJ,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,aAAa,CACjC,QAAkB,EAClB,UAAuB,EACvB,SAAiB,EACjB,IAAa,EACb,MAAc,OAAO,CAAC,GAAG,EAAE;IAE3B,MAAM,SAAS,GACb,IAAI,CAAC,KAAK;QACV,CAAC,OAAO,CAAC,GAAG,CAAC,KAAK,EAAE,OAAO,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC,IAAI,CAC9C,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,KAAK,MAAM,IAAI,CAAC,KAAK,GAAG,CACjC;QACD,KAAK,CAAC;IACR,MAAM,kBAAkB,GAAG,QAAQ,CAAC,kBAAkB,IAAI,MAAM,CAAC;IAEjE,MAAM,OAAO,GAAG,QAAQ,CAAC,OAAO,IAAI,KAAK,CAAC;IAE1C,MAAM,kBAAkB,GAAG,QAAQ,CAAC,kBAAkB,IAAI,KAAK,CAAC;IAChE,MAAM,kBAAkB,GAAG,QAAQ,CAAC,WAAW,IAAI,IAAI,CAAC;IACxD,MAAM,WAAW,GAAG,kBAAkB,IAAI,kBAAkB,CAAC;IAC7D,MAAM,aAAa,GAAG,WAAW,CAAC,CAAC,CAAC,kBAAkB,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC;IAEhE,MAAM,aAAa,GAAG,wBAAwB,CAC5C,UAAU,EACV,IAAI,CAAC,UAAU,IAAI,EAAE,CACtB,CAAC;IAEF,MAAM,gBAAgB,GAAG,UAAU,CAAC,MAAM,CACxC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,QAAQ,CACpC,CAAC;IAEF,mFAAmF;IACnF,2FAA2F;IAC3F,wFAAwF;IACxF,+EAA+E;IAC/E,IAAI,QAAQ,CAAC,eAAe,EAAE,CAAC;QAC7B,yBAAyB,CAAC,QAAQ,CAAC,eAAe,CAAC,CAAC;IACtD,CAAC;SAAM,CAAC;QACN,gDAAgD;QAChD,yBAAyB,CAAC,0BAA0B,EAAE,CAAC,CAAC;IAC1D,CAAC;IAED,MAAM,yBAAyB,GAAG,gBAAgB,CAAC,OAAO,CACxD,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,YAAY,CACtB,CAAC;IAEF,MAAM,WAAW,GAAG,IAAI,oBAAoB,CAAC,GAAG,CAAC,CAAC;IAElD,MAAM,aAAa,GAAG;QACpB,GAAG,qCAAqC;QACxC,GAAG,QAAQ,CAAC,aAAa;KAC1B,CAAC;IAEF,MAAM,kBAAkB,GAAG,CAAC,QAAQ,CAAC,kBAAkB,IAAI,EAAE,CAAC;SAC3D,GAAG,CAAC,WAAW,CAAC;SAChB,MAAM,CAAC,CAAC,IAAI,CAAC,kBAAkB,IAAI,EAAE,CAAC,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC,CAAC;IAE5D,uFAAuF;IACvF,MAAM,EAAE,aAAa,EAAE,SAAS,EAAE,GAAG,MAAM,4BAA4B,CACrE,GAAG,EACH,QAAQ,CAAC,gCAAgC,CAAC,CAAC,CAAC,kBAAkB,CAAC,CAAC,CAAC,EAAE,EACnE,SAAS,EACT,WAAW,EACX,QAAQ,EACR,yBAAyB,EACzB,kBAAkB,EAClB,aAAa,CACd,CAAC;IAEF,IAAI,UAAU,GAAG,eAAe,CAAC,QAAQ,EAAE,gBAAgB,CAAC,CAAC;IAC7D,MAAM,QAAQ,GAAG,IAAI,CAAC,iBAAiB,IAAI,IAAI,CAAC,MAAM,IAAI,EAAE,CAAC;IAE7D,sDAAsD;IACtD,IAAI,YAA0B,CAAC;IAC/B,IAAI,IAAI,CAAC,YAAY,EAAE,CAAC;QACtB,4CAA4C;QAC5C,QAAQ,IAAI,CAAC,YAAY,EAAE,CAAC;YAC1B,KAAK,MAAM;gBACT,YAAY,GAAG,YAAY,CAAC,IAAI,CAAC;gBACjC,MAAM;YACR,KAAK,WAAW;gBACd,YAAY,GAAG,YAAY,CAAC,SAAS,CAAC;gBACtC,MAAM;YACR,KAAK,SAAS;gBACZ,YAAY,GAAG,YAAY,CAAC,OAAO,CAAC;gBACpC,MAAM;YACR;gBACE,MAAM,IAAI,KAAK,CACb,0BAA0B,IAAI,CAAC,YAAY,8CAA8C,CAC1F,CAAC;QACN,CAAC;IACH,CAAC;SAAM,CAAC;QACN,0CAA0C;QAC1C,YAAY;YACV,IAAI,CAAC,IAAI,IAAI,KAAK,CAAC,CAAC,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC,CAAC,YAAY,CAAC,OAAO,CAAC;IAClE,CAAC;IAED,MAAM,WAAW,GACf,CAAC,CAAC,IAAI,CAAC,iBAAiB,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,KAAK,IAAI,QAAQ,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC;IAC7E,gEAAgE;IAChE,MAAM,aAAa,GAAa,EAAE,CAAC;IACnC,IAAI,CAAC,WAAW,IAAI,CAAC,IAAI,CAAC,eAAe,EAAE,CAAC;QAC1C,QAAQ,YAAY,EAAE,CAAC;YACrB,KAAK,YAAY,CAAC,OAAO;gBACvB,iFAAiF;gBACjF,aAAa,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE,QAAQ,CAAC,IAAI,EAAE,aAAa,CAAC,IAAI,CAAC,CAAC;gBACtE,MAAM;YACR,KAAK,YAAY,CAAC,SAAS;gBACzB,0FAA0F;gBAC1F,aAAa,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;gBACnC,MAAM;YACR,KAAK,YAAY,CAAC,IAAI;gBACpB,mCAAmC;gBACnC,MAAM;YACR;gBACE,+EAA+E;gBAC/E,MAAM;QACV,CAAC;IACH,CAAC;IAED,MAAM,YAAY,GAAG,iBAAiB,CACpC,QAAQ,EACR,gBAAgB,EAChB,aAAa,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,SAAS,CACrD,CAAC;IACF,MAAM,iBAAiB,GAAmD,EAAE,CAAC;IAE7E,IAAI,CAAC,IAAI,CAAC,qBAAqB,EAAE,CAAC;QAChC,IAAI,QAAQ,CAAC,eAAe,EAAE,CAAC;YAC7B,UAAU,GAAG,iBAAiB,CAC5B,UAAU,EACV,QAAQ,CAAC,eAAe,EACxB,iBAAiB,CAClB,CAAC;QACJ,CAAC;QAED,IAAI,QAAQ,CAAC,iBAAiB,EAAE,CAAC;YAC/B,MAAM,aAAa,GAAG,IAAI,GAAG,CAAC,QAAQ,CAAC,iBAAiB,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC;YAC1E,IAAI,aAAa,CAAC,IAAI,GAAG,CAAC,EAAE,CAAC;gBAC3B,UAAU,GAAG,MAAM,CAAC,WAAW,CAC7B,MAAM,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,EAAE,CAAC,CAAC,aAAa,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CACtE,CAAC;YACJ,CAAC;QACH,CAAC;IACH,CAAC;IAED,IAAI,IAAI,CAAC,qBAAqB,EAAE,CAAC;QAC/B,UAAU,GAAG,iBAAiB,CAC5B,UAAU,EACV,IAAI,CAAC,qBAAqB,EAC1B,iBAAiB,CAClB,CAAC;IACJ,CAAC;IAED,MAAM,aAAa,GAAG,MAAM,iBAAiB,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAC;IAE9D,OAAO,IAAI,MAAM,CAAC;QAChB,SAAS;QACT,cAAc,EAAE,8BAA8B;QAC9C,OAAO,EAAE,aAAa;QACtB,SAAS,EAAE,GAAG;QACd,kBAAkB;QAClB,gCAAgC,EAC9B,QAAQ,CAAC,gCAAgC,IAAI,KAAK;QACpD,SAAS;QACT,QAAQ;QACR,WAAW,EAAE,IAAI,CAAC,QAAQ,IAAI,IAAI,CAAC,SAAS,IAAI,KAAK;QACrD,SAAS,EAAE,QAAQ,CAAC,SAAS,IAAI,SAAS;QAC1C,YAAY;QACZ,oBAAoB,EAAE,QAAQ,CAAC,oBAAoB;QACnD,eAAe,EAAE,QAAQ,CAAC,eAAe;QACzC,gBAAgB,EAAE,QAAQ,CAAC,gBAAgB;QAC3C,UAAU;QACV,UAAU,EAAE,aAAa;QACzB,iBAAiB,EAAE,SAAS;QAC5B,YAAY;QACZ,eAAe,EACb,IAAI,CAAC,eAAe;YACpB,IAAI,CAAC,iBAAiB;YACtB,QAAQ,CAAC,eAAe;YACxB,KAAK;QACP,aAAa,EAAE,QAAQ,CAAC,aAAa;QACrC,SAAS,EAAE;YACT,OAAO,EAAE,IAAI,CAAC,SAAS,IAAI,QAAQ,CAAC,SAAS,EAAE,OAAO;YACtD,MAAM,EAAE,CAAC,IAAI,CAAC,eAAe;gBAC3B,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAoB;YAChD,YAAY,EACV,IAAI,CAAC,qBAAqB;gBAC1B,OAAO,CAAC,GAAG,CAAC,2BAA2B;gBACvC,QAAQ,CAAC,SAAS,EAAE,YAAY;YAClC,UAAU,EAAE,IAAI,CAAC,mBAAmB,IAAI,QAAQ,CAAC,SAAS,EAAE,UAAU;YACtE,OAAO,EAAE,IAAI,CAAC,gBAAgB,IAAI,QAAQ,CAAC,SAAS,EAAE,OAAO;SAC9D;QACD,sBAAsB,EAAE,QAAQ,CAAC,sBAAsB,IAAI,IAAI;QAC/D,oCAAoC;QACpC,aAAa,EAAE;YACb,gBAAgB,EAAE,QAAQ,CAAC,aAAa,EAAE,gBAAgB;YAC1D,mBAAmB,EAAE,QAAQ,CAAC,aAAa,EAAE,mBAAmB;YAChE,yBAAyB,EACvB,QAAQ,CAAC,aAAa,EAAE,yBAAyB;SACpD;QACD,aAAa,EAAE,IAAI,CAAC,aAAa,IAAI,QAAQ,CAAC,aAAa,EAAE,OAAO;QACpE,KAAK,EACH,IAAI,CAAC,KAAK;YACV,OAAO,CAAC,GAAG,CAAC,WAAW;YACvB,OAAO,CAAC,GAAG,CAAC,WAAW;YACvB,OAAO,CAAC,GAAG,CAAC,UAAU;YACtB,OAAO,CAAC,GAAG,CAAC,UAAU;QACxB,GAAG;QACH,oBAAoB,EAAE,WAAW;QACjC,UAAU,EAAE,QAAQ,CAAC,UAAU;QAC/B,KAAK,EAAE,IAAI,CAAC,KAAK,IAAI,QAAQ,CAAC,KAAK,IAAI,oBAAoB;QAC3D,yBAAyB;QACzB,eAAe,EAAE,QAAQ,CAAC,eAAe,IAAI,CAAC,CAAC;QAC/C,0BAA0B,EAAE,IAAI,CAAC,eAAe,IAAI,KAAK;QACzD,cAAc,EAAE,IAAI,CAAC,cAAc,IAAI,KAAK;QAC5C,UAAU,EAAE,aAAa;QACzB,iBAAiB;QACjB,SAAS,EAAE,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,UAAU;QACnC,mBAAmB,EAAE,QAAQ,CAAC,mBAAmB;QACjD,OAAO;QACP,eAAe,EAAE,QAAQ,CAAC,eAAe;QACzC,kBAAkB;QAClB,WAAW;QACX,WAAW;QACX,aAAa;KACd,CAAC,CAAC;AACL,CAAC;AAED,SAAS,iBAAiB,CACxB,UAA4C,EAC5C,eAAyB,EACzB,iBAAiE;IAEjE,MAAM,YAAY,GAAG,IAAI,GAAG,CAAC,eAAe,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC;IAC9D,IAAI,YAAY,CAAC,IAAI,GAAG,CAAC,EAAE,CAAC;QAC1B,UAAU,GAAG,MAAM,CAAC,WAAW,CAC7B,MAAM,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,GAAG,EAAE,MAAM,CAAC,EAAE,EAAE;YAClD,MAAM,SAAS,GAAG,YAAY,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;YACxC,IAAI,CAAC,SAAS,EAAE,CAAC;gBACf,iBAAiB,CAAC,IAAI,CAAC;oBACrB,IAAI,EAAE,GAAG;oBACT,aAAa,EAAE,MAAM,CAAC,aAAa,IAAI,EAAE;iBAC1C,CAAC,CAAC;YACL,CAAC;YACD,OAAO,SAAS,CAAC;QACnB,CAAC,CAAC,CACH,CAAC;IACJ,CAAC;SAAM,CAAC;QACN,iBAAiB,CAAC,IAAI,CACpB,GAAG,MAAM,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,EAAE,MAAM,CAAC,EAAE,EAAE,CAAC,CAAC;YACpD,IAAI,EAAE,GAAG;YACT,aAAa,EAAE,MAAM,CAAC,aAAa,IAAI,EAAE;SAC1C,CAAC,CAAC,CACJ,CAAC;QACF,UAAU,GAAG,EAAE,CAAC;IAClB,CAAC;IACD,OAAO,UAAU,CAAC;AACpB,CAAC;AAED,SAAS,eAAe,CAAC,QAAkB,EAAE,UAAuB;IAClE,MAAM,UAAU,GAAG,EAAE,GAAG,CAAC,QAAQ,CAAC,UAAU,IAAI,EAAE,CAAC,EAAE,CAAC;IACtD,KAAK,MAAM,SAAS,IAAI,UAAU,EAAE,CAAC;QACnC,MAAM,CAAC,OAAO,CAAC,SAAS,CAAC,MAAM,CAAC,UAAU,IAAI,EAAE,CAAC,CAAC,OAAO,CACvD,CAAC,CAAC,GAAG,EAAE,MAAM,CAAC,EAAE,EAAE;YAChB,IAAI,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC;gBACpB,MAAM,CAAC,IAAI,CACT,sDAAsD,GAAG,yBAAyB,CACnF,CAAC;gBACF,OAAO;YACT,CAAC;YACD,UAAU,CAAC,GAAG,CAAC,GAAG;gBAChB,GAAG,MAAM;gBACT,aAAa,EAAE,SAAS,CAAC,MAAM,CAAC,IAAI;aACrC,CAAC;QACJ,CAAC,CACF,CAAC;IACJ,CAAC;IACD,OAAO,UAAU,CAAC;AACpB,CAAC;AAED,SAAS,iBAAiB,CACxB,QAAkB,EAClB,UAAuB,EACvB,aAAoC;IAEpC,MAAM,eAAe,GAAG,IAAI,GAAG,CAAC;QAC9B,GAAG,CAAC,QAAQ,CAAC,YAAY,IAAI,EAAE,CAAC;QAChC,GAAG,CAAC,aAAa,IAAI,EAAE,CAAC;KACzB,CAAC,CAAC;IACH,KAAK,MAAM,SAAS,IAAI,UAAU,EAAE,CAAC;QACnC,KAAK,MAAM,IAAI,IAAI,SAAS,CAAC,MAAM,CAAC,YAAY,IAAI,EAAE,EAAE,CAAC;YACvD,eAAe,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;QAC5B,CAAC;IACH,CAAC;IACD,OAAO,CAAC,GAAG,eAAe,CAAC,CAAC;AAC9B,CAAC"}