@opensumi/ide-ai-native 3.7.2-next-1740107209.0 → 3.7.2-next-1740365741.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 (180) hide show
  1. package/lib/browser/ai-core.contribution.d.ts +3 -1
  2. package/lib/browser/ai-core.contribution.d.ts.map +1 -1
  3. package/lib/browser/ai-core.contribution.js +13 -1
  4. package/lib/browser/ai-core.contribution.js.map +1 -1
  5. package/lib/browser/chat/chat-manager.service.d.ts +30 -2
  6. package/lib/browser/chat/chat-manager.service.d.ts.map +1 -1
  7. package/lib/browser/chat/chat-manager.service.js +45 -1
  8. package/lib/browser/chat/chat-manager.service.js.map +1 -1
  9. package/lib/browser/chat/chat-model.d.ts +33 -6
  10. package/lib/browser/chat/chat-model.d.ts.map +1 -1
  11. package/lib/browser/chat/chat-model.js +50 -29
  12. package/lib/browser/chat/chat-model.js.map +1 -1
  13. package/lib/browser/chat/chat-proxy.service.d.ts +1 -1
  14. package/lib/browser/chat/chat-proxy.service.d.ts.map +1 -1
  15. package/lib/browser/chat/chat-proxy.service.js +1 -1
  16. package/lib/browser/chat/chat-proxy.service.js.map +1 -1
  17. package/lib/browser/chat/chat.internal.service.d.ts +4 -2
  18. package/lib/browser/chat/chat.internal.service.d.ts.map +1 -1
  19. package/lib/browser/chat/chat.internal.service.js +31 -12
  20. package/lib/browser/chat/chat.internal.service.js.map +1 -1
  21. package/lib/browser/chat/chat.module.less +8 -42
  22. package/lib/browser/chat/chat.view.d.ts.map +1 -1
  23. package/lib/browser/chat/chat.view.js +85 -31
  24. package/lib/browser/chat/chat.view.js.map +1 -1
  25. package/lib/browser/components/ChatContext/index.d.ts.map +1 -1
  26. package/lib/browser/components/ChatContext/index.js +18 -2
  27. package/lib/browser/components/ChatContext/index.js.map +1 -1
  28. package/lib/browser/components/ChatContext/style.module.less +12 -0
  29. package/lib/browser/components/ChatHistory.d.ts +21 -0
  30. package/lib/browser/components/ChatHistory.d.ts.map +1 -0
  31. package/lib/browser/components/ChatHistory.js +148 -0
  32. package/lib/browser/components/ChatHistory.js.map +1 -0
  33. package/lib/browser/components/ChatReply.d.ts.map +1 -1
  34. package/lib/browser/components/ChatReply.js +3 -1
  35. package/lib/browser/components/ChatReply.js.map +1 -1
  36. package/lib/browser/components/ChatThinking.js +1 -1
  37. package/lib/browser/components/ChatThinking.js.map +1 -1
  38. package/lib/browser/components/ChatToolRender.d.ts +1 -1
  39. package/lib/browser/components/ChatToolRender.d.ts.map +1 -1
  40. package/lib/browser/components/ChatToolRender.js +15 -18
  41. package/lib/browser/components/ChatToolRender.js.map +1 -1
  42. package/lib/browser/components/chat-history.css +139 -0
  43. package/lib/browser/components/components.module.less +2 -2
  44. package/lib/browser/components/utils.d.ts +2 -2
  45. package/lib/browser/context/llm-context.service.d.ts +1 -0
  46. package/lib/browser/context/llm-context.service.d.ts.map +1 -1
  47. package/lib/browser/context/llm-context.service.js +24 -18
  48. package/lib/browser/context/llm-context.service.js.map +1 -1
  49. package/lib/browser/index.d.ts.map +1 -1
  50. package/lib/browser/index.js +5 -13
  51. package/lib/browser/index.js.map +1 -1
  52. package/lib/browser/layout/layout.module.less +1 -1
  53. package/lib/browser/mcp/mcp-server.feature.registry.d.ts.map +1 -1
  54. package/lib/browser/mcp/mcp-server.feature.registry.js +2 -1
  55. package/lib/browser/mcp/mcp-server.feature.registry.js.map +1 -1
  56. package/lib/browser/mcp/tools/components/SearchResult.d.ts +11 -0
  57. package/lib/browser/mcp/tools/components/SearchResult.d.ts.map +1 -0
  58. package/lib/browser/mcp/tools/components/SearchResult.js +60 -0
  59. package/lib/browser/mcp/tools/components/SearchResult.js.map +1 -0
  60. package/lib/browser/mcp/tools/components/Terminal.d.ts +4 -0
  61. package/lib/browser/mcp/tools/components/Terminal.d.ts.map +1 -0
  62. package/lib/browser/mcp/tools/components/Terminal.js +64 -0
  63. package/lib/browser/mcp/tools/components/Terminal.js.map +1 -0
  64. package/lib/browser/mcp/tools/components/index.module.less +101 -0
  65. package/lib/browser/mcp/tools/{findFilesByNameSubstring.d.ts → fileSearch.d.ts} +3 -2
  66. package/lib/browser/mcp/tools/fileSearch.d.ts.map +1 -0
  67. package/lib/browser/mcp/tools/fileSearch.js +94 -0
  68. package/lib/browser/mcp/tools/fileSearch.js.map +1 -0
  69. package/lib/browser/mcp/tools/{getFileTextByPath.d.ts → grepSearch.d.ts} +4 -3
  70. package/lib/browser/mcp/tools/grepSearch.d.ts.map +1 -0
  71. package/lib/browser/mcp/tools/grepSearch.js +118 -0
  72. package/lib/browser/mcp/tools/grepSearch.js.map +1 -0
  73. package/lib/browser/mcp/tools/handlers/RunCommand.d.ts +43 -0
  74. package/lib/browser/mcp/tools/handlers/RunCommand.d.ts.map +1 -0
  75. package/lib/browser/mcp/tools/handlers/RunCommand.js +104 -0
  76. package/lib/browser/mcp/tools/handlers/RunCommand.js.map +1 -0
  77. package/lib/browser/mcp/tools/listDir.d.ts.map +1 -1
  78. package/lib/browser/mcp/tools/listDir.js +1 -0
  79. package/lib/browser/mcp/tools/listDir.js.map +1 -1
  80. package/lib/browser/mcp/tools/readFile.d.ts.map +1 -1
  81. package/lib/browser/mcp/tools/readFile.js +1 -0
  82. package/lib/browser/mcp/tools/readFile.js.map +1 -1
  83. package/lib/browser/mcp/tools/runTerminalCmd.d.ts +1 -6
  84. package/lib/browser/mcp/tools/runTerminalCmd.d.ts.map +1 -1
  85. package/lib/browser/mcp/tools/runTerminalCmd.js +9 -55
  86. package/lib/browser/mcp/tools/runTerminalCmd.js.map +1 -1
  87. package/lib/browser/model/msg-history-manager.d.ts +15 -0
  88. package/lib/browser/model/msg-history-manager.d.ts.map +1 -1
  89. package/lib/browser/model/msg-history-manager.js +28 -9
  90. package/lib/browser/model/msg-history-manager.js.map +1 -1
  91. package/lib/common/mcp-server-manager.d.ts +1 -1
  92. package/lib/common/mcp-server-manager.d.ts.map +1 -1
  93. package/lib/common/mcp-server-manager.js.map +1 -1
  94. package/lib/common/tool-invocation-registry.d.ts +2 -1
  95. package/lib/common/tool-invocation-registry.d.ts.map +1 -1
  96. package/lib/common/tool-invocation-registry.js.map +1 -1
  97. package/lib/node/base-language-model.d.ts.map +1 -1
  98. package/lib/node/base-language-model.js +1 -1
  99. package/lib/node/base-language-model.js.map +1 -1
  100. package/lib/node/mcp/sumi-mcp-server.d.ts +1 -1
  101. package/lib/node/mcp/sumi-mcp-server.d.ts.map +1 -1
  102. package/lib/node/mcp/sumi-mcp-server.js +5 -2
  103. package/lib/node/mcp/sumi-mcp-server.js.map +1 -1
  104. package/lib/node/mcp-server-manager-impl.d.ts +1 -1
  105. package/lib/node/mcp-server-manager-impl.d.ts.map +1 -1
  106. package/lib/node/mcp-server-manager-impl.js +4 -4
  107. package/lib/node/mcp-server-manager-impl.js.map +1 -1
  108. package/lib/node/mcp-server.d.ts +2 -2
  109. package/lib/node/mcp-server.d.ts.map +1 -1
  110. package/lib/node/mcp-server.js +2 -1
  111. package/lib/node/mcp-server.js.map +1 -1
  112. package/package.json +23 -22
  113. package/src/browser/ai-core.contribution.ts +13 -1
  114. package/src/browser/chat/chat-manager.service.ts +83 -7
  115. package/src/browser/chat/chat-model.ts +62 -12
  116. package/src/browser/chat/chat-proxy.service.ts +1 -1
  117. package/src/browser/chat/chat.internal.service.ts +23 -5
  118. package/src/browser/chat/chat.module.less +8 -42
  119. package/src/browser/chat/chat.view.tsx +143 -60
  120. package/src/browser/components/ChatContext/index.tsx +19 -3
  121. package/src/browser/components/ChatContext/style.module.less +12 -0
  122. package/src/browser/components/ChatHistory.tsx +292 -0
  123. package/src/browser/components/ChatReply.tsx +5 -1
  124. package/src/browser/components/ChatThinking.tsx +1 -1
  125. package/src/browser/components/ChatToolRender.tsx +13 -15
  126. package/src/browser/components/chat-history.css +139 -0
  127. package/src/browser/components/components.module.less +2 -2
  128. package/src/browser/context/llm-context.service.ts +30 -18
  129. package/src/browser/index.ts +5 -13
  130. package/src/browser/layout/layout.module.less +1 -1
  131. package/src/browser/mcp/mcp-server.feature.registry.ts +2 -1
  132. package/src/browser/mcp/tools/components/SearchResult.tsx +92 -0
  133. package/src/browser/mcp/tools/components/Terminal.tsx +97 -0
  134. package/src/browser/mcp/tools/components/index.module.less +101 -0
  135. package/src/browser/mcp/tools/fileSearch.ts +99 -0
  136. package/src/browser/mcp/tools/grepSearch.ts +121 -0
  137. package/src/browser/mcp/tools/handlers/RunCommand.ts +115 -0
  138. package/src/browser/mcp/tools/listDir.ts +1 -0
  139. package/src/browser/mcp/tools/readFile.ts +1 -0
  140. package/src/browser/mcp/tools/runTerminalCmd.ts +7 -68
  141. package/src/browser/model/msg-history-manager.ts +34 -1
  142. package/src/common/mcp-server-manager.ts +18 -13
  143. package/src/common/tool-invocation-registry.ts +122 -124
  144. package/src/node/base-language-model.ts +3 -2
  145. package/src/node/mcp/sumi-mcp-server.ts +5 -2
  146. package/src/node/mcp-server-manager-impl.ts +11 -4
  147. package/src/node/mcp-server.ts +3 -2
  148. package/lib/browser/mcp/tools/findFilesByNameSubstring.d.ts.map +0 -1
  149. package/lib/browser/mcp/tools/findFilesByNameSubstring.js +0 -91
  150. package/lib/browser/mcp/tools/findFilesByNameSubstring.js.map +0 -1
  151. package/lib/browser/mcp/tools/getCurrentFilePath.d.ts +0 -8
  152. package/lib/browser/mcp/tools/getCurrentFilePath.d.ts.map +0 -1
  153. package/lib/browser/mcp/tools/getCurrentFilePath.js +0 -48
  154. package/lib/browser/mcp/tools/getCurrentFilePath.js.map +0 -1
  155. package/lib/browser/mcp/tools/getFileTextByPath.d.ts.map +0 -1
  156. package/lib/browser/mcp/tools/getFileTextByPath.js +0 -96
  157. package/lib/browser/mcp/tools/getFileTextByPath.js.map +0 -1
  158. package/lib/browser/mcp/tools/getOpenEditorFileText.d.ts +0 -8
  159. package/lib/browser/mcp/tools/getOpenEditorFileText.d.ts.map +0 -1
  160. package/lib/browser/mcp/tools/getOpenEditorFileText.js +0 -49
  161. package/lib/browser/mcp/tools/getOpenEditorFileText.js.map +0 -1
  162. package/lib/browser/mcp/tools/getSelectedText.d.ts +0 -8
  163. package/lib/browser/mcp/tools/getSelectedText.d.ts.map +0 -1
  164. package/lib/browser/mcp/tools/getSelectedText.js +0 -56
  165. package/lib/browser/mcp/tools/getSelectedText.js.map +0 -1
  166. package/lib/browser/mcp/tools/replaceOpenEditorFile.d.ts +0 -8
  167. package/lib/browser/mcp/tools/replaceOpenEditorFile.d.ts.map +0 -1
  168. package/lib/browser/mcp/tools/replaceOpenEditorFile.js +0 -80
  169. package/lib/browser/mcp/tools/replaceOpenEditorFile.js.map +0 -1
  170. package/lib/browser/mcp/tools/replaceOpenEditorFileByDiffPreviewer.d.ts +0 -8
  171. package/lib/browser/mcp/tools/replaceOpenEditorFileByDiffPreviewer.d.ts.map +0 -1
  172. package/lib/browser/mcp/tools/replaceOpenEditorFileByDiffPreviewer.js +0 -83
  173. package/lib/browser/mcp/tools/replaceOpenEditorFileByDiffPreviewer.js.map +0 -1
  174. package/src/browser/mcp/tools/findFilesByNameSubstring.ts +0 -92
  175. package/src/browser/mcp/tools/getCurrentFilePath.ts +0 -48
  176. package/src/browser/mcp/tools/getFileTextByPath.ts +0 -96
  177. package/src/browser/mcp/tools/getOpenEditorFileText.ts +0 -49
  178. package/src/browser/mcp/tools/getSelectedText.ts +0 -56
  179. package/src/browser/mcp/tools/replaceOpenEditorFile.ts +0 -81
  180. package/src/browser/mcp/tools/replaceOpenEditorFileByDiffPreviewer.ts +0 -90
