@google/gemini-cli 0.9.0-nightly.20250926.1487841d → 0.9.0-nightly.20251001.33269bdb

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 (216) hide show
  1. package/dist/package.json +2 -2
  2. package/dist/src/commands/extensions/new.test.js +4 -3
  3. package/dist/src/commands/extensions/new.test.js.map +1 -1
  4. package/dist/src/commands/extensions/update.js +18 -4
  5. package/dist/src/commands/extensions/update.js.map +1 -1
  6. package/dist/src/commands/mcp/list.js +3 -2
  7. package/dist/src/commands/mcp/list.js.map +1 -1
  8. package/dist/src/config/config.d.ts +3 -2
  9. package/dist/src/config/config.js +52 -47
  10. package/dist/src/config/config.js.map +1 -1
  11. package/dist/src/config/extension.d.ts +6 -4
  12. package/dist/src/config/extension.js +40 -58
  13. package/dist/src/config/extension.js.map +1 -1
  14. package/dist/src/config/extensions/extensionEnablement.d.ts +12 -9
  15. package/dist/src/config/extensions/extensionEnablement.js +37 -9
  16. package/dist/src/config/extensions/extensionEnablement.js.map +1 -1
  17. package/dist/src/config/extensions/extensionEnablement.test.js +72 -0
  18. package/dist/src/config/extensions/extensionEnablement.test.js.map +1 -1
  19. package/dist/src/config/extensions/github.js +7 -4
  20. package/dist/src/config/extensions/github.js.map +1 -1
  21. package/dist/src/config/extensions/update.d.ts +4 -5
  22. package/dist/src/config/extensions/update.js +54 -40
  23. package/dist/src/config/extensions/update.js.map +1 -1
  24. package/dist/src/config/extensions/update.test.js +84 -69
  25. package/dist/src/config/extensions/update.test.js.map +1 -1
  26. package/dist/src/config/settings.js +1 -0
  27. package/dist/src/config/settings.js.map +1 -1
  28. package/dist/src/config/settingsSchema.d.ts +21 -3
  29. package/dist/src/config/settingsSchema.js +20 -2
  30. package/dist/src/config/settingsSchema.js.map +1 -1
  31. package/dist/src/config/settingsSchema.test.js +9 -1
  32. package/dist/src/config/settingsSchema.test.js.map +1 -1
  33. package/dist/src/gemini.js +8 -7
  34. package/dist/src/gemini.js.map +1 -1
  35. package/dist/src/gemini.test.js +1 -1
  36. package/dist/src/gemini.test.js.map +1 -1
  37. package/dist/src/generated/git-commit.d.ts +2 -2
  38. package/dist/src/generated/git-commit.js +2 -2
  39. package/dist/src/test-utils/render.d.ts +3 -1
  40. package/dist/src/test-utils/render.js +4 -1
  41. package/dist/src/test-utils/render.js.map +1 -1
  42. package/dist/src/ui/App.js +7 -9
  43. package/dist/src/ui/App.js.map +1 -1
  44. package/dist/src/ui/AppContainer.js +47 -9
  45. package/dist/src/ui/AppContainer.js.map +1 -1
  46. package/dist/src/ui/AppContainer.test.js +269 -7
  47. package/dist/src/ui/AppContainer.test.js.map +1 -1
  48. package/dist/src/ui/IdeIntegrationNudge.js +3 -0
  49. package/dist/src/ui/IdeIntegrationNudge.js.map +1 -1
  50. package/dist/src/ui/auth/AuthDialog.js +8 -1
  51. package/dist/src/ui/auth/AuthDialog.js.map +1 -1
  52. package/dist/src/ui/auth/AuthDialog.test.js +1 -0
  53. package/dist/src/ui/auth/AuthDialog.test.js.map +1 -1
  54. package/dist/src/ui/commands/extensionsCommand.js +14 -10
  55. package/dist/src/ui/commands/extensionsCommand.js.map +1 -1
  56. package/dist/src/ui/commands/mcpCommand.js +78 -260
  57. package/dist/src/ui/commands/mcpCommand.js.map +1 -1
  58. package/dist/src/ui/commands/toolsCommand.js +10 -24
  59. package/dist/src/ui/commands/toolsCommand.js.map +1 -1
  60. package/dist/src/ui/commands/types.d.ts +6 -5
  61. package/dist/src/ui/commands/types.js.map +1 -1
  62. package/dist/src/ui/components/Composer.js +4 -21
  63. package/dist/src/ui/components/Composer.js.map +1 -1
  64. package/dist/src/ui/components/ConsentPrompt.d.ts +13 -0
  65. package/dist/src/ui/components/ConsentPrompt.js +19 -0
  66. package/dist/src/ui/components/ConsentPrompt.js.map +1 -0
  67. package/dist/src/ui/components/ConsentPrompt.test.d.ts +6 -0
  68. package/dist/src/ui/components/ConsentPrompt.test.js +67 -0
  69. package/dist/src/ui/components/ConsentPrompt.test.js.map +1 -0
  70. package/dist/src/ui/components/DialogManager.d.ts +2 -1
  71. package/dist/src/ui/components/DialogManager.js +9 -9
  72. package/dist/src/ui/components/DialogManager.js.map +1 -1
  73. package/dist/src/ui/components/EditorSettingsDialog.js +11 -2
  74. package/dist/src/ui/components/EditorSettingsDialog.js.map +1 -1
  75. package/dist/src/ui/components/ExitWarning.d.ts +7 -0
  76. package/dist/src/ui/components/ExitWarning.js +9 -0
  77. package/dist/src/ui/components/ExitWarning.js.map +1 -0
  78. package/dist/src/ui/components/FolderTrustDialog.js +3 -0
  79. package/dist/src/ui/components/FolderTrustDialog.js.map +1 -1
  80. package/dist/src/ui/components/Footer.d.ts +1 -19
  81. package/dist/src/ui/components/Footer.js +28 -2
  82. package/dist/src/ui/components/Footer.js.map +1 -1
  83. package/dist/src/ui/components/HistoryItemDisplay.d.ts +1 -0
  84. package/dist/src/ui/components/HistoryItemDisplay.js +5 -2
  85. package/dist/src/ui/components/HistoryItemDisplay.js.map +1 -1
  86. package/dist/src/ui/components/HistoryItemDisplay.test.js +50 -10
  87. package/dist/src/ui/components/HistoryItemDisplay.test.js.map +1 -1
  88. package/dist/src/ui/components/IdeTrustChangeDialog.d.ts +11 -0
  89. package/dist/src/ui/components/IdeTrustChangeDialog.js +32 -0
  90. package/dist/src/ui/components/IdeTrustChangeDialog.js.map +1 -0
  91. package/dist/src/ui/components/IdeTrustChangeDialog.test.d.ts +6 -0
  92. package/dist/src/ui/components/IdeTrustChangeDialog.test.js +57 -0
  93. package/dist/src/ui/components/IdeTrustChangeDialog.test.js.map +1 -0
  94. package/dist/src/ui/components/InputPrompt.d.ts +6 -0
  95. package/dist/src/ui/components/InputPrompt.js +43 -13
  96. package/dist/src/ui/components/InputPrompt.js.map +1 -1
  97. package/dist/src/ui/components/LoopDetectionConfirmation.js +2 -0
  98. package/dist/src/ui/components/LoopDetectionConfirmation.js.map +1 -1
  99. package/dist/src/ui/components/MainContent.js +6 -1
  100. package/dist/src/ui/components/MainContent.js.map +1 -1
  101. package/dist/src/ui/components/ModelDialog.js +4 -0
  102. package/dist/src/ui/components/ModelDialog.js.map +1 -1
  103. package/dist/src/ui/components/PermissionsModifyTrustDialog.js +3 -0
  104. package/dist/src/ui/components/PermissionsModifyTrustDialog.js.map +1 -1
  105. package/dist/src/ui/components/PermissionsModifyTrustDialog.test.js +0 -4
  106. package/dist/src/ui/components/PermissionsModifyTrustDialog.test.js.map +1 -1
  107. package/dist/src/ui/components/ProQuotaDialog.js +2 -0
  108. package/dist/src/ui/components/ProQuotaDialog.js.map +1 -1
  109. package/dist/src/ui/components/ProQuotaDialog.test.js +2 -0
  110. package/dist/src/ui/components/ProQuotaDialog.test.js.map +1 -1
  111. package/dist/src/ui/components/SettingsDialog.js +5 -2
  112. package/dist/src/ui/components/SettingsDialog.js.map +1 -1
  113. package/dist/src/ui/components/ShellConfirmationDialog.js +3 -0
  114. package/dist/src/ui/components/ShellConfirmationDialog.js.map +1 -1
  115. package/dist/src/ui/components/ThemeDialog.js +2 -0
  116. package/dist/src/ui/components/ThemeDialog.js.map +1 -1
  117. package/dist/src/ui/components/WorkspaceMigrationDialog.js +2 -2
  118. package/dist/src/ui/components/WorkspaceMigrationDialog.js.map +1 -1
  119. package/dist/src/ui/components/messages/ToolConfirmationMessage.js +14 -0
  120. package/dist/src/ui/components/messages/ToolConfirmationMessage.js.map +1 -1
  121. package/dist/src/ui/components/messages/ToolMessage.js +24 -1
  122. package/dist/src/ui/components/messages/ToolMessage.js.map +1 -1
  123. package/dist/src/ui/components/messages/UserMessage.js +1 -2
  124. package/dist/src/ui/components/messages/UserMessage.js.map +1 -1
  125. package/dist/src/ui/components/shared/BaseSelectionList.d.ts +5 -10
  126. package/dist/src/ui/components/shared/BaseSelectionList.js +1 -1
  127. package/dist/src/ui/components/shared/BaseSelectionList.js.map +1 -1
  128. package/dist/src/ui/components/shared/BaseSelectionList.test.js +7 -5
  129. package/dist/src/ui/components/shared/BaseSelectionList.test.js.map +1 -1
  130. package/dist/src/ui/components/shared/DescriptiveRadioButtonSelect.d.ts +2 -3
  131. package/dist/src/ui/components/shared/DescriptiveRadioButtonSelect.js +1 -1
  132. package/dist/src/ui/components/shared/DescriptiveRadioButtonSelect.js.map +1 -1
  133. package/dist/src/ui/components/shared/DescriptiveRadioButtonSelect.test.js +13 -2
  134. package/dist/src/ui/components/shared/DescriptiveRadioButtonSelect.test.js.map +1 -1
  135. package/dist/src/ui/components/shared/RadioButtonSelect.d.ts +2 -3
  136. package/dist/src/ui/components/shared/RadioButtonSelect.js +1 -1
  137. package/dist/src/ui/components/shared/RadioButtonSelect.js.map +1 -1
  138. package/dist/src/ui/components/shared/RadioButtonSelect.test.js +5 -3
  139. package/dist/src/ui/components/shared/RadioButtonSelect.test.js.map +1 -1
  140. package/dist/src/ui/components/shared/ScopeSelector.js +4 -1
  141. package/dist/src/ui/components/shared/ScopeSelector.js.map +1 -1
  142. package/dist/src/ui/components/views/McpStatus.d.ts +27 -0
  143. package/dist/src/ui/components/views/McpStatus.js +77 -0
  144. package/dist/src/ui/components/views/McpStatus.js.map +1 -0
  145. package/dist/src/ui/components/views/McpStatus.test.d.ts +6 -0
  146. package/dist/src/ui/components/views/McpStatus.test.js +117 -0
  147. package/dist/src/ui/components/views/McpStatus.test.js.map +1 -0
  148. package/dist/src/ui/components/views/ToolsList.d.ts +14 -0
  149. package/dist/src/ui/components/views/ToolsList.js +7 -0
  150. package/dist/src/ui/components/views/ToolsList.js.map +1 -0
  151. package/dist/src/ui/components/views/ToolsList.test.d.ts +6 -0
  152. package/dist/src/ui/components/views/ToolsList.test.js +45 -0
  153. package/dist/src/ui/components/views/ToolsList.test.js.map +1 -0
  154. package/dist/src/ui/contexts/UIStateContext.d.ts +4 -1
  155. package/dist/src/ui/contexts/UIStateContext.js +1 -0
  156. package/dist/src/ui/contexts/UIStateContext.js.map +1 -1
  157. package/dist/src/ui/hooks/slashCommandProcessor.d.ts +5 -5
  158. package/dist/src/ui/hooks/slashCommandProcessor.js +4 -2
  159. package/dist/src/ui/hooks/slashCommandProcessor.js.map +1 -1
  160. package/dist/src/ui/hooks/useExtensionUpdates.d.ts +10 -1
  161. package/dist/src/ui/hooks/useExtensionUpdates.js +97 -51
  162. package/dist/src/ui/hooks/useExtensionUpdates.js.map +1 -1
  163. package/dist/src/ui/hooks/useExtensionUpdates.test.js +158 -80
  164. package/dist/src/ui/hooks/useExtensionUpdates.test.js.map +1 -1
  165. package/dist/src/ui/hooks/useIdeTrustListener.d.ts +4 -2
  166. package/dist/src/ui/hooks/useIdeTrustListener.js +40 -14
  167. package/dist/src/ui/hooks/useIdeTrustListener.js.map +1 -1
  168. package/dist/src/ui/hooks/useIdeTrustListener.test.d.ts +6 -0
  169. package/dist/src/ui/hooks/useIdeTrustListener.test.js +183 -0
  170. package/dist/src/ui/hooks/useIdeTrustListener.test.js.map +1 -0
  171. package/dist/src/ui/hooks/useSelectionList.d.ts +1 -0
  172. package/dist/src/ui/hooks/useSelectionList.js +63 -43
  173. package/dist/src/ui/hooks/useSelectionList.js.map +1 -1
  174. package/dist/src/ui/hooks/useSelectionList.test.js +111 -37
  175. package/dist/src/ui/hooks/useSelectionList.test.js.map +1 -1
  176. package/dist/src/ui/hooks/useToolScheduler.test.js +2 -2
  177. package/dist/src/ui/hooks/useToolScheduler.test.js.map +1 -1
  178. package/dist/src/ui/layouts/DefaultAppLayout.d.ts +7 -0
  179. package/dist/src/ui/layouts/DefaultAppLayout.js +13 -0
  180. package/dist/src/ui/layouts/DefaultAppLayout.js.map +1 -0
  181. package/dist/src/ui/layouts/ScreenReaderAppLayout.d.ts +7 -0
  182. package/dist/src/ui/layouts/ScreenReaderAppLayout.js +14 -0
  183. package/dist/src/ui/layouts/ScreenReaderAppLayout.js.map +1 -0
  184. package/dist/src/ui/noninteractive/nonInteractiveUi.js +2 -1
  185. package/dist/src/ui/noninteractive/nonInteractiveUi.js.map +1 -1
  186. package/dist/src/ui/privacy/CloudFreePrivacyNotice.js +2 -2
  187. package/dist/src/ui/privacy/CloudFreePrivacyNotice.js.map +1 -1
  188. package/dist/src/ui/state/extensions.d.ts +27 -0
  189. package/dist/src/ui/state/extensions.js +45 -0
  190. package/dist/src/ui/state/extensions.js.map +1 -1
  191. package/dist/src/ui/types.d.ts +45 -3
  192. package/dist/src/ui/types.js +2 -0
  193. package/dist/src/ui/types.js.map +1 -1
  194. package/dist/src/ui/utils/MarkdownDisplay.js +1 -2
  195. package/dist/src/ui/utils/MarkdownDisplay.js.map +1 -1
  196. package/dist/src/ui/utils/MarkdownDisplay.test.js +94 -91
  197. package/dist/src/ui/utils/MarkdownDisplay.test.js.map +1 -1
  198. package/dist/src/ui/utils/displayUtils.d.ts +1 -0
  199. package/dist/src/ui/utils/displayUtils.js +3 -0
  200. package/dist/src/ui/utils/displayUtils.js.map +1 -1
  201. package/dist/src/ui/utils/displayUtils.test.js +36 -17
  202. package/dist/src/ui/utils/displayUtils.test.js.map +1 -1
  203. package/dist/src/utils/windowTitle.d.ts +12 -0
  204. package/dist/src/utils/windowTitle.js +19 -0
  205. package/dist/src/utils/windowTitle.js.map +1 -0
  206. package/dist/src/utils/windowTitle.test.d.ts +6 -0
  207. package/dist/src/utils/windowTitle.test.js +49 -0
  208. package/dist/src/utils/windowTitle.test.js.map +1 -0
  209. package/dist/src/zed-integration/fileSystemService.d.ts +1 -0
  210. package/dist/src/zed-integration/fileSystemService.js +3 -0
  211. package/dist/src/zed-integration/fileSystemService.js.map +1 -1
  212. package/dist/src/zed-integration/zedIntegration.d.ts +1 -1
  213. package/dist/src/zed-integration/zedIntegration.js +3 -1
  214. package/dist/src/zed-integration/zedIntegration.js.map +1 -1
  215. package/dist/tsconfig.tsbuildinfo +1 -1
  216. package/package.json +3 -3
