@google/gemini-cli 0.8.0-nightly.20250929.a49a09f1 → 0.8.0-nightly.20250930.ae51bbda

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 (96) hide show
  1. package/dist/package.json +2 -2
  2. package/dist/src/config/extension.d.ts +3 -2
  3. package/dist/src/config/extension.js +27 -11
  4. package/dist/src/config/extension.js.map +1 -1
  5. package/dist/src/generated/git-commit.d.ts +2 -2
  6. package/dist/src/generated/git-commit.js +2 -2
  7. package/dist/src/ui/App.js +17 -1
  8. package/dist/src/ui/App.js.map +1 -1
  9. package/dist/src/ui/AppContainer.js +10 -7
  10. package/dist/src/ui/AppContainer.js.map +1 -1
  11. package/dist/src/ui/AppContainer.test.js +7 -0
  12. package/dist/src/ui/AppContainer.test.js.map +1 -1
  13. package/dist/src/ui/commands/extensionsCommand.js +11 -2
  14. package/dist/src/ui/commands/extensionsCommand.js.map +1 -1
  15. package/dist/src/ui/commands/mcpCommand.js +78 -260
  16. package/dist/src/ui/commands/mcpCommand.js.map +1 -1
  17. package/dist/src/ui/commands/toolsCommand.js +10 -24
  18. package/dist/src/ui/commands/toolsCommand.js.map +1 -1
  19. package/dist/src/ui/commands/types.d.ts +2 -1
  20. package/dist/src/ui/commands/types.js.map +1 -1
  21. package/dist/src/ui/components/ConsentPrompt.d.ts +13 -0
  22. package/dist/src/ui/components/ConsentPrompt.js +19 -0
  23. package/dist/src/ui/components/ConsentPrompt.js.map +1 -0
  24. package/dist/src/ui/components/ConsentPrompt.test.d.ts +6 -0
  25. package/dist/src/ui/components/ConsentPrompt.test.js +67 -0
  26. package/dist/src/ui/components/ConsentPrompt.test.js.map +1 -0
  27. package/dist/src/ui/components/ContextUsageDisplay.d.ts +2 -1
  28. package/dist/src/ui/components/ContextUsageDisplay.js +4 -2
  29. package/dist/src/ui/components/ContextUsageDisplay.js.map +1 -1
  30. package/dist/src/ui/components/DialogManager.d.ts +2 -1
  31. package/dist/src/ui/components/DialogManager.js +9 -9
  32. package/dist/src/ui/components/DialogManager.js.map +1 -1
  33. package/dist/src/ui/components/Footer.js +5 -14
  34. package/dist/src/ui/components/Footer.js.map +1 -1
  35. package/dist/src/ui/components/HistoryItemDisplay.js +4 -1
  36. package/dist/src/ui/components/HistoryItemDisplay.js.map +1 -1
  37. package/dist/src/ui/components/IdeTrustChangeDialog.d.ts +11 -0
  38. package/dist/src/ui/components/IdeTrustChangeDialog.js +32 -0
  39. package/dist/src/ui/components/IdeTrustChangeDialog.js.map +1 -0
  40. package/dist/src/ui/components/IdeTrustChangeDialog.test.d.ts +6 -0
  41. package/dist/src/ui/components/IdeTrustChangeDialog.test.js +57 -0
  42. package/dist/src/ui/components/IdeTrustChangeDialog.test.js.map +1 -0
  43. package/dist/src/ui/components/views/McpStatus.d.ts +27 -0
  44. package/dist/src/ui/components/views/McpStatus.js +77 -0
  45. package/dist/src/ui/components/views/McpStatus.js.map +1 -0
  46. package/dist/src/ui/components/views/McpStatus.test.d.ts +6 -0
  47. package/dist/src/ui/components/views/McpStatus.test.js +117 -0
  48. package/dist/src/ui/components/views/McpStatus.test.js.map +1 -0
  49. package/dist/src/ui/components/views/ToolsList.d.ts +14 -0
  50. package/dist/src/ui/components/views/ToolsList.js +7 -0
  51. package/dist/src/ui/components/views/ToolsList.js.map +1 -0
  52. package/dist/src/ui/components/views/ToolsList.test.d.ts +6 -0
  53. package/dist/src/ui/components/views/ToolsList.test.js +45 -0
  54. package/dist/src/ui/components/views/ToolsList.test.js.map +1 -0
  55. package/dist/src/ui/contexts/UIStateContext.d.ts +3 -0
  56. package/dist/src/ui/contexts/UIStateContext.js +1 -0
  57. package/dist/src/ui/contexts/UIStateContext.js.map +1 -1
  58. package/dist/src/ui/hooks/slashCommandProcessor.d.ts +2 -1
  59. package/dist/src/ui/hooks/slashCommandProcessor.js +1 -0
  60. package/dist/src/ui/hooks/slashCommandProcessor.js.map +1 -1
  61. package/dist/src/ui/hooks/useExtensionUpdates.d.ts +6 -0
  62. package/dist/src/ui/hooks/useExtensionUpdates.js +20 -3
  63. package/dist/src/ui/hooks/useExtensionUpdates.js.map +1 -1
  64. package/dist/src/ui/hooks/useIdeTrustListener.d.ts +4 -2
  65. package/dist/src/ui/hooks/useIdeTrustListener.js +40 -14
  66. package/dist/src/ui/hooks/useIdeTrustListener.js.map +1 -1
  67. package/dist/src/ui/hooks/useIdeTrustListener.test.d.ts +6 -0
  68. package/dist/src/ui/hooks/useIdeTrustListener.test.js +183 -0
  69. package/dist/src/ui/hooks/useIdeTrustListener.test.js.map +1 -0
  70. package/dist/src/ui/hooks/useToolScheduler.test.js +2 -2
  71. package/dist/src/ui/hooks/useToolScheduler.test.js.map +1 -1
  72. package/dist/src/ui/layouts/DefaultAppLayout.d.ts +3 -1
  73. package/dist/src/ui/layouts/DefaultAppLayout.js +2 -2
  74. package/dist/src/ui/layouts/DefaultAppLayout.js.map +1 -1
  75. package/dist/src/ui/layouts/ScreenReaderAppLayout.js +1 -1
  76. package/dist/src/ui/layouts/ScreenReaderAppLayout.js.map +1 -1
  77. package/dist/src/ui/noninteractive/nonInteractiveUi.js +1 -0
  78. package/dist/src/ui/noninteractive/nonInteractiveUi.js.map +1 -1
  79. package/dist/src/ui/types.d.ts +45 -3
  80. package/dist/src/ui/types.js +2 -0
  81. package/dist/src/ui/types.js.map +1 -1
  82. package/dist/src/ui/utils/MarkdownDisplay.js +1 -2
  83. package/dist/src/ui/utils/MarkdownDisplay.js.map +1 -1
  84. package/dist/src/ui/utils/MarkdownDisplay.test.js +91 -86
  85. package/dist/src/ui/utils/MarkdownDisplay.test.js.map +1 -1
  86. package/dist/src/ui/utils/displayUtils.d.ts +1 -0
  87. package/dist/src/ui/utils/displayUtils.js +3 -0
  88. package/dist/src/ui/utils/displayUtils.js.map +1 -1
  89. package/dist/src/ui/utils/displayUtils.test.js +36 -17
  90. package/dist/src/ui/utils/displayUtils.test.js.map +1 -1
  91. package/dist/src/utils/math.d.ts +13 -0
  92. package/dist/src/utils/math.js +14 -0
  93. package/dist/src/utils/math.js.map +1 -0
  94. package/dist/src/zed-integration/schema.d.ts +128 -128
  95. package/dist/tsconfig.tsbuildinfo +1 -1
  96. package/package.json +3 -3
@@ -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"}
@@ -5,7 +5,7 @@
5
5
  */
6
6
  import type { Dispatch, ReactNode, SetStateAction } 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';
