@opensumi/ide-ai-native 3.8.1-next-1741228774.0 → 3.8.1-next-1741250387.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 +0 -5
- package/lib/browser/ai-core.contribution.d.ts.map +1 -1
- package/lib/browser/ai-core.contribution.js +9 -71
- package/lib/browser/ai-core.contribution.js.map +1 -1
- package/lib/browser/chat/chat-agent.service.d.ts +3 -11
- package/lib/browser/chat/chat-agent.service.d.ts.map +1 -1
- package/lib/browser/chat/chat-agent.service.js +5 -43
- package/lib/browser/chat/chat-agent.service.js.map +1 -1
- package/lib/browser/chat/chat-manager.service.d.ts +0 -1
- package/lib/browser/chat/chat-manager.service.d.ts.map +1 -1
- package/lib/browser/chat/chat-manager.service.js +8 -6
- package/lib/browser/chat/chat-manager.service.js.map +1 -1
- package/lib/browser/chat/chat-model.d.ts +1 -4
- package/lib/browser/chat/chat-model.d.ts.map +1 -1
- package/lib/browser/chat/chat-model.js +2 -57
- 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 +6 -13
- package/lib/browser/chat/chat-proxy.service.js.map +1 -1
- package/lib/browser/chat/chat.api.service.d.ts +2 -1
- package/lib/browser/chat/chat.api.service.d.ts.map +1 -1
- package/lib/browser/chat/chat.api.service.js +4 -0
- package/lib/browser/chat/chat.api.service.js.map +1 -1
- package/lib/browser/chat/chat.internal.service.d.ts +0 -2
- package/lib/browser/chat/chat.internal.service.d.ts.map +1 -1
- package/lib/browser/chat/chat.internal.service.js +0 -3
- package/lib/browser/chat/chat.internal.service.js.map +1 -1
- package/lib/browser/chat/chat.module.less +2 -1
- package/lib/browser/chat/chat.view.d.ts.map +1 -1
- package/lib/browser/chat/chat.view.js +29 -46
- 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 +1 -29
- package/lib/browser/components/ChatInput.js.map +1 -1
- package/lib/browser/components/ChatReply.js +1 -6
- package/lib/browser/components/ChatReply.js.map +1 -1
- package/lib/browser/components/ChatThinking.d.ts +2 -0
- package/lib/browser/components/ChatThinking.d.ts.map +1 -1
- package/lib/browser/components/ChatThinking.js +10 -2
- 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 +3 -2
- 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 +1 -2
- package/lib/browser/components/components.module.less +0 -22
- package/lib/browser/context/llm-context.service.d.ts +5 -18
- package/lib/browser/context/llm-context.service.d.ts.map +1 -1
- package/lib/browser/context/llm-context.service.js +47 -81
- 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 +1 -2
- package/lib/browser/contrib/intelligent-completions/index.d.ts.map +1 -1
- package/lib/browser/contrib/intelligent-completions/index.js +1 -4
- 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 +5 -6
- 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 +2 -4
- 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 +11 -23
- 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 +0 -4
- 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 +11 -26
- package/lib/browser/mcp/base-apply.service.d.ts.map +1 -1
- package/lib/browser/mcp/base-apply.service.js +103 -255
- package/lib/browser/mcp/base-apply.service.js.map +1 -1
- package/lib/browser/mcp/mcp-server-proxy.service.d.ts +0 -6
- package/lib/browser/mcp/mcp-server-proxy.service.d.ts.map +1 -1
- package/lib/browser/mcp/mcp-server-proxy.service.js +1 -10
- package/lib/browser/mcp/mcp-server-proxy.service.js.map +1 -1
- package/lib/browser/mcp/mcp-server.feature.registry.d.ts +0 -8
- package/lib/browser/mcp/mcp-server.feature.registry.d.ts.map +1 -1
- package/lib/browser/mcp/mcp-server.feature.registry.js +3 -28
- 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 +9 -15
- package/lib/browser/mcp/tools/components/EditFile.js.map +1 -1
- package/lib/browser/mcp/tools/components/SearchResult.d.ts +11 -0
- package/lib/browser/mcp/tools/components/SearchResult.d.ts.map +1 -0
- package/lib/browser/mcp/tools/components/{ExpandableFileList.js → SearchResult.js} +19 -29
- package/lib/browser/mcp/tools/components/SearchResult.js.map +1 -0
- package/lib/browser/mcp/tools/components/Terminal.d.ts.map +1 -1
- package/lib/browser/mcp/tools/components/Terminal.js +2 -10
- package/lib/browser/mcp/tools/components/Terminal.js.map +1 -1
- package/lib/browser/mcp/tools/components/index.module.less +0 -4
- package/lib/browser/mcp/tools/createNewFileWithText.d.ts +0 -1
- package/lib/browser/mcp/tools/createNewFileWithText.d.ts.map +1 -1
- package/lib/browser/mcp/tools/createNewFileWithText.js +11 -19
- package/lib/browser/mcp/tools/createNewFileWithText.js.map +1 -1
- package/lib/browser/mcp/tools/fileSearch.d.ts +0 -1
- package/lib/browser/mcp/tools/fileSearch.d.ts.map +1 -1
- package/lib/browser/mcp/tools/fileSearch.js +5 -14
- 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 +0 -1
- 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 +3 -6
- 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 +0 -1
- package/lib/browser/mcp/tools/handlers/ListDir.d.ts.map +1 -1
- package/lib/browser/mcp/tools/handlers/ListDir.js +0 -3
- 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 +0 -2
- package/lib/browser/mcp/tools/handlers/RunCommand.js.map +1 -1
- package/lib/browser/mcp/tools/listDir.d.ts +0 -1
- package/lib/browser/mcp/tools/listDir.d.ts.map +1 -1
- package/lib/browser/mcp/tools/listDir.js +4 -35
- 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 +0 -1
- 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 +10 -4
- 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 +2 -22
- package/lib/browser/preferences/schema.js.map +1 -1
- package/lib/browser/types.d.ts +0 -4
- 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 +1 -6
- 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 +8 -68
- package/lib/browser/widget/inline-diff/inline-diff-manager.js.map +1 -1
- package/lib/browser/widget/inline-diff/inline-diff-previewer.d.ts +4 -10
- package/lib/browser/widget/inline-diff/inline-diff-previewer.d.ts.map +1 -1
- package/lib/browser/widget/inline-diff/inline-diff-previewer.js +3 -14
- package/lib/browser/widget/inline-diff/inline-diff-previewer.js.map +1 -1
- package/lib/browser/widget/inline-diff/inline-diff-widget.module.less +4 -25
- 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 +5 -10
- 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 +17 -46
- 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 +53 -110
- 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 +0 -4
- 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 +1 -26
- package/lib/browser/widget/inline-stream-diff/live-preview.decoration.js.map +1 -1
- package/lib/common/index.d.ts +4 -13
- package/lib/common/index.d.ts.map +1 -1
- package/lib/common/index.js +1 -5
- package/lib/common/index.js.map +1 -1
- package/lib/common/llm-context.d.ts +9 -13
- 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 +1 -17
- package/lib/common/mcp-server-manager.d.ts.map +1 -1
- package/lib/common/mcp-server-manager.js.map +1 -1
- package/lib/common/prompts/context-prompt-provider.d.ts +3 -4
- package/lib/common/prompts/context-prompt-provider.d.ts.map +1 -1
- package/lib/common/prompts/context-prompt-provider.js +22 -33
- 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 +0 -8
- package/lib/common/types.d.ts.map +1 -1
- package/lib/common/utils.d.ts.map +1 -1
- package/lib/common/utils.js +1 -2
- package/lib/common/utils.js.map +1 -1
- package/lib/node/anthropic/anthropic-language-model.d.ts +1 -3
- package/lib/node/anthropic/anthropic-language-model.d.ts.map +1 -1
- package/lib/node/anthropic/anthropic-language-model.js +2 -6
- package/lib/node/anthropic/anthropic-language-model.js.map +1 -1
- package/lib/node/base-language-model.d.ts +3 -6
- package/lib/node/base-language-model.d.ts.map +1 -1
- package/lib/node/base-language-model.js +31 -14
- package/lib/node/base-language-model.js.map +1 -1
- package/lib/node/deepseek/deepseek-language-model.d.ts +1 -3
- package/lib/node/deepseek/deepseek-language-model.d.ts.map +1 -1
- package/lib/node/deepseek/deepseek-language-model.js +2 -6
- package/lib/node/deepseek/deepseek-language-model.js.map +1 -1
- package/lib/node/mcp/sumi-mcp-server.d.ts +3 -17
- package/lib/node/mcp/sumi-mcp-server.d.ts.map +1 -1
- package/lib/node/mcp/sumi-mcp-server.js +6 -59
- package/lib/node/mcp/sumi-mcp-server.js.map +1 -1
- package/lib/node/mcp-server-manager-impl.d.ts +3 -4
- package/lib/node/mcp-server-manager-impl.d.ts.map +1 -1
- package/lib/node/mcp-server-manager-impl.js +6 -26
- package/lib/node/mcp-server-manager-impl.js.map +1 -1
- package/lib/node/mcp-server.d.ts +16 -5
- package/lib/node/mcp-server.d.ts.map +1 -1
- package/lib/node/mcp-server.js +6 -12
- package/lib/node/mcp-server.js.map +1 -1
- package/lib/node/openai/openai-language-model.d.ts +2 -4
- package/lib/node/openai/openai-language-model.d.ts.map +1 -1
- package/lib/node/openai/openai-language-model.js +4 -6
- package/lib/node/openai/openai-language-model.js.map +1 -1
- package/package.json +26 -27
- package/src/browser/ai-core.contextkeys.ts +3 -3
- package/src/browser/ai-core.contribution.ts +12 -89
- package/src/browser/chat/chat-agent.service.ts +9 -53
- package/src/browser/chat/chat-manager.service.ts +8 -10
- package/src/browser/chat/chat-model.ts +5 -63
- package/src/browser/chat/chat-proxy.service.ts +8 -16
- package/src/browser/chat/chat.api.service.ts +5 -1
- package/src/browser/chat/chat.internal.service.ts +0 -4
- package/src/browser/chat/chat.module.less +2 -1
- package/src/browser/chat/chat.view.tsx +69 -63
- package/src/browser/components/ChatContext/index.tsx +2 -2
- package/src/browser/components/ChatInput.tsx +6 -81
- package/src/browser/components/ChatReply.tsx +6 -6
- package/src/browser/components/ChatThinking.tsx +9 -3
- package/src/browser/components/ChatToolRender.tsx +2 -1
- package/src/browser/components/WelcomeMsg.tsx +1 -1
- package/src/browser/components/chat-history.module.less +1 -2
- package/src/browser/components/components.module.less +0 -22
- package/src/browser/context/llm-context.service.ts +54 -100
- 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 +1 -5
- package/src/browser/contrib/intelligent-completions/intelligent-completions.contribution.ts +3 -3
- package/src/browser/contrib/intelligent-completions/intelligent-completions.controller.ts +6 -7
- package/src/browser/contrib/intelligent-completions/view/code-edits-previewer.ts +2 -4
- package/src/browser/contrib/intelligent-completions/view/default.ts +19 -34
- package/src/browser/index.ts +0 -4
- package/src/browser/layout/layout.module.less +4 -4
- package/src/browser/mcp/base-apply.service.ts +109 -306
- package/src/browser/mcp/mcp-server-proxy.service.ts +2 -14
- package/src/browser/mcp/mcp-server.feature.registry.ts +4 -35
- package/src/browser/mcp/tools/components/EditFile.tsx +9 -16
- package/src/browser/mcp/tools/components/SearchResult.tsx +92 -0
- package/src/browser/mcp/tools/components/Terminal.tsx +2 -13
- package/src/browser/mcp/tools/components/index.module.less +0 -4
- package/src/browser/mcp/tools/createNewFileWithText.ts +12 -21
- package/src/browser/mcp/tools/fileSearch.ts +4 -14
- package/src/browser/mcp/tools/getDiagnosticsByPath.ts +0 -1
- package/src/browser/mcp/tools/grepSearch.ts +3 -6
- package/src/browser/mcp/tools/handlers/EditFile.ts +1 -1
- package/src/browser/mcp/tools/handlers/ListDir.ts +0 -4
- package/src/browser/mcp/tools/handlers/RunCommand.ts +0 -2
- package/src/browser/mcp/tools/listDir.ts +5 -36
- package/src/browser/mcp/tools/runTerminalCmd.ts +0 -1
- package/src/browser/model/msg-history-manager.ts +11 -5
- package/src/browser/preferences/schema.ts +2 -22
- package/src/browser/types.ts +0 -1
- package/src/browser/widget/inline-chat/inline-chat-controller.ts +1 -5
- package/src/browser/widget/inline-diff/inline-diff-manager.tsx +21 -143
- package/src/browser/widget/inline-diff/inline-diff-previewer.ts +7 -25
- package/src/browser/widget/inline-diff/inline-diff-widget.module.less +4 -25
- package/src/browser/widget/inline-diff/inline-diff.controller.ts +8 -16
- package/src/browser/widget/inline-stream-diff/inline-stream-diff.handler.tsx +68 -139
- package/src/browser/widget/inline-stream-diff/live-preview.decoration.tsx +1 -30
- package/src/common/index.ts +4 -15
- package/src/common/llm-context.ts +4 -10
- package/src/common/mcp-server-manager.ts +1 -17
- package/src/common/prompts/context-prompt-provider.ts +29 -38
- package/src/common/tool-invocation-registry.ts +2 -2
- package/src/common/types.ts +0 -8
- package/src/common/utils.ts +1 -3
- package/src/node/anthropic/anthropic-language-model.ts +2 -7
- package/src/node/base-language-model.ts +38 -25
- package/src/node/deepseek/deepseek-language-model.ts +2 -7
- package/src/node/mcp/sumi-mcp-server.ts +9 -67
- package/src/node/mcp-server-manager-impl.ts +9 -30
- package/src/node/mcp-server.ts +14 -11
- package/src/node/openai/openai-language-model.ts +4 -8
- package/lib/browser/mcp/config/components/mcp-config.module.less +0 -178
- package/lib/browser/mcp/config/components/mcp-config.view.d.ts +0 -3
- package/lib/browser/mcp/config/components/mcp-config.view.d.ts.map +0 -1
- package/lib/browser/mcp/config/components/mcp-config.view.js +0 -150
- package/lib/browser/mcp/config/components/mcp-config.view.js.map +0 -1
- package/lib/browser/mcp/config/components/mcp-server-form.d.ts +0 -16
- package/lib/browser/mcp/config/components/mcp-server-form.d.ts.map +0 -1
- package/lib/browser/mcp/config/components/mcp-server-form.js +0 -84
- package/lib/browser/mcp/config/components/mcp-server-form.js.map +0 -1
- package/lib/browser/mcp/config/components/mcp-server-form.module.less +0 -78
- package/lib/browser/mcp/config/mcp-config.commands.d.ts +0 -10
- package/lib/browser/mcp/config/mcp-config.commands.d.ts.map +0 -1
- package/lib/browser/mcp/config/mcp-config.commands.js +0 -35
- package/lib/browser/mcp/config/mcp-config.commands.js.map +0 -1
- package/lib/browser/mcp/config/mcp-config.contribution.d.ts +0 -16
- package/lib/browser/mcp/config/mcp-config.contribution.d.ts.map +0 -1
- package/lib/browser/mcp/config/mcp-config.contribution.js +0 -62
- package/lib/browser/mcp/config/mcp-config.contribution.js.map +0 -1
- package/lib/browser/mcp/tools/components/ExpandableFileList.d.ts +0 -13
- package/lib/browser/mcp/tools/components/ExpandableFileList.d.ts.map +0 -1
- package/lib/browser/mcp/tools/components/ExpandableFileList.js.map +0 -1
- package/lib/common/model.d.ts +0 -12
- package/lib/common/model.d.ts.map +0 -1
- package/lib/common/model.js +0 -83
- package/lib/common/model.js.map +0 -1
- package/lib/node/openai-compatible/openai-compatible-language-model.d.ts +0 -10
- package/lib/node/openai-compatible/openai-compatible-language-model.d.ts.map +0 -1
- package/lib/node/openai-compatible/openai-compatible-language-model.js +0 -32
- package/lib/node/openai-compatible/openai-compatible-language-model.js.map +0 -1
- package/src/browser/mcp/config/components/mcp-config.module.less +0 -178
- package/src/browser/mcp/config/components/mcp-config.view.tsx +0 -215
- package/src/browser/mcp/config/components/mcp-server-form.module.less +0 -78
- package/src/browser/mcp/config/components/mcp-server-form.tsx +0 -144
- package/src/browser/mcp/config/mcp-config.commands.ts +0 -29
- package/src/browser/mcp/config/mcp-config.contribution.ts +0 -65
- package/src/browser/mcp/tools/components/ExpandableFileList.tsx +0 -133
- package/src/common/model.ts +0 -90
- package/src/node/openai-compatible/openai-compatible-language-model.ts +0 -30
package/lib/node/mcp-server.js
CHANGED
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.
|
|
3
|
+
exports.MCPServerImpl = void 0;
|
|
4
4
|
// have to import with extension since the exports map is ./* -> ./dist/cjs/*
|
|
5
5
|
const index_js_1 = require("@modelcontextprotocol/sdk/client/index.js");
|
|
6
6
|
const stdio_js_1 = require("@modelcontextprotocol/sdk/client/stdio.js");
|
|
7
|
-
class
|
|
7
|
+
class MCPServerImpl {
|
|
8
8
|
constructor(name, command, args, env, logger) {
|
|
9
9
|
this.logger = logger;
|
|
10
10
|
this.started = false;
|
|
@@ -78,21 +78,15 @@ class StdioMCPServerImpl {
|
|
|
78
78
|
this.args = args;
|
|
79
79
|
this.env = env;
|
|
80
80
|
}
|
|
81
|
-
|
|
82
|
-
var _a
|
|
81
|
+
stop() {
|
|
82
|
+
var _a;
|
|
83
83
|
if (!this.started || !this.client) {
|
|
84
84
|
return;
|
|
85
85
|
}
|
|
86
86
|
(_a = this.logger) === null || _a === void 0 ? void 0 : _a.log(`Stopping MCP server "${this.name}"`);
|
|
87
|
-
|
|
88
|
-
await this.client.close();
|
|
89
|
-
}
|
|
90
|
-
catch (error) {
|
|
91
|
-
(_b = this.logger) === null || _b === void 0 ? void 0 : _b.error(`Failed to stop MCP server "${this.name}":`, error);
|
|
92
|
-
}
|
|
93
|
-
(_c = this.logger) === null || _c === void 0 ? void 0 : _c.log(`MCP server "${this.name}" stopped`);
|
|
87
|
+
this.client.close();
|
|
94
88
|
this.started = false;
|
|
95
89
|
}
|
|
96
90
|
}
|
|
97
|
-
exports.
|
|
91
|
+
exports.MCPServerImpl = MCPServerImpl;
|
|
98
92
|
//# sourceMappingURL=mcp-server.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"mcp-server.js","sourceRoot":"","sources":["../../src/node/mcp-server.ts"],"names":[],"mappings":";;;AAAA,6EAA6E;AAC7E,wEAAmE;AACnE,wEAAiF;
|
|
1
|
+
{"version":3,"file":"mcp-server.js","sourceRoot":"","sources":["../../src/node/mcp-server.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,11 +1,9 @@
|
|
|
1
1
|
import { OpenAIProvider } from '@ai-sdk/openai';
|
|
2
|
-
import { LanguageModelV1 } from 'ai';
|
|
3
2
|
import { IAIBackServiceOption } from '@opensumi/ide-core-common';
|
|
4
|
-
import { ModelInfo } from '../../common/model';
|
|
5
3
|
import { BaseLanguageModel } from '../base-language-model';
|
|
4
|
+
export declare const DeepSeekModelIdentifier: unique symbol;
|
|
6
5
|
export declare class OpenAIModel extends BaseLanguageModel {
|
|
7
6
|
protected initializeProvider(options: IAIBackServiceOption): OpenAIProvider;
|
|
8
|
-
protected getModelIdentifier(provider: OpenAIProvider, modelId
|
|
9
|
-
protected getModelInfo(modelId: string): ModelInfo | undefined;
|
|
7
|
+
protected getModelIdentifier(provider: OpenAIProvider, modelId?: string): import("ai").LanguageModelV1;
|
|
10
8
|
}
|
|
11
9
|
//# sourceMappingURL=openai-language-model.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"openai-language-model.d.ts","sourceRoot":"","sources":["../../../src/node/openai/openai-language-model.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAgB,MAAM,gBAAgB,CAAC;
|
|
1
|
+
{"version":3,"file":"openai-language-model.d.ts","sourceRoot":"","sources":["../../../src/node/openai/openai-language-model.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAgB,MAAM,gBAAgB,CAAC;AAG9D,OAAO,EAA6B,oBAAoB,EAAE,MAAM,2BAA2B,CAAC;AAE5F,OAAO,EAAE,iBAAiB,EAAE,MAAM,wBAAwB,CAAC;AAC3D,eAAO,MAAM,uBAAuB,eAAoC,CAAC;AAEzE,qBACa,WAAY,SAAQ,iBAAiB;IAChD,SAAS,CAAC,kBAAkB,CAAC,OAAO,EAAE,oBAAoB,GAAG,cAAc;IAW3E,SAAS,CAAC,kBAAkB,CAAC,QAAQ,EAAE,cAAc,EAAE,OAAO,CAAC,EAAE,MAAM;CAGxE"}
|
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.OpenAIModel = void 0;
|
|
3
|
+
exports.OpenAIModel = exports.DeepSeekModelIdentifier = void 0;
|
|
4
4
|
const tslib_1 = require("tslib");
|
|
5
5
|
const openai_1 = require("@ai-sdk/openai");
|
|
6
6
|
const di_1 = require("@opensumi/di");
|
|
7
7
|
const ide_core_common_1 = require("@opensumi/ide-core-common");
|
|
8
|
-
const model_1 = require("../../common/model");
|
|
9
8
|
const base_language_model_1 = require("../base-language-model");
|
|
9
|
+
exports.DeepSeekModelIdentifier = Symbol('DeepSeekModelIdentifier');
|
|
10
10
|
let OpenAIModel = class OpenAIModel extends base_language_model_1.BaseLanguageModel {
|
|
11
11
|
initializeProvider(options) {
|
|
12
12
|
const apiKey = options.apiKey;
|
|
@@ -15,13 +15,11 @@ let OpenAIModel = class OpenAIModel extends base_language_model_1.BaseLanguageMo
|
|
|
15
15
|
}
|
|
16
16
|
return (0, openai_1.createOpenAI)({
|
|
17
17
|
apiKey,
|
|
18
|
+
baseURL: options.baseURL || 'https://dashscope.aliyuncs.com/compatible-mode/v1',
|
|
18
19
|
});
|
|
19
20
|
}
|
|
20
21
|
getModelIdentifier(provider, modelId) {
|
|
21
|
-
return provider(modelId);
|
|
22
|
-
}
|
|
23
|
-
getModelInfo(modelId) {
|
|
24
|
-
return model_1.openAiNativeModels[modelId];
|
|
22
|
+
return provider(modelId || 'qwen-max');
|
|
25
23
|
}
|
|
26
24
|
};
|
|
27
25
|
exports.OpenAIModel = OpenAIModel;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"openai-language-model.js","sourceRoot":"","sources":["../../../src/node/openai/openai-language-model.ts"],"names":[],"mappings":";;;;AAAA,2CAA8D;
|
|
1
|
+
{"version":3,"file":"openai-language-model.js","sourceRoot":"","sources":["../../../src/node/openai/openai-language-model.ts"],"names":[],"mappings":";;;;AAAA,2CAA8D;AAE9D,qCAA0C;AAC1C,+DAA4F;AAE5F,gEAA2D;AAC9C,QAAA,uBAAuB,GAAG,MAAM,CAAC,yBAAyB,CAAC,CAAC;AAGlE,IAAM,WAAW,GAAjB,MAAM,WAAY,SAAQ,uCAAiB;IACtC,kBAAkB,CAAC,OAA6B;QACxD,MAAM,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;QAC9B,IAAI,CAAC,MAAM,EAAE,CAAC;YACZ,MAAM,IAAI,KAAK,CAAC,iDAAiD,2CAAyB,CAAC,YAAY,GAAG,CAAC,CAAC;QAC9G,CAAC;QACD,OAAO,IAAA,qBAAY,EAAC;YAClB,MAAM;YACN,OAAO,EAAE,OAAO,CAAC,OAAO,IAAI,mDAAmD;SAChF,CAAC,CAAC;IACL,CAAC;IAES,kBAAkB,CAAC,QAAwB,EAAE,OAAgB;QACrE,OAAO,QAAQ,CAAC,OAAO,IAAI,UAAU,CAAC,CAAC;IACzC,CAAC;CACF,CAAA;AAfY,kCAAW;sBAAX,WAAW;IADvB,IAAA,eAAU,GAAE;GACA,WAAW,CAevB"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@opensumi/ide-ai-native",
|
|
3
|
-
"version": "3.8.1-next-
|
|
3
|
+
"version": "3.8.1-next-1741250387.0",
|
|
4
4
|
"files": [
|
|
5
5
|
"lib",
|
|
6
6
|
"src"
|
|
@@ -19,33 +19,32 @@
|
|
|
19
19
|
"url": "git@github.com:opensumi/core.git"
|
|
20
20
|
},
|
|
21
21
|
"dependencies": {
|
|
22
|
-
"@ai-sdk/anthropic": "^1.1.
|
|
23
|
-
"@ai-sdk/deepseek": "^0.1.
|
|
22
|
+
"@ai-sdk/anthropic": "^1.1.6",
|
|
23
|
+
"@ai-sdk/deepseek": "^0.1.8",
|
|
24
24
|
"@ai-sdk/openai": "^1.1.9",
|
|
25
|
-
"@ai-sdk/openai-compatible": "^0.1.11",
|
|
26
25
|
"@modelcontextprotocol/sdk": "^1.3.1",
|
|
27
|
-
"@opensumi/ide-addons": "3.8.1-next-
|
|
28
|
-
"@opensumi/ide-components": "3.8.1-next-
|
|
29
|
-
"@opensumi/ide-connection": "3.8.1-next-
|
|
30
|
-
"@opensumi/ide-core-common": "3.8.1-next-
|
|
31
|
-
"@opensumi/ide-core-node": "3.8.1-next-
|
|
32
|
-
"@opensumi/ide-debug": "3.8.1-next-
|
|
33
|
-
"@opensumi/ide-design": "3.8.1-next-
|
|
34
|
-
"@opensumi/ide-editor": "3.8.1-next-
|
|
35
|
-
"@opensumi/ide-file-search": "3.8.1-next-
|
|
36
|
-
"@opensumi/ide-file-service": "3.8.1-next-
|
|
37
|
-
"@opensumi/ide-main-layout": "3.8.1-next-
|
|
38
|
-
"@opensumi/ide-markers": "3.8.1-next-
|
|
39
|
-
"@opensumi/ide-monaco": "3.8.1-next-
|
|
40
|
-
"@opensumi/ide-overlay": "3.8.1-next-
|
|
41
|
-
"@opensumi/ide-preferences": "3.8.1-next-
|
|
42
|
-
"@opensumi/ide-search": "3.8.1-next-
|
|
43
|
-
"@opensumi/ide-terminal-next": "3.8.1-next-
|
|
44
|
-
"@opensumi/ide-theme": "3.8.1-next-
|
|
45
|
-
"@opensumi/ide-utils": "3.8.1-next-
|
|
46
|
-
"@opensumi/ide-workspace": "3.8.1-next-
|
|
26
|
+
"@opensumi/ide-addons": "3.8.1-next-1741250387.0",
|
|
27
|
+
"@opensumi/ide-components": "3.8.1-next-1741250387.0",
|
|
28
|
+
"@opensumi/ide-connection": "3.8.1-next-1741250387.0",
|
|
29
|
+
"@opensumi/ide-core-common": "3.8.1-next-1741250387.0",
|
|
30
|
+
"@opensumi/ide-core-node": "3.8.1-next-1741250387.0",
|
|
31
|
+
"@opensumi/ide-debug": "3.8.1-next-1741250387.0",
|
|
32
|
+
"@opensumi/ide-design": "3.8.1-next-1741250387.0",
|
|
33
|
+
"@opensumi/ide-editor": "3.8.1-next-1741250387.0",
|
|
34
|
+
"@opensumi/ide-file-search": "3.8.1-next-1741250387.0",
|
|
35
|
+
"@opensumi/ide-file-service": "3.8.1-next-1741250387.0",
|
|
36
|
+
"@opensumi/ide-main-layout": "3.8.1-next-1741250387.0",
|
|
37
|
+
"@opensumi/ide-markers": "3.8.1-next-1741250387.0",
|
|
38
|
+
"@opensumi/ide-monaco": "3.8.1-next-1741250387.0",
|
|
39
|
+
"@opensumi/ide-overlay": "3.8.1-next-1741250387.0",
|
|
40
|
+
"@opensumi/ide-preferences": "3.8.1-next-1741250387.0",
|
|
41
|
+
"@opensumi/ide-search": "3.8.1-next-1741250387.0",
|
|
42
|
+
"@opensumi/ide-terminal-next": "3.8.1-next-1741250387.0",
|
|
43
|
+
"@opensumi/ide-theme": "3.8.1-next-1741250387.0",
|
|
44
|
+
"@opensumi/ide-utils": "3.8.1-next-1741250387.0",
|
|
45
|
+
"@opensumi/ide-workspace": "3.8.1-next-1741250387.0",
|
|
47
46
|
"@xterm/xterm": "5.5.0",
|
|
48
|
-
"ai": "^4.1.
|
|
47
|
+
"ai": "^4.1.21",
|
|
49
48
|
"ansi-regex": "^2.0.0",
|
|
50
49
|
"diff": "^7.0.0",
|
|
51
50
|
"dom-align": "^1.7.0",
|
|
@@ -58,7 +57,7 @@
|
|
|
58
57
|
"zod-to-json-schema": "^3.24.1"
|
|
59
58
|
},
|
|
60
59
|
"devDependencies": {
|
|
61
|
-
"@opensumi/ide-core-browser": "3.8.1-next-
|
|
60
|
+
"@opensumi/ide-core-browser": "3.8.1-next-1741250387.0"
|
|
62
61
|
},
|
|
63
|
-
"gitHead": "
|
|
62
|
+
"gitHead": "bfdd5ab9d3121775ed7ba8655637eec77bed44df"
|
|
64
63
|
}
|
|
@@ -1,13 +1,13 @@
|
|
|
1
1
|
import { Autowired, Injectable, Optional } from '@opensumi/di';
|
|
2
2
|
import { IContextKey, IContextKeyService, IScopedContextKeyService } from '@opensumi/ide-core-browser';
|
|
3
3
|
import {
|
|
4
|
-
CodeEditsIsVisible,
|
|
5
4
|
InlineChatIsVisible,
|
|
6
5
|
InlineCompletionIsTrigger,
|
|
7
6
|
InlineDiffPartialEditsIsVisible,
|
|
8
7
|
InlineHintWidgetIsVisible,
|
|
9
8
|
InlineInputWidgetIsStreaming,
|
|
10
9
|
InlineInputWidgetIsVisible,
|
|
10
|
+
MultiLineEditsIsVisible,
|
|
11
11
|
} from '@opensumi/ide-core-browser/lib/contextkey/ai-native';
|
|
12
12
|
import { ContextKeyService } from '@opensumi/monaco-editor-core/esm/vs/platform/contextkey/browser/contextKeyService';
|
|
13
13
|
import { IContextKeyServiceTarget } from '@opensumi/monaco-editor-core/esm/vs/platform/contextkey/common/contextkey';
|
|
@@ -25,7 +25,7 @@ export class AINativeContextKey {
|
|
|
25
25
|
public readonly inlineInputWidgetIsVisible: IContextKey<boolean>;
|
|
26
26
|
public readonly inlineInputWidgetIsStreaming: IContextKey<boolean>;
|
|
27
27
|
public readonly inlineDiffPartialEditsIsVisible: IContextKey<boolean>;
|
|
28
|
-
public readonly
|
|
28
|
+
public readonly multiLineEditsIsVisible: IContextKey<boolean>;
|
|
29
29
|
public get contextKeyService() {
|
|
30
30
|
return this._contextKeyService;
|
|
31
31
|
}
|
|
@@ -38,6 +38,6 @@ export class AINativeContextKey {
|
|
|
38
38
|
this.inlineInputWidgetIsVisible = InlineInputWidgetIsVisible.bind(this._contextKeyService);
|
|
39
39
|
this.inlineInputWidgetIsStreaming = InlineInputWidgetIsStreaming.bind(this._contextKeyService);
|
|
40
40
|
this.inlineDiffPartialEditsIsVisible = InlineDiffPartialEditsIsVisible.bind(this._contextKeyService);
|
|
41
|
-
this.
|
|
41
|
+
this.multiLineEditsIsVisible = MultiLineEditsIsVisible.bind(this._contextKeyService);
|
|
42
42
|
}
|
|
43
43
|
}
|
|
@@ -14,12 +14,10 @@ import {
|
|
|
14
14
|
Domain,
|
|
15
15
|
IAIInlineChatService,
|
|
16
16
|
IEditorExtensionContribution,
|
|
17
|
-
IPreferenceSettingsService,
|
|
18
17
|
KeybindingContribution,
|
|
19
18
|
KeybindingRegistry,
|
|
20
19
|
KeybindingScope,
|
|
21
20
|
MonacoContribution,
|
|
22
|
-
PreferenceSchemaProvider,
|
|
23
21
|
PreferenceService,
|
|
24
22
|
SlotLocation,
|
|
25
23
|
SlotRendererContribution,
|
|
@@ -78,15 +76,11 @@ import {
|
|
|
78
76
|
AI_CHAT_LOGO_AVATAR_ID,
|
|
79
77
|
AI_CHAT_VIEW_ID,
|
|
80
78
|
AI_MENU_BAR_DEBUG_TOOLBAR,
|
|
81
|
-
BUILTIN_MCP_SERVER_NAME,
|
|
82
79
|
ChatProxyServiceToken,
|
|
83
80
|
IChatInternalService,
|
|
84
81
|
IChatManagerService,
|
|
85
82
|
ISumiMCPServerBackend,
|
|
86
83
|
SumiMCPServerProxyServicePath,
|
|
87
|
-
anthropicModels,
|
|
88
|
-
deepSeekModels,
|
|
89
|
-
openAiNativeModels,
|
|
90
84
|
} from '../common';
|
|
91
85
|
import { MCPServerDescription } from '../common/mcp-server-manager';
|
|
92
86
|
|
|
@@ -214,12 +208,6 @@ export class AINativeBrowserContribution
|
|
|
214
208
|
@Autowired(CommandService)
|
|
215
209
|
private readonly commandService: CommandService;
|
|
216
210
|
|
|
217
|
-
@Autowired(PreferenceSchemaProvider)
|
|
218
|
-
private preferenceSchemaProvider: PreferenceSchemaProvider;
|
|
219
|
-
|
|
220
|
-
@Autowired(IPreferenceSettingsService)
|
|
221
|
-
private preferenceSettings: IPreferenceSettingsService;
|
|
222
|
-
|
|
223
211
|
@Autowired(PreferenceService)
|
|
224
212
|
private readonly preferenceService: PreferenceService;
|
|
225
213
|
|
|
@@ -330,17 +318,9 @@ export class AINativeBrowserContribution
|
|
|
330
318
|
}
|
|
331
319
|
}
|
|
332
320
|
|
|
333
|
-
onReconnect(): void {
|
|
334
|
-
const { supportsMCP } = this.aiNativeConfigService.capabilities;
|
|
335
|
-
if (supportsMCP) {
|
|
336
|
-
this.initMCPServers();
|
|
337
|
-
}
|
|
338
|
-
}
|
|
339
|
-
|
|
340
321
|
onDidStart() {
|
|
341
322
|
runWhenIdle(() => {
|
|
342
|
-
const { supportsRenameSuggestions, supportsInlineChat, supportsMCP
|
|
343
|
-
this.aiNativeConfigService.capabilities;
|
|
323
|
+
const { supportsRenameSuggestions, supportsInlineChat, supportsMCP } = this.aiNativeConfigService.capabilities;
|
|
344
324
|
const prefChatVisibleType = this.preferenceService.getValid(AINativeSettingSectionsId.ChatVisibleType);
|
|
345
325
|
|
|
346
326
|
if (prefChatVisibleType === 'always') {
|
|
@@ -357,69 +337,19 @@ export class AINativeBrowserContribution
|
|
|
357
337
|
this.codeActionSingleHandler.load();
|
|
358
338
|
}
|
|
359
339
|
|
|
360
|
-
if (supportsCustomLLMSettings) {
|
|
361
|
-
this.preferenceService.onSpecificPreferenceChange(AINativeSettingSectionsId.LLMModelSelection, (change) => {
|
|
362
|
-
const model = this.getModelByName(change.newValue);
|
|
363
|
-
const modelIds = model ? Object.keys(model) : [];
|
|
364
|
-
const defaultModelId = modelIds.length ? modelIds[0] : '';
|
|
365
|
-
const currentSchemas = this.preferenceSchemaProvider.getPreferenceProperty(AINativeSettingSectionsId.ModelID);
|
|
366
|
-
this.preferenceSchemaProvider.setSchema(
|
|
367
|
-
{
|
|
368
|
-
properties: {
|
|
369
|
-
[AINativeSettingSectionsId.ModelID]: {
|
|
370
|
-
...currentSchemas,
|
|
371
|
-
default: defaultModelId,
|
|
372
|
-
defaultValue: defaultModelId,
|
|
373
|
-
enum: modelIds.length ? modelIds : undefined,
|
|
374
|
-
},
|
|
375
|
-
},
|
|
376
|
-
},
|
|
377
|
-
true,
|
|
378
|
-
);
|
|
379
|
-
this.preferenceService.set(AINativeSettingSectionsId.ModelID, defaultModelId, change.scope);
|
|
380
|
-
this.preferenceSettings.setEnumLabels(
|
|
381
|
-
AINativeSettingSectionsId.ModelID,
|
|
382
|
-
modelIds.reduce((obj, item) => ({ ...obj, [item]: item }), {}),
|
|
383
|
-
);
|
|
384
|
-
});
|
|
385
|
-
}
|
|
386
|
-
|
|
387
340
|
if (supportsMCP) {
|
|
388
|
-
|
|
389
|
-
|
|
390
|
-
});
|
|
391
|
-
}
|
|
392
|
-
|
|
393
|
-
private initMCPServers() {
|
|
394
|
-
// 从 preferences 获取并初始化外部 MCP Servers
|
|
395
|
-
const mcpServers = this.preferenceService.getValid<MCPServerDescription[]>(AINativeSettingSectionsId.MCPServers);
|
|
341
|
+
// 初始化内置 MCP Server
|
|
342
|
+
this.sumiMCPServerBackendProxy.initBuiltinMCPServer();
|
|
396
343
|
|
|
397
|
-
|
|
398
|
-
|
|
399
|
-
|
|
400
|
-
|
|
401
|
-
|
|
402
|
-
|
|
403
|
-
|
|
404
|
-
if (mcpServers && mcpServers.length > 0) {
|
|
405
|
-
const externalServers = mcpServers.filter((server) => server.name !== BUILTIN_MCP_SERVER_NAME);
|
|
406
|
-
if (externalServers.length > 0) {
|
|
407
|
-
this.sumiMCPServerBackendProxy.initExternalMCPServers(externalServers);
|
|
344
|
+
// 从 preferences 获取并初始化外部 MCP Servers
|
|
345
|
+
const mcpServers = this.preferenceService.getValid<MCPServerDescription[]>(
|
|
346
|
+
AINativeSettingSectionsId.MCPServers,
|
|
347
|
+
);
|
|
348
|
+
if (mcpServers && mcpServers.length > 0) {
|
|
349
|
+
this.sumiMCPServerBackendProxy.initExternalMCPServers(mcpServers);
|
|
350
|
+
}
|
|
408
351
|
}
|
|
409
|
-
}
|
|
410
|
-
}
|
|
411
|
-
|
|
412
|
-
private getModelByName(modelName: string) {
|
|
413
|
-
switch (modelName) {
|
|
414
|
-
case 'deepseek':
|
|
415
|
-
return deepSeekModels;
|
|
416
|
-
case 'anthropic':
|
|
417
|
-
return anthropicModels;
|
|
418
|
-
case 'openai':
|
|
419
|
-
return openAiNativeModels;
|
|
420
|
-
default:
|
|
421
|
-
return undefined;
|
|
422
|
-
}
|
|
352
|
+
});
|
|
423
353
|
}
|
|
424
354
|
|
|
425
355
|
private registerFeature() {
|
|
@@ -526,10 +456,6 @@ export class AINativeBrowserContribution
|
|
|
526
456
|
id: AINativeSettingSectionsId.LLMModelSelection,
|
|
527
457
|
localized: 'preference.ai.native.llm.model.selection',
|
|
528
458
|
},
|
|
529
|
-
{
|
|
530
|
-
id: AINativeSettingSectionsId.ModelID,
|
|
531
|
-
localized: 'preference.ai.native.llm.model.id',
|
|
532
|
-
},
|
|
533
459
|
{
|
|
534
460
|
id: AINativeSettingSectionsId.DeepseekApiKey,
|
|
535
461
|
localized: 'preference.ai.native.deepseek.apiKey',
|
|
@@ -605,10 +531,7 @@ export class AINativeBrowserContribution
|
|
|
605
531
|
id: INLINE_DIFF_MANAGER_WIDGET_ID,
|
|
606
532
|
component: InlineDiffManager,
|
|
607
533
|
displaysOnResource: (resource) => {
|
|
608
|
-
if (
|
|
609
|
-
this.aiNativeConfigService.capabilities.supportsMCP &&
|
|
610
|
-
this.applyService.getUriCodeBlocks(resource.uri)?.filter((block) => block.status === 'pending').length
|
|
611
|
-
) {
|
|
534
|
+
if (this.applyService.getUriPendingCodeBlock(resource.uri)) {
|
|
612
535
|
return true;
|
|
613
536
|
}
|
|
614
537
|
return false;
|
|
@@ -2,23 +2,21 @@ import flatMap from 'lodash/flatMap';
|
|
|
2
2
|
|
|
3
3
|
import { Autowired, Injectable } from '@opensumi/di';
|
|
4
4
|
import {
|
|
5
|
-
AIServiceType,
|
|
6
|
-
ActionSourceEnum,
|
|
7
|
-
ActionTypeEnum,
|
|
8
5
|
CancellationToken,
|
|
9
6
|
ChatFeatureRegistryToken,
|
|
10
7
|
ChatServiceToken,
|
|
11
8
|
Disposable,
|
|
12
9
|
Emitter,
|
|
13
|
-
|
|
10
|
+
IChatContent,
|
|
14
11
|
IChatProgress,
|
|
15
12
|
IDisposable,
|
|
16
13
|
ILogger,
|
|
17
14
|
toDisposable,
|
|
18
15
|
} from '@opensumi/ide-core-common';
|
|
16
|
+
import { ChatMessageRole } from '@opensumi/ide-core-common';
|
|
17
|
+
import { IChatMessage } from '@opensumi/ide-core-common/lib/types/ai-native';
|
|
19
18
|
|
|
20
19
|
import {
|
|
21
|
-
CoreMessage,
|
|
22
20
|
IChatAgent,
|
|
23
21
|
IChatAgentCommand,
|
|
24
22
|
IChatAgentMetadata,
|
|
@@ -28,8 +26,6 @@ import {
|
|
|
28
26
|
IChatFollowup,
|
|
29
27
|
IChatMessageStructure,
|
|
30
28
|
} from '../../common';
|
|
31
|
-
import { LLMContextService, LLMContextServiceToken } from '../../common/llm-context';
|
|
32
|
-
import { ChatAgentPromptProvider } from '../../common/prompts/context-prompt-provider';
|
|
33
29
|
import { IChatFeatureRegistry } from '../types';
|
|
34
30
|
|
|
35
31
|
import { ChatService } from './chat.api.service';
|
|
@@ -40,12 +36,6 @@ export class ChatAgentService extends Disposable implements IChatAgentService {
|
|
|
40
36
|
|
|
41
37
|
private defaultAgentId: string | undefined;
|
|
42
38
|
|
|
43
|
-
private initialUserMessageMap: Map<string, string> = new Map();
|
|
44
|
-
|
|
45
|
-
private shouldUpdateContext = false;
|
|
46
|
-
|
|
47
|
-
private contextVersion: number;
|
|
48
|
-
|
|
49
39
|
private readonly _onDidChangeAgents = new Emitter<void>();
|
|
50
40
|
readonly onDidChangeAgents = this._onDidChangeAgents.event;
|
|
51
41
|
|
|
@@ -55,15 +45,6 @@ export class ChatAgentService extends Disposable implements IChatAgentService {
|
|
|
55
45
|
@Autowired(ILogger)
|
|
56
46
|
logger: ILogger;
|
|
57
47
|
|
|
58
|
-
@Autowired(IAIReporter)
|
|
59
|
-
private readonly aiReporter: IAIReporter;
|
|
60
|
-
|
|
61
|
-
@Autowired(LLMContextServiceToken)
|
|
62
|
-
protected readonly contextService: LLMContextService;
|
|
63
|
-
|
|
64
|
-
@Autowired(ChatAgentPromptProvider)
|
|
65
|
-
protected readonly promptProvider: ChatAgentPromptProvider;
|
|
66
|
-
|
|
67
48
|
@Autowired(ChatServiceToken)
|
|
68
49
|
private aiChatService: ChatService;
|
|
69
50
|
|
|
@@ -73,14 +54,6 @@ export class ChatAgentService extends Disposable implements IChatAgentService {
|
|
|
73
54
|
constructor() {
|
|
74
55
|
super();
|
|
75
56
|
this.addDispose(this._onDidChangeAgents);
|
|
76
|
-
this.addDispose(
|
|
77
|
-
this.contextService.onDidContextFilesChangeEvent((event) => {
|
|
78
|
-
if (event.version !== this.contextVersion) {
|
|
79
|
-
this.contextVersion = event.version;
|
|
80
|
-
this.shouldUpdateContext = true;
|
|
81
|
-
}
|
|
82
|
-
}),
|
|
83
|
-
);
|
|
84
57
|
}
|
|
85
58
|
|
|
86
59
|
registerAgent(agent: IChatAgent): IDisposable {
|
|
@@ -140,41 +113,24 @@ export class ChatAgentService extends Disposable implements IChatAgentService {
|
|
|
140
113
|
id: string,
|
|
141
114
|
request: IChatAgentRequest,
|
|
142
115
|
progress: (part: IChatProgress) => void,
|
|
143
|
-
history:
|
|
116
|
+
history: IChatMessage[],
|
|
144
117
|
token: CancellationToken,
|
|
145
118
|
): Promise<IChatAgentResult> {
|
|
146
119
|
const data = this.agents.get(id);
|
|
147
120
|
if (!data) {
|
|
148
121
|
throw new Error(`No agent with id ${id}`);
|
|
149
122
|
}
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
request.message = this.provideContextMessage(rawMessage, request.sessionId);
|
|
156
|
-
} else if (this.shouldUpdateContext || request.regenerate || history.length === 0) {
|
|
157
|
-
request.message = this.provideContextMessage(request.message, request.sessionId);
|
|
158
|
-
this.shouldUpdateContext = false;
|
|
123
|
+
if (data.agent.metadata.systemPrompt) {
|
|
124
|
+
history.unshift({
|
|
125
|
+
role: ChatMessageRole.System,
|
|
126
|
+
content: data.agent.metadata.systemPrompt,
|
|
127
|
+
});
|
|
159
128
|
}
|
|
160
129
|
|
|
161
130
|
const result = await data.agent.invoke(request, progress, history, token);
|
|
162
131
|
return result;
|
|
163
132
|
}
|
|
164
133
|
|
|
165
|
-
private provideContextMessage(message: string, sessionId: string) {
|
|
166
|
-
const context = this.contextService.serialize();
|
|
167
|
-
const fullMessage = this.promptProvider.provideContextPrompt(context, message);
|
|
168
|
-
this.aiReporter.send({
|
|
169
|
-
msgType: AIServiceType.Chat,
|
|
170
|
-
actionType: ActionTypeEnum.ContextEnhance,
|
|
171
|
-
actionSource: ActionSourceEnum.Chat,
|
|
172
|
-
sessionId,
|
|
173
|
-
message: fullMessage,
|
|
174
|
-
});
|
|
175
|
-
return fullMessage;
|
|
176
|
-
}
|
|
177
|
-
|
|
178
134
|
populateChatInput(id: string, message: IChatMessageStructure) {
|
|
179
135
|
this.aiChatService.sendMessage({
|
|
180
136
|
...message,
|
|
@@ -6,12 +6,10 @@ import {
|
|
|
6
6
|
DisposableMap,
|
|
7
7
|
Emitter,
|
|
8
8
|
IChatProgress,
|
|
9
|
-
IChatToolContent,
|
|
10
9
|
IStorage,
|
|
11
10
|
STORAGE_NAMESPACE,
|
|
12
11
|
StorageProvider,
|
|
13
12
|
debounce,
|
|
14
|
-
formatLocalize,
|
|
15
13
|
} from '@opensumi/ide-core-common';
|
|
16
14
|
import { ChatMessageRole, IChatMessage, IHistoryChatMessage } from '@opensumi/ide-core-common/lib/types/ai-native';
|
|
17
15
|
|
|
@@ -30,15 +28,12 @@ interface ISessionModel {
|
|
|
30
28
|
isCanceled: boolean;
|
|
31
29
|
responseText: string;
|
|
32
30
|
responseContents: IChatProgressResponseContent[];
|
|
33
|
-
responseParts: IChatProgressResponseContent[];
|
|
34
31
|
errorDetails: IChatResponseErrorDetails | undefined;
|
|
35
32
|
followups: IChatFollowup[];
|
|
36
33
|
};
|
|
37
34
|
}[];
|
|
38
35
|
}
|
|
39
36
|
|
|
40
|
-
const MAX_SESSION_COUNT = 20;
|
|
41
|
-
|
|
42
37
|
@Injectable()
|
|
43
38
|
export class ChatManagerService extends Disposable {
|
|
44
39
|
#sessionModels = this.registerDispose(new DisposableMap<string, ChatModel>());
|
|
@@ -74,7 +69,6 @@ export class ChatManagerService extends Disposable {
|
|
|
74
69
|
responseContents: request.response.responseContents,
|
|
75
70
|
isComplete: true,
|
|
76
71
|
responseText: request.response.responseText,
|
|
77
|
-
responseParts: request.response.responseParts,
|
|
78
72
|
errorDetails: request.response.errorDetails,
|
|
79
73
|
followups: request.response.followups,
|
|
80
74
|
isCanceled: request.response.isCanceled,
|
|
@@ -106,9 +100,6 @@ export class ChatManagerService extends Disposable {
|
|
|
106
100
|
}
|
|
107
101
|
|
|
108
102
|
startSession() {
|
|
109
|
-
if (this.#sessionModels.size >= MAX_SESSION_COUNT) {
|
|
110
|
-
throw new Error(formatLocalize('aiNative.chat.session.max', MAX_SESSION_COUNT.toString()));
|
|
111
|
-
}
|
|
112
103
|
const model = new ChatModel();
|
|
113
104
|
this.#sessionModels.set(model.sessionId, model);
|
|
114
105
|
this.listenSession(model);
|
|
@@ -156,7 +147,14 @@ export class ChatManagerService extends Disposable {
|
|
|
156
147
|
request.response.cancel();
|
|
157
148
|
});
|
|
158
149
|
|
|
159
|
-
const history =
|
|
150
|
+
const history: IChatMessage[] = [];
|
|
151
|
+
for (const request of model.requests) {
|
|
152
|
+
if (!request.response.isComplete) {
|
|
153
|
+
continue;
|
|
154
|
+
}
|
|
155
|
+
history.push({ role: ChatMessageRole.User, content: request.message.prompt });
|
|
156
|
+
history.push({ role: ChatMessageRole.Assistant, content: request.response.responseText });
|
|
157
|
+
}
|
|
160
158
|
|
|
161
159
|
try {
|
|
162
160
|
const progressCallback = (progress: IChatProgress) => {
|