@@ -4,7 +4,7 @@
4
4
  * SPDX-License-Identifier: Apache-2.0
5
5
  */
6
6
  import { requestConsentInteractive } from '../../config/extension.js';
7
- import { updateAllUpdatableExtensions, updateExtension, } from '../../config/extensions/update.js';
7
+ import { updateAllUpdatableExtensions, updateExtension, checkForAllExtensionUpdates, } from '../../config/extensions/update.js';
8
8
  import { getErrorMessage } from '../../utils/errors.js';
9
9
  import { ExtensionUpdateState } from '../state/extensions.js';
10
10
  import { MessageType } from '../types.js';
@@ -27,13 +27,14 @@ async function updateAction(context, args) {
27
27
  return;
28
28
  }
29
29
  try {
30
+ await checkForAllExtensionUpdates(context.services.config.getExtensions(), context.ui.dispatchExtensionStateUpdate);
30
31
  context.ui.setPendingItem({
31
32
  type: MessageType.EXTENSIONS_LIST,
32
33
  });
33
34
  if (all) {
34
35
  updateInfos = await updateAllUpdatableExtensions(context.services.config.getWorkingDir(),
35
36
  // We don't have the ability to prompt for consent yet in this flow.
36
- (description) => requestConsentInteractive(description, context.ui.addItem), context.services.config.getExtensions(), context.ui.extensionsUpdateState, context.ui.setExtensionsUpdateState);
37
+ (description) => requestConsentInteractive(description, context.ui.addConfirmUpdateExtensionRequest), context.services.config.getExtensions(), context.ui.extensionsUpdateState, context.ui.dispatchExtensionStateUpdate);
37
38
  }