@@ -57,6 +57,7 @@ export interface CommandContext {
57
57
  reloadCommands: () => void;
58
58
  extensionsUpdateState: Map<string, ExtensionUpdateState>;
59
59
  setExtensionsUpdateState: Dispatch<SetStateAction<Map<string, ExtensionUpdateState>>>;
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;AA+KH,MAAM,CAAN,IAAY,WAIX;AAJD,WAAY,WAAW;IACrB,oCAAqB,CAAA;IACrB,4BAAa,CAAA;IACb,wCAAyB,CAAA;AAC3B,CAAC,EAJW,WAAW,KAAX,WAAW,QAItB"}
@@ -0,0 +1,13 @@
1
+ /**
2
+ * @license
3
+ * Copyright 2025 Google LLC
4
+ * SPDX-License-Identifier: Apache-2.0
5
+ */
6
+ import { type ReactNode } from 'react';
7
+ type ConsentPromptProps = {
8
+ prompt: ReactNode;
9
+ onConfirm: (value: boolean) => void;
10
+ terminalWidth: number;
11
+ };
12
+ export declare const ConsentPrompt: (props: ConsentPromptProps) => import("react/jsx-runtime").JSX.Element;
13
+ export {};
@@ -0,0 +1,19 @@
1
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
+ /**
3
+ * @license
4
+ * Copyright 2025 Google LLC
5
+ * SPDX-License-Identifier: Apache-2.0
6
+ */
7
+ import { Box } from 'ink';
8
+ import {} from 'react';
9
+ import { theme } from '../semantic-colors.js';
10
+ import { MarkdownDisplay } from '../utils/MarkdownDisplay.js';
11
+ import { RadioButtonSelect } from './shared/RadioButtonSelect.js';
12
+ export const ConsentPrompt = (props) => {
13
+ const { prompt, onConfirm, terminalWidth } = props;
14
+ return (_jsxs(Box, { borderStyle: "round", borderColor: theme.border.default, flexDirection: "column", paddingY: 1, paddingX: 2, children: [typeof prompt === 'string' ? (_jsx(MarkdownDisplay, { isPending: true, text: prompt, terminalWidth: terminalWidth })) : (prompt), _jsx(Box, { marginTop: 1, children: _jsx(RadioButtonSelect, { items: [
15
+ { label: 'Yes', value: true, key: 'Yes' },
16
+ { label: 'No', value: false, key: 'No' },
17
+ ], onSelect: onConfirm }) })] }));
18
+ };
19
+ //# sourceMappingURL=ConsentPrompt.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ConsentPrompt.js","sourceRoot":"","sources":["../../../../src/ui/components/ConsentPrompt.tsx"],"names":[],"mappings":";AAAA;;;;GAIG;AAEH,OAAO,EAAE,GAAG,EAAE,MAAM,KAAK,CAAC;AAC1B,OAAO,EAAkB,MAAM,OAAO,CAAC;AACvC,OAAO,EAAE,KAAK,EAAE,MAAM,uBAAuB,CAAC;AAC9C,OAAO,EAAE,eAAe,EAAE,MAAM,6BAA6B,CAAC;AAC9D,OAAO,EAAE,iBAAiB,EAAE,MAAM,+BAA+B,CAAC;AASlE,MAAM,CAAC,MAAM,aAAa,GAAG,CAAC,KAAyB,EAAE,EAAE;IACzD,MAAM,EAAE,MAAM,EAAE,SAAS,EAAE,aAAa,EAAE,GAAG,KAAK,CAAC;IAEnD,OAAO,CACL,MAAC,GAAG,IACF,WAAW,EAAC,OAAO,EACnB,WAAW,EAAE,KAAK,CAAC,MAAM,CAAC,OAAO,EACjC,aAAa,EAAC,QAAQ,EACtB,QAAQ,EAAE,CAAC,EACX,QAAQ,EAAE,CAAC,aAEV,OAAO,MAAM,KAAK,QAAQ,CAAC,CAAC,CAAC,CAC5B,KAAC,eAAe,IACd,SAAS,EAAE,IAAI,EACf,IAAI,EAAE,MAAM,EACZ,aAAa,EAAE,aAAa,GAC5B,CACH,CAAC,CAAC,CAAC,CACF,MAAM,CACP,EACD,KAAC,GAAG,IAAC,SAAS,EAAE,CAAC,YACf,KAAC,iBAAiB,IAChB,KAAK,EAAE;wBACL,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,IAAI,EAAE,GAAG,EAAE,KAAK,EAAE;wBACzC,EAAE,KAAK,EAAE,IAAI,EAAE,KAAK,EAAE,KAAK,EAAE,GAAG,EAAE,IAAI,EAAE;qBACzC,EACD,QAAQ,EAAE,SAAS,GACnB,GACE,IACF,CACP,CAAC;AACJ,CAAC,CAAC"}
@@ -0,0 +1,6 @@
1
+ /**
2
+ * @license
3
+ * Copyright 2025 Google LLC
4
+ * SPDX-License-Identifier: Apache-2.0
5
+ */
6
+ export {};
@@ -0,0 +1,67 @@
1
+ import { jsx as _jsx } from "react/jsx-runtime";
2
+ /**
3
+ * @license
4
+ * Copyright 2025 Google LLC
5
+ * SPDX-License-Identifier: Apache-2.0
6
+ */
7
+ import { Text } from 'ink';
8
+ import { describe, it, expect, vi, beforeEach } from 'vitest';
9
+ import { render } from 'ink-testing-library';
10
+ import { ConsentPrompt } from './ConsentPrompt.js';
11
+ import { RadioButtonSelect } from './shared/RadioButtonSelect.js';
12
+ import { MarkdownDisplay } from '../utils/MarkdownDisplay.js';
13
+ vi.mock('./shared/RadioButtonSelect.js', () => ({
14
+ RadioButtonSelect: vi.fn(() => null),
15
+ }));
16
+ vi.mock('../utils/MarkdownDisplay.js', () => ({
17
+ MarkdownDisplay: vi.fn(() => null),
18
+ }));
19
+ const MockedRadioButtonSelect = vi.mocked(RadioButtonSelect);
20
+ const MockedMarkdownDisplay = vi.mocked(MarkdownDisplay);
21
+ describe('ConsentPrompt', () => {
22
+ const onConfirm = vi.fn();
23
+ const terminalWidth = 80;
24
+ beforeEach(() => {
25
+ vi.clearAllMocks();
26
+ });
27
+ it('renders a string prompt with MarkdownDisplay', () => {
28
+ const prompt = 'Are you sure?';
29
+ render(_jsx(ConsentPrompt, { prompt: prompt, onConfirm: onConfirm, terminalWidth: terminalWidth }));
30
+ expect(MockedMarkdownDisplay).toHaveBeenCalledWith({
31
+ isPending: true,
32
+ text: prompt,
33
+ terminalWidth,
34
+ }, undefined);
35
+ });
36
+ it('renders a ReactNode prompt directly', () => {
37
+ const prompt = _jsx(Text, { children: "Are you sure?" });
38
+ const { lastFrame } = render(_jsx(ConsentPrompt, { prompt: prompt, onConfirm: onConfirm, terminalWidth: terminalWidth }));
39
+ expect(MockedMarkdownDisplay).not.toHaveBeenCalled();
40
+ expect(lastFrame()).toContain('Are you sure?');
41
+ });
42
+ it('calls onConfirm with true when "Yes" is selected', () => {
43
+ const prompt = 'Are you sure?';
44
+ render(_jsx(ConsentPrompt, { prompt: prompt, onConfirm: onConfirm, terminalWidth: terminalWidth }));
45
+ const onSelect = MockedRadioButtonSelect.mock.calls[0][0].onSelect;
46
+ onSelect(true);
47
+ expect(onConfirm).toHaveBeenCalledWith(true);
48
+ });
49
+ it('calls onConfirm with false when "No" is selected', () => {
50
+ const prompt = 'Are you sure?';
51
+ render(_jsx(ConsentPrompt, { prompt: prompt, onConfirm: onConfirm, terminalWidth: terminalWidth }));
52
+ const onSelect = MockedRadioButtonSelect.mock.calls[0][0].onSelect;
53
+ onSelect(false);
54
+ expect(onConfirm).toHaveBeenCalledWith(false);
55
+ });
56
+ it('passes correct items to RadioButtonSelect', () => {
57
+ const prompt = 'Are you sure?';
58
+ render(_jsx(ConsentPrompt, { prompt: prompt, onConfirm: onConfirm, terminalWidth: terminalWidth }));
59
+ expect(MockedRadioButtonSelect).toHaveBeenCalledWith(expect.objectContaining({
60
+ items: [
61
+ { label: 'Yes', value: true, key: 'Yes' },
62
+ { label: 'No', value: false, key: 'No' },
63
+ ],
64
+ }), undefined);
65
+ });
66
+ });
67
+ //# sourceMappingURL=ConsentPrompt.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ConsentPrompt.test.js","sourceRoot":"","sources":["../../../../src/ui/components/ConsentPrompt.test.tsx"],"names":[],"mappings":"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"}
@@ -3,7 +3,8 @@
3
3
  * Copyright 2025 Google LLC
4
4
  * SPDX-License-Identifier: Apache-2.0
5
5
  */
6
- export declare const ContextUsageDisplay: ({ promptTokenCount, model, }: {
6
+ export declare const ContextUsageDisplay: ({ promptTokenCount, model, terminalWidth, }: {
7
7
  promptTokenCount: number;
8
8
  model: string;
9
+ terminalWidth: number;
9
10
  }) => import("react/jsx-runtime").JSX.Element;
@@ -7,8 +7,10 @@ import { jsxs as _jsxs } from "react/jsx-runtime";
7
7
  import { Text } from 'ink';
8
8
  import { theme } from '../semantic-colors.js';
9
9
  import { tokenLimit } from '@google/gemini-cli-core';
10
- export const ContextUsageDisplay = ({ promptTokenCount, model, }) => {
10
+ export const ContextUsageDisplay = ({ promptTokenCount, model, terminalWidth, }) => {
11
11
  const percentage = promptTokenCount / tokenLimit(model);
12
- return (_jsxs(Text, { color: theme.text.secondary, children: ["(", ((1 - percentage) * 100).toFixed(0), "% context left)"] }));
12
+ const percentageLeft = ((1 - percentage) * 100).toFixed(0);
13
+ const label = terminalWidth < 100 ? '%' : '% context left';
14
+ return (_jsxs(Text, { color: theme.text.secondary, children: ["(", percentageLeft, label, ")"] }));
13
15
  };
14
16
  //# sourceMappingURL=ContextUsageDisplay.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"ContextUsageDisplay.js","sourceRoot":"","sources":["../../../../src/ui/components/ContextUsageDisplay.tsx"],"names":[],"mappings":";AAAA;;;;GAIG;AAEH,OAAO,EAAE,IAAI,EAAE,MAAM,KAAK,CAAC;AAC3B,OAAO,EAAE,KAAK,EAAE,MAAM,uBAAuB,CAAC;AAC9C,OAAO,EAAE,UAAU,EAAE,MAAM,yBAAyB,CAAC;AAErD,MAAM,CAAC,MAAM,mBAAmB,GAAG,CAAC,EAClC,gBAAgB,EAChB,KAAK,GAIN,EAAE,EAAE;IACH,MAAM,UAAU,GAAG,gBAAgB,GAAG,UAAU,CAAC,KAAK,CAAC,CAAC;IAExD,OAAO,CACL,MAAC,IAAI,IAAC,KAAK,EAAE,KAAK,CAAC,IAAI,CAAC,SAAS,kBAC7B,CAAC,CAAC,CAAC,GAAG,UAAU,CAAC,GAAG,GAAG,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,uBAChC,CACR,CAAC;AACJ,CAAC,CAAC"}
1
+ {"version":3,"file":"ContextUsageDisplay.js","sourceRoot":"","sources":["../../../../src/ui/components/ContextUsageDisplay.tsx"],"names":[],"mappings":";AAAA;;;;GAIG;AAEH,OAAO,EAAE,IAAI,EAAE,MAAM,KAAK,CAAC;AAC3B,OAAO,EAAE,KAAK,EAAE,MAAM,uBAAuB,CAAC;AAC9C,OAAO,EAAE,UAAU,EAAE,MAAM,yBAAyB,CAAC;AAErD,MAAM,CAAC,MAAM,mBAAmB,GAAG,CAAC,EAClC,gBAAgB,EAChB,KAAK,EACL,aAAa,GAKd,EAAE,EAAE;IACH,MAAM,UAAU,GAAG,gBAAgB,GAAG,UAAU,CAAC,KAAK,CAAC,CAAC;IACxD,MAAM,cAAc,GAAG,CAAC,CAAC,CAAC,GAAG,UAAU,CAAC,GAAG,GAAG,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;IAE3D,MAAM,KAAK,GAAG,aAAa,GAAG,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,gBAAgB,CAAC;IAE3D,OAAO,CACL,MAAC,IAAI,IAAC,KAAK,EAAE,KAAK,CAAC,IAAI,CAAC,SAAS,kBAC7B,cAAc,EACf,KAAK,SACD,CACR,CAAC;AACJ,CAAC,CAAC"}
@@ -6,6 +6,7 @@
6
6
  import { type UseHistoryManagerReturn } from '../hooks/useHistoryManager.js';
7
7
  interface DialogManagerProps {
8
8
  addItem: UseHistoryManagerReturn['addItem'];
9
+ terminalWidth: number;
9
10
  }
10
- export declare const DialogManager: ({ addItem }: DialogManagerProps) => import("react/jsx-runtime").JSX.Element | null;
11
+ export declare const DialogManager: ({ addItem, terminalWidth, }: DialogManagerProps) => import("react/jsx-runtime").JSX.Element | null;
11
12
  export {};
@@ -9,7 +9,7 @@ import { IdeIntegrationNudge } from '../IdeIntegrationNudge.js';
9
9
  import { LoopDetectionConfirmation } from './LoopDetectionConfirmation.js';
10
10
  import { FolderTrustDialog } from './FolderTrustDialog.js';
11
11
  import { ShellConfirmationDialog } from './ShellConfirmationDialog.js';
12
- import { RadioButtonSelect } from './shared/RadioButtonSelect.js';
12
+ import { ConsentPrompt } from './ConsentPrompt.js';
13
13
  import { ThemeDialog } from './ThemeDialog.js';
14
14
  import { SettingsDialog } from './SettingsDialog.js';
15
15
  import { AuthInProgress } from '../auth/AuthInProgress.js';
@@ -27,15 +27,16 @@ import { useConfig } from '../contexts/ConfigContext.js';
27
27
  import { useSettings } from '../contexts/SettingsContext.js';
28
28
  import process from 'node:process';
29
29
  import {} from '../hooks/useHistoryManager.js';
30
+ import { IdeTrustChangeDialog } from './IdeTrustChangeDialog.js';
30
31
  // Props for DialogManager
31
- export const DialogManager = ({ addItem }) => {
32
+ export const DialogManager = ({ addItem, terminalWidth, }) => {
32
33
  const config = useConfig();
33
34
  const settings = useSettings();
34
35
  const uiState = useUIState();
35
36
  const uiActions = useUIActions();
36
37
  const { constrainHeight, terminalHeight, staticExtraHeight, mainAreaWidth } = uiState;
37
38
  if (uiState.showIdeRestartPrompt) {
38
- return (_jsx(Box, { borderStyle: "round", borderColor: theme.status.warning, paddingX: 1, children: _jsx(Text, { color: theme.status.warning, children: "Workspace trust has changed. Press 'r' to restart Gemini to apply the changes." }) }));
39
+ return _jsx(IdeTrustChangeDialog, { reason: uiState.ideTrustRestartReason });
39
40
  }
40
41
  if (uiState.showWorkspaceMigrationDialog) {
41
42
  return (_jsx(WorkspaceMigrationDialog, { workspaceExtensions: uiState.workspaceExtensions, onOpen: uiActions.onWorkspaceMigrationDialogOpen, onClose: uiActions.onWorkspaceMigrationDialogClose }));
@@ -56,12 +57,11 @@ export const DialogManager = ({ addItem }) => {
56
57
  return (_jsx(LoopDetectionConfirmation, { onComplete: uiState.loopDetectionConfirmationRequest.onComplete }));
57
58
  }
58
59
  if (uiState.confirmationRequest) {
59
- return (_jsxs(Box, { flexDirection: "column", children: [uiState.confirmationRequest.prompt, _jsx(Box, { paddingY: 1, children: _jsx(RadioButtonSelect, { items: [
60
- { label: 'Yes', value: true, key: 'Yes' },
61
- { label: 'No', value: false, key: 'No' },
62
- ], onSelect: (value) => {
63
- uiState.confirmationRequest.onConfirm(value);
64
- } }) })] }));
60
+ return (_jsx(ConsentPrompt, { prompt: uiState.confirmationRequest.prompt, onConfirm: uiState.confirmationRequest.onConfirm, terminalWidth: terminalWidth }));
61
+ }
62
+ if (uiState.confirmUpdateExtensionRequests.length > 0) {
63
+ const request = uiState.confirmUpdateExtensionRequests[0];
64
+ return (_jsx(ConsentPrompt, { prompt: request.prompt, onConfirm: request.onConfirm, terminalWidth: terminalWidth }));
65
65
  }
66
66
  if (uiState.isThemeDialogOpen) {
67
67
  return (_jsxs(Box, { flexDirection: "column", children: [uiState.themeError && (_jsx(Box, { marginBottom: 1, children: _jsx(Text, { color: theme.status.error, children: uiState.themeError }) })), _jsx(ThemeDialog, { onSelect: uiActions.handleThemeSelect, onHighlight: uiActions.handleThemeHighlight, settings: settings, availableTerminalHeight: constrainHeight ? terminalHeight - staticExtraHeight : undefined, terminalWidth: mainAreaWidth })] }));
@@ -1 +1 @@
1
- {"version":3,"file":"DialogManager.js","sourceRoot":"","sources":["../../../../src/ui/components/DialogManager.tsx"],"names":[],"mappings":";AAAA;;;;GAIG;AAEH,OAAO,EAAE,GAAG,EAAE,IAAI,EAAE,MAAM,KAAK,CAAC;AAChC,OAAO,EAAE,mBAAmB,EAAE,MAAM,2BAA2B,CAAC;AAChE,OAAO,EAAE,yBAAyB,EAAE,MAAM,gCAAgC,CAAC;AAC3E,OAAO,EAAE,iBAAiB,EAAE,MAAM,wBAAwB,CAAC;AAC3D,OAAO,EAAE,uBAAuB,EAAE,MAAM,8BAA8B,CAAC;AACvE,OAAO,EAAE,iBAAiB,EAAE,MAAM,+BAA+B,CAAC;AAClE,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAC/C,OAAO,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AACrD,OAAO,EAAE,cAAc,EAAE,MAAM,2BAA2B,CAAC;AAC3D,OAAO,EAAE,UAAU,EAAE,MAAM,uBAAuB,CAAC;AACnD,OAAO,EAAE,oBAAoB,EAAE,MAAM,2BAA2B,CAAC;AACjE,OAAO,EAAE,aAAa,EAAE,MAAM,6BAA6B,CAAC;AAC5D,OAAO,EAAE,wBAAwB,EAAE,MAAM,+BAA+B,CAAC;AACzE,OAAO,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AACrD,OAAO,EAAE,4BAA4B,EAAE,MAAM,mCAAmC,CAAC;AACjF,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAC/C,OAAO,EAAE,KAAK,EAAE,MAAM,uBAAuB,CAAC;AAC9C,OAAO,EAAE,UAAU,EAAE,MAAM,+BAA+B,CAAC;AAC3D,OAAO,EAAE,YAAY,EAAE,MAAM,iCAAiC,CAAC;AAC/D,OAAO,EAAE,SAAS,EAAE,MAAM,8BAA8B,CAAC;AACzD,OAAO,EAAE,WAAW,EAAE,MAAM,gCAAgC,CAAC;AAC7D,OAAO,OAAO,MAAM,cAAc,CAAC;AACnC,OAAO,EAAgC,MAAM,+BAA+B,CAAC;AAM7E,0BAA0B;AAC1B,MAAM,CAAC,MAAM,aAAa,GAAG,CAAC,EAAE,OAAO,EAAsB,EAAE,EAAE;IAC/D,MAAM,MAAM,GAAG,SAAS,EAAE,CAAC;IAC3B,MAAM,QAAQ,GAAG,WAAW,EAAE,CAAC;IAE/B,MAAM,OAAO,GAAG,UAAU,EAAE,CAAC;IAC7B,MAAM,SAAS,GAAG,YAAY,EAAE,CAAC;IACjC,MAAM,EAAE,eAAe,EAAE,cAAc,EAAE,iBAAiB,EAAE,aAAa,EAAE,GACzE,OAAO,CAAC;IAEV,IAAI,OAAO,CAAC,oBAAoB,EAAE,CAAC;QACjC,OAAO,CACL,KAAC,GAAG,IAAC,WAAW,EAAC,OAAO,EAAC,WAAW,EAAE,KAAK,CAAC,MAAM,CAAC,OAAO,EAAE,QAAQ,EAAE,CAAC,YACrE,KAAC,IAAI,IAAC,KAAK,EAAE,KAAK,CAAC,MAAM,CAAC,OAAO,+FAG1B,GACH,CACP,CAAC;IACJ,CAAC;IACD,IAAI,OAAO,CAAC,4BAA4B,EAAE,CAAC;QACzC,OAAO,CACL,KAAC,wBAAwB,IACvB,mBAAmB,EAAE,OAAO,CAAC,mBAAmB,EAChD,MAAM,EAAE,SAAS,CAAC,8BAA8B,EAChD,OAAO,EAAE,SAAS,CAAC,+BAA+B,GAClD,CACH,CAAC;IACJ,CAAC;IACD,IAAI,OAAO,CAAC,eAAe,EAAE,CAAC;QAC5B,OAAO,CACL,KAAC,cAAc,IACb,WAAW,EAAE,OAAO,CAAC,eAAe,CAAC,WAAW,EAChD,aAAa,EAAE,OAAO,CAAC,eAAe,CAAC,aAAa,EACpD,QAAQ,EAAE,SAAS,CAAC,oBAAoB,GACxC,CACH,CAAC;IACJ,CAAC;IACD,IAAI,OAAO,CAAC,mBAAmB,EAAE,CAAC;QAChC,OAAO,CACL,KAAC,mBAAmB,IAClB,GAAG,EAAE,OAAO,CAAC,UAAW,EACxB,UAAU,EAAE,SAAS,CAAC,uBAAuB,GAC7C,CACH,CAAC;IACJ,CAAC;IACD,IAAI,OAAO,CAAC,uBAAuB,EAAE,CAAC;QACpC,OAAO,CACL,KAAC,iBAAiB,IAChB,QAAQ,EAAE,SAAS,CAAC,uBAAuB,EAC3C,YAAY,EAAE,OAAO,CAAC,YAAY,GAClC,CACH,CAAC;IACJ,CAAC;IACD,IAAI,OAAO,CAAC,wBAAwB,EAAE,CAAC;QACrC,OAAO,CACL,KAAC,uBAAuB,IAAC,OAAO,EAAE,OAAO,CAAC,wBAAwB,GAAI,CACvE,CAAC;IACJ,CAAC;IACD,IAAI,OAAO,CAAC,gCAAgC,EAAE,CAAC;QAC7C,OAAO,CACL,KAAC,yBAAyB,IACxB,UAAU,EAAE,OAAO,CAAC,gCAAgC,CAAC,UAAU,GAC/D,CACH,CAAC;IACJ,CAAC;IACD,IAAI,OAAO,CAAC,mBAAmB,EAAE,CAAC;QAChC,OAAO,CACL,MAAC,GAAG,IAAC,aAAa,EAAC,QAAQ,aACxB,OAAO,CAAC,mBAAmB,CAAC,MAAM,EACnC,KAAC,GAAG,IAAC,QAAQ,EAAE,CAAC,YACd,KAAC,iBAAiB,IAChB,KAAK,EAAE;4BACL,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,IAAI,EAAE,GAAG,EAAE,KAAK,EAAE;4BACzC,EAAE,KAAK,EAAE,IAAI,EAAE,KAAK,EAAE,KAAK,EAAE,GAAG,EAAE,IAAI,EAAE;yBACzC,EACD,QAAQ,EAAE,CAAC,KAAc,EAAE,EAAE;4BAC3B,OAAO,CAAC,mBAAoB,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC;wBAChD,CAAC,GACD,GACE,IACF,CACP,CAAC;IACJ,CAAC;IACD,IAAI,OAAO,CAAC,iBAAiB,EAAE,CAAC;QAC9B,OAAO,CACL,MAAC,GAAG,IAAC,aAAa,EAAC,QAAQ,aACxB,OAAO,CAAC,UAAU,IAAI,CACrB,KAAC,GAAG,IAAC,YAAY,EAAE,CAAC,YAClB,KAAC,IAAI,IAAC,KAAK,EAAE,KAAK,CAAC,MAAM,CAAC,KAAK,YAAG,OAAO,CAAC,UAAU,GAAQ,GACxD,CACP,EACD,KAAC,WAAW,IACV,QAAQ,EAAE,SAAS,CAAC,iBAAiB,EACrC,WAAW,EAAE,SAAS,CAAC,oBAAoB,EAC3C,QAAQ,EAAE,QAAQ,EAClB,uBAAuB,EACrB,eAAe,CAAC,CAAC,CAAC,cAAc,GAAG,iBAAiB,CAAC,CAAC,CAAC,SAAS,EAElE,aAAa,EAAE,aAAa,GAC5B,IACE,CACP,CAAC;IACJ,CAAC;IACD,IAAI,OAAO,CAAC,oBAAoB,EAAE,CAAC;QACjC,OAAO,CACL,KAAC,GAAG,IAAC,aAAa,EAAC,QAAQ,YACzB,KAAC,cAAc,IACb,QAAQ,EAAE,QAAQ,EAClB,QAAQ,EAAE,GAAG,EAAE,CAAC,SAAS,CAAC,mBAAmB,EAAE,EAC/C,gBAAgB,EAAE,GAAG,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,EACvC,uBAAuB,EAAE,cAAc,GAAG,iBAAiB,GAC3D,GACE,CACP,CAAC;IACJ,CAAC;IACD,IAAI,OAAO,CAAC,iBAAiB,EAAE,CAAC;QAC9B,OAAO,KAAC,WAAW,IAAC,OAAO,EAAE,SAAS,CAAC,gBAAgB,GAAI,CAAC;IAC9D,CAAC;IACD,IAAI,OAAO,CAAC,gBAAgB,EAAE,CAAC;QAC7B,OAAO,CACL,KAAC,cAAc,IACb,SAAS,EAAE,GAAG,EAAE;gBACd,SAAS,CAAC,WAAW,CAAC,2BAA2B,CAAC,CAAC;YACrD,CAAC,GACD,CACH,CAAC;IACJ,CAAC;IACD,IAAI,OAAO,CAAC,gBAAgB,EAAE,CAAC;QAC7B,OAAO,CACL,KAAC,GAAG,IAAC,aAAa,EAAC,QAAQ,YACzB,KAAC,UAAU,IACT,MAAM,EAAE,MAAM,EACd,QAAQ,EAAE,QAAQ,EAClB,YAAY,EAAE,SAAS,CAAC,YAAY,EACpC,SAAS,EAAE,OAAO,CAAC,SAAS,EAC5B,WAAW,EAAE,SAAS,CAAC,WAAW,GAClC,GACE,CACP,CAAC;IACJ,CAAC;IACD,IAAI,OAAO,CAAC,kBAAkB,EAAE,CAAC;QAC/B,OAAO,CACL,MAAC,GAAG,IAAC,aAAa,EAAC,QAAQ,aACxB,OAAO,CAAC,WAAW,IAAI,CACtB,KAAC,GAAG,IAAC,YAAY,EAAE,CAAC,YAClB,KAAC,IAAI,IAAC,KAAK,EAAE,KAAK,CAAC,MAAM,CAAC,KAAK,YAAG,OAAO,CAAC,WAAW,GAAQ,GACzD,CACP,EACD,KAAC,oBAAoB,IACnB,QAAQ,EAAE,SAAS,CAAC,kBAAkB,EACtC,QAAQ,EAAE,QAAQ,EAClB,MAAM,EAAE,SAAS,CAAC,gBAAgB,GAClC,IACE,CACP,CAAC;IACJ,CAAC;IACD,IAAI,OAAO,CAAC,iBAAiB,EAAE,CAAC;QAC9B,OAAO,CACL,KAAC,aAAa,IACZ,MAAM,EAAE,GAAG,EAAE,CAAC,SAAS,CAAC,iBAAiB,EAAE,EAC3C,MAAM,EAAE,MAAM,GACd,CACH,CAAC;IACJ,CAAC;IAED,IAAI,OAAO,CAAC,uBAAuB,EAAE,CAAC;QACpC,OAAO,CACL,KAAC,4BAA4B,IAC3B,MAAM,EAAE,SAAS,CAAC,sBAAsB,EACxC,OAAO,EAAE,OAAO,GAChB,CACH,CAAC;IACJ,CAAC;IAED,OAAO,IAAI,CAAC;AACd,CAAC,CAAC"}
1
+ {"version":3,"file":"DialogManager.js","sourceRoot":"","sources":["../../../../src/ui/components/DialogManager.tsx"],"names":[],"mappings":"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"}
@@ -4,13 +4,11 @@ import { theme } from '../semantic-colors.js';
4
4
  import { shortenPath, tildeifyPath } from '@google/gemini-cli-core';
5
5
  import { ConsoleSummaryDisplay } from './ConsoleSummaryDisplay.js';
6
6
  import process from 'node:process';
7
- import path from 'node:path';
8
7
  import Gradient from 'ink-gradient';
9
8
  import { MemoryUsageDisplay } from './MemoryUsageDisplay.js';
10
9
  import { ContextUsageDisplay } from './ContextUsageDisplay.js';
11
10
  import { DebugProfiler } from './DebugProfiler.js';
12
11
  import { useTerminalSize } from '../hooks/useTerminalSize.js';
13
- import { isNarrowWidth } from '../utils/isNarrowWidth.js';
14
12
  import { useUIState } from '../contexts/UIStateContext.js';
15
13
  import { useConfig } from '../contexts/ConfigContext.js';
16
14
  import { useSettings } from '../contexts/SettingsContext.js';
@@ -38,19 +36,12 @@ export const Footer = () => {
38
36
  const hideSandboxStatus = settings.merged.ui?.footer?.hideSandboxStatus || false;
39
37
  const hideModelInfo = settings.merged.ui?.footer?.hideModelInfo || false;
40
38
  const { columns: terminalWidth } = useTerminalSize();
41
- const isNarrow = isNarrowWidth(terminalWidth);
42
- // Adjust path length based on terminal width
43
- const pathLength = Math.max(20, Math.floor(terminalWidth * 0.4));
44
- const displayPath = isNarrow
45
- ? path.basename(tildeifyPath(targetDir))
46
- : shortenPath(tildeifyPath(targetDir), pathLength);
39
+ const pathLength = Math.max(20, Math.floor(terminalWidth * 0.25));
40
+ const displayPath = shortenPath(tildeifyPath(targetDir), pathLength);
47
41
  const justifyContent = hideCWD && hideModelInfo ? 'center' : 'space-between';
48
42
  const displayVimMode = vimEnabled ? vimMode : undefined;
49
- return (_jsxs(Box, { justifyContent: justifyContent, width: "100%", flexDirection: isNarrow ? 'column' : 'row', alignItems: isNarrow ? 'flex-start' : 'center', children: [(debugMode || displayVimMode || !hideCWD) && (_jsxs(Box, { children: [debugMode && _jsx(DebugProfiler, {}), displayVimMode && (_jsxs(Text, { color: theme.text.secondary, children: ["[", displayVimMode, "] "] })), !hideCWD &&
50
- (nightly ? (_jsx(Gradient, { colors: theme.ui.gradient, children: _jsxs(Text, { children: [displayPath, branchName && _jsxs(Text, { children: [" (", branchName, "*)"] })] }) })) : (_jsxs(Text, { color: theme.text.link, children: [displayPath, branchName && (_jsxs(Text, { color: theme.text.secondary, children: [" (", branchName, "*)"] }))] }))), debugMode && (_jsx(Text, { color: theme.status.error, children: ' ' + (debugMessage || '--debug') }))] })), !hideSandboxStatus && (_jsx(Box, { flexGrow: isNarrow || hideCWD || hideModelInfo ? 0 : 1, alignItems: "center", justifyContent: isNarrow || hideCWD ? 'flex-start' : 'center', display: "flex", paddingX: isNarrow ? 0 : 1, paddingTop: isNarrow ? 1 : 0, children: isTrustedFolder === false ? (_jsx(Text, { color: theme.status.warning, children: "untrusted" })) : process.env['SANDBOX'] &&
51
- process.env['SANDBOX'] !== 'sandbox-exec' ? (_jsx(Text, { color: "green", children: process.env['SANDBOX'].replace(/^gemini-(?:cli-)?/, '') })) : process.env['SANDBOX'] === 'sandbox-exec' ? (_jsxs(Text, { color: theme.status.warning, children: ["macOS Seatbelt", ' ', _jsxs(Text, { color: theme.text.secondary, children: ["(", process.env['SEATBELT_PROFILE'], ")"] })] })) : (_jsxs(Text, { color: theme.status.error, children: ["no sandbox ", _jsx(Text, { color: theme.text.secondary, children: "(see /docs)" })] })) })), (!hideModelInfo ||
52
- showMemoryUsage ||
53
- corgiMode ||
54
- (!showErrorDetails && errorCount > 0)) && (_jsxs(Box, { alignItems: "center", paddingTop: isNarrow ? 1 : 0, children: [!hideModelInfo && (_jsxs(Box, { alignItems: "center", children: [_jsxs(Text, { color: theme.text.accent, children: [isNarrow ? '' : ' ', model, ' ', _jsx(ContextUsageDisplay, { promptTokenCount: promptTokenCount, model: model })] }), showMemoryUsage && _jsx(MemoryUsageDisplay, {})] })), _jsxs(Box, { alignItems: "center", paddingLeft: 2, children: [corgiMode && (_jsxs(Text, { children: [!hideModelInfo && _jsx(Text, { color: theme.ui.comment, children: "| " }), _jsx(Text, { color: theme.status.error, children: "\u25BC" }), _jsx(Text, { color: theme.text.primary, children: "(\u00B4" }), _jsx(Text, { color: theme.status.error, children: "\u1D25" }), _jsx(Text, { color: theme.text.primary, children: "`)" }), _jsx(Text, { color: theme.status.error, children: "\u25BC " })] })), !showErrorDetails && errorCount > 0 && (_jsxs(Box, { children: [!hideModelInfo && _jsx(Text, { color: theme.ui.comment, children: "| " }), _jsx(ConsoleSummaryDisplay, { errorCount: errorCount })] }))] })] }))] }));
43
+ return (_jsxs(Box, { justifyContent: justifyContent, width: "100%", flexDirection: "row", alignItems: "center", children: [(debugMode || displayVimMode || !hideCWD) && (_jsxs(Box, { children: [debugMode && _jsx(DebugProfiler, {}), displayVimMode && (_jsxs(Text, { color: theme.text.secondary, children: ["[", displayVimMode, "] "] })), !hideCWD &&
44
+ (nightly ? (_jsx(Gradient, { colors: theme.ui.gradient, children: _jsxs(Text, { children: [displayPath, branchName && _jsxs(Text, { children: [" (", branchName, "*)"] })] }) })) : (_jsxs(Text, { color: theme.text.link, children: [displayPath, branchName && (_jsxs(Text, { color: theme.text.secondary, children: [" (", branchName, "*)"] }))] }))), debugMode && (_jsx(Text, { color: theme.status.error, children: ' ' + (debugMessage || '--debug') }))] })), !hideSandboxStatus && (_jsx(Box, { flexGrow: 1, alignItems: "center", justifyContent: "center", display: "flex", children: isTrustedFolder === false ? (_jsx(Text, { color: theme.status.warning, children: "untrusted" })) : process.env['SANDBOX'] &&
45
+ process.env['SANDBOX'] !== 'sandbox-exec' ? (_jsx(Text, { color: "green", children: process.env['SANDBOX'].replace(/^gemini-(?:cli-)?/, '') })) : process.env['SANDBOX'] === 'sandbox-exec' ? (_jsxs(Text, { color: theme.status.warning, children: ["macOS Seatbelt", ' ', _jsxs(Text, { color: theme.text.secondary, children: ["(", process.env['SEATBELT_PROFILE'], ")"] })] })) : (_jsxs(Text, { color: theme.status.error, children: ["no sandbox", terminalWidth >= 100 && (_jsx(Text, { color: theme.text.secondary, children: " (see /docs)" }))] })) })), !hideModelInfo && (_jsxs(Box, { alignItems: "center", justifyContent: "flex-end", children: [_jsxs(Box, { alignItems: "center", children: [_jsxs(Text, { color: theme.text.accent, children: [model, ' ', _jsx(ContextUsageDisplay, { promptTokenCount: promptTokenCount, model: model, terminalWidth: terminalWidth })] }), showMemoryUsage && _jsx(MemoryUsageDisplay, {})] }), _jsxs(Box, { alignItems: "center", paddingLeft: 2, children: [corgiMode && (_jsxs(Text, { children: [_jsx(Text, { color: theme.ui.symbol, children: "| " }), _jsx(Text, { color: theme.status.error, children: "\u25BC" }), _jsx(Text, { color: theme.text.primary, children: "(\u00B4" }), _jsx(Text, { color: theme.status.error, children: "\u1D25" }), _jsx(Text, { color: theme.text.primary, children: "`)" }), _jsx(Text, { color: theme.status.error, children: "\u25BC " })] })), !showErrorDetails && errorCount > 0 && (_jsxs(Box, { children: [_jsx(Text, { color: theme.ui.symbol, children: "| " }), _jsx(ConsoleSummaryDisplay, { errorCount: errorCount })] }))] })] }))] }));
55
46
  };
56
47
  //# sourceMappingURL=Footer.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"Footer.js","sourceRoot":"","sources":["../../../../src/ui/components/Footer.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"Footer.js","sourceRoot":"","sources":["../../../../src/ui/components/Footer.tsx"],"names":[],"mappings":"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"}
@@ -18,8 +18,11 @@ import { ToolStatsDisplay } from './ToolStatsDisplay.js';
18
18
  import { SessionSummaryDisplay } from './SessionSummaryDisplay.js';
19
19
  import { Help } from './Help.js';
20
20
  import { ExtensionsList } from './views/ExtensionsList.js';
21
+ import { getMCPServerStatus } from '@google/gemini-cli-core';
22
+ import { ToolsList } from './views/ToolsList.js';
23
+ import { McpStatus } from './views/McpStatus.js';
21
24
  export const HistoryItemDisplay = ({ item, availableTerminalHeight, terminalWidth, isPending, commands, isFocused = true, activeShellPtyId, embeddedShellFocused, availableTerminalHeightGemini, }) => {
22
25
  const itemForDisplay = useMemo(() => escapeAnsiCtrlCodes(item), [item]);
23
- return (_jsxs(Box, { flexDirection: "column", children: [itemForDisplay.type === 'user' && (_jsx(UserMessage, { text: itemForDisplay.text })), itemForDisplay.type === 'user_shell' && (_jsx(UserShellMessage, { text: itemForDisplay.text })), itemForDisplay.type === 'gemini' && (_jsx(GeminiMessage, { text: itemForDisplay.text, isPending: isPending, availableTerminalHeight: availableTerminalHeightGemini ?? availableTerminalHeight, terminalWidth: terminalWidth })), itemForDisplay.type === 'gemini_content' && (_jsx(GeminiMessageContent, { text: itemForDisplay.text, isPending: isPending, availableTerminalHeight: availableTerminalHeightGemini ?? availableTerminalHeight, terminalWidth: terminalWidth })), itemForDisplay.type === 'info' && (_jsx(InfoMessage, { text: itemForDisplay.text })), itemForDisplay.type === 'warning' && (_jsx(WarningMessage, { text: itemForDisplay.text })), itemForDisplay.type === 'error' && (_jsx(ErrorMessage, { text: itemForDisplay.text })), itemForDisplay.type === 'about' && (_jsx(AboutBox, { cliVersion: itemForDisplay.cliVersion, osVersion: itemForDisplay.osVersion, sandboxEnv: itemForDisplay.sandboxEnv, modelVersion: itemForDisplay.modelVersion, selectedAuthType: itemForDisplay.selectedAuthType, gcpProject: itemForDisplay.gcpProject, ideClient: itemForDisplay.ideClient })), itemForDisplay.type === 'help' && commands && (_jsx(Help, { commands: commands })), itemForDisplay.type === 'stats' && (_jsx(StatsDisplay, { duration: itemForDisplay.duration })), itemForDisplay.type === 'model_stats' && _jsx(ModelStatsDisplay, {}), itemForDisplay.type === 'tool_stats' && _jsx(ToolStatsDisplay, {}), itemForDisplay.type === 'quit' && (_jsx(SessionSummaryDisplay, { duration: itemForDisplay.duration })), itemForDisplay.type === 'tool_group' && (_jsx(ToolGroupMessage, { toolCalls: itemForDisplay.tools, groupId: itemForDisplay.id, availableTerminalHeight: availableTerminalHeight, terminalWidth: terminalWidth, isFocused: isFocused, activeShellPtyId: activeShellPtyId, embeddedShellFocused: embeddedShellFocused })), itemForDisplay.type === 'compression' && (_jsx(CompressionMessage, { compression: itemForDisplay.compression })), itemForDisplay.type === 'extensions_list' && _jsx(ExtensionsList, {})] }, itemForDisplay.id));
26
+ return (_jsxs(Box, { flexDirection: "column", children: [itemForDisplay.type === 'user' && (_jsx(UserMessage, { text: itemForDisplay.text })), itemForDisplay.type === 'user_shell' && (_jsx(UserShellMessage, { text: itemForDisplay.text })), itemForDisplay.type === 'gemini' && (_jsx(GeminiMessage, { text: itemForDisplay.text, isPending: isPending, availableTerminalHeight: availableTerminalHeightGemini ?? availableTerminalHeight, terminalWidth: terminalWidth })), itemForDisplay.type === 'gemini_content' && (_jsx(GeminiMessageContent, { text: itemForDisplay.text, isPending: isPending, availableTerminalHeight: availableTerminalHeightGemini ?? availableTerminalHeight, terminalWidth: terminalWidth })), itemForDisplay.type === 'info' && (_jsx(InfoMessage, { text: itemForDisplay.text })), itemForDisplay.type === 'warning' && (_jsx(WarningMessage, { text: itemForDisplay.text })), itemForDisplay.type === 'error' && (_jsx(ErrorMessage, { text: itemForDisplay.text })), itemForDisplay.type === 'about' && (_jsx(AboutBox, { cliVersion: itemForDisplay.cliVersion, osVersion: itemForDisplay.osVersion, sandboxEnv: itemForDisplay.sandboxEnv, modelVersion: itemForDisplay.modelVersion, selectedAuthType: itemForDisplay.selectedAuthType, gcpProject: itemForDisplay.gcpProject, ideClient: itemForDisplay.ideClient })), itemForDisplay.type === 'help' && commands && (_jsx(Help, { commands: commands })), itemForDisplay.type === 'stats' && (_jsx(StatsDisplay, { duration: itemForDisplay.duration })), itemForDisplay.type === 'model_stats' && _jsx(ModelStatsDisplay, {}), itemForDisplay.type === 'tool_stats' && _jsx(ToolStatsDisplay, {}), itemForDisplay.type === 'quit' && (_jsx(SessionSummaryDisplay, { duration: itemForDisplay.duration })), itemForDisplay.type === 'tool_group' && (_jsx(ToolGroupMessage, { toolCalls: itemForDisplay.tools, groupId: itemForDisplay.id, availableTerminalHeight: availableTerminalHeight, terminalWidth: terminalWidth, isFocused: isFocused, activeShellPtyId: activeShellPtyId, embeddedShellFocused: embeddedShellFocused })), itemForDisplay.type === 'compression' && (_jsx(CompressionMessage, { compression: itemForDisplay.compression })), itemForDisplay.type === 'extensions_list' && _jsx(ExtensionsList, {}), itemForDisplay.type === 'tools_list' && (_jsx(ToolsList, { terminalWidth: terminalWidth, tools: itemForDisplay.tools, showDescriptions: itemForDisplay.showDescriptions })), itemForDisplay.type === 'mcp_status' && (_jsx(McpStatus, { ...itemForDisplay, serverStatus: getMCPServerStatus }))] }, itemForDisplay.id));
24
27
  };
25
28
  //# sourceMappingURL=HistoryItemDisplay.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"HistoryItemDisplay.js","sourceRoot":"","sources":["../../../../src/ui/components/HistoryItemDisplay.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"HistoryItemDisplay.js","sourceRoot":"","sources":["../../../../src/ui/components/HistoryItemDisplay.tsx"],"names":[],"mappings":"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"}
@@ -0,0 +1,11 @@
1
+ /**
2
+ * @license
3
+ * Copyright 2025 Google LLC
4
+ * SPDX-License-Identifier: Apache-2.0
5
+ */
6
+ import { type RestartReason } from '../hooks/useIdeTrustListener.js';
7
+ interface IdeTrustChangeDialogProps {
8
+ reason: RestartReason;
9
+ }
10
+ export declare const IdeTrustChangeDialog: ({ reason }: IdeTrustChangeDialogProps) => import("react/jsx-runtime").JSX.Element;
11
+ export {};
@@ -0,0 +1,32 @@
1
+ import { jsxs as _jsxs, jsx as _jsx } from "react/jsx-runtime";
2
+ /**
3
+ * @license
4
+ * Copyright 2025 Google LLC
5
+ * SPDX-License-Identifier: Apache-2.0
6
+ */
7
+ import { Box, Text } from 'ink';
8
+ import { theme } from '../semantic-colors.js';
9
+ import { useKeypress } from '../hooks/useKeypress.js';
10
+ import { relaunchApp } from '../../utils/processUtils.js';
11
+ import {} from '../hooks/useIdeTrustListener.js';
12
+ export const IdeTrustChangeDialog = ({ reason }) => {
13
+ useKeypress((key) => {
14
+ if (key.name === 'r' || key.name === 'R') {
15
+ relaunchApp();
16
+ }
17
+ }, { isActive: true });
18
+ let message = 'Workspace trust has changed.';
19
+ if (reason === 'NONE') {
20
+ // This should not happen, but provides a fallback and a debug log.
21
+ console.error('IdeTrustChangeDialog rendered with unexpected reason "NONE"');
22
+ }
23
+ else if (reason === 'CONNECTION_CHANGE') {
24
+ message =
25
+ 'Workspace trust has changed due to a change in the IDE connection.';
26
+ }
27
+ else if (reason === 'TRUST_CHANGE') {
28
+ message = 'Workspace trust has changed due to a change in the IDE trust.';
29
+ }
30
+ return (_jsx(Box, { borderStyle: "round", borderColor: theme.status.warning, paddingX: 1, children: _jsxs(Text, { color: theme.status.warning, children: [message, " Press 'r' to restart Gemini to apply the changes."] }) }));
31
+ };
32
+ //# sourceMappingURL=IdeTrustChangeDialog.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"IdeTrustChangeDialog.js","sourceRoot":"","sources":["../../../../src/ui/components/IdeTrustChangeDialog.tsx"],"names":[],"mappings":";AAAA;;;;GAIG;AAEH,OAAO,EAAE,GAAG,EAAE,IAAI,EAAE,MAAM,KAAK,CAAC;AAChC,OAAO,EAAE,KAAK,EAAE,MAAM,uBAAuB,CAAC;AAC9C,OAAO,EAAE,WAAW,EAAE,MAAM,yBAAyB,CAAC;AACtD,OAAO,EAAE,WAAW,EAAE,MAAM,6BAA6B,CAAC;AAC1D,OAAO,EAAsB,MAAM,iCAAiC,CAAC;AAMrE,MAAM,CAAC,MAAM,oBAAoB,GAAG,CAAC,EAAE,MAAM,EAA6B,EAAE,EAAE;IAC5E,WAAW,CACT,CAAC,GAAG,EAAE,EAAE;QACN,IAAI,GAAG,CAAC,IAAI,KAAK,GAAG,IAAI,GAAG,CAAC,IAAI,KAAK,GAAG,EAAE,CAAC;YACzC,WAAW,EAAE,CAAC;QAChB,CAAC;IACH,CAAC,EACD,EAAE,QAAQ,EAAE,IAAI,EAAE,CACnB,CAAC;IAEF,IAAI,OAAO,GAAG,8BAA8B,CAAC;IAC7C,IAAI,MAAM,KAAK,MAAM,EAAE,CAAC;QACtB,mEAAmE;QACnE,OAAO,CAAC,KAAK,CACX,6DAA6D,CAC9D,CAAC;IACJ,CAAC;SAAM,IAAI,MAAM,KAAK,mBAAmB,EAAE,CAAC;QAC1C,OAAO;YACL,oEAAoE,CAAC;IACzE,CAAC;SAAM,IAAI,MAAM,KAAK,cAAc,EAAE,CAAC;QACrC,OAAO,GAAG,+DAA+D,CAAC;IAC5E,CAAC;IAED,OAAO,CACL,KAAC,GAAG,IAAC,WAAW,EAAC,OAAO,EAAC,WAAW,EAAE,KAAK,CAAC,MAAM,CAAC,OAAO,EAAE,QAAQ,EAAE,CAAC,YACrE,MAAC,IAAI,IAAC,KAAK,EAAE,KAAK,CAAC,MAAM,CAAC,OAAO,aAC9B,OAAO,0DACH,GACH,CACP,CAAC;AACJ,CAAC,CAAC"}
@@ -0,0 +1,6 @@
1
+ /**
2
+ * @license
3
+ * Copyright 2025 Google LLC
4
+ * SPDX-License-Identifier: Apache-2.0
5
+ */
6
+ export {};
@@ -0,0 +1,57 @@
1
+ import { jsx as _jsx } from "react/jsx-runtime";
2
+ /**
3
+ * @license
4
+ * Copyright 2025 Google LLC
5
+ * SPDX-License-Identifier: Apache-2.0
6
+ */
7
+ import { vi, describe, it, expect, beforeEach } from 'vitest';
8
+ import * as processUtils from '../../utils/processUtils.js';
9
+ import { renderWithProviders } from '../../test-utils/render.js';
10
+ import { IdeTrustChangeDialog } from './IdeTrustChangeDialog.js';
11
+ describe('IdeTrustChangeDialog', () => {
12
+ beforeEach(() => {
13
+ vi.clearAllMocks();
14
+ });
15
+ it('renders the correct message for CONNECTION_CHANGE', () => {
16
+ const { lastFrame } = renderWithProviders(_jsx(IdeTrustChangeDialog, { reason: "CONNECTION_CHANGE" }));
17
+ const frameText = lastFrame();
18
+ expect(frameText).toContain('Workspace trust has changed due to a change in the IDE connection.');
19
+ expect(frameText).toContain("Press 'r' to restart Gemini");
20
+ });
21
+ it('renders the correct message for TRUST_CHANGE', () => {
22
+ const { lastFrame } = renderWithProviders(_jsx(IdeTrustChangeDialog, { reason: "TRUST_CHANGE" }));
23
+ const frameText = lastFrame();
24
+ expect(frameText).toContain('Workspace trust has changed due to a change in the IDE trust.');
25
+ expect(frameText).toContain("Press 'r' to restart Gemini");
26
+ });
27
+ it('renders a generic message and logs an error for NONE reason', () => {
28
+ const consoleErrorSpy = vi
29
+ .spyOn(console, 'error')
30
+ .mockImplementation(() => { });
31
+ const { lastFrame } = renderWithProviders(_jsx(IdeTrustChangeDialog, { reason: "NONE" }));
32
+ const frameText = lastFrame();
33
+ expect(frameText).toContain('Workspace trust has changed.');
34
+ expect(consoleErrorSpy).toHaveBeenCalledWith('IdeTrustChangeDialog rendered with unexpected reason "NONE"');
35
+ });
36
+ it('calls relaunchApp when "r" is pressed', () => {
37
+ const relaunchAppSpy = vi.spyOn(processUtils, 'relaunchApp');
38
+ const { stdin } = renderWithProviders(_jsx(IdeTrustChangeDialog, { reason: "NONE" }));
39
+ stdin.write('r');
40
+ expect(relaunchAppSpy).toHaveBeenCalledTimes(1);
41
+ });
42
+ it('calls relaunchApp when "R" is pressed', () => {
43
+ const relaunchAppSpy = vi.spyOn(processUtils, 'relaunchApp');
44
+ const { stdin } = renderWithProviders(_jsx(IdeTrustChangeDialog, { reason: "CONNECTION_CHANGE" }));
45
+ stdin.write('R');
46
+ expect(relaunchAppSpy).toHaveBeenCalledTimes(1);
47
+ });
48
+ it('does not call relaunchApp when another key is pressed', async () => {
49
+ const relaunchAppSpy = vi.spyOn(processUtils, 'relaunchApp');
50
+ const { stdin } = renderWithProviders(_jsx(IdeTrustChangeDialog, { reason: "CONNECTION_CHANGE" }));
51
+ stdin.write('a');
52
+ // Give it a moment to ensure no async actions are triggered
53
+ await new Promise((resolve) => setTimeout(resolve, 50));
54
+ expect(relaunchAppSpy).not.toHaveBeenCalled();
55
+ });
56
+ });
57
+ //# sourceMappingURL=IdeTrustChangeDialog.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"IdeTrustChangeDialog.test.js","sourceRoot":"","sources":["../../../../src/ui/components/IdeTrustChangeDialog.test.tsx"],"names":[],"mappings":"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"}
@@ -0,0 +1,27 @@
1
+ /**
2
+ * @license
3
+ * Copyright 2025 Google LLC
4
+ * SPDX-License-Identifier: Apache-2.0
5
+ */
6
+ import type { MCPServerConfig } from '@google/gemini-cli-core';
7
+ import { MCPServerStatus } from '@google/gemini-cli-core';
8
+ import type React from 'react';
9
+ import type { HistoryItemMcpStatus, JsonMcpPrompt, JsonMcpTool } from '../../types.js';
10
+ interface McpStatusProps {
11
+ servers: Record<string, MCPServerConfig>;
12
+ tools: JsonMcpTool[];
13
+ prompts: JsonMcpPrompt[];
14
+ blockedServers: Array<{
15
+ name: string;
16
+ extensionName: string;
17
+ }>;
18
+ serverStatus: (serverName: string) => MCPServerStatus;
19
+ authStatus: HistoryItemMcpStatus['authStatus'];
20
+ discoveryInProgress: boolean;
21
+ connectingServers: string[];
22
+ showDescriptions: boolean;
23
+ showSchema: boolean;
24
+ showTips: boolean;
25
+ }
26
+ export declare const McpStatus: React.FC<McpStatusProps>;
27
+ export {};