@opensumi/ide-ai-native 3.8.1-next-1741250387.0 → 3.8.1-next-1741251026.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (325) hide show
  1. package/lib/browser/ai-core.contextkeys.d.ts +1 -1
  2. package/lib/browser/ai-core.contextkeys.d.ts.map +1 -1
  3. package/lib/browser/ai-core.contextkeys.js +1 -1
  4. package/lib/browser/ai-core.contextkeys.js.map +1 -1
  5. package/lib/browser/ai-core.contribution.d.ts +5 -0
  6. package/lib/browser/ai-core.contribution.d.ts.map +1 -1
  7. package/lib/browser/ai-core.contribution.js +71 -9
  8. package/lib/browser/ai-core.contribution.js.map +1 -1
  9. package/lib/browser/chat/chat-agent.service.d.ts +11 -3
  10. package/lib/browser/chat/chat-agent.service.d.ts.map +1 -1
  11. package/lib/browser/chat/chat-agent.service.js +43 -5
  12. package/lib/browser/chat/chat-agent.service.js.map +1 -1
  13. package/lib/browser/chat/chat-manager.service.d.ts +1 -0
  14. package/lib/browser/chat/chat-manager.service.d.ts.map +1 -1
  15. package/lib/browser/chat/chat-manager.service.js +6 -8
  16. package/lib/browser/chat/chat-manager.service.js.map +1 -1
  17. package/lib/browser/chat/chat-model.d.ts +4 -1
  18. package/lib/browser/chat/chat-model.d.ts.map +1 -1
  19. package/lib/browser/chat/chat-model.js +57 -2
  20. package/lib/browser/chat/chat-model.js.map +1 -1
  21. package/lib/browser/chat/chat-proxy.service.d.ts.map +1 -1
  22. package/lib/browser/chat/chat-proxy.service.js +13 -6
  23. package/lib/browser/chat/chat-proxy.service.js.map +1 -1
  24. package/lib/browser/chat/chat.api.service.d.ts +1 -2
  25. package/lib/browser/chat/chat.api.service.d.ts.map +1 -1
  26. package/lib/browser/chat/chat.api.service.js +0 -4
  27. package/lib/browser/chat/chat.api.service.js.map +1 -1
  28. package/lib/browser/chat/chat.internal.service.d.ts +2 -0
  29. package/lib/browser/chat/chat.internal.service.d.ts.map +1 -1
  30. package/lib/browser/chat/chat.internal.service.js +3 -0
  31. package/lib/browser/chat/chat.internal.service.js.map +1 -1
  32. package/lib/browser/chat/chat.module.less +1 -2
  33. package/lib/browser/chat/chat.view.d.ts.map +1 -1
  34. package/lib/browser/chat/chat.view.js +46 -29
  35. package/lib/browser/chat/chat.view.js.map +1 -1
  36. package/lib/browser/components/ChatContext/index.js +2 -2
  37. package/lib/browser/components/ChatContext/index.js.map +1 -1
  38. package/lib/browser/components/ChatInput.d.ts.map +1 -1
  39. package/lib/browser/components/ChatInput.js +29 -1
  40. package/lib/browser/components/ChatInput.js.map +1 -1
  41. package/lib/browser/components/ChatReply.js +6 -1
  42. package/lib/browser/components/ChatReply.js.map +1 -1
  43. package/lib/browser/components/ChatThinking.d.ts +0 -2
  44. package/lib/browser/components/ChatThinking.d.ts.map +1 -1
  45. package/lib/browser/components/ChatThinking.js +2 -10
  46. package/lib/browser/components/ChatThinking.js.map +1 -1
  47. package/lib/browser/components/ChatToolRender.d.ts.map +1 -1
  48. package/lib/browser/components/ChatToolRender.js +2 -3
  49. package/lib/browser/components/ChatToolRender.js.map +1 -1
  50. package/lib/browser/components/WelcomeMsg.js +1 -1
  51. package/lib/browser/components/WelcomeMsg.js.map +1 -1
  52. package/lib/browser/components/chat-history.module.less +2 -1
  53. package/lib/browser/components/components.module.less +22 -0
  54. package/lib/browser/context/llm-context.service.d.ts +18 -5
  55. package/lib/browser/context/llm-context.service.d.ts.map +1 -1
  56. package/lib/browser/context/llm-context.service.js +80 -47
  57. package/lib/browser/context/llm-context.service.js.map +1 -1
  58. package/lib/browser/contrib/inline-completions/inline-completions.controller.js +1 -1
  59. package/lib/browser/contrib/inline-completions/inline-completions.controller.js.map +1 -1
  60. package/lib/browser/contrib/inline-completions/prompt/matcher.js +2 -2
  61. package/lib/browser/contrib/inline-completions/prompt/similarSnippets.d.ts +1 -1
  62. package/lib/browser/contrib/inline-completions/prompt/similarSnippets.js +2 -2
  63. package/lib/browser/contrib/intelligent-completions/index.d.ts +2 -1
  64. package/lib/browser/contrib/intelligent-completions/index.d.ts.map +1 -1
  65. package/lib/browser/contrib/intelligent-completions/index.js +4 -1
  66. package/lib/browser/contrib/intelligent-completions/index.js.map +1 -1
  67. package/lib/browser/contrib/intelligent-completions/intelligent-completions.contribution.js +2 -2
  68. package/lib/browser/contrib/intelligent-completions/intelligent-completions.contribution.js.map +1 -1
  69. package/lib/browser/contrib/intelligent-completions/intelligent-completions.controller.d.ts.map +1 -1
  70. package/lib/browser/contrib/intelligent-completions/intelligent-completions.controller.js +6 -5
  71. package/lib/browser/contrib/intelligent-completions/intelligent-completions.controller.js.map +1 -1
  72. package/lib/browser/contrib/intelligent-completions/view/code-edits-previewer.d.ts.map +1 -1
  73. package/lib/browser/contrib/intelligent-completions/view/code-edits-previewer.js +4 -2
  74. package/lib/browser/contrib/intelligent-completions/view/code-edits-previewer.js.map +1 -1
  75. package/lib/browser/contrib/intelligent-completions/view/default.d.ts.map +1 -1
  76. package/lib/browser/contrib/intelligent-completions/view/default.js +23 -11
  77. package/lib/browser/contrib/intelligent-completions/view/default.js.map +1 -1
  78. package/lib/browser/index.d.ts.map +1 -1
  79. package/lib/browser/index.js +4 -0
  80. package/lib/browser/index.js.map +1 -1
  81. package/lib/browser/layout/layout.module.less +4 -4
  82. package/lib/browser/mcp/base-apply.service.d.ts +26 -11
  83. package/lib/browser/mcp/base-apply.service.d.ts.map +1 -1
  84. package/lib/browser/mcp/base-apply.service.js +255 -103
  85. package/lib/browser/mcp/base-apply.service.js.map +1 -1
  86. package/lib/browser/mcp/config/components/mcp-config.module.less +178 -0
  87. package/lib/browser/mcp/config/components/mcp-config.view.d.ts +3 -0
  88. package/lib/browser/mcp/config/components/mcp-config.view.d.ts.map +1 -0
  89. package/lib/browser/mcp/config/components/mcp-config.view.js +150 -0
  90. package/lib/browser/mcp/config/components/mcp-config.view.js.map +1 -0
  91. package/lib/browser/mcp/config/components/mcp-server-form.d.ts +16 -0
  92. package/lib/browser/mcp/config/components/mcp-server-form.d.ts.map +1 -0
  93. package/lib/browser/mcp/config/components/mcp-server-form.js +84 -0
  94. package/lib/browser/mcp/config/components/mcp-server-form.js.map +1 -0
  95. package/lib/browser/mcp/config/components/mcp-server-form.module.less +78 -0
  96. package/lib/browser/mcp/config/mcp-config.commands.d.ts +10 -0
  97. package/lib/browser/mcp/config/mcp-config.commands.d.ts.map +1 -0
  98. package/lib/browser/mcp/config/mcp-config.commands.js +35 -0
  99. package/lib/browser/mcp/config/mcp-config.commands.js.map +1 -0
  100. package/lib/browser/mcp/config/mcp-config.contribution.d.ts +16 -0
  101. package/lib/browser/mcp/config/mcp-config.contribution.d.ts.map +1 -0
  102. package/lib/browser/mcp/config/mcp-config.contribution.js +62 -0
  103. package/lib/browser/mcp/config/mcp-config.contribution.js.map +1 -0
  104. package/lib/browser/mcp/mcp-server-proxy.service.d.ts +6 -0
  105. package/lib/browser/mcp/mcp-server-proxy.service.d.ts.map +1 -1
  106. package/lib/browser/mcp/mcp-server-proxy.service.js +10 -1
  107. package/lib/browser/mcp/mcp-server-proxy.service.js.map +1 -1
  108. package/lib/browser/mcp/mcp-server.feature.registry.d.ts +8 -0
  109. package/lib/browser/mcp/mcp-server.feature.registry.d.ts.map +1 -1
  110. package/lib/browser/mcp/mcp-server.feature.registry.js +28 -3
  111. package/lib/browser/mcp/mcp-server.feature.registry.js.map +1 -1
  112. package/lib/browser/mcp/tools/components/EditFile.d.ts.map +1 -1
  113. package/lib/browser/mcp/tools/components/EditFile.js +15 -9
  114. package/lib/browser/mcp/tools/components/EditFile.js.map +1 -1
  115. package/lib/browser/mcp/tools/components/ExpandableFileList.d.ts +13 -0
  116. package/lib/browser/mcp/tools/components/ExpandableFileList.d.ts.map +1 -0
  117. package/lib/browser/mcp/tools/components/{SearchResult.js → ExpandableFileList.js} +29 -19
  118. package/lib/browser/mcp/tools/components/ExpandableFileList.js.map +1 -0
  119. package/lib/browser/mcp/tools/components/Terminal.d.ts.map +1 -1
  120. package/lib/browser/mcp/tools/components/Terminal.js +10 -2
  121. package/lib/browser/mcp/tools/components/Terminal.js.map +1 -1
  122. package/lib/browser/mcp/tools/components/index.module.less +4 -0
  123. package/lib/browser/mcp/tools/createNewFileWithText.d.ts +1 -0
  124. package/lib/browser/mcp/tools/createNewFileWithText.d.ts.map +1 -1
  125. package/lib/browser/mcp/tools/createNewFileWithText.js +19 -11
  126. package/lib/browser/mcp/tools/createNewFileWithText.js.map +1 -1
  127. package/lib/browser/mcp/tools/fileSearch.d.ts +1 -0
  128. package/lib/browser/mcp/tools/fileSearch.d.ts.map +1 -1
  129. package/lib/browser/mcp/tools/fileSearch.js +14 -5
  130. package/lib/browser/mcp/tools/fileSearch.js.map +1 -1
  131. package/lib/browser/mcp/tools/getDiagnosticsByPath.d.ts.map +1 -1
  132. package/lib/browser/mcp/tools/getDiagnosticsByPath.js +1 -0
  133. package/lib/browser/mcp/tools/getDiagnosticsByPath.js.map +1 -1
  134. package/lib/browser/mcp/tools/grepSearch.d.ts.map +1 -1
  135. package/lib/browser/mcp/tools/grepSearch.js +6 -3
  136. package/lib/browser/mcp/tools/grepSearch.js.map +1 -1
  137. package/lib/browser/mcp/tools/handlers/EditFile.js +1 -1
  138. package/lib/browser/mcp/tools/handlers/EditFile.js.map +1 -1
  139. package/lib/browser/mcp/tools/handlers/ListDir.d.ts +1 -0
  140. package/lib/browser/mcp/tools/handlers/ListDir.d.ts.map +1 -1
  141. package/lib/browser/mcp/tools/handlers/ListDir.js +3 -0
  142. package/lib/browser/mcp/tools/handlers/ListDir.js.map +1 -1
  143. package/lib/browser/mcp/tools/handlers/RunCommand.d.ts.map +1 -1
  144. package/lib/browser/mcp/tools/handlers/RunCommand.js +2 -0
  145. package/lib/browser/mcp/tools/handlers/RunCommand.js.map +1 -1
  146. package/lib/browser/mcp/tools/listDir.d.ts +1 -0
  147. package/lib/browser/mcp/tools/listDir.d.ts.map +1 -1
  148. package/lib/browser/mcp/tools/listDir.js +35 -4
  149. package/lib/browser/mcp/tools/listDir.js.map +1 -1
  150. package/lib/browser/mcp/tools/runTerminalCmd.d.ts.map +1 -1
  151. package/lib/browser/mcp/tools/runTerminalCmd.js +1 -0
  152. package/lib/browser/mcp/tools/runTerminalCmd.js.map +1 -1
  153. package/lib/browser/model/msg-history-manager.d.ts +2 -2
  154. package/lib/browser/model/msg-history-manager.d.ts.map +1 -1
  155. package/lib/browser/model/msg-history-manager.js +4 -10
  156. package/lib/browser/model/msg-history-manager.js.map +1 -1
  157. package/lib/browser/preferences/schema.d.ts.map +1 -1
  158. package/lib/browser/preferences/schema.js +22 -2
  159. package/lib/browser/preferences/schema.js.map +1 -1
  160. package/lib/browser/types.d.ts +4 -0
  161. package/lib/browser/types.d.ts.map +1 -1
  162. package/lib/browser/widget/inline-chat/inline-chat-controller.d.ts.map +1 -1
  163. package/lib/browser/widget/inline-chat/inline-chat-controller.js +6 -1
  164. package/lib/browser/widget/inline-chat/inline-chat-controller.js.map +1 -1
  165. package/lib/browser/widget/inline-diff/inline-diff-manager.d.ts.map +1 -1
  166. package/lib/browser/widget/inline-diff/inline-diff-manager.js +68 -8
  167. package/lib/browser/widget/inline-diff/inline-diff-manager.js.map +1 -1
  168. package/lib/browser/widget/inline-diff/inline-diff-previewer.d.ts +10 -4
  169. package/lib/browser/widget/inline-diff/inline-diff-previewer.d.ts.map +1 -1
  170. package/lib/browser/widget/inline-diff/inline-diff-previewer.js +14 -3
  171. package/lib/browser/widget/inline-diff/inline-diff-previewer.js.map +1 -1
  172. package/lib/browser/widget/inline-diff/inline-diff-widget.module.less +25 -4
  173. package/lib/browser/widget/inline-diff/inline-diff.controller.d.ts +3 -3
  174. package/lib/browser/widget/inline-diff/inline-diff.controller.d.ts.map +1 -1
  175. package/lib/browser/widget/inline-diff/inline-diff.controller.js +10 -5
  176. package/lib/browser/widget/inline-diff/inline-diff.controller.js.map +1 -1
  177. package/lib/browser/widget/inline-stream-diff/inline-stream-diff.handler.d.ts +46 -17
  178. package/lib/browser/widget/inline-stream-diff/inline-stream-diff.handler.d.ts.map +1 -1
  179. package/lib/browser/widget/inline-stream-diff/inline-stream-diff.handler.js +110 -53
  180. package/lib/browser/widget/inline-stream-diff/inline-stream-diff.handler.js.map +1 -1
  181. package/lib/browser/widget/inline-stream-diff/live-preview.decoration.d.ts +4 -0
  182. package/lib/browser/widget/inline-stream-diff/live-preview.decoration.d.ts.map +1 -1
  183. package/lib/browser/widget/inline-stream-diff/live-preview.decoration.js +26 -1
  184. package/lib/browser/widget/inline-stream-diff/live-preview.decoration.js.map +1 -1
  185. package/lib/common/index.d.ts +13 -4
  186. package/lib/common/index.d.ts.map +1 -1
  187. package/lib/common/index.js +5 -1
  188. package/lib/common/index.js.map +1 -1
  189. package/lib/common/llm-context.d.ts +13 -9
  190. package/lib/common/llm-context.d.ts.map +1 -1
  191. package/lib/common/llm-context.js.map +1 -1
  192. package/lib/common/mcp-server-manager.d.ts +17 -1
  193. package/lib/common/mcp-server-manager.d.ts.map +1 -1
  194. package/lib/common/mcp-server-manager.js.map +1 -1
  195. package/lib/common/model.d.ts +12 -0
  196. package/lib/common/model.d.ts.map +1 -0
  197. package/lib/common/model.js +83 -0
  198. package/lib/common/model.js.map +1 -0
  199. package/lib/common/prompts/context-prompt-provider.d.ts +4 -3
  200. package/lib/common/prompts/context-prompt-provider.d.ts.map +1 -1
  201. package/lib/common/prompts/context-prompt-provider.js +33 -22
  202. package/lib/common/prompts/context-prompt-provider.js.map +1 -1
  203. package/lib/common/tool-invocation-registry.d.ts +2 -2
  204. package/lib/common/tool-invocation-registry.d.ts.map +1 -1
  205. package/lib/common/tool-invocation-registry.js +1 -1
  206. package/lib/common/tool-invocation-registry.js.map +1 -1
  207. package/lib/common/types.d.ts +8 -0
  208. package/lib/common/types.d.ts.map +1 -1
  209. package/lib/common/utils.d.ts.map +1 -1
  210. package/lib/common/utils.js +2 -1
  211. package/lib/common/utils.js.map +1 -1
  212. package/lib/node/anthropic/anthropic-language-model.d.ts +3 -1
  213. package/lib/node/anthropic/anthropic-language-model.d.ts.map +1 -1
  214. package/lib/node/anthropic/anthropic-language-model.js +6 -2
  215. package/lib/node/anthropic/anthropic-language-model.js.map +1 -1
  216. package/lib/node/base-language-model.d.ts +6 -3
  217. package/lib/node/base-language-model.d.ts.map +1 -1
  218. package/lib/node/base-language-model.js +14 -31
  219. package/lib/node/base-language-model.js.map +1 -1
  220. package/lib/node/deepseek/deepseek-language-model.d.ts +3 -1
  221. package/lib/node/deepseek/deepseek-language-model.d.ts.map +1 -1
  222. package/lib/node/deepseek/deepseek-language-model.js +6 -2
  223. package/lib/node/deepseek/deepseek-language-model.js.map +1 -1
  224. package/lib/node/mcp/sumi-mcp-server.d.ts +17 -3
  225. package/lib/node/mcp/sumi-mcp-server.d.ts.map +1 -1
  226. package/lib/node/mcp/sumi-mcp-server.js +59 -6
  227. package/lib/node/mcp/sumi-mcp-server.js.map +1 -1
  228. package/lib/node/mcp-server-manager-impl.d.ts +4 -3
  229. package/lib/node/mcp-server-manager-impl.d.ts.map +1 -1
  230. package/lib/node/mcp-server-manager-impl.js +26 -6
  231. package/lib/node/mcp-server-manager-impl.js.map +1 -1
  232. package/lib/node/mcp-server.d.ts +5 -16
  233. package/lib/node/mcp-server.d.ts.map +1 -1
  234. package/lib/node/mcp-server.js +12 -6
  235. package/lib/node/mcp-server.js.map +1 -1
  236. package/lib/node/openai/openai-language-model.d.ts +4 -2
  237. package/lib/node/openai/openai-language-model.d.ts.map +1 -1
  238. package/lib/node/openai/openai-language-model.js +6 -4
  239. package/lib/node/openai/openai-language-model.js.map +1 -1
  240. package/lib/node/openai-compatible/openai-compatible-language-model.d.ts +10 -0
  241. package/lib/node/openai-compatible/openai-compatible-language-model.d.ts.map +1 -0
  242. package/lib/node/openai-compatible/openai-compatible-language-model.js +32 -0
  243. package/lib/node/openai-compatible/openai-compatible-language-model.js.map +1 -0
  244. package/package.json +27 -26
  245. package/src/browser/ai-core.contextkeys.ts +3 -3
  246. package/src/browser/ai-core.contribution.ts +89 -12
  247. package/src/browser/chat/chat-agent.service.ts +53 -9
  248. package/src/browser/chat/chat-manager.service.ts +10 -8
  249. package/src/browser/chat/chat-model.ts +63 -5
  250. package/src/browser/chat/chat-proxy.service.ts +16 -8
  251. package/src/browser/chat/chat.api.service.ts +1 -5
  252. package/src/browser/chat/chat.internal.service.ts +4 -0
  253. package/src/browser/chat/chat.module.less +1 -2
  254. package/src/browser/chat/chat.view.tsx +63 -69
  255. package/src/browser/components/ChatContext/index.tsx +2 -2
  256. package/src/browser/components/ChatInput.tsx +81 -6
  257. package/src/browser/components/ChatReply.tsx +6 -6
  258. package/src/browser/components/ChatThinking.tsx +3 -9
  259. package/src/browser/components/ChatToolRender.tsx +1 -2
  260. package/src/browser/components/WelcomeMsg.tsx +1 -1
  261. package/src/browser/components/chat-history.module.less +2 -1
  262. package/src/browser/components/components.module.less +22 -0
  263. package/src/browser/context/llm-context.service.ts +93 -54
  264. package/src/browser/contrib/inline-completions/inline-completions.controller.ts +1 -1
  265. package/src/browser/contrib/inline-completions/prompt/matcher.ts +2 -2
  266. package/src/browser/contrib/inline-completions/prompt/similarSnippets.ts +2 -2
  267. package/src/browser/contrib/intelligent-completions/index.ts +5 -1
  268. package/src/browser/contrib/intelligent-completions/intelligent-completions.contribution.ts +3 -3
  269. package/src/browser/contrib/intelligent-completions/intelligent-completions.controller.ts +7 -6
  270. package/src/browser/contrib/intelligent-completions/view/code-edits-previewer.ts +4 -2
  271. package/src/browser/contrib/intelligent-completions/view/default.ts +34 -19
  272. package/src/browser/index.ts +4 -0
  273. package/src/browser/layout/layout.module.less +4 -4
  274. package/src/browser/mcp/base-apply.service.ts +306 -109
  275. package/src/browser/mcp/config/components/mcp-config.module.less +178 -0
  276. package/src/browser/mcp/config/components/mcp-config.view.tsx +215 -0
  277. package/src/browser/mcp/config/components/mcp-server-form.module.less +78 -0
  278. package/src/browser/mcp/config/components/mcp-server-form.tsx +144 -0
  279. package/src/browser/mcp/config/mcp-config.commands.ts +29 -0
  280. package/src/browser/mcp/config/mcp-config.contribution.ts +65 -0
  281. package/src/browser/mcp/mcp-server-proxy.service.ts +14 -2
  282. package/src/browser/mcp/mcp-server.feature.registry.ts +35 -4
  283. package/src/browser/mcp/tools/components/EditFile.tsx +16 -9
  284. package/src/browser/mcp/tools/components/ExpandableFileList.tsx +133 -0
  285. package/src/browser/mcp/tools/components/Terminal.tsx +13 -2
  286. package/src/browser/mcp/tools/components/index.module.less +4 -0
  287. package/src/browser/mcp/tools/createNewFileWithText.ts +21 -12
  288. package/src/browser/mcp/tools/fileSearch.ts +14 -4
  289. package/src/browser/mcp/tools/getDiagnosticsByPath.ts +1 -0
  290. package/src/browser/mcp/tools/grepSearch.ts +6 -3
  291. package/src/browser/mcp/tools/handlers/EditFile.ts +1 -1
  292. package/src/browser/mcp/tools/handlers/ListDir.ts +4 -0
  293. package/src/browser/mcp/tools/handlers/RunCommand.ts +2 -0
  294. package/src/browser/mcp/tools/listDir.ts +36 -5
  295. package/src/browser/mcp/tools/runTerminalCmd.ts +1 -0
  296. package/src/browser/model/msg-history-manager.ts +5 -11
  297. package/src/browser/preferences/schema.ts +22 -2
  298. package/src/browser/types.ts +1 -0
  299. package/src/browser/widget/inline-chat/inline-chat-controller.ts +5 -1
  300. package/src/browser/widget/inline-diff/inline-diff-manager.tsx +143 -21
  301. package/src/browser/widget/inline-diff/inline-diff-previewer.ts +25 -7
  302. package/src/browser/widget/inline-diff/inline-diff-widget.module.less +25 -4
  303. package/src/browser/widget/inline-diff/inline-diff.controller.ts +16 -8
  304. package/src/browser/widget/inline-stream-diff/inline-stream-diff.handler.tsx +139 -68
  305. package/src/browser/widget/inline-stream-diff/live-preview.decoration.tsx +30 -1
  306. package/src/common/index.ts +15 -4
  307. package/src/common/llm-context.ts +10 -4
  308. package/src/common/mcp-server-manager.ts +17 -1
  309. package/src/common/model.ts +90 -0
  310. package/src/common/prompts/context-prompt-provider.ts +38 -29
  311. package/src/common/tool-invocation-registry.ts +2 -2
  312. package/src/common/types.ts +8 -0
  313. package/src/common/utils.ts +3 -1
  314. package/src/node/anthropic/anthropic-language-model.ts +7 -2
  315. package/src/node/base-language-model.ts +25 -38
  316. package/src/node/deepseek/deepseek-language-model.ts +7 -2
  317. package/src/node/mcp/sumi-mcp-server.ts +67 -9
  318. package/src/node/mcp-server-manager-impl.ts +30 -9
  319. package/src/node/mcp-server.ts +11 -14
  320. package/src/node/openai/openai-language-model.ts +8 -4
  321. package/src/node/openai-compatible/openai-compatible-language-model.ts +30 -0
  322. package/lib/browser/mcp/tools/components/SearchResult.d.ts +0 -11
  323. package/lib/browser/mcp/tools/components/SearchResult.d.ts.map +0 -1
  324. package/lib/browser/mcp/tools/components/SearchResult.js.map +0 -1
  325. package/src/browser/mcp/tools/components/SearchResult.tsx +0 -92