38
39
  else if (names?.length) {
39
40
  const workingDir = context.services.config.getWorkingDir();
@@ -47,14 +48,8 @@ async function updateAction(context, args) {
47
48
  }, Date.now());
48
49
  continue;
49
50
  }
50
- const updateInfo = await updateExtension(extension, workingDir, (description) => requestConsentInteractive(description, context.ui.addItem), context.ui.extensionsUpdateState.get(extension.name) ??
51
- ExtensionUpdateState.UNKNOWN, (updateState) => {
52
- context.ui.setExtensionsUpdateState((prev) => {
53
- const newState = new Map(prev);
54
- newState.set(name, updateState);
55
- return newState;
56
- });
57
- });
51
+ const updateInfo = await updateExtension(extension, workingDir, (description) => requestConsentInteractive(description, context.ui.addConfirmUpdateExtensionRequest), context.ui.extensionsUpdateState.get(extension.name)?.status ??
52
+ ExtensionUpdateState.UNKNOWN, context.ui.dispatchExtensionStateUpdate);
58
53
  if (updateInfo)
59
54
  updateInfos.push(updateInfo);
60
55
  }
@@ -91,6 +86,15 @@ const updateExtensionsCommand = {
91
86
  description: 'Update extensions. Usage: update <extension-names>|--all',
92
87
  kind: CommandKind.BUILT_IN,
93
88
  action: updateAction,
89
+ completion: async (context, partialArg) => {
90
+ const extensions = context.services.config?.getExtensions() ?? [];
91
+ const extensionNames = extensions.map((ext) => ext.name);
92
+ const suggestions = extensionNames.filter((name) => name.startsWith(partialArg));
93
+ if ('--all'.startsWith(partialArg) || 'all'.startsWith(partialArg)) {
94
+ suggestions.unshift('--all');
95
+ }
96
+ return suggestions;
97
+ },
94
98
  };
