@opensumi/ide-ai-native 3.7.2-next-1739848467.0 → 3.7.2-next-1739945875.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.
Files changed (227) hide show
  1. package/lib/browser/ai-core.contribution.d.ts +3 -0
  2. package/lib/browser/ai-core.contribution.d.ts.map +1 -1
  3. package/lib/browser/ai-core.contribution.js +68 -2
  4. package/lib/browser/ai-core.contribution.js.map +1 -1
  5. package/lib/browser/chat/chat-model.d.ts +2 -2
  6. package/lib/browser/chat/chat-model.d.ts.map +1 -1
  7. package/lib/browser/chat/chat-model.js +16 -5
  8. package/lib/browser/chat/chat-model.js.map +1 -1
  9. package/lib/browser/chat/chat-proxy.service.d.ts +4 -0
  10. package/lib/browser/chat/chat-proxy.service.d.ts.map +1 -1
  11. package/lib/browser/chat/chat-proxy.service.js +43 -0
  12. package/lib/browser/chat/chat-proxy.service.js.map +1 -1
  13. package/lib/browser/chat/chat.view.d.ts.map +1 -1
  14. package/lib/browser/chat/chat.view.js +29 -2
  15. package/lib/browser/chat/chat.view.js.map +1 -1
  16. package/lib/browser/components/ChatContext/ContextSelector.d.ts +12 -0
  17. package/lib/browser/components/ChatContext/ContextSelector.d.ts.map +1 -0
  18. package/lib/browser/components/ChatContext/ContextSelector.js +113 -0
  19. package/lib/browser/components/ChatContext/ContextSelector.js.map +1 -0
  20. package/lib/browser/components/ChatContext/index.d.ts +4 -0
  21. package/lib/browser/components/ChatContext/index.d.ts.map +1 -0
  22. package/lib/browser/components/ChatContext/index.js +84 -0
  23. package/lib/browser/components/ChatContext/index.js.map +1 -0
  24. package/lib/browser/components/ChatContext/style.module.less +189 -0
  25. package/lib/browser/components/ChatInput.d.ts.map +1 -1
  26. package/lib/browser/components/ChatInput.js.map +1 -1
  27. package/lib/browser/components/ChatReply.d.ts.map +1 -1
  28. package/lib/browser/components/ChatReply.js +25 -0
  29. package/lib/browser/components/ChatReply.js.map +1 -1
  30. package/lib/browser/components/ChatToolRender.d.ts +6 -0
  31. package/lib/browser/components/ChatToolRender.d.ts.map +1 -0
  32. package/lib/browser/components/ChatToolRender.js +53 -0
  33. package/lib/browser/components/ChatToolRender.js.map +1 -0
  34. package/lib/browser/components/ChatToolRender.module.less +86 -0
  35. package/lib/browser/components/components.module.less +32 -31
  36. package/lib/browser/components/utils.d.ts +2 -2
  37. package/lib/browser/context/llm-context.contribution.d.ts +7 -0
  38. package/lib/browser/context/llm-context.contribution.d.ts.map +1 -0
  39. package/lib/browser/context/llm-context.contribution.js +21 -0
  40. package/lib/browser/context/llm-context.contribution.js.map +1 -0
  41. package/lib/browser/context/llm-context.service.d.ts +24 -0
  42. package/lib/browser/context/llm-context.service.d.ts.map +1 -0
  43. package/lib/browser/context/llm-context.service.js +136 -0
  44. package/lib/browser/context/llm-context.service.js.map +1 -0
  45. package/lib/browser/index.d.ts +11 -3
  46. package/lib/browser/index.d.ts.map +1 -1
  47. package/lib/browser/index.js +56 -3
  48. package/lib/browser/index.js.map +1 -1
  49. package/lib/browser/mcp/mcp-server-proxy.service.d.ts +25 -0
  50. package/lib/browser/mcp/mcp-server-proxy.service.d.ts.map +1 -0
  51. package/lib/browser/mcp/mcp-server-proxy.service.js +56 -0
  52. package/lib/browser/mcp/mcp-server-proxy.service.js.map +1 -0
  53. package/lib/browser/mcp/mcp-server.feature.registry.d.ts +16 -0
  54. package/lib/browser/mcp/mcp-server.feature.registry.d.ts.map +1 -0
  55. package/lib/browser/mcp/mcp-server.feature.registry.js +53 -0
  56. package/lib/browser/mcp/mcp-server.feature.registry.js.map +1 -0
  57. package/lib/browser/mcp/mcp-tools-dialog.module.less +44 -0
  58. package/lib/browser/mcp/mcp-tools-dialog.view.d.ts +8 -0
  59. package/lib/browser/mcp/mcp-tools-dialog.view.d.ts.map +1 -0
  60. package/lib/browser/mcp/mcp-tools-dialog.view.js +16 -0
  61. package/lib/browser/mcp/mcp-tools-dialog.view.js.map +1 -0
  62. package/lib/browser/mcp/tools/createNewFileWithText.d.ts +9 -0
  63. package/lib/browser/mcp/tools/createNewFileWithText.d.ts.map +1 -0
  64. package/lib/browser/mcp/tools/createNewFileWithText.js +83 -0
  65. package/lib/browser/mcp/tools/createNewFileWithText.js.map +1 -0
  66. package/lib/browser/mcp/tools/findFilesByNameSubstring.d.ts +9 -0
  67. package/lib/browser/mcp/tools/findFilesByNameSubstring.d.ts.map +1 -0
  68. package/lib/browser/mcp/tools/findFilesByNameSubstring.js +92 -0
  69. package/lib/browser/mcp/tools/findFilesByNameSubstring.js.map +1 -0
  70. package/lib/browser/mcp/tools/getCurrentFilePath.d.ts +8 -0
  71. package/lib/browser/mcp/tools/getCurrentFilePath.d.ts.map +1 -0
  72. package/lib/browser/mcp/tools/getCurrentFilePath.js +49 -0
  73. package/lib/browser/mcp/tools/getCurrentFilePath.js.map +1 -0
  74. package/lib/browser/mcp/tools/getDiagnosticsByPath.d.ts +10 -0
  75. package/lib/browser/mcp/tools/getDiagnosticsByPath.d.ts.map +1 -0
  76. package/lib/browser/mcp/tools/getDiagnosticsByPath.js +119 -0
  77. package/lib/browser/mcp/tools/getDiagnosticsByPath.js.map +1 -0
  78. package/lib/browser/mcp/tools/getFileTextByPath.d.ts +9 -0
  79. package/lib/browser/mcp/tools/getFileTextByPath.d.ts.map +1 -0
  80. package/lib/browser/mcp/tools/getFileTextByPath.js +97 -0
  81. package/lib/browser/mcp/tools/getFileTextByPath.js.map +1 -0
  82. package/lib/browser/mcp/tools/getOpenEditorFileDiagnostics.d.ts +11 -0
  83. package/lib/browser/mcp/tools/getOpenEditorFileDiagnostics.d.ts.map +1 -0
  84. package/lib/browser/mcp/tools/getOpenEditorFileDiagnostics.js +119 -0
  85. package/lib/browser/mcp/tools/getOpenEditorFileDiagnostics.js.map +1 -0
  86. package/lib/browser/mcp/tools/getOpenEditorFileText.d.ts +8 -0
  87. package/lib/browser/mcp/tools/getOpenEditorFileText.d.ts.map +1 -0
  88. package/lib/browser/mcp/tools/getOpenEditorFileText.js +50 -0
  89. package/lib/browser/mcp/tools/getOpenEditorFileText.js.map +1 -0
  90. package/lib/browser/mcp/tools/getSelectedText.d.ts +8 -0
  91. package/lib/browser/mcp/tools/getSelectedText.d.ts.map +1 -0
  92. package/lib/browser/mcp/tools/getSelectedText.js +57 -0
  93. package/lib/browser/mcp/tools/getSelectedText.js.map +1 -0
  94. package/lib/browser/mcp/tools/handlers/ListDir.d.ts +21 -0
  95. package/lib/browser/mcp/tools/handlers/ListDir.d.ts.map +1 -0
  96. package/lib/browser/mcp/tools/handlers/ListDir.js +112 -0
  97. package/lib/browser/mcp/tools/handlers/ListDir.js.map +1 -0
  98. package/lib/browser/mcp/tools/handlers/ReadFile.d.ts +47 -0
  99. package/lib/browser/mcp/tools/handlers/ReadFile.d.ts.map +1 -0
  100. package/lib/browser/mcp/tools/handlers/ReadFile.js +147 -0
  101. package/lib/browser/mcp/tools/handlers/ReadFile.js.map +1 -0
  102. package/lib/browser/mcp/tools/listDir.d.ts +8 -0
  103. package/lib/browser/mcp/tools/listDir.d.ts.map +1 -0
  104. package/lib/browser/mcp/tools/listDir.js +65 -0
  105. package/lib/browser/mcp/tools/listDir.js.map +1 -0
  106. package/lib/browser/mcp/tools/readFile.d.ts +8 -0
  107. package/lib/browser/mcp/tools/readFile.d.ts.map +1 -0
  108. package/lib/browser/mcp/tools/readFile.js +82 -0
  109. package/lib/browser/mcp/tools/readFile.js.map +1 -0
  110. package/lib/browser/mcp/tools/replaceOpenEditorFile.d.ts +8 -0
  111. package/lib/browser/mcp/tools/replaceOpenEditorFile.d.ts.map +1 -0
  112. package/lib/browser/mcp/tools/replaceOpenEditorFile.js +79 -0
  113. package/lib/browser/mcp/tools/replaceOpenEditorFile.js.map +1 -0
  114. package/lib/browser/mcp/tools/replaceOpenEditorFileByDiffPreviewer.d.ts +8 -0
  115. package/lib/browser/mcp/tools/replaceOpenEditorFileByDiffPreviewer.d.ts.map +1 -0
  116. package/lib/browser/mcp/tools/replaceOpenEditorFileByDiffPreviewer.js +84 -0
  117. package/lib/browser/mcp/tools/replaceOpenEditorFileByDiffPreviewer.js.map +1 -0
  118. package/lib/browser/mcp/tools/runTerminalCmd.d.ts +18 -0
  119. package/lib/browser/mcp/tools/runTerminalCmd.d.ts.map +1 -0
  120. package/lib/browser/mcp/tools/runTerminalCmd.js +96 -0
  121. package/lib/browser/mcp/tools/runTerminalCmd.js.map +1 -0
  122. package/lib/browser/preferences/schema.d.ts.map +1 -1
  123. package/lib/browser/preferences/schema.js +60 -0
  124. package/lib/browser/preferences/schema.js.map +1 -1
  125. package/lib/browser/types.d.ts +45 -0
  126. package/lib/browser/types.d.ts.map +1 -1
  127. package/lib/browser/types.js +5 -1
  128. package/lib/browser/types.js.map +1 -1
  129. package/lib/common/index.d.ts +9 -0
  130. package/lib/common/index.d.ts.map +1 -1
  131. package/lib/common/index.js +4 -1
  132. package/lib/common/index.js.map +1 -1
  133. package/lib/common/llm-context.d.ts +37 -0
  134. package/lib/common/llm-context.d.ts.map +1 -0
  135. package/lib/common/llm-context.js +5 -0
  136. package/lib/common/llm-context.js.map +1 -0
  137. package/lib/common/mcp-server-manager.d.ts +40 -0
  138. package/lib/common/mcp-server-manager.d.ts.map +1 -0
  139. package/lib/common/mcp-server-manager.js +6 -0
  140. package/lib/common/mcp-server-manager.js.map +1 -0
  141. package/lib/common/tool-invocation-registry.d.ts +91 -0
  142. package/lib/common/tool-invocation-registry.d.ts.map +1 -0
  143. package/lib/common/tool-invocation-registry.js +90 -0
  144. package/lib/common/tool-invocation-registry.js.map +1 -0
  145. package/lib/common/types.d.ts +17 -0
  146. package/lib/common/types.d.ts.map +1 -1
  147. package/lib/node/anthropic/anthropic-language-model.d.ts +9 -0
  148. package/lib/node/anthropic/anthropic-language-model.d.ts.map +1 -0
  149. package/lib/node/anthropic/anthropic-language-model.js +26 -0
  150. package/lib/node/anthropic/anthropic-language-model.js.map +1 -0
  151. package/lib/node/base-language-model.d.ts +14 -0
  152. package/lib/node/base-language-model.d.ts.map +1 -0
  153. package/lib/node/base-language-model.js +136 -0
  154. package/lib/node/base-language-model.js.map +1 -0
  155. package/lib/node/deepseek/deepseek-language-model.d.ts +9 -0
  156. package/lib/node/deepseek/deepseek-language-model.d.ts.map +1 -0
  157. package/lib/node/deepseek/deepseek-language-model.js +26 -0
  158. package/lib/node/deepseek/deepseek-language-model.js.map +1 -0
  159. package/lib/node/index.d.ts.map +1 -1
  160. package/lib/node/index.js +19 -0
  161. package/lib/node/index.js.map +1 -1
  162. package/lib/node/mcp/sumi-mcp-server.d.ts +91 -0
  163. package/lib/node/mcp/sumi-mcp-server.d.ts.map +1 -0
  164. package/lib/node/mcp/sumi-mcp-server.js +172 -0
  165. package/lib/node/mcp/sumi-mcp-server.js.map +1 -0
  166. package/lib/node/mcp-server-manager-impl.d.ts +27 -0
  167. package/lib/node/mcp-server-manager-impl.d.ts.map +1 -0
  168. package/lib/node/mcp-server-manager-impl.js +127 -0
  169. package/lib/node/mcp-server-manager-impl.js.map +1 -0
  170. package/lib/node/mcp-server.d.ts +207 -0
  171. package/lib/node/mcp-server.d.ts.map +1 -0
  172. package/lib/node/mcp-server.js +91 -0
  173. package/lib/node/mcp-server.js.map +1 -0
  174. package/lib/node/openai/openai-language-model.d.ts +9 -0
  175. package/lib/node/openai/openai-language-model.d.ts.map +1 -0
  176. package/lib/node/openai/openai-language-model.js +29 -0
  177. package/lib/node/openai/openai-language-model.js.map +1 -0
  178. package/package.json +34 -22
  179. package/src/browser/ai-core.contribution.ts +77 -1
  180. package/src/browser/chat/chat-model.ts +24 -6
  181. package/src/browser/chat/chat-proxy.service.ts +42 -0
  182. package/src/browser/chat/chat.view.tsx +59 -6
  183. package/src/browser/components/ChatContext/ContextSelector.tsx +177 -0
  184. package/src/browser/components/ChatContext/index.tsx +135 -0
  185. package/src/browser/components/ChatContext/style.module.less +189 -0
  186. package/src/browser/components/ChatInput.tsx +1 -0
  187. package/src/browser/components/ChatReply.tsx +32 -0
  188. package/src/browser/components/ChatToolRender.module.less +86 -0
  189. package/src/browser/components/ChatToolRender.tsx +77 -0
  190. package/src/browser/components/components.module.less +32 -31
  191. package/src/browser/context/llm-context.contribution.ts +14 -0
  192. package/src/browser/context/llm-context.service.ts +156 -0
  193. package/src/browser/index.ts +68 -4
  194. package/src/browser/mcp/mcp-server-proxy.service.ts +53 -0
  195. package/src/browser/mcp/mcp-server.feature.registry.ts +54 -0
  196. package/src/browser/mcp/mcp-tools-dialog.module.less +44 -0
  197. package/src/browser/mcp/mcp-tools-dialog.view.tsx +24 -0
  198. package/src/browser/mcp/tools/createNewFileWithText.ts +83 -0
  199. package/src/browser/mcp/tools/findFilesByNameSubstring.ts +93 -0
  200. package/src/browser/mcp/tools/getCurrentFilePath.ts +49 -0
  201. package/src/browser/mcp/tools/getDiagnosticsByPath.ts +123 -0
  202. package/src/browser/mcp/tools/getFileTextByPath.ts +97 -0
  203. package/src/browser/mcp/tools/getOpenEditorFileDiagnostics.ts +121 -0
  204. package/src/browser/mcp/tools/getOpenEditorFileText.ts +50 -0
  205. package/src/browser/mcp/tools/getSelectedText.ts +57 -0
  206. package/src/browser/mcp/tools/handlers/ListDir.ts +117 -0
  207. package/src/browser/mcp/tools/handlers/ReadFile.ts +174 -0
  208. package/src/browser/mcp/tools/listDir.ts +66 -0
  209. package/src/browser/mcp/tools/readFile.ts +82 -0
  210. package/src/browser/mcp/tools/replaceOpenEditorFile.ts +80 -0
  211. package/src/browser/mcp/tools/replaceOpenEditorFileByDiffPreviewer.ts +91 -0
  212. package/src/browser/mcp/tools/runTerminalCmd.ts +107 -0
  213. package/src/browser/preferences/schema.ts +60 -0
  214. package/src/browser/types.ts +56 -0
  215. package/src/common/index.ts +14 -0
  216. package/src/common/llm-context.ts +41 -0
  217. package/src/common/mcp-server-manager.ts +46 -0
  218. package/src/common/tool-invocation-registry.ts +170 -0
  219. package/src/common/types.ts +22 -0
  220. package/src/node/anthropic/anthropic-language-model.ts +25 -0
  221. package/src/node/base-language-model.ts +163 -0
  222. package/src/node/deepseek/deepseek-language-model.ts +25 -0
  223. package/src/node/index.ts +21 -0
  224. package/src/node/mcp/sumi-mcp-server.ts +197 -0
  225. package/src/node/mcp-server-manager-impl.ts +148 -0
  226. package/src/node/mcp-server.ts +126 -0
  227. package/src/node/openai/openai-language-model.ts +25 -0
