@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
@@ -10,19 +10,37 @@ const browser_1 = require("@opensumi/ide-editor/lib/browser");
10
10
  const ide_markers_1 = require("@opensumi/ide-markers");
11
11
  const ide_monaco_1 = require("@opensumi/ide-monaco");
12
12
  const ide_utils_1 = require("@opensumi/ide-utils");
13
+ const editOperation_1 = require("@opensumi/monaco-editor-core/esm/vs/editor/common/core/editOperation");
13
14
  const common_1 = require("../../common");
14
15
  const chat_internal_service_1 = require("../chat/chat.internal.service");
15
16
  const inline_chat_controller_1 = require("../widget/inline-chat/inline-chat-controller");
16
17
  const inline_diff_1 = require("../widget/inline-diff");
17
- const ReadFile_1 = require("./tools/handlers/ReadFile");
18
- // 提供代码块的唯一索引,迭代轮次,生成状态管理(包括取消),关联文件位置这些信息的记录,后续并行 apply 的支持
19
18
  class BaseApplyService extends ide_core_browser_1.WithEventBus {
20
19
  constructor() {
21
20
  super();
22
21
  this.onCodeBlockUpdateEmitter = new ide_utils_1.Emitter();
23
22
  this.onCodeBlockUpdate = this.onCodeBlockUpdateEmitter.event;
23
+ this.activePreviewerMap = this.registerDispose(new ide_utils_1.DisposableMap());
24
+ this.editorListenerMap = this.registerDispose(new ide_utils_1.DisposableMap());
24
25
  this.addDispose(this.chatInternalService.onCancelRequest(() => {
25
- this.cancelAllApply();
26
+ const currentMessageId = this.chatInternalService.sessionModel.history.lastMessageId;
27
+ if (!currentMessageId) {
28
+ return;
29
+ }
30
+ const codeBlockMap = this.getMessageCodeBlocks(currentMessageId);
31
+ if (!codeBlockMap) {
32
+ return;
33
+ }
34
+ Object.values(codeBlockMap).forEach((blockData) => {
35
+ this.cancelApply(blockData);
36
+ });
37
+ }));
38
+ this.currentSessionId = this.chatInternalService.sessionModel.sessionId;
39
+ this.addDispose(this.chatInternalService.onChangeSession((sessionId) => {
40
+ if (sessionId !== this.currentSessionId) {
41
+ this.cancelAllApply();
42
+ this.currentSessionId = sessionId;
43
+ }
26
44
  }));
27
45
  this.addDispose(this.chatInternalService.onRegenerateRequest(() => {
28
46
  const messages = this.chatInternalService.sessionModel.history.getMessages();
@@ -35,6 +53,9 @@ class BaseApplyService extends ide_core_browser_1.WithEventBus {
35
53
  this.cancelApply(blockData);
36
54
  });
37
55
  }));
56
+ this.addDispose(this.chatInternalService.onWillClearSession((sessionId) => {
57
+ this.cancelAllApply(sessionId);
58
+ }));
38
59
  }