95
99
  export const extensionsCommand = {
96
100
  name: 'extensions',
@@ -1 +1 @@
1
- {"version":3,"file":"extensionsCommand.js","sourceRoot":"","sources":["../../../../src/ui/commands/extensionsCommand.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"extensionsCommand.js","sourceRoot":"","sources":["../../../../src/ui/commands/extensionsCommand.ts"],"names":[],"mappings":"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"}
@@ -4,262 +4,9 @@
4
4
  * SPDX-License-Identifier: Apache-2.0
5
5
  */
6
6
  import { CommandKind } from './types.js';
7
- import { DiscoveredMCPTool, getMCPDiscoveryState, getMCPServerStatus, MCPDiscoveryState, MCPServerStatus, mcpServerRequiresOAuth, getErrorMessage, MCPOAuthTokenStorage, } from '@google/gemini-cli-core';
7
+ import { DiscoveredMCPTool, getMCPDiscoveryState, getMCPServerStatus, MCPDiscoveryState, MCPServerStatus, getErrorMessage, MCPOAuthTokenStorage, } from '@google/gemini-cli-core';
8
8
  import { appEvents, AppEvent } from '../../utils/events.js';
9
- const COLOR_GREEN = '\u001b[32m';
10
- const COLOR_YELLOW = '\u001b[33m';
11
- const COLOR_RED = '\u001b[31m';
12
- const COLOR_CYAN = '\u001b[36m';
13
- const COLOR_GREY = '\u001b[90m';
14
- const RESET_COLOR = '\u001b[0m';
15
- const getMcpStatus = async (context, showDescriptions, showSchema, showTips = false) => {
16
- const { config } = context.services;
17
- if (!config) {
18
- return {
19
- type: 'message',
20
- messageType: 'error',
21
- content: 'Config not loaded.',
22
- };
23
- }
24
- const toolRegistry = config.getToolRegistry();
25
- if (!toolRegistry) {
26
- return {
27
- type: 'message',
28
- messageType: 'error',
29
- content: 'Could not retrieve tool registry.',
30
- };
31
- }
32
- const mcpServers = config.getMcpServers() || {};
33
- const serverNames = Object.keys(mcpServers);
34
- const blockedMcpServers = config.getBlockedMcpServers() || [];
35
- if (serverNames.length === 0 && blockedMcpServers.length === 0) {
36
- const docsUrl = 'https://goo.gle/gemini-cli-docs-mcp';
37
- return {
38
- type: 'message',
39
- messageType: 'info',
40
- content: `No MCP servers configured. Please view MCP documentation in your browser: ${docsUrl} or use the cli /docs command`,
41
- };
42
- }
43
- // Check if any servers are still connecting
44
- const connectingServers = serverNames.filter((name) => getMCPServerStatus(name) === MCPServerStatus.CONNECTING);
45
- const discoveryState = getMCPDiscoveryState();
46
- let message = '';
47
- // Add overall discovery status message if needed
48
- if (discoveryState === MCPDiscoveryState.IN_PROGRESS ||
49
- connectingServers.length > 0) {
50
- message += `${COLOR_YELLOW}⏳ MCP servers are starting up (${connectingServers.length} initializing)...${RESET_COLOR}\n`;
51
- message += `${COLOR_CYAN}Note: First startup may take longer. Tool availability will update automatically.${RESET_COLOR}\n\n`;
52
- }
53
- message += 'Configured MCP servers:\n\n';
54
- const allTools = toolRegistry.getAllTools();
55
- for (const serverName of serverNames) {
56
- const serverTools = allTools.filter((tool) => tool instanceof DiscoveredMCPTool && tool.serverName === serverName);
57
- const promptRegistry = await config.getPromptRegistry();
58
- const serverPrompts = promptRegistry.getPromptsByServer(serverName) || [];
59
- const originalStatus = getMCPServerStatus(serverName);
60
- const hasCachedItems = serverTools.length > 0 || serverPrompts.length > 0;
61
- // If the server is "disconnected" but has prompts or cached tools, display it as Ready
62
- // by using CONNECTED as the display status.
63
- const status = originalStatus === MCPServerStatus.DISCONNECTED && hasCachedItems
64
- ? MCPServerStatus.CONNECTED
65
- : originalStatus;
66
- // Add status indicator with descriptive text
67
- let statusIndicator = '';
68
- let statusText = '';
69
- switch (status) {
70
- case MCPServerStatus.CONNECTED:
71
- statusIndicator = '🟢';
72
- statusText = 'Ready';
73
- break;
74
- case MCPServerStatus.CONNECTING:
75
- statusIndicator = '🔄';
76
- statusText = 'Starting... (first startup may take longer)';
77
- break;
78
- case MCPServerStatus.DISCONNECTED:
79
- default:
80
- statusIndicator = '🔴';
81
- statusText = 'Disconnected';
82
- break;
83
- }
84
- // Get server description if available
85
- const server = mcpServers[serverName];
86
- let serverDisplayName = serverName;
87
- if (server.extensionName) {
88
- serverDisplayName += ` (from ${server.extensionName})`;
89
- }
90
- // Format server header with bold formatting and status
91
- message += `${statusIndicator} \u001b[1m${serverDisplayName}\u001b[0m - ${statusText}`;
92
- let needsAuthHint = mcpServerRequiresOAuth.get(serverName) || false;
93
- // Add OAuth status if applicable
94
- if (server?.oauth?.enabled) {
95
- needsAuthHint = true;
96
- try {
97
- const { MCPOAuthTokenStorage } = await import('@google/gemini-cli-core');
98
- const tokenStorage = new MCPOAuthTokenStorage();
99
- const hasToken = await tokenStorage.getCredentials(serverName);
100
- if (hasToken) {
101
- const isExpired = tokenStorage.isTokenExpired(hasToken.token);
102
- if (isExpired) {
103
- message += ` ${COLOR_YELLOW}(OAuth token expired)${RESET_COLOR}`;
104
- }
105
- else {
106
- message += ` ${COLOR_GREEN}(OAuth authenticated)${RESET_COLOR}`;
107
- needsAuthHint = false;
108
- }
109
- }
110
- else {
111
- message += ` ${COLOR_RED}(OAuth not authenticated)${RESET_COLOR}`;
112
- }
113
- }
114
- catch (_err) {
115
- // If we can't check OAuth status, just continue
116
- }
117
- }
118
- // Add tool count with conditional messaging
119
- if (status === MCPServerStatus.CONNECTED) {
120
- const parts = [];
121
- if (serverTools.length > 0) {
122
- parts.push(`${serverTools.length} ${serverTools.length === 1 ? 'tool' : 'tools'}`);
123
- }
124
- if (serverPrompts.length > 0) {
125
- parts.push(`${serverPrompts.length} ${serverPrompts.length === 1 ? 'prompt' : 'prompts'}`);
126
- }
127
- if (parts.length > 0) {
128
- message += ` (${parts.join(', ')})`;
129
- }
130
- else {
131
- message += ` (0 tools)`;
132
- }
133
- }
134
- else if (status === MCPServerStatus.CONNECTING) {
135
- message += ` (tools and prompts will appear when ready)`;
136
- }
137
- else {
138
- message += ` (${serverTools.length} tools cached)`;
139
- }
140
- // Add server description with proper handling of multi-line descriptions
141
- if (showDescriptions && server?.description) {
142
- const descLines = server.description.trim().split('\n');
143
- if (descLines) {
144
- message += ':\n';
145
- for (const descLine of descLines) {
146
- message += ` ${COLOR_GREEN}${descLine}${RESET_COLOR}\n`;
147
- }
148
- }
149
- else {
150
- message += '\n';
151
- }
152
- }
153
- else {
154
- message += '\n';
155
- }
156
- // Reset formatting after server entry
157
- message += RESET_COLOR;
158
- if (serverTools.length > 0) {
159
- message += ` ${COLOR_CYAN}Tools:${RESET_COLOR}\n`;
160
- serverTools.forEach((tool) => {
161
- if (showDescriptions && tool.description) {
162
- // Format tool name in cyan using simple ANSI cyan color
163
- message += ` - ${COLOR_CYAN}${tool.name}${RESET_COLOR}`;
164
- // Handle multi-line descriptions by properly indenting and preserving formatting
165
- const descLines = tool.description.trim().split('\n');
166
- if (descLines) {
167
- message += ':\n';
168
- for (const descLine of descLines) {
169
- message += ` ${COLOR_GREEN}${descLine}${RESET_COLOR}\n`;
170
- }
171
- }
172
- else {
173
- message += '\n';
174
- }
175
- // Reset is handled inline with each line now
176
- }
177
- else {
178
- // Use cyan color for the tool name even when not showing descriptions
179
- message += ` - ${COLOR_CYAN}${tool.name}${RESET_COLOR}\n`;
180
- }
181
- const parameters = tool.schema.parametersJsonSchema ?? tool.schema.parameters;
182
- if (showSchema && parameters) {
183
- // Prefix the parameters in cyan
184
- message += ` ${COLOR_CYAN}Parameters:${RESET_COLOR}\n`;
185
- const paramsLines = JSON.stringify(parameters, null, 2)
186
- .trim()
187
- .split('\n');
188
- if (paramsLines) {
189
- for (const paramsLine of paramsLines) {
190
- message += ` ${COLOR_GREEN}${paramsLine}${RESET_COLOR}\n`;
191
- }
192
- }
193
- }
194
- });
195
- }
196
- if (serverPrompts.length > 0) {
197
- if (serverTools.length > 0) {
198
- message += '\n';
199
- }
200
- message += ` ${COLOR_CYAN}Prompts:${RESET_COLOR}\n`;
201
- serverPrompts.forEach((prompt) => {
202
- if (showDescriptions && prompt.description) {
203
- message += ` - ${COLOR_CYAN}${prompt.name}${RESET_COLOR}`;
204
- const descLines = prompt.description.trim().split('\n');
205
- if (descLines) {
206
- message += ':\n';
207
- for (const descLine of descLines) {
208
- message += ` ${COLOR_GREEN}${descLine}${RESET_COLOR}\n`;
209
- }
210
- }
211
- else {
212
- message += '\n';
213
- }
214
- }
215
- else {
216
- message += ` - ${COLOR_CYAN}${prompt.name}${RESET_COLOR}\n`;
217
- }
218
- });
219
- }
220
- if (serverTools.length === 0 && serverPrompts.length === 0) {
221
- message += ' No tools or prompts available\n';
222
- }
223
- else if (serverTools.length === 0) {
224
- message += ' No tools available';
225
- if (originalStatus === MCPServerStatus.DISCONNECTED && needsAuthHint) {
226
- message += ` ${COLOR_GREY}(type: "/mcp auth ${serverName}" to authenticate this server)${RESET_COLOR}`;
227
- }
228
- message += '\n';
229
- }
230
- else if (originalStatus === MCPServerStatus.DISCONNECTED &&
231
- needsAuthHint) {
232
- // This case is for when serverTools.length > 0
233
- message += ` ${COLOR_GREY}(type: "/mcp auth ${serverName}" to authenticate this server)${RESET_COLOR}\n`;
234
- }
235
- message += '\n';
236
- }
237
- for (const server of blockedMcpServers) {
238
- let serverDisplayName = server.name;
239
- if (server.extensionName) {
240
- serverDisplayName += ` (from ${server.extensionName})`;
241
- }
242
- message += `🔴 \u001b[1m${serverDisplayName}\u001b[0m - Blocked\n\n`;
243
- }
244
- // Add helpful tips when no arguments are provided
245
- if (showTips) {
246
- message += '\n';
247
- message += `${COLOR_CYAN}💡 Tips:${RESET_COLOR}\n`;
248
- message += ` • Use ${COLOR_CYAN}/mcp desc${RESET_COLOR} to show server and tool descriptions\n`;
249
- message += ` • Use ${COLOR_CYAN}/mcp schema${RESET_COLOR} to show tool parameter schemas\n`;
250
- message += ` • Use ${COLOR_CYAN}/mcp nodesc${RESET_COLOR} to hide descriptions\n`;
251
- message += ` • Use ${COLOR_CYAN}/mcp auth <server-name>${RESET_COLOR} to authenticate with OAuth-enabled servers\n`;
252
- message += ` • Press ${COLOR_CYAN}Ctrl+T${RESET_COLOR} to toggle tool descriptions on/off\n`;
253
- message += '\n';
254
- }
255
- // Make sure to reset any ANSI formatting at the end to prevent it from affecting the terminal
256
- message += RESET_COLOR;
257
- return {
258
- type: 'message',
259
- messageType: 'info',
260
- content: message,
261
- };
262
- };
9
+ import { MessageType } from '../types.js';
263
10
  const authCommand = {
264
11
  name: 'auth',
265
12
  description: 'Authenticate with an OAuth-enabled MCP server',
@@ -371,17 +118,88 @@ const listCommand = {
371
118
  description: 'List configured MCP servers and tools',
372
119
  kind: CommandKind.BUILT_IN,
373
120
  action: async (context, args) => {
121
+ const { config } = context.services;
122
+ if (!config) {
123
+ return {
124
+ type: 'message',
125
+ messageType: 'error',
126
+ content: 'Config not loaded.',
127
+ };
128
+ }
129
+ const toolRegistry = config.getToolRegistry();
130
+ if (!toolRegistry) {
131
+ return {
132
+ type: 'message',
133
+ messageType: 'error',
134
+ content: 'Could not retrieve tool registry.',
135
+ };
136
+ }
374
137
  const lowerCaseArgs = args.toLowerCase().split(/\s+/).filter(Boolean);
375
138
  const hasDesc = lowerCaseArgs.includes('desc') || lowerCaseArgs.includes('descriptions');
376
139
  const hasNodesc = lowerCaseArgs.includes('nodesc') ||
377
140
  lowerCaseArgs.includes('nodescriptions');
378
141
  const showSchema = lowerCaseArgs.includes('schema');
379
- // Show descriptions if `desc` or `schema` is present,
380
- // but `nodesc` takes precedence and disables them.
381
142
  const showDescriptions = !hasNodesc && (hasDesc || showSchema);
382
- // Show tips only when no arguments are provided
383
143
  const showTips = lowerCaseArgs.length === 0;
384
- return getMcpStatus(context, showDescriptions, showSchema, showTips);
144
+ const mcpServers = config.getMcpServers() || {};
145
+ const serverNames = Object.keys(mcpServers);
146
+ const blockedMcpServers = config.getBlockedMcpServers() || [];
147
+ const connectingServers = serverNames.filter((name) => getMCPServerStatus(name) === MCPServerStatus.CONNECTING);
148
+ const discoveryState = getMCPDiscoveryState();
149
+ const discoveryInProgress = discoveryState === MCPDiscoveryState.IN_PROGRESS ||
150
+ connectingServers.length > 0;
151
+ const allTools = toolRegistry.getAllTools();
152
+ const mcpTools = allTools.filter((tool) => tool instanceof DiscoveredMCPTool);
153
+ const promptRegistry = await config.getPromptRegistry();
154
+ const mcpPrompts = promptRegistry
155
+ .getAllPrompts()
156
+ .filter((prompt) => 'serverName' in prompt &&
157
+ serverNames.includes(prompt.serverName));
158
+ const authStatus = {};
159
+ const tokenStorage = new MCPOAuthTokenStorage();
160
+ for (const serverName of serverNames) {
161
+ const server = mcpServers[serverName];
162
+ if (server.oauth?.enabled) {
163
+ const creds = await tokenStorage.getCredentials(serverName);
164
+ if (creds) {
165
+ if (creds.token.expiresAt && creds.token.expiresAt < Date.now()) {
166
+ authStatus[serverName] = 'expired';
167
+ }
168
+ else {
169
+ authStatus[serverName] = 'authenticated';
170
+ }
171
+ }
172
+ else {
173
+ authStatus[serverName] = 'unauthenticated';
174
+ }
175
+ }
176
+ else {
177
+ authStatus[serverName] = 'not-configured';
178
+ }
179
+ }
180
+ const mcpStatusItem = {
181
+ type: MessageType.MCP_STATUS,
182
+ servers: mcpServers,
183
+ tools: mcpTools.map((tool) => ({
184
+ serverName: tool.serverName,
185
+ name: tool.name,
186
+ description: tool.description,
187
+ schema: tool.schema,
188
+ })),
189
+ prompts: mcpPrompts.map((prompt) => ({
190
+ serverName: prompt.serverName,
191
+ name: prompt.name,
192
+ description: prompt.description,
193
+ })),
194
+ authStatus,
195
+ blockedServers: blockedMcpServers,
196
+ discoveryInProgress,
197
+ connectingServers,
198
+ showDescriptions,
199
+ showSchema,
200
+ showTips,
201
+ };
202
+ context.ui.addItem(mcpStatusItem, Date.now());
385
203
  },
386
204
  };
387
205
  const refreshCommand = {
@@ -417,7 +235,7 @@ const refreshCommand = {
417
235
  }
418
236
  // Reload the slash commands to reflect the changes.
419
237
  context.ui.reloadCommands();
420
- return getMcpStatus(context, false, false, false);
238
+ return listCommand.action(context, '');
421
239
  },
422
240
  };
423
241
  export const mcpCommand = {
@@ -1 +1 @@
1
- {"version":3,"file":"mcpCommand.js","sourceRoot":"","sources":["../../../../src/ui/commands/mcpCommand.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"mcpCommand.js","sourceRoot":"","sources":["../../../../src/ui/commands/mcpCommand.ts"],"names":[],"mappings":"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"}
@@ -27,30 +27,16 @@ export const toolsCommand = {
27
27
  const tools = toolRegistry.getAllTools();
28
28
  // Filter out MCP tools by checking for the absence of a serverName property
29
29
  const geminiTools = tools.filter((tool) => !('serverName' in tool));
30
- let message = 'Available Gemini CLI tools:\n\n';
31
- if (geminiTools.length > 0) {
32
- geminiTools.forEach((tool) => {
33
- if (useShowDescriptions && tool.description) {
34
- message += ` - \u001b[36m${tool.displayName} (${tool.name})\u001b[0m:\n`;
35
- const greenColor = '\u001b[32m';
36
- const resetColor = '\u001b[0m';
37
- // Handle multi-line descriptions
38
- const descLines = tool.description.trim().split('\n');
39
- for (const descLine of descLines) {
40
- message += ` ${greenColor}${descLine}${resetColor}\n`;
41
- }
42
- }
43
- else {
44
- message += ` - \u001b[36m${tool.displayName}\u001b[0m\n`;
45
- }
46
- });
47
- }
48
- else {
49
- message += ' No tools available\n';
50
- }
51
- message += '\n';
52
- message += '\u001b[0m';
53
- context.ui.addItem({ type: MessageType.INFO, text: message }, Date.now());
30
+ const toolsListItem = {
31
+ type: MessageType.TOOLS_LIST,
32
+ tools: geminiTools.map((tool) => ({
33
+ name: tool.name,
34
+ displayName: tool.displayName,
35
+ description: tool.description,
36
+ })),
37
+ showDescriptions: useShowDescriptions,
38
+ };
39
+ context.ui.addItem(toolsListItem, Date.now());
54
40
  },
55
41
  };
56
42
  //# sourceMappingURL=toolsCommand.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"toolsCommand.js","sourceRoot":"","sources":["../../../../src/ui/commands/toolsCommand.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAGL,WAAW,GACZ,MAAM,YAAY,CAAC;AACpB,OAAO,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAE1C,MAAM,CAAC,MAAM,YAAY,GAAiB;IACxC,IAAI,EAAE,OAAO;IACb,WAAW,EAAE,uDAAuD;IACpE,IAAI,EAAE,WAAW,CAAC,QAAQ;IAC1B,MAAM,EAAE,KAAK,EAAE,OAAuB,EAAE,IAAa,EAAiB,EAAE;QACtE,MAAM,UAAU,GAAG,IAAI,EAAE,IAAI,EAAE,CAAC;QAEhC,8EAA8E;QAC9E,IAAI,mBAAmB,GAAG,KAAK,CAAC;QAChC,IAAI,UAAU,KAAK,MAAM,IAAI,UAAU,KAAK,cAAc,EAAE,CAAC;YAC3D,mBAAmB,GAAG,IAAI,CAAC;QAC7B,CAAC;QAED,MAAM,YAAY,GAAG,OAAO,CAAC,QAAQ,CAAC,MAAM,EAAE,eAAe,EAAE,CAAC;QAChE,IAAI,CAAC,YAAY,EAAE,CAAC;YAClB,OAAO,CAAC,EAAE,CAAC,OAAO,CAChB;gBACE,IAAI,EAAE,WAAW,CAAC,KAAK;gBACvB,IAAI,EAAE,mCAAmC;aAC1C,EACD,IAAI,CAAC,GAAG,EAAE,CACX,CAAC;YACF,OAAO;QACT,CAAC;QAED,MAAM,KAAK,GAAG,YAAY,CAAC,WAAW,EAAE,CAAC;QACzC,4EAA4E;QAC5E,MAAM,WAAW,GAAG,KAAK,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,CAAC,YAAY,IAAI,IAAI,CAAC,CAAC,CAAC;QAEpE,IAAI,OAAO,GAAG,iCAAiC,CAAC;QAEhD,IAAI,WAAW,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAC3B,WAAW,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,EAAE;gBAC3B,IAAI,mBAAmB,IAAI,IAAI,CAAC,WAAW,EAAE,CAAC;oBAC5C,OAAO,IAAI,iBAAiB,IAAI,CAAC,WAAW,KAAK,IAAI,CAAC,IAAI,eAAe,CAAC;oBAE1E,MAAM,UAAU,GAAG,YAAY,CAAC;oBAChC,MAAM,UAAU,GAAG,WAAW,CAAC;oBAE/B,iCAAiC;oBACjC,MAAM,SAAS,GAAG,IAAI,CAAC,WAAW,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;oBACtD,KAAK,MAAM,QAAQ,IAAI,SAAS,EAAE,CAAC;wBACjC,OAAO,IAAI,SAAS,UAAU,GAAG,QAAQ,GAAG,UAAU,IAAI,CAAC;oBAC7D,CAAC;gBACH,CAAC;qBAAM,CAAC;oBACN,OAAO,IAAI,iBAAiB,IAAI,CAAC,WAAW,aAAa,CAAC;gBAC5D,CAAC;YACH,CAAC,CAAC,CAAC;QACL,CAAC;aAAM,CAAC;YACN,OAAO,IAAI,wBAAwB,CAAC;QACtC,CAAC;QACD,OAAO,IAAI,IAAI,CAAC;QAEhB,OAAO,IAAI,WAAW,CAAC;QAEvB,OAAO,CAAC,EAAE,CAAC,OAAO,CAAC,EAAE,IAAI,EAAE,WAAW,CAAC,IAAI,EAAE,IAAI,EAAE,OAAO,EAAE,EAAE,IAAI,CAAC,GAAG,EAAE,CAAC,CAAC;IAC5E,CAAC;CACF,CAAC"}
1
+ {"version":3,"file":"toolsCommand.js","sourceRoot":"","sources":["../../../../src/ui/commands/toolsCommand.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAGL,WAAW,GACZ,MAAM,YAAY,CAAC;AACpB,OAAO,EAAE,WAAW,EAA6B,MAAM,aAAa,CAAC;AAErE,MAAM,CAAC,MAAM,YAAY,GAAiB;IACxC,IAAI,EAAE,OAAO;IACb,WAAW,EAAE,uDAAuD;IACpE,IAAI,EAAE,WAAW,CAAC,QAAQ;IAC1B,MAAM,EAAE,KAAK,EAAE,OAAuB,EAAE,IAAa,EAAiB,EAAE;QACtE,MAAM,UAAU,GAAG,IAAI,EAAE,IAAI,EAAE,CAAC;QAEhC,8EAA8E;QAC9E,IAAI,mBAAmB,GAAG,KAAK,CAAC;QAChC,IAAI,UAAU,KAAK,MAAM,IAAI,UAAU,KAAK,cAAc,EAAE,CAAC;YAC3D,mBAAmB,GAAG,IAAI,CAAC;QAC7B,CAAC;QAED,MAAM,YAAY,GAAG,OAAO,CAAC,QAAQ,CAAC,MAAM,EAAE,eAAe,EAAE,CAAC;QAChE,IAAI,CAAC,YAAY,EAAE,CAAC;YAClB,OAAO,CAAC,EAAE,CAAC,OAAO,CAChB;gBACE,IAAI,EAAE,WAAW,CAAC,KAAK;gBACvB,IAAI,EAAE,mCAAmC;aAC1C,EACD,IAAI,CAAC,GAAG,EAAE,CACX,CAAC;YACF,OAAO;QACT,CAAC;QAED,MAAM,KAAK,GAAG,YAAY,CAAC,WAAW,EAAE,CAAC;QACzC,4EAA4E;QAC5E,MAAM,WAAW,GAAG,KAAK,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,CAAC,YAAY,IAAI,IAAI,CAAC,CAAC,CAAC;QAEpE,MAAM,aAAa,GAAyB;YAC1C,IAAI,EAAE,WAAW,CAAC,UAAU;YAC5B,KAAK,EAAE,WAAW,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;gBAChC,IAAI,EAAE,IAAI,CAAC,IAAI;gBACf,WAAW,EAAE,IAAI,CAAC,WAAW;gBAC7B,WAAW,EAAE,IAAI,CAAC,WAAW;aAC9B,CAAC,CAAC;YACH,gBAAgB,EAAE,mBAAmB;SACtC,CAAC;QAEF,OAAO,CAAC,EAAE,CAAC,OAAO,CAAC,aAAa,EAAE,IAAI,CAAC,GAAG,EAAE,CAAC,CAAC;IAChD,CAAC;CACF,CAAC"}
@@ -3,14 +3,14 @@
3
3
  * Copyright 2025 Google LLC
4
4
  * SPDX-License-Identifier: Apache-2.0
5
5
  */
6
- import type { Dispatch, ReactNode, SetStateAction } from 'react';
6
+ import type { ReactNode } from 'react';
7
7
  import type { Content, PartListUnion } from '@google/genai';
8
- import type { HistoryItemWithoutId, HistoryItem } from '../types.js';
8
+ import type { HistoryItemWithoutId, HistoryItem, ConfirmationRequest } from '../types.js';
9
9
  import type { Config, GitService, Logger } from '@google/gemini-cli-core';
10
10
  import type { LoadedSettings } from '../../config/settings.js';
11
11
  import type { UseHistoryManagerReturn } from '../hooks/useHistoryManager.js';
12
12
  import type { SessionStatsState } from '../contexts/SessionContext.js';
13
- import type { ExtensionUpdateState } from '../state/extensions.js';
13
+ import type { ExtensionUpdateAction, ExtensionUpdateStatus } from '../state/extensions.js';
14
14
  export interface CommandContext {
15
15
  invocation?: {
16
16
  /** The raw, untrimmed input string from the user. */
@@ -55,8 +55,9 @@ export interface CommandContext {
55
55
  toggleVimEnabled: () => Promise<boolean>;
56
56
  setGeminiMdFileCount: (count: number) => void;
57
57
  reloadCommands: () => void;
58
- extensionsUpdateState: Map<string, ExtensionUpdateState>;
59
- setExtensionsUpdateState: Dispatch<SetStateAction<Map<string, ExtensionUpdateState>>>;
58
+ extensionsUpdateState: Map<string, ExtensionUpdateStatus>;
59
+ dispatchExtensionStateUpdate: (action: ExtensionUpdateAction) => void;
60
+ addConfirmUpdateExtensionRequest: (value: ConfirmationRequest) => void;
60
61
  };
61
62
  session: {
62
63
  stats: SessionStatsState;
@@ -1 +1 @@
1
- {"version":3,"file":"types.js","sourceRoot":"","sources":["../../../../src/ui/commands/types.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AA0KH,MAAM,CAAN,IAAY,WAIX;AAJD,WAAY,WAAW;IACrB,oCAAqB,CAAA;IACrB,4BAAa,CAAA;IACb,wCAAyB,CAAA;AAC3B,CAAC,EAJW,WAAW,KAAX,WAAW,QAItB"}
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../../../src/ui/commands/types.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAgLH,MAAM,CAAN,IAAY,WAIX;AAJD,WAAY,WAAW;IACrB,oCAAqB,CAAA;IACrB,4BAAa,CAAA;IACb,wCAAyB,CAAA;AAC3B,CAAC,EAJW,WAAW,KAAX,WAAW,QAItB"}
@@ -4,7 +4,7 @@ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
4
4
  * Copyright 2025 Google LLC
5
5
  * SPDX-License-Identifier: Apache-2.0
6
6
  */
7
- import { Box, Text } from 'ink';
7
+ import { Box, Text, useIsScreenReaderEnabled } from 'ink';
8
8
  import { useMemo } from 'react';
9
9
  import { LoadingIndicator } from './LoadingIndicator.js';
10
10
  import { ContextSummaryDisplay } from './ContextSummaryDisplay.js';
@@ -29,33 +29,16 @@ import { ConfigInitDisplay } from '../components/ConfigInitDisplay.js';
29
29
  export const Composer = () => {
30
30
  const config = useConfig();
31
31
  const settings = useSettings();
32
+ const isScreenReaderEnabled = useIsScreenReaderEnabled();
32
33
  const uiState = useUIState();
33
34
  const uiActions = useUIActions();
34
- const { vimEnabled, vimMode } = useVimMode();
35
+ const { vimEnabled } = useVimMode();
35
36
  const terminalWidth = process.stdout.columns;
36
37
  const isNarrow = isNarrowWidth(terminalWidth);
37
38
  const debugConsoleMaxHeight = Math.floor(Math.max(terminalWidth * 0.2, 5));
38
39
  const { contextFileNames, showAutoAcceptIndicator } = uiState;
39
40
  // Use the container width of InputPrompt for width of DetailedMessagesDisplay
40
41
  const { containerWidth } = useMemo(() => calculatePromptWidths(uiState.terminalWidth), [uiState.terminalWidth]);
41
- // Build footer props from context values
42
- const footerProps = {
43
- model: config.getModel(),
44
- targetDir: config.getTargetDir(),
45
- debugMode: config.getDebugMode(),
46
- branchName: uiState.branchName,
47
- debugMessage: uiState.debugMessage,
48
- corgiMode: uiState.corgiMode,
49
- errorCount: uiState.errorCount,
50
- showErrorDetails: uiState.showErrorDetails,
51
- showMemoryUsage: config.getDebugMode() || settings.merged.ui?.showMemoryUsage || false,
52
- promptTokenCount: uiState.sessionStats.lastPromptTokenCount,
53
- nightly: uiState.nightly,
54
- isTrustedFolder: uiState.isTrustedFolder,
55
- hideCWD: settings.merged.ui?.footer?.hideCWD || false,
56
- hideSandboxStatus: settings.merged.ui?.footer?.hideSandboxStatus || false,
57
- hideModelInfo: settings.merged.ui?.footer?.hideModelInfo || false,
58
- };
59
42
  return (_jsxs(Box, { flexDirection: "column", children: [!uiState.embeddedShellFocused && (_jsx(LoadingIndicator, { thought: uiState.streamingState === StreamingState.WaitingForConfirmation ||
60
43
  config.getAccessibility()?.disableLoadingPhrases
61
44
  ? undefined
@@ -66,6 +49,6 @@ export const Composer = () => {
66
49
  : 'space-between', width: "100%", flexDirection: isNarrow ? 'column' : 'row', alignItems: isNarrow ? 'flex-start' : 'center', children: [_jsxs(Box, { marginRight: 1, children: [process.env['GEMINI_SYSTEM_MD'] && (_jsx(Text, { color: theme.status.error, children: "|\u2310\u25A0_\u25A0| " })), uiState.ctrlCPressedOnce ? (_jsx(Text, { color: theme.status.warning, children: "Press Ctrl+C again to exit." })) : uiState.ctrlDPressedOnce ? (_jsx(Text, { color: theme.status.warning, children: "Press Ctrl+D again to exit." })) : uiState.showEscapePrompt ? (_jsx(Text, { color: theme.text.secondary, children: "Press Esc again to clear." })) : (!settings.merged.ui?.hideContextSummary && (_jsx(ContextSummaryDisplay, { ideContext: uiState.ideContextState, geminiMdFileCount: uiState.geminiMdFileCount, contextFileNames: contextFileNames, mcpServers: config.getMcpServers(), blockedMcpServers: config.getBlockedMcpServers(), showToolDescriptions: uiState.showToolDescriptions })))] }), _jsxs(Box, { paddingTop: isNarrow ? 1 : 0, children: [showAutoAcceptIndicator !== ApprovalMode.DEFAULT &&
67
50
  !uiState.shellModeActive && (_jsx(AutoAcceptIndicator, { approvalMode: showAutoAcceptIndicator })), uiState.shellModeActive && _jsx(ShellModeIndicator, {})] })] }), uiState.showErrorDetails && (_jsx(OverflowProvider, { children: _jsxs(Box, { flexDirection: "column", children: [_jsx(DetailedMessagesDisplay, { messages: uiState.filteredConsoleMessages, maxHeight: uiState.constrainHeight ? debugConsoleMaxHeight : undefined, width: containerWidth }), _jsx(ShowMoreLines, { constrainHeight: uiState.constrainHeight })] }) })), uiState.isInputActive && (_jsx(InputPrompt, { buffer: uiState.buffer, inputWidth: uiState.inputWidth, suggestionsWidth: uiState.suggestionsWidth, onSubmit: uiActions.handleFinalSubmit, userMessages: uiState.userMessages, onClearScreen: uiActions.handleClearScreen, config: config, slashCommands: uiState.slashCommands, commandContext: uiState.commandContext, shellModeActive: uiState.shellModeActive, setShellModeActive: uiActions.setShellModeActive, approvalMode: showAutoAcceptIndicator, onEscapePromptChange: uiActions.onEscapePromptChange, focus: true, vimHandleInput: uiActions.vimHandleInput, isEmbeddedShellFocused: uiState.embeddedShellFocused, placeholder: vimEnabled
68
51
  ? " Press 'i' for INSERT mode and 'Esc' for NORMAL mode."
69
- : ' Type your message or @path/to/file' })), !settings.merged.ui?.hideFooter && (_jsx(Footer, { ...footerProps, vimMode: vimEnabled ? vimMode : undefined }))] }));
52
+ : ' Type your message or @path/to/file' })), !settings.merged.ui?.hideFooter && !isScreenReaderEnabled && _jsx(Footer, {})] }));
70
53
  };
71
54
  //# sourceMappingURL=Composer.js.map