@@ -6,7 +6,8 @@ const di_1 = require("@opensumi/di");
6
6
  const ide_core_browser_1 = require("@opensumi/ide-core-browser");
7
7
  const ide_core_common_1 = require("@opensumi/ide-core-common");
8
8
  const common_1 = require("../common");
9
- const common_2 = require("../common");
9
+ const llm_context_1 = require("../common/llm-context");
10
+ const mcp_server_manager_1 = require("../common/mcp-server-manager");
10
11
  const ai_core_contribution_1 = require("./ai-core.contribution");
11
12
  const chat_agent_service_1 = require("./chat/chat-agent.service");
12
13
  const chat_agent_view_service_1 = require("./chat/chat-agent.view.service");
@@ -16,6 +17,8 @@ const chat_api_service_1 = require("./chat/chat.api.service");
16
17
  const chat_feature_registry_1 = require("./chat/chat.feature.registry");
17
18
  const chat_internal_service_1 = require("./chat/chat.internal.service");
18
19
  const chat_render_registry_1 = require("./chat/chat.render.registry");
20
+ const llm_context_contribution_1 = require("./context/llm-context.contribution");
21
+ const llm_context_service_1 = require("./context/llm-context.service");
19
22
  const code_action_contribution_1 = require("./contrib/code-action/code-action.contribution");