@@ -0,0 +1,62 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.MCPConfigContribution = exports.MCP_CONFIG_COMPONENTS_SCHEME_ID = void 0;
4
+ const tslib_1 = require("tslib");
5
+ const di_1 = require("@opensumi/di");
6
+ const services_1 = require("@opensumi/ide-core-browser/lib/services");
7
+ const ide_core_common_1 = require("@opensumi/ide-core-common");
8
+ const types_1 = require("@opensumi/ide-editor/lib/browser/types");
9
+ const browser_1 = require("@opensumi/ide-theme/lib/browser");
10
+ const common_1 = require("@opensumi/ide-workspace/lib/common");
11
+ const mcp_config_view_1 = require("./components/mcp-config.view");
12
+ const COMPONENTS_ID = 'opensumi-mcp-config-viewer';
13
+ exports.MCP_CONFIG_COMPONENTS_SCHEME_ID = 'mcp-config';
14
+ let MCPConfigContribution = class MCPConfigContribution {
15
+ registerEditorComponent(registry) {
16
+ registry.registerEditorComponent({
17
+ uid: COMPONENTS_ID,
18
+ scheme: exports.MCP_CONFIG_COMPONENTS_SCHEME_ID,
19
+ component: mcp_config_view_1.MCPConfigView,
20
+ renderMode: types_1.EditorComponentRenderMode.ONE_PER_WORKBENCH,
21
+ });
22
+ registry.registerEditorComponentResolver(exports.MCP_CONFIG_COMPONENTS_SCHEME_ID, (resource, results) => {
23
+ results.push({
24
+ type: 'component',
25
+ componentId: COMPONENTS_ID,
26
+ });
27
+ });
28
+ }
29
+ registerResource(service) {
30
+ service.registerResourceProvider({
31
+ scheme: exports.MCP_CONFIG_COMPONENTS_SCHEME_ID,
32
+ provideResource: async (uri) => {
33
+ const { configType } = uri.getParsedQuery();
34
+ return {
35
+ uri,
36
+ name: 'MCP Configuration',
37
+ icon: 'settings',
38
+ metadata: {
39
+ configType,
40
+ },
41
+ };
42
+ },
43
+ });
44
+ }
45
+ };
46
+ exports.MCPConfigContribution = MCPConfigContribution;
47
+ tslib_1.__decorate([
48
+ (0, di_1.Autowired)(common_1.IWorkspaceService),
49
+ tslib_1.__metadata("design:type", Object)
50
+ ], MCPConfigContribution.prototype, "workspaceService", void 0);
51
+ tslib_1.__decorate([
52
+ (0, di_1.Autowired)(browser_1.IconService),
53
+ tslib_1.__metadata("design:type", browser_1.IconService)
54
+ ], MCPConfigContribution.prototype, "iconService", void 0);
55
+ tslib_1.__decorate([
56
+ (0, di_1.Autowired)(),
57
+ tslib_1.__metadata("design:type", services_1.LabelService)
58
+ ], MCPConfigContribution.prototype, "labelService", void 0);
59
+ exports.MCPConfigContribution = MCPConfigContribution = tslib_1.__decorate([
60
+ (0, ide_core_common_1.Domain)(types_1.BrowserEditorContribution)
61
+ ], MCPConfigContribution);
62
+ //# sourceMappingURL=mcp-config.contribution.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"mcp-config.contribution.js","sourceRoot":"","sources":["../../../../src/browser/mcp/config/mcp-config.contribution.ts"],"names":[],"mappings":";;;;AAAA,qCAAyC;AACzC,sEAAuE;AACvE,+DAAiE;AACjE,kEAMgD;AAChD,6DAA8D;AAC9D,+DAAuE;AAEvE,kEAA6D;AAE7D,MAAM,aAAa,GAAG,4BAA4B,CAAC;AACtC,QAAA,+BAA+B,GAAG,YAAY,CAAC;AAKrD,IAAM,qBAAqB,GAA3B,MAAM,qBAAqB;IAUhC,uBAAuB,CAAC,QAAiC;QACvD,QAAQ,CAAC,uBAAuB,CAAC;YAC/B,GAAG,EAAE,aAAa;YAClB,MAAM,EAAE,uCAA+B;YACvC,SAAS,EAAE,+BAAa;YACxB,UAAU,EAAE,iCAAyB,CAAC,iBAAiB;SACxD,CAAC,CAAC;QAEH,QAAQ,CAAC,+BAA+B,CAAC,uCAA+B,EAAE,CAAC,QAAQ,EAAE,OAAO,EAAE,EAAE;YAC9F,OAAO,CAAC,IAAI,CAAC;gBACX,IAAI,EAAE,WAAW;gBACjB,WAAW,EAAE,aAAa;aAC3B,CAAC,CAAC;QACL,CAAC,CAAC,CAAC;IACL,CAAC;IAED,gBAAgB,CAAC,OAAwB;QACvC,OAAO,CAAC,wBAAwB,CAAC;YAC/B,MAAM,EAAE,uCAA+B;YACvC,eAAe,EAAE,KAAK,EAAE,GAAQ,EAA+B,EAAE;gBAC/D,MAAM,EAAE,UAAU,EAAE,GAAG,GAAG,CAAC,cAAc,EAAE,CAAC;gBAE5C,OAAO;oBACL,GAAG;oBACH,IAAI,EAAE,mBAAmB;oBACzB,IAAI,EAAE,UAAU;oBAChB,QAAQ,EAAE;wBACR,UAAU;qBACX;iBACF,CAAC;YACJ,CAAC;SACF,CAAC,CAAC;IACL,CAAC;CACF,CAAA;AA3CY,sDAAqB;AAEb;IADlB,IAAA,cAAS,EAAC,0BAAiB,CAAC;;+DAC0B;AAGpC;IADlB,IAAA,cAAS,EAAC,qBAAW,CAAC;sCACS,qBAAW;0DAAC;AAG5C;IADC,IAAA,cAAS,GAAE;sCACE,uBAAY;2DAAC;gCARhB,qBAAqB;IADjC,IAAA,wBAAM,EAAC,iCAAyB,CAAC;GACrB,qBAAqB,CA2CjC"}
@@ -26,5 +26,11 @@ export declare class MCPServerProxyService implements IMCPServerProxyService {
26
26
  }[]>;
