@opensumi/ide-ai-native 3.7.2-next-1740448398.0 → 3.7.2-next-1741226843.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (448) hide show
  1. package/lib/browser/ai-core.contextkeys.d.ts +0 -1
  2. package/lib/browser/ai-core.contextkeys.d.ts.map +1 -1
  3. package/lib/browser/ai-core.contextkeys.js +0 -1
  4. package/lib/browser/ai-core.contextkeys.js.map +1 -1
  5. package/lib/browser/ai-core.contribution.d.ts +2 -8
  6. package/lib/browser/ai-core.contribution.d.ts.map +1 -1
  7. package/lib/browser/ai-core.contribution.js +20 -149
  8. package/lib/browser/ai-core.contribution.js.map +1 -1
  9. package/lib/browser/chat/chat-agent.service.d.ts.map +1 -1
  10. package/lib/browser/chat/chat-agent.service.js +0 -6
  11. package/lib/browser/chat/chat-agent.service.js.map +1 -1
  12. package/lib/browser/chat/chat-manager.service.d.ts +2 -30
  13. package/lib/browser/chat/chat-manager.service.d.ts.map +1 -1
  14. package/lib/browser/chat/chat-manager.service.js +1 -45
  15. package/lib/browser/chat/chat-manager.service.js.map +1 -1
  16. package/lib/browser/chat/chat-model.d.ts +7 -34
  17. package/lib/browser/chat/chat-model.d.ts.map +1 -1
  18. package/lib/browser/chat/chat-model.js +57 -71
  19. package/lib/browser/chat/chat-model.js.map +1 -1
  20. package/lib/browser/chat/chat-proxy.service.d.ts +1 -6
  21. package/lib/browser/chat/chat-proxy.service.d.ts.map +1 -1
  22. package/lib/browser/chat/chat-proxy.service.js +3 -54
  23. package/lib/browser/chat/chat-proxy.service.js.map +1 -1
  24. package/lib/browser/chat/chat.api.service.d.ts +1 -1
  25. package/lib/browser/chat/chat.api.service.d.ts.map +1 -1
  26. package/lib/browser/chat/chat.api.service.js +2 -2
  27. package/lib/browser/chat/chat.api.service.js.map +1 -1
  28. package/lib/browser/chat/chat.internal.service.d.ts +2 -8
  29. package/lib/browser/chat/chat.internal.service.d.ts.map +1 -1
  30. package/lib/browser/chat/chat.internal.service.js +13 -41
  31. package/lib/browser/chat/chat.internal.service.js.map +1 -1
  32. package/lib/browser/chat/chat.module.less +41 -17
  33. package/lib/browser/chat/chat.view.d.ts.map +1 -1
  34. package/lib/browser/chat/chat.view.js +14 -102
  35. package/lib/browser/chat/chat.view.js.map +1 -1
  36. package/lib/browser/components/ChatEditor.d.ts +0 -1
  37. package/lib/browser/components/ChatEditor.d.ts.map +1 -1
  38. package/lib/browser/components/ChatEditor.js +3 -3
  39. package/lib/browser/components/ChatEditor.js.map +1 -1
  40. package/lib/browser/components/ChatInput.d.ts.map +1 -1
  41. package/lib/browser/components/ChatInput.js.map +1 -1
  42. package/lib/browser/components/ChatMarkdown.d.ts +0 -1
  43. package/lib/browser/components/ChatMarkdown.d.ts.map +1 -1
  44. package/lib/browser/components/ChatMarkdown.js +2 -2
  45. package/lib/browser/components/ChatMarkdown.js.map +1 -1
  46. package/lib/browser/components/ChatReply.d.ts.map +1 -1
  47. package/lib/browser/components/ChatReply.js +4 -29
  48. package/lib/browser/components/ChatReply.js.map +1 -1
  49. package/lib/browser/components/ChatThinking.js +1 -1
  50. package/lib/browser/components/ChatThinking.js.map +1 -1
  51. package/lib/browser/components/WelcomeMsg.js.map +1 -1
  52. package/lib/browser/components/components.module.less +31 -33
  53. package/lib/browser/components/utils.d.ts +2 -2
  54. package/lib/browser/contrib/intelligent-completions/index.d.ts +9 -16
  55. package/lib/browser/contrib/intelligent-completions/index.d.ts.map +1 -1
  56. package/lib/browser/contrib/intelligent-completions/index.js +1 -6
  57. package/lib/browser/contrib/intelligent-completions/index.js.map +1 -1
  58. package/lib/browser/contrib/intelligent-completions/intelligent-completions.contribution.d.ts +0 -1
  59. package/lib/browser/contrib/intelligent-completions/intelligent-completions.contribution.d.ts.map +1 -1
  60. package/lib/browser/contrib/intelligent-completions/intelligent-completions.contribution.js +4 -26
  61. package/lib/browser/contrib/intelligent-completions/intelligent-completions.contribution.js.map +1 -1
  62. package/lib/browser/contrib/intelligent-completions/intelligent-completions.controller.d.ts +5 -5
  63. package/lib/browser/contrib/intelligent-completions/intelligent-completions.controller.d.ts.map +1 -1
  64. package/lib/browser/contrib/intelligent-completions/intelligent-completions.controller.js +48 -59
  65. package/lib/browser/contrib/intelligent-completions/intelligent-completions.controller.js.map +1 -1
  66. package/lib/browser/contrib/intelligent-completions/intelligent-completions.feature.registry.d.ts +0 -4
  67. package/lib/browser/contrib/intelligent-completions/intelligent-completions.feature.registry.d.ts.map +1 -1
  68. package/lib/browser/contrib/intelligent-completions/intelligent-completions.feature.registry.js +0 -7
  69. package/lib/browser/contrib/intelligent-completions/intelligent-completions.feature.registry.js.map +1 -1
  70. package/lib/browser/contrib/intelligent-completions/source/base.d.ts +5 -14
  71. package/lib/browser/contrib/intelligent-completions/source/base.d.ts.map +1 -1
  72. package/lib/browser/contrib/intelligent-completions/source/base.js +8 -29
  73. package/lib/browser/contrib/intelligent-completions/source/base.js.map +1 -1
  74. package/lib/browser/contrib/intelligent-completions/source/line-change.source.d.ts +3 -10
  75. package/lib/browser/contrib/intelligent-completions/source/line-change.source.d.ts.map +1 -1
  76. package/lib/browser/contrib/intelligent-completions/source/line-change.source.js +22 -95
  77. package/lib/browser/contrib/intelligent-completions/source/line-change.source.js.map +1 -1
  78. package/lib/browser/contrib/intelligent-completions/source/lint-error.source.d.ts +3 -1
  79. package/lib/browser/contrib/intelligent-completions/source/lint-error.source.d.ts.map +1 -1
  80. package/lib/browser/contrib/intelligent-completions/source/lint-error.source.js +20 -13
  81. package/lib/browser/contrib/intelligent-completions/source/lint-error.source.js.map +1 -1
  82. package/lib/browser/contrib/terminal/component/terminal-command-suggest-controller.js +2 -2
  83. package/lib/browser/contrib/terminal/component/terminal-command-suggest-controller.js.map +1 -1
  84. package/lib/browser/index.d.ts +3 -11
  85. package/lib/browser/index.d.ts.map +1 -1
  86. package/lib/browser/index.js +4 -56
  87. package/lib/browser/index.js.map +1 -1
  88. package/lib/browser/languages/tree-sitter/wasm-manager.d.ts.map +1 -1
  89. package/lib/browser/languages/tree-sitter/wasm-manager.js +2 -14
  90. package/lib/browser/languages/tree-sitter/wasm-manager.js.map +1 -1
  91. package/lib/browser/layout/ai-layout.d.ts.map +1 -1
  92. package/lib/browser/layout/ai-layout.js +2 -2
  93. package/lib/browser/layout/ai-layout.js.map +1 -1
  94. package/lib/browser/layout/layout.module.less +9 -9
  95. package/lib/browser/layout/tabbar.view.d.ts.map +1 -1
  96. package/lib/browser/layout/tabbar.view.js +6 -5
  97. package/lib/browser/layout/tabbar.view.js.map +1 -1
  98. package/lib/browser/model/enhanceDecorationsCollection.d.ts +10 -14
  99. package/lib/browser/model/enhanceDecorationsCollection.d.ts.map +1 -1
  100. package/lib/browser/model/enhanceDecorationsCollection.js +53 -42
  101. package/lib/browser/model/enhanceDecorationsCollection.js.map +1 -1
  102. package/lib/browser/model/msg-history-manager.d.ts +1 -20
  103. package/lib/browser/model/msg-history-manager.d.ts.map +1 -1
  104. package/lib/browser/model/msg-history-manager.js +10 -46
  105. package/lib/browser/model/msg-history-manager.js.map +1 -1
  106. package/lib/browser/model/styles.module.less +7 -0
  107. package/lib/browser/preferences/schema.d.ts.map +1 -1
  108. package/lib/browser/preferences/schema.js +0 -69
  109. package/lib/browser/preferences/schema.js.map +1 -1
  110. package/lib/browser/types.d.ts +4 -74
  111. package/lib/browser/types.d.ts.map +1 -1
  112. package/lib/browser/types.js +1 -4
  113. package/lib/browser/types.js.map +1 -1
  114. package/lib/browser/widget/inline-chat/inline-chat-editor.controller.d.ts +1 -2
  115. package/lib/browser/widget/inline-chat/inline-chat-editor.controller.d.ts.map +1 -1
  116. package/lib/browser/widget/inline-chat/inline-chat-editor.controller.js +49 -21
  117. package/lib/browser/widget/inline-chat/inline-chat-editor.controller.js.map +1 -1
  118. package/lib/browser/widget/inline-chat/inline-chat.feature.registry.d.ts +13 -3
  119. package/lib/browser/widget/inline-chat/inline-chat.feature.registry.d.ts.map +1 -1
  120. package/lib/browser/widget/inline-chat/inline-chat.feature.registry.js +72 -24
  121. package/lib/browser/widget/inline-chat/inline-chat.feature.registry.js.map +1 -1
  122. package/lib/browser/widget/inline-chat/inline-chat.service.d.ts +6 -1
  123. package/lib/browser/widget/inline-chat/inline-chat.service.d.ts.map +1 -1
  124. package/lib/browser/widget/inline-chat/inline-chat.service.js +17 -5
  125. package/lib/browser/widget/inline-chat/inline-chat.service.js.map +1 -1
  126. package/lib/browser/widget/inline-chat/inline-content-widget.d.ts +5 -2
  127. package/lib/browser/widget/inline-chat/inline-content-widget.d.ts.map +1 -1
  128. package/lib/browser/widget/inline-chat/inline-content-widget.js +42 -17
  129. package/lib/browser/widget/inline-chat/inline-content-widget.js.map +1 -1
  130. package/lib/browser/widget/inline-diff/inline-diff-previewer.d.ts +5 -22
  131. package/lib/browser/widget/inline-diff/inline-diff-previewer.d.ts.map +1 -1
  132. package/lib/browser/widget/inline-diff/inline-diff-previewer.js +30 -61
  133. package/lib/browser/widget/inline-diff/inline-diff-previewer.js.map +1 -1
  134. package/lib/browser/widget/inline-diff/inline-diff.controller.d.ts +12 -8
  135. package/lib/browser/widget/inline-diff/inline-diff.controller.d.ts.map +1 -1
  136. package/lib/browser/widget/inline-diff/inline-diff.controller.js +96 -68
  137. package/lib/browser/widget/inline-diff/inline-diff.controller.js.map +1 -1
  138. package/lib/browser/widget/inline-hint/inline-hint.controller.d.ts +1 -0
  139. package/lib/browser/widget/inline-hint/inline-hint.controller.d.ts.map +1 -1
  140. package/lib/browser/widget/inline-hint/inline-hint.controller.js +5 -0
  141. package/lib/browser/widget/inline-hint/inline-hint.controller.js.map +1 -1
  142. package/lib/browser/widget/inline-input/inline-input-widget.d.ts +2 -12
  143. package/lib/browser/widget/inline-input/inline-input-widget.d.ts.map +1 -1
  144. package/lib/browser/widget/inline-input/inline-input-widget.js +18 -26
  145. package/lib/browser/widget/inline-input/inline-input-widget.js.map +1 -1
  146. package/lib/browser/widget/inline-input/inline-input.controller.d.ts +5 -14
  147. package/lib/browser/widget/inline-input/inline-input.controller.d.ts.map +1 -1
  148. package/lib/browser/widget/inline-input/inline-input.controller.js +165 -321
  149. package/lib/browser/widget/inline-input/inline-input.controller.js.map +1 -1
  150. package/lib/browser/widget/inline-input/inline-input.module.less +0 -4
  151. package/lib/browser/widget/inline-input/inline-input.service.d.ts +7 -19
  152. package/lib/browser/widget/inline-input/inline-input.service.d.ts.map +1 -1
  153. package/lib/browser/widget/inline-input/inline-input.service.js +12 -72
  154. package/lib/browser/widget/inline-input/inline-input.service.js.map +1 -1
  155. package/lib/browser/widget/inline-stream-diff/inline-stream-diff.handler.d.ts +19 -9
  156. package/lib/browser/widget/inline-stream-diff/inline-stream-diff.handler.d.ts.map +1 -1
  157. package/lib/browser/widget/inline-stream-diff/inline-stream-diff.handler.js +39 -47
  158. package/lib/browser/widget/inline-stream-diff/inline-stream-diff.handler.js.map +1 -1
  159. package/lib/browser/widget/inline-stream-diff/live-preview.component.d.ts +4 -21
  160. package/lib/browser/widget/inline-stream-diff/live-preview.component.d.ts.map +1 -1
  161. package/lib/browser/widget/inline-stream-diff/live-preview.component.js +5 -37
  162. package/lib/browser/widget/inline-stream-diff/live-preview.component.js.map +1 -1
  163. package/lib/browser/widget/inline-stream-diff/live-preview.decoration.d.ts +11 -7
  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 +77 -34
  166. package/lib/browser/widget/inline-stream-diff/live-preview.decoration.js.map +1 -1
  167. package/lib/common/index.d.ts +0 -10
  168. package/lib/common/index.d.ts.map +1 -1
  169. package/lib/common/index.js +1 -4
  170. package/lib/common/index.js.map +1 -1
  171. package/lib/common/types.d.ts +0 -17
  172. package/lib/common/types.d.ts.map +1 -1
  173. package/lib/common/utils.d.ts +0 -1
  174. package/lib/common/utils.d.ts.map +1 -1
  175. package/lib/common/utils.js +3 -5
  176. package/lib/common/utils.js.map +1 -1
  177. package/lib/node/index.d.ts.map +1 -1
  178. package/lib/node/index.js +0 -19
  179. package/lib/node/index.js.map +1 -1
  180. package/package.json +22 -33
  181. package/src/browser/ai-core.contextkeys.ts +0 -3
  182. package/src/browser/ai-core.contribution.ts +21 -167
  183. package/src/browser/chat/chat-agent.service.ts +0 -7
  184. package/src/browser/chat/chat-manager.service.ts +7 -83
  185. package/src/browser/chat/chat-model.ts +20 -86
  186. package/src/browser/chat/chat-proxy.service.ts +3 -55
  187. package/src/browser/chat/chat.api.service.ts +2 -2
  188. package/src/browser/chat/chat.internal.service.ts +6 -35
  189. package/src/browser/chat/chat.module.less +41 -17
  190. package/src/browser/chat/chat.view.tsx +45 -191
  191. package/src/browser/components/ChatEditor.tsx +10 -13
  192. package/src/browser/components/ChatInput.tsx +0 -1
  193. package/src/browser/components/ChatMarkdown.tsx +2 -4
  194. package/src/browser/components/ChatReply.tsx +9 -38
  195. package/src/browser/components/ChatThinking.tsx +1 -1
  196. package/src/browser/components/WelcomeMsg.tsx +1 -1
  197. package/src/browser/components/components.module.less +31 -33
  198. package/src/browser/contrib/intelligent-completions/index.ts +4 -19
  199. package/src/browser/contrib/intelligent-completions/intelligent-completions.contribution.ts +8 -32
  200. package/src/browser/contrib/intelligent-completions/intelligent-completions.controller.ts +67 -102
  201. package/src/browser/contrib/intelligent-completions/intelligent-completions.feature.registry.ts +0 -11
  202. package/src/browser/contrib/intelligent-completions/source/base.ts +14 -39
  203. package/src/browser/contrib/intelligent-completions/source/line-change.source.ts +22 -129
  204. package/src/browser/contrib/intelligent-completions/source/lint-error.source.ts +31 -19
  205. package/src/browser/contrib/terminal/component/terminal-command-suggest-controller.tsx +1 -1
  206. package/src/browser/index.ts +6 -69
  207. package/src/browser/languages/tree-sitter/wasm-manager.ts +2 -12
  208. package/src/browser/layout/ai-layout.tsx +2 -5
  209. package/src/browser/layout/layout.module.less +9 -9
  210. package/src/browser/layout/tabbar.view.tsx +8 -10
  211. package/src/browser/model/enhanceDecorationsCollection.ts +77 -62
  212. package/src/browser/model/msg-history-manager.ts +2 -56
  213. package/src/browser/model/styles.module.less +7 -0
  214. package/src/browser/preferences/schema.ts +0 -69
  215. package/src/browser/types.ts +5 -100
  216. package/src/browser/widget/inline-chat/inline-chat-editor.controller.ts +65 -30
  217. package/src/browser/widget/inline-chat/inline-chat.feature.registry.ts +90 -23
  218. package/src/browser/widget/inline-chat/inline-chat.service.ts +17 -2
  219. package/src/browser/widget/inline-chat/inline-content-widget.tsx +69 -14
  220. package/src/browser/widget/inline-diff/inline-diff-previewer.ts +32 -87
  221. package/src/browser/widget/inline-diff/inline-diff.controller.ts +114 -90
  222. package/src/browser/widget/inline-hint/inline-hint.controller.ts +7 -1
  223. package/src/browser/widget/inline-input/inline-input-widget.tsx +12 -34
  224. package/src/browser/widget/inline-input/inline-input.controller.ts +242 -454
  225. package/src/browser/widget/inline-input/inline-input.module.less +0 -4
  226. package/src/browser/widget/inline-input/inline-input.service.ts +13 -92
  227. package/src/browser/widget/inline-stream-diff/inline-stream-diff.handler.tsx +67 -58
  228. package/src/browser/widget/inline-stream-diff/live-preview.component.tsx +6 -49
  229. package/src/browser/widget/inline-stream-diff/live-preview.decoration.tsx +112 -41
  230. package/src/common/index.ts +0 -15
  231. package/src/common/types.ts +0 -22
  232. package/src/common/utils.ts +2 -4
  233. package/src/node/index.ts +0 -21
  234. package/lib/browser/components/ChatContext/ContextSelector.d.ts +0 -12
  235. package/lib/browser/components/ChatContext/ContextSelector.d.ts.map +0 -1
  236. package/lib/browser/components/ChatContext/ContextSelector.js +0 -113
  237. package/lib/browser/components/ChatContext/ContextSelector.js.map +0 -1
  238. package/lib/browser/components/ChatContext/index.d.ts +0 -4
  239. package/lib/browser/components/ChatContext/index.d.ts.map +0 -1
  240. package/lib/browser/components/ChatContext/index.js +0 -100
  241. package/lib/browser/components/ChatContext/index.js.map +0 -1
  242. package/lib/browser/components/ChatContext/style.module.less +0 -201
  243. package/lib/browser/components/ChatHistory.d.ts +0 -21
  244. package/lib/browser/components/ChatHistory.d.ts.map +0 -1
  245. package/lib/browser/components/ChatHistory.js +0 -148
  246. package/lib/browser/components/ChatHistory.js.map +0 -1
  247. package/lib/browser/components/ChatToolRender.d.ts +0 -7
  248. package/lib/browser/components/ChatToolRender.d.ts.map +0 -1
  249. package/lib/browser/components/ChatToolRender.js +0 -71
  250. package/lib/browser/components/ChatToolRender.js.map +0 -1
  251. package/lib/browser/components/ChatToolRender.module.less +0 -86
  252. package/lib/browser/components/chat-history.css +0 -139
  253. package/lib/browser/context/llm-context.contribution.d.ts +0 -7
  254. package/lib/browser/context/llm-context.contribution.d.ts.map +0 -1
  255. package/lib/browser/context/llm-context.contribution.js +0 -21
  256. package/lib/browser/context/llm-context.contribution.js.map +0 -1
  257. package/lib/browser/context/llm-context.service.d.ts +0 -36
  258. package/lib/browser/context/llm-context.service.d.ts.map +0 -1
  259. package/lib/browser/context/llm-context.service.js +0 -170
  260. package/lib/browser/context/llm-context.service.js.map +0 -1
  261. package/lib/browser/contrib/intelligent-completions/source/trigger.source.d.ts +0 -13
  262. package/lib/browser/contrib/intelligent-completions/source/trigger.source.d.ts.map +0 -1
  263. package/lib/browser/contrib/intelligent-completions/source/trigger.source.js +0 -36
  264. package/lib/browser/contrib/intelligent-completions/source/trigger.source.js.map +0 -1
  265. package/lib/browser/contrib/intelligent-completions/source/typing.source.d.ts +0 -9
  266. package/lib/browser/contrib/intelligent-completions/source/typing.source.d.ts.map +0 -1
  267. package/lib/browser/contrib/intelligent-completions/source/typing.source.js +0 -36
  268. package/lib/browser/contrib/intelligent-completions/source/typing.source.js.map +0 -1
  269. package/lib/browser/mcp/base-apply.service.d.ts +0 -67
  270. package/lib/browser/mcp/base-apply.service.d.ts.map +0 -1
  271. package/lib/browser/mcp/base-apply.service.js +0 -290
  272. package/lib/browser/mcp/base-apply.service.js.map +0 -1
  273. package/lib/browser/mcp/mcp-server-proxy.service.d.ts +0 -30
  274. package/lib/browser/mcp/mcp-server-proxy.service.d.ts.map +0 -1
  275. package/lib/browser/mcp/mcp-server-proxy.service.js +0 -57
  276. package/lib/browser/mcp/mcp-server-proxy.service.js.map +0 -1
  277. package/lib/browser/mcp/mcp-server.feature.registry.d.ts +0 -20
  278. package/lib/browser/mcp/mcp-server.feature.registry.d.ts.map +0 -1
  279. package/lib/browser/mcp/mcp-server.feature.registry.js +0 -69
  280. package/lib/browser/mcp/mcp-server.feature.registry.js.map +0 -1
  281. package/lib/browser/mcp/mcp-tools-dialog.module.less +0 -44
  282. package/lib/browser/mcp/mcp-tools-dialog.view.d.ts +0 -8
  283. package/lib/browser/mcp/mcp-tools-dialog.view.d.ts.map +0 -1
  284. package/lib/browser/mcp/mcp-tools-dialog.view.js +0 -16
  285. package/lib/browser/mcp/mcp-tools-dialog.view.js.map +0 -1
  286. package/lib/browser/mcp/tools/components/EditFile.d.ts +0 -3
  287. package/lib/browser/mcp/tools/components/EditFile.d.ts.map +0 -1
  288. package/lib/browser/mcp/tools/components/EditFile.js +0 -101
  289. package/lib/browser/mcp/tools/components/EditFile.js.map +0 -1
  290. package/lib/browser/mcp/tools/components/SearchResult.d.ts +0 -11
  291. package/lib/browser/mcp/tools/components/SearchResult.d.ts.map +0 -1
  292. package/lib/browser/mcp/tools/components/SearchResult.js +0 -60
  293. package/lib/browser/mcp/tools/components/SearchResult.js.map +0 -1
  294. package/lib/browser/mcp/tools/components/Terminal.d.ts +0 -4
  295. package/lib/browser/mcp/tools/components/Terminal.d.ts.map +0 -1
  296. package/lib/browser/mcp/tools/components/Terminal.js +0 -64
  297. package/lib/browser/mcp/tools/components/Terminal.js.map +0 -1
  298. package/lib/browser/mcp/tools/components/index.module.less +0 -168
  299. package/lib/browser/mcp/tools/createNewFileWithText.d.ts +0 -9
  300. package/lib/browser/mcp/tools/createNewFileWithText.d.ts.map +0 -1
  301. package/lib/browser/mcp/tools/createNewFileWithText.js +0 -82
  302. package/lib/browser/mcp/tools/createNewFileWithText.js.map +0 -1
  303. package/lib/browser/mcp/tools/editFile.d.ts +0 -8
  304. package/lib/browser/mcp/tools/editFile.d.ts.map +0 -1
  305. package/lib/browser/mcp/tools/editFile.js +0 -95
  306. package/lib/browser/mcp/tools/editFile.js.map +0 -1
  307. package/lib/browser/mcp/tools/fileSearch.d.ts +0 -10
  308. package/lib/browser/mcp/tools/fileSearch.d.ts.map +0 -1
  309. package/lib/browser/mcp/tools/fileSearch.js +0 -94
  310. package/lib/browser/mcp/tools/fileSearch.js.map +0 -1
  311. package/lib/browser/mcp/tools/getDiagnosticsByPath.d.ts +0 -10
  312. package/lib/browser/mcp/tools/getDiagnosticsByPath.d.ts.map +0 -1
  313. package/lib/browser/mcp/tools/getDiagnosticsByPath.js +0 -118
  314. package/lib/browser/mcp/tools/getDiagnosticsByPath.js.map +0 -1
  315. package/lib/browser/mcp/tools/getOpenEditorFileDiagnostics.d.ts +0 -11
  316. package/lib/browser/mcp/tools/getOpenEditorFileDiagnostics.d.ts.map +0 -1
  317. package/lib/browser/mcp/tools/getOpenEditorFileDiagnostics.js +0 -118
  318. package/lib/browser/mcp/tools/getOpenEditorFileDiagnostics.js.map +0 -1
  319. package/lib/browser/mcp/tools/grepSearch.d.ts +0 -10
  320. package/lib/browser/mcp/tools/grepSearch.d.ts.map +0 -1
  321. package/lib/browser/mcp/tools/grepSearch.js +0 -118
  322. package/lib/browser/mcp/tools/grepSearch.js.map +0 -1
  323. package/lib/browser/mcp/tools/handlers/EditFile.d.ts +0 -10
  324. package/lib/browser/mcp/tools/handlers/EditFile.d.ts.map +0 -1
  325. package/lib/browser/mcp/tools/handlers/EditFile.js +0 -28
  326. package/lib/browser/mcp/tools/handlers/EditFile.js.map +0 -1
  327. package/lib/browser/mcp/tools/handlers/ListDir.d.ts +0 -21
  328. package/lib/browser/mcp/tools/handlers/ListDir.d.ts.map +0 -1
  329. package/lib/browser/mcp/tools/handlers/ListDir.js +0 -112
  330. package/lib/browser/mcp/tools/handlers/ListDir.js.map +0 -1
  331. package/lib/browser/mcp/tools/handlers/ReadFile.d.ts +0 -53
  332. package/lib/browser/mcp/tools/handlers/ReadFile.d.ts.map +0 -1
  333. package/lib/browser/mcp/tools/handlers/ReadFile.js +0 -161
  334. package/lib/browser/mcp/tools/handlers/ReadFile.js.map +0 -1
  335. package/lib/browser/mcp/tools/handlers/RunCommand.d.ts +0 -43
  336. package/lib/browser/mcp/tools/handlers/RunCommand.d.ts.map +0 -1
  337. package/lib/browser/mcp/tools/handlers/RunCommand.js +0 -104
  338. package/lib/browser/mcp/tools/handlers/RunCommand.js.map +0 -1
  339. package/lib/browser/mcp/tools/handlers/utils.d.ts +0 -2
  340. package/lib/browser/mcp/tools/handlers/utils.d.ts.map +0 -1
  341. package/lib/browser/mcp/tools/handlers/utils.js +0 -7
  342. package/lib/browser/mcp/tools/handlers/utils.js.map +0 -1
  343. package/lib/browser/mcp/tools/listDir.d.ts +0 -8
  344. package/lib/browser/mcp/tools/listDir.d.ts.map +0 -1
  345. package/lib/browser/mcp/tools/listDir.js +0 -64
  346. package/lib/browser/mcp/tools/listDir.js.map +0 -1
  347. package/lib/browser/mcp/tools/readFile.d.ts +0 -8
  348. package/lib/browser/mcp/tools/readFile.d.ts.map +0 -1
  349. package/lib/browser/mcp/tools/readFile.js +0 -81
  350. package/lib/browser/mcp/tools/readFile.js.map +0 -1
  351. package/lib/browser/mcp/tools/runTerminalCmd.d.ts +0 -13
  352. package/lib/browser/mcp/tools/runTerminalCmd.d.ts.map +0 -1
  353. package/lib/browser/mcp/tools/runTerminalCmd.js +0 -49
  354. package/lib/browser/mcp/tools/runTerminalCmd.js.map +0 -1
  355. package/lib/browser/widget/inline-input/model.d.ts +0 -34
  356. package/lib/browser/widget/inline-input/model.d.ts.map +0 -1
  357. package/lib/browser/widget/inline-input/model.js +0 -63
  358. package/lib/browser/widget/inline-input/model.js.map +0 -1
  359. package/lib/common/llm-context.d.ts +0 -40
  360. package/lib/common/llm-context.d.ts.map +0 -1
  361. package/lib/common/llm-context.js +0 -5
  362. package/lib/common/llm-context.js.map +0 -1
  363. package/lib/common/mcp-server-manager.d.ts +0 -40
  364. package/lib/common/mcp-server-manager.d.ts.map +0 -1
  365. package/lib/common/mcp-server-manager.js +0 -6
  366. package/lib/common/mcp-server-manager.js.map +0 -1
  367. package/lib/common/prompts/context-prompt-provider.d.ts +0 -14
  368. package/lib/common/prompts/context-prompt-provider.d.ts.map +0 -1
  369. package/lib/common/prompts/context-prompt-provider.js +0 -38
  370. package/lib/common/prompts/context-prompt-provider.js.map +0 -1
  371. package/lib/common/tool-invocation-registry.d.ts +0 -92
  372. package/lib/common/tool-invocation-registry.d.ts.map +0 -1
  373. package/lib/common/tool-invocation-registry.js +0 -90
  374. package/lib/common/tool-invocation-registry.js.map +0 -1
  375. package/lib/node/anthropic/anthropic-language-model.d.ts +0 -9
  376. package/lib/node/anthropic/anthropic-language-model.d.ts.map +0 -1
  377. package/lib/node/anthropic/anthropic-language-model.js +0 -26
  378. package/lib/node/anthropic/anthropic-language-model.js.map +0 -1
  379. package/lib/node/base-language-model.d.ts +0 -14
  380. package/lib/node/base-language-model.d.ts.map +0 -1
  381. package/lib/node/base-language-model.js +0 -140
  382. package/lib/node/base-language-model.js.map +0 -1
  383. package/lib/node/deepseek/deepseek-language-model.d.ts +0 -9
  384. package/lib/node/deepseek/deepseek-language-model.d.ts.map +0 -1
  385. package/lib/node/deepseek/deepseek-language-model.js +0 -26
  386. package/lib/node/deepseek/deepseek-language-model.js.map +0 -1
  387. package/lib/node/mcp/sumi-mcp-server.d.ts +0 -91
  388. package/lib/node/mcp/sumi-mcp-server.d.ts.map +0 -1
  389. package/lib/node/mcp/sumi-mcp-server.js +0 -175
  390. package/lib/node/mcp/sumi-mcp-server.js.map +0 -1
  391. package/lib/node/mcp-server-manager-impl.d.ts +0 -27
  392. package/lib/node/mcp-server-manager-impl.d.ts.map +0 -1
  393. package/lib/node/mcp-server-manager-impl.js +0 -128
  394. package/lib/node/mcp-server-manager-impl.js.map +0 -1
  395. package/lib/node/mcp-server.d.ts +0 -207
  396. package/lib/node/mcp-server.d.ts.map +0 -1
  397. package/lib/node/mcp-server.js +0 -92
  398. package/lib/node/mcp-server.js.map +0 -1
  399. package/lib/node/openai/openai-language-model.d.ts +0 -9
  400. package/lib/node/openai/openai-language-model.d.ts.map +0 -1
  401. package/lib/node/openai/openai-language-model.js +0 -29
  402. package/lib/node/openai/openai-language-model.js.map +0 -1
  403. package/src/browser/components/ChatContext/ContextSelector.tsx +0 -177
  404. package/src/browser/components/ChatContext/index.tsx +0 -151
  405. package/src/browser/components/ChatContext/style.module.less +0 -201
  406. package/src/browser/components/ChatHistory.tsx +0 -292
  407. package/src/browser/components/ChatToolRender.module.less +0 -86
  408. package/src/browser/components/ChatToolRender.tsx +0 -96
  409. package/src/browser/components/chat-history.css +0 -139
  410. package/src/browser/context/llm-context.contribution.ts +0 -14
  411. package/src/browser/context/llm-context.service.ts +0 -200
  412. package/src/browser/contrib/intelligent-completions/source/trigger.source.ts +0 -44
  413. package/src/browser/contrib/intelligent-completions/source/typing.source.ts +0 -34
  414. package/src/browser/mcp/base-apply.service.ts +0 -349
  415. package/src/browser/mcp/mcp-server-proxy.service.ts +0 -55
  416. package/src/browser/mcp/mcp-server.feature.registry.ts +0 -77
  417. package/src/browser/mcp/mcp-tools-dialog.module.less +0 -44
  418. package/src/browser/mcp/mcp-tools-dialog.view.tsx +0 -24
  419. package/src/browser/mcp/tools/components/EditFile.tsx +0 -144
  420. package/src/browser/mcp/tools/components/SearchResult.tsx +0 -92
  421. package/src/browser/mcp/tools/components/Terminal.tsx +0 -97
  422. package/src/browser/mcp/tools/components/index.module.less +0 -168
  423. package/src/browser/mcp/tools/createNewFileWithText.ts +0 -82
  424. package/src/browser/mcp/tools/editFile.ts +0 -100
  425. package/src/browser/mcp/tools/fileSearch.ts +0 -99
  426. package/src/browser/mcp/tools/getDiagnosticsByPath.ts +0 -122
  427. package/src/browser/mcp/tools/getOpenEditorFileDiagnostics.ts +0 -120
  428. package/src/browser/mcp/tools/grepSearch.ts +0 -121
  429. package/src/browser/mcp/tools/handlers/EditFile.ts +0 -21
  430. package/src/browser/mcp/tools/handlers/ListDir.ts +0 -117
  431. package/src/browser/mcp/tools/handlers/ReadFile.ts +0 -192
  432. package/src/browser/mcp/tools/handlers/RunCommand.ts +0 -115
  433. package/src/browser/mcp/tools/handlers/utils.ts +0 -3
  434. package/src/browser/mcp/tools/listDir.ts +0 -65
  435. package/src/browser/mcp/tools/readFile.ts +0 -81
  436. package/src/browser/mcp/tools/runTerminalCmd.ts +0 -45
  437. package/src/browser/widget/inline-input/model.ts +0 -74
  438. package/src/common/llm-context.ts +0 -47
  439. package/src/common/mcp-server-manager.ts +0 -51
  440. package/src/common/prompts/context-prompt-provider.ts +0 -46
  441. package/src/common/tool-invocation-registry.ts +0 -168
  442. package/src/node/anthropic/anthropic-language-model.ts +0 -25
  443. package/src/node/base-language-model.ts +0 -177
  444. package/src/node/deepseek/deepseek-language-model.ts +0 -25
  445. package/src/node/mcp/sumi-mcp-server.ts +0 -200
  446. package/src/node/mcp-server-manager-impl.ts +0 -156
  447. package/src/node/mcp-server.ts +0 -127
  448. package/src/node/openai/openai-language-model.ts +0 -25