20
23
  const completeProvider_1 = require("./contrib/inline-completions/completeProvider");
21
24
  const intelligent_completions_contribution_1 = require("./contrib/intelligent-completions/intelligent-completions.contribution");
@@ -28,6 +31,20 @@ const rename_feature_registry_1 = require("./contrib/rename/rename.feature.regis
28
31
  const terminal_ai_contributon_1 = require("./contrib/terminal/terminal-ai.contributon");
29
32
  const terminal_feature_registry_1 = require("./contrib/terminal/terminal.feature.registry");
30
33
  const service_1 = require("./languages/service");
34
+ const mcp_server_proxy_service_1 = require("./mcp/mcp-server-proxy.service");
35
+ const mcp_server_feature_registry_1 = require("./mcp/mcp-server.feature.registry");
36
+ const createNewFileWithText_1 = require("./mcp/tools/createNewFileWithText");
37
+ const findFilesByNameSubstring_1 = require("./mcp/tools/findFilesByNameSubstring");
38
+ const getCurrentFilePath_1 = require("./mcp/tools/getCurrentFilePath");
39
+ const getDiagnosticsByPath_1 = require("./mcp/tools/getDiagnosticsByPath");
40
+ const getFileTextByPath_1 = require("./mcp/tools/getFileTextByPath");
41
+ const getOpenEditorFileDiagnostics_1 = require("./mcp/tools/getOpenEditorFileDiagnostics");
42
+ const getOpenEditorFileText_1 = require("./mcp/tools/getOpenEditorFileText");
43
+ const getSelectedText_1 = require("./mcp/tools/getSelectedText");
44
+ const listDir_1 = require("./mcp/tools/listDir");
45
+ const readFile_1 = require("./mcp/tools/readFile");
46
+ const replaceOpenEditorFileByDiffPreviewer_1 = require("./mcp/tools/replaceOpenEditorFileByDiffPreviewer");
47
+ const runTerminalCmd_1 = require("./mcp/tools/runTerminalCmd");
31
48
  const preferences_1 = require("./preferences");
32
49
  const types_1 = require("./types");
33
50
  const inline_chat_feature_registry_1 = require("./widget/inline-chat/inline-chat.feature.registry");
@@ -36,7 +53,7 @@ const inline_diff_1 = require("./widget/inline-diff");
36
53
  let AINativeModule = class AINativeModule extends ide_core_browser_1.BrowserModule {
37
54
  constructor() {
38
55
  super();
39
- this.contributionProvider = types_1.AINativeCoreContribution;
56
+ this.contributionProvider = [types_1.AINativeCoreContribution, types_1.MCPServerContribution];
40
57
  this.providers = [
41
58
  ai_core_contribution_1.AINativeBrowserContribution,
42
59
  interface_navigation_contribution_1.InterfaceNavigationContribution,
@@ -45,6 +62,34 @@ let AINativeModule = class AINativeModule extends ide_core_browser_1.BrowserModu
45
62
  code_action_contribution_1.AICodeActionContribution,
46
63
  preferences_1.AINativePreferencesContribution,
47
64
  intelligent_completions_contribution_1.IntelligentCompletionsContribution,
65
+ // MCP Server Contributions START
66
+ listDir_1.ListDirTool,
67
+ readFile_1.ReadFileTool,
68
+ createNewFileWithText_1.CreateNewFileWithTextTool,
69
+ getSelectedText_1.GetSelectedTextTool,
70
+ getOpenEditorFileDiagnostics_1.GetOpenEditorFileDiagnosticsTool,
71
+ getOpenEditorFileText_1.GetOpenEditorFileTextTool,
72
+ getFileTextByPath_1.GetFileTextByPathTool,
73
+ getCurrentFilePath_1.GetCurrentFilePathTool,
74
+ findFilesByNameSubstring_1.FindFilesByNameSubstringTool,
75
+ getDiagnosticsByPath_1.GetDiagnosticsByPathTool,
76
+ runTerminalCmd_1.RunTerminalCommandTool,
77
+ replaceOpenEditorFileByDiffPreviewer_1.ReplaceOpenEditorFileByDiffPreviewerTool,
78
+ // MCP Server Contributions END
79
+ // Context Service
80
+ llm_context_contribution_1.LlmContextContribution,
81
+ {
82
+ token: llm_context_1.LLMContextServiceToken,
83
+ useClass: llm_context_service_1.LLMContextServiceImpl,
84
+ },
85
+ {
86
+ token: types_1.TokenMCPServerRegistry,
87
+ useClass: mcp_server_feature_registry_1.MCPServerRegistry,
88
+ },
89
+ {
90
+ token: common_1.TokenMCPServerProxyService,
91
+ useClass: mcp_server_proxy_service_1.MCPServerProxyService,
92
+ },
48
93
  {
49
94
  token: ide_core_browser_1.InlineChatFeatureRegistryToken,
50
95
  useClass: inline_chat_feature_registry_1.InlineChatFeatureRegistry,
@@ -110,7 +155,7 @@ let AINativeModule = class AINativeModule extends ide_core_browser_1.BrowserModu
110
155
  useClass: service_1.LanguageParserService,
111
156
  },
112
157
  {
113
- token: common_2.IAIInlineCompletionsProvider,
158
+ token: common_1.IAIInlineCompletionsProvider,
114
159
  useClass: completeProvider_1.AIInlineCompletionsProvider,
115
160
  },
116
161
  {
@@ -124,6 +169,14 @@ let AINativeModule = class AINativeModule extends ide_core_browser_1.BrowserModu
124
169
  token: ide_core_browser_1.AIBackSerivceToken,
125
170
  clientToken: common_1.ChatProxyServiceToken,
126
171
  },
172
+ {
173
+ servicePath: mcp_server_manager_1.MCPServerManagerPath,
174
+ token: mcp_server_manager_1.MCPServerManager,
175
+ },
176
+ {
177
+ clientToken: common_1.TokenMCPServerProxyService,
178
+ servicePath: common_1.SumiMCPServerProxyServicePath,
179
+ },
127
180
  ];
128
181
  this.aiNativeConfig.setAINativeModuleLoaded(true);
129
182
  }
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/browser/index.ts"],"names":[],"mappings":";;;;AAAA,qCAA+D;AAC/D,iEAaoC;AACpC,+DAImC;AAEnC,sCAAgH;AAChH,sCAAyD;AAEzD,iEAAqE;AACrE,kEAA6D;AAC7D,4EAAsE;AACtE,sEAAiE;AACjE,kEAA6D;AAC7D,8DAAsD;AACtD,wEAAmE;AACnE,wEAAmE;AACnE,sEAAiE;AACjE,6FAA0F;AAC1F,oFAA4F;AAC5F,iIAA4H;AAC5H,yIAA4H;AAC5H,wHAAmH;AACnH,6DAAqE;AACrE,8GAAmG;AACnG,qGAAgG;AAChG,sFAA4F;AAC5F,wFAAoF;AACpF,4FAAuF;AACvF,iDAA4D;AAC5D,+CAAgE;AAChE,mCAAmD;AACnD,oGAA8F;AAC9F,kFAA6E;AAC7E,sDAAyD;AAGlD,IAAM,cAAc,GAApB,MAAM,cAAe,SAAQ,gCAAa;IAI/C;QACE,KAAK,EAAE,CAAC;QAIV,yBAAoB,GAAG,gCAAwB,CAAC;QAChD,cAAS,GAAe;YACtB,kDAA2B;YAC3B,mEAA+B;YAC/B,gDAAsB;YACtB,0CAAyB;YACzB,mDAAwB;YACxB,6CAA+B;YAC/B,yEAAkC;YAClC;gBACE,KAAK,EAAE,iDAA8B;gBACrC,QAAQ,EAAE,wDAAyB;aACpC;YACD;gBACE,KAAK,EAAE,2CAAwB;gBAC/B,QAAQ,EAAE,2CAAmB;aAC9B;YACD;gBACE,KAAK,EAAE,0CAAuB;gBAC9B,QAAQ,EAAE,yCAAkB;aAC7B;YACD;gBACE,KAAK,EAAE,+CAA4B;gBACnC,QAAQ,EAAE,yDAAuB;aAClC;YACD;gBACE,KAAK,EAAE,qDAAmC;gBAC1C,QAAQ,EAAE,yEAA8B;aACzC;YACD;gBACE,KAAK,EAAE,uCAAoB;gBAC3B,QAAQ,EAAE,uCAAiB;aAC5B;YACD;gBACE,KAAK,EAAE,4BAAmB;gBAC1B,QAAQ,EAAE,yCAAkB;aAC7B;YACD;gBACE,KAAK,EAAE,0BAAiB;gBACxB,QAAQ,EAAE,qCAAgB;aAC3B;YACD;gBACE,KAAK,EAAE,4CAAyB;gBAChC,QAAQ,EAAE,8CAAoB;aAC/B;YACD;gBACE,KAAK,EAAE,6BAAoB;gBAC3B,QAAQ,EAAE,2CAAmB;aAC9B;YACD;gBACE,KAAK,EAAE,8BAAqB;gBAC5B,QAAQ,EAAE,qCAAgB;aAC3B;YACD;gBACE,KAAK,EAAE,mCAAgB;gBACvB,QAAQ,EAAE,8BAAW;aACtB;YACD;gBACE,KAAK,EAAE,wDAAqC;gBAC5C,QAAQ,EAAE,0DAAgC;aAC3C;YACD;gBACE,KAAK,EAAE,yCAAuB;gBAC9B,QAAQ,EAAE,yDAA0B;aACrC;YACD;gBACE,KAAK,EAAE,uCAAqB;gBAC5B,QAAQ,EAAE,mDAAuB;aAClC;YACD;gBACE,KAAK,EAAE,+BAAqB;gBAC5B,QAAQ,EAAE,+BAAqB;aAChC;YACD;gBACE,KAAK,EAAE,qCAA4B;gBACnC,QAAQ,EAAE,8CAA2B;aACtC;YACD;gBACE,KAAK,EAAE,+BAAiB;gBACxB,QAAQ,EAAE,+BAAiB;aAC5B;SACF,CAAC;QAEF,iBAAY,GAAG;YACb;gBACE,WAAW,EAAE,oCAAiB;gBAC9B,KAAK,EAAE,qCAAkB;gBACzB,WAAW,EAAE,8BAAqB;aACnC;SACF,CAAC;QA5FA,IAAI,CAAC,cAAc,CAAC,uBAAuB,CAAC,IAAI,CAAC,CAAC;IACpD,CAAC;CA4FF,CAAA;AAnGY,wCAAc;AAEN;IADlB,IAAA,cAAS,EAAC,wCAAqB,CAAC;sCACE,wCAAqB;sDAAC;yBAF9C,cAAc;IAD1B,IAAA,eAAU,GAAE;;GACA,cAAc,CAmG1B"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/browser/index.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,25 @@
1
+ import { Event } from '@opensumi/ide-core-common';
2
+ import { IMCPServerProxyService } from '../../common/types';
3
+ export declare class MCPServerProxyService implements IMCPServerProxyService {
4
+ private readonly mcpServerRegistry;
5
+ private readonly logger;
6
+ private readonly sumiMCPServerProxyService;
7
+ private readonly _onChangeMCPServers;
8
+ readonly onChangeMCPServers: Event<any>;
9
+ $callMCPTool(name: string, args: any): Promise<{
10
+ content: {
11
+ type: string;
12
+ text: string;
13
+ }[];
14
+ isError?: boolean;
15
+ }>;
16
+ $getMCPTools(): Promise<{
17
+ name: string;
18
+ description: string;
19
+ inputSchema: any;
20
+ providerName: string;
21
+ }[]>;
22
+ $updateMCPServers(): Promise<void>;
23
+ getAllMCPTools(): Promise<import("../../common/types").MCPTool[]>;
24
+ }
25
+ //# sourceMappingURL=mcp-server-proxy.service.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"mcp-server-proxy.service.d.ts","sourceRoot":"","sources":["../../../src/browser/mcp/mcp-server-proxy.service.ts"],"names":[],"mappings":"AAEA,OAAO,EAAW,KAAK,EAAE,MAAM,2BAA2B,CAAC;AAG3D,OAAO,EAAE,sBAAsB,EAAE,MAAM,oBAAoB,CAAC;AAG5D,qBACa,qBAAsB,YAAW,sBAAsB;IAElE,OAAO,CAAC,QAAQ,CAAC,iBAAiB,CAAqB;IAGvD,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAU;IAGjC,OAAO,CAAC,QAAQ,CAAC,yBAAyB,CAAwB;IAElE,OAAO,CAAC,QAAQ,CAAC,mBAAmB,CAAsB;IAC1D,SAAgB,kBAAkB,EAAE,KAAK,CAAC,GAAG,CAAC,CAAkC;IAGhF,YAAY,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,GAAG;;;;;;;IAK9B,YAAY;;;;;;IAiBZ,iBAAiB;IAIjB,cAAc;CAGrB"}
@@ -0,0 +1,56 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.MCPServerProxyService = 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_core_common_1 = require("@opensumi/ide-core-common");
8
+ const common_1 = require("../../common");
9
+ const types_1 = require("../types");
10
+ let MCPServerProxyService = class MCPServerProxyService {
11
+ constructor() {
12
+ this._onChangeMCPServers = new ide_core_common_1.Emitter();
13
+ this.onChangeMCPServers = this._onChangeMCPServers.event;
14
+ }
15
+ // 调用 OpenSumi 内部注册的 MCP 工具
16
+ $callMCPTool(name, args) {
17
+ return this.mcpServerRegistry.callMCPTool(name, args);
18
+ }
19
+ // 获取 OpenSumi 内部注册的 MCP tools
20
+ async $getMCPTools() {
21
+ const tools = await this.mcpServerRegistry.getMCPTools().map((tool) =>
22
+ // 不要传递 handler
23
+ ({
24
+ name: tool.name,
25
+ description: tool.description,
26
+ inputSchema: tool.inputSchema,
27
+ providerName: 'sumi-builtin',
28
+ }));
29
+ this.logger.log('SUMI MCP tools', tools);
30
+ return tools;
31
+ }
32
+ // 通知前端 MCP 服务注册表发生了变化
33
+ async $updateMCPServers() {
34
+ this._onChangeMCPServers.fire('update');
35
+ }
36
+ async getAllMCPTools() {
37
+ return this.sumiMCPServerProxyService.getAllMCPTools();
38
+ }
39
+ };
40
+ exports.MCPServerProxyService = MCPServerProxyService;
41
+ tslib_1.__decorate([
42
+ (0, di_1.Autowired)(types_1.TokenMCPServerRegistry),
43
+ tslib_1.__metadata("design:type", Object)
44
+ ], MCPServerProxyService.prototype, "mcpServerRegistry", void 0);
45
+ tslib_1.__decorate([
46
+ (0, di_1.Autowired)(ide_core_browser_1.ILogger),
47
+ tslib_1.__metadata("design:type", Object)
48
+ ], MCPServerProxyService.prototype, "logger", void 0);
49
+ tslib_1.__decorate([
50
+ (0, di_1.Autowired)(common_1.SumiMCPServerProxyServicePath),
51
+ tslib_1.__metadata("design:type", Object)
52
+ ], MCPServerProxyService.prototype, "sumiMCPServerProxyService", void 0);
53
+ exports.MCPServerProxyService = MCPServerProxyService = tslib_1.__decorate([
54
+ (0, di_1.Injectable)()
55
+ ], MCPServerProxyService);
56
+ //# sourceMappingURL=mcp-server-proxy.service.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"mcp-server-proxy.service.js","sourceRoot":"","sources":["../../../src/browser/mcp/mcp-server-proxy.service.ts"],"names":[],"mappings":";;;;AAAA,qCAAqD;AACrD,iEAAqD;AACrD,+DAA2D;AAE3D,yCAAoF;AAEpF,oCAAsE;AAG/D,IAAM,qBAAqB,GAA3B,MAAM,qBAAqB;IAA3B;QAUY,wBAAmB,GAAG,IAAI,yBAAO,EAAO,CAAC;QAC1C,uBAAkB,GAAe,IAAI,CAAC,mBAAmB,CAAC,KAAK,CAAC;IAgClF,CAAC;IA9BC,2BAA2B;IAC3B,YAAY,CAAC,IAAY,EAAE,IAAS;QAClC,OAAO,IAAI,CAAC,iBAAiB,CAAC,WAAW,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;IACxD,CAAC;IAED,8BAA8B;IAC9B,KAAK,CAAC,YAAY;QAChB,MAAM,KAAK,GAAG,MAAM,IAAI,CAAC,iBAAiB,CAAC,WAAW,EAAE,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE;QACpE,eAAe;QACd,CAAC;YACA,IAAI,EAAE,IAAI,CAAC,IAAI;YACf,WAAW,EAAE,IAAI,CAAC,WAAW;YAC7B,WAAW,EAAE,IAAI,CAAC,WAAW;YAC7B,YAAY,EAAE,cAAc;SAC7B,CAAC,CACH,CAAC;QAEF,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,gBAAgB,EAAE,KAAK,CAAC,CAAC;QAEzC,OAAO,KAAK,CAAC;IACf,CAAC;IAED,sBAAsB;IACtB,KAAK,CAAC,iBAAiB;QACrB,IAAI,CAAC,mBAAmB,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;IAC1C,CAAC;IAED,KAAK,CAAC,cAAc;QAClB,OAAO,IAAI,CAAC,yBAAyB,CAAC,cAAc,EAAE,CAAC;IACzD,CAAC;CACF,CAAA;AA3CY,sDAAqB;AAEf;IADhB,IAAA,cAAS,EAAC,8BAAsB,CAAC;;gEACqB;AAGtC;IADhB,IAAA,cAAS,EAAC,0BAAO,CAAC;;qDACc;AAGhB;IADhB,IAAA,cAAS,EAAC,sCAA6B,CAAC;;wEACyB;gCARvD,qBAAqB;IADjC,IAAA,eAAU,GAAE;GACA,qBAAqB,CA2CjC"}
@@ -0,0 +1,16 @@
1
+ import { IMCPServerRegistry, MCPToolDefinition } from '../types';
2
+ export declare class MCPServerRegistry implements IMCPServerRegistry {
3
+ private tools;
4
+ private readonly baseLogger;
5
+ private get logger();
6
+ registerMCPTool(tool: MCPToolDefinition): void;
7
+ getMCPTools(): MCPToolDefinition[];
8
+ callMCPTool(name: string, args: any): Promise<{
9
+ content: {
10
+ type: string;
11
+ text: string;
12
+ }[];
13
+ isError?: boolean;
14
+ }>;
15
+ }
16
+ //# sourceMappingURL=mcp-server.feature.registry.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"mcp-server.feature.registry.d.ts","sourceRoot":"","sources":["../../../src/browser/mcp/mcp-server.feature.registry.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,kBAAkB,EAAa,iBAAiB,EAAE,MAAM,UAAU,CAAC;AAU5E,qBACa,iBAAkB,YAAW,kBAAkB;IAC1D,OAAO,CAAC,KAAK,CAA2B;IAGxC,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAU;IAErC,OAAO,KAAK,MAAM,GAEjB;IAED,eAAe,CAAC,IAAI,EAAE,iBAAiB,GAAG,IAAI;IAI9C,WAAW,IAAI,iBAAiB,EAAE;IAI5B,WAAW,CACf,IAAI,EAAE,MAAM,EACZ,IAAI,EAAE,GAAG,GACR,OAAO,CAAC;QACT,OAAO,EAAE;YAAE,IAAI,EAAE,MAAM,CAAC;YAAC,IAAI,EAAE,MAAM,CAAA;SAAE,EAAE,CAAC;QAC1C,OAAO,CAAC,EAAE,OAAO,CAAC;KACnB,CAAC;CAcH"}
@@ -0,0 +1,53 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.MCPServerRegistry = void 0;
4
+ const tslib_1 = require("tslib");
5
+ // OpenSumi as MCP Server 前端的代理服务
6
+ const di_1 = require("@opensumi/di");
7
+ const ide_core_common_1 = require("@opensumi/ide-core-common");
8
+ class LoggerAdapter {
9
+ constructor(logger) {
10
+ this.logger = logger;
11
+ }
12
+ appendLine(message) {
13
+ this.logger.log(message);
14
+ }
15
+ }
16
+ let MCPServerRegistry = class MCPServerRegistry {
17
+ constructor() {
18
+ this.tools = [];
19
+ }
20
+ get logger() {
21
+ return new LoggerAdapter(this.baseLogger);
22
+ }
23
+ registerMCPTool(tool) {
24
+ this.tools.push(tool);
25
+ }
26
+ getMCPTools() {
27
+ return this.tools;
28
+ }
29
+ async callMCPTool(name, args) {
30
+ try {
31
+ const tool = this.tools.find((tool) => tool.name === name);
32
+ if (!tool) {
33
+ throw new Error(`MCP tool ${name} not found`);
34
+ }
35
+ return await tool.handler(args, this.logger);
36
+ }
37
+ catch (error) {
38
+ return {
39
+ content: [{ type: 'text', text: `The tool ${name} failed to execute. Error: ${error}` }],
40
+ isError: true,
41
+ };
42
+ }
43
+ }
44
+ };
45
+ exports.MCPServerRegistry = MCPServerRegistry;
46
+ tslib_1.__decorate([
47
+ (0, di_1.Autowired)(ide_core_common_1.ILogger),
48
+ tslib_1.__metadata("design:type", Object)
49
+ ], MCPServerRegistry.prototype, "baseLogger", void 0);
50
+ exports.MCPServerRegistry = MCPServerRegistry = tslib_1.__decorate([
51
+ (0, di_1.Injectable)()
52
+ ], MCPServerRegistry);
53
+ //# sourceMappingURL=mcp-server.feature.registry.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"mcp-server.feature.registry.js","sourceRoot":"","sources":["../../../src/browser/mcp/mcp-server.feature.registry.ts"],"names":[],"mappings":";;;;AAAA,iCAAiC;AACjC,qCAAqD;AACrD,+DAAoE;AAIpE,MAAM,aAAa;IACjB,YAA6B,MAAe;QAAf,WAAM,GAAN,MAAM,CAAS;IAAI,CAAC;IAEjD,UAAU,CAAC,OAAe;QACxB,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;IAC3B,CAAC;CACF;AAGM,IAAM,iBAAiB,GAAvB,MAAM,iBAAiB;IAAvB;QACG,UAAK,GAAwB,EAAE,CAAC;IAqC1C,CAAC;IAhCC,IAAY,MAAM;QAChB,OAAO,IAAI,aAAa,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;IAC5C,CAAC;IAED,eAAe,CAAC,IAAuB;QACrC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IACxB,CAAC;IAED,WAAW;QACT,OAAO,IAAI,CAAC,KAAK,CAAC;IACpB,CAAC;IAED,KAAK,CAAC,WAAW,CACf,IAAY,EACZ,IAAS;QAKT,IAAI,CAAC;YACH,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,IAAI,KAAK,IAAI,CAAC,CAAC;YAC3D,IAAI,CAAC,IAAI,EAAE,CAAC;gBACV,MAAM,IAAI,KAAK,CAAC,YAAY,IAAI,YAAY,CAAC,CAAC;YAChD,CAAC;YACD,OAAO,MAAM,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC;QAC/C,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,OAAO;gBACL,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,YAAY,IAAI,8BAA8B,KAAK,EAAE,EAAE,CAAC;gBACxF,OAAO,EAAE,IAAI;aACd,CAAC;QACJ,CAAC;IACH,CAAC;CACF,CAAA;AAtCY,8CAAiB;AAIX;IADhB,IAAA,cAAS,EAAC,yBAAO,CAAC;;qDACkB;4BAJ1B,iBAAiB;IAD7B,IAAA,eAAU,GAAE;GACA,iBAAiB,CAsC7B"}
@@ -0,0 +1,44 @@
1
+ .mcp_tools_dialog {
2
+ .dialog_title {
3
+ font-size: 16px;
4
+ font-weight: 600;
5
+ color: var(--foreground);
6
+ padding-bottom: 16px;
7
+ padding-top: 8px;
8
+ border-bottom: 1px solid var(--menu-separatorBackground);
9
+ }
10
+
11
+ .tools_list {
12
+ max-height: calc(60vh - 53px); // 减去标题高度
13
+ overflow: auto;
14
+
15
+ .tool_item {
16
+ padding-top: 12px;
17
+ padding-bottom: 12px;
18
+ border-radius: 6px;
19
+
20
+ &:hover {
21
+ background-color: var(--list-hoverBackground);
22
+ }
23
+
24
+ .tool_name {
25
+ font-weight: 600;
26
+ color: var(--foreground);
27
+ margin-bottom: 8px;
28
+ }
29
+
30
+ .tool_description {
31
+ font-size: 12px;
32
+ line-height: 1.5;
33
+ color: var(--descriptionForeground);
34
+ margin-bottom: 4px;
35
+ }
36
+
37
+ .tool_provider {
38
+ font-size: 12px;
39
+ color: var(--descriptionForeground);
40
+ font-style: italic;
41
+ }
42
+ }
43
+ }
44
+ }
@@ -0,0 +1,8 @@
1
+ import * as React from 'react';
2
+ import { MCPTool } from '../../common/types';
3
+ interface MCPToolsDialogProps {
4
+ tools: MCPTool[];
5
+ }
6
+ export declare const MCPToolsDialog: React.FC<MCPToolsDialogProps>;
7
+ export {};
8
+ //# sourceMappingURL=mcp-tools-dialog.view.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"mcp-tools-dialog.view.d.ts","sourceRoot":"","sources":["../../../src/browser/mcp/mcp-tools-dialog.view.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAE/B,OAAO,EAAE,OAAO,EAAE,MAAM,oBAAoB,CAAC;AAI7C,UAAU,mBAAmB;IAC3B,KAAK,EAAE,OAAO,EAAE,CAAC;CAClB;AAED,eAAO,MAAM,cAAc,EAAE,KAAK,CAAC,EAAE,CAAC,mBAAmB,CAaxD,CAAC"}
@@ -0,0 +1,16 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.MCPToolsDialog = void 0;
4
+ const tslib_1 = require("tslib");
5
+ const React = tslib_1.__importStar(require("react"));
6
+ const mcp_tools_dialog_module_less_1 = tslib_1.__importDefault(require("./mcp-tools-dialog.module.less"));
7
+ const MCPToolsDialog = ({ tools }) => (React.createElement("div", { className: mcp_tools_dialog_module_less_1.default.mcp_tools_dialog },
8
+ React.createElement("div", { className: mcp_tools_dialog_module_less_1.default.dialog_title }, "MCP Tools"),
9
+ React.createElement("div", { className: mcp_tools_dialog_module_less_1.default.tools_list }, tools.map((tool) => (React.createElement("div", { key: tool.name, className: mcp_tools_dialog_module_less_1.default.tool_item },
10
+ React.createElement("div", { className: mcp_tools_dialog_module_less_1.default.tool_name }, tool.name),
11
+ React.createElement("div", { className: mcp_tools_dialog_module_less_1.default.tool_description }, tool.description),
12
+ tool.providerName && React.createElement("div", { className: mcp_tools_dialog_module_less_1.default.tool_provider },
13
+ "Provider: ",
14
+ tool.providerName)))))));
15
+ exports.MCPToolsDialog = MCPToolsDialog;
16
+ //# sourceMappingURL=mcp-tools-dialog.view.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"mcp-tools-dialog.view.js","sourceRoot":"","sources":["../../../src/browser/mcp/mcp-tools-dialog.view.tsx"],"names":[],"mappings":";;;;AAAA,qDAA+B;AAI/B,0GAAoD;AAM7C,MAAM,cAAc,GAAkC,CAAC,EAAE,KAAK,EAAE,EAAE,EAAE,CAAC,CAC1E,6BAAK,SAAS,EAAE,sCAAM,CAAC,gBAAgB;IACrC,6BAAK,SAAS,EAAE,sCAAM,CAAC,YAAY,gBAAiB;IACpD,6BAAK,SAAS,EAAE,sCAAM,CAAC,UAAU,IAC9B,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CACnB,6BAAK,GAAG,EAAE,IAAI,CAAC,IAAI,EAAE,SAAS,EAAE,sCAAM,CAAC,SAAS;QAC9C,6BAAK,SAAS,EAAE,sCAAM,CAAC,SAAS,IAAG,IAAI,CAAC,IAAI,CAAO;QACnD,6BAAK,SAAS,EAAE,sCAAM,CAAC,gBAAgB,IAAG,IAAI,CAAC,WAAW,CAAO;QAChE,IAAI,CAAC,YAAY,IAAI,6BAAK,SAAS,EAAE,sCAAM,CAAC,aAAa;;YAAa,IAAI,CAAC,YAAY,CAAO,CAC3F,CACP,CAAC,CACE,CACF,CACP,CAAC;AAbW,QAAA,cAAc,kBAazB"}
@@ -0,0 +1,9 @@
1
+ import { IMCPServerRegistry, MCPServerContribution, MCPToolDefinition } from '../../types';
2
+ export declare class CreateNewFileWithTextTool implements MCPServerContribution {
3
+ private readonly workspaceService;
4
+ private readonly fileService;
5
+ registerMCPServer(registry: IMCPServerRegistry): void;
6
+ getToolDefinition(): MCPToolDefinition;
7
+ private handler;
8
+ }
9
+ //# sourceMappingURL=createNewFileWithText.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"createNewFileWithText.d.ts","sourceRoot":"","sources":["../../../../src/browser/mcp/tools/createNewFileWithText.ts"],"names":[],"mappings":"AAQA,OAAO,EAAE,kBAAkB,EAAa,qBAAqB,EAAE,iBAAiB,EAAE,MAAM,aAAa,CAAC;AAOtG,qBACa,yBAA0B,YAAW,qBAAqB;IAErE,OAAO,CAAC,QAAQ,CAAC,gBAAgB,CAAoB;IAGrD,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAqB;IAEjD,iBAAiB,CAAC,QAAQ,EAAE,kBAAkB,GAAG,IAAI;IAIrD,iBAAiB,IAAI,iBAAiB;YAkBxB,OAAO;CAqCtB"}
@@ -0,0 +1,83 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.CreateNewFileWithTextTool = void 0;
4
+ const tslib_1 = require("tslib");
5
+ const zod_1 = require("zod");
6
+ const zod_to_json_schema_1 = require("zod-to-json-schema");
7
+ const di_1 = require("@opensumi/di");
8
+ const ide_core_common_1 = require("@opensumi/ide-core-common");
9
+ const ide_file_service_1 = require("@opensumi/ide-file-service");
10
+ const ide_workspace_1 = require("@opensumi/ide-workspace");
11
+ const types_1 = require("../../types");
12
+ const inputSchema = zod_1.z.object({
13
+ pathInProject: zod_1.z.string().describe('The relative path where the file should be created'),
14
+ text: zod_1.z.string().describe('The content to write into the new file'),
15
+ });
16
+ let CreateNewFileWithTextTool = class CreateNewFileWithTextTool {
17
+ registerMCPServer(registry) {
18
+ registry.registerMCPTool(this.getToolDefinition());
19
+ }
20
+ getToolDefinition() {
21
+ return {
22
+ name: 'create_new_file_with_text',
23
+ description: 'Creates a new file at the specified path within the project directory and populates it with the provided text. ' +
24
+ 'Use this tool to generate new files in your project structure. ' +
25
+ 'Requires two parameters: ' +
26
+ '- pathInProject: The relative path where the file should be created ' +
27
+ '- text: The content to write into the new file ' +
28
+ 'Returns one of two possible responses: ' +
29
+ '"ok" if the file was successfully created and populated, ' +
30
+ '"can\'t find project dir" if the project directory cannot be determined. ' +
31
+ 'Note: Creates any necessary parent directories automatically.',
32
+ inputSchema: (0, zod_to_json_schema_1.zodToJsonSchema)(inputSchema),
33
+ handler: this.handler.bind(this),
34
+ };
35
+ }
36
+ async handler(args, logger) {
37
+ try {
38
+ // 获取工作区根目录
39
+ const workspaceRoots = this.workspaceService.tryGetRoots();
40
+ if (!workspaceRoots || workspaceRoots.length === 0) {
41
+ logger.appendLine('Error: Cannot determine project directory');
42
+ return {
43
+ content: [{ type: 'text', text: "can't find project dir" }],
44
+ isError: true,
45
+ };
46
+ }
47
+ // 构建完整的文件路径
48
+ const rootUri = ide_core_common_1.URI.parse(workspaceRoots[0].uri);
49
+ const fullPath = ide_core_common_1.path.join(rootUri.codeUri.fsPath, args.pathInProject);
50
+ const fileUri = ide_core_common_1.URI.file(fullPath);
51
+ // 创建父目录
52
+ const parentDir = ide_core_common_1.path.dirname(fullPath);
53
+ const parentUri = ide_core_common_1.URI.file(parentDir);
54
+ await this.fileService.createFolder(parentUri.toString());
55
+ // 写入文件内容
56
+ await this.fileService.createFile(fileUri.toString(), { content: args.text });
57
+ logger.appendLine(`Successfully created file at: ${args.pathInProject}`);
58
+ return {
59
+ content: [{ type: 'text', text: 'ok' }],
60
+ };
61
+ }
62
+ catch (error) {
63
+ logger.appendLine(`Error during file creation: ${error}`);
64
+ return {
65
+ content: [{ type: 'text', text: 'unknown error' }],
66
+ isError: true,
67
+ };
68
+ }
69
+ }
70
+ };
71
+ exports.CreateNewFileWithTextTool = CreateNewFileWithTextTool;
72
+ tslib_1.__decorate([
73
+ (0, di_1.Autowired)(ide_workspace_1.IWorkspaceService),
74
+ tslib_1.__metadata("design:type", Object)
75
+ ], CreateNewFileWithTextTool.prototype, "workspaceService", void 0);
76
+ tslib_1.__decorate([
77
+ (0, di_1.Autowired)(ide_file_service_1.IFileServiceClient),
78
+ tslib_1.__metadata("design:type", Object)
79
+ ], CreateNewFileWithTextTool.prototype, "fileService", void 0);
80
+ exports.CreateNewFileWithTextTool = CreateNewFileWithTextTool = tslib_1.__decorate([
81
+ (0, ide_core_common_1.Domain)(types_1.MCPServerContribution)
82
+ ], CreateNewFileWithTextTool);
83
+ //# sourceMappingURL=createNewFileWithText.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"createNewFileWithText.js","sourceRoot":"","sources":["../../../../src/browser/mcp/tools/createNewFileWithText.ts"],"names":[],"mappings":";;;;AAAA,6BAAwB;AACxB,2DAAqD;AAErD,qCAAyC;AACzC,+DAA8D;AAC9D,iEAAgE;AAChE,2DAA4D;AAE5D,uCAAsG;AAEtG,MAAM,WAAW,GAAG,OAAC,CAAC,MAAM,CAAC;IAC3B,aAAa,EAAE,OAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,oDAAoD,CAAC;IACxF,IAAI,EAAE,OAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,wCAAwC,CAAC;CACpE,CAAC,CAAC;AAGI,IAAM,yBAAyB,GAA/B,MAAM,yBAAyB;IAOpC,iBAAiB,CAAC,QAA4B;QAC5C,QAAQ,CAAC,eAAe,CAAC,IAAI,CAAC,iBAAiB,EAAE,CAAC,CAAC;IACrD,CAAC;IAED,iBAAiB;QACf,OAAO;YACL,IAAI,EAAE,2BAA2B;YACjC,WAAW,EACT,iHAAiH;gBACjH,iEAAiE;gBACjE,2BAA2B;gBAC3B,sEAAsE;gBACtE,iDAAiD;gBACjD,yCAAyC;gBACzC,2DAA2D;gBAC3D,2EAA2E;gBAC3E,+DAA+D;YACjE,WAAW,EAAE,IAAA,oCAAe,EAAC,WAAW,CAAC;YACzC,OAAO,EAAE,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC;SACjC,CAAC;IACJ,CAAC;IAEO,KAAK,CAAC,OAAO,CAAC,IAAiC,EAAE,MAAiB;QACxE,IAAI,CAAC;YACH,WAAW;YACX,MAAM,cAAc,GAAG,IAAI,CAAC,gBAAgB,CAAC,WAAW,EAAE,CAAC;YAC3D,IAAI,CAAC,cAAc,IAAI,cAAc,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;gBACnD,MAAM,CAAC,UAAU,CAAC,2CAA2C,CAAC,CAAC;gBAC/D,OAAO;oBACL,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,wBAAwB,EAAE,CAAC;oBAC3D,OAAO,EAAE,IAAI;iBACd,CAAC;YACJ,CAAC;YAED,YAAY;YACZ,MAAM,OAAO,GAAG,qBAAG,CAAC,KAAK,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;YACjD,MAAM,QAAQ,GAAG,sBAAI,CAAC,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,MAAM,EAAE,IAAI,CAAC,aAAa,CAAC,CAAC;YACvE,MAAM,OAAO,GAAG,qBAAG,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;YAEnC,QAAQ;YACR,MAAM,SAAS,GAAG,sBAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;YACzC,MAAM,SAAS,GAAG,qBAAG,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;YACtC,MAAM,IAAI,CAAC,WAAW,CAAC,YAAY,CAAC,SAAS,CAAC,QAAQ,EAAE,CAAC,CAAC;YAE1D,SAAS;YACT,MAAM,IAAI,CAAC,WAAW,CAAC,UAAU,CAAC,OAAO,CAAC,QAAQ,EAAE,EAAE,EAAE,OAAO,EAAE,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC;YAE9E,MAAM,CAAC,UAAU,CAAC,iCAAiC,IAAI,CAAC,aAAa,EAAE,CAAC,CAAC;YACzE,OAAO;gBACL,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC;aACxC,CAAC;QACJ,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,MAAM,CAAC,UAAU,CAAC,+BAA+B,KAAK,EAAE,CAAC,CAAC;YAC1D,OAAO;gBACL,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,eAAe,EAAE,CAAC;gBAClD,OAAO,EAAE,IAAI;aACd,CAAC;QACJ,CAAC;IACH,CAAC;CACF,CAAA;AAlEY,8DAAyB;AAEnB;IADhB,IAAA,cAAS,EAAC,iCAAiB,CAAC;;mEACwB;AAGpC;IADhB,IAAA,cAAS,EAAC,qCAAkB,CAAC;;8DACmB;oCALtC,yBAAyB;IADrC,IAAA,wBAAM,EAAC,6BAAqB,CAAC;GACjB,yBAAyB,CAkErC"}
@@ -0,0 +1,9 @@
1
+ import { IMCPServerRegistry, MCPServerContribution, MCPToolDefinition } from '../../types';
2
+ export declare class FindFilesByNameSubstringTool implements MCPServerContribution {
3
+ private readonly workspaceService;
4
+ private readonly fileSearchService;
5
+ registerMCPServer(registry: IMCPServerRegistry): void;
6
+ getToolDefinition(): MCPToolDefinition;
7
+ private handler;
8
+ }
9
+ //# sourceMappingURL=findFilesByNameSubstring.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"findFilesByNameSubstring.d.ts","sourceRoot":"","sources":["../../../../src/browser/mcp/tools/findFilesByNameSubstring.ts"],"names":[],"mappings":"AAUA,OAAO,EAAE,kBAAkB,EAAa,qBAAqB,EAAE,iBAAiB,EAAE,MAAM,aAAa,CAAC;AAMtG,qBACa,4BAA6B,YAAW,qBAAqB;IAExE,OAAO,CAAC,QAAQ,CAAC,gBAAgB,CAAoB;IAGrD,OAAO,CAAC,QAAQ,CAAC,iBAAiB,CAAqB;IAEvD,iBAAiB,CAAC,QAAQ,EAAE,kBAAkB,GAAG,IAAI;IAIrD,iBAAiB,IAAI,iBAAiB;YAiBxB,OAAO;CA+CtB"}
@@ -0,0 +1,92 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.FindFilesByNameSubstringTool = void 0;
4
+ const tslib_1 = require("tslib");
5
+ const path = tslib_1.__importStar(require("path"));
6
+ const zod_1 = require("zod");
7
+ const zod_to_json_schema_1 = require("zod-to-json-schema");
8
+ const di_1 = require("@opensumi/di");
9
+ const ide_core_common_1 = require("@opensumi/ide-core-common");
10
+ const common_1 = require("@opensumi/ide-file-search/lib/common");
11
+ const ide_workspace_1 = require("@opensumi/ide-workspace");
12
+ const types_1 = require("../../types");
13
+ const inputSchema = zod_1.z.object({
14
+ nameSubstring: zod_1.z.string().describe('The substring to search for in file names'),
15
+ });
16
+ let FindFilesByNameSubstringTool = class FindFilesByNameSubstringTool {
17
+ registerMCPServer(registry) {
18
+ registry.registerMCPTool(this.getToolDefinition());
19
+ }
20
+ getToolDefinition() {
21
+ return {
22
+ name: 'find_files_by_name_substring',
23
+ description: 'Searches for all files in the project whose names contain the specified substring (case-insensitive). ' +
24
+ 'Use this tool to locate files when you know part of the filename. ' +
25
+ 'Requires a nameSubstring parameter for the search term. ' +
26
+ 'Returns a JSON array of objects containing file information: ' +
27
+ '- path: Path relative to project root ' +
28
+ '- name: File name ' +
29
+ 'Returns an empty array ([]) if no matching files are found. ' +
30
+ 'Note: Only searches through files within the project directory, excluding libraries and external dependencies.',
31
+ inputSchema: (0, zod_to_json_schema_1.zodToJsonSchema)(inputSchema),
32
+ handler: this.handler.bind(this),
33
+ };
34
+ }
35
+ async handler(args, logger) {
36
+ try {
37
+ // 获取工作区根目录
38
+ const workspaceRoots = this.workspaceService.tryGetRoots();
39
+ if (!workspaceRoots || workspaceRoots.length === 0) {
40
+ logger.appendLine('Error: Cannot determine project directory');
41
+ return {
42
+ content: [{ type: 'text', text: '[]' }],
43
+ isError: true,
44
+ };
45
+ }
46
+ // 使用 OpenSumi 的文件搜索 API
47
+ const searchPattern = `**/*${args.nameSubstring}*`;
48
+ const searchResults = await this.fileSearchService.find(searchPattern, {
49
+ rootUris: [workspaceRoots[0].uri],
50
+ excludePatterns: ['**/node_modules/**'],
51
+ limit: 1000,
52
+ });
53
+ // 转换结果为所需的格式
54
+ const results = searchResults.map((file) => {
55
+ const uri = ide_core_common_1.URI.parse(file);
56
+ const rootUri = ide_core_common_1.URI.parse(workspaceRoots[0].uri);
57
+ const relativePath = path.relative(rootUri.codeUri.fsPath, uri.codeUri.fsPath);
58
+ const fileName = path.basename(uri.codeUri.fsPath);
59
+ return {
60
+ path: relativePath,
61
+ name: fileName,
62
+ };
63
+ });
64
+ // 将结果转换为 JSON 字符串
65
+ const resultJson = JSON.stringify(results, null, 2);
66
+ logger.appendLine(`Found ${results.length} files matching "${args.nameSubstring}"`);
67
+ return {
68
+ content: [{ type: 'text', text: resultJson }],
69
+ };
70
+ }
71
+ catch (error) {
72
+ logger.appendLine(`Error during file search: ${error}`);
73
+ return {
74
+ content: [{ type: 'text', text: '[]' }],
75
+ isError: true,
76
+ };
77
+ }
78
+ }
79
+ };
80
+ exports.FindFilesByNameSubstringTool = FindFilesByNameSubstringTool;
81
+ tslib_1.__decorate([
82
+ (0, di_1.Autowired)(ide_workspace_1.IWorkspaceService),
83
+ tslib_1.__metadata("design:type", Object)
84
+ ], FindFilesByNameSubstringTool.prototype, "workspaceService", void 0);
85
+ tslib_1.__decorate([
86
+ (0, di_1.Autowired)(common_1.IFileSearchService),
87
+ tslib_1.__metadata("design:type", Object)
88
+ ], FindFilesByNameSubstringTool.prototype, "fileSearchService", void 0);
89
+ exports.FindFilesByNameSubstringTool = FindFilesByNameSubstringTool = tslib_1.__decorate([
90
+ (0, ide_core_common_1.Domain)(types_1.MCPServerContribution)
91
+ ], FindFilesByNameSubstringTool);
92
+ //# sourceMappingURL=findFilesByNameSubstring.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"findFilesByNameSubstring.js","sourceRoot":"","sources":["../../../../src/browser/mcp/tools/findFilesByNameSubstring.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,8 @@
1
+ import { IMCPServerRegistry, MCPServerContribution, MCPToolDefinition } from '../../types';
2
+ export declare class GetCurrentFilePathTool implements MCPServerContribution {
3
+ private readonly editorService;
4
+ registerMCPServer(registry: IMCPServerRegistry): void;
5
+ getToolDefinition(): MCPToolDefinition;
6
+ private handler;
7
+ }
8
+ //# sourceMappingURL=getCurrentFilePath.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"getCurrentFilePath.d.ts","sourceRoot":"","sources":["../../../../src/browser/mcp/tools/getCurrentFilePath.ts"],"names":[],"mappings":"AAOA,OAAO,EAAE,kBAAkB,EAAa,qBAAqB,EAAE,iBAAiB,EAAE,MAAM,aAAa,CAAC;AAItG,qBACa,sBAAuB,YAAW,qBAAqB;IAElE,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAyB;IAEvD,iBAAiB,CAAC,QAAQ,EAAE,kBAAkB,GAAG,IAAI;IAIrD,iBAAiB,IAAI,iBAAiB;YAYxB,OAAO;CAgBtB"}