27
27
  $updateMCPServers(): Promise<void>;
28
28
  getAllMCPTools(): Promise<import("../../common/types").MCPTool[]>;
29
+ $getServers(): Promise<{
30
+ name: string;
31
+ isStarted: boolean;
32
+ }[]>;
33
+ $startServer(serverName: string): Promise<void>;
34
+ $stopServer(serverName: string): Promise<void>;
29
35
  }
30
36
  //# sourceMappingURL=mcp-server-proxy.service.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"mcp-server-proxy.service.d.ts","sourceRoot":"","sources":["../../../src/browser/mcp/mcp-server-proxy.service.ts"],"names":[],"mappings":"AAIA,OAAO,EAAW,KAAK,EAAE,MAAM,2BAA2B,CAAC;AAG3D,OAAO,EAAE,sBAAsB,EAAE,MAAM,oBAAoB,CAAC;AAG5D,qBACa,qBAAsB,YAAW,sBAAsB;IAElE,OAAO,CAAC,QAAQ,CAAC,iBAAiB,CAAqB;IAGvD,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAU;IAGjC,OAAO,CAAC,QAAQ,CAAC,yBAAyB,CAAwB;IAElE,OAAO,CAAC,QAAQ,CAAC,mBAAmB,CAAsB;IAC1D,SAAgB,kBAAkB,EAAE,KAAK,CAAC,GAAG,CAAC,CAAkC;IAGhF,YAAY,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,GAAG;;;;;;;IAK9B,YAAY;;;;;;;;;;;IAiBZ,iBAAiB;IAIjB,cAAc;CAGrB"}
