@opensumi/ide-ai-native 3.9.1-next-1755745798.0 → 3.9.1-next-1755755826.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.
@@ -1 +1 @@
1
- {"version":3,"file":"getDiagnosticsByPath.d.ts","sourceRoot":"","sources":["../../../../src/browser/mcp/tools/getDiagnosticsByPath.ts"],"names":[],"mappings":"AAGA,OAAO,EAAoC,GAAG,EAAQ,MAAM,2BAA2B,CAAC;AAGxF,OAAO,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AAGvD,OAAO,EAAE,kBAAkB,EAAE,SAAS,EAAE,qBAAqB,EAAE,iBAAiB,EAAE,MAAM,aAAa,CAAC;AAMtG,qBACa,kBAAmB,YAAW,qBAAqB;IAE9D,OAAO,CAAC,QAAQ,CAAC,gBAAgB,CAAoB;IAGrD,OAAO,CAAC,QAAQ,CAAC,iBAAiB,CAAqB;IAGvD,OAAO,CAAC,QAAQ,CAAC,YAAY,CAA8B;IAG3D,SAAS,CAAC,QAAQ,CAAC,aAAa,EAAE,cAAc,CAAC;IAEjD,iBAAiB,CAAC,QAAQ,EAAE,kBAAkB,GAAG,IAAI;IAIrD,iBAAiB,IAAI,iBAAiB;cA2BtB,aAAa,CAAC,iBAAiB,EAAE,MAAM,EAAE,MAAM,EAAE,SAAS;cA6B1D,kBAAkB,CAAC,GAAG,EAAE,GAAG;YAmB7B,OAAO;IAgCrB,OAAO,CAAC,iBAAiB;CAc1B"}
1
+ {"version":3,"file":"getDiagnosticsByPath.d.ts","sourceRoot":"","sources":["../../../../src/browser/mcp/tools/getDiagnosticsByPath.ts"],"names":[],"mappings":"AAGA,OAAO,EAAoC,GAAG,EAAQ,MAAM,2BAA2B,CAAC;AAGxF,OAAO,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AAGvD,OAAO,EAAE,kBAAkB,EAAE,SAAS,EAAE,qBAAqB,EAAE,iBAAiB,EAAE,MAAM,aAAa,CAAC;AAMtG,qBACa,kBAAmB,YAAW,qBAAqB;IAE9D,OAAO,CAAC,QAAQ,CAAC,gBAAgB,CAAoB;IAGrD,OAAO,CAAC,QAAQ,CAAC,iBAAiB,CAAqB;IAGvD,OAAO,CAAC,QAAQ,CAAC,YAAY,CAA8B;IAG3D,SAAS,CAAC,QAAQ,CAAC,aAAa,EAAE,cAAc,CAAC;IAEjD,iBAAiB,CAAC,QAAQ,EAAE,kBAAkB,GAAG,IAAI;IAIrD,iBAAiB,IAAI,iBAAiB;cA2BtB,aAAa,CAAC,iBAAiB,EAAE,MAAM,EAAE,MAAM,EAAE,SAAS;cA+B1D,kBAAkB,CAAC,GAAG,EAAE,GAAG;YAsB7B,OAAO;IAgCrB,OAAO,CAAC,iBAAiB;CAc1B"}
@@ -49,14 +49,17 @@ let GetDiagnosticsTool = class GetDiagnosticsTool {
49
49
  logger.appendLine('Error: Cannot determine project directory');
50
50
  throw new Error('Cannot determine project directory');
51
51
  }