@@ -14,28 +14,32 @@ let LLMContextServiceImpl = class LLMContextServiceImpl extends event_decorator_
14
14
  constructor() {
15
15
  super(...arguments);
16
16
  this.isAutoCollecting = false;
17
- this.contextFiles = new Map();
17
+ this.contextFiles = [];
18
+ this.maxFiles = 10; // 上下文的最大长度限制
18
19
  this.onDidContextFilesChangeEmitter = new utils_1.Emitter();
19
20
  this.onDidContextFilesChangeEvent = this.onDidContextFilesChangeEmitter.event;
20
21
  }
21
22
  addFileToContext(uri, selection, isManual = true) {
22
- this.contextFiles.set(uri.toString(), {
23
- uri,
24
- selection,
25
- isManual,
26
- });
23
+ this.removeFileFromContext(uri);
24
+ this.contextFiles.push({ uri, selection, isManual });
25
+ if (this.contextFiles.length > this.maxFiles) {
26
+ this.contextFiles.shift();
27
+ }
27
28
  this.onDidContextFilesChangeEmitter.fire(this.getAllContextFiles());
28
29
  }
29
30
  cleanFileContext() {
30
- this.contextFiles.clear();
31
+ this.contextFiles = [];
31
32
  this.onDidContextFilesChangeEmitter.fire(this.getAllContextFiles());
32
33
  }