1
+ {"version":3,"file":"mcp-server-proxy.service.d.ts","sourceRoot":"","sources":["../../../src/browser/mcp/mcp-server-proxy.service.ts"],"names":[],"mappings":"AAIA,OAAO,EAAW,KAAK,EAAE,MAAM,2BAA2B,CAAC;AAG3D,OAAO,EAAE,sBAAsB,EAAE,MAAM,oBAAoB,CAAC;AAG5D,qBACa,qBAAsB,YAAW,sBAAsB;IAElE,OAAO,CAAC,QAAQ,CAAC,iBAAiB,CAAqB;IAGvD,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAU;IAGjC,OAAO,CAAC,QAAQ,CAAC,yBAAyB,CAAwB;IAElE,OAAO,CAAC,QAAQ,CAAC,mBAAmB,CAAsB;IAC1D,SAAgB,kBAAkB,EAAE,KAAK,CAAC,GAAG,CAAC,CAAkC;IAGhF,YAAY,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,GAAG;;;;;;;IAK9B,YAAY;;;;;;;;;;;IAiBZ,iBAAiB;IAIjB,cAAc;IAId,WAAW;;;;IAIX,YAAY,CAAC,UAAU,EAAE,MAAM;IAI/B,WAAW,CAAC,UAAU,EAAE,MAAM;CAGrC"}
@@ -25,7 +25,7 @@ let MCPServerProxyService = class MCPServerProxyService {
25
25
  name: tool.name,
26
26
  description: tool.description,
27
27
  inputSchema: (0, zod_to_json_schema_1.zodToJsonSchema)(tool.inputSchema),
28
- providerName: 'sumi-builtin',
28
+ providerName: common_1.BUILTIN_MCP_SERVER_NAME,
29
29
  }));
30
30
  this.logger.log('SUMI MCP tools', tools);
31
31
  return tools;
@@ -37,6 +37,15 @@ let MCPServerProxyService = class MCPServerProxyService {
37
37
  async getAllMCPTools() {
38
38
  return this.sumiMCPServerProxyService.getAllMCPTools();
39
39
  }
40
+ async $getServers() {
41
+ return this.sumiMCPServerProxyService.getServers();
42
+ }
43
+ async $startServer(serverName) {
44
+ await this.sumiMCPServerProxyService.startServer(serverName);
45
+ }
46
+ async $stopServer(serverName) {
47
+ await this.sumiMCPServerProxyService.stopServer(serverName);
48
+ }
40
49
  };
41
50
  exports.MCPServerProxyService = MCPServerProxyService;