@@ -1,77 +0,0 @@
1
- // OpenSumi as MCP Server 前端的代理服务
2
- import { Autowired, Injectable } from '@opensumi/di';
3
- import { ILogger } from '@opensumi/ide-core-common';
4
-
5
- import { getToolName } from '../../common/utils';
6
- import { IMCPServerRegistry, IMCPServerToolComponentProps, MCPLogger, MCPToolDefinition } from '../types';
7
-
8
- class LoggerAdapter implements MCPLogger {
9
- constructor(private readonly logger: ILogger) {}
10
-
11
- appendLine(message: string): void {
12
- this.logger.log(message);
13
- }
14
- }
15
-
16
- @Injectable()
17
- export class MCPServerRegistry implements IMCPServerRegistry {
18
- private tools: MCPToolDefinition[] = [];
19
- private toolComponents: Record<string, React.FC<IMCPServerToolComponentProps>> = {};
20
-
21
- @Autowired(ILogger)
22
- private readonly baseLogger: ILogger;
23
-
24
- private get logger(): MCPLogger {
25
- return new LoggerAdapter(this.baseLogger);
26
- }
27
-
28
- getMCPTool(name: string, serverName = 'sumi-builtin'): MCPToolDefinition | undefined {
29
- return this.tools.find((tool) => getToolName(tool.name, serverName) === name);
30
- }
31
-
32
- registerMCPTool(tool: MCPToolDefinition): void {
33
- this.tools.push(tool);
34
- }
35
-
36
- registerToolComponent(
37
- name: string,
38
- component: React.FC<IMCPServerToolComponentProps>,
39
- serverName = 'sumi-builtin',
40
- ): void {
41
- this.toolComponents[getToolName(name, serverName)] = component;
42
- }
43
-
44
- getToolComponent(name: string): React.FC<IMCPServerToolComponentProps> | undefined {
45
- return this.toolComponents[name];
46
- }
47
-
48
- getMCPTools(): MCPToolDefinition[] {
49
- return this.tools;
50
- }
51
-
52
- async callMCPTool(
53
- name: string,
54
- args: any,
55
- ): Promise<{
56
- content: { type: string; text: string }[];
57
- isError?: boolean;
58
- }> {
59
- try {
60
- const tool = this.tools.find((tool) => tool.name === name);
61
- if (!tool) {
62
- throw new Error(`MCP tool ${name} not found`);
63
- }
64
- // 统一校验并转换
65
- const toolCallId = args.toolCallId;
66
- args = tool.inputSchema.parse(args);
67
- return await tool.handler({ ...args, toolCallId }, this.logger);
68
- } catch (error) {
69
- // eslint-disable-next-line no-console
70
- console.error('callMCPTool error:', error);
71
- return {
72
- content: [{ type: 'text', text: `The tool ${name} failed to execute. Error: ${error}` }],
73
- isError: true,
74
- };
75
- }
76
- }
77
- }
@@ -1,44 +0,0 @@
1
- .mcp_tools_dialog {
2
- .dialog_title {
3
- font-size: 16px;
4
- font-weight: 600;
5
- color: var(--foreground);
6
- padding-bottom: 16px;
7
- padding-top: 8px;
8
- border-bottom: 1px solid var(--menu-separatorBackground);
9
- }
10
-
11
- .tools_list {
12
- max-height: calc(60vh - 53px); // 减去标题高度
13
- overflow: auto;
14
-
15
- .tool_item {
16
- padding-top: 12px;
17
- padding-bottom: 12px;
18
- border-radius: 6px;
19
-
20
- &:hover {
21
- background-color: var(--list-hoverBackground);
22
- }
23
-
24
- .tool_name {
25
- font-weight: 600;
26
- color: var(--foreground);
27
- margin-bottom: 8px;
28
- }
29
-
30
- .tool_description {
31
- font-size: 12px;
32
- line-height: 1.5;
33
- color: var(--descriptionForeground);
34
- margin-bottom: 4px;
35
- }
36
-
37
- .tool_provider {
38
- font-size: 12px;
39
- color: var(--descriptionForeground);
40
- font-style: italic;
41
- }
42
- }
43
- }
44
- }
@@ -1,24 +0,0 @@
1
- import * as React from 'react';
2
-
3
- import { MCPTool } from '../../common/types';
4
-
5
- import styles from './mcp-tools-dialog.module.less';
6
-
7
- interface MCPToolsDialogProps {
8
- tools: MCPTool[];
9
- }
10
-
11
- export const MCPToolsDialog: React.FC<MCPToolsDialogProps> = ({ tools }) => (
12
- <div className={styles.mcp_tools_dialog}>
13
- <div className={styles.dialog_title}>MCP Tools</div>
14
- <div className={styles.tools_list}>
15
- {tools.map((tool) => (
16
- <div key={tool.name} className={styles.tool_item}>
17
- <div className={styles.tool_name}>{tool.name}</div>
18
- <div className={styles.tool_description}>{tool.description}</div>
19
- {tool.providerName && <div className={styles.tool_provider}>Provider: {tool.providerName}</div>}
20
- </div>
21
- ))}
22
- </div>
23
- </div>
24
- );
@@ -1,144 +0,0 @@
1
- import cls from 'classnames';
2
- import React, { useEffect, useMemo } from 'react';
3
-
4
- import { Icon, Popover } from '@opensumi/ide-components';
5
- import {
6
- AppConfig,
7
- LabelService,
8
- MarkerSeverity,
9
- URI,
10
- Uri,
11
- detectModeId,
12
- path,
13
- useAutorun,
14
- useInjectable,
15
- } from '@opensumi/ide-core-browser';
16
- import { Loading } from '@opensumi/ide-core-browser/lib/components/ai-native';
17
- import { ILanguageService } from '@opensumi/monaco-editor-core/esm/vs/editor/common/languages/language';
18
- import { IModelService } from '@opensumi/monaco-editor-core/esm/vs/editor/common/services/model';
19
- import { StandaloneServices } from '@opensumi/monaco-editor-core/esm/vs/editor/standalone/browser/standaloneServices';
20
-
21
- import { ChatMarkdown } from '../../../components/ChatMarkdown';
22
- import { IMCPServerToolComponentProps } from '../../../types';
23
- import { BaseApplyService, CodeBlockData } from '../../base-apply.service';
24
-
25
- import styles from './index.module.less';
26
-
27
- const renderStatus = (codeBlockData: CodeBlockData) => {
28
- const status = codeBlockData.status;
29
- switch (status) {
30
- case 'generating':
31
- return <Loading />;
32
- case 'pending':
33
- return (
34
- <Popover title={status} id={'edit-file-tool-status-pending'}>
35
- <Icon iconClass='codicon codicon-circle-large' />
36
- </Popover>
37
- );
38
- case 'success':
39
- return (
40
- <Popover title={status} id={'edit-file-tool-status-success'}>
41
- <Icon iconClass='codicon codicon-check-all' />
42
- </Popover>
43
- );
44
- case 'failed':
45
- return (
46
- <Popover title={status} id={'edit-file-tool-status-failed'}>
47
- <Icon iconClass='codicon codicon-error' color='var(--vscode-input-errorForeground)' />
48
- </Popover>
49
- );
50
- case 'cancelled':
51
- return (
52
- <Popover title={status} id={'edit-file-tool-status-cancelled'}>
53
- <Icon iconClass='codicon codicon-close' color='var(--vscode-input-placeholderForeground)' />
54
- </Popover>
55
- );
56
- default:
57
- return null;
58
- }
59
- };
60
-
61
- export const EditFileToolComponent = (props: IMCPServerToolComponentProps) => {
62
- const { args, messageId, toolCallId } = props;
63
- const labelService = useInjectable(LabelService);
64
- const appConfig = useInjectable<AppConfig>(AppConfig);
65
- const applyService = useInjectable<BaseApplyService>(BaseApplyService);
66
- const { target_file = '', code_edit, instructions } = args || {};
67
- const absolutePath = path.join(appConfig.workspaceDir, target_file);
68
-
69
- const codeBlockData = applyService.getCodeBlock(absolutePath, messageId);
70
-
71
- useAutorun(applyService.codeBlockMapObservable);
72
-
73
- if (toolCallId && codeBlockData) {
74
- applyService.initToolCallId(codeBlockData.id, toolCallId);
75
- }
76
-
77
- const icon = useMemo(() => {
78
- if (!target_file) {
79
- return;
80
- }
81
- const icon = `file-icon ${labelService.getIcon(URI.file(absolutePath))}`;
82
- return icon;
83
- }, [target_file, absolutePath]);
84
- const languageId = useMemo(() => {
85
- if (!target_file) {
86
- return;
87
- }
88
- const modelService = StandaloneServices.get(IModelService);
89
- const languageService = StandaloneServices.get(ILanguageService);
90
- const detectedModeId = detectModeId(modelService, languageService, Uri.file(absolutePath));
91
- return detectedModeId;
92
- }, [target_file, absolutePath]);
93
-
94
- // 多次迭代时,仅在首处tool组件中展示
95
- if (!args || !codeBlockData || (toolCallId && toolCallId !== codeBlockData.initToolCallId)) {
96
- return null;
97
- }
98
-
99
- return [
100
- instructions && <p>{instructions}</p>,
101
- <div className={styles['edit-file-tool']} key={`edit-file-tool-${codeBlockData.id}`}>
102
- <div
103
- className={cls(styles['edit-file-tool-header'], {
104
- clickable: codeBlockData.status === 'pending' || codeBlockData.status === 'success',
105
- })}
106
- onClick={() => {
107
- if (codeBlockData.status === 'pending') {
108
- applyService.reRenderPendingApply();
109
- } else if (codeBlockData.status === 'success') {
110
- applyService.revealApplyPosition(codeBlockData.id);
111
- }
112
- }}
113
- >
114
- {icon && <span className={icon}></span>}
115
- <span className={styles['edit-file-tool-file-name']}>{target_file}</span>
116
- {codeBlockData.iterationCount > 1 && (
117
- <span className={styles['edit-file-tool-iteration-count']}>{codeBlockData.iterationCount}/3</span>
118
- )}
119
- {renderStatus(codeBlockData)}
120
- </div>
121
- <ChatMarkdown markdown={`\`\`\`${languageId || ''}\n${code_edit}\n\`\`\``} hideInsert={true} />
122
- </div>,
123
- codeBlockData.applyResult && codeBlockData.applyResult.diagnosticInfos.length > 0 && (
124
- <div
125
- className={styles['edit-file-tool-diagnostic-errors']}
126
- key={`edit-file-tool-diagnostic-errors-${codeBlockData.id}`}
127
- >
128
- <div className={styles['title']}>Found Lints:</div>
129
- {codeBlockData.applyResult?.diagnosticInfos.map((info) => (
130
- <div
131
- key={info.message}
132
- className={cls({
133
- [styles['error']]: info.severity === MarkerSeverity.Error,
134
- [styles['warning']]: info.severity === MarkerSeverity.Warning,
135
- })}
136
- >
137
- <Icon className={`codicon codicon-${info.severity === MarkerSeverity.Error ? 'error' : 'warning'}`} />
138
- {info.message.split('\n')[0]}
139
- </div>
140
- ))}
141
- </div>
142
- ),
143
- ];
144
- };
@@ -1,92 +0,0 @@
1
- import React, { useEffect, useMemo, useState } from 'react';
2
-
3
- import { 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 SearchResultProps {
13
- args: any;
14
- toolCallId: string;
15
- messageId: string;
16
- toolName: string;
17
- }
18
-
19
- export const FileSearchToolComponent: React.FC<SearchResultProps> = ({ args, toolCallId, messageId }) => (
20
- <SearchResult args={args} toolCallId={toolCallId} messageId={messageId} toolName='fileSearch' />
21
- );
22
-
23
- export const GrepSearchToolComponent: React.FC<SearchResultProps> = ({ args, toolCallId, messageId }) => (
24
- <SearchResult args={args} toolCallId={toolCallId} messageId={messageId} toolName='grepSearch' />
25
- );
26
-
27
- const SearchResult: React.FC<SearchResultProps> = ({ args, toolCallId, toolName, messageId }) => {
28
- const [isExpanded, setIsExpanded] = useState(false);
29
- const labelService = useInjectable<LabelService>(LabelService);
30
- const editorService = useInjectable<WorkbenchEditorService>(WorkbenchEditorService);
31
- const workspaceService = useInjectable<IWorkspaceService>(IWorkspaceService);
32
- const workspaceRoot = useMemo(() => URI.parse(workspaceService.tryGetRoots()?.[0]?.uri), []);
33
-
34
- const chatService = useInjectable<ChatInternalService>(IChatInternalService);
35
- const [files, setFiles] = useState<string[]>(
36
- chatService.sessionModel.history.getMessageAdditional(messageId)?.[toolCallId]?.files || [],
37
- );
38
- useEffect(() => {
39
- const toDispose = chatService.sessionModel.history.onMessageAdditionalChange((additional) => {
40
- setFiles(additional[toolCallId]?.files || []);
41
- });
42
- return () => {
43
- toDispose.dispose();
44
- };
45
- }, []);
46
-
47
- const handleFileClick = (uri: URI) => {
48
- // 处理文件点击跳转
49
- editorService.open(uri);
50
- };
51
-
52
- const parsedFiles = useMemo(
53
- () =>
54
- files.map((file) => {
55
- const uri = URI.parse(file);
56
- const iconClass = labelService.getIcon(uri);
57
- return {
58
- iconClass,
59
- name: uri.path.base,
60
- path: path.relative(workspaceRoot.codeUri.fsPath, uri.path.dir.toString()),
61
- };
62
- }),
63
- [files],
64
- );
65
-
66
- return (
67
- <div className={styles.container}>
68
- <div className={styles.header} onClick={() => setIsExpanded(!isExpanded)}>
69
- <span style={{ transform: `rotate(${isExpanded ? '90deg' : '0deg'})` }}>▶</span>
70
- <span>
71
- {toolName === 'fileSearch' ? `Searched files "${args.query}"` : `Grepped codebase "${args.query}"`} ·{' '}
72
- {files.length} files
73
- </span>
74
- </div>
75
- {isExpanded && (
76
- <ul className={styles.fileList}>
77
- {parsedFiles.map((file, index) => (
78
- <li
79
- key={index}
80
- className={styles.fileItem}
81
- onClick={() => handleFileClick(URI.file(path.join(workspaceRoot.codeUri.fsPath, file.path, file.name)))}
82
- >
83
- <span className={file.iconClass}></span>
84
- <span style={{ flex: 1 }}>{file.name}</span>
85
- <span className={styles.filePath}>{file.path}</span>
86
- </li>
87
- ))}
88
- </ul>
89
- )}
90
- </div>
91
- );
92
- };
@@ -1,97 +0,0 @@
1
- import React, { memo, useCallback, useMemo, useState } from 'react';
2
-
3
- import { useInjectable } from '@opensumi/ide-core-browser';
4
- import { Button, Icon } from '@opensumi/ide-core-browser/lib/components';
5
- import { localize } from '@opensumi/ide-core-common';
6
-
7
- import { IMCPServerToolComponentProps } from '../../../types';
8
- import { RunCommandHandler } from '../handlers/RunCommand';
9
-
10
- import styles from './index.module.less';
11
-
12
- function getResult(raw: string) {
13
- const result: {
14
- isError?: boolean;
15
- text?: string;
16
- } = {};
17
-
18
- try {
19
- const data: {
20
- content: { type: string; text: string }[];
21
- isError?: boolean;
22
- } = JSON.parse(raw);
23
- if (data.isError) {
24
- result.isError = data.isError;
25
- }
26
-
27
- if (data.content) {
28
- result.text = data.content.map((item) => item.text).join('\n');
29
- }
30
-
31
- return result;
32
- } catch {
33
- return null;
34
- }
35
- }
36
-
37
- export const TerminalToolComponent = memo((props: IMCPServerToolComponentProps) => {
38
- const { args, toolCallId } = props;
39
- const handler = useInjectable<RunCommandHandler>(RunCommandHandler);
40
- const [disabled, toggleDisabled] = useState(false);
41
-
42
- const handleClick = useCallback((approval: boolean) => {
43
- if (!toolCallId) {
44
- return;
45
- }
46
- handler.handleApproval(toolCallId, approval);
47
- toggleDisabled(true);
48
- }, []);
49
-
50
- const output = useMemo(() => {
51
- if (props.result) {
52
- return getResult(props.result);
53
- }
54
- return null;
55
- }, [props]);
56
-
57
- return (
58
- <div className={styles.run_cmd_tool}>
59
- {props.state === 'result' && (
60
- <div>
61
- <div className={styles.command_title}>
62
- <Icon icon='terminal' />
63
- <span>{localize('ai.native.mcp.terminal.output')}</span>
64
- </div>
65
- {output ? (
66
- <div className={styles.command_content}>
67
- <code>{output.text}</code>
68
- </div>
69
- ) : (
70
- ''
71
- )}
72
- </div>
73
- )}
74
-
75
- {props.state === 'complete' && args?.require_user_approval && (
76
- <div>
77
- <div className={styles.command_title}>
78
- <Icon icon='terminal' />
79
- <span>{localize('ai.native.mcp.terminal.allow-question')}</span>
80
- </div>
81
- <p className={styles.command_content}>
82
- <code>$ {args.command}</code>
83
- </p>
84
- <p className={styles.comand_description}>{args.explanation}</p>
85
- <div className={styles.cmmand_footer}>
86
- <Button type='link' size='small' disabled={disabled} onClick={() => handleClick(true)}>
87
- {localize('ai.native.mcp.terminal.allow')}
88
- </Button>
89
- <Button type='link' size='small' disabled={disabled} onClick={() => handleClick(false)}>
90
- {localize('ai.native.mcp.terminal.deny')}
91
- </Button>
92
- </div>
93
- </div>
94
- )}
95
- </div>
96
- );
97
- });
@@ -1,168 +0,0 @@
1
- .edit-file-tool-header {
2
- display: flex;
3
- align-items: center;
4
- padding: 2px 8px;
5
- border-bottom: 1px solid var(--vscode-commandCenter-inactiveBorder);
6
- background-color: var(--design-block-background);
7
- font-size: 10px;
8
- margin-bottom: -4px;
9
- border-radius: 8px 8px 0 0;
10
- > span {
11
- margin-right: 4px;
12
- }
13
- :global(span.codicon) {
14
- font-size: 12px;
15
- }
16
- :global(.kt-popover-trigger) {
17
- display: flex;
18
- align-items: center;
19
- justify-content: center;
20
- }
21
- }
22
- .edit-file-tool {
23
- border: 1px solid var(--vscode-commandCenter-inactiveBorder);
24
- border-radius: 4px;
25
- margin: 8px 0;
26
- :global(.language-badge) {
27
- border-top-left-radius: 0;
28
- }
29
- pre > code {
30
- border-radius: 0 0 8px 8px !important;
31
- }
32
- }
33
- .edit-file-tool-iteration-count {
34
- color: var(--vscode-input-placeholderForeground);
35
- margin-left: 4px;
36
- }
37
- :global(.clickable) {
38
- cursor: pointer;
39
- }
40
- .edit-file-tool-diagnostic-errors {
41
- padding: 8px;
42
- border: 1px solid var(--vscode-commandCenter-inactiveBorder);
43
- background-color: var(--design-block-background);
44
- border-radius: 8px;
45
- font-size: 12px;
46
- margin: 4px 0;
47
- > div {
48
- display: flex;
49
- align-items: center;
50
- padding: 2px 0;
51
- }
52
- :global(.codicon) {
53
- margin-right: 4px;
54
- }
55
- .title {
56
- margin-bottom: 3px;
57
- display: inline-block;
58
- }
59
- }
60
- .error,
61
- .error > span {
62
- color: var(--debugConsole-errorForeground);
63
- }
64
- .warning,
65
- .warning > span {
66
- color: var(--debugConsole-warningForeground);
67
- }
68
-
69
- .container {
70
- border: 1px solid var(--vscode-commandCenter-inactiveBorder);
71
- border-radius: 8px;
72
- margin: 8px 0;
73
- overflow: hidden;
74
- }
75
-
76
- .header {
77
- padding: 8px 12px;
78
- background-color: var(--design-block-background);
79
- border-bottom: 1px solid var(--vscode-commandCenter-inactiveBorder);
80
- cursor: pointer;
81
- display: flex;
82
- align-items: center;
83
- gap: 4px;
84
- color: var(--design-text-foreground);
85
- font-size: 12px;
86
- }
87
-
88
- .fileList {
89
- margin: 0;
90
- padding: 0;
91
- list-style: none;
92
- display: block;
93
- background-color: var(--design-block-background);
94
- }
95
-
96
- .fileList.collapsed {
97
- display: none;
98
- }
99
-
100
- .fileItem {
101
- padding: 2px 6px;
102
- font-size: 12px;
103
- margin: 0px 6px;
104
- border-radius: 4px;
105
- display: flex;
106
- align-items: center;
107
- gap: 8px;
108
- cursor: pointer;
109
- color: var(--design-text-primary);
110
- &:hover {
111
- background-color: var(--design-block-background);
112
- }
113
- > span {
114
- overflow: hidden;
115
- text-overflow: ellipsis;
116
- white-space: nowrap;
117
- }
118
- }
119
-
120
- .fileIcon {
121
- color: var(--design-text-secondary);
122
- font-size: 12px;
123
- width: 16px;
124
- }
125
-
126
- .filePath {
127
- color: var(--design-text-secondary);
128
- font-size: 12px;
129
- margin-left: auto;
130
- flex-basis: 0px;
131
- flex-grow: 1;
132
- }
133
-
134
- .run_cmd_tool {
135
- .command_title {
136
- display: flex;
137
- align-items: center;
138
- span {
139
- margin-left: 5px;
140
- }
141
- }
142
-
143
- .command_content {
144
- padding: 4px;
145
- font-size: 12px;
146
- color: var(--design-text-foreground);
147
- margin: 0px;
148
- background-color: var(--terminal-background);
149
- margin: 10px 0px;
150
- border-radius: 4px;
151
- overflow: auto;
152
-
153
- code {
154
- font-size: 12px;
155
- white-space: pre;
156
- }
157
- }
158
-
159
- .comand_description {
160
- font-size: 11px;
161
- color: var(--descriptionForeground);
162
- }
163
-
164
- .cmmand_footer {
165
- display: flex;
166
- justify-content: flex-end;
167
- }
168
- }