52
- // Validate file path
53
- if (filePathInProject.startsWith('..') || filePathInProject.startsWith('/')) {
52
+ // Construct and validate full file path securely (prevent path traversal)
53
+ const rootUri = ide_core_common_1.URI.parse(workspaceRoots[0].uri);
54
+ const rootFsPath = rootUri.codeUri.fsPath;
55
+ const resolvedFsPath = ide_core_common_1.path.resolve(rootFsPath, filePathInProject);
56
+ const rel = ide_core_common_1.path.relative(rootFsPath, resolvedFsPath);
57
+ // rel starts with '..' or is an absolute path ⇒ outside workspace
58
+ if (rel.startsWith('..') || ide_core_common_1.path.isAbsolute(rel)) {
54
59
  logger.appendLine('Error: File is outside of project scope');
55
60
  throw new Error('File is outside of project scope');
56
61
  }
57
- // Construct full file path
58
- const rootUri = ide_core_common_1.URI.parse(workspaceRoots[0].uri);
59
- const fullPathUri = ide_core_common_1.URI.file(ide_core_common_1.path.join(rootUri.codeUri.fsPath, filePathInProject));
62
+ const fullPathUri = ide_core_common_1.URI.file(resolvedFsPath);
60
63
  // Check if file exists
61
64
  const fileExists = await this.fileServiceClient.access(fullPathUri.toString());
62
65
  if (!fileExists) {
@@ -72,16 +75,19 @@ let GetDiagnosticsTool = class GetDiagnosticsTool {
72
75
  const markerChangeDeferred = new ide_core_common_1.Deferred();
73
76
  // TODO: 诊断信息更新延迟问题如何彻底解决?现在事件都是从插件单向通知上来的
74
77
  // 首次打开文件时最大4s, 如果4s内marker没有变化,则认为marker本身就是空的
75
- this.markerService.getManager().onMarkerChanged((e) => {
78
+ const disposable = this.markerService.getManager().onMarkerChanged((e) => {
76
79
  if (e.some((uriStr) => uriStr === uri.toString())) {
77
80
  markerChangeDeferred.resolve();
78
81
  }
79
82
  });
80
83
  await this.modelService.createModelReference(uri);
81
- await new Promise((resolve) => setTimeout(resolve, 4000)).then(() => {
84
+ const timeoutId = setTimeout(() => {
82
85
  markerChangeDeferred.resolve();
86
+ }, 4000);
87
+ await markerChangeDeferred.promise.finally(() => {
88
+ disposable.dispose();
89
+ clearTimeout(timeoutId);
83
90
  });
84
- await markerChangeDeferred.promise;
85
91
  }
86
92
  }
87
93
  async handler(args, logger) {
@@ -1 +1 @@
1
- {"version":3,"file":"getDiagnosticsByPath.js","sourceRoot":"","sources":["../../../../src/browser/mcp/tools/getDiagnosticsByPath.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"getDiagnosticsByPath.js","sourceRoot":"","sources":["../../../../src/browser/mcp/tools/getDiagnosticsByPath.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"base-language-model.d.ts","sourceRoot":"","sources":["../../src/node/base-language-model.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAA2E,MAAM,IAAI,CAAC;AAG1G,OAAO,EAAE,oBAAoB,EAAE,MAAM,2BAA2B,CAAC;AACjE,OAAO,EAAE,kBAAkB,EAAE,WAAW,EAAE,MAAM,yBAAyB,CAAC;AAC1E,OAAO,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AAExD,OAAO,EAAE,SAAS,EAAE,MAAM,WAAW,CAAC;AACtC,OAAO,EACL,8BAA8B,EAE9B,WAAW,EACZ,MAAM,oCAAoC,CAAC;AAE5C,8BACsB,iBAAiB;IACrC,MAAM,CAAC,YAAY,EAAE,MAAM,CAAC,MAAM,EAAE,SAAS,CAAC,CAAC;IAG/C,SAAS,CAAC,QAAQ,CAAC,6BAA6B,EAAE,8BAA8B,CAAC;IAGjF,SAAS,CAAC,QAAQ,CAAC,MAAM,EAAE,WAAW,CAAC;IAEvC,SAAS,CAAC,QAAQ,CAAC,kBAAkB,CAAC,OAAO,EAAE,oBAAoB,GAAG,GAAG;IAEnE,OAAO,CACX,OAAO,EAAE,MAAM,EACf,kBAAkB,EAAE,kBAAkB,EACtC,OAAO,EAAE,oBAAoB,EAC7B,iBAAiB,CAAC,EAAE,iBAAiB,GACpC,OAAO,CAAC,GAAG,CAAC;IAiCf,OAAO,CAAC,0BAA0B;IAalC,SAAS,CAAC,QAAQ,CAAC,kBAAkB,CAAC,QAAQ,EAAE,GAAG,EAAE,OAAO,CAAC,EAAE,MAAM,GAAG,GAAG;IAE3E,SAAS,CAAC,QAAQ,CAAC,YAAY,CAAC,OAAO,EAAE,MAAM,EAAE,eAAe,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG,SAAS,GAAG,SAAS;cAE9F,sBAAsB,CACpC,QAAQ,EAAE,GAAG,EACb,OAAO,EAAE,MAAM,EACf,KAAK,EAAE,WAAW,EAAE,EACpB,kBAAkB,EAAE,kBAAkB,EACtC,OAAO,GAAE,WAAW,EAAO,EAC3B,OAAO,CAAC,EAAE,MAAM,EAChB,eAAe,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,EACrC,SAAS,CAAC,EAAE,CAAC,MAAM,EAAE,MAAM,CAAC,EAC5B,YAAY,CAAC,EAAE,MAAM,EACrB,SAAS,CAAC,EAAE,MAAM,EAClB,MAAM,CAAC,EAAE,MAAM,EAAE,EACjB,iBAAiB,CAAC,EAAE,iBAAiB,GACpC,OAAO,CAAC,GAAG,CAAC;CAiKhB"}
1
+ {"version":3,"file":"base-language-model.d.ts","sourceRoot":"","sources":["../../src/node/base-language-model.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAA2E,MAAM,IAAI,CAAC;AAG1G,OAAO,EAAE,oBAAoB,EAAE,MAAM,2BAA2B,CAAC;AACjE,OAAO,EAAE,kBAAkB,EAAE,WAAW,EAAE,MAAM,yBAAyB,CAAC;AAC1E,OAAO,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AAExD,OAAO,EAAE,SAAS,EAAE,MAAM,WAAW,CAAC;AACtC,OAAO,EACL,8BAA8B,EAE9B,WAAW,EACZ,MAAM,oCAAoC,CAAC;AAE5C,8BACsB,iBAAiB;IACrC,MAAM,CAAC,YAAY,EAAE,MAAM,CAAC,MAAM,EAAE,SAAS,CAAC,CAAC;IAG/C,SAAS,CAAC,QAAQ,CAAC,6BAA6B,EAAE,8BAA8B,CAAC;IAGjF,SAAS,CAAC,QAAQ,CAAC,MAAM,EAAE,WAAW,CAAC;IAEvC,SAAS,CAAC,QAAQ,CAAC,kBAAkB,CAAC,OAAO,EAAE,oBAAoB,GAAG,GAAG;IAEnE,OAAO,CACX,OAAO,EAAE,MAAM,EACf,kBAAkB,EAAE,kBAAkB,EACtC,OAAO,EAAE,oBAAoB,EAC7B,iBAAiB,CAAC,EAAE,iBAAiB,GACpC,OAAO,CAAC,GAAG,CAAC;IAiCf,OAAO,CAAC,0BAA0B;IAalC,SAAS,CAAC,QAAQ,CAAC,kBAAkB,CAAC,QAAQ,EAAE,GAAG,EAAE,OAAO,CAAC,EAAE,MAAM,GAAG,GAAG;IAE3E,SAAS,CAAC,QAAQ,CAAC,YAAY,CAAC,OAAO,EAAE,MAAM,EAAE,eAAe,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG,SAAS,GAAG,SAAS;cAE9F,sBAAsB,CACpC,QAAQ,EAAE,GAAG,EACb,OAAO,EAAE,MAAM,EACf,KAAK,EAAE,WAAW,EAAE,EACpB,kBAAkB,EAAE,kBAAkB,EACtC,OAAO,GAAE,WAAW,EAAO,EAC3B,OAAO,CAAC,EAAE,MAAM,EAChB,eAAe,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,EACrC,SAAS,CAAC,EAAE,CAAC,MAAM,EAAE,MAAM,CAAC,EAC5B,YAAY,CAAC,EAAE,MAAM,EACrB,SAAS,CAAC,EAAE,MAAM,EAClB,MAAM,CAAC,EAAE,MAAM,EAAE,EACjB,iBAAiB,CAAC,EAAE,iBAAiB,GACpC,OAAO,CAAC,GAAG,CAAC;CAmMhB"}
@@ -36,7 +36,7 @@ let BaseLanguageModel = class BaseLanguageModel {
36
36
  });
37
37
  }
38
38
  async handleStreamingRequest(provider, request, tools, chatReadableStream, history = [], modelId, providerOptions, trimTexts, systemPrompt, maxTokens, images, cancellationToken) {
39
- var _a;
39
+ var _a, _b;
40
40
  try {
41
41
  const aiTools = Object.fromEntries(tools.map((tool) => [tool.name, this.convertToolRequestToAITool(tool)]));
42
42
  const abortController = new AbortController();
@@ -76,6 +76,8 @@ let BaseLanguageModel = class BaseLanguageModel {
76
76
  let isFirstChunk = true;
77
77
  let bufferedText = '';
78
78
  const pendingLines = [];
79
+ // 跟踪正在进行的工具调用状态
80
+ const ongoingToolCalls = new Map();
79
81
  for await (const chunk of stream.fullStream) {
80
82
  if (chunk.type === 'text-delta') {
81
83
  if (trimTexts === null || trimTexts === void 0 ? void 0 : trimTexts.length) {
@@ -117,6 +119,8 @@ let BaseLanguageModel = class BaseLanguageModel {
117
119
  });
118
120
  }
119
121
  else if (chunk.type === 'tool-call-streaming-start') {
122
+ // 记录开始的工具调用
123
+ ongoingToolCalls.set(chunk.toolCallId, { name: chunk.toolName });
120
124
  chatReadableStream.emitData({
121
125
  kind: 'toolCall',
122
126
  content: {
@@ -128,6 +132,11 @@ let BaseLanguageModel = class BaseLanguageModel {
128
132
  });
129
133
  }
130
134
  else if (chunk.type === 'tool-call-delta') {
135
+ // 更新工具调用状态
136
+ const existing = ongoingToolCalls.get(chunk.toolCallId);
137
+ if (existing) {
138
+ existing.args = (existing.args || '') + chunk.argsTextDelta;
139
+ }
131
140
  chatReadableStream.emitData({
132
141
  kind: 'toolCall',
133
142
  content: {
@@ -139,6 +148,8 @@ let BaseLanguageModel = class BaseLanguageModel {
139
148
  });
140
149
  }
141
150
  else if (chunk.type === 'tool-result') {
151
+ // 移除已完成的工具调用
152
+ ongoingToolCalls.delete(chunk.toolCallId);
142
153
  chatReadableStream.emitData({
143
154
  kind: 'toolCall',
144
155
  content: {
@@ -160,6 +171,29 @@ let BaseLanguageModel = class BaseLanguageModel {
160
171
  });
161
172
  }
162
173
  }
174
+ // 处理未完成的工具调用 - 将它们标记为完成状态
175
+ for (const [toolCallId, toolCall] of ongoingToolCalls) {
176
+ try {
177
+ chatReadableStream.emitData({
178
+ kind: 'toolCall',
179
+ content: {
180
+ id: toolCallId,
181
+ type: 'function',
182
+ function: {
183
+ name: toolCall.name,
184
+ arguments: toolCall.args || '{}',
185
+ },
186
+ state: 'complete',
187
+ },
188
+ });
189
+ }
190
+ catch (error) {
191
+ // 记录错误但不阻止流的结束
192
+ (_b = this.logger) === null || _b === void 0 ? void 0 : _b.error(`Failed to finalize tool call ${toolCallId}:`, error);
193
+ }
194
+ }
195
+ // 清空正在进行的工具调用
196
+ ongoingToolCalls.clear();
163
197
  if (trimTexts === null || trimTexts === void 0 ? void 0 : trimTexts[1]) {
164
198
  // 完成处理所有块后,检查并发送剩余文本
165
199
  // 将剩余缓冲区加入待发送行
@@ -1 +1 @@
1
- {"version":3,"file":"base-language-model.js","sourceRoot":"","sources":["../../src/node/base-language-model.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"base-language-model.js","sourceRoot":"","sources":["../../src/node/base-language-model.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@opensumi/ide-ai-native",
3
- "version": "3.9.1-next-1755745798.0",
3
+ "version": "3.9.1-next-1755755826.0",
4
4
  "files": [
5
5
  "lib",
6
6
  "src"
@@ -24,28 +24,28 @@
24
24
  "@ai-sdk/openai": "^1.1.9",
25
25
  "@ai-sdk/openai-compatible": "^0.1.11",
26
26
  "@modelcontextprotocol/sdk": "^1.11.4",
27
- "@opensumi/ide-addons": "3.9.1-next-1755745798.0",
28
- "@opensumi/ide-components": "3.9.1-next-1755745798.0",
29
- "@opensumi/ide-connection": "3.9.1-next-1755745798.0",
30
- "@opensumi/ide-core-common": "3.9.1-next-1755745798.0",
31
- "@opensumi/ide-core-node": "3.9.1-next-1755745798.0",
32
- "@opensumi/ide-debug": "3.9.1-next-1755745798.0",
33
- "@opensumi/ide-design": "3.9.1-next-1755745798.0",
34
- "@opensumi/ide-editor": "3.9.1-next-1755745798.0",
35
- "@opensumi/ide-file-search": "3.9.1-next-1755745798.0",
36
- "@opensumi/ide-file-service": "3.9.1-next-1755745798.0",
37
- "@opensumi/ide-main-layout": "3.9.1-next-1755745798.0",
38
- "@opensumi/ide-markers": "3.9.1-next-1755745798.0",
39
- "@opensumi/ide-monaco": "3.9.1-next-1755745798.0",
40
- "@opensumi/ide-outline": "3.9.1-next-1755745798.0",
41
- "@opensumi/ide-overlay": "3.9.1-next-1755745798.0",
42
- "@opensumi/ide-preferences": "3.9.1-next-1755745798.0",
43
- "@opensumi/ide-quick-open": "3.9.1-next-1755745798.0",
44
- "@opensumi/ide-search": "3.9.1-next-1755745798.0",
45
- "@opensumi/ide-terminal-next": "3.9.1-next-1755745798.0",
46
- "@opensumi/ide-theme": "3.9.1-next-1755745798.0",
47
- "@opensumi/ide-utils": "3.9.1-next-1755745798.0",
48
- "@opensumi/ide-workspace": "3.9.1-next-1755745798.0",
27
+ "@opensumi/ide-addons": "3.9.1-next-1755755826.0",
28
+ "@opensumi/ide-components": "3.9.1-next-1755755826.0",
29
+ "@opensumi/ide-connection": "3.9.1-next-1755755826.0",
30
+ "@opensumi/ide-core-common": "3.9.1-next-1755755826.0",
31
+ "@opensumi/ide-core-node": "3.9.1-next-1755755826.0",
32
+ "@opensumi/ide-debug": "3.9.1-next-1755755826.0",
33
+ "@opensumi/ide-design": "3.9.1-next-1755755826.0",
34
+ "@opensumi/ide-editor": "3.9.1-next-1755755826.0",
35
+ "@opensumi/ide-file-search": "3.9.1-next-1755755826.0",
36
+ "@opensumi/ide-file-service": "3.9.1-next-1755755826.0",
37
+ "@opensumi/ide-main-layout": "3.9.1-next-1755755826.0",
38
+ "@opensumi/ide-markers": "3.9.1-next-1755755826.0",
39
+ "@opensumi/ide-monaco": "3.9.1-next-1755755826.0",
40
+ "@opensumi/ide-outline": "3.9.1-next-1755755826.0",
41
+ "@opensumi/ide-overlay": "3.9.1-next-1755755826.0",
42
+ "@opensumi/ide-preferences": "3.9.1-next-1755755826.0",
43
+ "@opensumi/ide-quick-open": "3.9.1-next-1755755826.0",
44
+ "@opensumi/ide-search": "3.9.1-next-1755755826.0",
45
+ "@opensumi/ide-terminal-next": "3.9.1-next-1755755826.0",
46
+ "@opensumi/ide-theme": "3.9.1-next-1755755826.0",
47
+ "@opensumi/ide-utils": "3.9.1-next-1755755826.0",
48
+ "@opensumi/ide-workspace": "3.9.1-next-1755755826.0",
49
49
  "@xterm/xterm": "5.5.0",
50
50
  "ai": "^4.3.16",
51
51
  "ansi-regex": "^2.0.0",
@@ -62,7 +62,7 @@
62
62
  "zod-to-json-schema": "^3.24.1"
63
63
  },
64
64
  "devDependencies": {
65
- "@opensumi/ide-core-browser": "3.9.1-next-1755745798.0"
65
+ "@opensumi/ide-core-browser": "3.9.1-next-1755755826.0"
66
66
  },
67
- "gitHead": "3656dd7227b2d2f0f313acfcd5438ec448bf1e6d"
67
+ "gitHead": "266d2174884e0216b388fa145dc114053c25cd11"
68
68
  }
@@ -66,15 +66,17 @@ export class GetDiagnosticsTool implements MCPServerContribution {
66
66
  throw new Error('Cannot determine project directory');
67
67
  }
68
68
 
69
- // Validate file path
70
- if (filePathInProject.startsWith('..') || filePathInProject.startsWith('/')) {
69
+ // Construct and validate full file path securely (prevent path traversal)
70
+ const rootUri = URI.parse(workspaceRoots[0].uri);
71
+ const rootFsPath = rootUri.codeUri.fsPath;
72
+ const resolvedFsPath = path.resolve(rootFsPath, filePathInProject);
73
+ const rel = path.relative(rootFsPath, resolvedFsPath);
74
+ // rel starts with '..' or is an absolute path ⇒ outside workspace
75
+ if (rel.startsWith('..') || path.isAbsolute(rel)) {
71
76
  logger.appendLine('Error: File is outside of project scope');
72
77
  throw new Error('File is outside of project scope');
73
78
  }
74
-
75
- // Construct full file path
76
- const rootUri = URI.parse(workspaceRoots[0].uri);
77
- const fullPathUri = URI.file(path.join(rootUri.codeUri.fsPath, filePathInProject));
79
+ const fullPathUri = URI.file(resolvedFsPath);
78
80
 
79
81
  // Check if file exists
80
82
  const fileExists = await this.fileServiceClient.access(fullPathUri.toString());
@@ -93,16 +95,19 @@ export class GetDiagnosticsTool implements MCPServerContribution {
93
95
  const markerChangeDeferred = new Deferred<void>();
94
96
  // TODO: 诊断信息更新延迟问题如何彻底解决?现在事件都是从插件单向通知上来的
95
97
  // 首次打开文件时最大4s, 如果4s内marker没有变化,则认为marker本身就是空的
96
- this.markerService.getManager().onMarkerChanged((e) => {
98
+ const disposable = this.markerService.getManager().onMarkerChanged((e) => {
97
99
  if (e.some((uriStr) => uriStr === uri.toString())) {
98
100
  markerChangeDeferred.resolve();
99
101
  }
100
102
  });
101
103
  await this.modelService.createModelReference(uri);
102
- await new Promise((resolve) => setTimeout(resolve, 4000)).then(() => {
104
+ const timeoutId = setTimeout(() => {
103
105
  markerChangeDeferred.resolve();
106
+ }, 4000);
107
+ await markerChangeDeferred.promise.finally(() => {
108
+ disposable.dispose();
109
+ clearTimeout(timeoutId);
104
110
  });
105
- await markerChangeDeferred.promise;
106
111
  }
107
112
  }
108
113
 
@@ -135,6 +135,8 @@ export abstract class BaseLanguageModel {
135
135
  let isFirstChunk = true;
136
136
  let bufferedText = '';
137
137
  const pendingLines: string[] = [];
138
+ // 跟踪正在进行的工具调用状态
139
+ const ongoingToolCalls = new Map<string, { name: string; args?: string }>();
138
140
  for await (const chunk of stream.fullStream) {
139
141
  if (chunk.type === 'text-delta') {
140
142
  if (trimTexts?.length) {
@@ -178,6 +180,8 @@ export abstract class BaseLanguageModel {
178
180
  },
179
181
  });
180
182
  } else if (chunk.type === 'tool-call-streaming-start') {
183
+ // 记录开始的工具调用
184
+ ongoingToolCalls.set(chunk.toolCallId, { name: chunk.toolName });
181
185
  chatReadableStream.emitData({
182
186
  kind: 'toolCall',
183
187
  content: {
@@ -188,6 +192,11 @@ export abstract class BaseLanguageModel {
188
192
  },
189
193
  });
190
194
  } else if (chunk.type === 'tool-call-delta') {
195
+ // 更新工具调用状态
196
+ const existing = ongoingToolCalls.get(chunk.toolCallId);
197
+ if (existing) {
198
+ existing.args = (existing.args || '') + chunk.argsTextDelta;
199
+ }
191
200
  chatReadableStream.emitData({
192
201
  kind: 'toolCall',
193
202
  content: {
@@ -198,6 +207,8 @@ export abstract class BaseLanguageModel {
198
207
  },
199
208
  });
200
209
  } else if (chunk.type === 'tool-result') {
210
+ // 移除已完成的工具调用
211
+ ongoingToolCalls.delete(chunk.toolCallId);
201
212
  chatReadableStream.emitData({
202
213
  kind: 'toolCall',
203
214
  content: {
@@ -218,6 +229,29 @@ export abstract class BaseLanguageModel {
218
229
  }
219
230
  }
220
231
 
232
+ // 处理未完成的工具调用 - 将它们标记为完成状态
233
+ for (const [toolCallId, toolCall] of ongoingToolCalls) {
234
+ try {
235
+ chatReadableStream.emitData({
236
+ kind: 'toolCall',
237
+ content: {
238
+ id: toolCallId,
239
+ type: 'function',
240
+ function: {
241
+ name: toolCall.name,
242
+ arguments: toolCall.args || '{}',
243
+ },
244
+ state: 'complete',
245
+ },
246
+ });
247
+ } catch (error) {
248
+ // 记录错误但不阻止流的结束
249
+ this.logger?.error(`Failed to finalize tool call ${toolCallId}:`, error);
250
+ }
251
+ }
252
+ // 清空正在进行的工具调用
253
+ ongoingToolCalls.clear();
254
+
221
255
  if (trimTexts?.[1]) {
222
256
  // 完成处理所有块后,检查并发送剩余文本
223
257