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

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
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 +0 -5
  6. package/lib/browser/ai-core.contribution.d.ts.map +1 -1
  7. package/lib/browser/ai-core.contribution.js +9 -71
  8. package/lib/browser/ai-core.contribution.js.map +1 -1
  9. package/lib/browser/chat/chat-agent.service.d.ts +3 -11
  10. package/lib/browser/chat/chat-agent.service.d.ts.map +1 -1
  11. package/lib/browser/chat/chat-agent.service.js +5 -43
  12. package/lib/browser/chat/chat-agent.service.js.map +1 -1
  13. package/lib/browser/chat/chat-manager.service.d.ts +0 -1
  14. package/lib/browser/chat/chat-manager.service.d.ts.map +1 -1
  15. package/lib/browser/chat/chat-manager.service.js +8 -6
  16. package/lib/browser/chat/chat-manager.service.js.map +1 -1
  17. package/lib/browser/chat/chat-model.d.ts +1 -4
  18. package/lib/browser/chat/chat-model.d.ts.map +1 -1
  19. package/lib/browser/chat/chat-model.js +2 -57
  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 +6 -13
  23. package/lib/browser/chat/chat-proxy.service.js.map +1 -1
  24. package/lib/browser/chat/chat.api.service.d.ts +2 -1
  25. package/lib/browser/chat/chat.api.service.d.ts.map +1 -1
  26. package/lib/browser/chat/chat.api.service.js +4 -0
  27. package/lib/browser/chat/chat.api.service.js.map +1 -1
  28. package/lib/browser/chat/chat.internal.service.d.ts +0 -2
  29. package/lib/browser/chat/chat.internal.service.d.ts.map +1 -1
  30. package/lib/browser/chat/chat.internal.service.js +0 -3
  31. package/lib/browser/chat/chat.internal.service.js.map +1 -1
  32. package/lib/browser/chat/chat.module.less +2 -1
  33. package/lib/browser/chat/chat.view.d.ts.map +1 -1
  34. package/lib/browser/chat/chat.view.js +29 -46
  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 +1 -29
  40. package/lib/browser/components/ChatInput.js.map +1 -1
  41. package/lib/browser/components/ChatReply.js +1 -6
  42. package/lib/browser/components/ChatReply.js.map +1 -1
  43. package/lib/browser/components/ChatThinking.d.ts +2 -0
  44. package/lib/browser/components/ChatThinking.d.ts.map +1 -1
  45. package/lib/browser/components/ChatThinking.js +10 -2
  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 +3 -2
  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 +1 -2
  53. package/lib/browser/components/components.module.less +0 -22
  54. package/lib/browser/context/llm-context.service.d.ts +5 -18
  55. package/lib/browser/context/llm-context.service.d.ts.map +1 -1
  56. package/lib/browser/context/llm-context.service.js +47 -81
  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 +1 -2
  64. package/lib/browser/contrib/intelligent-completions/index.d.ts.map +1 -1
  65. package/lib/browser/contrib/intelligent-completions/index.js +1 -4
  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 +5 -6
  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 +2 -4
  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 +11 -23
  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 +0 -4
  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 +11 -26
  83. package/lib/browser/mcp/base-apply.service.d.ts.map +1 -1
  84. package/lib/browser/mcp/base-apply.service.js +103 -255
  85. package/lib/browser/mcp/base-apply.service.js.map +1 -1
  86. package/lib/browser/mcp/mcp-server-proxy.service.d.ts +0 -6
  87. package/lib/browser/mcp/mcp-server-proxy.service.d.ts.map +1 -1
  88. package/lib/browser/mcp/mcp-server-proxy.service.js +1 -10
  89. package/lib/browser/mcp/mcp-server-proxy.service.js.map +1 -1
  90. package/lib/browser/mcp/mcp-server.feature.registry.d.ts +0 -8
  91. package/lib/browser/mcp/mcp-server.feature.registry.d.ts.map +1 -1
  92. package/lib/browser/mcp/mcp-server.feature.registry.js +3 -28
  93. package/lib/browser/mcp/mcp-server.feature.registry.js.map +1 -1
  94. package/lib/browser/mcp/tools/components/EditFile.d.ts.map +1 -1
  95. package/lib/browser/mcp/tools/components/EditFile.js +9 -15
  96. package/lib/browser/mcp/tools/components/EditFile.js.map +1 -1
  97. package/lib/browser/mcp/tools/components/SearchResult.d.ts +11 -0
  98. package/lib/browser/mcp/tools/components/SearchResult.d.ts.map +1 -0
  99. package/lib/browser/mcp/tools/components/{ExpandableFileList.js → SearchResult.js} +19 -29
  100. package/lib/browser/mcp/tools/components/SearchResult.js.map +1 -0
  101. package/lib/browser/mcp/tools/components/Terminal.d.ts.map +1 -1
  102. package/lib/browser/mcp/tools/components/Terminal.js +2 -10
  103. package/lib/browser/mcp/tools/components/Terminal.js.map +1 -1
  104. package/lib/browser/mcp/tools/components/index.module.less +0 -4
  105. package/lib/browser/mcp/tools/createNewFileWithText.d.ts +0 -1
  106. package/lib/browser/mcp/tools/createNewFileWithText.d.ts.map +1 -1
  107. package/lib/browser/mcp/tools/createNewFileWithText.js +11 -19
  108. package/lib/browser/mcp/tools/createNewFileWithText.js.map +1 -1
  109. package/lib/browser/mcp/tools/fileSearch.d.ts +0 -1
  110. package/lib/browser/mcp/tools/fileSearch.d.ts.map +1 -1
  111. package/lib/browser/mcp/tools/fileSearch.js +5 -14
  112. package/lib/browser/mcp/tools/fileSearch.js.map +1 -1
  113. package/lib/browser/mcp/tools/getDiagnosticsByPath.d.ts.map +1 -1
  114. package/lib/browser/mcp/tools/getDiagnosticsByPath.js +0 -1
  115. package/lib/browser/mcp/tools/getDiagnosticsByPath.js.map +1 -1
  116. package/lib/browser/mcp/tools/grepSearch.d.ts.map +1 -1
  117. package/lib/browser/mcp/tools/grepSearch.js +3 -6
  118. package/lib/browser/mcp/tools/grepSearch.js.map +1 -1
  119. package/lib/browser/mcp/tools/handlers/EditFile.js +1 -1
  120. package/lib/browser/mcp/tools/handlers/EditFile.js.map +1 -1
  121. package/lib/browser/mcp/tools/handlers/ListDir.d.ts +0 -1
  122. package/lib/browser/mcp/tools/handlers/ListDir.d.ts.map +1 -1
  123. package/lib/browser/mcp/tools/handlers/ListDir.js +0 -3
  124. package/lib/browser/mcp/tools/handlers/ListDir.js.map +1 -1
  125. package/lib/browser/mcp/tools/handlers/RunCommand.d.ts.map +1 -1
  126. package/lib/browser/mcp/tools/handlers/RunCommand.js +0 -2
  127. package/lib/browser/mcp/tools/handlers/RunCommand.js.map +1 -1
  128. package/lib/browser/mcp/tools/listDir.d.ts +0 -1
  129. package/lib/browser/mcp/tools/listDir.d.ts.map +1 -1
  130. package/lib/browser/mcp/tools/listDir.js +4 -35
  131. package/lib/browser/mcp/tools/listDir.js.map +1 -1
  132. package/lib/browser/mcp/tools/runTerminalCmd.d.ts.map +1 -1
  133. package/lib/browser/mcp/tools/runTerminalCmd.js +0 -1
  134. package/lib/browser/mcp/tools/runTerminalCmd.js.map +1 -1
  135. package/lib/browser/model/msg-history-manager.d.ts +2 -2
  136. package/lib/browser/model/msg-history-manager.d.ts.map +1 -1
  137. package/lib/browser/model/msg-history-manager.js +10 -4
  138. package/lib/browser/model/msg-history-manager.js.map +1 -1
  139. package/lib/browser/preferences/schema.d.ts.map +1 -1
  140. package/lib/browser/preferences/schema.js +2 -22
  141. package/lib/browser/preferences/schema.js.map +1 -1
  142. package/lib/browser/types.d.ts +0 -4
  143. package/lib/browser/types.d.ts.map +1 -1
  144. package/lib/browser/widget/inline-chat/inline-chat-controller.d.ts.map +1 -1
  145. package/lib/browser/widget/inline-chat/inline-chat-controller.js +1 -6
  146. package/lib/browser/widget/inline-chat/inline-chat-controller.js.map +1 -1
  147. package/lib/browser/widget/inline-diff/inline-diff-manager.d.ts.map +1 -1
  148. package/lib/browser/widget/inline-diff/inline-diff-manager.js +8 -68
  149. package/lib/browser/widget/inline-diff/inline-diff-manager.js.map +1 -1
  150. package/lib/browser/widget/inline-diff/inline-diff-previewer.d.ts +4 -10
  151. package/lib/browser/widget/inline-diff/inline-diff-previewer.d.ts.map +1 -1
  152. package/lib/browser/widget/inline-diff/inline-diff-previewer.js +3 -14
  153. package/lib/browser/widget/inline-diff/inline-diff-previewer.js.map +1 -1
  154. package/lib/browser/widget/inline-diff/inline-diff-widget.module.less +4 -25
  155. package/lib/browser/widget/inline-diff/inline-diff.controller.d.ts +3 -3
  156. package/lib/browser/widget/inline-diff/inline-diff.controller.d.ts.map +1 -1
  157. package/lib/browser/widget/inline-diff/inline-diff.controller.js +5 -10
  158. package/lib/browser/widget/inline-diff/inline-diff.controller.js.map +1 -1
  159. package/lib/browser/widget/inline-stream-diff/inline-stream-diff.handler.d.ts +17 -46
  160. package/lib/browser/widget/inline-stream-diff/inline-stream-diff.handler.d.ts.map +1 -1
  161. package/lib/browser/widget/inline-stream-diff/inline-stream-diff.handler.js +53 -110
  162. package/lib/browser/widget/inline-stream-diff/inline-stream-diff.handler.js.map +1 -1
  163. package/lib/browser/widget/inline-stream-diff/live-preview.decoration.d.ts +0 -4
  164. package/lib/browser/widget/inline-stream-diff/live-preview.decoration.d.ts.map +1 -1
  165. package/lib/browser/widget/inline-stream-diff/live-preview.decoration.js +1 -26
  166. package/lib/browser/widget/inline-stream-diff/live-preview.decoration.js.map +1 -1
  167. package/lib/common/index.d.ts +4 -13
  168. package/lib/common/index.d.ts.map +1 -1
  169. package/lib/common/index.js +1 -5
  170. package/lib/common/index.js.map +1 -1
  171. package/lib/common/llm-context.d.ts +9 -13
  172. package/lib/common/llm-context.d.ts.map +1 -1
  173. package/lib/common/llm-context.js.map +1 -1
  174. package/lib/common/mcp-server-manager.d.ts +1 -17
  175. package/lib/common/mcp-server-manager.d.ts.map +1 -1
  176. package/lib/common/mcp-server-manager.js.map +1 -1
  177. package/lib/common/prompts/context-prompt-provider.d.ts +3 -4
  178. package/lib/common/prompts/context-prompt-provider.d.ts.map +1 -1
  179. package/lib/common/prompts/context-prompt-provider.js +22 -33
  180. package/lib/common/prompts/context-prompt-provider.js.map +1 -1
  181. package/lib/common/tool-invocation-registry.d.ts +2 -2
  182. package/lib/common/tool-invocation-registry.d.ts.map +1 -1
  183. package/lib/common/tool-invocation-registry.js +1 -1
  184. package/lib/common/tool-invocation-registry.js.map +1 -1
  185. package/lib/common/types.d.ts +0 -8
  186. package/lib/common/types.d.ts.map +1 -1
  187. package/lib/common/utils.d.ts.map +1 -1
  188. package/lib/common/utils.js +1 -2
  189. package/lib/common/utils.js.map +1 -1
  190. package/lib/node/anthropic/anthropic-language-model.d.ts +1 -3
  191. package/lib/node/anthropic/anthropic-language-model.d.ts.map +1 -1
  192. package/lib/node/anthropic/anthropic-language-model.js +2 -6
  193. package/lib/node/anthropic/anthropic-language-model.js.map +1 -1
  194. package/lib/node/base-language-model.d.ts +3 -6
  195. package/lib/node/base-language-model.d.ts.map +1 -1
  196. package/lib/node/base-language-model.js +31 -14
  197. package/lib/node/base-language-model.js.map +1 -1
  198. package/lib/node/deepseek/deepseek-language-model.d.ts +1 -3
  199. package/lib/node/deepseek/deepseek-language-model.d.ts.map +1 -1
  200. package/lib/node/deepseek/deepseek-language-model.js +2 -6
  201. package/lib/node/deepseek/deepseek-language-model.js.map +1 -1
  202. package/lib/node/mcp/sumi-mcp-server.d.ts +3 -17
  203. package/lib/node/mcp/sumi-mcp-server.d.ts.map +1 -1
  204. package/lib/node/mcp/sumi-mcp-server.js +6 -59
  205. package/lib/node/mcp/sumi-mcp-server.js.map +1 -1
  206. package/lib/node/mcp-server-manager-impl.d.ts +3 -4
  207. package/lib/node/mcp-server-manager-impl.d.ts.map +1 -1
  208. package/lib/node/mcp-server-manager-impl.js +6 -26
  209. package/lib/node/mcp-server-manager-impl.js.map +1 -1
  210. package/lib/node/mcp-server.d.ts +16 -5
  211. package/lib/node/mcp-server.d.ts.map +1 -1
  212. package/lib/node/mcp-server.js +6 -12
  213. package/lib/node/mcp-server.js.map +1 -1
  214. package/lib/node/openai/openai-language-model.d.ts +2 -4
  215. package/lib/node/openai/openai-language-model.d.ts.map +1 -1
  216. package/lib/node/openai/openai-language-model.js +4 -6
  217. package/lib/node/openai/openai-language-model.js.map +1 -1
  218. package/package.json +26 -27
  219. package/src/browser/ai-core.contextkeys.ts +3 -3
  220. package/src/browser/ai-core.contribution.ts +12 -89
  221. package/src/browser/chat/chat-agent.service.ts +9 -53
  222. package/src/browser/chat/chat-manager.service.ts +8 -10
  223. package/src/browser/chat/chat-model.ts +5 -63
  224. package/src/browser/chat/chat-proxy.service.ts +8 -16
  225. package/src/browser/chat/chat.api.service.ts +5 -1
  226. package/src/browser/chat/chat.internal.service.ts +0 -4
  227. package/src/browser/chat/chat.module.less +2 -1
  228. package/src/browser/chat/chat.view.tsx +69 -63
  229. package/src/browser/components/ChatContext/index.tsx +2 -2
  230. package/src/browser/components/ChatInput.tsx +6 -81
  231. package/src/browser/components/ChatReply.tsx +6 -6
  232. package/src/browser/components/ChatThinking.tsx +9 -3
  233. package/src/browser/components/ChatToolRender.tsx +2 -1
  234. package/src/browser/components/WelcomeMsg.tsx +1 -1
  235. package/src/browser/components/chat-history.module.less +1 -2
  236. package/src/browser/components/components.module.less +0 -22
  237. package/src/browser/context/llm-context.service.ts +54 -100
  238. package/src/browser/contrib/inline-completions/inline-completions.controller.ts +1 -1
  239. package/src/browser/contrib/inline-completions/prompt/matcher.ts +2 -2
  240. package/src/browser/contrib/inline-completions/prompt/similarSnippets.ts +2 -2
  241. package/src/browser/contrib/intelligent-completions/index.ts +1 -5
  242. package/src/browser/contrib/intelligent-completions/intelligent-completions.contribution.ts +3 -3
  243. package/src/browser/contrib/intelligent-completions/intelligent-completions.controller.ts +6 -7
  244. package/src/browser/contrib/intelligent-completions/view/code-edits-previewer.ts +2 -4
  245. package/src/browser/contrib/intelligent-completions/view/default.ts +19 -34
  246. package/src/browser/index.ts +0 -4
  247. package/src/browser/layout/layout.module.less +4 -4
  248. package/src/browser/mcp/base-apply.service.ts +109 -306
  249. package/src/browser/mcp/mcp-server-proxy.service.ts +2 -14
  250. package/src/browser/mcp/mcp-server.feature.registry.ts +4 -35
  251. package/src/browser/mcp/tools/components/EditFile.tsx +9 -16
  252. package/src/browser/mcp/tools/components/SearchResult.tsx +92 -0
  253. package/src/browser/mcp/tools/components/Terminal.tsx +2 -13
  254. package/src/browser/mcp/tools/components/index.module.less +0 -4
  255. package/src/browser/mcp/tools/createNewFileWithText.ts +12 -21
  256. package/src/browser/mcp/tools/fileSearch.ts +4 -14
  257. package/src/browser/mcp/tools/getDiagnosticsByPath.ts +0 -1
  258. package/src/browser/mcp/tools/grepSearch.ts +3 -6
  259. package/src/browser/mcp/tools/handlers/EditFile.ts +1 -1
  260. package/src/browser/mcp/tools/handlers/ListDir.ts +0 -4
  261. package/src/browser/mcp/tools/handlers/RunCommand.ts +0 -2
  262. package/src/browser/mcp/tools/listDir.ts +5 -36
  263. package/src/browser/mcp/tools/runTerminalCmd.ts +0 -1
  264. package/src/browser/model/msg-history-manager.ts +11 -5
  265. package/src/browser/preferences/schema.ts +2 -22
  266. package/src/browser/types.ts +0 -1
  267. package/src/browser/widget/inline-chat/inline-chat-controller.ts +1 -5
  268. package/src/browser/widget/inline-diff/inline-diff-manager.tsx +21 -143
  269. package/src/browser/widget/inline-diff/inline-diff-previewer.ts +7 -25
  270. package/src/browser/widget/inline-diff/inline-diff-widget.module.less +4 -25
  271. package/src/browser/widget/inline-diff/inline-diff.controller.ts +8 -16
  272. package/src/browser/widget/inline-stream-diff/inline-stream-diff.handler.tsx +68 -139
  273. package/src/browser/widget/inline-stream-diff/live-preview.decoration.tsx +1 -30
  274. package/src/common/index.ts +4 -15
  275. package/src/common/llm-context.ts +4 -10
  276. package/src/common/mcp-server-manager.ts +1 -17
  277. package/src/common/prompts/context-prompt-provider.ts +29 -38
  278. package/src/common/tool-invocation-registry.ts +2 -2
  279. package/src/common/types.ts +0 -8
  280. package/src/common/utils.ts +1 -3
  281. package/src/node/anthropic/anthropic-language-model.ts +2 -7
  282. package/src/node/base-language-model.ts +38 -25
  283. package/src/node/deepseek/deepseek-language-model.ts +2 -7
  284. package/src/node/mcp/sumi-mcp-server.ts +9 -67
  285. package/src/node/mcp-server-manager-impl.ts +9 -30
  286. package/src/node/mcp-server.ts +14 -11
  287. package/src/node/openai/openai-language-model.ts +4 -8
  288. package/lib/browser/mcp/config/components/mcp-config.module.less +0 -178
  289. package/lib/browser/mcp/config/components/mcp-config.view.d.ts +0 -3
  290. package/lib/browser/mcp/config/components/mcp-config.view.d.ts.map +0 -1
  291. package/lib/browser/mcp/config/components/mcp-config.view.js +0 -150
  292. package/lib/browser/mcp/config/components/mcp-config.view.js.map +0 -1
  293. package/lib/browser/mcp/config/components/mcp-server-form.d.ts +0 -16
  294. package/lib/browser/mcp/config/components/mcp-server-form.d.ts.map +0 -1
  295. package/lib/browser/mcp/config/components/mcp-server-form.js +0 -84
  296. package/lib/browser/mcp/config/components/mcp-server-form.js.map +0 -1
  297. package/lib/browser/mcp/config/components/mcp-server-form.module.less +0 -78
  298. package/lib/browser/mcp/config/mcp-config.commands.d.ts +0 -10
  299. package/lib/browser/mcp/config/mcp-config.commands.d.ts.map +0 -1
  300. package/lib/browser/mcp/config/mcp-config.commands.js +0 -35
  301. package/lib/browser/mcp/config/mcp-config.commands.js.map +0 -1
  302. package/lib/browser/mcp/config/mcp-config.contribution.d.ts +0 -16
  303. package/lib/browser/mcp/config/mcp-config.contribution.d.ts.map +0 -1
  304. package/lib/browser/mcp/config/mcp-config.contribution.js +0 -62
  305. package/lib/browser/mcp/config/mcp-config.contribution.js.map +0 -1
  306. package/lib/browser/mcp/tools/components/ExpandableFileList.d.ts +0 -13
  307. package/lib/browser/mcp/tools/components/ExpandableFileList.d.ts.map +0 -1
  308. package/lib/browser/mcp/tools/components/ExpandableFileList.js.map +0 -1
  309. package/lib/common/model.d.ts +0 -12
  310. package/lib/common/model.d.ts.map +0 -1
  311. package/lib/common/model.js +0 -83
  312. package/lib/common/model.js.map +0 -1
  313. package/lib/node/openai-compatible/openai-compatible-language-model.d.ts +0 -10
  314. package/lib/node/openai-compatible/openai-compatible-language-model.d.ts.map +0 -1
  315. package/lib/node/openai-compatible/openai-compatible-language-model.js +0 -32
  316. package/lib/node/openai-compatible/openai-compatible-language-model.js.map +0 -1
  317. package/src/browser/mcp/config/components/mcp-config.module.less +0 -178
  318. package/src/browser/mcp/config/components/mcp-config.view.tsx +0 -215
  319. package/src/browser/mcp/config/components/mcp-server-form.module.less +0 -78
  320. package/src/browser/mcp/config/components/mcp-server-form.tsx +0 -144
  321. package/src/browser/mcp/config/mcp-config.commands.ts +0 -29
  322. package/src/browser/mcp/config/mcp-config.contribution.ts +0 -65
  323. package/src/browser/mcp/tools/components/ExpandableFileList.tsx +0 -133
  324. package/src/common/model.ts +0 -90
  325. package/src/node/openai-compatible/openai-compatible-language-model.ts +0 -30