39
60
  getMessageCodeBlocks(messageId, sessionId) {
40
61
  sessionId = sessionId || this.chatInternalService.sessionModel.sessionId;
@@ -46,35 +67,65 @@ class BaseApplyService extends ide_core_browser_1.WithEventBus {
46
67
  return message === null || message === void 0 ? void 0 : message.codeBlockMap;
47
68
  }
48
69
  onEditorGroupClose(event) {
49
- var _a, _b;
50
- if (((_b = (_a = this.activePreviewer) === null || _a === void 0 ? void 0 : _a.getNode()) === null || _b === void 0 ? void 0 : _b.uri.path.toString()) === event.payload.resource.uri.path.toString()) {
51
- this.activePreviewer.dispose();
52
- this.activePreviewer = undefined;
70
+ const relativePath = ide_utils_1.path.relative(this.appConfig.workspaceDir, event.payload.resource.uri.path.toString());
71
+ const activePreviewer = this.activePreviewerMap.get(relativePath);
72
+ if (activePreviewer) {
73
+ this.activePreviewerMap.disposeKey(relativePath);
53
74
  }
75
+ this.editorListenerMap.disposeKey(event.payload.resource.uri.toString());
54
76
  }
55
77
  async onEditorGroupOpen(event) {
56
- if (!this.chatInternalService.sessionModel.history.getMessages().length) {
78
+ var _a;
79
+ const relativePath = ide_utils_1.path.relative(this.appConfig.workspaceDir, event.payload.resource.uri.path.toString());
80
+ if (this.duringApply ||
81
+ this.activePreviewerMap.has(relativePath) ||
82
+ !this.chatInternalService.sessionModel.history.getMessages().length) {
57
83
  return;
58
84
  }
59
- const relativePath = ide_utils_1.path.relative(this.appConfig.workspaceDir, event.payload.resource.uri.path.toString());
60
- const filePendingApplies = Object.values(this.getMessageCodeBlocks(this.chatInternalService.sessionModel.history.lastMessageId) || {}).filter((block) => block.relativePath === relativePath && block.status === 'pending');
61
- // TODO: 刷新后重新应用,事件无法恢复 & 恢复继续请求,需要改造成批量apply形式
62
- // TODO: 暂时只支持 pending 串行的 apply,后续支持批量apply后统一accept
63
- if (filePendingApplies.length > 0) {
64
- this.renderApplyResult(filePendingApplies[0], filePendingApplies[0].updatedCode);
85
+ const filePendingApplies = ((_a = this.getUriCodeBlocks(event.payload.resource.uri)) === null || _a === void 0 ? void 0 : _a.filter((block) => block.status === 'pending')) || [];
86
+ // 使用最后一个版本内容渲染 apply 内容
87
+ if (filePendingApplies.length > 0 && filePendingApplies[0].updatedCode) {
88
+ const editor = event.payload.group.codeEditor.monacoEditor;
89
+ this.renderApplyResult(editor, filePendingApplies[0], filePendingApplies[0].updatedCode);
65
90
  }
66
91
  }
67
- getUriPendingCodeBlock(uri) {
68
- const messageId = this.chatInternalService.sessionModel.history.lastMessageId;
69
- if (!messageId) {
92
+ get currentPreviewer() {
93
+ var _a;
94
+ const currentUri = (_a = this.editorService.currentEditor) === null || _a === void 0 ? void 0 : _a.currentUri;
95
+ if (!currentUri) {
70
96
  return undefined;
71
97
  }
72
- const codeBlockMap = this.getMessageCodeBlocks(messageId);
73
- if (!codeBlockMap) {
74
- return undefined;
98
+ return this.activePreviewerMap.get(ide_utils_1.path.relative(this.appConfig.workspaceDir, currentUri.path.toString()));
99
+ }
100
+ /**
101
+ * 获取指定uri的 code block,按version降序排序
102
+ */
103
+ getUriCodeBlocks(uri) {
104
+ const sessionCodeBlocks = this.getSessionCodeBlocks();
105
+ const relativePath = ide_utils_1.path.relative(this.appConfig.workspaceDir, uri.path.toString());
106
+ return sessionCodeBlocks
107
+ .filter((block) => block.relativePath === relativePath)
108
+ .sort((a, b) => b.version - a.version);
109
+ }
110
+ getPendingPaths(sessionId) {
111
+ const sessionCodeBlocks = this.getSessionCodeBlocks(sessionId);
112
+ return sessionCodeBlocks.filter((block) => block.status === 'pending').map((block) => block.relativePath);
113
+ }
114
+ getSessionCodeBlocks(sessionId) {
115
+ sessionId = sessionId || this.chatInternalService.sessionModel.sessionId;
116
+ const sessionModel = this.chatInternalService.getSession(sessionId);
117
+ if (!sessionModel) {
118
+ throw new Error(`Session ${sessionId} not found`);
75
119
  }
76
- return Object.values(codeBlockMap).find((block) => block.relativePath === ide_utils_1.path.relative(this.appConfig.workspaceDir, uri.path.toString()) &&
77
- block.status === 'pending');
120
+ const sessionAdditionals = sessionModel.history.sessionAdditionals;
121
+ return Array.from(sessionAdditionals.values())
122
+ .map((additional) => (additional.codeBlockMap || {}))
123
+ .reduce((acc, cur) => {
124
+ Object.values(cur).forEach((block) => {
125
+ acc.push(block);
126
+ });
127
+ return acc;
128
+ }, []);
78
129
  }
79
130
  getCodeBlock(toolCallId, messageId) {
80
131
  messageId = messageId || this.chatInternalService.sessionModel.history.lastMessageId;
@@ -87,11 +138,8 @@ class BaseApplyService extends ide_core_browser_1.WithEventBus {
87
138
  }
88
139
  return codeBlockMap[toolCallId];
89
140
  }
90
- updateCodeBlock(codeBlock, messageId) {
91
- messageId = messageId || this.chatInternalService.sessionModel.history.lastMessageId;
92
- if (!messageId) {
93
- throw new Error('Message ID is required');
94
- }
141
+ updateCodeBlock(codeBlock) {
142
+ const messageId = codeBlock.messageId;
95
143
  const codeBlockMap = this.getMessageCodeBlocks(messageId);
96
144
  if (!codeBlockMap) {
97
145
  throw new Error('Code block not found');
@@ -102,10 +150,11 @@ class BaseApplyService extends ide_core_browser_1.WithEventBus {
102
150
  });
103
151
  this.onCodeBlockUpdateEmitter.fire(codeBlock);
104
152
  }
105
- registerCodeBlock(relativePath, content, toolCallId) {
153
+ async registerCodeBlock(relativePath, content, toolCallId) {
106
154
  var _a, _b;
107
155
  const lastMessageId = this.chatInternalService.sessionModel.history.lastMessageId;
108
- const savedCodeBlockMap = this.getMessageCodeBlocks(lastMessageId) || {};
156
+ const uriCodeBlocks = this.getUriCodeBlocks(ide_utils_1.URI.file(ide_utils_1.path.join(this.appConfig.workspaceDir, relativePath)));
157
+ const originalModelRef = await this.editorDocumentModelService.createModelReference(ide_utils_1.URI.file(ide_utils_1.path.join(this.appConfig.workspaceDir, relativePath)));
109
158
  const newBlock = {
110
159
  codeEdit: content,
111
160
  relativePath,
@@ -114,11 +163,13 @@ class BaseApplyService extends ide_core_browser_1.WithEventBus {
114
163
  version: 1,
115
164
  createdAt: Date.now(),
116
165
  toolCallId,
166
+ messageId: lastMessageId,
167
+ // TODO: 支持range
168
+ originalCode: originalModelRef.instance.getText(),
117
169
  };
118
- const samePathCodeBlocks = Object.values(savedCodeBlockMap).filter((block) => block.relativePath === relativePath);
119
- if (samePathCodeBlocks.length > 0) {
120
- newBlock.version = samePathCodeBlocks.length;
121
- for (const block of samePathCodeBlocks.sort((a, b) => b.version - a.version)) {
170
+ if (uriCodeBlocks === null || uriCodeBlocks === void 0 ? void 0 : uriCodeBlocks.length) {
171
+ newBlock.version = uriCodeBlocks.length;
172
+ for (const block of uriCodeBlocks) {
122
173
  // 如果连续的上一个同文件apply结果存在LintError,则iterationCount++
123
174
  if (block.relativePath === relativePath && ((_b = (_a = block.applyResult) === null || _a === void 0 ? void 0 : _a.diagnosticInfos) === null || _b === void 0 ? void 0 : _b.length)) {
124
175
  newBlock.iterationCount++;
@@ -128,6 +179,7 @@ class BaseApplyService extends ide_core_browser_1.WithEventBus {
128
179
  }
129
180
  }
130
181
  }
182
+ const savedCodeBlockMap = this.getMessageCodeBlocks(lastMessageId) || {};
131
183
  savedCodeBlockMap[toolCallId] = newBlock;
132
184
  this.chatInternalService.sessionModel.history.setMessageAdditional(lastMessageId, {
133
185
  codeBlockMap: savedCodeBlockMap,
@@ -140,15 +192,34 @@ class BaseApplyService extends ide_core_browser_1.WithEventBus {
140
192
  */
141
193
  async apply(codeBlock) {
142
194
  try {
195
+ this.duringApply = true;
143
196
  if (codeBlock.iterationCount > 3) {
144
197
  throw new Error('Lint error max iteration count exceeded');
145
198
  }
146
- const fastApplyFileResult = await this.doApply(codeBlock);
199
+ // 新建文件场景,直接返回codeEdit
200
+ const fastApplyFileResult = !codeBlock.originalCode
201
+ ? {
202
+ result: codeBlock.codeEdit,
203
+ }
204
+ : await this.doApply(codeBlock);
147
205
  if (!fastApplyFileResult.stream && !fastApplyFileResult.result) {
148
206
  throw new Error('No apply content provided');
149
207
  }
208
+ if (this.activePreviewerMap.has(codeBlock.relativePath)) {
209
+ // 有正在进行的 apply,则取消(但不更新block状态,只清理副作用)
210
+ this.cancelApply(codeBlock, true);
211
+ }
150
212
  // trigger diffPreivewer & return expected diff result directly
151
- const applyResult = await this.renderApplyResult(codeBlock, (fastApplyFileResult.result || fastApplyFileResult.stream), fastApplyFileResult.range);
213
+ const result = await this.editorService.open(ide_utils_1.URI.file(ide_utils_1.path.join(this.appConfig.workspaceDir, codeBlock.relativePath)));
214
+ if (!result) {
215
+ throw new Error('Failed to open file');
216
+ }
217
+ if (typeof fastApplyFileResult.result === 'string') {
218
+ codeBlock.updatedCode = fastApplyFileResult.result;
219
+ codeBlock.status = 'pending';
220
+ this.updateCodeBlock(codeBlock);
221
+ }
222
+ const applyResult = await this.renderApplyResult(result.group.codeEditor.monacoEditor, codeBlock, (fastApplyFileResult.result || fastApplyFileResult.stream), fastApplyFileResult.range);
152
223
  if (applyResult) {
153
224
  // 用户实际接受的 apply 结果
154
225
  codeBlock.applyResult = applyResult;
@@ -161,39 +232,60 @@ class BaseApplyService extends ide_core_browser_1.WithEventBus {
161
232
  this.updateCodeBlock(codeBlock);
162
233
  throw err;
163
234
  }
164
- }
165
- async renderApplyResult(codeBlock, updatedContentOrStream, range) {
166
- var _a;
167
- const { relativePath } = codeBlock;
168
- const openResult = await this.editorService.open(ide_utils_1.URI.file(ide_utils_1.path.join(this.appConfig.workspaceDir, relativePath)));
169
- if (!openResult) {
170
- throw new Error('Failed to open editor');
235
+ finally {
236
+ this.duringApply = false;
171
237
  }
172
- const editor = openResult.group.codeEditor.monacoEditor;
238
+ }
239
+ async renderApplyResult(editor, codeBlock, updatedContentOrStream, range) {
240
+ var _a, _b;
241
+ const deferred = new ide_utils_1.Deferred();
173
242
  const inlineDiffController = inline_diff_1.InlineDiffController.get(editor);
174
- codeBlock.status = 'pending';
175
- // 强刷展示 manager 视图
176
- this.eventBus.fire(new browser_1.RegisterEditorSideComponentEvent());
177
- this.updateCodeBlock(codeBlock);
178
- const fullOriginalContent = editor.getModel().getValue();
179
- range = range || ((_a = editor.getModel()) === null || _a === void 0 ? void 0 : _a.getFullModelRange());
180
- // const savedRangeContent = editor.getModel()!.getValueInRange(range);
243
+ range = range || editor.getModel().getFullModelRange();
181
244
  if (typeof updatedContentOrStream === 'string') {
245
+ const editorCurrentContent = editor.getModel().getValue();
246
+ const uri = ide_utils_1.URI.file(ide_utils_1.path.join(this.appConfig.workspaceDir, codeBlock.relativePath));
247
+ const document = this.editorDocumentModelService.getModelReference(uri);
248
+ if (editorCurrentContent !== updatedContentOrStream || (document === null || document === void 0 ? void 0 : document.instance.dirty)) {
249
+ (_a = editor.getModel()) === null || _a === void 0 ? void 0 : _a.pushEditOperations([], [editOperation_1.EditOperation.replace(range, updatedContentOrStream)], () => null);
250
+ await this.editorService.save(uri);
251
+ }
252
+ const uriPendingCodeBlocks = (_b = this.getUriCodeBlocks(uri)) === null || _b === void 0 ? void 0 : _b.filter((block) => block.status === 'pending');
253
+ const earlistPendingCodeBlock = uriPendingCodeBlocks === null || uriPendingCodeBlocks === void 0 ? void 0 : uriPendingCodeBlocks[uriPendingCodeBlocks.length - 1];
254
+ if (((earlistPendingCodeBlock === null || earlistPendingCodeBlock === void 0 ? void 0 : earlistPendingCodeBlock.originalCode) || codeBlock.originalCode) === updatedContentOrStream) {
255
+ codeBlock.status = 'cancelled';
256
+ this.updateCodeBlock(codeBlock);
257
+ deferred.resolve();
258
+ return;
259
+ }
182
260
  // Create diff previewer
183
261
  const previewer = inlineDiffController.createDiffPreviewer(editor, ide_monaco_1.Selection.fromRange(range, ide_monaco_1.SelectionDirection.LTR), {
184
262
  disposeWhenEditorClosed: true,
185
263
  renderRemovedWidgetImmediately: true,
264
+ reverse: true,
265
+ });
266
+ this.activePreviewerMap.set(codeBlock.relativePath, previewer);
267
+ // 新建文件场景,为避免model为空,加一个空行
268
+ previewer.setValue((earlistPendingCodeBlock === null || earlistPendingCodeBlock === void 0 ? void 0 : earlistPendingCodeBlock.originalCode) || codeBlock.originalCode || '\n');
269
+ // 强刷展示 manager 视图
270
+ this.eventBus.fire(new browser_1.RegisterEditorSideComponentEvent());
271
+ this.listenPartialEdit(editor.getModel(), codeBlock).then((result) => {
272
+ if (result) {
273
+ codeBlock.applyResult = result;
274
+ }
275
+ this.updateCodeBlock(codeBlock);
276
+ this.editorService.save(ide_utils_1.URI.file(ide_utils_1.path.join(this.appConfig.workspaceDir, codeBlock.relativePath)));
277
+ });
278
+ const { diff, rangesFromDiffHunk } = this.getDiffResult(codeBlock.originalCode, codeBlock.updatedCode || updatedContentOrStream, codeBlock.relativePath);
279
+ const diagnosticInfos = this.getDiagnosticInfos(editor.getModel().uri.toString(), rangesFromDiffHunk);
280
+ deferred.resolve({
281
+ diff,
282
+ diagnosticInfos,
186
283
  });
187
- // TODO: 支持多个diffPreviewer
188
- this.activePreviewer = previewer;
189
- codeBlock.updatedCode = updatedContentOrStream;
190
- previewer.setValue(updatedContentOrStream);
191
284
  }
192
285
  else {
193
286
  const controller = new inline_chat_controller_1.InlineChatController();
194
287
  controller.mountReadable(updatedContentOrStream);
195
- const inlineDiffHandler = inline_diff_1.InlineDiffController.get(editor);
196
- this.activePreviewer = inlineDiffHandler.showPreviewerByStream(editor, {
288
+ const previewer = inlineDiffController.showPreviewerByStream(editor, {
197
289
  crossSelection: ide_monaco_1.Selection.fromRange(range, ide_monaco_1.SelectionDirection.LTR),
198
290
  chatResponse: controller,
199
291
  previewerOptions: {
@@ -201,35 +293,57 @@ class BaseApplyService extends ide_core_browser_1.WithEventBus {
201
293
  renderRemovedWidgetImmediately: false,
202
294
  },
203
295
  });
204
- this.addDispose(this.activePreviewer.getNode().onDiffFinished((diffModel) => {
296
+ this.addDispose(controller.onError((err) => {
297
+ deferred.reject(err);
298
+ }));
299
+ this.addDispose(controller.onAbort(() => {
300
+ deferred.reject(new Error('Apply aborted'));
301
+ }));
302
+ this.addDispose(
303
+ // 流式输出结束后,转为直接输出逻辑
304
+ previewer.getNode().onDiffFinished(async (diffModel) => {
205
305
  codeBlock.updatedCode = diffModel.newFullRangeTextLines.join('\n');
306
+ // TODO: 添加 reapply
307
+ // 实际应用结果为空,则取消
308
+ if (codeBlock.updatedCode === codeBlock.originalCode) {
309
+ codeBlock.status = 'failed';
310
+ this.updateCodeBlock(codeBlock);
311
+ previewer.dispose();
312
+ deferred.reject(new Error('no changes applied'));
313
+ return;
314
+ }
315
+ codeBlock.status = 'pending';
206
316
  this.updateCodeBlock(codeBlock);
317
+ previewer.dispose();
318
+ const result = await this.renderApplyResult(editor, codeBlock, codeBlock.updatedCode);
319
+ deferred.resolve(result);
207
320
  }));
321
+ this.activePreviewerMap.set(codeBlock.relativePath, previewer);
208
322
  }
209
- return this.listenPartialEdit(editor, codeBlock, fullOriginalContent);
323
+ return deferred.promise;
210
324
  }
211
325
  /**
212
326
  * Cancel an ongoing apply operation
213
327
  */
214
- cancelApply(blockData) {
215
- var _a;
328
+ cancelApply(blockData, keepStatus) {
329
+ var _a, _b;
216
330
  if (blockData.status === 'generating' || blockData.status === 'pending') {
217
- if (this.activePreviewer) {
218
- (_a = this.activePreviewer.getNode()) === null || _a === void 0 ? void 0 : _a.livePreviewDiffDecorationModel.discardUnProcessed();
219
- this.activePreviewer.dispose();
331
+ // 先取消掉相关的监听器
332
+ this.editorListenerMap.disposeKey(ide_utils_1.URI.file(ide_utils_1.path.join(this.appConfig.workspaceDir, blockData.relativePath)).toString());
333
+ if (this.activePreviewerMap.has(blockData.relativePath)) {
334
+ (_b = (_a = this.activePreviewerMap
335
+ .get(blockData.relativePath)) === null || _a === void 0 ? void 0 : _a.getNode()) === null || _b === void 0 ? void 0 : _b.livePreviewDiffDecorationModel.discardUnProcessed();
336
+ this.activePreviewerMap.disposeKey(blockData.relativePath);
337
+ }
338
+ if (!keepStatus) {
339
+ blockData.status = 'cancelled';
340
+ this.updateCodeBlock(blockData);
220
341
  }
221
- blockData.status = 'cancelled';
222
- this.updateCodeBlock(blockData);
223
342
  }
224
343
  }
225
- // TODO: 目前的设计下,有一个工具 apply 没返回,是不会触发下一个的(cursor 是会全部自动 apply 的),所以这个方法目前还没有必要
226
- cancelAllApply() {
227
- const messageId = this.chatInternalService.sessionModel.history.lastMessageId;
228
- const codeBlockMap = this.getMessageCodeBlocks(messageId);
229
- if (!codeBlockMap) {
230
- return;
231
- }
232
- Object.values(codeBlockMap).forEach((blockData) => {
344
+ cancelAllApply(sessionId) {
345
+ const sessionCodeBlocks = this.getSessionCodeBlocks(sessionId);
346
+ sessionCodeBlocks.forEach((blockData) => {
233
347
  this.cancelApply(blockData);
234
348
  });
235
349
  }
@@ -251,12 +365,13 @@ class BaseApplyService extends ide_core_browser_1.WithEventBus {
251
365
  }
252
366
  }
253
367
  processAll(uri, type) {
254
- var _a, _b;
255
- const codeBlock = this.getUriPendingCodeBlock(uri);
256
- if (!codeBlock) {
368
+ var _a, _b, _c;
369
+ const codeBlocks = (_a = this.getUriCodeBlocks(uri)) === null || _a === void 0 ? void 0 : _a.filter((block) => block.status === 'pending');
370
+ if (!(codeBlocks === null || codeBlocks === void 0 ? void 0 : codeBlocks.length)) {
257
371
  throw new Error('No pending code block found');
258
372
  }
259
- const decorationModel = (_b = (_a = this.activePreviewer) === null || _a === void 0 ? void 0 : _a.getNode()) === null || _b === void 0 ? void 0 : _b.livePreviewDiffDecorationModel;
373
+ const decorationModel = (_c = (_b = this.activePreviewerMap
374
+ .get(codeBlocks[0].relativePath)) === null || _b === void 0 ? void 0 : _b.getNode()) === null || _c === void 0 ? void 0 : _c.livePreviewDiffDecorationModel;
260
375
  if (!decorationModel) {
261
376
  throw new Error('No active previewer found');
262
377
  }
@@ -267,35 +382,40 @@ class BaseApplyService extends ide_core_browser_1.WithEventBus {
267
382
  decorationModel.discardUnProcessed();
268
383
  }
269
384
  this.editorService.save(uri);
270
- codeBlock.status = type === 'accept' ? 'success' : 'cancelled';
271
- this.updateCodeBlock(codeBlock);
385
+ codeBlocks.forEach((codeBlock) => {
386
+ codeBlock.status = type === 'accept' ? 'success' : 'cancelled';
387
+ // TODO: 批量更新
388
+ this.updateCodeBlock(codeBlock);
389
+ });
272
390
  }
273
- listenPartialEdit(editor, codeBlock, fullOriginalContent) {
391
+ listenPartialEdit(model, codeBlock) {
274
392
  const deferred = new ide_utils_1.Deferred();
393
+ const uriString = model.uri.toString();
275
394
  const toDispose = this.inlineDiffService.onPartialEdit((event) => {
276
395
  // TODO 支持自动保存
277
- if (event.totalPartialEditCount === event.resolvedPartialEditCount) {
396
+ if (event.totalPartialEditCount === event.resolvedPartialEditCount &&
397
+ event.uri.path === model.uri.path.toString()) {
278
398
  if (event.acceptPartialEditCount > 0) {
279
399
  codeBlock.status = 'success';
280
- const appliedResult = editor.getModel().getValue();
281
- const diffResult = (0, diff_1.createPatch)(codeBlock.relativePath, fullOriginalContent, appliedResult)
282
- .split('\n')
283
- .slice(4)
284
- .join('\n');
285
- const rangesFromDiffHunk = diffResult
286
- .split('\n')
287
- .map((line) => {
288
- if (line.startsWith('@@')) {
289
- const [, , , start, end] = line.match(/@@ -(\d+),(\d+) \+(\d+),(\d+) @@/);
290
- return new ide_monaco_1.Range(parseInt(start, 10), 0, parseInt(end, 10), 0);
291
- }
292
- return null;
293
- })
294
- .filter((range) => range !== null);
295
- const diagnosticInfos = this.getDiagnosticInfos(editor.getModel().uri.toString(), rangesFromDiffHunk);
400
+ const appliedResult = model.getValue();
401
+ const { diff, rangesFromDiffHunk } = this.getDiffResult(codeBlock.originalCode, appliedResult, codeBlock.relativePath);
402
+ const diagnosticInfos = this.getDiagnosticInfos(model.uri.toString(), rangesFromDiffHunk);
296
403
  // 移除开头的几个固定信息,避免浪费 tokens
404
+ this.aiReporter.send({
405
+ msgType: ide_core_browser_1.AIServiceType.Chat,
406
+ actionType: ide_core_browser_1.ActionTypeEnum.Accept,
407
+ actionSource: ide_core_browser_1.ActionSourceEnum.Chat,
408
+ sessionId: this.chatInternalService.sessionModel.sessionId,
409
+ isReceive: true,
410
+ isDrop: false,
411
+ code: codeBlock.codeEdit,
412
+ message: JSON.stringify({
413
+ diff,
414
+ diagnosticInfos,
415
+ }),
416
+ });
297
417
  deferred.resolve({
298
- diff: diffResult,
418
+ diff,
299
419
  diagnosticInfos,
300
420
  });
301
421
  }
@@ -303,12 +423,40 @@ class BaseApplyService extends ide_core_browser_1.WithEventBus {
303
423
  // 用户全部取消
304
424
  codeBlock.status = 'cancelled';
305
425
  deferred.resolve();
426
+ this.aiReporter.send({
427
+ msgType: ide_core_browser_1.AIServiceType.Chat,
428
+ actionType: ide_core_browser_1.ActionTypeEnum.Discard,
429
+ actionSource: ide_core_browser_1.ActionSourceEnum.Chat,
430
+ sessionId: this.chatInternalService.sessionModel.sessionId,
431
+ isReceive: false,
432
+ isDrop: true,
433
+ code: codeBlock.codeEdit,
434
+ originCode: codeBlock.originalCode,
435
+ });
306
436
  }
307
- toDispose.dispose();
437
+ this.editorListenerMap.disposeKey(uriString);
308
438
  }
309
439
  });
440
+ this.editorListenerMap.set(uriString, toDispose);
310
441
  return deferred.promise;
311
442
  }
443
+ getDiffResult(originalContent, appliedResult, relativePath) {
444
+ const diffResult = (0, diff_1.createPatch)(relativePath, originalContent, appliedResult).split('\n').slice(4).join('\n');
445
+ const rangesFromDiffHunk = diffResult
446
+ .split('\n')
447
+ .map((line) => {
448
+ if (line.startsWith('@@')) {
449
+ const [, , , start, end] = line.match(/@@ -(\d+),(\d+) \+(\d+),(\d+) @@/);
450
+ return new ide_monaco_1.Range(parseInt(start, 10), 0, parseInt(end, 10), 0);
451
+ }
452
+ return null;
453
+ })
454
+ .filter((range) => range !== null);
455
+ return {
456
+ diff: diffResult,
457
+ rangesFromDiffHunk,
458
+ };
459
+ }
312
460
  // TODO: 支持使用内存中的document获取诊断信息,实现并行apply accept
313
461
  getDiagnosticInfos(uri, ranges) {
314
462
  const markers = this.markerService.getManager().getMarkers({ resource: uri });
@@ -317,10 +465,6 @@ class BaseApplyService extends ide_core_browser_1.WithEventBus {
317
465
  }
318
466
  }
319
467
  exports.BaseApplyService = BaseApplyService;
320
- tslib_1.__decorate([
321
- (0, di_1.Autowired)(ReadFile_1.FileHandler),
322
- tslib_1.__metadata("design:type", ReadFile_1.FileHandler)
323
- ], BaseApplyService.prototype, "fileHandler", void 0);
324
468
  tslib_1.__decorate([
325
469
  (0, di_1.Autowired)(common_1.IChatInternalService),
326
470
  tslib_1.__metadata("design:type", chat_internal_service_1.ChatInternalService)
@@ -341,6 +485,14 @@ tslib_1.__decorate([
341
485
  (0, di_1.Autowired)(ide_markers_1.IMarkerService),
342
486
  tslib_1.__metadata("design:type", Object)
343
487
  ], BaseApplyService.prototype, "markerService", void 0);
488
+ tslib_1.__decorate([
489
+ (0, di_1.Autowired)(browser_1.IEditorDocumentModelService),
490
+ tslib_1.__metadata("design:type", Object)
491
+ ], BaseApplyService.prototype, "editorDocumentModelService", void 0);
492
+ tslib_1.__decorate([
493
+ (0, di_1.Autowired)(ide_core_browser_1.IAIReporter),
494
+ tslib_1.__metadata("design:type", Object)
495
+ ], BaseApplyService.prototype, "aiReporter", void 0);
344
496
  tslib_1.__decorate([
345
497
  (0, ide_core_browser_1.OnEvent)(browser_1.EditorGroupCloseEvent),
346
498
  tslib_1.__metadata("design:type", Function),
@@ -1 +1 @@
1
- {"version":3,"file":"base-apply.service.js","sourceRoot":"","sources":["../../../src/browser/mcp/base-apply.service.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"base-apply.service.js","sourceRoot":"","sources":["../../../src/browser/mcp/base-apply.service.ts"],"names":[],"mappings":"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"}