42
51
  tslib_1.__decorate([
@@ -1 +1 @@
1
- {"version":3,"file":"mcp-server-proxy.service.js","sourceRoot":"","sources":["../../../src/browser/mcp/mcp-server-proxy.service.ts"],"names":[],"mappings":";;;;AAAA,2DAAqD;AAErD,qCAAqD;AACrD,iEAAqD;AACrD,+DAA2D;AAE3D,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;QACf,CAAC;YACC,IAAI,EAAE,IAAI,CAAC,IAAI;YACf,WAAW,EAAE,IAAI,CAAC,WAAW;YAC7B,WAAW,EAAE,IAAA,oCAAe,EAAC,IAAI,CAAC,WAAW,CAAC;YAC9C,YAAY,EAAE,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"}
1
+ {"version":3,"file":"mcp-server-proxy.service.js","sourceRoot":"","sources":["../../../src/browser/mcp/mcp-server-proxy.service.ts"],"names":[],"mappings":";;;;AAAA,2DAAqD;AAErD,qCAAqD;AACrD,iEAAqD;AACrD,+DAA2D;AAE3D,yCAA6G;AAE7G,oCAAsE;AAG/D,IAAM,qBAAqB,GAA3B,MAAM,qBAAqB;IAA3B;QAUY,wBAAmB,GAAG,IAAI,yBAAO,EAAO,CAAC;QAC1C,uBAAkB,GAAe,IAAI,CAAC,mBAAmB,CAAC,KAAK,CAAC;IA4ClF,CAAC;IA1CC,2BAA2B;IAC3B,YAAY,CAAC,IAAY,EAAE,IAAS;QAClC,OAAO,IAAI,CAAC,iBAAiB,CAAC,WAAW,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;IACxD,CAAC;IAED,8BAA8B;IAC9B,KAAK,CAAC,YAAY;QAChB,MAAM,KAAK,GAAG,MAAM,IAAI,CAAC,iBAAiB,CAAC,WAAW,EAAE,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE;QACpE,eAAe;QACf,CAAC;YACC,IAAI,EAAE,IAAI,CAAC,IAAI;YACf,WAAW,EAAE,IAAI,CAAC,WAAW;YAC7B,WAAW,EAAE,IAAA,oCAAe,EAAC,IAAI,CAAC,WAAW,CAAC;YAC9C,YAAY,EAAE,gCAAuB;SACtC,CAAC,CACH,CAAC;QAEF,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,gBAAgB,EAAE,KAAK,CAAC,CAAC;QAEzC,OAAO,KAAK,CAAC;IACf,CAAC;IAED,sBAAsB;IACtB,KAAK,CAAC,iBAAiB;QACrB,IAAI,CAAC,mBAAmB,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;IAC1C,CAAC;IAED,KAAK,CAAC,cAAc;QAClB,OAAO,IAAI,CAAC,yBAAyB,CAAC,cAAc,EAAE,CAAC;IACzD,CAAC;IAED,KAAK,CAAC,WAAW;QACf,OAAO,IAAI,CAAC,yBAAyB,CAAC,UAAU,EAAE,CAAC;IACrD,CAAC;IAED,KAAK,CAAC,YAAY,CAAC,UAAkB;QACnC,MAAM,IAAI,CAAC,yBAAyB,CAAC,WAAW,CAAC,UAAU,CAAC,CAAC;IAC/D,CAAC;IAED,KAAK,CAAC,WAAW,CAAC,UAAkB;QAClC,MAAM,IAAI,CAAC,yBAAyB,CAAC,UAAU,CAAC,UAAU,CAAC,CAAC;IAC9D,CAAC;CACF,CAAA;AAvDY,sDAAqB;AAEf;IADhB,IAAA,cAAS,EAAC,8BAAsB,CAAC;;gEACqB;AAGtC;IADhB,IAAA,cAAS,EAAC,0BAAO,CAAC;;qDACc;AAGhB;IADhB,IAAA,cAAS,EAAC,sCAA6B,CAAC;;wEACyB;gCARvD,qBAAqB;IADjC,IAAA,eAAU,GAAE;GACA,qBAAqB,CAuDjC"}
@@ -2,8 +2,15 @@ import { IMCPServerRegistry, IMCPServerToolComponentProps, MCPToolDefinition } f
2
2
  export declare class MCPServerRegistry implements IMCPServerRegistry {
3
3
  private tools;
4
4
  private toolComponents;
5
+ private _activeMessageInfo;
5
6
  private readonly baseLogger;
7
+ private readonly aiReporter;
6
8
  private get logger();
9
+ /** 设置当前活跃的消息信息,便于toolCall打点 */
10
+ set activeMessageInfo(params: {
11
+ messageId: string;
12
+ sessionId: string;
13
+ });
7
14
  getMCPTool(name: string, serverName?: string): MCPToolDefinition | undefined;
8
15
  registerMCPTool(tool: MCPToolDefinition): void;
9
16
  registerToolComponent(name: string, component: React.FC<IMCPServerToolComponentProps>, serverName?: string): void;
@@ -16,5 +23,6 @@ export declare class MCPServerRegistry implements IMCPServerRegistry {
16
23
  }[];
17
24
  isError?: boolean;
18
25
  }>;
26
+ private reportToolCall;
19
27
  }
20
28
  //# sourceMappingURL=mcp-server.feature.registry.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"mcp-server.feature.registry.d.ts","sourceRoot":"","sources":["../../../src/browser/mcp/mcp-server.feature.registry.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,kBAAkB,EAAE,4BAA4B,EAAa,iBAAiB,EAAE,MAAM,UAAU,CAAC;AAU1G,qBACa,iBAAkB,YAAW,kBAAkB;IAC1D,OAAO,CAAC,KAAK,CAA2B;IACxC,OAAO,CAAC,cAAc,CAA8D;IAGpF,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAU;IAErC,OAAO,KAAK,MAAM,GAEjB;IAED,UAAU,CAAC,IAAI,EAAE,MAAM,EAAE,UAAU,SAAiB,GAAG,iBAAiB,GAAG,SAAS;IAIpF,eAAe,CAAC,IAAI,EAAE,iBAAiB,GAAG,IAAI;IAI9C,qBAAqB,CACnB,IAAI,EAAE,MAAM,EACZ,SAAS,EAAE,KAAK,CAAC,EAAE,CAAC,4BAA4B,CAAC,EACjD,UAAU,SAAiB,GAC1B,IAAI;IAIP,gBAAgB,CAAC,IAAI,EAAE,MAAM,GAAG,KAAK,CAAC,EAAE,CAAC,4BAA4B,CAAC,GAAG,SAAS;IAIlF,WAAW,IAAI,iBAAiB,EAAE;IAI5B,WAAW,CACf,IAAI,EAAE,MAAM,EACZ,IAAI,EAAE,GAAG,GACR,OAAO,CAAC;QACT,OAAO,EAAE;YAAE,IAAI,EAAE,MAAM,CAAC;YAAC,IAAI,EAAE,MAAM,CAAA;SAAE,EAAE,CAAC;QAC1C,OAAO,CAAC,EAAE,OAAO,CAAC;KACnB,CAAC;CAmBH"}
1
+ {"version":3,"file":"mcp-server.feature.registry.d.ts","sourceRoot":"","sources":["../../../src/browser/mcp/mcp-server.feature.registry.ts"],"names":[],"mappings":"AAMA,OAAO,EAAE,kBAAkB,EAAE,4BAA4B,EAAa,iBAAiB,EAAE,MAAM,UAAU,CAAC;AAU1G,qBACa,iBAAkB,YAAW,kBAAkB;IAC1D,OAAO,CAAC,KAAK,CAA2B;IACxC,OAAO,CAAC,cAAc,CAA8D;IAEpF,OAAO,CAAC,kBAAkB,CAGxB;IAGF,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAU;IAGrC,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAc;IAEzC,OAAO,KAAK,MAAM,GAEjB;IAED,+BAA+B;IAC/B,IAAI,iBAAiB,CAAC,MAAM,EAAE;QAAE,SAAS,EAAE,MAAM,CAAC;QAAC,SAAS,EAAE,MAAM,CAAA;KAAE,EAErE;IAED,UAAU,CAAC,IAAI,EAAE,MAAM,EAAE,UAAU,SAA0B,GAAG,iBAAiB,GAAG,SAAS;IAI7F,eAAe,CAAC,IAAI,EAAE,iBAAiB,GAAG,IAAI;IAI9C,qBAAqB,CACnB,IAAI,EAAE,MAAM,EACZ,SAAS,EAAE,KAAK,CAAC,EAAE,CAAC,4BAA4B,CAAC,EACjD,UAAU,SAA0B,GACnC,IAAI;IAIP,gBAAgB,CAAC,IAAI,EAAE,MAAM,GAAG,KAAK,CAAC,EAAE,CAAC,4BAA4B,CAAC,GAAG,SAAS;IAIlF,WAAW,IAAI,iBAAiB,EAAE;IAI5B,WAAW,CACf,IAAI,EAAE,MAAM,EACZ,IAAI,EAAE,GAAG,GACR,OAAO,CAAC;QACT,OAAO,EAAE;YAAE,IAAI,EAAE,MAAM,CAAC;YAAC,IAAI,EAAE,MAAM,CAAA;SAAE,EAAE,CAAC;QAC1C,OAAO,CAAC,EAAE,OAAO,CAAC;KACnB,CAAC;IAuBF,OAAO,CAAC,cAAc;CAavB"}
@@ -5,6 +5,7 @@ const tslib_1 = require("tslib");
5
5
  // OpenSumi as MCP Server 前端的代理服务
6
6
  const di_1 = require("@opensumi/di");
7
7
  const ide_core_common_1 = require("@opensumi/ide-core-common");
8
+ const common_1 = require("../../common");
8
9
  const utils_1 = require("../../common/utils");
9
10
  class LoggerAdapter {
10
11
  constructor(logger) {
@@ -22,13 +23,17 @@ let MCPServerRegistry = class MCPServerRegistry {
22
23
  get logger() {
23
24
  return new LoggerAdapter(this.baseLogger);
24
25
  }
25
- getMCPTool(name, serverName = 'sumi-builtin') {
26
+ /** 设置当前活跃的消息信息,便于toolCall打点 */
27
+ set activeMessageInfo(params) {
28
+ this._activeMessageInfo = params;
29
+ }
30
+ getMCPTool(name, serverName = common_1.BUILTIN_MCP_SERVER_NAME) {
26
31
  return this.tools.find((tool) => (0, utils_1.getToolName)(tool.name, serverName) === name);
27
32
  }
28
33
  registerMCPTool(tool) {
29
34
  this.tools.push(tool);
30
35
  }
31
- registerToolComponent(name, component, serverName = 'sumi-builtin') {
36
+ registerToolComponent(name, component, serverName = common_1.BUILTIN_MCP_SERVER_NAME) {
32
37
  this.toolComponents[(0, utils_1.getToolName)(name, serverName)] = component;
33
38
  }
34
39
  getToolComponent(name) {
@@ -46,23 +51,43 @@ let MCPServerRegistry = class MCPServerRegistry {
46
51
  // 统一校验并转换
47
52
  const toolCallId = args.toolCallId;
48
53
  args = tool.inputSchema.parse(args);
49
- return await tool.handler({ ...args, toolCallId }, this.logger);
54
+ const result = await tool.handler({ ...args, toolCallId }, this.logger);
55
+ this.reportToolCall(name, args, result, toolCallId);
56
+ return result;
50
57
  }
51
58
  catch (error) {
52
59
  // eslint-disable-next-line no-console
53
60
  console.error('callMCPTool error:', error);
61
+ this.reportToolCall(name, args, error, args.toolCallId);
54
62
  return {
55
63
  content: [{ type: 'text', text: `The tool ${name} failed to execute. Error: ${error}` }],
56
64
  isError: true,
57
65
  };
58
66
  }
59
67
  }
68
+ reportToolCall(name, args, result, toolCallId) {
69
+ const tool = this.tools.find((tool) => tool.name === name);
70
+ if (!tool) {
71
+ throw new Error(`MCP tool ${name} not found`);
72
+ }
73
+ this.aiReporter.send({
74
+ msgType: ide_core_common_1.AIServiceType.ToolCall,
75
+ message: JSON.stringify({ args, name, result }),
76
+ messageId: this._activeMessageInfo.messageId,
77
+ sessionId: this._activeMessageInfo.sessionId,
78
+ relationId: toolCallId,
79
+ });
80
+ }
60
81
  };
61
82
  exports.MCPServerRegistry = MCPServerRegistry;
62
83
  tslib_1.__decorate([
63
84
  (0, di_1.Autowired)(ide_core_common_1.ILogger),
64
85
  tslib_1.__metadata("design:type", Object)
65
86
  ], MCPServerRegistry.prototype, "baseLogger", void 0);
87
+ tslib_1.__decorate([
88
+ (0, di_1.Autowired)(ide_core_common_1.IAIReporter),
89
+ tslib_1.__metadata("design:type", Object)
90
+ ], MCPServerRegistry.prototype, "aiReporter", void 0);
66
91
  exports.MCPServerRegistry = MCPServerRegistry = tslib_1.__decorate([
67
92
  (0, di_1.Injectable)()
68
93
  ], MCPServerRegistry);
@@ -1 +1 @@
1
- {"version":3,"file":"mcp-server.feature.registry.js","sourceRoot":"","sources":["../../../src/browser/mcp/mcp-server.feature.registry.ts"],"names":[],"mappings":";;;;AAAA,iCAAiC;AACjC,qCAAqD;AACrD,+DAAoD;AAEpD,8CAAiD;AAGjD,MAAM,aAAa;IACjB,YAA6B,MAAe;QAAf,WAAM,GAAN,MAAM,CAAS;IAAG,CAAC;IAEhD,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;QAChC,mBAAc,GAA2D,EAAE,CAAC;IA0DtF,CAAC;IArDC,IAAY,MAAM;QAChB,OAAO,IAAI,aAAa,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;IAC5C,CAAC;IAED,UAAU,CAAC,IAAY,EAAE,UAAU,GAAG,cAAc;QAClD,OAAO,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAA,mBAAW,EAAC,IAAI,CAAC,IAAI,EAAE,UAAU,CAAC,KAAK,IAAI,CAAC,CAAC;IAChF,CAAC;IAED,eAAe,CAAC,IAAuB;QACrC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IACxB,CAAC;IAED,qBAAqB,CACnB,IAAY,EACZ,SAAiD,EACjD,UAAU,GAAG,cAAc;QAE3B,IAAI,CAAC,cAAc,CAAC,IAAA,mBAAW,EAAC,IAAI,EAAE,UAAU,CAAC,CAAC,GAAG,SAAS,CAAC;IACjE,CAAC;IAED,gBAAgB,CAAC,IAAY;QAC3B,OAAO,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,CAAC;IACnC,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,UAAU;YACV,MAAM,UAAU,GAAG,IAAI,CAAC,UAAU,CAAC;YACnC,IAAI,GAAG,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;YACpC,OAAO,MAAM,IAAI,CAAC,OAAO,CAAC,EAAE,GAAG,IAAI,EAAE,UAAU,EAAE,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC;QAClE,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,sCAAsC;YACtC,OAAO,CAAC,KAAK,CAAC,oBAAoB,EAAE,KAAK,CAAC,CAAC;YAC3C,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;AA5DY,8CAAiB;AAKX;IADhB,IAAA,cAAS,EAAC,yBAAO,CAAC;;qDACkB;4BAL1B,iBAAiB;IAD7B,IAAA,eAAU,GAAE;GACA,iBAAiB,CA4D7B"}
1
+ {"version":3,"file":"mcp-server.feature.registry.js","sourceRoot":"","sources":["../../../src/browser/mcp/mcp-server.feature.registry.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"EditFile.d.ts","sourceRoot":"","sources":["../../../../../src/browser/mcp/tools/components/EditFile.tsx"],"names":[],"mappings":"AAqBA,OAAO,EAAE,4BAA4B,EAAE,MAAM,gBAAgB,CAAC;AAK9D,eAAO,MAAM,qBAAqB,UAAW,4BAA4B,iBAyGxE,CAAC"}
1
+ {"version":3,"file":"EditFile.d.ts","sourceRoot":"","sources":["../../../../../src/browser/mcp/tools/components/EditFile.tsx"],"names":[],"mappings":"AAsBA,OAAO,EAAE,4BAA4B,EAAE,MAAM,gBAAgB,CAAC;AAK9D,eAAO,MAAM,qBAAqB,UAAW,4BAA4B,iBA+GxE,CAAC"}
@@ -7,6 +7,7 @@ const react_1 = tslib_1.__importStar(require("react"));
7
7
  const ide_components_1 = require("@opensumi/ide-components");
8
8
  const ide_core_browser_1 = require("@opensumi/ide-core-browser");
9
9
  const ai_native_1 = require("@opensumi/ide-core-browser/lib/components/ai-native");
10
+ const ide_editor_1 = require("@opensumi/ide-editor");
10
11
  const language_1 = require("@opensumi/monaco-editor-core/esm/vs/editor/common/languages/language");
11
12
  const model_1 = require("@opensumi/monaco-editor-core/esm/vs/editor/common/services/model");
12
13
  const standaloneServices_1 = require("@opensumi/monaco-editor-core/esm/vs/editor/standalone/browser/standaloneServices");
@@ -20,6 +21,7 @@ const EditFileToolComponent = (props) => {
20
21
  const labelService = (0, ide_core_browser_1.useInjectable)(ide_core_browser_1.LabelService);
21
22
  const appConfig = (0, ide_core_browser_1.useInjectable)(ide_core_browser_1.AppConfig);
22
23
  const applyService = (0, ide_core_browser_1.useInjectable)(base_apply_service_1.BaseApplyService);
24
+ const editorService = (0, ide_core_browser_1.useInjectable)(ide_editor_1.WorkbenchEditorService);
23
25
  const { target_file = '', code_edit, instructions } = args || {};
24
26
  const absolutePath = ide_core_browser_1.path.join(appConfig.workspaceDir, target_file);
25
27
  const [codeBlockData, setCodeBlockData] = (0, react_1.useState)(applyService.getCodeBlock(toolCallId, messageId));
@@ -41,14 +43,18 @@ const EditFileToolComponent = (props) => {
41
43
  }, [target_file, absolutePath]);
42
44
  (0, react_1.useEffect)(() => {
43
45
  const disposable = applyService.onCodeBlockUpdate((codeBlockData) => {
44
- setCodeBlockData({ ...codeBlockData });
46
+ if (codeBlockData.toolCallId === toolCallId) {
47
+ setCodeBlockData({ ...codeBlockData });
48
+ }
45
49
  });
46
50
  return () => {
47
51
  disposable.dispose();
48
52
  };
49
53
  }, []);
50
- // 多次迭代时,仅在首处tool组件中展示
51
- // FIXME: 这个优化有必要吗?每次都展示也挺好?
54
+ const handleToggleMode = (e) => {
55
+ e.stopPropagation();
56
+ setMode(mode === 'code' ? 'diff' : 'code');
57
+ };
52
58
  if (!args || !codeBlockData) {
53
59
  return null;
54
60
  }
@@ -59,7 +65,7 @@ const EditFileToolComponent = (props) => {
59
65
  clickable: codeBlockData.status === 'pending' || codeBlockData.status === 'success',
60
66
  }), onClick: () => {
61
67
  if (codeBlockData.status === 'pending') {
62
- applyService.renderApplyResult(codeBlockData, codeBlockData.updatedCode);
68
+ editorService.open(ide_core_browser_1.URI.file(absolutePath));
63
69
  }
64
70
  else if (codeBlockData.status === 'success') {
65
71
  applyService.revealApplyPosition(codeBlockData);
@@ -71,12 +77,12 @@ const EditFileToolComponent = (props) => {
71
77
  codeBlockData.iterationCount > 1 && (react_1.default.createElement("span", { className: index_module_less_1.default['edit-file-tool-iteration-count'] },
72
78
  codeBlockData.iterationCount,
73
79
  "/3")),
74
- renderStatus(codeBlockData)),
80
+ renderStatus(codeBlockData, props.result)),
75
81
  react_1.default.createElement("div", { className: index_module_less_1.default.right },
76
82
  react_1.default.createElement(ide_components_1.Popover, { title: 'Show Code', id: 'edit-file-tool-show-code' },
77
- react_1.default.createElement(ide_components_1.Icon, { iconClass: 'codicon codicon-file-code', onClick: () => setMode('code') })),
83
+ react_1.default.createElement(ide_components_1.Icon, { iconClass: 'codicon codicon-file-code', onClick: handleToggleMode })),
78
84
  ((_a = codeBlockData.applyResult) === null || _a === void 0 ? void 0 : _a.diff) && (react_1.default.createElement(ide_components_1.Popover, { title: 'Show Diff', id: 'edit-file-tool-show-diff' },
79
- react_1.default.createElement(ide_components_1.Icon, { iconClass: 'codicon codicon-diff-multiple', onClick: () => setMode('diff') }))))),
85
+ react_1.default.createElement(ide_components_1.Icon, { iconClass: 'codicon codicon-diff-multiple', onClick: handleToggleMode }))))),
80
86
  react_1.default.createElement(ChatMarkdown_1.ChatMarkdown, { markdown: mode === 'code'
81
87
  ? `\`\`\`${languageId || ''}\n${code_edit}\n\`\`\``
82
88
  : `\`\`\`diff\n${(_b = codeBlockData.applyResult) === null || _b === void 0 ? void 0 : _b.diff}\n\`\`\``, hideInsert: true })),