@@ -1,144 +0,0 @@
1
- import React from 'react';
2
-
3
- import { Button } from '@opensumi/ide-components/lib/button';
4
- import { Modal } from '@opensumi/ide-components/lib/modal';
5
-
6
- import styles from './mcp-server-form.module.less';
7
-
8
- export interface MCPServerFormData {
9
- name: string;
10
- command: string;
11
- args: string[];
12
- env?: Record<string, string>;
13
- }
14
-
15
- interface Props {
16
- visible: boolean;
17
- initialData?: MCPServerFormData;
18
- onSave: (data: MCPServerFormData) => void;
19
- onCancel: () => void;
20
- }
21
-
22
- export const MCPServerForm: React.FC<Props> = ({ visible, initialData, onSave, onCancel }) => {
23
- const [formData, setFormData] = React.useState<MCPServerFormData>(() => ({
24
- name: '',
25
- command: '',
26
- args: [],
27
- env: {},
28
- type: 'stdio', // TODO: 支持 SSE
29
- ...initialData,
30
- }));
31
-
32
- const [argsText, setArgsText] = React.useState(() => initialData?.args?.join(' ') || '');
33
- const [envText, setEnvText] = React.useState(() => {
34
- if (!initialData?.env) {
35
- return '';
36
- }
37
- return Object.entries(initialData.env)
38
- .map(([key, value]) => `${key}=${value}`)
39
- .join('\n');
40
- });
41
-
42
- // Update form data when initialData changes
43
- React.useEffect(() => {
44
- setFormData({
45
- name: '',
46
- command: '',
47
- args: [],
48
- env: {},
49
- ...initialData,
50
- });
51
- setArgsText(initialData?.args?.join(' ') || '');
52
- setEnvText(
53
- initialData?.env
54
- ? Object.entries(initialData.env)
55
- .map(([key, value]) => `${key}=${value}`)
56
- .join('\n')
57
- : '',
58
- );
59
- }, [initialData]);
60
-
61
- const handleSubmit = (e: React.FormEvent) => {
62
- e.preventDefault();
63
- const args = argsText.split(' ').filter(Boolean);
64
- const env = envText
65
- .split('\n')
66
- .filter(Boolean)
67
- .reduce((acc, line) => {
68
- const [key, value] = line.split('=');
69
- if (key && value) {
70
- acc[key.trim()] = value.trim();
71
- }
72
- return acc;
73
- }, {} as Record<string, string>);
74
-
75
- onSave({
76
- ...formData,
77
- args,
78
- env,
79
- });
80
- };
81
-
82
- return (
83
- <Modal
84
- title={initialData ? 'Edit MCP Server' : 'Add New MCP Server'}
85
- visible={visible}
86
- onCancel={onCancel}
87
- centered
88
- width={600}
89
- footer={null}
90
- style={{
91
- background: 'var(--editor-background)',
92
- }}
93
- >
94
- <form className={styles.form} onSubmit={(e) => e.preventDefault()}>
95
- <div className={styles.formItem}>
96
- <label>Name:</label>
97
- <input
98
- type='text'
99
- value={formData.name}
100
- onChange={(e) => setFormData({ ...formData, name: e.target.value })}
101
- placeholder='Enter server name'
102
- required
103
- />
104
- </div>
105
- <div className={styles.formItem}>
106
- <label>Command:</label>
107
- <input
108
- type='text'
109
- value={formData.command}
110
- onChange={(e) => setFormData({ ...formData, command: e.target.value })}
111
- placeholder='Enter command (e.g., npx)'
112
- required
113
- />
114
- </div>
115
- <div className={styles.formItem}>
116
- <label>Arguments:</label>
117
- <textarea
118
- value={argsText}
119
- onChange={(e) => setArgsText(e.target.value)}
120
- placeholder='Enter arguments separated by space'
121
- rows={3}
122
- />
123
- </div>
124
- <div className={styles.formItem}>
125
- <label>Environment Variables:</label>
126
- <textarea
127
- value={envText}
128
- onChange={(e) => setEnvText(e.target.value)}
129
- placeholder='KEY=value (one per line)'
130
- rows={3}
131
- />
132
- </div>
133
- <div className={styles.formActions}>
134
- <Button onClick={onCancel} type='secondary'>
135
- Cancel
136
- </Button>
137
- <Button onClick={handleSubmit} type='primary'>
138
- Save
139
- </Button>
140
- </div>
141
- </form>
142
- </Modal>
143
- );
144
- };
@@ -1,29 +0,0 @@
1
- import { Autowired } from '@opensumi/di';
2
- import { CommandContribution, CommandRegistry, URI } from '@opensumi/ide-core-browser';
3
- import { Domain } from '@opensumi/ide-core-common';
4
- import { WorkbenchEditorService } from '@opensumi/ide-editor';
5
-
6
- import { MCP_CONFIG_COMPONENTS_SCHEME_ID } from './mcp-config.contribution';
7
-
8
- export const OPEN_MCP_CONFIG_COMMAND = {
9
- id: 'opensumi-mcp.openConfig',
10
- label: 'Open MCP Configuration',
11
- };
12
-
13
- @Domain(CommandContribution)
14
- export class MCPConfigCommandContribution implements CommandContribution {
15
- @Autowired(WorkbenchEditorService)
16
- private readonly editorService: WorkbenchEditorService;
17
-
18
- registerCommands(registry: CommandRegistry) {
19
- registry.registerCommand(OPEN_MCP_CONFIG_COMMAND, {
20
- execute: () => {
21
- const uri = new URI().withScheme(MCP_CONFIG_COMPONENTS_SCHEME_ID);
22
- this.editorService.open(uri, {
23
- preview: false,
24
- focus: true,
25
- });
26
- },
27
- });
28
- }
29
- }
@@ -1,65 +0,0 @@
1
- import { Autowired } from '@opensumi/di';
2
- import { LabelService } from '@opensumi/ide-core-browser/lib/services';
3
- import { Domain, Schemes, URI } from '@opensumi/ide-core-common';
4
- import {
5
- BrowserEditorContribution,
6
- EditorComponentRegistry,
7
- EditorComponentRenderMode,
8
- IResource,
9
- ResourceService,
10
- } from '@opensumi/ide-editor/lib/browser/types';
11
- import { IconService } from '@opensumi/ide-theme/lib/browser';
12
- import { IWorkspaceService } from '@opensumi/ide-workspace/lib/common';
13
-
14
- import { MCPConfigView } from './components/mcp-config.view';
15
-
16
- const COMPONENTS_ID = 'opensumi-mcp-config-viewer';
17
- export const MCP_CONFIG_COMPONENTS_SCHEME_ID = 'mcp-config';
18
-
19
- export type IMCPConfigResource = IResource<{ configType: string }>;
20
-
21
- @Domain(BrowserEditorContribution)
22
- export class MCPConfigContribution implements BrowserEditorContribution {
23
- @Autowired(IWorkspaceService)
24
- protected readonly workspaceService: IWorkspaceService;
25
-
26
- @Autowired(IconService)
27
- protected readonly iconService: IconService;
28
-
29
- @Autowired()
30
- labelService: LabelService;
31
-
32
- registerEditorComponent(registry: EditorComponentRegistry) {
33
- registry.registerEditorComponent({
34
- uid: COMPONENTS_ID,
35
- scheme: MCP_CONFIG_COMPONENTS_SCHEME_ID,
36
- component: MCPConfigView,
37
- renderMode: EditorComponentRenderMode.ONE_PER_WORKBENCH,
38
- });
39
-
40
- registry.registerEditorComponentResolver(MCP_CONFIG_COMPONENTS_SCHEME_ID, (resource, results) => {
41
- results.push({
42
- type: 'component',
43
- componentId: COMPONENTS_ID,
44
- });
45
- });
46
- }
47
-
48
- registerResource(service: ResourceService) {
49
- service.registerResourceProvider({
50
- scheme: MCP_CONFIG_COMPONENTS_SCHEME_ID,
51
- provideResource: async (uri: URI): Promise<IMCPConfigResource> => {
52
- const { configType } = uri.getParsedQuery();
53
-
54
- return {
55
- uri,
56
- name: 'MCP Configuration',
57
- icon: 'settings',
58
- metadata: {
59
- configType,
60
- },
61
- };
62
- },
63
- });
64
- }
65
- }
@@ -1,133 +0,0 @@
1
- import React, { useEffect, useMemo, useState } from 'react';
2
-
3
- import { CommandService, LabelService, URI, path, useInjectable } from '@opensumi/ide-core-browser';
4
- import { WorkbenchEditorService } from '@opensumi/ide-editor';
5
- import { IWorkspaceService } from '@opensumi/ide-workspace';
6
-
7
- import { IChatInternalService } from '../../../../common';
8
- import { ChatInternalService } from '../../../chat/chat.internal.service';
9
-
10
- import styles from './index.module.less';
11
-
12
- interface FileInfo {
13
- uri: string;
14
- isDirectory: boolean;
15
- }
16
-
17
- interface ExpandableFileListProps {
18
- args: any;
19
- toolCallId: string;
20
- messageId: string;
21
- toolName: string;
22
- headerText?: string;
23
- }
24
-
25
- export const FileSearchToolComponent: React.FC<ExpandableFileListProps> = ({ args, toolCallId, messageId }) => (
26
- <ExpandableFileList
27
- args={args}
28
- toolCallId={toolCallId}
29
- messageId={messageId}
30
- toolName='fileSearch'
31
- headerText={`Searched files "${args.query}"`}
32
- />
33
- );
34
-
35
- export const GrepSearchToolComponent: React.FC<ExpandableFileListProps> = ({ args, toolCallId, messageId }) => (
36
- <ExpandableFileList
37
- args={args}
38
- toolCallId={toolCallId}
39
- messageId={messageId}
40
- toolName='grepSearch'
41
- headerText={`Grepped codebase "${args.query}"`}
42
- />
43
- );
44
-
45
- export const ListDirToolComponent: React.FC<ExpandableFileListProps> = ({ args, toolCallId, messageId }) => (
46
- <ExpandableFileList
47
- args={args}
48
- toolCallId={toolCallId}
49
- messageId={messageId}
50
- toolName='listDir'
51
- headerText={`Listed directory "${args.relative_workspace_path}"`}
52
- />
53
- );
54
-
55
- const ExpandableFileList: React.FC<ExpandableFileListProps> = ({
56
- args,
57
- toolCallId,
58
- toolName,
59
- messageId,
60
- headerText,
61
- }) => {
62
- const [isExpanded, setIsExpanded] = useState(false);
63
- const labelService = useInjectable<LabelService>(LabelService);
64
- const editorService = useInjectable<WorkbenchEditorService>(WorkbenchEditorService);
65
- const workspaceService = useInjectable<IWorkspaceService>(IWorkspaceService);
66
- const commandService = useInjectable<CommandService>(CommandService);
67
- const workspaceRoot = useMemo(() => URI.parse(workspaceService.tryGetRoots()?.[0]?.uri), []);
68
-
69
- const chatService = useInjectable<ChatInternalService>(IChatInternalService);
70
- const [fileList, setFileList] = useState<FileInfo[]>([]);
71
-
72
- useEffect(() => {
73
- const toDispose = chatService.sessionModel.history.onMessageAdditionalChange((additional) => {
74
- setFileList(additional[toolCallId]?.files || []);
75
- });
76
- return () => {
77
- toDispose.dispose();
78
- };
79
- }, []);
80
-
81
- const handleFileClick = async (fileInfo: FileInfo) => {
82
- // 处理文件点击跳转
83
- if (!fileInfo.isDirectory) {
84
- editorService.open(URI.parse(fileInfo.uri));
85
- } else {
86
- // 如果是目录,聚焦到文件树并展开该目录
87
- const uri = URI.parse(fileInfo.uri);
88
- commandService.executeCommand('filetree.location', uri);
89
- }
90
- };
91
-
92
- const parsedFiles = useMemo(
93
- () =>
94
- fileList.map((file) => {
95
- const uri = URI.parse(file.uri);
96
- const iconClass = labelService.getIcon(uri, { isDirectory: file.isDirectory });
97
- return {
98
- iconClass,
99
- name: uri.path.base,
100
- path: path.relative(workspaceRoot.codeUri.fsPath, uri.path.dir.toString()),
101
- uri: file.uri,
102
- isDirectory: file.isDirectory,
103
- };
104
- }),
105
- [fileList],
106
- );
107
-
108
- return (
109
- <div className={styles.container}>
110
- <div className={styles.header} onClick={() => setIsExpanded(!isExpanded)}>
111
- <span style={{ transform: `rotate(${isExpanded ? '90deg' : '0deg'})` }}>▶</span>
112
- <span>
113
- {headerText} · {fileList.length} files
114
- </span>
115
- </div>
116
- {isExpanded && (
117
- <ul className={styles.fileList}>
118
- {parsedFiles.map((file, index) => (
119
- <li
120
- key={index}
121
- className={styles.fileItem}
122
- onClick={() => handleFileClick({ uri: file.uri, isDirectory: file.isDirectory })}
123
- >
124
- <span className={file.iconClass}></span>
125
- <span style={{ flex: 1 }}>{file.name}</span>
126
- <span className={styles.filePath}>{file.path}</span>
127
- </li>
128
- ))}
129
- </ul>
130
- )}
131
- </div>
132
- );
133
- };
@@ -1,90 +0,0 @@
1
- export interface ModelInfo {
2
- maxTokens?: number;
3
- contextWindow?: number;
4
- supportsImages?: boolean;
5
- temperature?: number;
6
- topP?: number;
7
- topK?: number;
8
- }
9
-
10
- export const deepSeekModels = {
11
- 'deepseek-chat': {
12
- maxTokens: 8_000,
13
- contextWindow: 64_000,
14
- supportsImages: false,
15
- },
16
- 'deepseek-reasoner': {
17
- maxTokens: 8_000,
18
- contextWindow: 64_000,
19
- supportsImages: false,
20
- temperature: 0.7,
21
- topP: 0.95,
22
- },
23
- } as Record<string, ModelInfo>;
24
-
25
- export const anthropicModels = {
26
- 'claude-3-7-sonnet-20250219': {
27
- maxTokens: 8192,
28
- contextWindow: 200_000,
29
- supportsImages: true,
30
- },
31
- 'claude-3-5-sonnet-20241022': {
32
- maxTokens: 8192,
33
- contextWindow: 200_000,
34
- supportsImages: true,
35
- },
36
- 'claude-3-5-haiku-20241022': {
37
- maxTokens: 8192,
38
- contextWindow: 200_000,
39
- supportsImages: false,
40
- },
41
- 'claude-3-opus-20240229': {
42
- maxTokens: 4096,
43
- contextWindow: 200_000,
44
- supportsImages: true,
45
- },
46
- 'claude-3-haiku-20240307': {
47
- maxTokens: 4096,
48
- contextWindow: 200_000,
49
- supportsImages: true,
50
- },
51
- } as Record<string, ModelInfo>; // as const assertion makes the object deeply readonly
52
-
53
- export const openAiNativeModels = {
54
- 'o3-mini': {
55
- maxTokens: 100_000,
56
- contextWindow: 200_000,
57
- supportsImages: false,
58
- },
59
- // don't support tool use yet
60
- o1: {
61
- maxTokens: 100_000,
62
- contextWindow: 200_000,
63
- supportsImages: true,
64
- },
65
- 'o1-preview': {
66
- maxTokens: 32_768,
67
- contextWindow: 128_000,
68
- supportsImages: true,
69
- },
70
- 'o1-mini': {
71
- maxTokens: 65_536,
72
- contextWindow: 128_000,
73
- supportsImages: true,
74
- },
75
- 'gpt-4o': {
76
- maxTokens: 4_096,
77
- contextWindow: 128_000,
78
- supportsImages: true,
79
- },
80
- 'gpt-4o-mini': {
81
- maxTokens: 16_384,
82
- contextWindow: 128_000,
83
- supportsImages: true,
84
- },
85
- 'gpt-4.5-preview': {
86
- maxTokens: 16_384,
87
- contextWindow: 128_000,
88
- supportsImages: true,
89
- },
90
- } as Record<string, ModelInfo>;
@@ -1,30 +0,0 @@
1
- import { OpenAICompatibleProvider, createOpenAICompatible } from '@ai-sdk/openai-compatible';
2
- import { LanguageModelV1 } from 'ai';
3
-
4
- import { Injectable } from '@opensumi/di';
5
- import { AINativeSettingSectionsId, IAIBackServiceOption } from '@opensumi/ide-core-common';
6
-
7
- import { BaseLanguageModel } from '../base-language-model';
8
-
9
- @Injectable()
10
- export class OpenAICompatibleModel extends BaseLanguageModel {
11
- protected initializeProvider(options: IAIBackServiceOption): OpenAICompatibleProvider {
12
- const apiKey = options.apiKey;
13
- if (!apiKey) {
14
- throw new Error(`Please provide OpenAI API Key in preferences (${AINativeSettingSectionsId.OpenaiApiKey})`);
15
- }
16
- return createOpenAICompatible({
17
- apiKey,
18
- baseURL: options.baseURL || 'https://dashscope.aliyuncs.com/compatible-mode/v1',
19
- name: 'openai',
20
- });
21
- }
22
-
23
- protected getModelIdentifier(provider: OpenAICompatibleProvider, modelId = 'qwen-max'): LanguageModelV1 {
24
- return provider(modelId);
25
- }
26
-
27
- protected getModelInfo() {
28
- return undefined;
29
- }
30
- }