33
34
  getAllContextFiles() {
34
- return Array.from(this.contextFiles.values());
35
+ return [...this.contextFiles];
35
36
  }
36
37
  removeFileFromContext(uri) {
37
- this.contextFiles.delete(uri.toString());
38
- this.onDidContextFilesChangeEmitter.fire(this.getAllContextFiles());
38
+ const index = this.contextFiles.findIndex((file) => file.uri.toString() === uri.toString());
39
+ if (index > -1) {
40
+ this.contextFiles.splice(index, 1);
41
+ this.onDidContextFilesChangeEmitter.fire(this.getAllContextFiles());
42
+ }
39
43
  }
40
44
  startAutoCollection() {
41
45
  if (this.isAutoCollecting) {
@@ -45,27 +49,24 @@ let LLMContextServiceImpl = class LLMContextServiceImpl extends event_decorator_
45
49
  this.startAutoCollectionInternal();
46
50
  }
47
51
  startAutoCollectionInternal() {
48
- // 文件打开
49
52
  this.disposables.push(this.eventBus.on(types_1.EditorDocumentModelCreationEvent, (event) => {
50
53
  if (event.payload.uri.scheme !== 'file') {
51
54
  return;
52
55
  }
53
- // TODO: 是否自动添加文件到上下文?
56
+ // FIXME: 暂时不自动添加
54
57
  // this.addFileToContext(event.payload.uri);
55
58
  }));
56
- // 删除
57
59
  this.disposables.push(this.eventBus.on(types_1.EditorDocumentModelRemovalEvent, (event) => {
58
60
  if (event.payload.scheme !== 'file') {
59
61
  return;
60
62
  }
61
63
  }));
62
- // 保存
63
64
  this.disposables.push(this.eventBus.on(types_1.EditorDocumentModelSavedEvent, (event) => {
64
65
  if (event.payload.scheme !== 'file') {
65
66
  return;
66
67
  }
68
+ // TODO: 保存文件的逻辑
67
69
  }));
68
- // 光标选中
69
70
  this.disposables.push(this.eventBus.on(types_2.EditorSelectionChangeEvent, (event) => {
70
71
  if (event.payload.selections.length > 0) {
71
72
  const selection = [
@@ -73,8 +74,7 @@ let LLMContextServiceImpl = class LLMContextServiceImpl extends event_decorator_
73
74
  event.payload.selections[0].positionLineNumber,
74
75
  ].sort();
75
76
  if (selection[0] === selection[1]) {
76
- // TODO: 是否自动添加文件到上下文?
77
- // this.addFileToContext(event.payload.editorUri, undefined);
77
+ this.addFileToContext(event.payload.editorUri, undefined);
78
78
  }
79
79
  else {
80
80
  this.addFileToContext(event.payload.editorUri, selection.sort((a, b) => a - b));
@@ -89,7 +89,13 @@ let LLMContextServiceImpl = class LLMContextServiceImpl extends event_decorator_
89
89
  const files = this.getAllContextFiles();
90
90
  const recentlyViewFiles = files
91
91
  .filter((v) => !v.selection)
92
- .map((file) => utils_1.URI.file(this.appConfig.workspaceDir).relative(file.uri).toString())
92
+ .map((file) => {
93
+ const relativePath = utils_1.URI.file(this.appConfig.workspaceDir).relative(file.uri);
94
+ if (relativePath) {
95
+ return relativePath.toString();
96
+ }
97
+ return file.uri.parent.toString();
98
+ })
93
99
  .filter(Boolean);
94
100
  const attachedFiles = files
95
101
  .filter((v) => v.selection)
@@ -1 +1 @@
1
- {"version":3,"file":"llm-context.service.js","sourceRoot":"","sources":["../../../src/browser/context/llm-context.service.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"llm-context.service.js","sourceRoot":"","sources":["../../../src/browser/context/llm-context.service.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/browser/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAyB,QAAQ,EAAE,MAAM,cAAc,CAAC;AAC/D,OAAO,EAGL,qBAAqB,EACrB,aAAa,EASd,MAAM,4BAA4B,CAAC;AAgEpC,qBACa,cAAe,SAAQ,aAAa;IAE/C,SAAS,CAAC,QAAQ,CAAC,cAAc,EAAE,qBAAqB,CAAC;;IAOzD,oBAAoB,WAAqD;IACzE,SAAS,EAAE,QAAQ,EAAE,CAoHnB;IAEF,YAAY;;;;;;;;;;;;SAcV;CACH"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/browser/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAyB,QAAQ,EAAE,MAAM,cAAc,CAAC;AAC/D,OAAO,EAGL,qBAAqB,EACrB,aAAa,EASd,MAAM,4BAA4B,CAAC;AA4DpC,qBACa,cAAe,SAAQ,aAAa;IAE/C,SAAS,CAAC,QAAQ,CAAC,cAAc,EAAE,qBAAqB,CAAC;;IAOzD,oBAAoB,WAAqD;IACzE,SAAS,EAAE,QAAQ,EAAE,CAgHnB;IAEF,YAAY;;;;;;;;;;;;SAcV;CACH"}
@@ -36,16 +36,12 @@ const mcp_server_proxy_service_1 = require("./mcp/mcp-server-proxy.service");
36
36
  const mcp_server_feature_registry_1 = require("./mcp/mcp-server.feature.registry");
37
37
  const createNewFileWithText_1 = require("./mcp/tools/createNewFileWithText");
38
38
  const editFile_1 = require("./mcp/tools/editFile");
39
- const findFilesByNameSubstring_1 = require("./mcp/tools/findFilesByNameSubstring");
40
- const getCurrentFilePath_1 = require("./mcp/tools/getCurrentFilePath");
39
+ const fileSearch_1 = require("./mcp/tools/fileSearch");
41
40
  const getDiagnosticsByPath_1 = require("./mcp/tools/getDiagnosticsByPath");
42
- const getFileTextByPath_1 = require("./mcp/tools/getFileTextByPath");
43
41
  const getOpenEditorFileDiagnostics_1 = require("./mcp/tools/getOpenEditorFileDiagnostics");
44
- const getOpenEditorFileText_1 = require("./mcp/tools/getOpenEditorFileText");
45
- const getSelectedText_1 = require("./mcp/tools/getSelectedText");
42
+ const grepSearch_1 = require("./mcp/tools/grepSearch");
46
43
  const listDir_1 = require("./mcp/tools/listDir");
47
44
  const readFile_1 = require("./mcp/tools/readFile");
48
- const replaceOpenEditorFileByDiffPreviewer_1 = require("./mcp/tools/replaceOpenEditorFileByDiffPreviewer");
49
45
  const runTerminalCmd_1 = require("./mcp/tools/runTerminalCmd");
50
46
  const preferences_1 = require("./preferences");
51
47
  const types_1 = require("./types");
@@ -69,15 +65,11 @@ let AINativeModule = class AINativeModule extends ide_core_browser_1.BrowserModu
69
65
  readFile_1.ReadFileTool,
70
66
  editFile_1.EditFileTool,
71
67
  createNewFileWithText_1.CreateNewFileWithTextTool,
72
- getSelectedText_1.GetSelectedTextTool,
73
68
  getOpenEditorFileDiagnostics_1.GetOpenEditorFileDiagnosticsTool,
74
- getOpenEditorFileText_1.GetOpenEditorFileTextTool,
75
- getFileTextByPath_1.GetFileTextByPathTool,
76
- getCurrentFilePath_1.GetCurrentFilePathTool,
77
- findFilesByNameSubstring_1.FindFilesByNameSubstringTool,
69
+ fileSearch_1.FileSearchTool,
70
+ grepSearch_1.GrepSearchTool,
78
71
  getDiagnosticsByPath_1.GetDiagnosticsByPathTool,
79
72
  runTerminalCmd_1.RunTerminalCommandTool,
80
- replaceOpenEditorFileByDiffPreviewer_1.ReplaceOpenEditorFileByDiffPreviewerTool,
81
73
  // MCP Server Contributions END
82
74
  // Context Service
83
75
  llm_context_contribution_1.LlmContextContribution,
@@ -167,7 +159,7 @@ let AINativeModule = class AINativeModule extends ide_core_browser_1.BrowserModu
167
159
  },
168
160
  {
169
161
  token: context_prompt_provider_1.ChatAgentPromptProvider,
170
- useValue: context_prompt_provider_1.DefaultChatAgentPromptProvider,
162
+ useClass: context_prompt_provider_1.DefaultChatAgentPromptProvider,
171
163
  },
172
164
  ];
173
165
  this.backServices = [
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/browser/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/browser/index.ts"],"names":[],"mappings":"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"}
@@ -23,7 +23,7 @@
23
23
  .rce-mbox-text {
24
24
  line-height: 18px;
25
25
  width: inherit;
26
- font-size: 14px;
26
+ font-size: 12px;
27
27
  }
28
28
 
29
29
  .rce-smsg {
@@ -1 +1 @@
1
- {"version":3,"file":"mcp-server.feature.registry.d.ts","sourceRoot":"","sources":["../../../src/browser/mcp/mcp-server.feature.registry.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,kBAAkB,EAAE,4BAA4B,EAAa,iBAAiB,EAAE,MAAM,UAAU,CAAC;AAU1G,qBACa,iBAAkB,YAAW,kBAAkB;IAC1D,OAAO,CAAC,KAAK,CAA2B;IACxC,OAAO,CAAC,cAAc,CAA8D;IAGpF,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAU;IAErC,OAAO,KAAK,MAAM,GAEjB;IAED,UAAU,CAAC,IAAI,EAAE,MAAM,EAAE,UAAU,SAAiB,GAAG,iBAAiB,GAAG,SAAS;IAIpF,eAAe,CAAC,IAAI,EAAE,iBAAiB,GAAG,IAAI;IAI9C,qBAAqB,CACnB,IAAI,EAAE,MAAM,EACZ,SAAS,EAAE,KAAK,CAAC,EAAE,CAAC,4BAA4B,CAAC,EACjD,UAAU,SAAiB,GAC1B,IAAI;IAIP,gBAAgB,CAAC,IAAI,EAAE,MAAM,GAAG,KAAK,CAAC,EAAE,CAAC,4BAA4B,CAAC,GAAG,SAAS;IAIlF,WAAW,IAAI,iBAAiB,EAAE;IAI5B,WAAW,CACf,IAAI,EAAE,MAAM,EACZ,IAAI,EAAE,GAAG,GACR,OAAO,CAAC;QACT,OAAO,EAAE;YAAE,IAAI,EAAE,MAAM,CAAC;YAAC,IAAI,EAAE,MAAM,CAAA;SAAE,EAAE,CAAC;QAC1C,OAAO,CAAC,EAAE,OAAO,CAAC;KACnB,CAAC;CAkBH"}
1
+ {"version":3,"file":"mcp-server.feature.registry.d.ts","sourceRoot":"","sources":["../../../src/browser/mcp/mcp-server.feature.registry.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,kBAAkB,EAAE,4BAA4B,EAAa,iBAAiB,EAAE,MAAM,UAAU,CAAC;AAU1G,qBACa,iBAAkB,YAAW,kBAAkB;IAC1D,OAAO,CAAC,KAAK,CAA2B;IACxC,OAAO,CAAC,cAAc,CAA8D;IAGpF,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAU;IAErC,OAAO,KAAK,MAAM,GAEjB;IAED,UAAU,CAAC,IAAI,EAAE,MAAM,EAAE,UAAU,SAAiB,GAAG,iBAAiB,GAAG,SAAS;IAIpF,eAAe,CAAC,IAAI,EAAE,iBAAiB,GAAG,IAAI;IAI9C,qBAAqB,CACnB,IAAI,EAAE,MAAM,EACZ,SAAS,EAAE,KAAK,CAAC,EAAE,CAAC,4BAA4B,CAAC,EACjD,UAAU,SAAiB,GAC1B,IAAI;IAIP,gBAAgB,CAAC,IAAI,EAAE,MAAM,GAAG,KAAK,CAAC,EAAE,CAAC,4BAA4B,CAAC,GAAG,SAAS;IAIlF,WAAW,IAAI,iBAAiB,EAAE;IAI5B,WAAW,CACf,IAAI,EAAE,MAAM,EACZ,IAAI,EAAE,GAAG,GACR,OAAO,CAAC;QACT,OAAO,EAAE;YAAE,IAAI,EAAE,MAAM,CAAC;YAAC,IAAI,EAAE,MAAM,CAAA;SAAE,EAAE,CAAC;QAC1C,OAAO,CAAC,EAAE,OAAO,CAAC;KACnB,CAAC;CAmBH"}
@@ -44,8 +44,9 @@ let MCPServerRegistry = class MCPServerRegistry {
44
44
  throw new Error(`MCP tool ${name} not found`);
45
45
  }
46
46
  // 统一校验并转换
47
+ const toolCallId = args.toolCallId;
47
48
  args = tool.inputSchema.parse(args);
48
- return await tool.handler(args, this.logger);
49
+ return await tool.handler({ ...args, toolCallId }, this.logger);
49
50
  }
50
51
  catch (error) {
51
52
  // eslint-disable-next-line no-console
@@ -1 +1 @@
1
- {"version":3,"file":"mcp-server.feature.registry.js","sourceRoot":"","sources":["../../../src/browser/mcp/mcp-server.feature.registry.ts"],"names":[],"mappings":";;;;AAAA,iCAAiC;AACjC,qCAAqD;AACrD,+DAAoD;AAEpD,8CAAiD;AAGjD,MAAM,aAAa;IACjB,YAA6B,MAAe;QAAf,WAAM,GAAN,MAAM,CAAS;IAAG,CAAC;IAEhD,UAAU,CAAC,OAAe;QACxB,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;IAC3B,CAAC;CACF;AAGM,IAAM,iBAAiB,GAAvB,MAAM,iBAAiB;IAAvB;QACG,UAAK,GAAwB,EAAE,CAAC;QAChC,mBAAc,GAA2D,EAAE,CAAC;IAyDtF,CAAC;IApDC,IAAY,MAAM;QAChB,OAAO,IAAI,aAAa,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;IAC5C,CAAC;IAED,UAAU,CAAC,IAAY,EAAE,UAAU,GAAG,cAAc;QAClD,OAAO,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAA,mBAAW,EAAC,IAAI,CAAC,IAAI,EAAE,UAAU,CAAC,KAAK,IAAI,CAAC,CAAC;IAChF,CAAC;IAED,eAAe,CAAC,IAAuB;QACrC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IACxB,CAAC;IAED,qBAAqB,CACnB,IAAY,EACZ,SAAiD,EACjD,UAAU,GAAG,cAAc;QAE3B,IAAI,CAAC,cAAc,CAAC,IAAA,mBAAW,EAAC,IAAI,EAAE,UAAU,CAAC,CAAC,GAAG,SAAS,CAAC;IACjE,CAAC;IAED,gBAAgB,CAAC,IAAY;QAC3B,OAAO,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,CAAC;IACnC,CAAC;IAED,WAAW;QACT,OAAO,IAAI,CAAC,KAAK,CAAC;IACpB,CAAC;IAED,KAAK,CAAC,WAAW,CACf,IAAY,EACZ,IAAS;QAKT,IAAI,CAAC;YACH,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,IAAI,KAAK,IAAI,CAAC,CAAC;YAC3D,IAAI,CAAC,IAAI,EAAE,CAAC;gBACV,MAAM,IAAI,KAAK,CAAC,YAAY,IAAI,YAAY,CAAC,CAAC;YAChD,CAAC;YACD,UAAU;YACV,IAAI,GAAG,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;YACpC,OAAO,MAAM,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC;QAC/C,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,sCAAsC;YACtC,OAAO,CAAC,KAAK,CAAC,oBAAoB,EAAE,KAAK,CAAC,CAAC;YAC3C,OAAO;gBACL,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,YAAY,IAAI,8BAA8B,KAAK,EAAE,EAAE,CAAC;gBACxF,OAAO,EAAE,IAAI;aACd,CAAC;QACJ,CAAC;IACH,CAAC;CACF,CAAA;AA3DY,8CAAiB;AAKX;IADhB,IAAA,cAAS,EAAC,yBAAO,CAAC;;qDACkB;4BAL1B,iBAAiB;IAD7B,IAAA,eAAU,GAAE;GACA,iBAAiB,CA2D7B"}
1
+ {"version":3,"file":"mcp-server.feature.registry.js","sourceRoot":"","sources":["../../../src/browser/mcp/mcp-server.feature.registry.ts"],"names":[],"mappings":";;;;AAAA,iCAAiC;AACjC,qCAAqD;AACrD,+DAAoD;AAEpD,8CAAiD;AAGjD,MAAM,aAAa;IACjB,YAA6B,MAAe;QAAf,WAAM,GAAN,MAAM,CAAS;IAAG,CAAC;IAEhD,UAAU,CAAC,OAAe;QACxB,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;IAC3B,CAAC;CACF;AAGM,IAAM,iBAAiB,GAAvB,MAAM,iBAAiB;IAAvB;QACG,UAAK,GAAwB,EAAE,CAAC;QAChC,mBAAc,GAA2D,EAAE,CAAC;IA0DtF,CAAC;IArDC,IAAY,MAAM;QAChB,OAAO,IAAI,aAAa,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;IAC5C,CAAC;IAED,UAAU,CAAC,IAAY,EAAE,UAAU,GAAG,cAAc;QAClD,OAAO,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAA,mBAAW,EAAC,IAAI,CAAC,IAAI,EAAE,UAAU,CAAC,KAAK,IAAI,CAAC,CAAC;IAChF,CAAC;IAED,eAAe,CAAC,IAAuB;QACrC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IACxB,CAAC;IAED,qBAAqB,CACnB,IAAY,EACZ,SAAiD,EACjD,UAAU,GAAG,cAAc;QAE3B,IAAI,CAAC,cAAc,CAAC,IAAA,mBAAW,EAAC,IAAI,EAAE,UAAU,CAAC,CAAC,GAAG,SAAS,CAAC;IACjE,CAAC;IAED,gBAAgB,CAAC,IAAY;QAC3B,OAAO,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,CAAC;IACnC,CAAC;IAED,WAAW;QACT,OAAO,IAAI,CAAC,KAAK,CAAC;IACpB,CAAC;IAED,KAAK,CAAC,WAAW,CACf,IAAY,EACZ,IAAS;QAKT,IAAI,CAAC;YACH,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,IAAI,KAAK,IAAI,CAAC,CAAC;YAC3D,IAAI,CAAC,IAAI,EAAE,CAAC;gBACV,MAAM,IAAI,KAAK,CAAC,YAAY,IAAI,YAAY,CAAC,CAAC;YAChD,CAAC;YACD,UAAU;YACV,MAAM,UAAU,GAAG,IAAI,CAAC,UAAU,CAAC;YACnC,IAAI,GAAG,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;YACpC,OAAO,MAAM,IAAI,CAAC,OAAO,CAAC,EAAE,GAAG,IAAI,EAAE,UAAU,EAAE,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC;QAClE,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,sCAAsC;YACtC,OAAO,CAAC,KAAK,CAAC,oBAAoB,EAAE,KAAK,CAAC,CAAC;YAC3C,OAAO;gBACL,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,YAAY,IAAI,8BAA8B,KAAK,EAAE,EAAE,CAAC;gBACxF,OAAO,EAAE,IAAI;aACd,CAAC;QACJ,CAAC;IACH,CAAC;CACF,CAAA;AA5DY,8CAAiB;AAKX;IADhB,IAAA,cAAS,EAAC,yBAAO,CAAC;;qDACkB;4BAL1B,iBAAiB;IAD7B,IAAA,eAAU,GAAE;GACA,iBAAiB,CA4D7B"}
@@ -0,0 +1,11 @@
1
+ import React from 'react';
2
+ interface SearchResultProps {
3
+ args: any;
4
+ toolCallId: string;
5
+ messageId: string;
6
+ toolName: string;
7
+ }
8
+ export declare const FileSearchToolComponent: React.FC<SearchResultProps>;
9
+ export declare const GrepSearchToolComponent: React.FC<SearchResultProps>;
10
+ export {};
11
+ //# sourceMappingURL=SearchResult.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"SearchResult.d.ts","sourceRoot":"","sources":["../../../../../src/browser/mcp/tools/components/SearchResult.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAuC,MAAM,OAAO,CAAC;AAW5D,UAAU,iBAAiB;IACzB,IAAI,EAAE,GAAG,CAAC;IACV,UAAU,EAAE,MAAM,CAAC;IACnB,SAAS,EAAE,MAAM,CAAC;IAClB,QAAQ,EAAE,MAAM,CAAC;CAClB;AAED,eAAO,MAAM,uBAAuB,EAAE,KAAK,CAAC,EAAE,CAAC,iBAAiB,CAE/D,CAAC;AAEF,eAAO,MAAM,uBAAuB,EAAE,KAAK,CAAC,EAAE,CAAC,iBAAiB,CAE/D,CAAC"}
@@ -0,0 +1,60 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.GrepSearchToolComponent = exports.FileSearchToolComponent = void 0;
4
+ const tslib_1 = require("tslib");
5
+ const react_1 = tslib_1.__importStar(require("react"));
6
+ const ide_core_browser_1 = require("@opensumi/ide-core-browser");
7
+ const ide_editor_1 = require("@opensumi/ide-editor");
8
+ const ide_workspace_1 = require("@opensumi/ide-workspace");
9
+ const common_1 = require("../../../../common");
10
+ const index_module_less_1 = tslib_1.__importDefault(require("./index.module.less"));
11
+ const FileSearchToolComponent = ({ args, toolCallId, messageId }) => (react_1.default.createElement(SearchResult, { args: args, toolCallId: toolCallId, messageId: messageId, toolName: 'fileSearch' }));
12
+ exports.FileSearchToolComponent = FileSearchToolComponent;
13
+ const GrepSearchToolComponent = ({ args, toolCallId, messageId }) => (react_1.default.createElement(SearchResult, { args: args, toolCallId: toolCallId, messageId: messageId, toolName: 'grepSearch' }));
14
+ exports.GrepSearchToolComponent = GrepSearchToolComponent;
15
+ const SearchResult = ({ args, toolCallId, toolName, messageId }) => {
16
+ var _a, _b;
17
+ const [isExpanded, setIsExpanded] = (0, react_1.useState)(false);
18
+ const labelService = (0, ide_core_browser_1.useInjectable)(ide_core_browser_1.LabelService);
19
+ const editorService = (0, ide_core_browser_1.useInjectable)(ide_editor_1.WorkbenchEditorService);
20
+ const workspaceService = (0, ide_core_browser_1.useInjectable)(ide_workspace_1.IWorkspaceService);
21
+ const workspaceRoot = (0, react_1.useMemo)(() => { var _a, _b; return ide_core_browser_1.URI.parse((_b = (_a = workspaceService.tryGetRoots()) === null || _a === void 0 ? void 0 : _a[0]) === null || _b === void 0 ? void 0 : _b.uri); }, []);
22
+ const chatService = (0, ide_core_browser_1.useInjectable)(common_1.IChatInternalService);
23
+ const [files, setFiles] = (0, react_1.useState)(((_b = (_a = chatService.sessionModel.history.getMessageAdditional(messageId)) === null || _a === void 0 ? void 0 : _a[toolCallId]) === null || _b === void 0 ? void 0 : _b.files) || []);
24
+ (0, react_1.useEffect)(() => {
25
+ const toDispose = chatService.sessionModel.history.onMessageAdditionalChange((additional) => {
26
+ var _a;
27
+ setFiles(((_a = additional[toolCallId]) === null || _a === void 0 ? void 0 : _a.files) || []);
28
+ });
29
+ return () => {
30
+ toDispose.dispose();
31
+ };
32
+ }, []);
33
+ const handleFileClick = (uri) => {
34
+ // 处理文件点击跳转
35
+ editorService.open(uri);
36
+ };
37
+ const parsedFiles = (0, react_1.useMemo)(() => files.map((file) => {
38
+ const uri = ide_core_browser_1.URI.parse(file);
39
+ const iconClass = labelService.getIcon(uri);
40
+ return {
41
+ iconClass,
42
+ name: uri.path.base,
43
+ path: ide_core_browser_1.path.relative(workspaceRoot.codeUri.fsPath, uri.path.dir.toString()),
44
+ };
45
+ }), [files]);
46
+ return (react_1.default.createElement("div", { className: index_module_less_1.default.container },
47
+ react_1.default.createElement("div", { className: index_module_less_1.default.header, onClick: () => setIsExpanded(!isExpanded) },
48
+ react_1.default.createElement("span", { style: { transform: `rotate(${isExpanded ? '90deg' : '0deg'})` } }, "\u25B6"),
49
+ react_1.default.createElement("span", null,
50
+ toolName === 'fileSearch' ? `Searched files "${args.query}"` : `Grepped codebase "${args.query}"`,
51
+ " \u00B7",
52
+ ' ',
53
+ files.length,
54
+ " files")),
55
+ isExpanded && (react_1.default.createElement("ul", { className: index_module_less_1.default.fileList }, parsedFiles.map((file, index) => (react_1.default.createElement("li", { key: index, className: index_module_less_1.default.fileItem, onClick: () => handleFileClick(ide_core_browser_1.URI.file(ide_core_browser_1.path.join(workspaceRoot.codeUri.fsPath, file.path, file.name))) },
56
+ react_1.default.createElement("span", { className: file.iconClass }),
57
+ react_1.default.createElement("span", { style: { flex: 1 } }, file.name),
58
+ react_1.default.createElement("span", { className: index_module_less_1.default.filePath }, file.path))))))));
59
+ };
60
+ //# sourceMappingURL=SearchResult.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"SearchResult.js","sourceRoot":"","sources":["../../../../../src/browser/mcp/tools/components/SearchResult.tsx"],"names":[],"mappings":"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"}
@@ -0,0 +1,4 @@
1
+ import React from 'react';
2
+ import { IMCPServerToolComponentProps } from '../../../types';
3
+ export declare const TerminalToolComponent: React.MemoExoticComponent<(props: IMCPServerToolComponentProps) => React.JSX.Element>;
4
+ //# sourceMappingURL=Terminal.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Terminal.d.ts","sourceRoot":"","sources":["../../../../../src/browser/mcp/tools/components/Terminal.tsx"],"names":[],"mappings":"AAAA,OAAO,KAA+C,MAAM,OAAO,CAAC;AAMpE,OAAO,EAAE,4BAA4B,EAAE,MAAM,gBAAgB,CAAC;AA8B9D,eAAO,MAAM,qBAAqB,oCAAgB,4BAA4B,uBA4D5E,CAAC"}
@@ -0,0 +1,64 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.TerminalToolComponent = void 0;
4
+ const tslib_1 = require("tslib");
5
+ const react_1 = tslib_1.__importStar(require("react"));
6
+ const ide_core_browser_1 = require("@opensumi/ide-core-browser");
7
+ const components_1 = require("@opensumi/ide-core-browser/lib/components");
8
+ const ide_core_common_1 = require("@opensumi/ide-core-common");
9
+ const RunCommand_1 = require("../handlers/RunCommand");
10
+ const index_module_less_1 = tslib_1.__importDefault(require("./index.module.less"));
11
+ function getResult(raw) {
12
+ const result = {};
13
+ try {
14
+ const data = JSON.parse(raw);
15
+ if (data.isError) {
16
+ result.isError = data.isError;
17
+ }
18
+ if (data.content) {
19
+ result.text = data.content.map((item) => item.text).join('\n');
20
+ }
21
+ return result;
22
+ }
23
+ catch (_a) {
24
+ return null;
25
+ }
26
+ }
27
+ exports.TerminalToolComponent = (0, react_1.memo)((props) => {
28
+ const { args, toolCallId } = props;
29
+ const handler = (0, ide_core_browser_1.useInjectable)(RunCommand_1.RunCommandHandler);
30
+ const [disabled, toggleDisabled] = (0, react_1.useState)(false);
31
+ const handleClick = (0, react_1.useCallback)((approval) => {
32
+ if (!toolCallId) {
33
+ return;
34
+ }
35
+ handler.handleApproval(toolCallId, approval);
36
+ toggleDisabled(true);
37
+ }, []);
38
+ const output = (0, react_1.useMemo)(() => {
39
+ if (props.result) {
40
+ return getResult(props.result);
41
+ }
42
+ return null;
43
+ }, [props]);
44
+ return (react_1.default.createElement("div", { className: index_module_less_1.default.run_cmd_tool },
45
+ props.state === 'result' && (react_1.default.createElement("div", null,
46
+ react_1.default.createElement("div", { className: index_module_less_1.default.command_title },
47
+ react_1.default.createElement(components_1.Icon, { icon: 'terminal' }),
48
+ react_1.default.createElement("span", null, (0, ide_core_common_1.localize)('ai.native.mcp.terminal.output'))),
49
+ output ? (react_1.default.createElement("div", { className: index_module_less_1.default.command_content },
50
+ react_1.default.createElement("code", null, output.text))) : (''))),
51
+ props.state === 'complete' && (args === null || args === void 0 ? void 0 : args.require_user_approval) && (react_1.default.createElement("div", null,
52
+ react_1.default.createElement("div", { className: index_module_less_1.default.command_title },
53
+ react_1.default.createElement(components_1.Icon, { icon: 'terminal' }),
54
+ react_1.default.createElement("span", null, (0, ide_core_common_1.localize)('ai.native.mcp.terminal.allow-question'))),
55
+ react_1.default.createElement("p", { className: index_module_less_1.default.command_content },
56
+ react_1.default.createElement("code", null,
57
+ "$ ",
58
+ args.command)),
59
+ react_1.default.createElement("p", { className: index_module_less_1.default.comand_description }, args.explanation),
60
+ react_1.default.createElement("div", { className: index_module_less_1.default.cmmand_footer },
61
+ react_1.default.createElement(components_1.Button, { type: 'link', size: 'small', disabled: disabled, onClick: () => handleClick(true) }, (0, ide_core_common_1.localize)('ai.native.mcp.terminal.allow')),
62
+ react_1.default.createElement(components_1.Button, { type: 'link', size: 'small', disabled: disabled, onClick: () => handleClick(false) }, (0, ide_core_common_1.localize)('ai.native.mcp.terminal.deny')))))));
63
+ });
64
+ //# sourceMappingURL=Terminal.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Terminal.js","sourceRoot":"","sources":["../../../../../src/browser/mcp/tools/components/Terminal.tsx"],"names":[],"mappings":";;;;AAAA,uDAAoE;AAEpE,iEAA2D;AAC3D,0EAAyE;AACzE,+DAAqD;AAGrD,uDAA2D;AAE3D,oFAAyC;AAEzC,SAAS,SAAS,CAAC,GAAW;IAC5B,MAAM,MAAM,GAGR,EAAE,CAAC;IAEP,IAAI,CAAC;QACH,MAAM,IAAI,GAGN,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;QACpB,IAAI,IAAI,CAAC,OAAO,EAAE,CAAC;YACjB,MAAM,CAAC,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC;QAChC,CAAC;QAED,IAAI,IAAI,CAAC,OAAO,EAAE,CAAC;YACjB,MAAM,CAAC,IAAI,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACjE,CAAC;QAED,OAAO,MAAM,CAAC;IAChB,CAAC;IAAC,WAAM,CAAC;QACP,OAAO,IAAI,CAAC;IACd,CAAC;AACH,CAAC;AAEY,QAAA,qBAAqB,GAAG,IAAA,YAAI,EAAC,CAAC,KAAmC,EAAE,EAAE;IAChF,MAAM,EAAE,IAAI,EAAE,UAAU,EAAE,GAAG,KAAK,CAAC;IACnC,MAAM,OAAO,GAAG,IAAA,gCAAa,EAAoB,8BAAiB,CAAC,CAAC;IACpE,MAAM,CAAC,QAAQ,EAAE,cAAc,CAAC,GAAG,IAAA,gBAAQ,EAAC,KAAK,CAAC,CAAC;IAEnD,MAAM,WAAW,GAAG,IAAA,mBAAW,EAAC,CAAC,QAAiB,EAAE,EAAE;QACpD,IAAI,CAAC,UAAU,EAAE,CAAC;YAChB,OAAO;QACT,CAAC;QACD,OAAO,CAAC,cAAc,CAAC,UAAU,EAAE,QAAQ,CAAC,CAAC;QAC7C,cAAc,CAAC,IAAI,CAAC,CAAC;IACvB,CAAC,EAAE,EAAE,CAAC,CAAC;IAEP,MAAM,MAAM,GAAG,IAAA,eAAO,EAAC,GAAG,EAAE;QAC1B,IAAI,KAAK,CAAC,MAAM,EAAE,CAAC;YACjB,OAAO,SAAS,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;QACjC,CAAC;QACD,OAAO,IAAI,CAAC;IACd,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC;IAEZ,OAAO,CACL,uCAAK,SAAS,EAAE,2BAAM,CAAC,YAAY;QAChC,KAAK,CAAC,KAAK,KAAK,QAAQ,IAAI,CAC3B;YACE,uCAAK,SAAS,EAAE,2BAAM,CAAC,aAAa;gBAClC,8BAAC,iBAAI,IAAC,IAAI,EAAC,UAAU,GAAG;gBACxB,4CAAO,IAAA,0BAAQ,EAAC,+BAA+B,CAAC,CAAQ,CACpD;YACL,MAAM,CAAC,CAAC,CAAC,CACR,uCAAK,SAAS,EAAE,2BAAM,CAAC,eAAe;gBACpC,4CAAO,MAAM,CAAC,IAAI,CAAQ,CACtB,CACP,CAAC,CAAC,CAAC,CACF,EAAE,CACH,CACG,CACP;QAEA,KAAK,CAAC,KAAK,KAAK,UAAU,KAAI,IAAI,aAAJ,IAAI,uBAAJ,IAAI,CAAE,qBAAqB,CAAA,IAAI,CAC5D;YACE,uCAAK,SAAS,EAAE,2BAAM,CAAC,aAAa;gBAClC,8BAAC,iBAAI,IAAC,IAAI,EAAC,UAAU,GAAG;gBACxB,4CAAO,IAAA,0BAAQ,EAAC,uCAAuC,CAAC,CAAQ,CAC5D;YACN,qCAAG,SAAS,EAAE,2BAAM,CAAC,eAAe;gBAClC;;oBAAS,IAAI,CAAC,OAAO,CAAQ,CAC3B;YACJ,qCAAG,SAAS,EAAE,2BAAM,CAAC,kBAAkB,IAAG,IAAI,CAAC,WAAW,CAAK;YAC/D,uCAAK,SAAS,EAAE,2BAAM,CAAC,aAAa;gBAClC,8BAAC,mBAAM,IAAC,IAAI,EAAC,MAAM,EAAC,IAAI,EAAC,OAAO,EAAC,QAAQ,EAAE,QAAQ,EAAE,OAAO,EAAE,GAAG,EAAE,CAAC,WAAW,CAAC,IAAI,CAAC,IAClF,IAAA,0BAAQ,EAAC,8BAA8B,CAAC,CAClC;gBACT,8BAAC,mBAAM,IAAC,IAAI,EAAC,MAAM,EAAC,IAAI,EAAC,OAAO,EAAC,QAAQ,EAAE,QAAQ,EAAE,OAAO,EAAE,GAAG,EAAE,CAAC,WAAW,CAAC,KAAK,CAAC,IACnF,IAAA,0BAAQ,EAAC,6BAA6B,CAAC,CACjC,CACL,CACF,CACP,CACG,CACP,CAAC;AACJ,CAAC,CAAC,CAAC"}
@@ -65,3 +65,104 @@
65
65
  .warning > span {
66
66
  color: var(--debugConsole-warningForeground);
67
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
+ }
@@ -1,9 +1,10 @@
1
1
  import { IMCPServerRegistry, MCPServerContribution, MCPToolDefinition } from '../../types';
2
- export declare class FindFilesByNameSubstringTool implements MCPServerContribution {
2
+ export declare class FileSearchTool implements MCPServerContribution {
3
3
  private readonly workspaceService;
4
4
  private readonly fileSearchService;
5
+ private readonly chatInternalService;
5
6
  registerMCPServer(registry: IMCPServerRegistry): void;
6
7
  getToolDefinition(): MCPToolDefinition;
7
8
  private handler;
8
9
  }
9
- //# sourceMappingURL=findFilesByNameSubstring.d.ts.map
10
+ //# sourceMappingURL=fileSearch.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"fileSearch.d.ts","sourceRoot":"","sources":["../../../../src/browser/mcp/tools/fileSearch.ts"],"names":[],"mappings":"AASA,OAAO,EAAE,kBAAkB,EAAa,qBAAqB,EAAE,iBAAiB,EAAE,MAAM,aAAa,CAAC;AAatG,qBACa,cAAe,YAAW,qBAAqB;IAE1D,OAAO,CAAC,QAAQ,CAAC,gBAAgB,CAAoB;IAGrD,OAAO,CAAC,QAAQ,CAAC,iBAAiB,CAAqB;IAGvD,OAAO,CAAC,QAAQ,CAAC,mBAAmB,CAAsB;IAE1D,iBAAiB,CAAC,QAAQ,EAAE,kBAAkB,GAAG,IAAI;IAKrD,iBAAiB,IAAI,iBAAiB;YAWxB,OAAO;CAiDtB"}
@@ -0,0 +1,94 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.FileSearchTool = void 0;
4
+ const tslib_1 = require("tslib");
5
+ const zod_1 = require("zod");
6
+ const di_1 = require("@opensumi/di");
7
+ const ide_core_common_1 = require("@opensumi/ide-core-common");
8
+ const common_1 = require("@opensumi/ide-file-search/lib/common");
9
+ const ide_workspace_1 = require("@opensumi/ide-workspace");
10
+ const common_2 = require("../../../common");
11
+ const chat_internal_service_1 = require("../../chat/chat.internal.service");
12
+ const types_1 = require("../../types");
13
+ const SearchResult_1 = require("./components/SearchResult");
14
+ const inputSchema = zod_1.z.object({
15
+ query: zod_1.z.string().describe('Fuzzy filename to search for'),
16
+ explanation: zod_1.z
17
+ .string()
18
+ .describe('One sentence explanation as to why this tool is being used, and how it contributes to the goal.'),
19
+ });
20
+ const MAX_RESULTS = 10;
21
+ let FileSearchTool = class FileSearchTool {
22
+ registerMCPServer(registry) {
23
+ registry.registerMCPTool(this.getToolDefinition());
24
+ registry.registerToolComponent('file_search', SearchResult_1.FileSearchToolComponent);
25
+ }
26
+ getToolDefinition() {
27
+ return {
28
+ name: 'file_search',
29
+ label: 'Search Files',
30
+ description: "Fast file search based on fuzzy matching against file path. Use if you know part of the file path but don't know where it's located exactly. Response will be capped to 10 results. Make your query more specific if need to filter results further.",
31
+ inputSchema,
32
+ handler: this.handler.bind(this),
33
+ };
34
+ }
35
+ async handler(args, logger) {
36
+ if (!args.query) {
37
+ throw new Error('No fileSearch parameters provided. Need to give a query.');
38
+ }
39
+ // 获取工作区根目录
40
+ const workspaceRoots = this.workspaceService.tryGetRoots();
41
+ if (!workspaceRoots || workspaceRoots.length === 0) {
42
+ throw new Error('Cannot determine project directory');
43
+ }
44
+ // 使用 OpenSumi 的文件搜索 API
45
+ const searchPattern = args.query;
46
+ const searchResults = await this.fileSearchService.find(searchPattern, {
47
+ rootUris: [new ide_core_common_1.URI(workspaceRoots[0].uri).codeUri.fsPath],
48
+ // TODO: 忽略配置
49
+ excludePatterns: ['**/node_modules/**'],
50
+ limit: 100,
51
+ useGitIgnore: true,
52
+ noIgnoreParent: true,
53
+ fuzzyMatch: true,
54
+ });
55
+ const files = searchResults.slice(0, MAX_RESULTS).map((file) => {
56
+ const uri = ide_core_common_1.URI.parse(file);
57
+ return uri.codeUri.fsPath;
58
+ });
59
+ const messages = this.chatInternalService.sessionModel.history.getMessages();
60
+ this.chatInternalService.sessionModel.history.setMessageAdditional(messages[messages.length - 1].id, {
61
+ [args.toolCallId]: {
62
+ files,
63
+ },
64
+ });
65
+ logger.appendLine(`Found ${files.length} files matching "${args.query}"`);
66
+ return {
67
+ content: [
68
+ {
69
+ type: 'text',
70
+ text: `${files.join('\n')}\n${searchResults.length > MAX_RESULTS
71
+ ? `\nFound ${searchResults.length} files matching "${args.query}", only return the first ${MAX_RESULTS} results`
72
+ : ''}`,
73
+ },
74
+ ],
75
+ };
76
+ }
77
+ };
78
+ exports.FileSearchTool = FileSearchTool;
79
+ tslib_1.__decorate([
80
+ (0, di_1.Autowired)(ide_workspace_1.IWorkspaceService),
81
+ tslib_1.__metadata("design:type", Object)
82
+ ], FileSearchTool.prototype, "workspaceService", void 0);
83
+ tslib_1.__decorate([
84
+ (0, di_1.Autowired)(common_1.FileSearchServicePath),
85
+ tslib_1.__metadata("design:type", Object)
86
+ ], FileSearchTool.prototype, "fileSearchService", void 0);
87
+ tslib_1.__decorate([
88
+ (0, di_1.Autowired)(common_2.IChatInternalService),
89
+ tslib_1.__metadata("design:type", chat_internal_service_1.ChatInternalService)
90
+ ], FileSearchTool.prototype, "chatInternalService", void 0);
91
+ exports.FileSearchTool = FileSearchTool = tslib_1.__decorate([
92
+ (0, ide_core_common_1.Domain)(types_1.MCPServerContribution)
93
+ ], FileSearchTool);
94
+ //# sourceMappingURL=fileSearch.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"fileSearch.js","sourceRoot":"","sources":["../../../../src/browser/mcp/tools/fileSearch.ts"],"names":[],"mappings":"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"}