@google/gemini-cli 0.18.0-nightly.20251118.7cc5234b9 → 0.18.0-preview.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE +1 -1
- package/README.md +1 -0
- package/dist/package.json +4 -4
- package/dist/src/commands/extensions/disable.test.js +19 -13
- package/dist/src/commands/extensions/disable.test.js.map +1 -1
- package/dist/src/commands/extensions/enable.test.js +16 -9
- package/dist/src/commands/extensions/enable.test.js.map +1 -1
- package/dist/src/commands/extensions/link.test.js +18 -11
- package/dist/src/commands/extensions/link.test.js.map +1 -1
- package/dist/src/commands/extensions/list.test.js +20 -13
- package/dist/src/commands/extensions/list.test.js.map +1 -1
- package/dist/src/commands/extensions/uninstall.test.js +26 -18
- package/dist/src/commands/extensions/uninstall.test.js.map +1 -1
- package/dist/src/commands/extensions/update.test.js +20 -13
- package/dist/src/commands/extensions/update.test.js.map +1 -1
- package/dist/src/commands/mcp/add.test.js +8 -3
- package/dist/src/commands/mcp/add.test.js.map +1 -1
- package/dist/src/commands/mcp/list.test.js +1 -6
- package/dist/src/commands/mcp/list.test.js.map +1 -1
- package/dist/src/commands/mcp/remove.test.js +23 -12
- package/dist/src/commands/mcp/remove.test.js.map +1 -1
- package/dist/src/config/config.d.ts +2 -1
- package/dist/src/config/config.js +38 -14
- package/dist/src/config/config.js.map +1 -1
- package/dist/src/config/config.test.js +64 -10
- package/dist/src/config/config.test.js.map +1 -1
- package/dist/src/config/extension.test.js +131 -125
- package/dist/src/config/extension.test.js.map +1 -1
- package/dist/src/config/settingsSchema.d.ts +2 -2
- package/dist/src/config/settingsSchema.js +3 -3
- package/dist/src/config/settingsSchema.js.map +1 -1
- package/dist/src/config/settingsSchema.test.js +1 -1
- package/dist/src/config/settingsSchema.test.js.map +1 -1
- package/dist/src/gemini.js +65 -7
- package/dist/src/gemini.js.map +1 -1
- package/dist/src/gemini.test.js +55 -15
- package/dist/src/gemini.test.js.map +1 -1
- package/dist/src/generated/git-commit.d.ts +2 -2
- package/dist/src/generated/git-commit.js +2 -2
- package/dist/src/generated/git-commit.js.map +1 -1
- package/dist/src/nonInteractiveCli.js +4 -1
- package/dist/src/nonInteractiveCli.js.map +1 -1
- package/dist/src/nonInteractiveCli.test.js +2 -2
- package/dist/src/nonInteractiveCli.test.js.map +1 -1
- package/dist/src/services/CommandService.test.js +3 -2
- package/dist/src/services/CommandService.test.js.map +1 -1
- package/dist/src/services/McpPromptLoader.js +5 -3
- package/dist/src/services/McpPromptLoader.js.map +1 -1
- package/dist/src/services/McpPromptLoader.test.js +29 -1
- package/dist/src/services/McpPromptLoader.test.js.map +1 -1
- package/dist/src/test-utils/render.d.ts +26 -2
- package/dist/src/test-utils/render.js +76 -3
- package/dist/src/test-utils/render.js.map +1 -1
- package/dist/src/ui/AppContainer.js +57 -32
- package/dist/src/ui/AppContainer.js.map +1 -1
- package/dist/src/ui/AppContainer.test.js +169 -102
- package/dist/src/ui/AppContainer.test.js.map +1 -1
- package/dist/src/ui/auth/AuthDialog.test.js +2 -2
- package/dist/src/ui/auth/AuthDialog.test.js.map +1 -1
- package/dist/src/ui/commands/aboutCommand.js +8 -1
- package/dist/src/ui/commands/aboutCommand.js.map +1 -1
- package/dist/src/ui/commands/aboutCommand.test.js +4 -0
- package/dist/src/ui/commands/aboutCommand.test.js.map +1 -1
- package/dist/src/ui/commands/clearCommand.js +12 -0
- package/dist/src/ui/commands/clearCommand.js.map +1 -1
- package/dist/src/ui/commands/clearCommand.test.js +5 -0
- package/dist/src/ui/commands/clearCommand.test.js.map +1 -1
- package/dist/src/ui/commands/memoryCommand.js +1 -0
- package/dist/src/ui/commands/memoryCommand.js.map +1 -1
- package/dist/src/ui/commands/memoryCommand.test.js +3 -0
- package/dist/src/ui/commands/memoryCommand.test.js.map +1 -1
- package/dist/src/ui/commands/setupGithubCommand.d.ts +1 -0
- package/dist/src/ui/commands/setupGithubCommand.js +82 -45
- package/dist/src/ui/commands/setupGithubCommand.js.map +1 -1
- package/dist/src/ui/commands/setupGithubCommand.test.js +35 -5
- package/dist/src/ui/commands/setupGithubCommand.test.js.map +1 -1
- package/dist/src/ui/components/AboutBox.d.ts +1 -0
- package/dist/src/ui/components/AboutBox.js +1 -1
- package/dist/src/ui/components/AboutBox.js.map +1 -1
- package/dist/src/ui/components/AppHeader.js +3 -8
- package/dist/src/ui/components/AppHeader.js.map +1 -1
- package/dist/src/ui/components/Banner.d.ts +4 -2
- package/dist/src/ui/components/Banner.js +18 -4
- package/dist/src/ui/components/Banner.js.map +1 -1
- package/dist/src/ui/components/DebugProfiler.d.ts +1 -0
- package/dist/src/ui/components/DebugProfiler.js +23 -34
- package/dist/src/ui/components/DebugProfiler.js.map +1 -1
- package/dist/src/ui/components/DebugProfiler.test.js +1 -0
- package/dist/src/ui/components/DebugProfiler.test.js.map +1 -1
- package/dist/src/ui/components/DialogManager.js +1 -1
- package/dist/src/ui/components/DialogManager.js.map +1 -1
- package/dist/src/ui/components/GradientRegression.test.js +22 -1
- package/dist/src/ui/components/GradientRegression.test.js.map +1 -1
- package/dist/src/ui/components/Header.test.js +27 -2
- package/dist/src/ui/components/Header.test.js.map +1 -1
- package/dist/src/ui/components/HistoryItemDisplay.js +1 -1
- package/dist/src/ui/components/HistoryItemDisplay.js.map +1 -1
- package/dist/src/ui/components/InputPrompt.js +16 -24
- package/dist/src/ui/components/InputPrompt.js.map +1 -1
- package/dist/src/ui/components/InputPrompt.test.js +84 -24
- package/dist/src/ui/components/InputPrompt.test.js.map +1 -1
- package/dist/src/ui/components/ModelDialog.js +2 -2
- package/dist/src/ui/components/ModelDialog.js.map +1 -1
- package/dist/src/ui/components/SettingsDialog.d.ts +3 -1
- package/dist/src/ui/components/SettingsDialog.js +4 -1
- package/dist/src/ui/components/SettingsDialog.js.map +1 -1
- package/dist/src/ui/components/ThemedGradient.js +2 -1
- package/dist/src/ui/components/ThemedGradient.js.map +1 -1
- package/dist/src/ui/components/messages/ShellToolMessage.d.ts +14 -0
- package/dist/src/ui/components/messages/ShellToolMessage.js +76 -0
- package/dist/src/ui/components/messages/ShellToolMessage.js.map +1 -0
- package/dist/src/ui/components/messages/ShellToolMessage.test.d.ts +6 -0
- package/dist/src/ui/components/messages/ShellToolMessage.test.js +123 -0
- package/dist/src/ui/components/messages/ShellToolMessage.test.js.map +1 -0
- package/dist/src/ui/components/messages/ToolGroupMessage.js +19 -1
- package/dist/src/ui/components/messages/ToolGroupMessage.js.map +1 -1
- package/dist/src/ui/components/messages/ToolMessage.d.ts +3 -6
- package/dist/src/ui/components/messages/ToolMessage.js +5 -121
- package/dist/src/ui/components/messages/ToolMessage.js.map +1 -1
- package/dist/src/ui/components/messages/ToolMessage.test.js +13 -5
- package/dist/src/ui/components/messages/ToolMessage.test.js.map +1 -1
- package/dist/src/ui/components/messages/ToolResultDisplay.d.ts +13 -0
- package/dist/src/ui/components/messages/ToolResultDisplay.js +54 -0
- package/dist/src/ui/components/messages/ToolResultDisplay.js.map +1 -0
- package/dist/src/ui/components/messages/ToolShared.d.ts +23 -0
- package/dist/src/ui/components/messages/ToolShared.js +40 -0
- package/dist/src/ui/components/messages/ToolShared.js.map +1 -0
- package/dist/src/ui/components/shared/text-buffer.js +4 -1
- package/dist/src/ui/components/shared/text-buffer.js.map +1 -1
- package/dist/src/ui/contexts/KeypressContext.js +21 -11
- package/dist/src/ui/contexts/KeypressContext.js.map +1 -1
- package/dist/src/ui/contexts/KeypressContext.test.js +29 -10
- package/dist/src/ui/contexts/KeypressContext.test.js.map +1 -1
- package/dist/src/ui/contexts/UIActionsContext.d.ts +1 -0
- package/dist/src/ui/contexts/UIActionsContext.js.map +1 -1
- package/dist/src/ui/hooks/shellCommandProcessor.js +8 -4
- package/dist/src/ui/hooks/shellCommandProcessor.js.map +1 -1
- package/dist/src/ui/hooks/shellCommandProcessor.test.js +4 -3
- package/dist/src/ui/hooks/shellCommandProcessor.test.js.map +1 -1
- package/dist/src/ui/hooks/slashCommandProcessor.d.ts +1 -1
- package/dist/src/ui/hooks/slashCommandProcessor.js +5 -3
- package/dist/src/ui/hooks/slashCommandProcessor.js.map +1 -1
- package/dist/src/ui/hooks/useBracketedPaste.js +3 -2
- package/dist/src/ui/hooks/useBracketedPaste.js.map +1 -1
- package/dist/src/ui/hooks/useCommandCompletion.test.js +5 -5
- package/dist/src/ui/hooks/useCommandCompletion.test.js.map +1 -1
- package/dist/src/ui/hooks/useConsoleMessages.d.ts +0 -1
- package/dist/src/ui/hooks/useConsoleMessages.js +26 -1
- package/dist/src/ui/hooks/useConsoleMessages.js.map +1 -1
- package/dist/src/ui/hooks/useConsoleMessages.test.js +37 -5
- package/dist/src/ui/hooks/useConsoleMessages.test.js.map +1 -1
- package/dist/src/ui/hooks/useEditorSettings.d.ts +2 -2
- package/dist/src/ui/hooks/useEditorSettings.js.map +1 -1
- package/dist/src/ui/hooks/useEditorSettings.test.js.map +1 -1
- package/dist/src/ui/hooks/useGeminiStream.d.ts +1 -1
- package/dist/src/ui/hooks/useGeminiStream.js +48 -10
- package/dist/src/ui/hooks/useGeminiStream.js.map +1 -1
- package/dist/src/ui/hooks/useGeminiStream.test.js +20 -21
- package/dist/src/ui/hooks/useGeminiStream.test.js.map +1 -1
- package/dist/src/ui/hooks/useHistoryManager.d.ts +5 -2
- package/dist/src/ui/hooks/useHistoryManager.js +39 -3
- package/dist/src/ui/hooks/useHistoryManager.js.map +1 -1
- package/dist/src/ui/hooks/useIncludeDirsTrust.js +0 -1
- package/dist/src/ui/hooks/useIncludeDirsTrust.js.map +1 -1
- package/dist/src/ui/hooks/useInputHistoryStore.test.js +4 -1
- package/dist/src/ui/hooks/useInputHistoryStore.test.js.map +1 -1
- package/dist/src/ui/hooks/useKittyKeyboardProtocol.d.ts +0 -1
- package/dist/src/ui/hooks/useKittyKeyboardProtocol.js +1 -2
- package/dist/src/ui/hooks/useKittyKeyboardProtocol.js.map +1 -1
- package/dist/src/ui/hooks/useMouseClick.d.ts +12 -0
- package/dist/src/ui/hooks/useMouseClick.js +28 -0
- package/dist/src/ui/hooks/useMouseClick.js.map +1 -0
- package/dist/src/ui/hooks/useMouseClick.test.d.ts +6 -0
- package/dist/src/ui/hooks/useMouseClick.test.js +59 -0
- package/dist/src/ui/hooks/useMouseClick.test.js.map +1 -0
- package/dist/src/ui/hooks/useReactToolScheduler.d.ts +1 -1
- package/dist/src/ui/hooks/useReactToolScheduler.js +1 -8
- package/dist/src/ui/hooks/useReactToolScheduler.js.map +1 -1
- package/dist/src/ui/hooks/useReactToolScheduler.test.js +1 -8
- package/dist/src/ui/hooks/useReactToolScheduler.test.js.map +1 -1
- package/dist/src/ui/hooks/useReverseSearchCompletion.test.js +18 -12
- package/dist/src/ui/hooks/useReverseSearchCompletion.test.js.map +1 -1
- package/dist/src/ui/hooks/useSessionBrowser.js +13 -4
- package/dist/src/ui/hooks/useSessionBrowser.js.map +1 -1
- package/dist/src/ui/hooks/useSessionBrowser.test.js +37 -0
- package/dist/src/ui/hooks/useSessionBrowser.test.js.map +1 -1
- package/dist/src/ui/hooks/useSessionResume.js +1 -1
- package/dist/src/ui/hooks/useSessionResume.js.map +1 -1
- package/dist/src/ui/hooks/useSessionResume.test.js +4 -4
- package/dist/src/ui/hooks/useSessionResume.test.js.map +1 -1
- package/dist/src/ui/hooks/useThemeCommand.d.ts +2 -2
- package/dist/src/ui/hooks/useThemeCommand.js.map +1 -1
- package/dist/src/ui/hooks/useToolScheduler.test.js +2 -2
- package/dist/src/ui/hooks/useToolScheduler.test.js.map +1 -1
- package/dist/src/ui/themes/theme-manager.test.js +2 -1
- package/dist/src/ui/themes/theme-manager.test.js.map +1 -1
- package/dist/src/ui/types.d.ts +2 -0
- package/dist/src/ui/types.js.map +1 -1
- package/dist/src/ui/utils/ConsolePatcher.js +6 -9
- package/dist/src/ui/utils/ConsolePatcher.js.map +1 -1
- package/dist/src/ui/utils/kittyProtocolDetector.d.ts +6 -2
- package/dist/src/ui/utils/kittyProtocolDetector.js +48 -43
- package/dist/src/ui/utils/kittyProtocolDetector.js.map +1 -1
- package/dist/src/ui/utils/mouse.js +3 -3
- package/dist/src/ui/utils/mouse.js.map +1 -1
- package/dist/src/utils/cleanup.d.ts +2 -0
- package/dist/src/utils/cleanup.js +16 -0
- package/dist/src/utils/cleanup.js.map +1 -1
- package/dist/src/utils/errors.js +10 -0
- package/dist/src/utils/errors.js.map +1 -1
- package/dist/src/utils/events.d.ts +0 -2
- package/dist/src/utils/events.js +0 -1
- package/dist/src/utils/events.js.map +1 -1
- package/dist/src/utils/installationInfo.test.js +8 -9
- package/dist/src/utils/installationInfo.test.js.map +1 -1
- package/dist/src/utils/sessionCleanup.test.js +4 -2
- package/dist/src/utils/sessionCleanup.test.js.map +1 -1
- package/dist/src/utils/sessionUtils.d.ts +5 -0
- package/dist/src/utils/sessionUtils.js +6 -1
- package/dist/src/utils/sessionUtils.js.map +1 -1
- package/dist/src/utils/sessions.test.d.ts +6 -0
- package/dist/src/utils/sessions.test.js +516 -0
- package/dist/src/utils/sessions.test.js.map +1 -0
- package/dist/src/utils/stdio.d.ts +32 -0
- package/dist/src/utils/stdio.js +85 -0
- package/dist/src/utils/stdio.js.map +1 -0
- package/dist/src/utils/stdio.test.d.ts +6 -0
- package/dist/src/utils/stdio.test.js +47 -0
- package/dist/src/utils/stdio.test.js.map +1 -0
- package/dist/src/validateNonInterActiveAuth.js +2 -0
- package/dist/src/validateNonInterActiveAuth.js.map +1 -1
- package/dist/src/validateNonInterActiveAuth.test.js +10 -6
- package/dist/src/validateNonInterActiveAuth.test.js.map +1 -1
- package/dist/src/zed-integration/schema.d.ts +30 -30
- package/dist/src/zed-integration/zedIntegration.d.ts +0 -7
- package/dist/src/zed-integration/zedIntegration.js +9 -21
- package/dist/src/zed-integration/zedIntegration.js.map +1 -1
- package/dist/tsconfig.tsbuildinfo +1 -1
- package/package.json +5 -5
- package/dist/google-gemini-cli-0.18.0-nightly.20251118.86828bb56.tgz +0 -0
|
@@ -30,7 +30,8 @@ export class McpPromptLoader {
|
|
|
30
30
|
for (const serverName in mcpServers) {
|
|
31
31
|
const prompts = getMCPServerPrompts(this.config, serverName) || [];
|
|
32
32
|
for (const prompt of prompts) {
|
|
33
|
-
|
|
33
|
+
// Sanitize prompt names to ensure they are valid slash commands (e.g. "Prompt Name" -> "Prompt-Name")
|
|
34
|
+
const commandName = `${prompt.name}`.trim().replace(/\s+/g, '-');
|
|
34
35
|
const newPromptCommand = {
|
|
35
36
|
name: commandName,
|
|
36
37
|
description: prompt.description || `Invoke prompt ${prompt.name}`,
|
|
@@ -102,7 +103,8 @@ export class McpPromptLoader {
|
|
|
102
103
|
content: `Error invoking prompt: ${result['error']}`,
|
|
103
104
|
};
|
|
104
105
|
}
|
|
105
|
-
|
|
106
|
+
const maybeContent = result.messages?.[0]?.content;
|
|
107
|
+
if (maybeContent.type !== 'text') {
|
|
106
108
|
return {
|
|
107
109
|
type: 'message',
|
|
108
110
|
messageType: 'error',
|
|
@@ -111,7 +113,7 @@ export class McpPromptLoader {
|
|
|
111
113
|
}
|
|
112
114
|
return {
|
|
113
115
|
type: 'submit_prompt',
|
|
114
|
-
content: JSON.stringify(
|
|
116
|
+
content: JSON.stringify(maybeContent.text),
|
|
115
117
|
};
|
|
116
118
|
}
|
|
117
119
|
catch (error) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"McpPromptLoader.js","sourceRoot":"","sources":["../../../src/services/McpPromptLoader.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAGH,OAAO,EAAE,eAAe,EAAE,mBAAmB,EAAE,MAAM,yBAAyB,CAAC;AAM/E,OAAO,EAAE,WAAW,EAAE,MAAM,yBAAyB,CAAC;AAItD;;;GAGG;AACH,MAAM,OAAO,eAAe;IACG;IAA7B,YAA6B,MAAqB;QAArB,WAAM,GAAN,MAAM,CAAe;IAAG,CAAC;IAEtD;;;;;;OAMG;IACH,YAAY,CAAC,OAAoB;QAC/B,MAAM,cAAc,GAAmB,EAAE,CAAC;QAC1C,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC;YACjB,OAAO,OAAO,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;QAC7B,CAAC;QACD,MAAM,UAAU,GAAG,IAAI,CAAC,MAAM,CAAC,mBAAmB,EAAE,EAAE,aAAa,EAAE,IAAI,EAAE,CAAC;QAC5E,KAAK,MAAM,UAAU,IAAI,UAAU,EAAE,CAAC;YACpC,MAAM,OAAO,GAAG,mBAAmB,CAAC,IAAI,CAAC,MAAM,EAAE,UAAU,CAAC,IAAI,EAAE,CAAC;YACnE,KAAK,MAAM,MAAM,IAAI,OAAO,EAAE,CAAC;gBAC7B,MAAM,WAAW,GAAG,GAAG,MAAM,CAAC,IAAI,EAAE,CAAC;
|
|
1
|
+
{"version":3,"file":"McpPromptLoader.js","sourceRoot":"","sources":["../../../src/services/McpPromptLoader.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAGH,OAAO,EAAE,eAAe,EAAE,mBAAmB,EAAE,MAAM,yBAAyB,CAAC;AAM/E,OAAO,EAAE,WAAW,EAAE,MAAM,yBAAyB,CAAC;AAItD;;;GAGG;AACH,MAAM,OAAO,eAAe;IACG;IAA7B,YAA6B,MAAqB;QAArB,WAAM,GAAN,MAAM,CAAe;IAAG,CAAC;IAEtD;;;;;;OAMG;IACH,YAAY,CAAC,OAAoB;QAC/B,MAAM,cAAc,GAAmB,EAAE,CAAC;QAC1C,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC;YACjB,OAAO,OAAO,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;QAC7B,CAAC;QACD,MAAM,UAAU,GAAG,IAAI,CAAC,MAAM,CAAC,mBAAmB,EAAE,EAAE,aAAa,EAAE,IAAI,EAAE,CAAC;QAC5E,KAAK,MAAM,UAAU,IAAI,UAAU,EAAE,CAAC;YACpC,MAAM,OAAO,GAAG,mBAAmB,CAAC,IAAI,CAAC,MAAM,EAAE,UAAU,CAAC,IAAI,EAAE,CAAC;YACnE,KAAK,MAAM,MAAM,IAAI,OAAO,EAAE,CAAC;gBAC7B,sGAAsG;gBACtG,MAAM,WAAW,GAAG,GAAG,MAAM,CAAC,IAAI,EAAE,CAAC,IAAI,EAAE,CAAC,OAAO,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;gBACjE,MAAM,gBAAgB,GAAiB;oBACrC,IAAI,EAAE,WAAW;oBACjB,WAAW,EAAE,MAAM,CAAC,WAAW,IAAI,iBAAiB,MAAM,CAAC,IAAI,EAAE;oBACjE,IAAI,EAAE,WAAW,CAAC,UAAU;oBAC5B,WAAW,EAAE;wBACX;4BACE,IAAI,EAAE,MAAM;4BACZ,WAAW,EAAE,2BAA2B;4BACxC,IAAI,EAAE,WAAW,CAAC,UAAU;4BAC5B,MAAM,EAAE,KAAK,IAAuC,EAAE;gCACpD,IAAI,CAAC,MAAM,CAAC,SAAS,IAAI,MAAM,CAAC,SAAS,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;oCACvD,OAAO;wCACL,IAAI,EAAE,SAAS;wCACf,WAAW,EAAE,MAAM;wCACnB,OAAO,EAAE,WAAW,MAAM,CAAC,IAAI,qBAAqB;qCACrD,CAAC;gCACJ,CAAC;gCAED,IAAI,WAAW,GAAG,kBAAkB,MAAM,CAAC,IAAI,QAAQ,CAAC;gCACxD,IAAI,MAAM,CAAC,SAAS,IAAI,MAAM,CAAC,SAAS,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;oCACpD,WAAW,IAAI,iFAAiF,CAAC;oCACjG,WAAW,IAAI,SAAS,MAAM,CAAC,IAAI,IAAI,MAAM,CAAC,SAAS,EAAE,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,OAAO,CAAC,qBAAqB,MAAM,CAAC,IAAI,IAAI,MAAM,CAAC,SAAS,EAAE,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,KAAK,GAAG,CAAC,IAAI,QAAQ,CAAC,MAAM,CAAC;gCAC9K,CAAC;gCACD,KAAK,MAAM,GAAG,IAAI,MAAM,CAAC,SAAS,EAAE,CAAC;oCACnC,WAAW,IAAI,OAAO,GAAG,CAAC,IAAI,IAAI,CAAC;oCACnC,IAAI,GAAG,CAAC,WAAW,EAAE,CAAC;wCACpB,WAAW,IAAI,OAAO,GAAG,CAAC,WAAW,IAAI,CAAC;oCAC5C,CAAC;oCACD,WAAW,IAAI,kBACb,GAAG,CAAC,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IACzB,OAAO,CAAC;gCACV,CAAC;gCACD,OAAO;oCACL,IAAI,EAAE,SAAS;oCACf,WAAW,EAAE,MAAM;oCACnB,OAAO,EAAE,WAAW;iCACrB,CAAC;4BACJ,CAAC;yBACF;qBACF;oBACD,MAAM,EAAE,KAAK,EACX,OAAuB,EACvB,IAAY,EACuB,EAAE;wBACrC,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC;4BACjB,OAAO;gCACL,IAAI,EAAE,SAAS;gCACf,WAAW,EAAE,OAAO;gCACpB,OAAO,EAAE,oBAAoB;6BAC9B,CAAC;wBACJ,CAAC;wBAED,MAAM,YAAY,GAAG,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE,MAAM,CAAC,SAAS,CAAC,CAAC;wBAC5D,IAAI,YAAY,YAAY,KAAK,EAAE,CAAC;4BAClC,OAAO;gCACL,IAAI,EAAE,SAAS;gCACf,WAAW,EAAE,OAAO;gCACpB,OAAO,EAAE,YAAY,CAAC,OAAO;6BAC9B,CAAC;wBACJ,CAAC;wBAED,IAAI,CAAC;4BACH,MAAM,UAAU,GACd,IAAI,CAAC,MAAM,CAAC,mBAAmB,EAAE,EAAE,aAAa,EAAE,IAAI,EAAE,CAAC;4BAC3D,MAAM,eAAe,GAAG,UAAU,CAAC,UAAU,CAAC,CAAC;4BAC/C,IAAI,CAAC,eAAe,EAAE,CAAC;gCACrB,OAAO;oCACL,IAAI,EAAE,SAAS;oCACf,WAAW,EAAE,OAAO;oCACpB,OAAO,EAAE,oCAAoC,UAAU,IAAI;iCAC5D,CAAC;4BACJ,CAAC;4BACD,MAAM,MAAM,GAAG,MAAM,MAAM,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC;4BAEjD,IAAI,MAAM,CAAC,OAAO,CAAC,EAAE,CAAC;gCACpB,OAAO;oCACL,IAAI,EAAE,SAAS;oCACf,WAAW,EAAE,OAAO;oCACpB,OAAO,EAAE,0BAA0B,MAAM,CAAC,OAAO,CAAC,EAAE;iCACrD,CAAC;4BACJ,CAAC;4BAED,MAAM,YAAY,GAAG,MAAM,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC,EAAE,OAAO,CAAC;4BACnD,IAAI,YAAY,CAAC,IAAI,KAAK,MAAM,EAAE,CAAC;gCACjC,OAAO;oCACL,IAAI,EAAE,SAAS;oCACf,WAAW,EAAE,OAAO;oCACpB,OAAO,EACL,+DAA+D;iCAClE,CAAC;4BACJ,CAAC;4BAED,OAAO;gCACL,IAAI,EAAE,eAAe;gCACrB,OAAO,EAAE,IAAI,CAAC,SAAS,CAAC,YAAY,CAAC,IAAI,CAAC;6BAC3C,CAAC;wBACJ,CAAC;wBAAC,OAAO,KAAK,EAAE,CAAC;4BACf,OAAO;gCACL,IAAI,EAAE,SAAS;gCACf,WAAW,EAAE,OAAO;gCACpB,OAAO,EAAE,UAAU,eAAe,CAAC,KAAK,CAAC,EAAE;6BAC5C,CAAC;wBACJ,CAAC;oBACH,CAAC;oBACD,UAAU,EAAE,KAAK,EACf,cAA8B,EAC9B,UAAkB,EAClB,EAAE;wBACF,MAAM,UAAU,GAAG,cAAc,CAAC,UAAU,CAAC;wBAC7C,IAAI,CAAC,MAAM,IAAI,CAAC,MAAM,CAAC,SAAS,IAAI,CAAC,UAAU,EAAE,CAAC;4BAChD,OAAO,EAAE,CAAC;wBACZ,CAAC;wBACD,MAAM,iBAAiB,GAAG,UAAU,CAAC,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;wBAC1D,IAAI,YAAY,GACd,iBAAiB,KAAK,CAAC;4BACrB,CAAC,CAAC,EAAE;4BACJ,CAAC,CAAC,IAAI,CAAC,SAAS,CACZ,UAAU,CAAC,GAAG,CAAC,SAAS,CAAC,iBAAiB,CAAC,EAC3C,MAAM,CAAC,SAAS,CACjB,CAAC;wBACR,IAAI,YAAY,YAAY,KAAK,EAAE,CAAC;4BAClC,YAAY,GAAG,EAAE,CAAC;wBACpB,CAAC;wBAED,MAAM,gBAAgB,GAAG,MAAM,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;wBACnD,MAAM,eAAe,GACnB,MAAM,CAAC,SAAS;6BACb,MAAM,CAAC,CAAC,GAAG,EAAE,EAAE;4BACd,gDAAgD;4BAChD,4BAA4B;4BAC5B,IAAI,CAAC,gBAAgB,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC;gCACzC,OAAO,IAAI,CAAC;4BACd,CAAC;4BAED,yCAAyC;4BACzC,4CAA4C;4BAC5C,yCAAyC;4BACzC,sCAAsC;4BACtC,+CAA+C;4BAC/C,8CAA8C;4BAC9C,MAAM,QAAQ,GAAG,YAAY,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;4BACxC,OAAO,QAAQ,KAAK,UAAU,CAAC;wBACjC,CAAC,CAAC;6BACD,GAAG,CAAC,CAAC,QAAQ,EAAE,EAAE,CAAC,KAAK,QAAQ,CAAC,IAAI,IAAI,CAAC,IAAI,EAAE,CAAC;wBAErD,MAAM,+BAA+B,GAAG,MAAM,CAAC,SAAS;6BACrD,GAAG,CAAC,CAAC,QAAQ,EAAE,EAAE,CAAC,KAAK,QAAQ,CAAC,IAAI,IAAI,CAAC;6BACzC,MAAM,CAAC,CAAC,YAAY,EAAE,EAAE;4BACvB,MAAM,KAAK,GAAG,IAAI,MAAM,CAAC,GAAG,YAAY,QAAQ,CAAC,CAAC;4BAClD,OAAO,KAAK,CAAC,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC;wBACpC,CAAC,CAAC,CAAC;wBAEL,IAAI,+BAA+B,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;4BACjD,IAAI,+BAA+B,CAAC,CAAC,CAAC,KAAK,UAAU,EAAE,CAAC;gCACtD,OAAO,CAAC,GAAG,UAAU,GAAG,CAAC,CAAC;4BAC5B,CAAC;4BACD,IAAI,UAAU,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC;gCAC7B,OAAO,CAAC,UAAU,CAAC,CAAC;4BACtB,CAAC;4BACD,OAAO,CAAC,GAAG,UAAU,GAAG,CAAC,CAAC;wBAC5B,CAAC;wBAED,MAAM,iBAAiB,GAAG,eAAe,CAAC,MAAM,CAAC,CAAC,YAAY,EAAE,EAAE,CAChE,YAAY,CAAC,UAAU,CAAC,UAAU,CAAC,CACpC,CAAC;wBAEF,OAAO,iBAAiB,CAAC;oBAC3B,CAAC;iBACF,CAAC;gBACF,cAAc,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC;YACxC,CAAC;QACH,CAAC;QACD,OAAO,OAAO,CAAC,OAAO,CAAC,cAAc,CAAC,CAAC;IACzC,CAAC;IAED;;;;;;;;OAQG;IACH,SAAS,CACP,QAAgB,EAChB,UAAwC;QAExC,MAAM,SAAS,GAA8B,EAAE,CAAC;QAChD,MAAM,YAAY,GAA4B,EAAE,CAAC;QAEjD,4CAA4C;QAC5C,MAAM,aAAa,GAAG,4CAA4C,CAAC;QACnE,IAAI,KAAK,CAAC;QACV,IAAI,SAAS,GAAG,CAAC,CAAC;QAClB,MAAM,eAAe,GAAa,EAAE,CAAC;QAErC,OAAO,CAAC,KAAK,GAAG,aAAa,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,KAAK,IAAI,EAAE,CAAC;YACvD,MAAM,GAAG,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;YACrB,mEAAmE;YACnE,MAAM,KAAK,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAC;YAC7D,SAAS,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC;YACvB,4DAA4D;YAC5D,IAAI,KAAK,CAAC,KAAK,GAAG,SAAS,EAAE,CAAC;gBAC5B,eAAe,CAAC,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC,SAAS,EAAE,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC;YACnE,CAAC;YACD,SAAS,GAAG,aAAa,CAAC,SAAS,CAAC;QACtC,CAAC;QAED,sDAAsD;QACtD,IAAI,SAAS,GAAG,QAAQ,CAAC,MAAM,EAAE,CAAC;YAChC,eAAe,CAAC,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC,SAAS,CAAC,CAAC,CAAC;QACtD,CAAC;QAED,MAAM,oBAAoB,GAAG,eAAe,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC;QAC7D,kFAAkF;QAClF,MAAM,kBAAkB,GAAG,kCAAkC,CAAC;QAC9D,MAAM,cAAc,GAAa,EAAE,CAAC;QACpC,OAAO,CAAC,KAAK,GAAG,kBAAkB,CAAC,IAAI,CAAC,oBAAoB,CAAC,CAAC,KAAK,IAAI,EAAE,CAAC;YACxE,mEAAmE;YACnE,cAAc,CAAC,IAAI,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAC,CAAC;QACtE,CAAC;QAED,IAAI,CAAC,UAAU,EAAE,CAAC;YAChB,OAAO,YAAY,CAAC;QACtB,CAAC;QACD,KAAK,MAAM,GAAG,IAAI,UAAU,EAAE,CAAC;YAC7B,IAAI,SAAS,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC;gBACxB,YAAY,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,SAAS,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;YAC/C,CAAC;QACH,CAAC;QAED,MAAM,YAAY,GAAG,UAAU,CAAC,MAAM,CACpC,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,QAAQ,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,IAAI,CAAC,CACjD,CAAC;QAEF,IAAI,YAAY,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YAC9B,oEAAoE;YACpE,gEAAgE;YAChE,YAAY,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,cAAc,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QAChE,CAAC;aAAM,CAAC;YACN,MAAM,WAAW,GAAa,EAAE,CAAC;YACjC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,YAAY,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;gBAC7C,IAAI,cAAc,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;oBAC9B,YAAY,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,cAAc,CAAC,CAAC,CAAC,CAAC;gBACzD,CAAC;qBAAM,CAAC;oBACN,WAAW,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;gBACzC,CAAC;YACH,CAAC;YACD,IAAI,WAAW,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBAC3B,MAAM,eAAe,GAAG,WAAW;qBAChC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,KAAK,IAAI,EAAE,CAAC;qBAC1B,IAAI,CAAC,IAAI,CAAC,CAAC;gBACd,OAAO,IAAI,KAAK,CAAC,iCAAiC,eAAe,EAAE,CAAC,CAAC;YACvE,CAAC;QACH,CAAC;QAED,OAAO,YAAY,CAAC;IACtB,CAAC;CACF"}
|
|
@@ -24,7 +24,7 @@ const mockPrompt = {
|
|
|
24
24
|
{ name: 'trail', required: false, description: "The animal's trail." },
|
|
25
25
|
],
|
|
26
26
|
invoke: vi.fn().mockResolvedValue({
|
|
27
|
-
messages: [{ content: { text: 'Hello, world!' } }],
|
|
27
|
+
messages: [{ content: { type: 'text', text: 'Hello, world!' } }],
|
|
28
28
|
}),
|
|
29
29
|
};
|
|
30
30
|
describe('McpPromptLoader', () => {
|
|
@@ -154,6 +154,34 @@ describe('McpPromptLoader', () => {
|
|
|
154
154
|
expect(commands[0].description).toBe('A test prompt.');
|
|
155
155
|
expect(commands[0].kind).toBe(CommandKind.MCP_PROMPT);
|
|
156
156
|
});
|
|
157
|
+
it('should sanitize prompt names by replacing spaces with hyphens', async () => {
|
|
158
|
+
const mockPromptWithSpaces = {
|
|
159
|
+
...mockPrompt,
|
|
160
|
+
name: 'Prompt Name',
|
|
161
|
+
};
|
|
162
|
+
vi.spyOn(cliCore, 'getMCPServerPrompts').mockReturnValue([
|
|
163
|
+
mockPromptWithSpaces,
|
|
164
|
+
]);
|
|
165
|
+
const loader = new McpPromptLoader(mockConfigWithPrompts);
|
|
166
|
+
const commands = await loader.loadCommands(new AbortController().signal);
|
|
167
|
+
expect(commands).toHaveLength(1);
|
|
168
|
+
expect(commands[0].name).toBe('Prompt-Name');
|
|
169
|
+
expect(commands[0].kind).toBe(CommandKind.MCP_PROMPT);
|
|
170
|
+
});
|
|
171
|
+
it('should trim whitespace from prompt names before sanitizing', async () => {
|
|
172
|
+
const mockPromptWithWhitespace = {
|
|
173
|
+
...mockPrompt,
|
|
174
|
+
name: ' Prompt Name ',
|
|
175
|
+
};
|
|
176
|
+
vi.spyOn(cliCore, 'getMCPServerPrompts').mockReturnValue([
|
|
177
|
+
mockPromptWithWhitespace,
|
|
178
|
+
]);
|
|
179
|
+
const loader = new McpPromptLoader(mockConfigWithPrompts);
|
|
180
|
+
const commands = await loader.loadCommands(new AbortController().signal);
|
|
181
|
+
expect(commands).toHaveLength(1);
|
|
182
|
+
expect(commands[0].name).toBe('Prompt-Name');
|
|
183
|
+
expect(commands[0].kind).toBe(CommandKind.MCP_PROMPT);
|
|
184
|
+
});
|
|
157
185
|
it('should handle prompt invocation successfully', async () => {
|
|
158
186
|
const loader = new McpPromptLoader(mockConfigWithPrompts);
|
|
159
187
|
const commands = await loader.loadCommands(new AbortController().signal);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"McpPromptLoader.test.js","sourceRoot":"","sources":["../../../src/services/McpPromptLoader.test.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"McpPromptLoader.test.js","sourceRoot":"","sources":["../../../src/services/McpPromptLoader.test.ts"],"names":[],"mappings":"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"}
|
|
@@ -7,11 +7,13 @@ import { render as inkRender } from 'ink-testing-library';
|
|
|
7
7
|
import type React from 'react';
|
|
8
8
|
import { LoadedSettings, type Settings } from '../config/settings.js';
|
|
9
9
|
import { type UIState } from '../ui/contexts/UIStateContext.js';
|
|
10
|
+
import { type UIActions } from '../ui/contexts/UIActionsContext.js';
|
|
10
11
|
import { type Config } from '@google/gemini-cli-core';
|
|
11
12
|
export declare const render: (tree: React.ReactElement, terminalWidth?: number) => ReturnType<typeof inkRender>;
|
|
13
|
+
export declare const simulateClick: (stdin: ReturnType<typeof inkRender>["stdin"], col: number, row: number, button?: 0 | 1 | 2) => Promise<void>;
|
|
12
14
|
export declare const mockSettings: LoadedSettings;
|
|
13
15
|
export declare const createMockSettings: (overrides: Partial<Settings>) => LoadedSettings;
|
|
14
|
-
export declare const renderWithProviders: (component: React.ReactElement, { shellFocus, settings, uiState: providedUiState, width, mouseEventsEnabled, config, useAlternateBuffer, }?: {
|
|
16
|
+
export declare const renderWithProviders: (component: React.ReactElement, { shellFocus, settings, uiState: providedUiState, width, mouseEventsEnabled, config, useAlternateBuffer, uiActions, }?: {
|
|
15
17
|
shellFocus?: boolean;
|
|
16
18
|
settings?: LoadedSettings;
|
|
17
19
|
uiState?: Partial<UIState>;
|
|
@@ -19,7 +21,10 @@ export declare const renderWithProviders: (component: React.ReactElement, { shel
|
|
|
19
21
|
mouseEventsEnabled?: boolean;
|
|
20
22
|
config?: Config;
|
|
21
23
|
useAlternateBuffer?: boolean;
|
|
22
|
-
|
|
24
|
+
uiActions?: Partial<UIActions>;
|
|
25
|
+
}) => ReturnType<typeof render> & {
|
|
26
|
+
simulateClick: typeof simulateClick;
|
|
27
|
+
};
|
|
23
28
|
export declare function renderHook<Result, Props>(renderCallback: (props: Props) => Result, options?: {
|
|
24
29
|
initialProps?: Props;
|
|
25
30
|
wrapper?: React.ComponentType<{
|
|
@@ -32,3 +37,22 @@ export declare function renderHook<Result, Props>(renderCallback: (props: Props)
|
|
|
32
37
|
rerender: (props?: Props) => void;
|
|
33
38
|
unmount: () => void;
|
|
34
39
|
};
|
|
40
|
+
export declare function renderHookWithProviders<Result, Props>(renderCallback: (props: Props) => Result, options?: {
|
|
41
|
+
initialProps?: Props;
|
|
42
|
+
wrapper?: React.ComponentType<{
|
|
43
|
+
children: React.ReactNode;
|
|
44
|
+
}>;
|
|
45
|
+
shellFocus?: boolean;
|
|
46
|
+
settings?: LoadedSettings;
|
|
47
|
+
uiState?: Partial<UIState>;
|
|
48
|
+
width?: number;
|
|
49
|
+
mouseEventsEnabled?: boolean;
|
|
50
|
+
config?: Config;
|
|
51
|
+
useAlternateBuffer?: boolean;
|
|
52
|
+
}): {
|
|
53
|
+
result: {
|
|
54
|
+
current: Result;
|
|
55
|
+
};
|
|
56
|
+
rerender: (props?: Props) => void;
|
|
57
|
+
unmount: () => void;
|
|
58
|
+
};
|
|
@@ -6,7 +6,8 @@ import { jsx as _jsx, Fragment as _Fragment } from "react/jsx-runtime";
|
|
|
6
6
|
*/
|
|
7
7
|
import { render as inkRender } from 'ink-testing-library';
|
|
8
8
|
import { Box } from 'ink';
|
|
9
|
-
import {
|
|
9
|
+
import { vi } from 'vitest';
|
|
10
|
+
import { act, useState } from 'react';
|
|
10
11
|
import { LoadedSettings } from '../config/settings.js';
|
|
11
12
|
import { KeypressProvider } from '../ui/contexts/KeypressContext.js';
|
|
12
13
|
import { SettingsContext } from '../ui/contexts/SettingsContext.js';
|
|
@@ -19,6 +20,7 @@ import { VimModeProvider } from '../ui/contexts/VimModeContext.js';
|
|
|
19
20
|
import { MouseProvider } from '../ui/contexts/MouseContext.js';
|
|
20
21
|
import { ScrollProvider } from '../ui/contexts/ScrollProvider.js';
|
|
21
22
|
import { StreamingContext } from '../ui/contexts/StreamingContext.js';
|
|
23
|
+
import { UIActionsContext, } from '../ui/contexts/UIActionsContext.js';
|
|
22
24
|
import {} from '@google/gemini-cli-core';
|
|
23
25
|
// Wrapper around ink-testing-library's render that ensures act() is called
|
|
24
26
|
export const render = (tree, terminalWidth) => {
|
|
@@ -53,6 +55,13 @@ export const render = (tree, terminalWidth) => {
|
|
|
53
55
|
},
|
|
54
56
|
};
|
|
55
57
|
};
|
|
58
|
+
export const simulateClick = async (stdin, col, row, button = 0) => {
|
|
59
|
+
// Terminal mouse events are 1-based, so convert if necessary.
|
|
60
|
+
const mouseEventString = `\x1b[<${button};${col};${row}M`;
|
|
61
|
+
await act(async () => {
|
|
62
|
+
stdin.write(mouseEventString);
|
|
63
|
+
});
|
|
64
|
+
};
|
|
56
65
|
const mockConfig = {
|
|
57
66
|
getModel: () => 'gemini-pro',
|
|
58
67
|
getTargetDir: () => '/Users/test/project/foo/bar/and/some/more/directories/to/make/it/long',
|
|
@@ -83,7 +92,38 @@ const baseMockUiState = {
|
|
|
83
92
|
terminalWidth: 120,
|
|
84
93
|
currentModel: 'gemini-pro',
|
|
85
94
|
};
|
|
86
|
-
|
|
95
|
+
const mockUIActions = {
|
|
96
|
+
handleThemeSelect: vi.fn(),
|
|
97
|
+
closeThemeDialog: vi.fn(),
|
|
98
|
+
handleThemeHighlight: vi.fn(),
|
|
99
|
+
handleAuthSelect: vi.fn(),
|
|
100
|
+
setAuthState: vi.fn(),
|
|
101
|
+
onAuthError: vi.fn(),
|
|
102
|
+
handleEditorSelect: vi.fn(),
|
|
103
|
+
exitEditorDialog: vi.fn(),
|
|
104
|
+
exitPrivacyNotice: vi.fn(),
|
|
105
|
+
closeSettingsDialog: vi.fn(),
|
|
106
|
+
closeModelDialog: vi.fn(),
|
|
107
|
+
openPermissionsDialog: vi.fn(),
|
|
108
|
+
closePermissionsDialog: vi.fn(),
|
|
109
|
+
setShellModeActive: vi.fn(),
|
|
110
|
+
vimHandleInput: vi.fn(),
|
|
111
|
+
handleIdePromptComplete: vi.fn(),
|
|
112
|
+
handleFolderTrustSelect: vi.fn(),
|
|
113
|
+
setConstrainHeight: vi.fn(),
|
|
114
|
+
onEscapePromptChange: vi.fn(),
|
|
115
|
+
refreshStatic: vi.fn(),
|
|
116
|
+
handleFinalSubmit: vi.fn(),
|
|
117
|
+
handleClearScreen: vi.fn(),
|
|
118
|
+
handleProQuotaChoice: vi.fn(),
|
|
119
|
+
setQueueErrorMessage: vi.fn(),
|
|
120
|
+
popAllMessages: vi.fn(),
|
|
121
|
+
handleApiKeySubmit: vi.fn(),
|
|
122
|
+
handleApiKeyCancel: vi.fn(),
|
|
123
|
+
setBannerVisible: vi.fn(),
|
|
124
|
+
setEmbeddedShellFocused: vi.fn(),
|
|
125
|
+
};
|
|
126
|
+
export const renderWithProviders = (component, { shellFocus = true, settings = mockSettings, uiState: providedUiState, width, mouseEventsEnabled = false, config = configProxy, useAlternateBuffer, uiActions, } = {}) => {
|
|
87
127
|
const baseState = new Proxy({ ...baseMockUiState, ...providedUiState }, {
|
|
88
128
|
get(target, prop) {
|
|
89
129
|
if (prop in target) {
|
|
@@ -115,7 +155,9 @@ export const renderWithProviders = (component, { shellFocus = true, settings = m
|
|
|
115
155
|
terminalWidth,
|
|
116
156
|
mainAreaWidth,
|
|
117
157
|
};
|
|
118
|
-
|
|
158
|
+
const finalUIActions = { ...mockUIActions, ...uiActions };
|
|
159
|
+
const renderResult = render(_jsx(ConfigContext.Provider, { value: config, children: _jsx(SettingsContext.Provider, { value: finalSettings, children: _jsx(UIStateContext.Provider, { value: finalUiState, children: _jsx(VimModeProvider, { settings: finalSettings, children: _jsx(ShellFocusContext.Provider, { value: shellFocus, children: _jsx(StreamingContext.Provider, { value: finalUiState.streamingState, children: _jsx(UIActionsContext.Provider, { value: finalUIActions, children: _jsx(KeypressProvider, { children: _jsx(MouseProvider, { mouseEventsEnabled: mouseEventsEnabled, children: _jsx(ScrollProvider, { children: _jsx(Box, { width: terminalWidth, flexShrink: 0, flexGrow: 0, flexDirection: "column", children: component }) }) }) }) }) }) }) }) }) }) }), terminalWidth);
|
|
160
|
+
return { ...renderResult, simulateClick };
|
|
119
161
|
};
|
|
120
162
|
export function renderHook(renderCallback, options) {
|
|
121
163
|
const result = { current: undefined };
|
|
@@ -142,4 +184,35 @@ export function renderHook(renderCallback, options) {
|
|
|
142
184
|
}
|
|
143
185
|
return { result, rerender, unmount };
|
|
144
186
|
}
|
|
187
|
+
export function renderHookWithProviders(renderCallback, options = {}) {
|
|
188
|
+
const result = { current: undefined };
|
|
189
|
+
let setPropsFn;
|
|
190
|
+
function TestComponent({ initialProps }) {
|
|
191
|
+
const [props, setProps] = useState(initialProps);
|
|
192
|
+
setPropsFn = setProps;
|
|
193
|
+
result.current = renderCallback(props);
|
|
194
|
+
return null;
|
|
195
|
+
}
|
|
196
|
+
const Wrapper = options.wrapper || (({ children }) => _jsx(_Fragment, { children: children }));
|
|
197
|
+
let renderResult;
|
|
198
|
+
act(() => {
|
|
199
|
+
renderResult = renderWithProviders(_jsx(Wrapper, { children: _jsx(TestComponent, { initialProps: options.initialProps }) }), options);
|
|
200
|
+
});
|
|
201
|
+
function rerender(newProps) {
|
|
202
|
+
act(() => {
|
|
203
|
+
if (setPropsFn && newProps) {
|
|
204
|
+
setPropsFn(newProps);
|
|
205
|
+
}
|
|
206
|
+
});
|
|
207
|
+
}
|
|
208
|
+
return {
|
|
209
|
+
result,
|
|
210
|
+
rerender,
|
|
211
|
+
unmount: () => {
|
|
212
|
+
act(() => {
|
|
213
|
+
renderResult.unmount();
|
|
214
|
+
});
|
|
215
|
+
},
|
|
216
|
+
};
|
|
217
|
+
}
|
|
145
218
|
//# sourceMappingURL=render.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"render.js","sourceRoot":"","sources":["../../../src/test-utils/render.tsx"],"names":[],"mappings":";AAAA;;;;GAIG;AAEH,OAAO,EAAE,MAAM,IAAI,SAAS,EAAE,MAAM,qBAAqB,CAAC;AAC1D,OAAO,EAAE,GAAG,EAAE,MAAM,KAAK,CAAC;AAE1B,OAAO,EAAE,GAAG,EAAE,MAAM,OAAO,CAAC;
|
|
1
|
+
{"version":3,"file":"render.js","sourceRoot":"","sources":["../../../src/test-utils/render.tsx"],"names":[],"mappings":"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"}
|
|
@@ -29,7 +29,7 @@ import { useVimMode } from './contexts/VimModeContext.js';
|
|
|
29
29
|
import { useConsoleMessages } from './hooks/useConsoleMessages.js';
|
|
30
30
|
import { useTerminalSize } from './hooks/useTerminalSize.js';
|
|
31
31
|
import { calculatePromptWidths } from './components/InputPrompt.js';
|
|
32
|
-
import { useStdout, useStdin } from 'ink';
|
|
32
|
+
import { useApp, useStdout, useStdin } from 'ink';
|
|
33
33
|
import { calculateMainAreaWidth } from './utils/ui-sizing.js';
|
|
34
34
|
import ansiEscapes from 'ansi-escapes';
|
|
35
35
|
import * as fs from 'node:fs';
|
|
@@ -52,7 +52,6 @@ import {} from './IdeIntegrationNudge.js';
|
|
|
52
52
|
import { appEvents, AppEvent } from '../utils/events.js';
|
|
53
53
|
import {} from './utils/updateCheck.js';
|
|
54
54
|
import { setUpdateHandler } from '../utils/handleAutoUpdate.js';
|
|
55
|
-
import { ConsolePatcher } from './utils/ConsolePatcher.js';
|
|
56
55
|
import { registerCleanup, runExitCleanup } from '../utils/cleanup.js';
|
|
57
56
|
import { useMessageQueue } from './hooks/useMessageQueue.js';
|
|
58
57
|
import { useAutoAcceptIndicator } from './hooks/useAutoAcceptIndicator.js';
|
|
@@ -68,6 +67,8 @@ import { isWorkspaceTrusted } from '../config/trustedFolders.js';
|
|
|
68
67
|
import { disableMouseEvents, enableMouseEvents } from './utils/mouse.js';
|
|
69
68
|
import { useAlternateBuffer } from './hooks/useAlternateBuffer.js';
|
|
70
69
|
import { useSettings } from './contexts/SettingsContext.js';
|
|
70
|
+
import { enableSupportedProtocol } from './utils/kittyProtocolDetector.js';
|
|
71
|
+
import { writeToStdout } from '../utils/stdio.js';
|
|
71
72
|
const WARNING_PROMPT_DURATION_MS = 1000;
|
|
72
73
|
const QUEUE_ERROR_DISPLAY_DURATION_MS = 3000;
|
|
73
74
|
function isToolExecuting(pendingHistoryItems) {
|
|
@@ -90,7 +91,9 @@ const SHELL_WIDTH_FRACTION = 0.89;
|
|
|
90
91
|
const SHELL_HEIGHT_PADDING = 10;
|
|
91
92
|
export const AppContainer = (props) => {
|
|
92
93
|
const { config, initializationResult, resumedSessionData } = props;
|
|
93
|
-
const historyManager = useHistory(
|
|
94
|
+
const historyManager = useHistory({
|
|
95
|
+
chatRecordingService: config.getGeminiClient()?.getChatRecordingService(),
|
|
96
|
+
});
|
|
94
97
|
useMemoryMonitor(historyManager);
|
|
95
98
|
const settings = useSettings();
|
|
96
99
|
const isAlternateBuffer = useAlternateBuffer();
|
|
@@ -104,6 +107,7 @@ export const AppContainer = (props) => {
|
|
|
104
107
|
const [showDebugProfiler, setShowDebugProfiler] = useState(false);
|
|
105
108
|
const [customDialog, setCustomDialog] = useState(null);
|
|
106
109
|
const [copyModeEnabled, setCopyModeEnabled] = useState(false);
|
|
110
|
+
const [pendingRestorePrompt, setPendingRestorePrompt] = useState(false);
|
|
107
111
|
const [shellModeActive, setShellModeActive] = useState(false);
|
|
108
112
|
const [modelSwitchedFromQuotaError, setModelSwitchedFromQuotaError] = useState(false);
|
|
109
113
|
const [historyRemountKey, setHistoryRemountKey] = useState(0);
|
|
@@ -146,6 +150,7 @@ export const AppContainer = (props) => {
|
|
|
146
150
|
const { columns: terminalWidth, rows: terminalHeight } = useTerminalSize();
|
|
147
151
|
const { stdin, setRawMode } = useStdin();
|
|
148
152
|
const { stdout } = useStdout();
|
|
153
|
+
const app = useApp();
|
|
149
154
|
// Additional hooks moved from App.tsx
|
|
150
155
|
const { stats: sessionStats } = useSessionStats();
|
|
151
156
|
const branchName = useGitBranchName(config.getTargetDir());
|
|
@@ -187,15 +192,7 @@ export const AppContainer = (props) => {
|
|
|
187
192
|
coreEvents.off(CoreEvent.ModelChanged, handleModelChanged);
|
|
188
193
|
};
|
|
189
194
|
}, [getEffectiveModel]);
|
|
190
|
-
const { consoleMessages,
|
|
191
|
-
useEffect(() => {
|
|
192
|
-
const consolePatcher = new ConsolePatcher({
|
|
193
|
-
onNewMessage: handleNewMessage,
|
|
194
|
-
debugMode: config.getDebugMode(),
|
|
195
|
-
});
|
|
196
|
-
consolePatcher.patch();
|
|
197
|
-
registerCleanup(consolePatcher.cleanup);
|
|
198
|
-
}, [handleNewMessage, config]);
|
|
195
|
+
const { consoleMessages, clearConsoleMessages: clearConsoleMessagesState } = useConsoleMessages();
|
|
199
196
|
const mainAreaWidth = calculateMainAreaWidth(terminalWidth, settings);
|
|
200
197
|
// Derive widths for InputPrompt using shared helper
|
|
201
198
|
const { inputWidth, suggestionsWidth } = useMemo(() => {
|
|
@@ -250,7 +247,24 @@ export const AppContainer = (props) => {
|
|
|
250
247
|
stdout.write(ansiEscapes.clearTerminal);
|
|
251
248
|
}
|
|
252
249
|
setHistoryRemountKey((prev) => prev + 1);
|
|
253
|
-
}, [setHistoryRemountKey,
|
|
250
|
+
}, [setHistoryRemountKey, isAlternateBuffer, stdout]);
|
|
251
|
+
const handleEditorClose = useCallback(() => {
|
|
252
|
+
if (isAlternateBuffer) {
|
|
253
|
+
// The editor may have exited alternate buffer mode so we need to
|
|
254
|
+
// enter it again to be safe.
|
|
255
|
+
writeToStdout(ansiEscapes.enterAlternativeScreen);
|
|
256
|
+
enableMouseEvents();
|
|
257
|
+
app.rerender();
|
|
258
|
+
}
|
|
259
|
+
enableSupportedProtocol();
|
|
260
|
+
refreshStatic();
|
|
261
|
+
}, [refreshStatic, isAlternateBuffer, app]);
|
|
262
|
+
useEffect(() => {
|
|
263
|
+
coreEvents.on(CoreEvent.ExternalEditorClosed, handleEditorClose);
|
|
264
|
+
return () => {
|
|
265
|
+
coreEvents.off(CoreEvent.ExternalEditorClosed, handleEditorClose);
|
|
266
|
+
};
|
|
267
|
+
}, [handleEditorClose]);
|
|
254
268
|
const { isThemeDialogOpen, openThemeDialog, closeThemeDialog, handleThemeSelect, handleThemeHighlight, } = useThemeCommand(settings, setThemeError, historyManager.addItem, initializationResult.themeError);
|
|
255
269
|
const { authState, setAuthState, authError, onAuthError, apiKeyDefaultValue, reloadApiKey, } = useAuthCommand(settings, config);
|
|
256
270
|
const { proQuotaRequest, handleProQuotaChoice } = useQuotaAndFallback({
|
|
@@ -416,10 +430,28 @@ Logging in with Google... Please restart Gemini CLI to continue.
|
|
|
416
430
|
}, [config, historyManager]);
|
|
417
431
|
const cancelHandlerRef = useRef(() => { });
|
|
418
432
|
const getPreferredEditor = useCallback(() => settings.merged.general?.preferredEditor, [settings.merged.general?.preferredEditor]);
|
|
419
|
-
const onCancelSubmit = useCallback(() => {
|
|
420
|
-
|
|
433
|
+
const onCancelSubmit = useCallback((shouldRestorePrompt) => {
|
|
434
|
+
if (shouldRestorePrompt) {
|
|
435
|
+
setPendingRestorePrompt(true);
|
|
436
|
+
}
|
|
437
|
+
else {
|
|
438
|
+
setPendingRestorePrompt(false);
|
|
439
|
+
cancelHandlerRef.current(false);
|
|
440
|
+
}
|
|
421
441
|
}, []);
|
|
422
|
-
|
|
442
|
+
useEffect(() => {
|
|
443
|
+
if (pendingRestorePrompt) {
|
|
444
|
+
const lastHistoryUserMsg = historyManager.history.findLast((h) => h.type === 'user');
|
|
445
|
+
const lastUserMsg = userMessages.at(-1);
|
|
446
|
+
if (!lastHistoryUserMsg ||
|
|
447
|
+
(typeof lastHistoryUserMsg.text === 'string' &&
|
|
448
|
+
lastHistoryUserMsg.text === lastUserMsg)) {
|
|
449
|
+
cancelHandlerRef.current(true);
|
|
450
|
+
setPendingRestorePrompt(false);
|
|
451
|
+
}
|
|
452
|
+
}
|
|
453
|
+
}, [pendingRestorePrompt, userMessages, historyManager.history]);
|
|
454
|
+
const { streamingState, submitQuery, initError, pendingHistoryItems: pendingGeminiHistoryItems, thought, cancelOngoingRequest, handleApprovalModeChange, activePtyId, loopDetectionConfirmationRequest, } = useGeminiStream(config.getGeminiClient(), historyManager.history, historyManager.addItem, config, settings, setDebugMessage, handleSlashCommand, shellModeActive, getPreferredEditor, onAuthError, performMemoryRefresh, modelSwitchedFromQuotaError, setModelSwitchedFromQuotaError, onCancelSubmit, setEmbeddedShellFocused, terminalWidth, terminalHeight, embeddedShellFocused);
|
|
423
455
|
// Auto-accept indicator
|
|
424
456
|
const showAutoAcceptIndicator = useAutoAcceptIndicator({
|
|
425
457
|
config,
|
|
@@ -431,7 +463,7 @@ Logging in with Google... Please restart Gemini CLI to continue.
|
|
|
431
463
|
streamingState,
|
|
432
464
|
submitQuery,
|
|
433
465
|
});
|
|
434
|
-
cancelHandlerRef.current = useCallback(() => {
|
|
466
|
+
cancelHandlerRef.current = useCallback((shouldRestorePrompt = true) => {
|
|
435
467
|
const pendingHistoryItems = [
|
|
436
468
|
...pendingSlashCommandHistoryItems,
|
|
437
469
|
...pendingGeminiHistoryItems,
|
|
@@ -441,13 +473,13 @@ Logging in with Google... Please restart Gemini CLI to continue.
|
|
|
441
473
|
return;
|
|
442
474
|
}
|
|
443
475
|
const lastUserMessage = userMessages.at(-1);
|
|
444
|
-
let textToSet = lastUserMessage || '';
|
|
476
|
+
let textToSet = shouldRestorePrompt ? lastUserMessage || '' : '';
|
|
445
477
|
const queuedText = getQueuedMessagesText();
|
|
446
478
|
if (queuedText) {
|
|
447
479
|
textToSet = textToSet ? `${textToSet}\n\n${queuedText}` : queuedText;
|
|
448
480
|
clearQueue();
|
|
449
481
|
}
|
|
450
|
-
if (textToSet) {
|
|
482
|
+
if (textToSet || !shouldRestorePrompt) {
|
|
451
483
|
buffer.setText(textToSet);
|
|
452
484
|
}
|
|
453
485
|
}, [
|
|
@@ -655,19 +687,10 @@ Logging in with Google... Please restart Gemini CLI to continue.
|
|
|
655
687
|
setConstrainHeight(false);
|
|
656
688
|
};
|
|
657
689
|
appEvents.on(AppEvent.OpenDebugConsole, openDebugConsole);
|
|
658
|
-
const logErrorHandler = (errorMessage) => {
|
|
659
|
-
handleNewMessage({
|
|
660
|
-
type: 'error',
|
|
661
|
-
content: String(errorMessage),
|
|
662
|
-
count: 1,
|
|
663
|
-
});
|
|
664
|
-
};
|
|
665
|
-
appEvents.on(AppEvent.LogError, logErrorHandler);
|
|
666
690
|
return () => {
|
|
667
691
|
appEvents.off(AppEvent.OpenDebugConsole, openDebugConsole);
|
|
668
|
-
appEvents.off(AppEvent.LogError, logErrorHandler);
|
|
669
692
|
};
|
|
670
|
-
}, [
|
|
693
|
+
}, [config]);
|
|
671
694
|
useEffect(() => {
|
|
672
695
|
if (ctrlCTimerRef.current) {
|
|
673
696
|
clearTimeout(ctrlCTimerRef.current);
|
|
@@ -677,7 +700,7 @@ Logging in with Google... Please restart Gemini CLI to continue.
|
|
|
677
700
|
recordExitFail(config);
|
|
678
701
|
}
|
|
679
702
|
if (ctrlCPressCount > 1) {
|
|
680
|
-
handleSlashCommand('/quit');
|
|
703
|
+
handleSlashCommand('/quit', undefined, undefined, false);
|
|
681
704
|
}
|
|
682
705
|
else {
|
|
683
706
|
ctrlCTimerRef.current = setTimeout(() => {
|
|
@@ -695,7 +718,7 @@ Logging in with Google... Please restart Gemini CLI to continue.
|
|
|
695
718
|
recordExitFail(config);
|
|
696
719
|
}
|
|
697
720
|
if (ctrlDPressCount > 1) {
|
|
698
|
-
handleSlashCommand('/quit');
|
|
721
|
+
handleSlashCommand('/quit', undefined, undefined, false);
|
|
699
722
|
}
|
|
700
723
|
else {
|
|
701
724
|
ctrlDTimerRef.current = setTimeout(() => {
|
|
@@ -860,7 +883,7 @@ Logging in with Google... Please restart Gemini CLI to continue.
|
|
|
860
883
|
coreEvents.on(CoreEvent.UserFeedback, handleUserFeedback);
|
|
861
884
|
// Flush any messages that happened during startup before this component
|
|
862
885
|
// mounted.
|
|
863
|
-
coreEvents.
|
|
886
|
+
coreEvents.drainBacklogs();
|
|
864
887
|
return () => {
|
|
865
888
|
coreEvents.off(CoreEvent.UserFeedback, handleUserFeedback);
|
|
866
889
|
};
|
|
@@ -1144,6 +1167,7 @@ Logging in with Google... Please restart Gemini CLI to continue.
|
|
|
1144
1167
|
handleApiKeySubmit,
|
|
1145
1168
|
handleApiKeyCancel,
|
|
1146
1169
|
setBannerVisible,
|
|
1170
|
+
setEmbeddedShellFocused,
|
|
1147
1171
|
}), [
|
|
1148
1172
|
handleThemeSelect,
|
|
1149
1173
|
closeThemeDialog,
|
|
@@ -1173,6 +1197,7 @@ Logging in with Google... Please restart Gemini CLI to continue.
|
|
|
1173
1197
|
handleApiKeySubmit,
|
|
1174
1198
|
handleApiKeyCancel,
|
|
1175
1199
|
setBannerVisible,
|
|
1200
|
+
setEmbeddedShellFocused,
|
|
1176
1201
|
]);
|
|
1177
1202
|
return (_jsx(UIStateContext.Provider, { value: uiState, children: _jsx(UIActionsContext.Provider, { value: uiActions, children: _jsx(ConfigContext.Provider, { value: config, children: _jsx(AppContext.Provider, { value: {
|
|
1178
1203
|
version: props.version,
|