@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
|
@@ -10,19 +10,37 @@ const browser_1 = require("@opensumi/ide-editor/lib/browser");
|
|
|
10
10
|
const ide_markers_1 = require("@opensumi/ide-markers");
|
|
11
11
|
const ide_monaco_1 = require("@opensumi/ide-monaco");
|
|
12
12
|
const ide_utils_1 = require("@opensumi/ide-utils");
|
|
13
|
+
const editOperation_1 = require("@opensumi/monaco-editor-core/esm/vs/editor/common/core/editOperation");
|
|
13
14
|
const common_1 = require("../../common");
|
|
14
15
|
const chat_internal_service_1 = require("../chat/chat.internal.service");
|
|
15
16
|
const inline_chat_controller_1 = require("../widget/inline-chat/inline-chat-controller");
|
|
16
17
|
const inline_diff_1 = require("../widget/inline-diff");
|
|
17
|
-
const ReadFile_1 = require("./tools/handlers/ReadFile");
|
|
18
|
-
// 提供代码块的唯一索引,迭代轮次,生成状态管理(包括取消),关联文件位置这些信息的记录,后续并行 apply 的支持
|
|
19
18
|
class BaseApplyService extends ide_core_browser_1.WithEventBus {
|
|
20
19
|
constructor() {
|
|
21
20
|
super();
|
|
22
21
|
this.onCodeBlockUpdateEmitter = new ide_utils_1.Emitter();
|
|
23
22
|
this.onCodeBlockUpdate = this.onCodeBlockUpdateEmitter.event;
|
|
23
|
+
this.activePreviewerMap = this.registerDispose(new ide_utils_1.DisposableMap());
|
|
24
|
+
this.editorListenerMap = this.registerDispose(new ide_utils_1.DisposableMap());
|
|
24
25
|
this.addDispose(this.chatInternalService.onCancelRequest(() => {
|
|
25
|
-
this.
|
|
26
|
+
const currentMessageId = this.chatInternalService.sessionModel.history.lastMessageId;
|
|
27
|
+
if (!currentMessageId) {
|
|
28
|
+
return;
|
|
29
|
+
}
|
|
30
|
+
const codeBlockMap = this.getMessageCodeBlocks(currentMessageId);
|
|
31
|
+
if (!codeBlockMap) {
|
|
32
|
+
return;
|
|
33
|
+
}
|
|
34
|
+
Object.values(codeBlockMap).forEach((blockData) => {
|
|
35
|
+
this.cancelApply(blockData);
|
|
36
|
+
});
|
|
37
|
+
}));
|
|
38
|
+
this.currentSessionId = this.chatInternalService.sessionModel.sessionId;
|
|
39
|
+
this.addDispose(this.chatInternalService.onChangeSession((sessionId) => {
|
|
40
|
+
if (sessionId !== this.currentSessionId) {
|
|
41
|
+
this.cancelAllApply();
|
|
42
|
+
this.currentSessionId = sessionId;
|
|
43
|
+
}
|
|
26
44
|
}));
|
|
27
45
|
this.addDispose(this.chatInternalService.onRegenerateRequest(() => {
|
|
28
46
|
const messages = this.chatInternalService.sessionModel.history.getMessages();
|
|
@@ -35,6 +53,9 @@ class BaseApplyService extends ide_core_browser_1.WithEventBus {
|
|
|
35
53
|
this.cancelApply(blockData);
|
|
36
54
|
});
|
|
37
55
|
}));
|
|
56
|
+
this.addDispose(this.chatInternalService.onWillClearSession((sessionId) => {
|
|
57
|
+
this.cancelAllApply(sessionId);
|
|
58
|
+
}));
|
|
38
59
|
}
|
|
39
60
|
getMessageCodeBlocks(messageId, sessionId) {
|
|
40
61
|
sessionId = sessionId || this.chatInternalService.sessionModel.sessionId;
|
|
@@ -46,35 +67,65 @@ class BaseApplyService extends ide_core_browser_1.WithEventBus {
|
|
|
46
67
|
return message === null || message === void 0 ? void 0 : message.codeBlockMap;
|
|
47
68
|
}
|
|
48
69
|
onEditorGroupClose(event) {
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
this.
|
|
70
|
+
const relativePath = ide_utils_1.path.relative(this.appConfig.workspaceDir, event.payload.resource.uri.path.toString());
|
|
71
|
+
const activePreviewer = this.activePreviewerMap.get(relativePath);
|
|
72
|
+
if (activePreviewer) {
|
|
73
|
+
this.activePreviewerMap.disposeKey(relativePath);
|
|
53
74
|
}
|
|
75
|
+
this.editorListenerMap.disposeKey(event.payload.resource.uri.toString());
|
|
54
76
|
}
|
|
55
77
|
async onEditorGroupOpen(event) {
|
|
56
|
-
|
|
78
|
+
var _a;
|
|
79
|
+
const relativePath = ide_utils_1.path.relative(this.appConfig.workspaceDir, event.payload.resource.uri.path.toString());
|
|
80
|
+
if (this.duringApply ||
|
|
81
|
+
this.activePreviewerMap.has(relativePath) ||
|
|
82
|
+
!this.chatInternalService.sessionModel.history.getMessages().length) {
|
|
57
83
|
return;
|
|
58
84
|
}
|
|
59
|
-
const
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
this.renderApplyResult(filePendingApplies[0], filePendingApplies[0].updatedCode);
|
|
85
|
+
const filePendingApplies = ((_a = this.getUriCodeBlocks(event.payload.resource.uri)) === null || _a === void 0 ? void 0 : _a.filter((block) => block.status === 'pending')) || [];
|
|
86
|
+
// 使用最后一个版本内容渲染 apply 内容
|
|
87
|
+
if (filePendingApplies.length > 0 && filePendingApplies[0].updatedCode) {
|
|
88
|
+
const editor = event.payload.group.codeEditor.monacoEditor;
|
|
89
|
+
this.renderApplyResult(editor, filePendingApplies[0], filePendingApplies[0].updatedCode);
|
|
65
90
|
}
|
|
66
91
|
}
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
92
|
+
get currentPreviewer() {
|
|
93
|
+
var _a;
|
|
94
|
+
const currentUri = (_a = this.editorService.currentEditor) === null || _a === void 0 ? void 0 : _a.currentUri;
|
|
95
|
+
if (!currentUri) {
|
|
70
96
|
return undefined;
|
|
71
97
|
}
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
98
|
+
return this.activePreviewerMap.get(ide_utils_1.path.relative(this.appConfig.workspaceDir, currentUri.path.toString()));
|
|
99
|
+
}
|
|
100
|
+
/**
|
|
101
|
+
* 获取指定uri的 code block,按version降序排序
|
|
102
|
+
*/
|
|
103
|
+
getUriCodeBlocks(uri) {
|
|
104
|
+
const sessionCodeBlocks = this.getSessionCodeBlocks();
|
|
105
|
+
const relativePath = ide_utils_1.path.relative(this.appConfig.workspaceDir, uri.path.toString());
|
|
106
|
+
return sessionCodeBlocks
|
|
107
|
+
.filter((block) => block.relativePath === relativePath)
|
|
108
|
+
.sort((a, b) => b.version - a.version);
|
|
109
|
+
}
|
|
110
|
+
getPendingPaths(sessionId) {
|
|
111
|
+
const sessionCodeBlocks = this.getSessionCodeBlocks(sessionId);
|
|
112
|
+
return sessionCodeBlocks.filter((block) => block.status === 'pending').map((block) => block.relativePath);
|
|
113
|
+
}
|
|
114
|
+
getSessionCodeBlocks(sessionId) {
|
|
115
|
+
sessionId = sessionId || this.chatInternalService.sessionModel.sessionId;
|
|
116
|
+
const sessionModel = this.chatInternalService.getSession(sessionId);
|
|
117
|
+
if (!sessionModel) {
|
|
118
|
+
throw new Error(`Session ${sessionId} not found`);
|
|
75
119
|
}
|
|
76
|
-
|
|
77
|
-
|
|
120
|
+
const sessionAdditionals = sessionModel.history.sessionAdditionals;
|
|
121
|
+
return Array.from(sessionAdditionals.values())
|
|
122
|
+
.map((additional) => (additional.codeBlockMap || {}))
|
|
123
|
+
.reduce((acc, cur) => {
|
|
124
|
+
Object.values(cur).forEach((block) => {
|
|
125
|
+
acc.push(block);
|
|
126
|
+
});
|
|
127
|
+
return acc;
|
|
128
|
+
}, []);
|
|
78
129
|
}
|
|
79
130
|
getCodeBlock(toolCallId, messageId) {
|
|
80
131
|
messageId = messageId || this.chatInternalService.sessionModel.history.lastMessageId;
|
|
@@ -87,11 +138,8 @@ class BaseApplyService extends ide_core_browser_1.WithEventBus {
|
|
|
87
138
|
}
|
|
88
139
|
return codeBlockMap[toolCallId];
|
|
89
140
|
}
|
|
90
|
-
updateCodeBlock(codeBlock
|
|
91
|
-
messageId = messageId
|
|
92
|
-
if (!messageId) {
|
|
93
|
-
throw new Error('Message ID is required');
|
|
94
|
-
}
|
|
141
|
+
updateCodeBlock(codeBlock) {
|
|
142
|
+
const messageId = codeBlock.messageId;
|
|
95
143
|
const codeBlockMap = this.getMessageCodeBlocks(messageId);
|
|
96
144
|
if (!codeBlockMap) {
|
|
97
145
|
throw new Error('Code block not found');
|
|
@@ -102,10 +150,11 @@ class BaseApplyService extends ide_core_browser_1.WithEventBus {
|
|
|
102
150
|
});
|
|
103
151
|
this.onCodeBlockUpdateEmitter.fire(codeBlock);
|
|
104
152
|
}
|
|
105
|
-
registerCodeBlock(relativePath, content, toolCallId) {
|
|
153
|
+
async registerCodeBlock(relativePath, content, toolCallId) {
|
|
106
154
|
var _a, _b;
|
|
107
155
|
const lastMessageId = this.chatInternalService.sessionModel.history.lastMessageId;
|
|
108
|
-
const
|
|
156
|
+
const uriCodeBlocks = this.getUriCodeBlocks(ide_utils_1.URI.file(ide_utils_1.path.join(this.appConfig.workspaceDir, relativePath)));
|
|
157
|
+
const originalModelRef = await this.editorDocumentModelService.createModelReference(ide_utils_1.URI.file(ide_utils_1.path.join(this.appConfig.workspaceDir, relativePath)));
|
|
109
158
|
const newBlock = {
|
|
110
159
|
codeEdit: content,
|
|
111
160
|
relativePath,
|
|
@@ -114,11 +163,13 @@ class BaseApplyService extends ide_core_browser_1.WithEventBus {
|
|
|
114
163
|
version: 1,
|
|
115
164
|
createdAt: Date.now(),
|
|
116
165
|
toolCallId,
|
|
166
|
+
messageId: lastMessageId,
|
|
167
|
+
// TODO: 支持range
|
|
168
|
+
originalCode: originalModelRef.instance.getText(),
|
|
117
169
|
};
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
for (const block of samePathCodeBlocks.sort((a, b) => b.version - a.version)) {
|
|
170
|
+
if (uriCodeBlocks === null || uriCodeBlocks === void 0 ? void 0 : uriCodeBlocks.length) {
|
|
171
|
+
newBlock.version = uriCodeBlocks.length;
|
|
172
|
+
for (const block of uriCodeBlocks) {
|
|
122
173
|
// 如果连续的上一个同文件apply结果存在LintError,则iterationCount++
|
|
123
174
|
if (block.relativePath === relativePath && ((_b = (_a = block.applyResult) === null || _a === void 0 ? void 0 : _a.diagnosticInfos) === null || _b === void 0 ? void 0 : _b.length)) {
|
|
124
175
|
newBlock.iterationCount++;
|
|
@@ -128,6 +179,7 @@ class BaseApplyService extends ide_core_browser_1.WithEventBus {
|
|
|
128
179
|
}
|
|
129
180
|
}
|
|
130
181
|
}
|
|
182
|
+
const savedCodeBlockMap = this.getMessageCodeBlocks(lastMessageId) || {};
|
|
131
183
|
savedCodeBlockMap[toolCallId] = newBlock;
|
|
132
184
|
this.chatInternalService.sessionModel.history.setMessageAdditional(lastMessageId, {
|
|
133
185
|
codeBlockMap: savedCodeBlockMap,
|
|
@@ -140,15 +192,34 @@ class BaseApplyService extends ide_core_browser_1.WithEventBus {
|
|
|
140
192
|
*/
|
|
141
193
|
async apply(codeBlock) {
|
|
142
194
|
try {
|
|
195
|
+
this.duringApply = true;
|
|
143
196
|
if (codeBlock.iterationCount > 3) {
|
|
144
197
|
throw new Error('Lint error max iteration count exceeded');
|
|
145
198
|
}
|
|
146
|
-
|
|
199
|
+
// 新建文件场景,直接返回codeEdit
|
|
200
|
+
const fastApplyFileResult = !codeBlock.originalCode
|
|
201
|
+
? {
|
|
202
|
+
result: codeBlock.codeEdit,
|
|
203
|
+
}
|
|
204
|
+
: await this.doApply(codeBlock);
|
|
147
205
|
if (!fastApplyFileResult.stream && !fastApplyFileResult.result) {
|
|
148
206
|
throw new Error('No apply content provided');
|
|
149
207
|
}
|
|
208
|
+
if (this.activePreviewerMap.has(codeBlock.relativePath)) {
|
|
209
|
+
// 有正在进行的 apply,则取消(但不更新block状态,只清理副作用)
|
|
210
|
+
this.cancelApply(codeBlock, true);
|
|
211
|
+
}
|
|
150
212
|
// trigger diffPreivewer & return expected diff result directly
|
|
151
|
-
const
|
|
213
|
+
const result = await this.editorService.open(ide_utils_1.URI.file(ide_utils_1.path.join(this.appConfig.workspaceDir, codeBlock.relativePath)));
|
|
214
|
+
if (!result) {
|
|
215
|
+
throw new Error('Failed to open file');
|
|
216
|
+
}
|
|
217
|
+
if (typeof fastApplyFileResult.result === 'string') {
|
|
218
|
+
codeBlock.updatedCode = fastApplyFileResult.result;
|
|
219
|
+
codeBlock.status = 'pending';
|
|
220
|
+
this.updateCodeBlock(codeBlock);
|
|
221
|
+
}
|
|
222
|
+
const applyResult = await this.renderApplyResult(result.group.codeEditor.monacoEditor, codeBlock, (fastApplyFileResult.result || fastApplyFileResult.stream), fastApplyFileResult.range);
|
|
152
223
|
if (applyResult) {
|
|
153
224
|
// 用户实际接受的 apply 结果
|
|
154
225
|
codeBlock.applyResult = applyResult;
|
|
@@ -161,39 +232,60 @@ class BaseApplyService extends ide_core_browser_1.WithEventBus {
|
|
|
161
232
|
this.updateCodeBlock(codeBlock);
|
|
162
233
|
throw err;
|
|
163
234
|
}
|
|
164
|
-
|
|
165
|
-
|
|
166
|
-
var _a;
|
|
167
|
-
const { relativePath } = codeBlock;
|
|
168
|
-
const openResult = await this.editorService.open(ide_utils_1.URI.file(ide_utils_1.path.join(this.appConfig.workspaceDir, relativePath)));
|
|
169
|
-
if (!openResult) {
|
|
170
|
-
throw new Error('Failed to open editor');
|
|
235
|
+
finally {
|
|
236
|
+
this.duringApply = false;
|
|
171
237
|
}
|
|
172
|
-
|
|
238
|
+
}
|
|
239
|
+
async renderApplyResult(editor, codeBlock, updatedContentOrStream, range) {
|
|
240
|
+
var _a, _b;
|
|
241
|
+
const deferred = new ide_utils_1.Deferred();
|
|
173
242
|
const inlineDiffController = inline_diff_1.InlineDiffController.get(editor);
|
|
174
|
-
|
|
175
|
-
// 强刷展示 manager 视图
|
|
176
|
-
this.eventBus.fire(new browser_1.RegisterEditorSideComponentEvent());
|
|
177
|
-
this.updateCodeBlock(codeBlock);
|
|
178
|
-
const fullOriginalContent = editor.getModel().getValue();
|
|
179
|
-
range = range || ((_a = editor.getModel()) === null || _a === void 0 ? void 0 : _a.getFullModelRange());
|
|
180
|
-
// const savedRangeContent = editor.getModel()!.getValueInRange(range);
|
|
243
|
+
range = range || editor.getModel().getFullModelRange();
|
|
181
244
|
if (typeof updatedContentOrStream === 'string') {
|
|
245
|
+
const editorCurrentContent = editor.getModel().getValue();
|
|
246
|
+
const uri = ide_utils_1.URI.file(ide_utils_1.path.join(this.appConfig.workspaceDir, codeBlock.relativePath));
|
|
247
|
+
const document = this.editorDocumentModelService.getModelReference(uri);
|
|
248
|
+
if (editorCurrentContent !== updatedContentOrStream || (document === null || document === void 0 ? void 0 : document.instance.dirty)) {
|
|
249
|
+
(_a = editor.getModel()) === null || _a === void 0 ? void 0 : _a.pushEditOperations([], [editOperation_1.EditOperation.replace(range, updatedContentOrStream)], () => null);
|
|
250
|
+
await this.editorService.save(uri);
|
|
251
|
+
}
|
|
252
|
+
const uriPendingCodeBlocks = (_b = this.getUriCodeBlocks(uri)) === null || _b === void 0 ? void 0 : _b.filter((block) => block.status === 'pending');
|
|
253
|
+
const earlistPendingCodeBlock = uriPendingCodeBlocks === null || uriPendingCodeBlocks === void 0 ? void 0 : uriPendingCodeBlocks[uriPendingCodeBlocks.length - 1];
|
|
254
|
+
if (((earlistPendingCodeBlock === null || earlistPendingCodeBlock === void 0 ? void 0 : earlistPendingCodeBlock.originalCode) || codeBlock.originalCode) === updatedContentOrStream) {
|
|
255
|
+
codeBlock.status = 'cancelled';
|
|
256
|
+
this.updateCodeBlock(codeBlock);
|
|
257
|
+
deferred.resolve();
|
|
258
|
+
return;
|
|
259
|
+
}
|
|
182
260
|
// Create diff previewer
|
|
183
261
|
const previewer = inlineDiffController.createDiffPreviewer(editor, ide_monaco_1.Selection.fromRange(range, ide_monaco_1.SelectionDirection.LTR), {
|
|
184
262
|
disposeWhenEditorClosed: true,
|
|
185
263
|
renderRemovedWidgetImmediately: true,
|
|
264
|
+
reverse: true,
|
|
265
|
+
});
|
|
266
|
+
this.activePreviewerMap.set(codeBlock.relativePath, previewer);
|
|
267
|
+
// 新建文件场景,为避免model为空,加一个空行
|
|
268
|
+
previewer.setValue((earlistPendingCodeBlock === null || earlistPendingCodeBlock === void 0 ? void 0 : earlistPendingCodeBlock.originalCode) || codeBlock.originalCode || '\n');
|
|
269
|
+
// 强刷展示 manager 视图
|
|
270
|
+
this.eventBus.fire(new browser_1.RegisterEditorSideComponentEvent());
|
|
271
|
+
this.listenPartialEdit(editor.getModel(), codeBlock).then((result) => {
|
|
272
|
+
if (result) {
|
|
273
|
+
codeBlock.applyResult = result;
|
|
274
|
+
}
|
|
275
|
+
this.updateCodeBlock(codeBlock);
|
|
276
|
+
this.editorService.save(ide_utils_1.URI.file(ide_utils_1.path.join(this.appConfig.workspaceDir, codeBlock.relativePath)));
|
|
277
|
+
});
|
|
278
|
+
const { diff, rangesFromDiffHunk } = this.getDiffResult(codeBlock.originalCode, codeBlock.updatedCode || updatedContentOrStream, codeBlock.relativePath);
|
|
279
|
+
const diagnosticInfos = this.getDiagnosticInfos(editor.getModel().uri.toString(), rangesFromDiffHunk);
|
|
280
|
+
deferred.resolve({
|
|
281
|
+
diff,
|
|
282
|
+
diagnosticInfos,
|
|
186
283
|
});
|
|
187
|
-
// TODO: 支持多个diffPreviewer
|
|
188
|
-
this.activePreviewer = previewer;
|
|
189
|
-
codeBlock.updatedCode = updatedContentOrStream;
|
|
190
|
-
previewer.setValue(updatedContentOrStream);
|
|
191
284
|
}
|
|
192
285
|
else {
|
|
193
286
|
const controller = new inline_chat_controller_1.InlineChatController();
|
|
194
287
|
controller.mountReadable(updatedContentOrStream);
|
|
195
|
-
const
|
|
196
|
-
this.activePreviewer = inlineDiffHandler.showPreviewerByStream(editor, {
|
|
288
|
+
const previewer = inlineDiffController.showPreviewerByStream(editor, {
|
|
197
289
|
crossSelection: ide_monaco_1.Selection.fromRange(range, ide_monaco_1.SelectionDirection.LTR),
|
|
198
290
|
chatResponse: controller,
|
|
199
291
|
previewerOptions: {
|
|
@@ -201,35 +293,57 @@ class BaseApplyService extends ide_core_browser_1.WithEventBus {
|
|
|
201
293
|
renderRemovedWidgetImmediately: false,
|
|
202
294
|
},
|
|
203
295
|
});
|
|
204
|
-
this.addDispose(
|
|
296
|
+
this.addDispose(controller.onError((err) => {
|
|
297
|
+
deferred.reject(err);
|
|
298
|
+
}));
|
|
299
|
+
this.addDispose(controller.onAbort(() => {
|
|
300
|
+
deferred.reject(new Error('Apply aborted'));
|
|
301
|
+
}));
|
|
302
|
+
this.addDispose(
|
|
303
|
+
// 流式输出结束后,转为直接输出逻辑
|
|
304
|
+
previewer.getNode().onDiffFinished(async (diffModel) => {
|
|
205
305
|
codeBlock.updatedCode = diffModel.newFullRangeTextLines.join('\n');
|
|
306
|
+
// TODO: 添加 reapply
|
|
307
|
+
// 实际应用结果为空,则取消
|
|
308
|
+
if (codeBlock.updatedCode === codeBlock.originalCode) {
|
|
309
|
+
codeBlock.status = 'failed';
|
|
310
|
+
this.updateCodeBlock(codeBlock);
|
|
311
|
+
previewer.dispose();
|
|
312
|
+
deferred.reject(new Error('no changes applied'));
|
|
313
|
+
return;
|
|
314
|
+
}
|
|
315
|
+
codeBlock.status = 'pending';
|
|
206
316
|
this.updateCodeBlock(codeBlock);
|
|
317
|
+
previewer.dispose();
|
|
318
|
+
const result = await this.renderApplyResult(editor, codeBlock, codeBlock.updatedCode);
|
|
319
|
+
deferred.resolve(result);
|
|
207
320
|
}));
|
|
321
|
+
this.activePreviewerMap.set(codeBlock.relativePath, previewer);
|
|
208
322
|
}
|
|
209
|
-
return
|
|
323
|
+
return deferred.promise;
|
|
210
324
|
}
|
|
211
325
|
/**
|
|
212
326
|
* Cancel an ongoing apply operation
|
|
213
327
|
*/
|
|
214
|
-
cancelApply(blockData) {
|
|
215
|
-
var _a;
|
|
328
|
+
cancelApply(blockData, keepStatus) {
|
|
329
|
+
var _a, _b;
|
|
216
330
|
if (blockData.status === 'generating' || blockData.status === 'pending') {
|
|
217
|
-
|
|
218
|
-
|
|
219
|
-
|
|
331
|
+
// 先取消掉相关的监听器
|
|
332
|
+
this.editorListenerMap.disposeKey(ide_utils_1.URI.file(ide_utils_1.path.join(this.appConfig.workspaceDir, blockData.relativePath)).toString());
|
|
333
|
+
if (this.activePreviewerMap.has(blockData.relativePath)) {
|
|
334
|
+
(_b = (_a = this.activePreviewerMap
|
|
335
|
+
.get(blockData.relativePath)) === null || _a === void 0 ? void 0 : _a.getNode()) === null || _b === void 0 ? void 0 : _b.livePreviewDiffDecorationModel.discardUnProcessed();
|
|
336
|
+
this.activePreviewerMap.disposeKey(blockData.relativePath);
|
|
337
|
+
}
|
|
338
|
+
if (!keepStatus) {
|
|
339
|
+
blockData.status = 'cancelled';
|
|
340
|
+
this.updateCodeBlock(blockData);
|
|
220
341
|
}
|
|
221
|
-
blockData.status = 'cancelled';
|
|
222
|
-
this.updateCodeBlock(blockData);
|
|
223
342
|
}
|
|
224
343
|
}
|
|
225
|
-
|
|
226
|
-
|
|
227
|
-
|
|
228
|
-
const codeBlockMap = this.getMessageCodeBlocks(messageId);
|
|
229
|
-
if (!codeBlockMap) {
|
|
230
|
-
return;
|
|
231
|
-
}
|
|
232
|
-
Object.values(codeBlockMap).forEach((blockData) => {
|
|
344
|
+
cancelAllApply(sessionId) {
|
|
345
|
+
const sessionCodeBlocks = this.getSessionCodeBlocks(sessionId);
|
|
346
|
+
sessionCodeBlocks.forEach((blockData) => {
|
|
233
347
|
this.cancelApply(blockData);
|
|
234
348
|
});
|
|
235
349
|
}
|
|
@@ -251,12 +365,13 @@ class BaseApplyService extends ide_core_browser_1.WithEventBus {
|
|
|
251
365
|
}
|
|
252
366
|
}
|
|
253
367
|
processAll(uri, type) {
|
|
254
|
-
var _a, _b;
|
|
255
|
-
const
|
|
256
|
-
if (!
|
|
368
|
+
var _a, _b, _c;
|
|
369
|
+
const codeBlocks = (_a = this.getUriCodeBlocks(uri)) === null || _a === void 0 ? void 0 : _a.filter((block) => block.status === 'pending');
|
|
370
|
+
if (!(codeBlocks === null || codeBlocks === void 0 ? void 0 : codeBlocks.length)) {
|
|
257
371
|
throw new Error('No pending code block found');
|
|
258
372
|
}
|
|
259
|
-
const decorationModel = (
|
|
373
|
+
const decorationModel = (_c = (_b = this.activePreviewerMap
|
|
374
|
+
.get(codeBlocks[0].relativePath)) === null || _b === void 0 ? void 0 : _b.getNode()) === null || _c === void 0 ? void 0 : _c.livePreviewDiffDecorationModel;
|
|
260
375
|
if (!decorationModel) {
|
|
261
376
|
throw new Error('No active previewer found');
|
|
262
377
|
}
|
|
@@ -267,35 +382,40 @@ class BaseApplyService extends ide_core_browser_1.WithEventBus {
|
|
|
267
382
|
decorationModel.discardUnProcessed();
|
|
268
383
|
}
|
|
269
384
|
this.editorService.save(uri);
|
|
270
|
-
codeBlock
|
|
271
|
-
|
|
385
|
+
codeBlocks.forEach((codeBlock) => {
|
|
386
|
+
codeBlock.status = type === 'accept' ? 'success' : 'cancelled';
|
|
387
|
+
// TODO: 批量更新
|
|
388
|
+
this.updateCodeBlock(codeBlock);
|
|
389
|
+
});
|
|
272
390
|
}
|
|
273
|
-
listenPartialEdit(
|
|
391
|
+
listenPartialEdit(model, codeBlock) {
|
|
274
392
|
const deferred = new ide_utils_1.Deferred();
|
|
393
|
+
const uriString = model.uri.toString();
|
|
275
394
|
const toDispose = this.inlineDiffService.onPartialEdit((event) => {
|
|
276
395
|
// TODO 支持自动保存
|
|
277
|
-
if (event.totalPartialEditCount === event.resolvedPartialEditCount
|
|
396
|
+
if (event.totalPartialEditCount === event.resolvedPartialEditCount &&
|
|
397
|
+
event.uri.path === model.uri.path.toString()) {
|
|
278
398
|
if (event.acceptPartialEditCount > 0) {
|
|
279
399
|
codeBlock.status = 'success';
|
|
280
|
-
const appliedResult =
|
|
281
|
-
const
|
|
282
|
-
|
|
283
|
-
.slice(4)
|
|
284
|
-
.join('\n');
|
|
285
|
-
const rangesFromDiffHunk = diffResult
|
|
286
|
-
.split('\n')
|
|
287
|
-
.map((line) => {
|
|
288
|
-
if (line.startsWith('@@')) {
|
|
289
|
-
const [, , , start, end] = line.match(/@@ -(\d+),(\d+) \+(\d+),(\d+) @@/);
|
|
290
|
-
return new ide_monaco_1.Range(parseInt(start, 10), 0, parseInt(end, 10), 0);
|
|
291
|
-
}
|
|
292
|
-
return null;
|
|
293
|
-
})
|
|
294
|
-
.filter((range) => range !== null);
|
|
295
|
-
const diagnosticInfos = this.getDiagnosticInfos(editor.getModel().uri.toString(), rangesFromDiffHunk);
|
|
400
|
+
const appliedResult = model.getValue();
|
|
401
|
+
const { diff, rangesFromDiffHunk } = this.getDiffResult(codeBlock.originalCode, appliedResult, codeBlock.relativePath);
|
|
402
|
+
const diagnosticInfos = this.getDiagnosticInfos(model.uri.toString(), rangesFromDiffHunk);
|
|
296
403
|
// 移除开头的几个固定信息,避免浪费 tokens
|
|
404
|
+
this.aiReporter.send({
|
|
405
|
+
msgType: ide_core_browser_1.AIServiceType.Chat,
|
|
406
|
+
actionType: ide_core_browser_1.ActionTypeEnum.Accept,
|
|
407
|
+
actionSource: ide_core_browser_1.ActionSourceEnum.Chat,
|
|
408
|
+
sessionId: this.chatInternalService.sessionModel.sessionId,
|
|
409
|
+
isReceive: true,
|
|
410
|
+
isDrop: false,
|
|
411
|
+
code: codeBlock.codeEdit,
|
|
412
|
+
message: JSON.stringify({
|
|
413
|
+
diff,
|
|
414
|
+
diagnosticInfos,
|
|
415
|
+
}),
|
|
416
|
+
});
|
|
297
417
|
deferred.resolve({
|
|
298
|
-
diff
|
|
418
|
+
diff,
|
|
299
419
|
diagnosticInfos,
|
|
300
420
|
});
|
|
301
421
|
}
|
|
@@ -303,12 +423,40 @@ class BaseApplyService extends ide_core_browser_1.WithEventBus {
|
|
|
303
423
|
// 用户全部取消
|
|
304
424
|
codeBlock.status = 'cancelled';
|
|
305
425
|
deferred.resolve();
|
|
426
|
+
this.aiReporter.send({
|
|
427
|
+
msgType: ide_core_browser_1.AIServiceType.Chat,
|
|
428
|
+
actionType: ide_core_browser_1.ActionTypeEnum.Discard,
|
|
429
|
+
actionSource: ide_core_browser_1.ActionSourceEnum.Chat,
|
|
430
|
+
sessionId: this.chatInternalService.sessionModel.sessionId,
|
|
431
|
+
isReceive: false,
|
|
432
|
+
isDrop: true,
|
|
433
|
+
code: codeBlock.codeEdit,
|
|
434
|
+
originCode: codeBlock.originalCode,
|
|
435
|
+
});
|
|
306
436
|
}
|
|
307
|
-
|
|
437
|
+
this.editorListenerMap.disposeKey(uriString);
|
|
308
438
|
}
|
|
309
439
|
});
|
|
440
|
+
this.editorListenerMap.set(uriString, toDispose);
|
|
310
441
|
return deferred.promise;
|
|
311
442
|
}
|
|
443
|
+
getDiffResult(originalContent, appliedResult, relativePath) {
|
|
444
|
+
const diffResult = (0, diff_1.createPatch)(relativePath, originalContent, appliedResult).split('\n').slice(4).join('\n');
|
|
445
|
+
const rangesFromDiffHunk = diffResult
|
|
446
|
+
.split('\n')
|
|
447
|
+
.map((line) => {
|
|
448
|
+
if (line.startsWith('@@')) {
|
|
449
|
+
const [, , , start, end] = line.match(/@@ -(\d+),(\d+) \+(\d+),(\d+) @@/);
|
|
450
|
+
return new ide_monaco_1.Range(parseInt(start, 10), 0, parseInt(end, 10), 0);
|
|
451
|
+
}
|
|
452
|
+
return null;
|
|
453
|
+
})
|
|
454
|
+
.filter((range) => range !== null);
|
|
455
|
+
return {
|
|
456
|
+
diff: diffResult,
|
|
457
|
+
rangesFromDiffHunk,
|
|
458
|
+
};
|
|
459
|
+
}
|
|
312
460
|
// TODO: 支持使用内存中的document获取诊断信息,实现并行apply accept
|
|
313
461
|
getDiagnosticInfos(uri, ranges) {
|
|
314
462
|
const markers = this.markerService.getManager().getMarkers({ resource: uri });
|
|
@@ -317,10 +465,6 @@ class BaseApplyService extends ide_core_browser_1.WithEventBus {
|
|
|
317
465
|
}
|
|
318
466
|
}
|
|
319
467
|
exports.BaseApplyService = BaseApplyService;
|
|
320
|
-
tslib_1.__decorate([
|
|
321
|
-
(0, di_1.Autowired)(ReadFile_1.FileHandler),
|
|
322
|
-
tslib_1.__metadata("design:type", ReadFile_1.FileHandler)
|
|
323
|
-
], BaseApplyService.prototype, "fileHandler", void 0);
|
|
324
468
|
tslib_1.__decorate([
|
|
325
469
|
(0, di_1.Autowired)(common_1.IChatInternalService),
|
|
326
470
|
tslib_1.__metadata("design:type", chat_internal_service_1.ChatInternalService)
|
|
@@ -341,6 +485,14 @@ tslib_1.__decorate([
|
|
|
341
485
|
(0, di_1.Autowired)(ide_markers_1.IMarkerService),
|
|
342
486
|
tslib_1.__metadata("design:type", Object)
|
|
343
487
|
], BaseApplyService.prototype, "markerService", void 0);
|
|
488
|
+
tslib_1.__decorate([
|
|
489
|
+
(0, di_1.Autowired)(browser_1.IEditorDocumentModelService),
|
|
490
|
+
tslib_1.__metadata("design:type", Object)
|
|
491
|
+
], BaseApplyService.prototype, "editorDocumentModelService", void 0);
|
|
492
|
+
tslib_1.__decorate([
|
|
493
|
+
(0, di_1.Autowired)(ide_core_browser_1.IAIReporter),
|
|
494
|
+
tslib_1.__metadata("design:type", Object)
|
|
495
|
+
], BaseApplyService.prototype, "aiReporter", void 0);
|
|
344
496
|
tslib_1.__decorate([
|
|
345
497
|
(0, ide_core_browser_1.OnEvent)(browser_1.EditorGroupCloseEvent),
|
|
346
498
|
tslib_1.__metadata("design:type", Function),
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"base-apply.service.js","sourceRoot":"","sources":["../../../src/browser/mcp/base-apply.service.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"base-apply.service.js","sourceRoot":"","sources":["../../../src/browser/mcp/base-apply.service.ts"],"names":[],"mappings":"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"}
|