@opensumi/ide-ai-native 3.8.1-next-1741250387.0 → 3.8.1-next-1741251026.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/lib/browser/ai-core.contextkeys.d.ts +1 -1
- package/lib/browser/ai-core.contextkeys.d.ts.map +1 -1
- package/lib/browser/ai-core.contextkeys.js +1 -1
- package/lib/browser/ai-core.contextkeys.js.map +1 -1
- package/lib/browser/ai-core.contribution.d.ts +5 -0
- package/lib/browser/ai-core.contribution.d.ts.map +1 -1
- package/lib/browser/ai-core.contribution.js +71 -9
- package/lib/browser/ai-core.contribution.js.map +1 -1
- package/lib/browser/chat/chat-agent.service.d.ts +11 -3
- package/lib/browser/chat/chat-agent.service.d.ts.map +1 -1
- package/lib/browser/chat/chat-agent.service.js +43 -5
- package/lib/browser/chat/chat-agent.service.js.map +1 -1
- package/lib/browser/chat/chat-manager.service.d.ts +1 -0
- package/lib/browser/chat/chat-manager.service.d.ts.map +1 -1
- package/lib/browser/chat/chat-manager.service.js +6 -8
- package/lib/browser/chat/chat-manager.service.js.map +1 -1
- package/lib/browser/chat/chat-model.d.ts +4 -1
- package/lib/browser/chat/chat-model.d.ts.map +1 -1
- package/lib/browser/chat/chat-model.js +57 -2
- package/lib/browser/chat/chat-model.js.map +1 -1
- package/lib/browser/chat/chat-proxy.service.d.ts.map +1 -1
- package/lib/browser/chat/chat-proxy.service.js +13 -6
- package/lib/browser/chat/chat-proxy.service.js.map +1 -1
- package/lib/browser/chat/chat.api.service.d.ts +1 -2
- package/lib/browser/chat/chat.api.service.d.ts.map +1 -1
- package/lib/browser/chat/chat.api.service.js +0 -4
- package/lib/browser/chat/chat.api.service.js.map +1 -1
- package/lib/browser/chat/chat.internal.service.d.ts +2 -0
- package/lib/browser/chat/chat.internal.service.d.ts.map +1 -1
- package/lib/browser/chat/chat.internal.service.js +3 -0
- package/lib/browser/chat/chat.internal.service.js.map +1 -1
- package/lib/browser/chat/chat.module.less +1 -2
- package/lib/browser/chat/chat.view.d.ts.map +1 -1
- package/lib/browser/chat/chat.view.js +46 -29
- package/lib/browser/chat/chat.view.js.map +1 -1
- package/lib/browser/components/ChatContext/index.js +2 -2
- package/lib/browser/components/ChatContext/index.js.map +1 -1
- package/lib/browser/components/ChatInput.d.ts.map +1 -1
- package/lib/browser/components/ChatInput.js +29 -1
- package/lib/browser/components/ChatInput.js.map +1 -1
- package/lib/browser/components/ChatReply.js +6 -1
- package/lib/browser/components/ChatReply.js.map +1 -1
- package/lib/browser/components/ChatThinking.d.ts +0 -2
- package/lib/browser/components/ChatThinking.d.ts.map +1 -1
- package/lib/browser/components/ChatThinking.js +2 -10
- package/lib/browser/components/ChatThinking.js.map +1 -1
- package/lib/browser/components/ChatToolRender.d.ts.map +1 -1
- package/lib/browser/components/ChatToolRender.js +2 -3
- package/lib/browser/components/ChatToolRender.js.map +1 -1
- package/lib/browser/components/WelcomeMsg.js +1 -1
- package/lib/browser/components/WelcomeMsg.js.map +1 -1
- package/lib/browser/components/chat-history.module.less +2 -1
- package/lib/browser/components/components.module.less +22 -0
- package/lib/browser/context/llm-context.service.d.ts +18 -5
- package/lib/browser/context/llm-context.service.d.ts.map +1 -1
- package/lib/browser/context/llm-context.service.js +80 -47
- package/lib/browser/context/llm-context.service.js.map +1 -1
- package/lib/browser/contrib/inline-completions/inline-completions.controller.js +1 -1
- package/lib/browser/contrib/inline-completions/inline-completions.controller.js.map +1 -1
- package/lib/browser/contrib/inline-completions/prompt/matcher.js +2 -2
- package/lib/browser/contrib/inline-completions/prompt/similarSnippets.d.ts +1 -1
- package/lib/browser/contrib/inline-completions/prompt/similarSnippets.js +2 -2
- package/lib/browser/contrib/intelligent-completions/index.d.ts +2 -1
- package/lib/browser/contrib/intelligent-completions/index.d.ts.map +1 -1
- package/lib/browser/contrib/intelligent-completions/index.js +4 -1
- package/lib/browser/contrib/intelligent-completions/index.js.map +1 -1
- package/lib/browser/contrib/intelligent-completions/intelligent-completions.contribution.js +2 -2
- package/lib/browser/contrib/intelligent-completions/intelligent-completions.contribution.js.map +1 -1
- package/lib/browser/contrib/intelligent-completions/intelligent-completions.controller.d.ts.map +1 -1
- package/lib/browser/contrib/intelligent-completions/intelligent-completions.controller.js +6 -5
- package/lib/browser/contrib/intelligent-completions/intelligent-completions.controller.js.map +1 -1
- package/lib/browser/contrib/intelligent-completions/view/code-edits-previewer.d.ts.map +1 -1
- package/lib/browser/contrib/intelligent-completions/view/code-edits-previewer.js +4 -2
- package/lib/browser/contrib/intelligent-completions/view/code-edits-previewer.js.map +1 -1
- package/lib/browser/contrib/intelligent-completions/view/default.d.ts.map +1 -1
- package/lib/browser/contrib/intelligent-completions/view/default.js +23 -11
- package/lib/browser/contrib/intelligent-completions/view/default.js.map +1 -1
- package/lib/browser/index.d.ts.map +1 -1
- package/lib/browser/index.js +4 -0
- package/lib/browser/index.js.map +1 -1
- package/lib/browser/layout/layout.module.less +4 -4
- package/lib/browser/mcp/base-apply.service.d.ts +26 -11
- package/lib/browser/mcp/base-apply.service.d.ts.map +1 -1
- package/lib/browser/mcp/base-apply.service.js +255 -103
- package/lib/browser/mcp/base-apply.service.js.map +1 -1
- package/lib/browser/mcp/config/components/mcp-config.module.less +178 -0
- package/lib/browser/mcp/config/components/mcp-config.view.d.ts +3 -0
- package/lib/browser/mcp/config/components/mcp-config.view.d.ts.map +1 -0
- package/lib/browser/mcp/config/components/mcp-config.view.js +150 -0
- package/lib/browser/mcp/config/components/mcp-config.view.js.map +1 -0
- package/lib/browser/mcp/config/components/mcp-server-form.d.ts +16 -0
- package/lib/browser/mcp/config/components/mcp-server-form.d.ts.map +1 -0
- package/lib/browser/mcp/config/components/mcp-server-form.js +84 -0
- package/lib/browser/mcp/config/components/mcp-server-form.js.map +1 -0
- package/lib/browser/mcp/config/components/mcp-server-form.module.less +78 -0
- package/lib/browser/mcp/config/mcp-config.commands.d.ts +10 -0
- package/lib/browser/mcp/config/mcp-config.commands.d.ts.map +1 -0
- package/lib/browser/mcp/config/mcp-config.commands.js +35 -0
- package/lib/browser/mcp/config/mcp-config.commands.js.map +1 -0
- package/lib/browser/mcp/config/mcp-config.contribution.d.ts +16 -0
- package/lib/browser/mcp/config/mcp-config.contribution.d.ts.map +1 -0
- package/lib/browser/mcp/config/mcp-config.contribution.js +62 -0
- package/lib/browser/mcp/config/mcp-config.contribution.js.map +1 -0
- package/lib/browser/mcp/mcp-server-proxy.service.d.ts +6 -0
- package/lib/browser/mcp/mcp-server-proxy.service.d.ts.map +1 -1
- package/lib/browser/mcp/mcp-server-proxy.service.js +10 -1
- package/lib/browser/mcp/mcp-server-proxy.service.js.map +1 -1
- package/lib/browser/mcp/mcp-server.feature.registry.d.ts +8 -0
- package/lib/browser/mcp/mcp-server.feature.registry.d.ts.map +1 -1
- package/lib/browser/mcp/mcp-server.feature.registry.js +28 -3
- package/lib/browser/mcp/mcp-server.feature.registry.js.map +1 -1
- package/lib/browser/mcp/tools/components/EditFile.d.ts.map +1 -1
- package/lib/browser/mcp/tools/components/EditFile.js +15 -9
- package/lib/browser/mcp/tools/components/EditFile.js.map +1 -1
- package/lib/browser/mcp/tools/components/ExpandableFileList.d.ts +13 -0
- package/lib/browser/mcp/tools/components/ExpandableFileList.d.ts.map +1 -0
- package/lib/browser/mcp/tools/components/{SearchResult.js → ExpandableFileList.js} +29 -19
- package/lib/browser/mcp/tools/components/ExpandableFileList.js.map +1 -0
- package/lib/browser/mcp/tools/components/Terminal.d.ts.map +1 -1
- package/lib/browser/mcp/tools/components/Terminal.js +10 -2
- package/lib/browser/mcp/tools/components/Terminal.js.map +1 -1
- package/lib/browser/mcp/tools/components/index.module.less +4 -0
- package/lib/browser/mcp/tools/createNewFileWithText.d.ts +1 -0
- package/lib/browser/mcp/tools/createNewFileWithText.d.ts.map +1 -1
- package/lib/browser/mcp/tools/createNewFileWithText.js +19 -11
- package/lib/browser/mcp/tools/createNewFileWithText.js.map +1 -1
- package/lib/browser/mcp/tools/fileSearch.d.ts +1 -0
- package/lib/browser/mcp/tools/fileSearch.d.ts.map +1 -1
- package/lib/browser/mcp/tools/fileSearch.js +14 -5
- package/lib/browser/mcp/tools/fileSearch.js.map +1 -1
- package/lib/browser/mcp/tools/getDiagnosticsByPath.d.ts.map +1 -1
- package/lib/browser/mcp/tools/getDiagnosticsByPath.js +1 -0
- package/lib/browser/mcp/tools/getDiagnosticsByPath.js.map +1 -1
- package/lib/browser/mcp/tools/grepSearch.d.ts.map +1 -1
- package/lib/browser/mcp/tools/grepSearch.js +6 -3
- package/lib/browser/mcp/tools/grepSearch.js.map +1 -1
- package/lib/browser/mcp/tools/handlers/EditFile.js +1 -1
- package/lib/browser/mcp/tools/handlers/EditFile.js.map +1 -1
- package/lib/browser/mcp/tools/handlers/ListDir.d.ts +1 -0
- package/lib/browser/mcp/tools/handlers/ListDir.d.ts.map +1 -1
- package/lib/browser/mcp/tools/handlers/ListDir.js +3 -0
- package/lib/browser/mcp/tools/handlers/ListDir.js.map +1 -1
- package/lib/browser/mcp/tools/handlers/RunCommand.d.ts.map +1 -1
- package/lib/browser/mcp/tools/handlers/RunCommand.js +2 -0
- package/lib/browser/mcp/tools/handlers/RunCommand.js.map +1 -1
- package/lib/browser/mcp/tools/listDir.d.ts +1 -0
- package/lib/browser/mcp/tools/listDir.d.ts.map +1 -1
- package/lib/browser/mcp/tools/listDir.js +35 -4
- package/lib/browser/mcp/tools/listDir.js.map +1 -1
- package/lib/browser/mcp/tools/runTerminalCmd.d.ts.map +1 -1
- package/lib/browser/mcp/tools/runTerminalCmd.js +1 -0
- package/lib/browser/mcp/tools/runTerminalCmd.js.map +1 -1
- package/lib/browser/model/msg-history-manager.d.ts +2 -2
- package/lib/browser/model/msg-history-manager.d.ts.map +1 -1
- package/lib/browser/model/msg-history-manager.js +4 -10
- package/lib/browser/model/msg-history-manager.js.map +1 -1
- package/lib/browser/preferences/schema.d.ts.map +1 -1
- package/lib/browser/preferences/schema.js +22 -2
- package/lib/browser/preferences/schema.js.map +1 -1
- package/lib/browser/types.d.ts +4 -0
- package/lib/browser/types.d.ts.map +1 -1
- package/lib/browser/widget/inline-chat/inline-chat-controller.d.ts.map +1 -1
- package/lib/browser/widget/inline-chat/inline-chat-controller.js +6 -1
- package/lib/browser/widget/inline-chat/inline-chat-controller.js.map +1 -1
- package/lib/browser/widget/inline-diff/inline-diff-manager.d.ts.map +1 -1
- package/lib/browser/widget/inline-diff/inline-diff-manager.js +68 -8
- package/lib/browser/widget/inline-diff/inline-diff-manager.js.map +1 -1
- package/lib/browser/widget/inline-diff/inline-diff-previewer.d.ts +10 -4
- package/lib/browser/widget/inline-diff/inline-diff-previewer.d.ts.map +1 -1
- package/lib/browser/widget/inline-diff/inline-diff-previewer.js +14 -3
- package/lib/browser/widget/inline-diff/inline-diff-previewer.js.map +1 -1
- package/lib/browser/widget/inline-diff/inline-diff-widget.module.less +25 -4
- package/lib/browser/widget/inline-diff/inline-diff.controller.d.ts +3 -3
- package/lib/browser/widget/inline-diff/inline-diff.controller.d.ts.map +1 -1
- package/lib/browser/widget/inline-diff/inline-diff.controller.js +10 -5
- package/lib/browser/widget/inline-diff/inline-diff.controller.js.map +1 -1
- package/lib/browser/widget/inline-stream-diff/inline-stream-diff.handler.d.ts +46 -17
- package/lib/browser/widget/inline-stream-diff/inline-stream-diff.handler.d.ts.map +1 -1
- package/lib/browser/widget/inline-stream-diff/inline-stream-diff.handler.js +110 -53
- package/lib/browser/widget/inline-stream-diff/inline-stream-diff.handler.js.map +1 -1
- package/lib/browser/widget/inline-stream-diff/live-preview.decoration.d.ts +4 -0
- package/lib/browser/widget/inline-stream-diff/live-preview.decoration.d.ts.map +1 -1
- package/lib/browser/widget/inline-stream-diff/live-preview.decoration.js +26 -1
- package/lib/browser/widget/inline-stream-diff/live-preview.decoration.js.map +1 -1
- package/lib/common/index.d.ts +13 -4
- package/lib/common/index.d.ts.map +1 -1
- package/lib/common/index.js +5 -1
- package/lib/common/index.js.map +1 -1
- package/lib/common/llm-context.d.ts +13 -9
- package/lib/common/llm-context.d.ts.map +1 -1
- package/lib/common/llm-context.js.map +1 -1
- package/lib/common/mcp-server-manager.d.ts +17 -1
- package/lib/common/mcp-server-manager.d.ts.map +1 -1
- package/lib/common/mcp-server-manager.js.map +1 -1
- package/lib/common/model.d.ts +12 -0
- package/lib/common/model.d.ts.map +1 -0
- package/lib/common/model.js +83 -0
- package/lib/common/model.js.map +1 -0
- package/lib/common/prompts/context-prompt-provider.d.ts +4 -3
- package/lib/common/prompts/context-prompt-provider.d.ts.map +1 -1
- package/lib/common/prompts/context-prompt-provider.js +33 -22
- package/lib/common/prompts/context-prompt-provider.js.map +1 -1
- package/lib/common/tool-invocation-registry.d.ts +2 -2
- package/lib/common/tool-invocation-registry.d.ts.map +1 -1
- package/lib/common/tool-invocation-registry.js +1 -1
- package/lib/common/tool-invocation-registry.js.map +1 -1
- package/lib/common/types.d.ts +8 -0
- package/lib/common/types.d.ts.map +1 -1
- package/lib/common/utils.d.ts.map +1 -1
- package/lib/common/utils.js +2 -1
- package/lib/common/utils.js.map +1 -1
- package/lib/node/anthropic/anthropic-language-model.d.ts +3 -1
- package/lib/node/anthropic/anthropic-language-model.d.ts.map +1 -1
- package/lib/node/anthropic/anthropic-language-model.js +6 -2
- package/lib/node/anthropic/anthropic-language-model.js.map +1 -1
- package/lib/node/base-language-model.d.ts +6 -3
- package/lib/node/base-language-model.d.ts.map +1 -1
- package/lib/node/base-language-model.js +14 -31
- package/lib/node/base-language-model.js.map +1 -1
- package/lib/node/deepseek/deepseek-language-model.d.ts +3 -1
- package/lib/node/deepseek/deepseek-language-model.d.ts.map +1 -1
- package/lib/node/deepseek/deepseek-language-model.js +6 -2
- package/lib/node/deepseek/deepseek-language-model.js.map +1 -1
- package/lib/node/mcp/sumi-mcp-server.d.ts +17 -3
- package/lib/node/mcp/sumi-mcp-server.d.ts.map +1 -1
- package/lib/node/mcp/sumi-mcp-server.js +59 -6
- package/lib/node/mcp/sumi-mcp-server.js.map +1 -1
- package/lib/node/mcp-server-manager-impl.d.ts +4 -3
- package/lib/node/mcp-server-manager-impl.d.ts.map +1 -1
- package/lib/node/mcp-server-manager-impl.js +26 -6
- package/lib/node/mcp-server-manager-impl.js.map +1 -1
- package/lib/node/mcp-server.d.ts +5 -16
- package/lib/node/mcp-server.d.ts.map +1 -1
- package/lib/node/mcp-server.js +12 -6
- package/lib/node/mcp-server.js.map +1 -1
- package/lib/node/openai/openai-language-model.d.ts +4 -2
- package/lib/node/openai/openai-language-model.d.ts.map +1 -1
- package/lib/node/openai/openai-language-model.js +6 -4
- package/lib/node/openai/openai-language-model.js.map +1 -1
- package/lib/node/openai-compatible/openai-compatible-language-model.d.ts +10 -0
- package/lib/node/openai-compatible/openai-compatible-language-model.d.ts.map +1 -0
- package/lib/node/openai-compatible/openai-compatible-language-model.js +32 -0
- package/lib/node/openai-compatible/openai-compatible-language-model.js.map +1 -0
- package/package.json +27 -26
- package/src/browser/ai-core.contextkeys.ts +3 -3
- package/src/browser/ai-core.contribution.ts +89 -12
- package/src/browser/chat/chat-agent.service.ts +53 -9
- package/src/browser/chat/chat-manager.service.ts +10 -8
- package/src/browser/chat/chat-model.ts +63 -5
- package/src/browser/chat/chat-proxy.service.ts +16 -8
- package/src/browser/chat/chat.api.service.ts +1 -5
- package/src/browser/chat/chat.internal.service.ts +4 -0
- package/src/browser/chat/chat.module.less +1 -2
- package/src/browser/chat/chat.view.tsx +63 -69
- package/src/browser/components/ChatContext/index.tsx +2 -2
- package/src/browser/components/ChatInput.tsx +81 -6
- package/src/browser/components/ChatReply.tsx +6 -6
- package/src/browser/components/ChatThinking.tsx +3 -9
- package/src/browser/components/ChatToolRender.tsx +1 -2
- package/src/browser/components/WelcomeMsg.tsx +1 -1
- package/src/browser/components/chat-history.module.less +2 -1
- package/src/browser/components/components.module.less +22 -0
- package/src/browser/context/llm-context.service.ts +93 -54
- package/src/browser/contrib/inline-completions/inline-completions.controller.ts +1 -1
- package/src/browser/contrib/inline-completions/prompt/matcher.ts +2 -2
- package/src/browser/contrib/inline-completions/prompt/similarSnippets.ts +2 -2
- package/src/browser/contrib/intelligent-completions/index.ts +5 -1
- package/src/browser/contrib/intelligent-completions/intelligent-completions.contribution.ts +3 -3
- package/src/browser/contrib/intelligent-completions/intelligent-completions.controller.ts +7 -6
- package/src/browser/contrib/intelligent-completions/view/code-edits-previewer.ts +4 -2
- package/src/browser/contrib/intelligent-completions/view/default.ts +34 -19
- package/src/browser/index.ts +4 -0
- package/src/browser/layout/layout.module.less +4 -4
- package/src/browser/mcp/base-apply.service.ts +306 -109
- package/src/browser/mcp/config/components/mcp-config.module.less +178 -0
- package/src/browser/mcp/config/components/mcp-config.view.tsx +215 -0
- package/src/browser/mcp/config/components/mcp-server-form.module.less +78 -0
- package/src/browser/mcp/config/components/mcp-server-form.tsx +144 -0
- package/src/browser/mcp/config/mcp-config.commands.ts +29 -0
- package/src/browser/mcp/config/mcp-config.contribution.ts +65 -0
- package/src/browser/mcp/mcp-server-proxy.service.ts +14 -2
- package/src/browser/mcp/mcp-server.feature.registry.ts +35 -4
- package/src/browser/mcp/tools/components/EditFile.tsx +16 -9
- package/src/browser/mcp/tools/components/ExpandableFileList.tsx +133 -0
- package/src/browser/mcp/tools/components/Terminal.tsx +13 -2
- package/src/browser/mcp/tools/components/index.module.less +4 -0
- package/src/browser/mcp/tools/createNewFileWithText.ts +21 -12
- package/src/browser/mcp/tools/fileSearch.ts +14 -4
- package/src/browser/mcp/tools/getDiagnosticsByPath.ts +1 -0
- package/src/browser/mcp/tools/grepSearch.ts +6 -3
- package/src/browser/mcp/tools/handlers/EditFile.ts +1 -1
- package/src/browser/mcp/tools/handlers/ListDir.ts +4 -0
- package/src/browser/mcp/tools/handlers/RunCommand.ts +2 -0
- package/src/browser/mcp/tools/listDir.ts +36 -5
- package/src/browser/mcp/tools/runTerminalCmd.ts +1 -0
- package/src/browser/model/msg-history-manager.ts +5 -11
- package/src/browser/preferences/schema.ts +22 -2
- package/src/browser/types.ts +1 -0
- package/src/browser/widget/inline-chat/inline-chat-controller.ts +5 -1
- package/src/browser/widget/inline-diff/inline-diff-manager.tsx +143 -21
- package/src/browser/widget/inline-diff/inline-diff-previewer.ts +25 -7
- package/src/browser/widget/inline-diff/inline-diff-widget.module.less +25 -4
- package/src/browser/widget/inline-diff/inline-diff.controller.ts +16 -8
- package/src/browser/widget/inline-stream-diff/inline-stream-diff.handler.tsx +139 -68
- package/src/browser/widget/inline-stream-diff/live-preview.decoration.tsx +30 -1
- package/src/common/index.ts +15 -4
- package/src/common/llm-context.ts +10 -4
- package/src/common/mcp-server-manager.ts +17 -1
- package/src/common/model.ts +90 -0
- package/src/common/prompts/context-prompt-provider.ts +38 -29
- package/src/common/tool-invocation-registry.ts +2 -2
- package/src/common/types.ts +8 -0
- package/src/common/utils.ts +3 -1
- package/src/node/anthropic/anthropic-language-model.ts +7 -2
- package/src/node/base-language-model.ts +25 -38
- package/src/node/deepseek/deepseek-language-model.ts +7 -2
- package/src/node/mcp/sumi-mcp-server.ts +67 -9
- package/src/node/mcp-server-manager-impl.ts +30 -9
- package/src/node/mcp-server.ts +11 -14
- package/src/node/openai/openai-language-model.ts +8 -4
- package/src/node/openai-compatible/openai-compatible-language-model.ts +30 -0
- package/lib/browser/mcp/tools/components/SearchResult.d.ts +0 -11
- package/lib/browser/mcp/tools/components/SearchResult.d.ts.map +0 -1
- package/lib/browser/mcp/tools/components/SearchResult.js.map +0 -1
- package/src/browser/mcp/tools/components/SearchResult.tsx +0 -92
|
@@ -0,0 +1,62 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.MCPConfigContribution = exports.MCP_CONFIG_COMPONENTS_SCHEME_ID = void 0;
|
|
4
|
+
const tslib_1 = require("tslib");
|
|
5
|
+
const di_1 = require("@opensumi/di");
|
|
6
|
+
const services_1 = require("@opensumi/ide-core-browser/lib/services");
|
|
7
|
+
const ide_core_common_1 = require("@opensumi/ide-core-common");
|
|
8
|
+
const types_1 = require("@opensumi/ide-editor/lib/browser/types");
|
|
9
|
+
const browser_1 = require("@opensumi/ide-theme/lib/browser");
|
|
10
|
+
const common_1 = require("@opensumi/ide-workspace/lib/common");
|
|
11
|
+
const mcp_config_view_1 = require("./components/mcp-config.view");
|
|
12
|
+
const COMPONENTS_ID = 'opensumi-mcp-config-viewer';
|
|
13
|
+
exports.MCP_CONFIG_COMPONENTS_SCHEME_ID = 'mcp-config';
|
|
14
|
+
let MCPConfigContribution = class MCPConfigContribution {
|
|
15
|
+
registerEditorComponent(registry) {
|
|
16
|
+
registry.registerEditorComponent({
|
|
17
|
+
uid: COMPONENTS_ID,
|
|
18
|
+
scheme: exports.MCP_CONFIG_COMPONENTS_SCHEME_ID,
|
|
19
|
+
component: mcp_config_view_1.MCPConfigView,
|
|
20
|
+
renderMode: types_1.EditorComponentRenderMode.ONE_PER_WORKBENCH,
|
|
21
|
+
});
|
|
22
|
+
registry.registerEditorComponentResolver(exports.MCP_CONFIG_COMPONENTS_SCHEME_ID, (resource, results) => {
|
|
23
|
+
results.push({
|
|
24
|
+
type: 'component',
|
|
25
|
+
componentId: COMPONENTS_ID,
|
|
26
|
+
});
|
|
27
|
+
});
|
|
28
|
+
}
|
|
29
|
+
registerResource(service) {
|
|
30
|
+
service.registerResourceProvider({
|
|
31
|
+
scheme: exports.MCP_CONFIG_COMPONENTS_SCHEME_ID,
|
|
32
|
+
provideResource: async (uri) => {
|
|
33
|
+
const { configType } = uri.getParsedQuery();
|
|
34
|
+
return {
|
|
35
|
+
uri,
|
|
36
|
+
name: 'MCP Configuration',
|
|
37
|
+
icon: 'settings',
|
|
38
|
+
metadata: {
|
|
39
|
+
configType,
|
|
40
|
+
},
|
|
41
|
+
};
|
|
42
|
+
},
|
|
43
|
+
});
|
|
44
|
+
}
|
|
45
|
+
};
|
|
46
|
+
exports.MCPConfigContribution = MCPConfigContribution;
|
|
47
|
+
tslib_1.__decorate([
|
|
48
|
+
(0, di_1.Autowired)(common_1.IWorkspaceService),
|
|
49
|
+
tslib_1.__metadata("design:type", Object)
|
|
50
|
+
], MCPConfigContribution.prototype, "workspaceService", void 0);
|
|
51
|
+
tslib_1.__decorate([
|
|
52
|
+
(0, di_1.Autowired)(browser_1.IconService),
|
|
53
|
+
tslib_1.__metadata("design:type", browser_1.IconService)
|
|
54
|
+
], MCPConfigContribution.prototype, "iconService", void 0);
|
|
55
|
+
tslib_1.__decorate([
|
|
56
|
+
(0, di_1.Autowired)(),
|
|
57
|
+
tslib_1.__metadata("design:type", services_1.LabelService)
|
|
58
|
+
], MCPConfigContribution.prototype, "labelService", void 0);
|
|
59
|
+
exports.MCPConfigContribution = MCPConfigContribution = tslib_1.__decorate([
|
|
60
|
+
(0, ide_core_common_1.Domain)(types_1.BrowserEditorContribution)
|
|
61
|
+
], MCPConfigContribution);
|
|
62
|
+
//# sourceMappingURL=mcp-config.contribution.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"mcp-config.contribution.js","sourceRoot":"","sources":["../../../../src/browser/mcp/config/mcp-config.contribution.ts"],"names":[],"mappings":";;;;AAAA,qCAAyC;AACzC,sEAAuE;AACvE,+DAAiE;AACjE,kEAMgD;AAChD,6DAA8D;AAC9D,+DAAuE;AAEvE,kEAA6D;AAE7D,MAAM,aAAa,GAAG,4BAA4B,CAAC;AACtC,QAAA,+BAA+B,GAAG,YAAY,CAAC;AAKrD,IAAM,qBAAqB,GAA3B,MAAM,qBAAqB;IAUhC,uBAAuB,CAAC,QAAiC;QACvD,QAAQ,CAAC,uBAAuB,CAAC;YAC/B,GAAG,EAAE,aAAa;YAClB,MAAM,EAAE,uCAA+B;YACvC,SAAS,EAAE,+BAAa;YACxB,UAAU,EAAE,iCAAyB,CAAC,iBAAiB;SACxD,CAAC,CAAC;QAEH,QAAQ,CAAC,+BAA+B,CAAC,uCAA+B,EAAE,CAAC,QAAQ,EAAE,OAAO,EAAE,EAAE;YAC9F,OAAO,CAAC,IAAI,CAAC;gBACX,IAAI,EAAE,WAAW;gBACjB,WAAW,EAAE,aAAa;aAC3B,CAAC,CAAC;QACL,CAAC,CAAC,CAAC;IACL,CAAC;IAED,gBAAgB,CAAC,OAAwB;QACvC,OAAO,CAAC,wBAAwB,CAAC;YAC/B,MAAM,EAAE,uCAA+B;YACvC,eAAe,EAAE,KAAK,EAAE,GAAQ,EAA+B,EAAE;gBAC/D,MAAM,EAAE,UAAU,EAAE,GAAG,GAAG,CAAC,cAAc,EAAE,CAAC;gBAE5C,OAAO;oBACL,GAAG;oBACH,IAAI,EAAE,mBAAmB;oBACzB,IAAI,EAAE,UAAU;oBAChB,QAAQ,EAAE;wBACR,UAAU;qBACX;iBACF,CAAC;YACJ,CAAC;SACF,CAAC,CAAC;IACL,CAAC;CACF,CAAA;AA3CY,sDAAqB;AAEb;IADlB,IAAA,cAAS,EAAC,0BAAiB,CAAC;;+DAC0B;AAGpC;IADlB,IAAA,cAAS,EAAC,qBAAW,CAAC;sCACS,qBAAW;0DAAC;AAG5C;IADC,IAAA,cAAS,GAAE;sCACE,uBAAY;2DAAC;gCARhB,qBAAqB;IADjC,IAAA,wBAAM,EAAC,iCAAyB,CAAC;GACrB,qBAAqB,CA2CjC"}
|
|
@@ -26,5 +26,11 @@ export declare class MCPServerProxyService implements IMCPServerProxyService {
|
|
|
26
26
|
}[]>;
|
|
27
27
|
$updateMCPServers(): Promise<void>;
|
|
28
28
|
getAllMCPTools(): Promise<import("../../common/types").MCPTool[]>;
|
|
29
|
+
$getServers(): Promise<{
|
|
30
|
+
name: string;
|
|
31
|
+
isStarted: boolean;
|
|
32
|
+
}[]>;
|
|
33
|
+
$startServer(serverName: string): Promise<void>;
|
|
34
|
+
$stopServer(serverName: string): Promise<void>;
|
|
29
35
|
}
|
|
30
36
|
//# sourceMappingURL=mcp-server-proxy.service.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"mcp-server-proxy.service.d.ts","sourceRoot":"","sources":["../../../src/browser/mcp/mcp-server-proxy.service.ts"],"names":[],"mappings":"AAIA,OAAO,EAAW,KAAK,EAAE,MAAM,2BAA2B,CAAC;AAG3D,OAAO,EAAE,sBAAsB,EAAE,MAAM,oBAAoB,CAAC;AAG5D,qBACa,qBAAsB,YAAW,sBAAsB;IAElE,OAAO,CAAC,QAAQ,CAAC,iBAAiB,CAAqB;IAGvD,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAU;IAGjC,OAAO,CAAC,QAAQ,CAAC,yBAAyB,CAAwB;IAElE,OAAO,CAAC,QAAQ,CAAC,mBAAmB,CAAsB;IAC1D,SAAgB,kBAAkB,EAAE,KAAK,CAAC,GAAG,CAAC,CAAkC;IAGhF,YAAY,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,GAAG;;;;;;;IAK9B,YAAY;;;;;;;;;;;IAiBZ,iBAAiB;IAIjB,cAAc;
|
|
1
|
+
{"version":3,"file":"mcp-server-proxy.service.d.ts","sourceRoot":"","sources":["../../../src/browser/mcp/mcp-server-proxy.service.ts"],"names":[],"mappings":"AAIA,OAAO,EAAW,KAAK,EAAE,MAAM,2BAA2B,CAAC;AAG3D,OAAO,EAAE,sBAAsB,EAAE,MAAM,oBAAoB,CAAC;AAG5D,qBACa,qBAAsB,YAAW,sBAAsB;IAElE,OAAO,CAAC,QAAQ,CAAC,iBAAiB,CAAqB;IAGvD,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAU;IAGjC,OAAO,CAAC,QAAQ,CAAC,yBAAyB,CAAwB;IAElE,OAAO,CAAC,QAAQ,CAAC,mBAAmB,CAAsB;IAC1D,SAAgB,kBAAkB,EAAE,KAAK,CAAC,GAAG,CAAC,CAAkC;IAGhF,YAAY,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,GAAG;;;;;;;IAK9B,YAAY;;;;;;;;;;;IAiBZ,iBAAiB;IAIjB,cAAc;IAId,WAAW;;;;IAIX,YAAY,CAAC,UAAU,EAAE,MAAM;IAI/B,WAAW,CAAC,UAAU,EAAE,MAAM;CAGrC"}
|
|
@@ -25,7 +25,7 @@ let MCPServerProxyService = class MCPServerProxyService {
|
|
|
25
25
|
name: tool.name,
|
|
26
26
|
description: tool.description,
|
|
27
27
|
inputSchema: (0, zod_to_json_schema_1.zodToJsonSchema)(tool.inputSchema),
|
|
28
|
-
providerName:
|
|
28
|
+
providerName: common_1.BUILTIN_MCP_SERVER_NAME,
|
|
29
29
|
}));
|
|
30
30
|
this.logger.log('SUMI MCP tools', tools);
|
|
31
31
|
return tools;
|
|
@@ -37,6 +37,15 @@ let MCPServerProxyService = class MCPServerProxyService {
|
|
|
37
37
|
async getAllMCPTools() {
|
|
38
38
|
return this.sumiMCPServerProxyService.getAllMCPTools();
|
|
39
39
|
}
|
|
40
|
+
async $getServers() {
|
|
41
|
+
return this.sumiMCPServerProxyService.getServers();
|
|
42
|
+
}
|
|
43
|
+
async $startServer(serverName) {
|
|
44
|
+
await this.sumiMCPServerProxyService.startServer(serverName);
|
|
45
|
+
}
|
|
46
|
+
async $stopServer(serverName) {
|
|
47
|
+
await this.sumiMCPServerProxyService.stopServer(serverName);
|
|
48
|
+
}
|
|
40
49
|
};
|
|
41
50
|
exports.MCPServerProxyService = MCPServerProxyService;
|
|
42
51
|
tslib_1.__decorate([
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"mcp-server-proxy.service.js","sourceRoot":"","sources":["../../../src/browser/mcp/mcp-server-proxy.service.ts"],"names":[],"mappings":";;;;AAAA,2DAAqD;AAErD,qCAAqD;AACrD,iEAAqD;AACrD,+DAA2D;AAE3D,
|
|
1
|
+
{"version":3,"file":"mcp-server-proxy.service.js","sourceRoot":"","sources":["../../../src/browser/mcp/mcp-server-proxy.service.ts"],"names":[],"mappings":";;;;AAAA,2DAAqD;AAErD,qCAAqD;AACrD,iEAAqD;AACrD,+DAA2D;AAE3D,yCAA6G;AAE7G,oCAAsE;AAG/D,IAAM,qBAAqB,GAA3B,MAAM,qBAAqB;IAA3B;QAUY,wBAAmB,GAAG,IAAI,yBAAO,EAAO,CAAC;QAC1C,uBAAkB,GAAe,IAAI,CAAC,mBAAmB,CAAC,KAAK,CAAC;IA4ClF,CAAC;IA1CC,2BAA2B;IAC3B,YAAY,CAAC,IAAY,EAAE,IAAS;QAClC,OAAO,IAAI,CAAC,iBAAiB,CAAC,WAAW,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;IACxD,CAAC;IAED,8BAA8B;IAC9B,KAAK,CAAC,YAAY;QAChB,MAAM,KAAK,GAAG,MAAM,IAAI,CAAC,iBAAiB,CAAC,WAAW,EAAE,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE;QACpE,eAAe;QACf,CAAC;YACC,IAAI,EAAE,IAAI,CAAC,IAAI;YACf,WAAW,EAAE,IAAI,CAAC,WAAW;YAC7B,WAAW,EAAE,IAAA,oCAAe,EAAC,IAAI,CAAC,WAAW,CAAC;YAC9C,YAAY,EAAE,gCAAuB;SACtC,CAAC,CACH,CAAC;QAEF,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,gBAAgB,EAAE,KAAK,CAAC,CAAC;QAEzC,OAAO,KAAK,CAAC;IACf,CAAC;IAED,sBAAsB;IACtB,KAAK,CAAC,iBAAiB;QACrB,IAAI,CAAC,mBAAmB,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;IAC1C,CAAC;IAED,KAAK,CAAC,cAAc;QAClB,OAAO,IAAI,CAAC,yBAAyB,CAAC,cAAc,EAAE,CAAC;IACzD,CAAC;IAED,KAAK,CAAC,WAAW;QACf,OAAO,IAAI,CAAC,yBAAyB,CAAC,UAAU,EAAE,CAAC;IACrD,CAAC;IAED,KAAK,CAAC,YAAY,CAAC,UAAkB;QACnC,MAAM,IAAI,CAAC,yBAAyB,CAAC,WAAW,CAAC,UAAU,CAAC,CAAC;IAC/D,CAAC;IAED,KAAK,CAAC,WAAW,CAAC,UAAkB;QAClC,MAAM,IAAI,CAAC,yBAAyB,CAAC,UAAU,CAAC,UAAU,CAAC,CAAC;IAC9D,CAAC;CACF,CAAA;AAvDY,sDAAqB;AAEf;IADhB,IAAA,cAAS,EAAC,8BAAsB,CAAC;;gEACqB;AAGtC;IADhB,IAAA,cAAS,EAAC,0BAAO,CAAC;;qDACc;AAGhB;IADhB,IAAA,cAAS,EAAC,sCAA6B,CAAC;;wEACyB;gCARvD,qBAAqB;IADjC,IAAA,eAAU,GAAE;GACA,qBAAqB,CAuDjC"}
|
|
@@ -2,8 +2,15 @@ import { IMCPServerRegistry, IMCPServerToolComponentProps, MCPToolDefinition } f
|
|
|
2
2
|
export declare class MCPServerRegistry implements IMCPServerRegistry {
|
|
3
3
|
private tools;
|
|
4
4
|
private toolComponents;
|
|
5
|
+
private _activeMessageInfo;
|
|
5
6
|
private readonly baseLogger;
|
|
7
|
+
private readonly aiReporter;
|
|
6
8
|
private get logger();
|
|
9
|
+
/** 设置当前活跃的消息信息,便于toolCall打点 */
|
|
10
|
+
set activeMessageInfo(params: {
|
|
11
|
+
messageId: string;
|
|
12
|
+
sessionId: string;
|
|
13
|
+
});
|
|
7
14
|
getMCPTool(name: string, serverName?: string): MCPToolDefinition | undefined;
|
|
8
15
|
registerMCPTool(tool: MCPToolDefinition): void;
|
|
9
16
|
registerToolComponent(name: string, component: React.FC<IMCPServerToolComponentProps>, serverName?: string): void;
|
|
@@ -16,5 +23,6 @@ export declare class MCPServerRegistry implements IMCPServerRegistry {
|
|
|
16
23
|
}[];
|
|
17
24
|
isError?: boolean;
|
|
18
25
|
}>;
|
|
26
|
+
private reportToolCall;
|
|
19
27
|
}
|
|
20
28
|
//# sourceMappingURL=mcp-server.feature.registry.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"mcp-server.feature.registry.d.ts","sourceRoot":"","sources":["../../../src/browser/mcp/mcp-server.feature.registry.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"mcp-server.feature.registry.d.ts","sourceRoot":"","sources":["../../../src/browser/mcp/mcp-server.feature.registry.ts"],"names":[],"mappings":"AAMA,OAAO,EAAE,kBAAkB,EAAE,4BAA4B,EAAa,iBAAiB,EAAE,MAAM,UAAU,CAAC;AAU1G,qBACa,iBAAkB,YAAW,kBAAkB;IAC1D,OAAO,CAAC,KAAK,CAA2B;IACxC,OAAO,CAAC,cAAc,CAA8D;IAEpF,OAAO,CAAC,kBAAkB,CAGxB;IAGF,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAU;IAGrC,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAc;IAEzC,OAAO,KAAK,MAAM,GAEjB;IAED,+BAA+B;IAC/B,IAAI,iBAAiB,CAAC,MAAM,EAAE;QAAE,SAAS,EAAE,MAAM,CAAC;QAAC,SAAS,EAAE,MAAM,CAAA;KAAE,EAErE;IAED,UAAU,CAAC,IAAI,EAAE,MAAM,EAAE,UAAU,SAA0B,GAAG,iBAAiB,GAAG,SAAS;IAI7F,eAAe,CAAC,IAAI,EAAE,iBAAiB,GAAG,IAAI;IAI9C,qBAAqB,CACnB,IAAI,EAAE,MAAM,EACZ,SAAS,EAAE,KAAK,CAAC,EAAE,CAAC,4BAA4B,CAAC,EACjD,UAAU,SAA0B,GACnC,IAAI;IAIP,gBAAgB,CAAC,IAAI,EAAE,MAAM,GAAG,KAAK,CAAC,EAAE,CAAC,4BAA4B,CAAC,GAAG,SAAS;IAIlF,WAAW,IAAI,iBAAiB,EAAE;IAI5B,WAAW,CACf,IAAI,EAAE,MAAM,EACZ,IAAI,EAAE,GAAG,GACR,OAAO,CAAC;QACT,OAAO,EAAE;YAAE,IAAI,EAAE,MAAM,CAAC;YAAC,IAAI,EAAE,MAAM,CAAA;SAAE,EAAE,CAAC;QAC1C,OAAO,CAAC,EAAE,OAAO,CAAC;KACnB,CAAC;IAuBF,OAAO,CAAC,cAAc;CAavB"}
|
|
@@ -5,6 +5,7 @@ const tslib_1 = require("tslib");
|
|
|
5
5
|
// OpenSumi as MCP Server 前端的代理服务
|
|
6
6
|
const di_1 = require("@opensumi/di");
|
|
7
7
|
const ide_core_common_1 = require("@opensumi/ide-core-common");
|
|
8
|
+
const common_1 = require("../../common");
|
|
8
9
|
const utils_1 = require("../../common/utils");
|
|
9
10
|
class LoggerAdapter {
|
|
10
11
|
constructor(logger) {
|
|
@@ -22,13 +23,17 @@ let MCPServerRegistry = class MCPServerRegistry {
|
|
|
22
23
|
get logger() {
|
|
23
24
|
return new LoggerAdapter(this.baseLogger);
|
|
24
25
|
}
|
|
25
|
-
|
|
26
|
+
/** 设置当前活跃的消息信息,便于toolCall打点 */
|
|
27
|
+
set activeMessageInfo(params) {
|
|
28
|
+
this._activeMessageInfo = params;
|
|
29
|
+
}
|
|
30
|
+
getMCPTool(name, serverName = common_1.BUILTIN_MCP_SERVER_NAME) {
|
|
26
31
|
return this.tools.find((tool) => (0, utils_1.getToolName)(tool.name, serverName) === name);
|
|
27
32
|
}
|
|
28
33
|
registerMCPTool(tool) {
|
|
29
34
|
this.tools.push(tool);
|
|
30
35
|
}
|
|
31
|
-
registerToolComponent(name, component, serverName =
|
|
36
|
+
registerToolComponent(name, component, serverName = common_1.BUILTIN_MCP_SERVER_NAME) {
|
|
32
37
|
this.toolComponents[(0, utils_1.getToolName)(name, serverName)] = component;
|
|
33
38
|
}
|
|
34
39
|
getToolComponent(name) {
|
|
@@ -46,23 +51,43 @@ let MCPServerRegistry = class MCPServerRegistry {
|
|
|
46
51
|
// 统一校验并转换
|
|
47
52
|
const toolCallId = args.toolCallId;
|
|
48
53
|
args = tool.inputSchema.parse(args);
|
|
49
|
-
|
|
54
|
+
const result = await tool.handler({ ...args, toolCallId }, this.logger);
|
|
55
|
+
this.reportToolCall(name, args, result, toolCallId);
|
|
56
|
+
return result;
|
|
50
57
|
}
|
|
51
58
|
catch (error) {
|
|
52
59
|
// eslint-disable-next-line no-console
|
|
53
60
|
console.error('callMCPTool error:', error);
|
|
61
|
+
this.reportToolCall(name, args, error, args.toolCallId);
|
|
54
62
|
return {
|
|
55
63
|
content: [{ type: 'text', text: `The tool ${name} failed to execute. Error: ${error}` }],
|
|
56
64
|
isError: true,
|
|
57
65
|
};
|
|
58
66
|
}
|
|
59
67
|
}
|
|
68
|
+
reportToolCall(name, args, result, toolCallId) {
|
|
69
|
+
const tool = this.tools.find((tool) => tool.name === name);
|
|
70
|
+
if (!tool) {
|
|
71
|
+
throw new Error(`MCP tool ${name} not found`);
|
|
72
|
+
}
|
|
73
|
+
this.aiReporter.send({
|
|
74
|
+
msgType: ide_core_common_1.AIServiceType.ToolCall,
|
|
75
|
+
message: JSON.stringify({ args, name, result }),
|
|
76
|
+
messageId: this._activeMessageInfo.messageId,
|
|
77
|
+
sessionId: this._activeMessageInfo.sessionId,
|
|
78
|
+
relationId: toolCallId,
|
|
79
|
+
});
|
|
80
|
+
}
|
|
60
81
|
};
|
|
61
82
|
exports.MCPServerRegistry = MCPServerRegistry;
|
|
62
83
|
tslib_1.__decorate([
|
|
63
84
|
(0, di_1.Autowired)(ide_core_common_1.ILogger),
|
|
64
85
|
tslib_1.__metadata("design:type", Object)
|
|
65
86
|
], MCPServerRegistry.prototype, "baseLogger", void 0);
|
|
87
|
+
tslib_1.__decorate([
|
|
88
|
+
(0, di_1.Autowired)(ide_core_common_1.IAIReporter),
|
|
89
|
+
tslib_1.__metadata("design:type", Object)
|
|
90
|
+
], MCPServerRegistry.prototype, "aiReporter", void 0);
|
|
66
91
|
exports.MCPServerRegistry = MCPServerRegistry = tslib_1.__decorate([
|
|
67
92
|
(0, di_1.Injectable)()
|
|
68
93
|
], MCPServerRegistry);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"mcp-server.feature.registry.js","sourceRoot":"","sources":["../../../src/browser/mcp/mcp-server.feature.registry.ts"],"names":[],"mappings":";;;;AAAA,iCAAiC;AACjC,qCAAqD;AACrD,+
|
|
1
|
+
{"version":3,"file":"mcp-server.feature.registry.js","sourceRoot":"","sources":["../../../src/browser/mcp/mcp-server.feature.registry.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"EditFile.d.ts","sourceRoot":"","sources":["../../../../../src/browser/mcp/tools/components/EditFile.tsx"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"EditFile.d.ts","sourceRoot":"","sources":["../../../../../src/browser/mcp/tools/components/EditFile.tsx"],"names":[],"mappings":"AAsBA,OAAO,EAAE,4BAA4B,EAAE,MAAM,gBAAgB,CAAC;AAK9D,eAAO,MAAM,qBAAqB,UAAW,4BAA4B,iBA+GxE,CAAC"}
|
|
@@ -7,6 +7,7 @@ const react_1 = tslib_1.__importStar(require("react"));
|
|
|
7
7
|
const ide_components_1 = require("@opensumi/ide-components");
|
|
8
8
|
const ide_core_browser_1 = require("@opensumi/ide-core-browser");
|
|
9
9
|
const ai_native_1 = require("@opensumi/ide-core-browser/lib/components/ai-native");
|
|
10
|
+
const ide_editor_1 = require("@opensumi/ide-editor");
|
|
10
11
|
const language_1 = require("@opensumi/monaco-editor-core/esm/vs/editor/common/languages/language");
|
|
11
12
|
const model_1 = require("@opensumi/monaco-editor-core/esm/vs/editor/common/services/model");
|
|
12
13
|
const standaloneServices_1 = require("@opensumi/monaco-editor-core/esm/vs/editor/standalone/browser/standaloneServices");
|
|
@@ -20,6 +21,7 @@ const EditFileToolComponent = (props) => {
|
|
|
20
21
|
const labelService = (0, ide_core_browser_1.useInjectable)(ide_core_browser_1.LabelService);
|
|
21
22
|
const appConfig = (0, ide_core_browser_1.useInjectable)(ide_core_browser_1.AppConfig);
|
|
22
23
|
const applyService = (0, ide_core_browser_1.useInjectable)(base_apply_service_1.BaseApplyService);
|
|
24
|
+
const editorService = (0, ide_core_browser_1.useInjectable)(ide_editor_1.WorkbenchEditorService);
|
|
23
25
|
const { target_file = '', code_edit, instructions } = args || {};
|
|
24
26
|
const absolutePath = ide_core_browser_1.path.join(appConfig.workspaceDir, target_file);
|
|
25
27
|
const [codeBlockData, setCodeBlockData] = (0, react_1.useState)(applyService.getCodeBlock(toolCallId, messageId));
|
|
@@ -41,14 +43,18 @@ const EditFileToolComponent = (props) => {
|
|
|
41
43
|
}, [target_file, absolutePath]);
|
|
42
44
|
(0, react_1.useEffect)(() => {
|
|
43
45
|
const disposable = applyService.onCodeBlockUpdate((codeBlockData) => {
|
|
44
|
-
|
|
46
|
+
if (codeBlockData.toolCallId === toolCallId) {
|
|
47
|
+
setCodeBlockData({ ...codeBlockData });
|
|
48
|
+
}
|
|
45
49
|
});
|
|
46
50
|
return () => {
|
|
47
51
|
disposable.dispose();
|
|
48
52
|
};
|
|
49
53
|
}, []);
|
|
50
|
-
|
|
51
|
-
|
|
54
|
+
const handleToggleMode = (e) => {
|
|
55
|
+
e.stopPropagation();
|
|
56
|
+
setMode(mode === 'code' ? 'diff' : 'code');
|
|
57
|
+
};
|
|
52
58
|
if (!args || !codeBlockData) {
|
|
53
59
|
return null;
|
|
54
60
|
}
|
|
@@ -59,7 +65,7 @@ const EditFileToolComponent = (props) => {
|
|
|
59
65
|
clickable: codeBlockData.status === 'pending' || codeBlockData.status === 'success',
|
|
60
66
|
}), onClick: () => {
|
|
61
67
|
if (codeBlockData.status === 'pending') {
|
|
62
|
-
|
|
68
|
+
editorService.open(ide_core_browser_1.URI.file(absolutePath));
|
|
63
69
|
}
|
|
64
70
|
else if (codeBlockData.status === 'success') {
|
|
65
71
|
applyService.revealApplyPosition(codeBlockData);
|
|
@@ -71,12 +77,12 @@ const EditFileToolComponent = (props) => {
|
|
|
71
77
|
codeBlockData.iterationCount > 1 && (react_1.default.createElement("span", { className: index_module_less_1.default['edit-file-tool-iteration-count'] },
|
|
72
78
|
codeBlockData.iterationCount,
|
|
73
79
|
"/3")),
|
|
74
|
-
renderStatus(codeBlockData)),
|
|
80
|
+
renderStatus(codeBlockData, props.result)),
|
|
75
81
|
react_1.default.createElement("div", { className: index_module_less_1.default.right },
|
|
76
82
|
react_1.default.createElement(ide_components_1.Popover, { title: 'Show Code', id: 'edit-file-tool-show-code' },
|
|
77
|
-
react_1.default.createElement(ide_components_1.Icon, { iconClass: 'codicon codicon-file-code', onClick:
|
|
83
|
+
react_1.default.createElement(ide_components_1.Icon, { iconClass: 'codicon codicon-file-code', onClick: handleToggleMode })),
|
|
78
84
|
((_a = codeBlockData.applyResult) === null || _a === void 0 ? void 0 : _a.diff) && (react_1.default.createElement(ide_components_1.Popover, { title: 'Show Diff', id: 'edit-file-tool-show-diff' },
|
|
79
|
-
react_1.default.createElement(ide_components_1.Icon, { iconClass: 'codicon codicon-diff-multiple', onClick:
|
|
85
|
+
react_1.default.createElement(ide_components_1.Icon, { iconClass: 'codicon codicon-diff-multiple', onClick: handleToggleMode }))))),
|
|
80
86
|
react_1.default.createElement(ChatMarkdown_1.ChatMarkdown, { markdown: mode === 'code'
|
|
81
87
|
? `\`\`\`${languageId || ''}\n${code_edit}\n\`\`\``
|
|
82
88
|
: `\`\`\`diff\n${(_b = codeBlockData.applyResult) === null || _b === void 0 ? void 0 : _b.diff}\n\`\`\``, hideInsert: true })),
|
|
@@ -91,7 +97,7 @@ const EditFileToolComponent = (props) => {
|
|
|
91
97
|
];
|
|
92
98
|
};
|
|
93
99
|
exports.EditFileToolComponent = EditFileToolComponent;
|
|
94
|
-
const renderStatus = (codeBlockData) => {
|
|
100
|
+
const renderStatus = (codeBlockData, error) => {
|
|
95
101
|
const status = codeBlockData.status;
|
|
96
102
|
switch (status) {
|
|
97
103
|
case 'generating':
|
|
@@ -103,7 +109,7 @@ const renderStatus = (codeBlockData) => {
|
|
|
103
109
|
return (react_1.default.createElement(ide_components_1.Popover, { title: 'Success', id: 'edit-file-tool-status-success' },
|
|
104
110
|
react_1.default.createElement(ide_components_1.Icon, { iconClass: 'codicon codicon-check-all' })));
|
|
105
111
|
case 'failed':
|
|
106
|
-
return (react_1.default.createElement(ide_components_1.Popover, { title:
|
|
112
|
+
return (react_1.default.createElement(ide_components_1.Popover, { title: `Failed (${error})`, id: 'edit-file-tool-status-failed' },
|
|
107
113
|
react_1.default.createElement(ide_components_1.Icon, { iconClass: 'codicon codicon-error', style: { color: 'var(--debugConsole-errorForeground)' } })));
|
|
108
114
|
case 'cancelled':
|
|
109
115
|
return (react_1.default.createElement(ide_components_1.Popover, { title: 'Cancelled', id: 'edit-file-tool-status-cancelled' },
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"EditFile.js","sourceRoot":"","sources":["../../../../../src/browser/mcp/tools/components/EditFile.tsx"],"names":[],"mappings":";;;;AAAA,oEAA6B;AAC7B,uDAA4D;AAE5D,6DAAyD;AACzD,iEASoC;AACpC,mFAA8E;AAC9E,mGAAwG;AACxG,4FAAiG;AACjG,yHAAsH;AAGtH,mEAAgE;AAEhE,iEAA4D;AAE5D,oFAAyC;AAElC,MAAM,qBAAqB,GAAG,CAAC,KAAmC,EAAE,EAAE;;IAC3E,MAAM,EAAE,IAAI,EAAE,SAAS,EAAE,UAAU,EAAE,GAAG,KAAK,CAAC;IAC9C,MAAM,CAAC,IAAI,EAAE,OAAO,CAAC,GAAG,IAAA,gBAAQ,EAAkB,MAAM,CAAC,CAAC;IAC1D,MAAM,YAAY,GAAG,IAAA,gCAAa,EAAC,+BAAY,CAAC,CAAC;IACjD,MAAM,SAAS,GAAG,IAAA,gCAAa,EAAY,4BAAS,CAAC,CAAC;IACtD,MAAM,YAAY,GAAG,IAAA,gCAAa,EAAmB,qCAAgB,CAAC,CAAC;IACvE,MAAM,EAAE,WAAW,GAAG,EAAE,EAAE,SAAS,EAAE,YAAY,EAAE,GAAG,IAAI,IAAI,EAAE,CAAC;IACjE,MAAM,YAAY,GAAG,uBAAI,CAAC,IAAI,CAAC,SAAS,CAAC,YAAY,EAAE,WAAW,CAAC,CAAC;IACpE,MAAM,CAAC,aAAa,EAAE,gBAAgB,CAAC,GAAG,IAAA,gBAAQ,EAChD,YAAY,CAAC,YAAY,CAAC,UAAU,EAAE,SAAS,CAAC,CACjD,CAAC;IAEF,MAAM,IAAI,GAAG,IAAA,eAAO,EAAC,GAAG,EAAE;QACxB,IAAI,CAAC,WAAW,EAAE,CAAC;YACjB,OAAO;QACT,CAAC;QACD,MAAM,IAAI,GAAG,aAAa,YAAY,CAAC,OAAO,CAAC,sBAAG,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC,EAAE,CAAC;QACzE,OAAO,IAAI,CAAC;IACd,CAAC,EAAE,CAAC,WAAW,EAAE,YAAY,CAAC,CAAC,CAAC;IAChC,MAAM,UAAU,GAAG,IAAA,eAAO,EAAC,GAAG,EAAE;QAC9B,IAAI,CAAC,WAAW,EAAE,CAAC;YACjB,OAAO;QACT,CAAC;QACD,MAAM,YAAY,GAAG,uCAAkB,CAAC,GAAG,CAAC,qBAAa,CAAC,CAAC;QAC3D,MAAM,eAAe,GAAG,uCAAkB,CAAC,GAAG,CAAC,2BAAgB,CAAC,CAAC;QACjE,MAAM,cAAc,GAAG,IAAA,+BAAY,EAAC,YAAY,EAAE,eAAe,EAAE,sBAAG,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC;QAC3F,OAAO,cAAc,CAAC;IACxB,CAAC,EAAE,CAAC,WAAW,EAAE,YAAY,CAAC,CAAC,CAAC;IAEhC,IAAA,iBAAS,EAAC,GAAG,EAAE;QACb,MAAM,UAAU,GAAG,YAAY,CAAC,iBAAiB,CAAC,CAAC,aAAa,EAAE,EAAE;YAClE,gBAAgB,CAAC,EAAE,GAAG,aAAa,EAAE,CAAC,CAAC;
|
|
1
|
+
{"version":3,"file":"EditFile.js","sourceRoot":"","sources":["../../../../../src/browser/mcp/tools/components/EditFile.tsx"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
interface ExpandableFileListProps {
|
|
3
|
+
args: any;
|
|
4
|
+
toolCallId: string;
|
|
5
|
+
messageId: string;
|
|
6
|
+
toolName: string;
|
|
7
|
+
headerText?: string;
|
|
8
|
+
}
|
|
9
|
+
export declare const FileSearchToolComponent: React.FC<ExpandableFileListProps>;
|
|
10
|
+
export declare const GrepSearchToolComponent: React.FC<ExpandableFileListProps>;
|
|
11
|
+
export declare const ListDirToolComponent: React.FC<ExpandableFileListProps>;
|
|
12
|
+
export {};
|
|
13
|
+
//# sourceMappingURL=ExpandableFileList.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ExpandableFileList.d.ts","sourceRoot":"","sources":["../../../../../src/browser/mcp/tools/components/ExpandableFileList.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAuC,MAAM,OAAO,CAAC;AAgB5D,UAAU,uBAAuB;IAC/B,IAAI,EAAE,GAAG,CAAC;IACV,UAAU,EAAE,MAAM,CAAC;IACnB,SAAS,EAAE,MAAM,CAAC;IAClB,QAAQ,EAAE,MAAM,CAAC;IACjB,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AAED,eAAO,MAAM,uBAAuB,EAAE,KAAK,CAAC,EAAE,CAAC,uBAAuB,CAQrE,CAAC;AAEF,eAAO,MAAM,uBAAuB,EAAE,KAAK,CAAC,EAAE,CAAC,uBAAuB,CAQrE,CAAC;AAEF,eAAO,MAAM,oBAAoB,EAAE,KAAK,CAAC,EAAE,CAAC,uBAAuB,CAQlE,CAAC"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.GrepSearchToolComponent = exports.FileSearchToolComponent = void 0;
|
|
3
|
+
exports.ListDirToolComponent = exports.GrepSearchToolComponent = exports.FileSearchToolComponent = void 0;
|
|
4
4
|
const tslib_1 = require("tslib");
|
|
5
5
|
const react_1 = tslib_1.__importStar(require("react"));
|
|
6
6
|
const ide_core_browser_1 = require("@opensumi/ide-core-browser");
|
|
@@ -8,53 +8,63 @@ const ide_editor_1 = require("@opensumi/ide-editor");
|
|
|
8
8
|
const ide_workspace_1 = require("@opensumi/ide-workspace");
|
|
9
9
|
const common_1 = require("../../../../common");
|
|
10
10
|
const index_module_less_1 = tslib_1.__importDefault(require("./index.module.less"));
|
|
11
|
-
const FileSearchToolComponent = ({ args, toolCallId, messageId }) => (react_1.default.createElement(
|
|
11
|
+
const FileSearchToolComponent = ({ args, toolCallId, messageId }) => (react_1.default.createElement(ExpandableFileList, { args: args, toolCallId: toolCallId, messageId: messageId, toolName: 'fileSearch', headerText: `Searched files "${args.query}"` }));
|
|
12
12
|
exports.FileSearchToolComponent = FileSearchToolComponent;
|
|
13
|
-
const GrepSearchToolComponent = ({ args, toolCallId, messageId }) => (react_1.default.createElement(
|
|
13
|
+
const GrepSearchToolComponent = ({ args, toolCallId, messageId }) => (react_1.default.createElement(ExpandableFileList, { args: args, toolCallId: toolCallId, messageId: messageId, toolName: 'grepSearch', headerText: `Grepped codebase "${args.query}"` }));
|
|
14
14
|
exports.GrepSearchToolComponent = GrepSearchToolComponent;
|
|
15
|
-
const
|
|
16
|
-
|
|
15
|
+
const ListDirToolComponent = ({ args, toolCallId, messageId }) => (react_1.default.createElement(ExpandableFileList, { args: args, toolCallId: toolCallId, messageId: messageId, toolName: 'listDir', headerText: `Listed directory "${args.relative_workspace_path}"` }));
|
|
16
|
+
exports.ListDirToolComponent = ListDirToolComponent;
|
|
17
|
+
const ExpandableFileList = ({ args, toolCallId, toolName, messageId, headerText, }) => {
|
|
17
18
|
const [isExpanded, setIsExpanded] = (0, react_1.useState)(false);
|
|
18
19
|
const labelService = (0, ide_core_browser_1.useInjectable)(ide_core_browser_1.LabelService);
|
|
19
20
|
const editorService = (0, ide_core_browser_1.useInjectable)(ide_editor_1.WorkbenchEditorService);
|
|
20
21
|
const workspaceService = (0, ide_core_browser_1.useInjectable)(ide_workspace_1.IWorkspaceService);
|
|
22
|
+
const commandService = (0, ide_core_browser_1.useInjectable)(ide_core_browser_1.CommandService);
|
|
21
23
|
const workspaceRoot = (0, react_1.useMemo)(() => { var _a, _b; return ide_core_browser_1.URI.parse((_b = (_a = workspaceService.tryGetRoots()) === null || _a === void 0 ? void 0 : _a[0]) === null || _b === void 0 ? void 0 : _b.uri); }, []);
|
|
22
24
|
const chatService = (0, ide_core_browser_1.useInjectable)(common_1.IChatInternalService);
|
|
23
|
-
const [
|
|
25
|
+
const [fileList, setFileList] = (0, react_1.useState)([]);
|
|
24
26
|
(0, react_1.useEffect)(() => {
|
|
25
27
|
const toDispose = chatService.sessionModel.history.onMessageAdditionalChange((additional) => {
|
|
26
28
|
var _a;
|
|
27
|
-
|
|
29
|
+
setFileList(((_a = additional[toolCallId]) === null || _a === void 0 ? void 0 : _a.files) || []);
|
|
28
30
|
});
|
|
29
31
|
return () => {
|
|
30
32
|
toDispose.dispose();
|
|
31
33
|
};
|
|
32
34
|
}, []);
|
|
33
|
-
const handleFileClick = (
|
|
35
|
+
const handleFileClick = async (fileInfo) => {
|
|
34
36
|
// 处理文件点击跳转
|
|
35
|
-
|
|
37
|
+
if (!fileInfo.isDirectory) {
|
|
38
|
+
editorService.open(ide_core_browser_1.URI.parse(fileInfo.uri));
|
|
39
|
+
}
|
|
40
|
+
else {
|
|
41
|
+
// 如果是目录,聚焦到文件树并展开该目录
|
|
42
|
+
const uri = ide_core_browser_1.URI.parse(fileInfo.uri);
|
|
43
|
+
commandService.executeCommand('filetree.location', uri);
|
|
44
|
+
}
|
|
36
45
|
};
|
|
37
|
-
const parsedFiles = (0, react_1.useMemo)(() =>
|
|
38
|
-
const uri = ide_core_browser_1.URI.parse(file);
|
|
39
|
-
const iconClass = labelService.getIcon(uri);
|
|
46
|
+
const parsedFiles = (0, react_1.useMemo)(() => fileList.map((file) => {
|
|
47
|
+
const uri = ide_core_browser_1.URI.parse(file.uri);
|
|
48
|
+
const iconClass = labelService.getIcon(uri, { isDirectory: file.isDirectory });
|
|
40
49
|
return {
|
|
41
50
|
iconClass,
|
|
42
51
|
name: uri.path.base,
|
|
43
52
|
path: ide_core_browser_1.path.relative(workspaceRoot.codeUri.fsPath, uri.path.dir.toString()),
|
|
53
|
+
uri: file.uri,
|
|
54
|
+
isDirectory: file.isDirectory,
|
|
44
55
|
};
|
|
45
|
-
}), [
|
|
56
|
+
}), [fileList]);
|
|
46
57
|
return (react_1.default.createElement("div", { className: index_module_less_1.default.container },
|
|
47
58
|
react_1.default.createElement("div", { className: index_module_less_1.default.header, onClick: () => setIsExpanded(!isExpanded) },
|
|
48
59
|
react_1.default.createElement("span", { style: { transform: `rotate(${isExpanded ? '90deg' : '0deg'})` } }, "\u25B6"),
|
|
49
60
|
react_1.default.createElement("span", null,
|
|
50
|
-
|
|
51
|
-
" \u00B7",
|
|
52
|
-
|
|
53
|
-
files.length,
|
|
61
|
+
headerText,
|
|
62
|
+
" \u00B7 ",
|
|
63
|
+
fileList.length,
|
|
54
64
|
" files")),
|
|
55
|
-
isExpanded && (react_1.default.createElement("ul", { className: index_module_less_1.default.fileList }, parsedFiles.map((file, index) => (react_1.default.createElement("li", { key: index, className: index_module_less_1.default.fileItem, onClick: () => handleFileClick(
|
|
65
|
+
isExpanded && (react_1.default.createElement("ul", { className: index_module_less_1.default.fileList }, parsedFiles.map((file, index) => (react_1.default.createElement("li", { key: index, className: index_module_less_1.default.fileItem, onClick: () => handleFileClick({ uri: file.uri, isDirectory: file.isDirectory }) },
|
|
56
66
|
react_1.default.createElement("span", { className: file.iconClass }),
|
|
57
67
|
react_1.default.createElement("span", { style: { flex: 1 } }, file.name),
|
|
58
68
|
react_1.default.createElement("span", { className: index_module_less_1.default.filePath }, file.path))))))));
|
|
59
69
|
};
|
|
60
|
-
//# sourceMappingURL=
|
|
70
|
+
//# sourceMappingURL=ExpandableFileList.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ExpandableFileList.js","sourceRoot":"","sources":["../../../../../src/browser/mcp/tools/components/ExpandableFileList.tsx"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Terminal.d.ts","sourceRoot":"","sources":["../../../../../src/browser/mcp/tools/components/Terminal.tsx"],"names":[],"mappings":"AAAA,OAAO,KAA+C,MAAM,OAAO,CAAC;
|
|
1
|
+
{"version":3,"file":"Terminal.d.ts","sourceRoot":"","sources":["../../../../../src/browser/mcp/tools/components/Terminal.tsx"],"names":[],"mappings":"AAAA,OAAO,KAA+C,MAAM,OAAO,CAAC;AAOpE,OAAO,EAAE,4BAA4B,EAAE,MAAM,gBAAgB,CAAC;AA8B9D,eAAO,MAAM,qBAAqB,oCAAgB,4BAA4B,uBAsE5E,CAAC"}
|
|
@@ -6,6 +6,7 @@ const react_1 = tslib_1.__importStar(require("react"));
|
|
|
6
6
|
const ide_core_browser_1 = require("@opensumi/ide-core-browser");
|
|
7
7
|
const components_1 = require("@opensumi/ide-core-browser/lib/components");
|
|
8
8
|
const ide_core_common_1 = require("@opensumi/ide-core-common");
|
|
9
|
+
const ansi_1 = require("@opensumi/ide-utils/lib/ansi");
|
|
9
10
|
const RunCommand_1 = require("../handlers/RunCommand");
|
|
10
11
|
const index_module_less_1 = tslib_1.__importDefault(require("./index.module.less"));
|
|
11
12
|
function getResult(raw) {
|
|
@@ -43,11 +44,18 @@ exports.TerminalToolComponent = (0, react_1.memo)((props) => {
|
|
|
43
44
|
}, [props]);
|
|
44
45
|
return (react_1.default.createElement("div", { className: index_module_less_1.default.run_cmd_tool },
|
|
45
46
|
props.state === 'result' && (react_1.default.createElement("div", null,
|
|
47
|
+
args && (react_1.default.createElement(react_1.default.Fragment, null,
|
|
48
|
+
react_1.default.createElement("div", { className: index_module_less_1.default.command_title },
|
|
49
|
+
react_1.default.createElement(components_1.Icon, { icon: 'terminal' }),
|
|
50
|
+
react_1.default.createElement("span", null, (0, ide_core_common_1.localize)('ai.native.mcp.terminal.command'))),
|
|
51
|
+
react_1.default.createElement("p", { className: index_module_less_1.default.command_content },
|
|
52
|
+
react_1.default.createElement("code", null,
|
|
53
|
+
"$ ",
|
|
54
|
+
args.command)))),
|
|
46
55
|
react_1.default.createElement("div", { className: index_module_less_1.default.command_title },
|
|
47
|
-
react_1.default.createElement(components_1.Icon, { icon: 'terminal' }),
|
|
48
56
|
react_1.default.createElement("span", null, (0, ide_core_common_1.localize)('ai.native.mcp.terminal.output'))),
|
|
49
57
|
output ? (react_1.default.createElement("div", { className: index_module_less_1.default.command_content },
|
|
50
|
-
react_1.default.createElement("code", null, output.text))) : (''))),
|
|
58
|
+
react_1.default.createElement("code", null, (0, ansi_1.stripAnsi)(output.text)))) : (''))),
|
|
51
59
|
props.state === 'complete' && (args === null || args === void 0 ? void 0 : args.require_user_approval) && (react_1.default.createElement("div", null,
|
|
52
60
|
react_1.default.createElement("div", { className: index_module_less_1.default.command_title },
|
|
53
61
|
react_1.default.createElement(components_1.Icon, { icon: 'terminal' }),
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Terminal.js","sourceRoot":"","sources":["../../../../../src/browser/mcp/tools/components/Terminal.tsx"],"names":[],"mappings":";;;;AAAA,uDAAoE;AAEpE,iEAA2D;AAC3D,0EAAyE;AACzE,+DAAqD;
|
|
1
|
+
{"version":3,"file":"Terminal.js","sourceRoot":"","sources":["../../../../../src/browser/mcp/tools/components/Terminal.tsx"],"names":[],"mappings":"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"}
|
|
@@ -17,6 +17,9 @@
|
|
|
17
17
|
align-items: center;
|
|
18
18
|
justify-content: center;
|
|
19
19
|
}
|
|
20
|
+
.left {
|
|
21
|
+
overflow: hidden;
|
|
22
|
+
}
|
|
20
23
|
.left,
|
|
21
24
|
.right {
|
|
22
25
|
display: flex;
|
|
@@ -154,6 +157,7 @@
|
|
|
154
157
|
background-color: var(--design-chatInput-background);
|
|
155
158
|
padding: 10px;
|
|
156
159
|
border-radius: 4px;
|
|
160
|
+
margin: 10px 0px;
|
|
157
161
|
|
|
158
162
|
.command_title {
|
|
159
163
|
display: flex;
|
|
@@ -2,6 +2,7 @@ import { IMCPServerRegistry, MCPServerContribution, MCPToolDefinition } from '..
|
|
|
2
2
|
export declare class CreateNewFileWithTextTool implements MCPServerContribution {
|
|
3
3
|
private readonly workspaceService;
|
|
4
4
|
private readonly fileService;
|
|
5
|
+
private applyService;
|
|
5
6
|
registerMCPServer(registry: IMCPServerRegistry): void;
|
|
6
7
|
getToolDefinition(): MCPToolDefinition;
|
|
7
8
|
private handler;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"createNewFileWithText.d.ts","sourceRoot":"","sources":["../../../../src/browser/mcp/tools/createNewFileWithText.ts"],"names":[],"mappings":"AAOA,OAAO,EAAE,kBAAkB,EAAa,qBAAqB,EAAE,iBAAiB,EAAE,MAAM,aAAa,CAAC;
|
|
1
|
+
{"version":3,"file":"createNewFileWithText.d.ts","sourceRoot":"","sources":["../../../../src/browser/mcp/tools/createNewFileWithText.ts"],"names":[],"mappings":"AAOA,OAAO,EAAE,kBAAkB,EAAa,qBAAqB,EAAE,iBAAiB,EAAE,MAAM,aAAa,CAAC;AAUtG,qBACa,yBAA0B,YAAW,qBAAqB;IAErE,OAAO,CAAC,QAAQ,CAAC,gBAAgB,CAAoB;IAGrD,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAqB;IAGjD,OAAO,CAAC,YAAY,CAAmB;IAEvC,iBAAiB,CAAC,QAAQ,EAAE,kBAAkB,GAAG,IAAI;IAKrD,iBAAiB,IAAI,iBAAiB;YAgBxB,OAAO;CAyCtB"}
|