@opensumi/ide-ai-native 3.7.2-next-1740450374.0 → 3.7.2-next-1741226843.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 +0 -1
- package/lib/browser/ai-core.contextkeys.d.ts.map +1 -1
- package/lib/browser/ai-core.contextkeys.js +0 -1
- package/lib/browser/ai-core.contextkeys.js.map +1 -1
- package/lib/browser/ai-core.contribution.d.ts +2 -8
- package/lib/browser/ai-core.contribution.d.ts.map +1 -1
- package/lib/browser/ai-core.contribution.js +20 -149
- package/lib/browser/ai-core.contribution.js.map +1 -1
- package/lib/browser/chat/chat-agent.service.d.ts.map +1 -1
- package/lib/browser/chat/chat-agent.service.js +0 -6
- package/lib/browser/chat/chat-agent.service.js.map +1 -1
- package/lib/browser/chat/chat-manager.service.d.ts +2 -30
- package/lib/browser/chat/chat-manager.service.d.ts.map +1 -1
- package/lib/browser/chat/chat-manager.service.js +1 -45
- package/lib/browser/chat/chat-manager.service.js.map +1 -1
- package/lib/browser/chat/chat-model.d.ts +7 -34
- package/lib/browser/chat/chat-model.d.ts.map +1 -1
- package/lib/browser/chat/chat-model.js +57 -71
- package/lib/browser/chat/chat-model.js.map +1 -1
- package/lib/browser/chat/chat-proxy.service.d.ts +1 -6
- package/lib/browser/chat/chat-proxy.service.d.ts.map +1 -1
- package/lib/browser/chat/chat-proxy.service.js +3 -54
- package/lib/browser/chat/chat-proxy.service.js.map +1 -1
- package/lib/browser/chat/chat.api.service.d.ts +1 -1
- package/lib/browser/chat/chat.api.service.d.ts.map +1 -1
- package/lib/browser/chat/chat.api.service.js +2 -2
- package/lib/browser/chat/chat.api.service.js.map +1 -1
- package/lib/browser/chat/chat.internal.service.d.ts +2 -8
- package/lib/browser/chat/chat.internal.service.d.ts.map +1 -1
- package/lib/browser/chat/chat.internal.service.js +13 -41
- package/lib/browser/chat/chat.internal.service.js.map +1 -1
- package/lib/browser/chat/chat.module.less +41 -17
- package/lib/browser/chat/chat.view.d.ts.map +1 -1
- package/lib/browser/chat/chat.view.js +14 -102
- package/lib/browser/chat/chat.view.js.map +1 -1
- package/lib/browser/components/ChatEditor.d.ts +0 -1
- package/lib/browser/components/ChatEditor.d.ts.map +1 -1
- package/lib/browser/components/ChatEditor.js +3 -3
- package/lib/browser/components/ChatEditor.js.map +1 -1
- package/lib/browser/components/ChatInput.d.ts.map +1 -1
- package/lib/browser/components/ChatInput.js.map +1 -1
- package/lib/browser/components/ChatMarkdown.d.ts +0 -1
- package/lib/browser/components/ChatMarkdown.d.ts.map +1 -1
- package/lib/browser/components/ChatMarkdown.js +2 -2
- package/lib/browser/components/ChatMarkdown.js.map +1 -1
- package/lib/browser/components/ChatReply.d.ts.map +1 -1
- package/lib/browser/components/ChatReply.js +4 -29
- package/lib/browser/components/ChatReply.js.map +1 -1
- package/lib/browser/components/ChatThinking.js +1 -1
- package/lib/browser/components/ChatThinking.js.map +1 -1
- package/lib/browser/components/WelcomeMsg.js.map +1 -1
- package/lib/browser/components/components.module.less +31 -33
- package/lib/browser/components/utils.d.ts +2 -2
- package/lib/browser/contrib/intelligent-completions/index.d.ts +9 -16
- package/lib/browser/contrib/intelligent-completions/index.d.ts.map +1 -1
- package/lib/browser/contrib/intelligent-completions/index.js +1 -6
- package/lib/browser/contrib/intelligent-completions/index.js.map +1 -1
- package/lib/browser/contrib/intelligent-completions/intelligent-completions.contribution.d.ts +0 -1
- package/lib/browser/contrib/intelligent-completions/intelligent-completions.contribution.d.ts.map +1 -1
- package/lib/browser/contrib/intelligent-completions/intelligent-completions.contribution.js +4 -26
- package/lib/browser/contrib/intelligent-completions/intelligent-completions.contribution.js.map +1 -1
- package/lib/browser/contrib/intelligent-completions/intelligent-completions.controller.d.ts +5 -5
- package/lib/browser/contrib/intelligent-completions/intelligent-completions.controller.d.ts.map +1 -1
- package/lib/browser/contrib/intelligent-completions/intelligent-completions.controller.js +48 -59
- package/lib/browser/contrib/intelligent-completions/intelligent-completions.controller.js.map +1 -1
- package/lib/browser/contrib/intelligent-completions/intelligent-completions.feature.registry.d.ts +0 -4
- package/lib/browser/contrib/intelligent-completions/intelligent-completions.feature.registry.d.ts.map +1 -1
- package/lib/browser/contrib/intelligent-completions/intelligent-completions.feature.registry.js +0 -7
- package/lib/browser/contrib/intelligent-completions/intelligent-completions.feature.registry.js.map +1 -1
- package/lib/browser/contrib/intelligent-completions/source/base.d.ts +5 -14
- package/lib/browser/contrib/intelligent-completions/source/base.d.ts.map +1 -1
- package/lib/browser/contrib/intelligent-completions/source/base.js +8 -29
- package/lib/browser/contrib/intelligent-completions/source/base.js.map +1 -1
- package/lib/browser/contrib/intelligent-completions/source/line-change.source.d.ts +3 -10
- package/lib/browser/contrib/intelligent-completions/source/line-change.source.d.ts.map +1 -1
- package/lib/browser/contrib/intelligent-completions/source/line-change.source.js +22 -95
- package/lib/browser/contrib/intelligent-completions/source/line-change.source.js.map +1 -1
- package/lib/browser/contrib/intelligent-completions/source/lint-error.source.d.ts +3 -1
- package/lib/browser/contrib/intelligent-completions/source/lint-error.source.d.ts.map +1 -1
- package/lib/browser/contrib/intelligent-completions/source/lint-error.source.js +20 -13
- package/lib/browser/contrib/intelligent-completions/source/lint-error.source.js.map +1 -1
- package/lib/browser/contrib/terminal/component/terminal-command-suggest-controller.js +2 -2
- package/lib/browser/contrib/terminal/component/terminal-command-suggest-controller.js.map +1 -1
- package/lib/browser/index.d.ts +3 -11
- package/lib/browser/index.d.ts.map +1 -1
- package/lib/browser/index.js +4 -56
- package/lib/browser/index.js.map +1 -1
- package/lib/browser/languages/tree-sitter/wasm-manager.d.ts.map +1 -1
- package/lib/browser/languages/tree-sitter/wasm-manager.js +2 -14
- package/lib/browser/languages/tree-sitter/wasm-manager.js.map +1 -1
- package/lib/browser/layout/ai-layout.d.ts.map +1 -1
- package/lib/browser/layout/ai-layout.js +2 -2
- package/lib/browser/layout/ai-layout.js.map +1 -1
- package/lib/browser/layout/layout.module.less +9 -9
- package/lib/browser/layout/tabbar.view.d.ts.map +1 -1
- package/lib/browser/layout/tabbar.view.js +6 -5
- package/lib/browser/layout/tabbar.view.js.map +1 -1
- package/lib/browser/model/enhanceDecorationsCollection.d.ts +10 -14
- package/lib/browser/model/enhanceDecorationsCollection.d.ts.map +1 -1
- package/lib/browser/model/enhanceDecorationsCollection.js +53 -42
- package/lib/browser/model/enhanceDecorationsCollection.js.map +1 -1
- package/lib/browser/model/msg-history-manager.d.ts +1 -20
- package/lib/browser/model/msg-history-manager.d.ts.map +1 -1
- package/lib/browser/model/msg-history-manager.js +10 -46
- package/lib/browser/model/msg-history-manager.js.map +1 -1
- package/lib/browser/model/styles.module.less +7 -0
- package/lib/browser/preferences/schema.d.ts.map +1 -1
- package/lib/browser/preferences/schema.js +0 -69
- package/lib/browser/preferences/schema.js.map +1 -1
- package/lib/browser/types.d.ts +4 -74
- package/lib/browser/types.d.ts.map +1 -1
- package/lib/browser/types.js +1 -4
- package/lib/browser/types.js.map +1 -1
- package/lib/browser/widget/inline-chat/inline-chat-editor.controller.d.ts +1 -2
- package/lib/browser/widget/inline-chat/inline-chat-editor.controller.d.ts.map +1 -1
- package/lib/browser/widget/inline-chat/inline-chat-editor.controller.js +49 -21
- package/lib/browser/widget/inline-chat/inline-chat-editor.controller.js.map +1 -1
- package/lib/browser/widget/inline-chat/inline-chat.feature.registry.d.ts +13 -3
- package/lib/browser/widget/inline-chat/inline-chat.feature.registry.d.ts.map +1 -1
- package/lib/browser/widget/inline-chat/inline-chat.feature.registry.js +72 -24
- package/lib/browser/widget/inline-chat/inline-chat.feature.registry.js.map +1 -1
- package/lib/browser/widget/inline-chat/inline-chat.service.d.ts +6 -1
- package/lib/browser/widget/inline-chat/inline-chat.service.d.ts.map +1 -1
- package/lib/browser/widget/inline-chat/inline-chat.service.js +17 -5
- package/lib/browser/widget/inline-chat/inline-chat.service.js.map +1 -1
- package/lib/browser/widget/inline-chat/inline-content-widget.d.ts +5 -2
- package/lib/browser/widget/inline-chat/inline-content-widget.d.ts.map +1 -1
- package/lib/browser/widget/inline-chat/inline-content-widget.js +42 -17
- package/lib/browser/widget/inline-chat/inline-content-widget.js.map +1 -1
- package/lib/browser/widget/inline-diff/inline-diff-previewer.d.ts +5 -22
- package/lib/browser/widget/inline-diff/inline-diff-previewer.d.ts.map +1 -1
- package/lib/browser/widget/inline-diff/inline-diff-previewer.js +30 -61
- package/lib/browser/widget/inline-diff/inline-diff-previewer.js.map +1 -1
- package/lib/browser/widget/inline-diff/inline-diff.controller.d.ts +12 -8
- package/lib/browser/widget/inline-diff/inline-diff.controller.d.ts.map +1 -1
- package/lib/browser/widget/inline-diff/inline-diff.controller.js +96 -68
- package/lib/browser/widget/inline-diff/inline-diff.controller.js.map +1 -1
- package/lib/browser/widget/inline-hint/inline-hint.controller.d.ts +1 -0
- package/lib/browser/widget/inline-hint/inline-hint.controller.d.ts.map +1 -1
- package/lib/browser/widget/inline-hint/inline-hint.controller.js +5 -0
- package/lib/browser/widget/inline-hint/inline-hint.controller.js.map +1 -1
- package/lib/browser/widget/inline-input/inline-input-widget.d.ts +2 -12
- package/lib/browser/widget/inline-input/inline-input-widget.d.ts.map +1 -1
- package/lib/browser/widget/inline-input/inline-input-widget.js +18 -26
- package/lib/browser/widget/inline-input/inline-input-widget.js.map +1 -1
- package/lib/browser/widget/inline-input/inline-input.controller.d.ts +5 -14
- package/lib/browser/widget/inline-input/inline-input.controller.d.ts.map +1 -1
- package/lib/browser/widget/inline-input/inline-input.controller.js +165 -321
- package/lib/browser/widget/inline-input/inline-input.controller.js.map +1 -1
- package/lib/browser/widget/inline-input/inline-input.module.less +0 -4
- package/lib/browser/widget/inline-input/inline-input.service.d.ts +7 -19
- package/lib/browser/widget/inline-input/inline-input.service.d.ts.map +1 -1
- package/lib/browser/widget/inline-input/inline-input.service.js +12 -72
- package/lib/browser/widget/inline-input/inline-input.service.js.map +1 -1
- package/lib/browser/widget/inline-stream-diff/inline-stream-diff.handler.d.ts +19 -9
- 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 +39 -47
- package/lib/browser/widget/inline-stream-diff/inline-stream-diff.handler.js.map +1 -1
- package/lib/browser/widget/inline-stream-diff/live-preview.component.d.ts +4 -21
- package/lib/browser/widget/inline-stream-diff/live-preview.component.d.ts.map +1 -1
- package/lib/browser/widget/inline-stream-diff/live-preview.component.js +5 -37
- package/lib/browser/widget/inline-stream-diff/live-preview.component.js.map +1 -1
- package/lib/browser/widget/inline-stream-diff/live-preview.decoration.d.ts +11 -7
- 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 +77 -34
- package/lib/browser/widget/inline-stream-diff/live-preview.decoration.js.map +1 -1
- package/lib/common/index.d.ts +0 -10
- package/lib/common/index.d.ts.map +1 -1
- package/lib/common/index.js +1 -4
- package/lib/common/index.js.map +1 -1
- package/lib/common/types.d.ts +0 -17
- package/lib/common/types.d.ts.map +1 -1
- package/lib/common/utils.d.ts +0 -1
- package/lib/common/utils.d.ts.map +1 -1
- package/lib/common/utils.js +3 -5
- package/lib/common/utils.js.map +1 -1
- package/lib/node/index.d.ts.map +1 -1
- package/lib/node/index.js +0 -19
- package/lib/node/index.js.map +1 -1
- package/package.json +22 -33
- package/src/browser/ai-core.contextkeys.ts +0 -3
- package/src/browser/ai-core.contribution.ts +21 -167
- package/src/browser/chat/chat-agent.service.ts +0 -7
- package/src/browser/chat/chat-manager.service.ts +7 -83
- package/src/browser/chat/chat-model.ts +20 -86
- package/src/browser/chat/chat-proxy.service.ts +3 -55
- package/src/browser/chat/chat.api.service.ts +2 -2
- package/src/browser/chat/chat.internal.service.ts +6 -35
- package/src/browser/chat/chat.module.less +41 -17
- package/src/browser/chat/chat.view.tsx +45 -191
- package/src/browser/components/ChatEditor.tsx +10 -13
- package/src/browser/components/ChatInput.tsx +0 -1
- package/src/browser/components/ChatMarkdown.tsx +2 -4
- package/src/browser/components/ChatReply.tsx +9 -38
- package/src/browser/components/ChatThinking.tsx +1 -1
- package/src/browser/components/WelcomeMsg.tsx +1 -1
- package/src/browser/components/components.module.less +31 -33
- package/src/browser/contrib/intelligent-completions/index.ts +4 -19
- package/src/browser/contrib/intelligent-completions/intelligent-completions.contribution.ts +8 -32
- package/src/browser/contrib/intelligent-completions/intelligent-completions.controller.ts +67 -102
- package/src/browser/contrib/intelligent-completions/intelligent-completions.feature.registry.ts +0 -11
- package/src/browser/contrib/intelligent-completions/source/base.ts +14 -39
- package/src/browser/contrib/intelligent-completions/source/line-change.source.ts +22 -129
- package/src/browser/contrib/intelligent-completions/source/lint-error.source.ts +31 -19
- package/src/browser/contrib/terminal/component/terminal-command-suggest-controller.tsx +1 -1
- package/src/browser/index.ts +6 -69
- package/src/browser/languages/tree-sitter/wasm-manager.ts +2 -12
- package/src/browser/layout/ai-layout.tsx +2 -5
- package/src/browser/layout/layout.module.less +9 -9
- package/src/browser/layout/tabbar.view.tsx +8 -10
- package/src/browser/model/enhanceDecorationsCollection.ts +77 -62
- package/src/browser/model/msg-history-manager.ts +2 -56
- package/src/browser/model/styles.module.less +7 -0
- package/src/browser/preferences/schema.ts +0 -69
- package/src/browser/types.ts +5 -100
- package/src/browser/widget/inline-chat/inline-chat-editor.controller.ts +65 -30
- package/src/browser/widget/inline-chat/inline-chat.feature.registry.ts +90 -23
- package/src/browser/widget/inline-chat/inline-chat.service.ts +17 -2
- package/src/browser/widget/inline-chat/inline-content-widget.tsx +69 -14
- package/src/browser/widget/inline-diff/inline-diff-previewer.ts +32 -87
- package/src/browser/widget/inline-diff/inline-diff.controller.ts +114 -90
- package/src/browser/widget/inline-hint/inline-hint.controller.ts +7 -1
- package/src/browser/widget/inline-input/inline-input-widget.tsx +12 -34
- package/src/browser/widget/inline-input/inline-input.controller.ts +242 -454
- package/src/browser/widget/inline-input/inline-input.module.less +0 -4
- package/src/browser/widget/inline-input/inline-input.service.ts +13 -92
- package/src/browser/widget/inline-stream-diff/inline-stream-diff.handler.tsx +67 -58
- package/src/browser/widget/inline-stream-diff/live-preview.component.tsx +6 -49
- package/src/browser/widget/inline-stream-diff/live-preview.decoration.tsx +112 -41
- package/src/common/index.ts +0 -15
- package/src/common/types.ts +0 -22
- package/src/common/utils.ts +2 -4
- package/src/node/index.ts +0 -21
- package/lib/browser/components/ChatContext/ContextSelector.d.ts +0 -12
- package/lib/browser/components/ChatContext/ContextSelector.d.ts.map +0 -1
- package/lib/browser/components/ChatContext/ContextSelector.js +0 -113
- package/lib/browser/components/ChatContext/ContextSelector.js.map +0 -1
- package/lib/browser/components/ChatContext/index.d.ts +0 -4
- package/lib/browser/components/ChatContext/index.d.ts.map +0 -1
- package/lib/browser/components/ChatContext/index.js +0 -100
- package/lib/browser/components/ChatContext/index.js.map +0 -1
- package/lib/browser/components/ChatContext/style.module.less +0 -201
- package/lib/browser/components/ChatHistory.d.ts +0 -21
- package/lib/browser/components/ChatHistory.d.ts.map +0 -1
- package/lib/browser/components/ChatHistory.js +0 -148
- package/lib/browser/components/ChatHistory.js.map +0 -1
- package/lib/browser/components/ChatToolRender.d.ts +0 -7
- package/lib/browser/components/ChatToolRender.d.ts.map +0 -1
- package/lib/browser/components/ChatToolRender.js +0 -71
- package/lib/browser/components/ChatToolRender.js.map +0 -1
- package/lib/browser/components/ChatToolRender.module.less +0 -86
- package/lib/browser/components/chat-history.css +0 -139
- package/lib/browser/context/llm-context.contribution.d.ts +0 -7
- package/lib/browser/context/llm-context.contribution.d.ts.map +0 -1
- package/lib/browser/context/llm-context.contribution.js +0 -21
- package/lib/browser/context/llm-context.contribution.js.map +0 -1
- package/lib/browser/context/llm-context.service.d.ts +0 -36
- package/lib/browser/context/llm-context.service.d.ts.map +0 -1
- package/lib/browser/context/llm-context.service.js +0 -170
- package/lib/browser/context/llm-context.service.js.map +0 -1
- package/lib/browser/contrib/intelligent-completions/source/trigger.source.d.ts +0 -13
- package/lib/browser/contrib/intelligent-completions/source/trigger.source.d.ts.map +0 -1
- package/lib/browser/contrib/intelligent-completions/source/trigger.source.js +0 -36
- package/lib/browser/contrib/intelligent-completions/source/trigger.source.js.map +0 -1
- package/lib/browser/contrib/intelligent-completions/source/typing.source.d.ts +0 -9
- package/lib/browser/contrib/intelligent-completions/source/typing.source.d.ts.map +0 -1
- package/lib/browser/contrib/intelligent-completions/source/typing.source.js +0 -36
- package/lib/browser/contrib/intelligent-completions/source/typing.source.js.map +0 -1
- package/lib/browser/mcp/base-apply.service.d.ts +0 -67
- package/lib/browser/mcp/base-apply.service.d.ts.map +0 -1
- package/lib/browser/mcp/base-apply.service.js +0 -290
- package/lib/browser/mcp/base-apply.service.js.map +0 -1
- package/lib/browser/mcp/mcp-server-proxy.service.d.ts +0 -30
- package/lib/browser/mcp/mcp-server-proxy.service.d.ts.map +0 -1
- package/lib/browser/mcp/mcp-server-proxy.service.js +0 -57
- package/lib/browser/mcp/mcp-server-proxy.service.js.map +0 -1
- package/lib/browser/mcp/mcp-server.feature.registry.d.ts +0 -20
- package/lib/browser/mcp/mcp-server.feature.registry.d.ts.map +0 -1
- package/lib/browser/mcp/mcp-server.feature.registry.js +0 -69
- package/lib/browser/mcp/mcp-server.feature.registry.js.map +0 -1
- package/lib/browser/mcp/mcp-tools-dialog.module.less +0 -44
- package/lib/browser/mcp/mcp-tools-dialog.view.d.ts +0 -8
- package/lib/browser/mcp/mcp-tools-dialog.view.d.ts.map +0 -1
- package/lib/browser/mcp/mcp-tools-dialog.view.js +0 -16
- package/lib/browser/mcp/mcp-tools-dialog.view.js.map +0 -1
- package/lib/browser/mcp/tools/components/EditFile.d.ts +0 -3
- package/lib/browser/mcp/tools/components/EditFile.d.ts.map +0 -1
- package/lib/browser/mcp/tools/components/EditFile.js +0 -101
- package/lib/browser/mcp/tools/components/EditFile.js.map +0 -1
- 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 +0 -60
- package/lib/browser/mcp/tools/components/SearchResult.js.map +0 -1
- package/lib/browser/mcp/tools/components/Terminal.d.ts +0 -4
- package/lib/browser/mcp/tools/components/Terminal.d.ts.map +0 -1
- package/lib/browser/mcp/tools/components/Terminal.js +0 -64
- package/lib/browser/mcp/tools/components/Terminal.js.map +0 -1
- package/lib/browser/mcp/tools/components/index.module.less +0 -168
- package/lib/browser/mcp/tools/createNewFileWithText.d.ts +0 -9
- package/lib/browser/mcp/tools/createNewFileWithText.d.ts.map +0 -1
- package/lib/browser/mcp/tools/createNewFileWithText.js +0 -82
- package/lib/browser/mcp/tools/createNewFileWithText.js.map +0 -1
- package/lib/browser/mcp/tools/editFile.d.ts +0 -8
- package/lib/browser/mcp/tools/editFile.d.ts.map +0 -1
- package/lib/browser/mcp/tools/editFile.js +0 -95
- package/lib/browser/mcp/tools/editFile.js.map +0 -1
- package/lib/browser/mcp/tools/fileSearch.d.ts +0 -10
- package/lib/browser/mcp/tools/fileSearch.d.ts.map +0 -1
- package/lib/browser/mcp/tools/fileSearch.js +0 -94
- package/lib/browser/mcp/tools/fileSearch.js.map +0 -1
- package/lib/browser/mcp/tools/getDiagnosticsByPath.d.ts +0 -10
- package/lib/browser/mcp/tools/getDiagnosticsByPath.d.ts.map +0 -1
- package/lib/browser/mcp/tools/getDiagnosticsByPath.js +0 -118
- package/lib/browser/mcp/tools/getDiagnosticsByPath.js.map +0 -1
- package/lib/browser/mcp/tools/getOpenEditorFileDiagnostics.d.ts +0 -11
- package/lib/browser/mcp/tools/getOpenEditorFileDiagnostics.d.ts.map +0 -1
- package/lib/browser/mcp/tools/getOpenEditorFileDiagnostics.js +0 -118
- package/lib/browser/mcp/tools/getOpenEditorFileDiagnostics.js.map +0 -1
- package/lib/browser/mcp/tools/grepSearch.d.ts +0 -10
- package/lib/browser/mcp/tools/grepSearch.d.ts.map +0 -1
- package/lib/browser/mcp/tools/grepSearch.js +0 -118
- package/lib/browser/mcp/tools/grepSearch.js.map +0 -1
- package/lib/browser/mcp/tools/handlers/EditFile.d.ts +0 -10
- package/lib/browser/mcp/tools/handlers/EditFile.d.ts.map +0 -1
- package/lib/browser/mcp/tools/handlers/EditFile.js +0 -28
- package/lib/browser/mcp/tools/handlers/EditFile.js.map +0 -1
- package/lib/browser/mcp/tools/handlers/ListDir.d.ts +0 -21
- package/lib/browser/mcp/tools/handlers/ListDir.d.ts.map +0 -1
- package/lib/browser/mcp/tools/handlers/ListDir.js +0 -112
- package/lib/browser/mcp/tools/handlers/ListDir.js.map +0 -1
- package/lib/browser/mcp/tools/handlers/ReadFile.d.ts +0 -53
- package/lib/browser/mcp/tools/handlers/ReadFile.d.ts.map +0 -1
- package/lib/browser/mcp/tools/handlers/ReadFile.js +0 -161
- package/lib/browser/mcp/tools/handlers/ReadFile.js.map +0 -1
- package/lib/browser/mcp/tools/handlers/RunCommand.d.ts +0 -43
- package/lib/browser/mcp/tools/handlers/RunCommand.d.ts.map +0 -1
- package/lib/browser/mcp/tools/handlers/RunCommand.js +0 -104
- package/lib/browser/mcp/tools/handlers/RunCommand.js.map +0 -1
- package/lib/browser/mcp/tools/handlers/utils.d.ts +0 -2
- package/lib/browser/mcp/tools/handlers/utils.d.ts.map +0 -1
- package/lib/browser/mcp/tools/handlers/utils.js +0 -7
- package/lib/browser/mcp/tools/handlers/utils.js.map +0 -1
- package/lib/browser/mcp/tools/listDir.d.ts +0 -8
- package/lib/browser/mcp/tools/listDir.d.ts.map +0 -1
- package/lib/browser/mcp/tools/listDir.js +0 -64
- package/lib/browser/mcp/tools/listDir.js.map +0 -1
- package/lib/browser/mcp/tools/readFile.d.ts +0 -8
- package/lib/browser/mcp/tools/readFile.d.ts.map +0 -1
- package/lib/browser/mcp/tools/readFile.js +0 -81
- package/lib/browser/mcp/tools/readFile.js.map +0 -1
- package/lib/browser/mcp/tools/runTerminalCmd.d.ts +0 -13
- package/lib/browser/mcp/tools/runTerminalCmd.d.ts.map +0 -1
- package/lib/browser/mcp/tools/runTerminalCmd.js +0 -49
- package/lib/browser/mcp/tools/runTerminalCmd.js.map +0 -1
- package/lib/browser/widget/inline-input/model.d.ts +0 -34
- package/lib/browser/widget/inline-input/model.d.ts.map +0 -1
- package/lib/browser/widget/inline-input/model.js +0 -63
- package/lib/browser/widget/inline-input/model.js.map +0 -1
- package/lib/common/llm-context.d.ts +0 -40
- package/lib/common/llm-context.d.ts.map +0 -1
- package/lib/common/llm-context.js +0 -5
- package/lib/common/llm-context.js.map +0 -1
- package/lib/common/mcp-server-manager.d.ts +0 -40
- package/lib/common/mcp-server-manager.d.ts.map +0 -1
- package/lib/common/mcp-server-manager.js +0 -6
- package/lib/common/mcp-server-manager.js.map +0 -1
- package/lib/common/prompts/context-prompt-provider.d.ts +0 -14
- package/lib/common/prompts/context-prompt-provider.d.ts.map +0 -1
- package/lib/common/prompts/context-prompt-provider.js +0 -38
- package/lib/common/prompts/context-prompt-provider.js.map +0 -1
- package/lib/common/tool-invocation-registry.d.ts +0 -92
- package/lib/common/tool-invocation-registry.d.ts.map +0 -1
- package/lib/common/tool-invocation-registry.js +0 -90
- package/lib/common/tool-invocation-registry.js.map +0 -1
- package/lib/node/anthropic/anthropic-language-model.d.ts +0 -9
- package/lib/node/anthropic/anthropic-language-model.d.ts.map +0 -1
- package/lib/node/anthropic/anthropic-language-model.js +0 -26
- package/lib/node/anthropic/anthropic-language-model.js.map +0 -1
- package/lib/node/base-language-model.d.ts +0 -14
- package/lib/node/base-language-model.d.ts.map +0 -1
- package/lib/node/base-language-model.js +0 -140
- package/lib/node/base-language-model.js.map +0 -1
- package/lib/node/deepseek/deepseek-language-model.d.ts +0 -9
- package/lib/node/deepseek/deepseek-language-model.d.ts.map +0 -1
- package/lib/node/deepseek/deepseek-language-model.js +0 -26
- package/lib/node/deepseek/deepseek-language-model.js.map +0 -1
- package/lib/node/mcp/sumi-mcp-server.d.ts +0 -91
- package/lib/node/mcp/sumi-mcp-server.d.ts.map +0 -1
- package/lib/node/mcp/sumi-mcp-server.js +0 -175
- package/lib/node/mcp/sumi-mcp-server.js.map +0 -1
- package/lib/node/mcp-server-manager-impl.d.ts +0 -27
- package/lib/node/mcp-server-manager-impl.d.ts.map +0 -1
- package/lib/node/mcp-server-manager-impl.js +0 -128
- package/lib/node/mcp-server-manager-impl.js.map +0 -1
- package/lib/node/mcp-server.d.ts +0 -207
- package/lib/node/mcp-server.d.ts.map +0 -1
- package/lib/node/mcp-server.js +0 -92
- package/lib/node/mcp-server.js.map +0 -1
- package/lib/node/openai/openai-language-model.d.ts +0 -9
- package/lib/node/openai/openai-language-model.d.ts.map +0 -1
- package/lib/node/openai/openai-language-model.js +0 -29
- package/lib/node/openai/openai-language-model.js.map +0 -1
- package/src/browser/components/ChatContext/ContextSelector.tsx +0 -177
- package/src/browser/components/ChatContext/index.tsx +0 -151
- package/src/browser/components/ChatContext/style.module.less +0 -201
- package/src/browser/components/ChatHistory.tsx +0 -292
- package/src/browser/components/ChatToolRender.module.less +0 -86
- package/src/browser/components/ChatToolRender.tsx +0 -96
- package/src/browser/components/chat-history.css +0 -139
- package/src/browser/context/llm-context.contribution.ts +0 -14
- package/src/browser/context/llm-context.service.ts +0 -200
- package/src/browser/contrib/intelligent-completions/source/trigger.source.ts +0 -44
- package/src/browser/contrib/intelligent-completions/source/typing.source.ts +0 -34
- package/src/browser/mcp/base-apply.service.ts +0 -349
- package/src/browser/mcp/mcp-server-proxy.service.ts +0 -55
- package/src/browser/mcp/mcp-server.feature.registry.ts +0 -77
- package/src/browser/mcp/mcp-tools-dialog.module.less +0 -44
- package/src/browser/mcp/mcp-tools-dialog.view.tsx +0 -24
- package/src/browser/mcp/tools/components/EditFile.tsx +0 -144
- package/src/browser/mcp/tools/components/SearchResult.tsx +0 -92
- package/src/browser/mcp/tools/components/Terminal.tsx +0 -97
- package/src/browser/mcp/tools/components/index.module.less +0 -168
- package/src/browser/mcp/tools/createNewFileWithText.ts +0 -82
- package/src/browser/mcp/tools/editFile.ts +0 -100
- package/src/browser/mcp/tools/fileSearch.ts +0 -99
- package/src/browser/mcp/tools/getDiagnosticsByPath.ts +0 -122
- package/src/browser/mcp/tools/getOpenEditorFileDiagnostics.ts +0 -120
- package/src/browser/mcp/tools/grepSearch.ts +0 -121
- package/src/browser/mcp/tools/handlers/EditFile.ts +0 -21
- package/src/browser/mcp/tools/handlers/ListDir.ts +0 -117
- package/src/browser/mcp/tools/handlers/ReadFile.ts +0 -192
- package/src/browser/mcp/tools/handlers/RunCommand.ts +0 -115
- package/src/browser/mcp/tools/handlers/utils.ts +0 -3
- package/src/browser/mcp/tools/listDir.ts +0 -65
- package/src/browser/mcp/tools/readFile.ts +0 -81
- package/src/browser/mcp/tools/runTerminalCmd.ts +0 -45
- package/src/browser/widget/inline-input/model.ts +0 -74
- package/src/common/llm-context.ts +0 -47
- package/src/common/mcp-server-manager.ts +0 -51
- package/src/common/prompts/context-prompt-provider.ts +0 -46
- package/src/common/tool-invocation-registry.ts +0 -168
- package/src/node/anthropic/anthropic-language-model.ts +0 -25
- package/src/node/base-language-model.ts +0 -177
- package/src/node/deepseek/deepseek-language-model.ts +0 -25
- package/src/node/mcp/sumi-mcp-server.ts +0 -200
- package/src/node/mcp-server-manager-impl.ts +0 -156
- package/src/node/mcp-server.ts +0 -127
- package/src/node/openai/openai-language-model.ts +0 -25
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"grepSearch.js","sourceRoot":"","sources":["../../../../src/browser/mcp/tools/grepSearch.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,10 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* TODO: 代码块改动版本号,次数,流式工具调用?
|
|
3
|
-
* 基础文件编辑处理类
|
|
4
|
-
* 用于处理代码改动的应用、保存等操作
|
|
5
|
-
*/
|
|
6
|
-
export declare class EditFileHandler {
|
|
7
|
-
private applyService;
|
|
8
|
-
handler(relativePath: string, updateContent: string, instructions?: string): Promise<import("../../base-apply.service").CodeBlockData>;
|
|
9
|
-
}
|
|
10
|
-
//# sourceMappingURL=EditFile.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"EditFile.d.ts","sourceRoot":"","sources":["../../../../../src/browser/mcp/tools/handlers/EditFile.ts"],"names":[],"mappings":"AAIA;;;;GAIG;AACH,qBACa,eAAe;IAE1B,OAAO,CAAC,YAAY,CAAmB;IAEjC,OAAO,CAAC,YAAY,EAAE,MAAM,EAAE,aAAa,EAAE,MAAM,EAAE,YAAY,CAAC,EAAE,MAAM;CAMjF"}
|
|
@@ -1,28 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.EditFileHandler = void 0;
|
|
4
|
-
const tslib_1 = require("tslib");
|
|
5
|
-
const di_1 = require("@opensumi/di");
|
|
6
|
-
const base_apply_service_1 = require("../../base-apply.service");
|
|
7
|
-
/**
|
|
8
|
-
* TODO: 代码块改动版本号,次数,流式工具调用?
|
|
9
|
-
* 基础文件编辑处理类
|
|
10
|
-
* 用于处理代码改动的应用、保存等操作
|
|
11
|
-
*/
|
|
12
|
-
let EditFileHandler = class EditFileHandler {
|
|
13
|
-
async handler(relativePath, updateContent, instructions) {
|
|
14
|
-
// TODO: ignore file
|
|
15
|
-
this.applyService.registerCodeBlock(relativePath, updateContent);
|
|
16
|
-
const blockData = await this.applyService.apply(relativePath, updateContent, instructions);
|
|
17
|
-
return blockData;
|
|
18
|
-
}
|
|
19
|
-
};
|
|
20
|
-
exports.EditFileHandler = EditFileHandler;
|
|
21
|
-
tslib_1.__decorate([
|
|
22
|
-
(0, di_1.Autowired)(base_apply_service_1.BaseApplyService),
|
|
23
|
-
tslib_1.__metadata("design:type", base_apply_service_1.BaseApplyService)
|
|
24
|
-
], EditFileHandler.prototype, "applyService", void 0);
|
|
25
|
-
exports.EditFileHandler = EditFileHandler = tslib_1.__decorate([
|
|
26
|
-
(0, di_1.Injectable)()
|
|
27
|
-
], EditFileHandler);
|
|
28
|
-
//# sourceMappingURL=EditFile.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"EditFile.js","sourceRoot":"","sources":["../../../../../src/browser/mcp/tools/handlers/EditFile.ts"],"names":[],"mappings":";;;;AAAA,qCAAqD;AAErD,iEAA4D;AAE5D;;;;GAIG;AAEI,IAAM,eAAe,GAArB,MAAM,eAAe;IAI1B,KAAK,CAAC,OAAO,CAAC,YAAoB,EAAE,aAAqB,EAAE,YAAqB;QAC9E,oBAAoB;QACpB,IAAI,CAAC,YAAY,CAAC,iBAAiB,CAAC,YAAY,EAAE,aAAa,CAAC,CAAC;QACjE,MAAM,SAAS,GAAG,MAAM,IAAI,CAAC,YAAY,CAAC,KAAK,CAAC,YAAY,EAAE,aAAa,EAAE,YAAY,CAAC,CAAC;QAC3F,OAAO,SAAS,CAAC;IACnB,CAAC;CACF,CAAA;AAVY,0CAAe;AAElB;IADP,IAAA,cAAS,EAAC,qCAAgB,CAAC;sCACN,qCAAgB;qDAAC;0BAF5B,eAAe;IAD3B,IAAA,eAAU,GAAE;GACA,eAAe,CAU3B"}
|
|
@@ -1,21 +0,0 @@
|
|
|
1
|
-
export declare class ListDirHandler {
|
|
2
|
-
private readonly MAX_FILE_SIZE;
|
|
3
|
-
private readonly MAX_INDEXED_FILES;
|
|
4
|
-
private readonly appConfig;
|
|
5
|
-
private readonly fileSystemService;
|
|
6
|
-
handler(args: {
|
|
7
|
-
relativeWorkspacePath: string;
|
|
8
|
-
}): Promise<{
|
|
9
|
-
files: {
|
|
10
|
-
name: string;
|
|
11
|
-
isDirectory: boolean;
|
|
12
|
-
size: number | undefined;
|
|
13
|
-
lastModified: number;
|
|
14
|
-
numChildren: number | undefined;
|
|
15
|
-
numLines: number | undefined;
|
|
16
|
-
}[];
|
|
17
|
-
directoryRelativeWorkspacePath: string;
|
|
18
|
-
}>;
|
|
19
|
-
countFileLines(filePath: string): Promise<number>;
|
|
20
|
-
}
|
|
21
|
-
//# sourceMappingURL=ListDir.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"ListDir.d.ts","sourceRoot":"","sources":["../../../../../src/browser/mcp/tools/handlers/ListDir.ts"],"names":[],"mappings":"AAgDA,qBACa,cAAc;IACzB,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAe;IAC7C,OAAO,CAAC,QAAQ,CAAC,iBAAiB,CAAM;IAExC,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAY;IAGtC,OAAO,CAAC,QAAQ,CAAC,iBAAiB,CAAqB;IAEjD,OAAO,CAAC,IAAI,EAAE;QAAE,qBAAqB,EAAE,MAAM,CAAA;KAAE;;;;;;;;;;;IAsD/C,cAAc,CAAC,QAAQ,EAAE,MAAM;CAItC"}
|
|
@@ -1,112 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.ListDirHandler = void 0;
|
|
4
|
-
const tslib_1 = require("tslib");
|
|
5
|
-
const di_1 = require("@opensumi/di");
|
|
6
|
-
const ide_core_browser_1 = require("@opensumi/ide-core-browser");
|
|
7
|
-
const ide_file_service_1 = require("@opensumi/ide-file-service");
|
|
8
|
-
/**
|
|
9
|
-
* 并发限制器
|
|
10
|
-
*/
|
|
11
|
-
class ConcurrencyLimiter {
|
|
12
|
-
/**
|
|
13
|
-
* @param {number} maxConcurrent - 最大并发数
|
|
14
|
-
*/
|
|
15
|
-
constructor(maxConcurrent) {
|
|
16
|
-
this.maxConcurrent = maxConcurrent; // 最大并发数
|
|
17
|
-
this.currentCount = 0; // 当前执行的任务数
|
|
18
|
-
this.pendingQueue = []; // 等待执行的任务队列
|
|
19
|
-
}
|
|
20
|
-
/**
|
|
21
|
-
* 执行异步任务
|
|
22
|
-
* @param {Function} fn - 要执行的异步函数
|
|
23
|
-
* @returns {Promise} 任务执行的结果
|
|
24
|
-
*/
|
|
25
|
-
async execute(fn) {
|
|
26
|
-
// 如果当前执行的任务数达到最大并发数,则加入等待队列
|
|
27
|
-
if (this.currentCount >= this.maxConcurrent) {
|
|
28
|
-
await new Promise((resolve) => this.pendingQueue.push(resolve));
|
|
29
|
-
}
|
|
30
|
-
this.currentCount++;
|
|
31
|
-
try {
|
|
32
|
-
// 执行任务
|
|
33
|
-
const result = await fn();
|
|
34
|
-
return result;
|
|
35
|
-
}
|
|
36
|
-
finally {
|
|
37
|
-
this.currentCount--;
|
|
38
|
-
// 如果等待队列中有任务,则允许执行下一个任务
|
|
39
|
-
if (this.pendingQueue.length > 0) {
|
|
40
|
-
const next = this.pendingQueue.shift();
|
|
41
|
-
next === null || next === void 0 ? void 0 : next();
|
|
42
|
-
}
|
|
43
|
-
}
|
|
44
|
-
}
|
|
45
|
-
}
|
|
46
|
-
let ListDirHandler = class ListDirHandler {
|
|
47
|
-
constructor() {
|
|
48
|
-
this.MAX_FILE_SIZE = 1024 * 1024; // 1MB
|
|
49
|
-
this.MAX_INDEXED_FILES = 50;
|
|
50
|
-
}
|
|
51
|
-
async handler(args) {
|
|
52
|
-
var _a, _b;
|
|
53
|
-
const { relativeWorkspacePath } = args;
|
|
54
|
-
if (!relativeWorkspacePath) {
|
|
55
|
-
throw new Error('No list dir parameters provided. Need to give at least the path.');
|
|
56
|
-
}
|
|
57
|
-
// 解析相对路径
|
|
58
|
-
const absolutePath = `${this.appConfig.workspaceDir}/${relativeWorkspacePath}`;
|
|
59
|
-
const fileStat = await this.fileSystemService.getFileStat(absolutePath, true);
|
|
60
|
-
// 验证路径有效性
|
|
61
|
-
if (!fileStat || !fileStat.isDirectory) {
|
|
62
|
-
throw new Error(`Could not find file ${relativeWorkspacePath} in the workspace.`);
|
|
63
|
-
}
|
|
64
|
-
// 过滤符合大小限制的文件
|
|
65
|
-
const filesWithinSizeLimit = ((_a = fileStat.children) === null || _a === void 0 ? void 0 : _a.filter((file) => !file.isDirectory && file.size !== void 0 && file.size <= this.MAX_FILE_SIZE).slice(0, this.MAX_INDEXED_FILES)) || [];
|
|
66
|
-
// 记录需要分析的文件名
|
|
67
|
-
const filesToAnalyze = new Set(filesWithinSizeLimit.map((file) => new ide_core_browser_1.URI(file.uri).displayName));
|
|
68
|
-
// 创建并发限制器
|
|
69
|
-
const concurrencyLimiter = new ConcurrencyLimiter(4);
|
|
70
|
-
// 处理所有文件信息
|
|
71
|
-
const fileInfos = await Promise.all(((_b = fileStat.children) === null || _b === void 0 ? void 0 : _b.sort((a, b) => b.lastModification - a.lastModification).map(async (file) => {
|
|
72
|
-
var _a;
|
|
73
|
-
const uri = new ide_core_browser_1.URI(file.uri);
|
|
74
|
-
const filePath = `${absolutePath}/${uri.displayName}`;
|
|
75
|
-
let lineCount;
|
|
76
|
-
// 如果文件需要分析,则计算行数
|
|
77
|
-
if (filesToAnalyze.has(uri.displayName)) {
|
|
78
|
-
lineCount = await concurrencyLimiter.execute(async () => this.countFileLines(filePath));
|
|
79
|
-
}
|
|
80
|
-
return {
|
|
81
|
-
name: uri.displayName,
|
|
82
|
-
isDirectory: file.isDirectory,
|
|
83
|
-
size: file.size,
|
|
84
|
-
lastModified: file.lastModification,
|
|
85
|
-
numChildren: (_a = file.children) === null || _a === void 0 ? void 0 : _a.length,
|
|
86
|
-
numLines: lineCount,
|
|
87
|
-
};
|
|
88
|
-
})) || []);
|
|
89
|
-
// TODO: 过滤忽略文件
|
|
90
|
-
return {
|
|
91
|
-
files: fileInfos,
|
|
92
|
-
directoryRelativeWorkspacePath: relativeWorkspacePath,
|
|
93
|
-
};
|
|
94
|
-
}
|
|
95
|
-
async countFileLines(filePath) {
|
|
96
|
-
const file = await this.fileSystemService.readFile(ide_core_browser_1.URI.file(filePath).toString());
|
|
97
|
-
return file.toString().split('\n').length;
|
|
98
|
-
}
|
|
99
|
-
};
|
|
100
|
-
exports.ListDirHandler = ListDirHandler;
|
|
101
|
-
tslib_1.__decorate([
|
|
102
|
-
(0, di_1.Autowired)(ide_core_browser_1.AppConfig),
|
|
103
|
-
tslib_1.__metadata("design:type", Object)
|
|
104
|
-
], ListDirHandler.prototype, "appConfig", void 0);
|
|
105
|
-
tslib_1.__decorate([
|
|
106
|
-
(0, di_1.Autowired)(ide_file_service_1.IFileServiceClient),
|
|
107
|
-
tslib_1.__metadata("design:type", Object)
|
|
108
|
-
], ListDirHandler.prototype, "fileSystemService", void 0);
|
|
109
|
-
exports.ListDirHandler = ListDirHandler = tslib_1.__decorate([
|
|
110
|
-
(0, di_1.Injectable)()
|
|
111
|
-
], ListDirHandler);
|
|
112
|
-
//# sourceMappingURL=ListDir.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"ListDir.js","sourceRoot":"","sources":["../../../../../src/browser/mcp/tools/handlers/ListDir.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,53 +0,0 @@
|
|
|
1
|
-
import { FileSearchQuickCommandHandler } from '@opensumi/ide-addons/lib/browser/file-search.contribution';
|
|
2
|
-
import { AppConfig } from '@opensumi/ide-core-browser';
|
|
3
|
-
import { IEditorDocumentModelService } from '@opensumi/ide-editor/lib/browser';
|
|
4
|
-
import { IFileServiceClient } from '@opensumi/ide-file-service';
|
|
5
|
-
export declare class FileHandler {
|
|
6
|
-
private static readonly MAX_FILE_SIZE_BYTES;
|
|
7
|
-
private static readonly MAX_LINES;
|
|
8
|
-
private static readonly MAX_CHARS;
|
|
9
|
-
private static readonly NEWLINE;
|
|
10
|
-
private fileResultMap;
|
|
11
|
-
protected modelService: IEditorDocumentModelService;
|
|
12
|
-
protected fileSearchQuickCommandHandler: FileSearchQuickCommandHandler;
|
|
13
|
-
protected appConfig: AppConfig;
|
|
14
|
-
protected fileSystemService: IFileServiceClient;
|
|
15
|
-
findSimilarFiles(filePath: string, maxResults: number): Promise<string[]>;
|
|
16
|
-
private createFileNotFoundError;
|
|
17
|
-
private createFileTooLargeError;
|
|
18
|
-
private trimContent;
|
|
19
|
-
private getLineRange;
|
|
20
|
-
readFile(fileParams: {
|
|
21
|
-
relativeWorkspacePath: string;
|
|
22
|
-
readEntireFile: boolean;
|
|
23
|
-
fileIsAllowedToBeReadEntirely?: boolean;
|
|
24
|
-
startLineOneIndexed?: number;
|
|
25
|
-
endLineOneIndexedInclusive?: number;
|
|
26
|
-
}): Promise<{
|
|
27
|
-
contents: string;
|
|
28
|
-
didDowngradeToLineRange: boolean;
|
|
29
|
-
didShortenLineRange: boolean;
|
|
30
|
-
didShortenCharRange: boolean;
|
|
31
|
-
didSetDefaultLineRange: boolean;
|
|
32
|
-
fullFileContents: string;
|
|
33
|
-
startLineOneIndexed: number;
|
|
34
|
-
endLineOneIndexedInclusive: number;
|
|
35
|
-
relativeWorkspacePath: string;
|
|
36
|
-
} | {
|
|
37
|
-
contents: string;
|
|
38
|
-
fullFileContents: string;
|
|
39
|
-
didDowngradeToLineRange: boolean;
|
|
40
|
-
didShortenCharRange: boolean;
|
|
41
|
-
didShortenLineRange?: undefined;
|
|
42
|
-
didSetDefaultLineRange?: undefined;
|
|
43
|
-
startLineOneIndexed?: undefined;
|
|
44
|
-
endLineOneIndexedInclusive?: undefined;
|
|
45
|
-
relativeWorkspacePath?: undefined;
|
|
46
|
-
}>;
|
|
47
|
-
getFileReadResult(relativeWorkspacePath: string): {
|
|
48
|
-
content: string;
|
|
49
|
-
startLineOneIndexed: number;
|
|
50
|
-
endLineOneIndexedInclusive: number;
|
|
51
|
-
} | undefined;
|
|
52
|
-
}
|
|
53
|
-
//# sourceMappingURL=ReadFile.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"ReadFile.d.ts","sourceRoot":"","sources":["../../../../../src/browser/mcp/tools/handlers/ReadFile.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,6BAA6B,EAAE,MAAM,2DAA2D,CAAC;AAC1G,OAAO,EAAE,SAAS,EAAE,MAAM,4BAA4B,CAAC;AAEvD,OAAO,EAA2B,2BAA2B,EAAE,MAAM,kCAAkC,CAAC;AACxG,OAAO,EAAE,kBAAkB,EAAE,MAAM,4BAA4B,CAAC;AAEhE,qBACa,WAAW;IACtB,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,mBAAmB,CAAO;IAClD,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,SAAS,CAAO;IACxC,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,SAAS,CAAO;IACxC,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,OAAO,CAAQ;IAEvC,OAAO,CAAC,aAAa,CAGP;IAGd,SAAS,CAAC,YAAY,EAAE,2BAA2B,CAAC;IAGpD,SAAS,CAAC,6BAA6B,EAAE,6BAA6B,CAAC;IAGvE,SAAS,CAAC,SAAS,EAAE,SAAS,CAAC;IAG/B,SAAS,CAAC,iBAAiB,EAAE,kBAAkB,CAAC;IAE1C,gBAAgB,CAAC,QAAQ,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC;IAQ/E,OAAO,CAAC,uBAAuB;IAiB/B,OAAO,CAAC,uBAAuB;IAU/B,OAAO,CAAC,WAAW;IAInB,OAAO,CAAC,YAAY;IA4Bd,QAAQ,CAAC,UAAU,EAAE;QACzB,qBAAqB,EAAE,MAAM,CAAC;QAC9B,cAAc,EAAE,OAAO,CAAC;QACxB,6BAA6B,CAAC,EAAE,OAAO,CAAC;QACxC,mBAAmB,CAAC,EAAE,MAAM,CAAC;QAC7B,0BAA0B,CAAC,EAAE,MAAM,CAAC;KACrC;;;;;;;;;;;;;;;;;;;;;IAkFD,iBAAiB,CACf,qBAAqB,EAAE,MAAM,GAC5B;QAAE,OAAO,EAAE,MAAM,CAAC;QAAC,mBAAmB,EAAE,MAAM,CAAC;QAAC,0BAA0B,EAAE,MAAM,CAAA;KAAE,GAAG,SAAS;CAGpG"}
|
|
@@ -1,161 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
var FileHandler_1;
|
|
3
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
4
|
-
exports.FileHandler = void 0;
|
|
5
|
-
const tslib_1 = require("tslib");
|
|
6
|
-
const di_1 = require("@opensumi/di");
|
|
7
|
-
const file_search_contribution_1 = require("@opensumi/ide-addons/lib/browser/file-search.contribution");
|
|
8
|
-
const ide_core_browser_1 = require("@opensumi/ide-core-browser");
|
|
9
|
-
const ide_core_common_1 = require("@opensumi/ide-core-common");
|
|
10
|
-
const browser_1 = require("@opensumi/ide-editor/lib/browser");
|
|
11
|
-
const ide_file_service_1 = require("@opensumi/ide-file-service");
|
|
12
|
-
let FileHandler = FileHandler_1 = class FileHandler {
|
|
13
|
-
constructor() {
|
|
14
|
-
this.fileResultMap = new Map();
|
|
15
|
-
}
|
|
16
|
-
async findSimilarFiles(filePath, maxResults) {
|
|
17
|
-
const items = await this.fileSearchQuickCommandHandler.getQueryFiles(filePath, new Set(), ide_core_common_1.CancellationToken.None);
|
|
18
|
-
return items
|
|
19
|
-
.slice(0, maxResults)
|
|
20
|
-
.map((item) => { var _a; return (_a = item.getUri()) === null || _a === void 0 ? void 0 : _a.codeUri.fsPath; })
|
|
21
|
-
.filter(Boolean);
|
|
22
|
-
}
|
|
23
|
-
// TODO: 错误应该给模型?
|
|
24
|
-
createFileNotFoundError(filePath, similarFiles) {
|
|
25
|
-
const errorMessage = similarFiles.length > 0
|
|
26
|
-
? `Could not find file '${filePath}'. Did you mean one of:\n${similarFiles
|
|
27
|
-
.map((file) => `- ${file}`)
|
|
28
|
-
.join('\n')}`
|
|
29
|
-
: `Could not find file '${filePath}' in the workspace.`;
|
|
30
|
-
return new Error(JSON.stringify({
|
|
31
|
-
clientVisibleErrorMessage: errorMessage,
|
|
32
|
-
modelVisibleErrorMessage: errorMessage,
|
|
33
|
-
actualErrorMessage: `File not found: ${filePath}`,
|
|
34
|
-
}));
|
|
35
|
-
}
|
|
36
|
-
createFileTooLargeError(fileSizeMB, fileStatsSize) {
|
|
37
|
-
return new Error(JSON.stringify({
|
|
38
|
-
clientVisibleErrorMessage: `File is too large, >${fileSizeMB}MB`,
|
|
39
|
-
modelVisibleErrorMessage: `The file is too large to read, was >${fileSizeMB}MB`,
|
|
40
|
-
actualErrorMessage: `File is too large to read, was >${fileSizeMB}MB, size: ${fileStatsSize} bytes`,
|
|
41
|
-
}));
|
|
42
|
-
}
|
|
43
|
-
trimContent(content, maxChars) {
|
|
44
|
-
return content.slice(0, maxChars).split(FileHandler_1.NEWLINE).slice(0, -1).join(FileHandler_1.NEWLINE);
|
|
45
|
-
}
|
|
46
|
-
getLineRange(fileParams, forceLimit) {
|
|
47
|
-
var _a, _b;
|
|
48
|
-
let start = (_a = fileParams.startLineOneIndexed) !== null && _a !== void 0 ? _a : 1;
|
|
49
|
-
let end = (_b = fileParams.endLineOneIndexedInclusive) !== null && _b !== void 0 ? _b : start + FileHandler_1.MAX_LINES - 1;
|
|
50
|
-
let didShorten = false;
|
|
51
|
-
let didSetDefault = false;
|
|
52
|
-
if (forceLimit) {
|
|
53
|
-
return { start, end, didShorten, didSetDefault };
|
|
54
|
-
}
|
|
55
|
-
if (fileParams.endLineOneIndexedInclusive === undefined || fileParams.startLineOneIndexed === undefined) {
|
|
56
|
-
start = 1;
|
|
57
|
-
end = FileHandler_1.MAX_LINES;
|
|
58
|
-
didSetDefault = true;
|
|
59
|
-
}
|
|
60
|
-
else if (fileParams.endLineOneIndexedInclusive - fileParams.startLineOneIndexed > FileHandler_1.MAX_LINES) {
|
|
61
|
-
end = fileParams.startLineOneIndexed + FileHandler_1.MAX_LINES;
|
|
62
|
-
didShorten = true;
|
|
63
|
-
}
|
|
64
|
-
return { start, end, didShorten, didSetDefault };
|
|
65
|
-
}
|
|
66
|
-
async readFile(fileParams) {
|
|
67
|
-
if (!fileParams) {
|
|
68
|
-
throw new Error('No read file parameters provided. Need to give at least the path.');
|
|
69
|
-
}
|
|
70
|
-
const uri = new ide_core_common_1.URI(`${this.appConfig.workspaceDir}/${fileParams.relativeWorkspacePath}`);
|
|
71
|
-
if (!uri) {
|
|
72
|
-
const similarFiles = await this.findSimilarFiles(fileParams.relativeWorkspacePath, 3);
|
|
73
|
-
throw this.createFileNotFoundError(fileParams.relativeWorkspacePath, similarFiles);
|
|
74
|
-
}
|
|
75
|
-
const fileSizeMB = (FileHandler_1.MAX_FILE_SIZE_BYTES / 1e6).toFixed(2);
|
|
76
|
-
const fileStats = await this.fileSystemService.getFileStat(uri.toString());
|
|
77
|
-
if ((fileStats === null || fileStats === void 0 ? void 0 : fileStats.size) && fileStats.size > FileHandler_1.MAX_FILE_SIZE_BYTES) {
|
|
78
|
-
throw this.createFileTooLargeError(fileSizeMB, fileStats.size);
|
|
79
|
-
}
|
|
80
|
-
let modelReference;
|
|
81
|
-
try {
|
|
82
|
-
modelReference = await this.modelService.createModelReference(uri);
|
|
83
|
-
const fileContent = modelReference.instance.getMonacoModel().getValue();
|
|
84
|
-
const fileLines = fileContent.split(FileHandler_1.NEWLINE);
|
|
85
|
-
const shouldLimitLines = !(fileParams.readEntireFile && fileParams.fileIsAllowedToBeReadEntirely);
|
|
86
|
-
const shouldForceLimitLines = fileParams.readEntireFile && !fileParams.fileIsAllowedToBeReadEntirely;
|
|
87
|
-
let didShortenCharRange = false;
|
|
88
|
-
if (shouldLimitLines) {
|
|
89
|
-
const { start, end, didShorten: didShortenLineRange, didSetDefault: didSetDefaultLineRange, } = this.getLineRange(fileParams, shouldForceLimitLines);
|
|
90
|
-
const adjustedStart = Math.max(start, 1);
|
|
91
|
-
const adjustedEnd = Math.min(end, fileLines.length);
|
|
92
|
-
let selectedContent = fileLines.slice(adjustedStart - 1, adjustedEnd).join(FileHandler_1.NEWLINE);
|
|
93
|
-
if (selectedContent.length > FileHandler_1.MAX_CHARS) {
|
|
94
|
-
didShortenCharRange = true;
|
|
95
|
-
selectedContent = this.trimContent(selectedContent, FileHandler_1.MAX_CHARS);
|
|
96
|
-
}
|
|
97
|
-
// 文件的浏览窗口需要记录,应用的时候需要用
|
|
98
|
-
if (didShortenLineRange) {
|
|
99
|
-
this.fileResultMap.set(fileParams.relativeWorkspacePath, {
|
|
100
|
-
content: selectedContent,
|
|
101
|
-
startLineOneIndexed: adjustedStart,
|
|
102
|
-
endLineOneIndexedInclusive: adjustedEnd,
|
|
103
|
-
});
|
|
104
|
-
}
|
|
105
|
-
return {
|
|
106
|
-
contents: selectedContent,
|
|
107
|
-
didDowngradeToLineRange: shouldForceLimitLines,
|
|
108
|
-
didShortenLineRange,
|
|
109
|
-
didShortenCharRange,
|
|
110
|
-
didSetDefaultLineRange,
|
|
111
|
-
fullFileContents: fileContent,
|
|
112
|
-
startLineOneIndexed: adjustedStart,
|
|
113
|
-
endLineOneIndexedInclusive: adjustedEnd,
|
|
114
|
-
relativeWorkspacePath: fileParams.relativeWorkspacePath,
|
|
115
|
-
};
|
|
116
|
-
}
|
|
117
|
-
let fullContent = fileContent;
|
|
118
|
-
if (fullContent.length > FileHandler_1.MAX_CHARS) {
|
|
119
|
-
didShortenCharRange = true;
|
|
120
|
-
fullContent = this.trimContent(fullContent, FileHandler_1.MAX_CHARS);
|
|
121
|
-
}
|
|
122
|
-
return {
|
|
123
|
-
contents: fullContent,
|
|
124
|
-
fullFileContents: fileContent,
|
|
125
|
-
didDowngradeToLineRange: false,
|
|
126
|
-
didShortenCharRange,
|
|
127
|
-
};
|
|
128
|
-
}
|
|
129
|
-
finally {
|
|
130
|
-
modelReference === null || modelReference === void 0 ? void 0 : modelReference.dispose();
|
|
131
|
-
}
|
|
132
|
-
}
|
|
133
|
-
getFileReadResult(relativeWorkspacePath) {
|
|
134
|
-
return this.fileResultMap.get(relativeWorkspacePath);
|
|
135
|
-
}
|
|
136
|
-
};
|
|
137
|
-
exports.FileHandler = FileHandler;
|
|
138
|
-
FileHandler.MAX_FILE_SIZE_BYTES = 2e6;
|
|
139
|
-
FileHandler.MAX_LINES = 250;
|
|
140
|
-
FileHandler.MAX_CHARS = 1e5;
|
|
141
|
-
FileHandler.NEWLINE = '\n';
|
|
142
|
-
tslib_1.__decorate([
|
|
143
|
-
(0, di_1.Autowired)(browser_1.IEditorDocumentModelService),
|
|
144
|
-
tslib_1.__metadata("design:type", Object)
|
|
145
|
-
], FileHandler.prototype, "modelService", void 0);
|
|
146
|
-
tslib_1.__decorate([
|
|
147
|
-
(0, di_1.Autowired)(file_search_contribution_1.FileSearchQuickCommandHandler),
|
|
148
|
-
tslib_1.__metadata("design:type", file_search_contribution_1.FileSearchQuickCommandHandler)
|
|
149
|
-
], FileHandler.prototype, "fileSearchQuickCommandHandler", void 0);
|
|
150
|
-
tslib_1.__decorate([
|
|
151
|
-
(0, di_1.Autowired)(ide_core_browser_1.AppConfig),
|
|
152
|
-
tslib_1.__metadata("design:type", Object)
|
|
153
|
-
], FileHandler.prototype, "appConfig", void 0);
|
|
154
|
-
tslib_1.__decorate([
|
|
155
|
-
(0, di_1.Autowired)(ide_file_service_1.IFileServiceClient),
|
|
156
|
-
tslib_1.__metadata("design:type", Object)
|
|
157
|
-
], FileHandler.prototype, "fileSystemService", void 0);
|
|
158
|
-
exports.FileHandler = FileHandler = FileHandler_1 = tslib_1.__decorate([
|
|
159
|
-
(0, di_1.Injectable)()
|
|
160
|
-
], FileHandler);
|
|
161
|
-
//# sourceMappingURL=ReadFile.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"ReadFile.js","sourceRoot":"","sources":["../../../../../src/browser/mcp/tools/handlers/ReadFile.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,43 +0,0 @@
|
|
|
1
|
-
import z from 'zod';
|
|
2
|
-
import { AppConfig } from '@opensumi/ide-core-browser';
|
|
3
|
-
import { ITerminalController, ITerminalGroupViewService } from '@opensumi/ide-terminal-next';
|
|
4
|
-
import { MCPLogger } from '../../../types';
|
|
5
|
-
export declare const inputSchema: z.ZodObject<{
|
|
6
|
-
command: z.ZodString;
|
|
7
|
-
is_background: z.ZodBoolean;
|
|
8
|
-
explanation: z.ZodString;
|
|
9
|
-
require_user_approval: z.ZodBoolean;
|
|
10
|
-
}, "strip", z.ZodTypeAny, {
|
|
11
|
-
command: string;
|
|
12
|
-
explanation: string;
|
|
13
|
-
is_background: boolean;
|
|
14
|
-
require_user_approval: boolean;
|
|
15
|
-
}, {
|
|
16
|
-
command: string;
|
|
17
|
-
explanation: string;
|
|
18
|
-
is_background: boolean;
|
|
19
|
-
require_user_approval: boolean;
|
|
20
|
-
}>;
|
|
21
|
-
export declare class RunCommandHandler {
|
|
22
|
-
protected readonly terminalController: ITerminalController;
|
|
23
|
-
protected readonly appConfig: AppConfig;
|
|
24
|
-
protected readonly terminalView: ITerminalGroupViewService;
|
|
25
|
-
private approvalDeferredMap;
|
|
26
|
-
private terminalId;
|
|
27
|
-
getShellLaunchConfig(command: string): {
|
|
28
|
-
name: string;
|
|
29
|
-
cwd: string;
|
|
30
|
-
args: string[];
|
|
31
|
-
};
|
|
32
|
-
handler(args: z.infer<typeof inputSchema> & {
|
|
33
|
-
toolCallId: string;
|
|
34
|
-
}, logger: MCPLogger): Promise<{
|
|
35
|
-
isError?: boolean;
|
|
36
|
-
content: {
|
|
37
|
-
type: string;
|
|
38
|
-
text: string;
|
|
39
|
-
}[];
|
|
40
|
-
}>;
|
|
41
|
-
handleApproval(callId: string, approval: boolean): void;
|
|
42
|
-
}
|
|
43
|
-
//# sourceMappingURL=RunCommand.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"RunCommand.d.ts","sourceRoot":"","sources":["../../../../../src/browser/mcp/tools/handlers/RunCommand.ts"],"names":[],"mappings":"AAAA,OAAO,CAAC,MAAM,KAAK,CAAC;AAGpB,OAAO,EAAE,SAAS,EAAE,MAAM,4BAA4B,CAAC;AACvD,OAAO,EAAE,mBAAmB,EAAE,yBAAyB,EAAE,MAAM,6BAA6B,CAAC;AAG7F,OAAO,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAO3C,eAAO,MAAM,WAAW;;;;;;;;;;;;;;;EAWtB,CAAC;AAEH,qBACa,iBAAiB;IAE5B,SAAS,CAAC,QAAQ,CAAC,kBAAkB,EAAE,mBAAmB,CAAC;IAG3D,SAAS,CAAC,QAAQ,CAAC,SAAS,EAAE,SAAS,CAAC;IAGxC,SAAS,CAAC,QAAQ,CAAC,YAAY,EAAE,yBAAyB,CAAC;IAE3D,OAAO,CAAC,mBAAmB,CAAwC;IAEnE,OAAO,CAAC,UAAU,CAAK;IAEvB,oBAAoB,CAAC,OAAO,EAAE,MAAM;;;;;IAQ9B,OAAO,CAAC,IAAI,EAAE,CAAC,CAAC,KAAK,CAAC,OAAO,WAAW,CAAC,GAAG;QAAE,UAAU,EAAE,MAAM,CAAA;KAAE,EAAE,MAAM,EAAE,SAAS;kBAyBpD,OAAO;iBAAW;YAAE,IAAI,EAAE,MAAM,CAAC;YAAC,IAAI,EAAE,MAAM,CAAA;SAAE,EAAE;;IA+BzF,cAAc,CAAC,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,OAAO;CAQjD"}
|
|
@@ -1,104 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.RunCommandHandler = exports.inputSchema = void 0;
|
|
4
|
-
const tslib_1 = require("tslib");
|
|
5
|
-
const zod_1 = tslib_1.__importDefault(require("zod"));
|
|
6
|
-
const di_1 = require("@opensumi/di");
|
|
7
|
-
const ide_core_browser_1 = require("@opensumi/ide-core-browser");
|
|
8
|
-
const ide_terminal_next_1 = require("@opensumi/ide-terminal-next");
|
|
9
|
-
const promises_1 = require("@opensumi/ide-utils/lib/promises");
|
|
10
|
-
const color = {
|
|
11
|
-
italic: '\x1b[3m',
|
|
12
|
-
reset: '\x1b[0m',
|
|
13
|
-
};
|
|
14
|
-
exports.inputSchema = zod_1.default.object({
|
|
15
|
-
command: zod_1.default.string().describe('The terminal command to execute'),
|
|
16
|
-
is_background: zod_1.default.boolean().describe('Whether the command should be run in the background'),
|
|
17
|
-
explanation: zod_1.default
|
|
18
|
-
.string()
|
|
19
|
-
.describe('One sentence explanation as to why this command needs to be run and how it contributes to the goal.'),
|
|
20
|
-
require_user_approval: zod_1.default
|
|
21
|
-
.boolean()
|
|
22
|
-
.describe("Whether the user must approve the command before it is executed. Only set this to false if the command is safe and if it matches the user's requirements for commands that should be executed automatically."),
|
|
23
|
-
});
|
|
24
|
-
let RunCommandHandler = class RunCommandHandler {
|
|
25
|
-
constructor() {
|
|
26
|
-
this.approvalDeferredMap = new Map();
|
|
27
|
-
this.terminalId = 0;
|
|
28
|
-
}
|
|
29
|
-
getShellLaunchConfig(command) {
|
|
30
|
-
return {
|
|
31
|
-
name: `MCP:Terminal_${this.terminalId++}`,
|
|
32
|
-
cwd: this.appConfig.workspaceDir,
|
|
33
|
-
args: ['-c', command],
|
|
34
|
-
};
|
|
35
|
-
}
|
|
36
|
-
async handler(args, logger) {
|
|
37
|
-
if (args.require_user_approval) {
|
|
38
|
-
const def = new promises_1.Deferred();
|
|
39
|
-
this.approvalDeferredMap.set(args.toolCallId, def);
|
|
40
|
-
const approval = await def.promise;
|
|
41
|
-
if (!approval) {
|
|
42
|
-
return {
|
|
43
|
-
isError: false,
|
|
44
|
-
content: [
|
|
45
|
-
{
|
|
46
|
-
type: 'text',
|
|
47
|
-
text: 'User rejection',
|
|
48
|
-
},
|
|
49
|
-
],
|
|
50
|
-
};
|
|
51
|
-
}
|
|
52
|
-
}
|
|
53
|
-
const terminalClient = await this.terminalController.createTerminalWithWidget({
|
|
54
|
-
config: this.getShellLaunchConfig(args.command),
|
|
55
|
-
closeWhenExited: false,
|
|
56
|
-
});
|
|
57
|
-
this.terminalController.showTerminalPanel();
|
|
58
|
-
const result = [];
|
|
59
|
-
const def = new promises_1.Deferred();
|
|
60
|
-
terminalClient.onOutput((e) => {
|
|
61
|
-
result.push({
|
|
62
|
-
type: 'text',
|
|
63
|
-
text: e.data.toString(),
|
|
64
|
-
});
|
|
65
|
-
});
|
|
66
|
-
terminalClient.onExit((e) => {
|
|
67
|
-
const isError = e.code !== 0;
|
|
68
|
-
def.resolve({
|
|
69
|
-
isError,
|
|
70
|
-
content: result,
|
|
71
|
-
});
|
|
72
|
-
terminalClient.term.writeln(`\n${color.italic}> Command ${args.command} executed successfully. Terminal will close in ${3000 / 1000} seconds.${color.reset}\n`);
|
|
73
|
-
setTimeout(() => {
|
|
74
|
-
terminalClient.dispose();
|
|
75
|
-
this.terminalView.removeWidget(terminalClient.id);
|
|
76
|
-
}, 3000);
|
|
77
|
-
});
|
|
78
|
-
return def.promise;
|
|
79
|
-
}
|
|
80
|
-
handleApproval(callId, approval) {
|
|
81
|
-
if (!this.approvalDeferredMap.has(callId)) {
|
|
82
|
-
return;
|
|
83
|
-
}
|
|
84
|
-
const def = this.approvalDeferredMap.get(callId);
|
|
85
|
-
def === null || def === void 0 ? void 0 : def.resolve(approval);
|
|
86
|
-
}
|
|
87
|
-
};
|
|
88
|
-
exports.RunCommandHandler = RunCommandHandler;
|
|
89
|
-
tslib_1.__decorate([
|
|
90
|
-
(0, di_1.Autowired)(ide_terminal_next_1.ITerminalController),
|
|
91
|
-
tslib_1.__metadata("design:type", Object)
|
|
92
|
-
], RunCommandHandler.prototype, "terminalController", void 0);
|
|
93
|
-
tslib_1.__decorate([
|
|
94
|
-
(0, di_1.Autowired)(ide_core_browser_1.AppConfig),
|
|
95
|
-
tslib_1.__metadata("design:type", Object)
|
|
96
|
-
], RunCommandHandler.prototype, "appConfig", void 0);
|
|
97
|
-
tslib_1.__decorate([
|
|
98
|
-
(0, di_1.Autowired)(ide_terminal_next_1.ITerminalGroupViewService),
|
|
99
|
-
tslib_1.__metadata("design:type", Object)
|
|
100
|
-
], RunCommandHandler.prototype, "terminalView", void 0);
|
|
101
|
-
exports.RunCommandHandler = RunCommandHandler = tslib_1.__decorate([
|
|
102
|
-
(0, di_1.Injectable)()
|
|
103
|
-
], RunCommandHandler);
|
|
104
|
-
//# sourceMappingURL=RunCommand.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"RunCommand.js","sourceRoot":"","sources":["../../../../../src/browser/mcp/tools/handlers/RunCommand.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../../../../src/browser/mcp/tools/handlers/utils.ts"],"names":[],"mappings":"AAAA,wBAAgB,mBAAmB,CAAC,UAAU,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,MAAM,CAEjF"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"utils.js","sourceRoot":"","sources":["../../../../../src/browser/mcp/tools/handlers/utils.ts"],"names":[],"mappings":";;AAAA,kDAEC;AAFD,SAAgB,mBAAmB,CAAC,UAAkB,EAAE,SAAiB;IACvE,OAAO,GAAG,UAAU,IAAI,SAAS,EAAE,CAAC;AACtC,CAAC"}
|
|
@@ -1,8 +0,0 @@
|
|
|
1
|
-
import { IMCPServerRegistry, MCPServerContribution, MCPToolDefinition } from '../../types';
|
|
2
|
-
export declare class ListDirTool implements MCPServerContribution {
|
|
3
|
-
private readonly listDirHandler;
|
|
4
|
-
registerMCPServer(registry: IMCPServerRegistry): void;
|
|
5
|
-
getToolDefinition(): MCPToolDefinition;
|
|
6
|
-
private handler;
|
|
7
|
-
}
|
|
8
|
-
//# sourceMappingURL=listDir.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"listDir.d.ts","sourceRoot":"","sources":["../../../../src/browser/mcp/tools/listDir.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,kBAAkB,EAAa,qBAAqB,EAAE,iBAAiB,EAAE,MAAM,aAAa,CAAC;AAkBtG,qBACa,WAAY,YAAW,qBAAqB;IAEvD,OAAO,CAAC,QAAQ,CAAC,cAAc,CAAiB;IAEhD,iBAAiB,CAAC,QAAQ,EAAE,kBAAkB,GAAG,IAAI;IAIrD,iBAAiB,IAAI,iBAAiB;YAWxB,OAAO;CAqBtB"}
|