@@ -91,7 +97,7 @@ const EditFileToolComponent = (props) => {
91
97
  ];
92
98
  };
93
99
  exports.EditFileToolComponent = EditFileToolComponent;
94
- const renderStatus = (codeBlockData) => {
100
+ const renderStatus = (codeBlockData, error) => {
95
101
  const status = codeBlockData.status;
96
102
  switch (status) {
97
103
  case 'generating':
@@ -103,7 +109,7 @@ const renderStatus = (codeBlockData) => {
103
109
  return (react_1.default.createElement(ide_components_1.Popover, { title: 'Success', id: 'edit-file-tool-status-success' },
104
110
  react_1.default.createElement(ide_components_1.Icon, { iconClass: 'codicon codicon-check-all' })));
105
111
  case 'failed':
106
- return (react_1.default.createElement(ide_components_1.Popover, { title: 'Failed', id: 'edit-file-tool-status-failed' },
112
+ return (react_1.default.createElement(ide_components_1.Popover, { title: `Failed (${error})`, id: 'edit-file-tool-status-failed' },
107
113
  react_1.default.createElement(ide_components_1.Icon, { iconClass: 'codicon codicon-error', style: { color: 'var(--debugConsole-errorForeground)' } })));
108
114
  case 'cancelled':
109
115
  return (react_1.default.createElement(ide_components_1.Popover, { title: 'Cancelled', id: 'edit-file-tool-status-cancelled' },
@@ -1 +1 @@
1
- {"version":3,"file":"EditFile.js","sourceRoot":"","sources":["../../../../../src/browser/mcp/tools/components/EditFile.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"EditFile.js","sourceRoot":"","sources":["../../../../../src/browser/mcp/tools/components/EditFile.tsx"],"names":[],"mappings":"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"}
@@ -0,0 +1,13 @@
1
+ import React from 'react';
2
+ interface ExpandableFileListProps {
3
+ args: any;
4
+ toolCallId: string;
5
+ messageId: string;
6
+ toolName: string;
7
+ headerText?: string;
8
+ }
9
+ export declare const FileSearchToolComponent: React.FC<ExpandableFileListProps>;
10
+ export declare const GrepSearchToolComponent: React.FC<ExpandableFileListProps>;
11
+ export declare const ListDirToolComponent: React.FC<ExpandableFileListProps>;
12
+ export {};
13
+ //# sourceMappingURL=ExpandableFileList.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ExpandableFileList.d.ts","sourceRoot":"","sources":["../../../../../src/browser/mcp/tools/components/ExpandableFileList.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAuC,MAAM,OAAO,CAAC;AAgB5D,UAAU,uBAAuB;IAC/B,IAAI,EAAE,GAAG,CAAC;IACV,UAAU,EAAE,MAAM,CAAC;IACnB,SAAS,EAAE,MAAM,CAAC;IAClB,QAAQ,EAAE,MAAM,CAAC;IACjB,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AAED,eAAO,MAAM,uBAAuB,EAAE,KAAK,CAAC,EAAE,CAAC,uBAAuB,CAQrE,CAAC;AAEF,eAAO,MAAM,uBAAuB,EAAE,KAAK,CAAC,EAAE,CAAC,uBAAuB,CAQrE,CAAC;AAEF,eAAO,MAAM,oBAAoB,EAAE,KAAK,CAAC,EAAE,CAAC,uBAAuB,CAQlE,CAAC"}
@@ -1,6 +1,6 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.GrepSearchToolComponent = exports.FileSearchToolComponent = void 0;
3
+ exports.ListDirToolComponent = exports.GrepSearchToolComponent = exports.FileSearchToolComponent = void 0;
4
4
  const tslib_1 = require("tslib");
5
5
  const react_1 = tslib_1.__importStar(require("react"));
6
6
  const ide_core_browser_1 = require("@opensumi/ide-core-browser");
@@ -8,53 +8,63 @@ const ide_editor_1 = require("@opensumi/ide-editor");
8
8
  const ide_workspace_1 = require("@opensumi/ide-workspace");
9
9
  const common_1 = require("../../../../common");
10
10
  const index_module_less_1 = tslib_1.__importDefault(require("./index.module.less"));
11
- const FileSearchToolComponent = ({ args, toolCallId, messageId }) => (react_1.default.createElement(SearchResult, { args: args, toolCallId: toolCallId, messageId: messageId, toolName: 'fileSearch' }));
11
+ const FileSearchToolComponent = ({ args, toolCallId, messageId }) => (react_1.default.createElement(ExpandableFileList, { args: args, toolCallId: toolCallId, messageId: messageId, toolName: 'fileSearch', headerText: `Searched files "${args.query}"` }));
12
12
  exports.FileSearchToolComponent = FileSearchToolComponent;
13
- const GrepSearchToolComponent = ({ args, toolCallId, messageId }) => (react_1.default.createElement(SearchResult, { args: args, toolCallId: toolCallId, messageId: messageId, toolName: 'grepSearch' }));
13
+ const GrepSearchToolComponent = ({ args, toolCallId, messageId }) => (react_1.default.createElement(ExpandableFileList, { args: args, toolCallId: toolCallId, messageId: messageId, toolName: 'grepSearch', headerText: `Grepped codebase "${args.query}"` }));
14
14
  exports.GrepSearchToolComponent = GrepSearchToolComponent;
15
- const SearchResult = ({ args, toolCallId, toolName, messageId }) => {
16
- var _a, _b;
15
+ const ListDirToolComponent = ({ args, toolCallId, messageId }) => (react_1.default.createElement(ExpandableFileList, { args: args, toolCallId: toolCallId, messageId: messageId, toolName: 'listDir', headerText: `Listed directory "${args.relative_workspace_path}"` }));
16
+ exports.ListDirToolComponent = ListDirToolComponent;
17
+ const ExpandableFileList = ({ args, toolCallId, toolName, messageId, headerText, }) => {
17
18
  const [isExpanded, setIsExpanded] = (0, react_1.useState)(false);
18
19
  const labelService = (0, ide_core_browser_1.useInjectable)(ide_core_browser_1.LabelService);
19
20
  const editorService = (0, ide_core_browser_1.useInjectable)(ide_editor_1.WorkbenchEditorService);
20
21
  const workspaceService = (0, ide_core_browser_1.useInjectable)(ide_workspace_1.IWorkspaceService);
22
+ const commandService = (0, ide_core_browser_1.useInjectable)(ide_core_browser_1.CommandService);
21
23
  const workspaceRoot = (0, react_1.useMemo)(() => { var _a, _b; return ide_core_browser_1.URI.parse((_b = (_a = workspaceService.tryGetRoots()) === null || _a === void 0 ? void 0 : _a[0]) === null || _b === void 0 ? void 0 : _b.uri); }, []);
22
24
  const chatService = (0, ide_core_browser_1.useInjectable)(common_1.IChatInternalService);
23
- const [files, setFiles] = (0, react_1.useState)(((_b = (_a = chatService.sessionModel.history.getMessageAdditional(messageId)) === null || _a === void 0 ? void 0 : _a[toolCallId]) === null || _b === void 0 ? void 0 : _b.files) || []);
25
+ const [fileList, setFileList] = (0, react_1.useState)([]);
24
26
  (0, react_1.useEffect)(() => {
25
27
  const toDispose = chatService.sessionModel.history.onMessageAdditionalChange((additional) => {
26
28
  var _a;
27
- setFiles(((_a = additional[toolCallId]) === null || _a === void 0 ? void 0 : _a.files) || []);
29
+ setFileList(((_a = additional[toolCallId]) === null || _a === void 0 ? void 0 : _a.files) || []);
28
30
  });
29
31
  return () => {
30
32
  toDispose.dispose();
31
33
  };
32
34
  }, []);
33
- const handleFileClick = (uri) => {
35
+ const handleFileClick = async (fileInfo) => {
34
36
  // 处理文件点击跳转
35
- editorService.open(uri);
37
+ if (!fileInfo.isDirectory) {
38
+ editorService.open(ide_core_browser_1.URI.parse(fileInfo.uri));
39
+ }
40
+ else {
41
+ // 如果是目录,聚焦到文件树并展开该目录
42
+ const uri = ide_core_browser_1.URI.parse(fileInfo.uri);
43
+ commandService.executeCommand('filetree.location', uri);
44
+ }
36
45
  };
37
- const parsedFiles = (0, react_1.useMemo)(() => files.map((file) => {
38
- const uri = ide_core_browser_1.URI.parse(file);
39
- const iconClass = labelService.getIcon(uri);
46
+ const parsedFiles = (0, react_1.useMemo)(() => fileList.map((file) => {
47
+ const uri = ide_core_browser_1.URI.parse(file.uri);
48
+ const iconClass = labelService.getIcon(uri, { isDirectory: file.isDirectory });
40
49
  return {
41
50
  iconClass,
42
51
  name: uri.path.base,
43
52
  path: ide_core_browser_1.path.relative(workspaceRoot.codeUri.fsPath, uri.path.dir.toString()),
53
+ uri: file.uri,
54
+ isDirectory: file.isDirectory,
44
55
  };
45
- }), [files]);
56
+ }), [fileList]);
46
57
  return (react_1.default.createElement("div", { className: index_module_less_1.default.container },
47
58
  react_1.default.createElement("div", { className: index_module_less_1.default.header, onClick: () => setIsExpanded(!isExpanded) },
48
59
  react_1.default.createElement("span", { style: { transform: `rotate(${isExpanded ? '90deg' : '0deg'})` } }, "\u25B6"),
49
60
  react_1.default.createElement("span", null,
50
- toolName === 'fileSearch' ? `Searched files "${args.query}"` : `Grepped codebase "${args.query}"`,
51
- " \u00B7",
52
- ' ',
53
- files.length,
61
+ headerText,
62
+ " \u00B7 ",
63
+ fileList.length,
54
64
  " files")),
55
- isExpanded && (react_1.default.createElement("ul", { className: index_module_less_1.default.fileList }, parsedFiles.map((file, index) => (react_1.default.createElement("li", { key: index, className: index_module_less_1.default.fileItem, onClick: () => handleFileClick(ide_core_browser_1.URI.file(ide_core_browser_1.path.join(workspaceRoot.codeUri.fsPath, file.path, file.name))) },
65
+ isExpanded && (react_1.default.createElement("ul", { className: index_module_less_1.default.fileList }, parsedFiles.map((file, index) => (react_1.default.createElement("li", { key: index, className: index_module_less_1.default.fileItem, onClick: () => handleFileClick({ uri: file.uri, isDirectory: file.isDirectory }) },
56
66
  react_1.default.createElement("span", { className: file.iconClass }),
57
67
  react_1.default.createElement("span", { style: { flex: 1 } }, file.name),
58
68
  react_1.default.createElement("span", { className: index_module_less_1.default.filePath }, file.path))))))));
59
69
  };
60
- //# sourceMappingURL=SearchResult.js.map
70
+ //# sourceMappingURL=ExpandableFileList.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ExpandableFileList.js","sourceRoot":"","sources":["../../../../../src/browser/mcp/tools/components/ExpandableFileList.tsx"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"Terminal.d.ts","sourceRoot":"","sources":["../../../../../src/browser/mcp/tools/components/Terminal.tsx"],"names":[],"mappings":"AAAA,OAAO,KAA+C,MAAM,OAAO,CAAC;AAMpE,OAAO,EAAE,4BAA4B,EAAE,MAAM,gBAAgB,CAAC;AA8B9D,eAAO,MAAM,qBAAqB,oCAAgB,4BAA4B,uBA4D5E,CAAC"}
1
+ {"version":3,"file":"Terminal.d.ts","sourceRoot":"","sources":["../../../../../src/browser/mcp/tools/components/Terminal.tsx"],"names":[],"mappings":"AAAA,OAAO,KAA+C,MAAM,OAAO,CAAC;AAOpE,OAAO,EAAE,4BAA4B,EAAE,MAAM,gBAAgB,CAAC;AA8B9D,eAAO,MAAM,qBAAqB,oCAAgB,4BAA4B,uBAsE5E,CAAC"}
@@ -6,6 +6,7 @@ const react_1 = tslib_1.__importStar(require("react"));
6
6
  const ide_core_browser_1 = require("@opensumi/ide-core-browser");
7
7
  const components_1 = require("@opensumi/ide-core-browser/lib/components");
8
8
  const ide_core_common_1 = require("@opensumi/ide-core-common");
9
+ const ansi_1 = require("@opensumi/ide-utils/lib/ansi");
9
10
  const RunCommand_1 = require("../handlers/RunCommand");
10
11
  const index_module_less_1 = tslib_1.__importDefault(require("./index.module.less"));
11
12
  function getResult(raw) {
@@ -43,11 +44,18 @@ exports.TerminalToolComponent = (0, react_1.memo)((props) => {
43
44
  }, [props]);
44
45
  return (react_1.default.createElement("div", { className: index_module_less_1.default.run_cmd_tool },
45
46
  props.state === 'result' && (react_1.default.createElement("div", null,
47
+ args && (react_1.default.createElement(react_1.default.Fragment, null,
48
+ react_1.default.createElement("div", { className: index_module_less_1.default.command_title },
49
+ react_1.default.createElement(components_1.Icon, { icon: 'terminal' }),
50
+ react_1.default.createElement("span", null, (0, ide_core_common_1.localize)('ai.native.mcp.terminal.command'))),
51
+ react_1.default.createElement("p", { className: index_module_less_1.default.command_content },
52
+ react_1.default.createElement("code", null,
53
+ "$ ",
54
+ args.command)))),
46
55
  react_1.default.createElement("div", { className: index_module_less_1.default.command_title },
47
- react_1.default.createElement(components_1.Icon, { icon: 'terminal' }),
48
56
  react_1.default.createElement("span", null, (0, ide_core_common_1.localize)('ai.native.mcp.terminal.output'))),
49
57
  output ? (react_1.default.createElement("div", { className: index_module_less_1.default.command_content },
50
- react_1.default.createElement("code", null, output.text))) : (''))),
58
+ react_1.default.createElement("code", null, (0, ansi_1.stripAnsi)(output.text)))) : (''))),
51
59
  props.state === 'complete' && (args === null || args === void 0 ? void 0 : args.require_user_approval) && (react_1.default.createElement("div", null,
52
60
  react_1.default.createElement("div", { className: index_module_less_1.default.command_title },
53
61
  react_1.default.createElement(components_1.Icon, { icon: 'terminal' }),
@@ -1 +1 @@
1
- {"version":3,"file":"Terminal.js","sourceRoot":"","sources":["../../../../../src/browser/mcp/tools/components/Terminal.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"Terminal.js","sourceRoot":"","sources":["../../../../../src/browser/mcp/tools/components/Terminal.tsx"],"names":[],"mappings":"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"}
@@ -17,6 +17,9 @@
17
17
  align-items: center;
18
18
  justify-content: center;
19
19
  }
20
+ .left {
21
+ overflow: hidden;
22
+ }
20
23
  .left,
21
24
  .right {
22
25
  display: flex;
@@ -154,6 +157,7 @@
154
157
  background-color: var(--design-chatInput-background);
155
158
  padding: 10px;
156
159
  border-radius: 4px;
160
+ margin: 10px 0px;
157
161
 
158
162
  .command_title {
159
163
  display: flex;
@@ -2,6 +2,7 @@ import { IMCPServerRegistry, MCPServerContribution, MCPToolDefinition } from '..
2
2
  export declare class CreateNewFileWithTextTool implements MCPServerContribution {
3
3
  private readonly workspaceService;
4
4
  private readonly fileService;
5
+ private applyService;
5
6
  registerMCPServer(registry: IMCPServerRegistry): void;
6
7
  getToolDefinition(): MCPToolDefinition;
7
8
  private handler;
@@ -1 +1 @@
1
- {"version":3,"file":"createNewFileWithText.d.ts","sourceRoot":"","sources":["../../../../src/browser/mcp/tools/createNewFileWithText.ts"],"names":[],"mappings":"AAOA,OAAO,EAAE,kBAAkB,EAAa,qBAAqB,EAAE,iBAAiB,EAAE,MAAM,aAAa,CAAC;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"}
1
+ {"version":3,"file":"createNewFileWithText.d.ts","sourceRoot":"","sources":["../../../../src/browser/mcp/tools/createNewFileWithText.ts"],"names":[],"mappings":"AAOA,OAAO,EAAE,kBAAkB,EAAa,qBAAqB,EAAE,iBAAiB,EAAE,MAAM,aAAa,CAAC;AAUtG,qBACa,yBAA0B,YAAW,qBAAqB;IAErE,OAAO,CAAC,QAAQ,CAAC,gBAAgB,CAAoB;IAGrD,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAqB;IAGjD,OAAO,CAAC,YAAY,CAAmB;IAEvC,iBAAiB,CAAC,QAAQ,EAAE,kBAAkB,GAAG,IAAI;IAKrD,iBAAiB,IAAI,iBAAiB;YAgBxB,OAAO;CAyCtB"}