@blueking/chat-helper 0.0.1-beta.3 → 0.0.1-beta.31
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.
- package/README.md +962 -63
- package/dist/agent/type.d.ts +27 -2
- package/dist/agent/type.ts.js +1 -1
- package/dist/agent/use-agent.d.ts +516 -434
- package/dist/agent/use-agent.ts.js +224 -25
- package/dist/event/ag-ui.d.ts +39 -7
- package/dist/event/ag-ui.ts.js +224 -150
- package/dist/event/type.d.ts +99 -107
- package/dist/event/type.ts.js +34 -11
- package/dist/http/fetch/fetch.d.ts +40 -36
- package/dist/http/fetch/fetch.ts.js +59 -32
- package/dist/http/fetch/index.d.ts +1 -0
- package/dist/http/fetch/index.ts.js +17 -1
- package/dist/http/index.d.ts +25 -16
- package/dist/http/index.ts.js +60 -3
- package/dist/http/module/agent.d.ts +2 -2
- package/dist/http/module/index.d.ts +23 -16
- package/dist/http/module/index.ts.js +2 -1
- package/dist/http/module/message.d.ts +23 -7
- package/dist/http/module/message.ts.js +52 -7
- package/dist/http/module/session.d.ts +14 -11
- package/dist/http/module/session.ts.js +66 -4
- package/dist/http/transform/agent.ts.js +11 -8
- package/dist/http/transform/message.d.ts +6 -6
- package/dist/http/transform/message.ts.js +568 -118
- package/dist/http/transform/session.ts.js +9 -1
- package/dist/index.d.ts +2996 -2616
- package/dist/index.ts.js +26 -5
- package/dist/mediator/index.d.ts +2 -0
- package/dist/mediator/index.ts.js +26 -0
- package/dist/mediator/type.d.ts +50 -0
- package/dist/mediator/type.ts.js +28 -0
- package/dist/mediator/use-mediator.d.ts +7 -0
- package/dist/mediator/use-mediator.ts.js +47 -0
- package/dist/message/type.d.ts +280 -140
- package/dist/message/type.ts.js +16 -15
- package/dist/message/use-message.d.ts +837 -750
- package/dist/message/use-message.ts.js +226 -28
- package/dist/session/type.d.ts +10 -0
- package/dist/session/use-session.d.ts +1921 -1721
- package/dist/session/use-session.ts.js +198 -33
- package/dist/type.d.ts +4 -4
- package/package.json +2 -1
package/dist/event/ag-ui.ts.js
CHANGED
|
@@ -35,11 +35,9 @@
|
|
|
35
35
|
}
|
|
36
36
|
return obj;
|
|
37
37
|
}
|
|
38
|
-
import { transferMessageApi2Message } from '../http/transform/
|
|
39
|
-
import {
|
|
40
|
-
import {
|
|
41
|
-
// 临时存储时间戳
|
|
42
|
-
let tempTimestamp = 0;
|
|
38
|
+
import { transferMessageApi2Message } from '../http/transform/index.ts.js';
|
|
39
|
+
import { ActivityType, MessageRole, MessageStatus, MessageType } from '../message/index.ts.js';
|
|
40
|
+
import { CustomEventName, EventType, FlowTaskState } from './type.ts.js';
|
|
43
41
|
/**
|
|
44
42
|
* AGUI 协议
|
|
45
43
|
* @param message - 消息模块
|
|
@@ -47,85 +45,171 @@ let tempTimestamp = 0;
|
|
|
47
45
|
/**
|
|
48
46
|
* 处理活动增量更新事件
|
|
49
47
|
* 使用 JSON Patch 格式增量更新活动数据
|
|
50
|
-
*/ handleActivityDeltaEvent(_event) {
|
|
51
|
-
// 可以在这里实现 JSON Patch 逻辑
|
|
52
|
-
// console.log('ActivityDelta:', event);
|
|
53
|
-
}
|
|
48
|
+
*/ handleActivityDeltaEvent(_event) {}
|
|
54
49
|
/**
|
|
55
50
|
* 处理活动快照事件
|
|
56
51
|
* 记录活动的完整状态
|
|
57
|
-
*/ handleActivitySnapshotEvent(_event) {
|
|
58
|
-
// 可以在这里存储活动快照
|
|
59
|
-
// console.log('ActivitySnapshot:', event);
|
|
60
|
-
}
|
|
52
|
+
*/ handleActivitySnapshotEvent(_event) {}
|
|
61
53
|
/**
|
|
62
54
|
* 处理自定义事件
|
|
63
55
|
*/ handleCustomEvent(event) {
|
|
64
|
-
switch(event.
|
|
65
|
-
case
|
|
56
|
+
switch(event.name){
|
|
57
|
+
case CustomEventName.FlowAgentStart:
|
|
58
|
+
this.handleFlowAgentStartCustomEvent(event);
|
|
59
|
+
break;
|
|
60
|
+
case CustomEventName.FlowAgentResult:
|
|
61
|
+
this.handleFlowAgentResultCustomEvent(event);
|
|
62
|
+
break;
|
|
63
|
+
case CustomEventName.FlowAgentEnd:
|
|
64
|
+
this.handleFlowAgentEndCustomEvent(event);
|
|
65
|
+
break;
|
|
66
|
+
case CustomEventName.ReferenceDocument:
|
|
66
67
|
this.handleReferenceDocumentCustomEvent(event);
|
|
67
68
|
break;
|
|
69
|
+
case CustomEventName.KnowledgeRagStart:
|
|
70
|
+
this.handleKnowledgeRagStartCustomEvent(event);
|
|
71
|
+
break;
|
|
72
|
+
case CustomEventName.KnowledgeRagTextContent:
|
|
73
|
+
this.handleKnowledgeRagTextContentCustomEvent(event);
|
|
74
|
+
break;
|
|
75
|
+
case CustomEventName.KnowledgeRagResult:
|
|
76
|
+
this.handleKnowledgeRagResultCustomEvent(event);
|
|
77
|
+
break;
|
|
78
|
+
case CustomEventName.KnowledgeRagEnd:
|
|
79
|
+
this.handleKnowledgeRagEndCustomEvent(event);
|
|
80
|
+
break;
|
|
81
|
+
case CustomEventName.TempMessage:
|
|
82
|
+
this.handleTempMessageCustomEvent(event);
|
|
83
|
+
break;
|
|
68
84
|
default:
|
|
69
85
|
break;
|
|
70
86
|
}
|
|
71
87
|
}
|
|
72
88
|
/**
|
|
89
|
+
* 自定义事件 处理流程编排任务结束
|
|
90
|
+
*/ handleFlowAgentEndCustomEvent(_event) {
|
|
91
|
+
const message = this.messageModule.getCurrentLoadingMessage();
|
|
92
|
+
if (message && message.role === MessageRole.Activity && message.activityType === ActivityType.FlowAgent) {
|
|
93
|
+
const value = _event.value;
|
|
94
|
+
message.content.task_outputs = value.task_outputs;
|
|
95
|
+
message.status = MessageStatus.Complete;
|
|
96
|
+
}
|
|
97
|
+
}
|
|
98
|
+
/**
|
|
99
|
+
* 自定义事件 处理流程编排任务结果(增量更新节点状态)
|
|
100
|
+
*/ handleFlowAgentResultCustomEvent(event) {
|
|
101
|
+
const message = this.messageModule.getCurrentLoadingMessage();
|
|
102
|
+
if (message && message.role === MessageRole.Activity && message.activityType === ActivityType.FlowAgent) {
|
|
103
|
+
message.content = event.value;
|
|
104
|
+
}
|
|
105
|
+
}
|
|
106
|
+
/**
|
|
107
|
+
* 自定义事件 处理流程编排任务开始
|
|
108
|
+
*/ handleFlowAgentStartCustomEvent(event) {
|
|
109
|
+
const value = event.value;
|
|
110
|
+
this.messageModule.plusMessage({
|
|
111
|
+
role: MessageRole.Activity,
|
|
112
|
+
activityType: ActivityType.FlowAgent,
|
|
113
|
+
content: {
|
|
114
|
+
nodes: {},
|
|
115
|
+
task_id: Number(value.task_id),
|
|
116
|
+
task_name: '',
|
|
117
|
+
task_outputs: [],
|
|
118
|
+
task_state: FlowTaskState.Created
|
|
119
|
+
},
|
|
120
|
+
status: MessageStatus.Streaming
|
|
121
|
+
});
|
|
122
|
+
}
|
|
123
|
+
/**
|
|
124
|
+
* 自定义事件 处理意图识别结束
|
|
125
|
+
*/ handleKnowledgeRagEndCustomEvent(_event) {
|
|
126
|
+
const message = this.messageModule.getCurrentLoadingMessage();
|
|
127
|
+
if (message && message.role === MessageRole.Activity && message.activityType === ActivityType.KnowledgeRag) {
|
|
128
|
+
message.status = MessageStatus.Complete;
|
|
129
|
+
}
|
|
130
|
+
}
|
|
131
|
+
/**
|
|
132
|
+
* 自定义事件 处理意图识别结果
|
|
133
|
+
*/ handleKnowledgeRagResultCustomEvent(event) {
|
|
134
|
+
const message = this.messageModule.getCurrentLoadingMessage();
|
|
135
|
+
if (message && message.role === MessageRole.Activity && message.activityType === ActivityType.KnowledgeRag) {
|
|
136
|
+
message.content.referenceDocument = event.value;
|
|
137
|
+
}
|
|
138
|
+
}
|
|
139
|
+
/**
|
|
140
|
+
* 自定义事件 处理意图识别开始
|
|
141
|
+
*/ handleKnowledgeRagStartCustomEvent(_event) {
|
|
142
|
+
this.messageModule.plusMessage({
|
|
143
|
+
role: MessageRole.Activity,
|
|
144
|
+
activityType: ActivityType.KnowledgeRag,
|
|
145
|
+
content: {
|
|
146
|
+
content: '',
|
|
147
|
+
referenceDocument: []
|
|
148
|
+
},
|
|
149
|
+
status: MessageStatus.Streaming
|
|
150
|
+
});
|
|
151
|
+
}
|
|
152
|
+
/**
|
|
153
|
+
* 自定义事件 处理意图识别文本
|
|
154
|
+
*/ handleKnowledgeRagTextContentCustomEvent(event) {
|
|
155
|
+
const message = this.messageModule.getCurrentLoadingMessage();
|
|
156
|
+
if (message && message.role === MessageRole.Activity && message.activityType === ActivityType.KnowledgeRag) {
|
|
157
|
+
const value = event.value;
|
|
158
|
+
message.content.content = value.cover ? value.chunk.content : message.content.content + value.chunk.content;
|
|
159
|
+
}
|
|
160
|
+
}
|
|
161
|
+
/**
|
|
73
162
|
* 处理消息快照事件
|
|
74
163
|
* 用于同步多端消息状态
|
|
75
164
|
*/ handleMessagesSnapshotEvent(event) {
|
|
76
|
-
|
|
165
|
+
if (event.messages && event.messages.length > 0) {
|
|
166
|
+
this.messageModule.list.value = event.messages.map(transferMessageApi2Message);
|
|
167
|
+
}
|
|
77
168
|
}
|
|
78
169
|
/**
|
|
79
170
|
* 处理原始事件
|
|
80
171
|
* 透传底层 AI 服务的原始事件
|
|
81
172
|
*/ handleRawEvent(_event) {
|
|
82
|
-
// console.log('Raw:',
|
|
173
|
+
// console.log('Raw:', _event);
|
|
83
174
|
}
|
|
84
175
|
/**
|
|
85
176
|
* 自定义事件 处理参考文档事件
|
|
86
177
|
*/ handleReferenceDocumentCustomEvent(event) {
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
message.content.push(referenceDocumentMessageContent);
|
|
95
|
-
}
|
|
178
|
+
// 可以在这里处理参考文档事件
|
|
179
|
+
this.messageModule.plusMessage({
|
|
180
|
+
role: MessageRole.Activity,
|
|
181
|
+
activityType: ActivityType.ReferenceDocument,
|
|
182
|
+
content: event.value,
|
|
183
|
+
status: MessageStatus.Complete
|
|
184
|
+
});
|
|
96
185
|
}
|
|
97
186
|
/**
|
|
98
187
|
* 处理运行错误事件
|
|
99
188
|
*/ handleRunErrorEvent(event) {
|
|
189
|
+
// 先把最后一个loading消息标记为complete
|
|
100
190
|
const message = this.messageModule.getCurrentLoadingMessage();
|
|
101
191
|
if (message) {
|
|
102
|
-
message.status = MessageStatus.
|
|
103
|
-
message.content = [
|
|
104
|
-
{
|
|
105
|
-
type: MessageContentType.Text,
|
|
106
|
-
data: event.message,
|
|
107
|
-
status: MessageContentStatus.Error
|
|
108
|
-
}
|
|
109
|
-
];
|
|
192
|
+
message.status = MessageStatus.Complete;
|
|
110
193
|
}
|
|
194
|
+
// 然后创建一个错误消息
|
|
195
|
+
this.messageModule.plusMessage({
|
|
196
|
+
role: MessageRole.Assistant,
|
|
197
|
+
content: event.message,
|
|
198
|
+
status: MessageStatus.Error
|
|
199
|
+
});
|
|
111
200
|
}
|
|
112
201
|
/**
|
|
113
202
|
* 处理运行完成事件
|
|
114
|
-
*/ handleRunFinishedEvent(
|
|
115
|
-
const message = this.messageModule.
|
|
203
|
+
*/ handleRunFinishedEvent(_event) {
|
|
204
|
+
const message = this.messageModule.getCurrentLoadingMessage();
|
|
116
205
|
if (message) {
|
|
117
206
|
message.status = MessageStatus.Complete;
|
|
118
207
|
}
|
|
119
208
|
}
|
|
120
209
|
/**
|
|
121
210
|
* 处理运行开始事件
|
|
122
|
-
*/ handleRunStartedEvent(
|
|
123
|
-
|
|
124
|
-
id: event.runId,
|
|
125
|
-
role: MessageRole.Assistant,
|
|
126
|
-
content: [],
|
|
127
|
-
status: MessageStatus.Streaming
|
|
128
|
-
});
|
|
211
|
+
*/ handleRunStartedEvent(_event) {
|
|
212
|
+
// 运行开始,可以在这里初始化相关状态
|
|
129
213
|
}
|
|
130
214
|
/**
|
|
131
215
|
* 处理状态增量更新事件
|
|
@@ -141,190 +225,180 @@ let tempTimestamp = 0;
|
|
|
141
225
|
/**
|
|
142
226
|
* 处理步骤完成事件
|
|
143
227
|
*/ handleStepFinishedEvent(_event) {
|
|
144
|
-
// console.log('StepFinished:',
|
|
228
|
+
// console.log('StepFinished:', _event);
|
|
145
229
|
}
|
|
146
230
|
/**
|
|
147
231
|
* 处理步骤开始事件
|
|
148
232
|
*/ handleStepStartedEvent(_event) {
|
|
149
|
-
// console.log('StepStarted:',
|
|
233
|
+
// console.log('StepStarted:', _event);
|
|
150
234
|
}
|
|
151
235
|
/**
|
|
152
|
-
*
|
|
236
|
+
* 自定义事件 处理临时消息,转换为 AI 文本消息
|
|
237
|
+
*/ handleTempMessageCustomEvent(event) {
|
|
238
|
+
const value = event.value;
|
|
239
|
+
this.messageModule.plusMessage({
|
|
240
|
+
role: MessageRole.Assistant,
|
|
241
|
+
content: value.message,
|
|
242
|
+
status: value.status
|
|
243
|
+
});
|
|
244
|
+
}
|
|
245
|
+
/**
|
|
246
|
+
* 处理文本消息块事件
|
|
153
247
|
*/ handleTextMessageChunkEvent(event) {
|
|
154
248
|
const message = this.messageModule.getCurrentLoadingMessage();
|
|
155
249
|
if (message) {
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
status: MessageContentStatus.Complete,
|
|
165
|
-
type: MessageContentType.Text,
|
|
166
|
-
data: event.delta
|
|
167
|
-
});
|
|
168
|
-
}
|
|
250
|
+
message.content += event.delta || '';
|
|
251
|
+
} else {
|
|
252
|
+
this.messageModule.plusMessage({
|
|
253
|
+
role: event.role,
|
|
254
|
+
content: event.delta || '',
|
|
255
|
+
status: MessageStatus.Complete,
|
|
256
|
+
messageId: event.messageId
|
|
257
|
+
});
|
|
169
258
|
}
|
|
170
259
|
}
|
|
171
260
|
/**
|
|
172
|
-
*
|
|
261
|
+
* 处理文本消息内容事件(流式输出)
|
|
173
262
|
*/ handleTextMessageContentEvent(event) {
|
|
174
|
-
const message = this.messageModule.
|
|
263
|
+
const message = this.messageModule.getMessageByMessageId(event.messageId);
|
|
175
264
|
if (message) {
|
|
176
|
-
|
|
177
|
-
if (messageContent) {
|
|
178
|
-
messageContent.data += event.delta;
|
|
179
|
-
}
|
|
265
|
+
message.content += event.delta;
|
|
180
266
|
}
|
|
181
267
|
}
|
|
182
268
|
/**
|
|
183
269
|
* 处理文本消息结束事件
|
|
184
270
|
*/ handleTextMessageEndEvent(event) {
|
|
185
|
-
const message = this.messageModule.
|
|
271
|
+
const message = this.messageModule.getMessageByMessageId(event.messageId);
|
|
186
272
|
if (message) {
|
|
187
|
-
|
|
188
|
-
if (messageContent) {
|
|
189
|
-
messageContent.status = MessageContentStatus.Complete;
|
|
190
|
-
}
|
|
273
|
+
message.status = MessageStatus.Complete;
|
|
191
274
|
}
|
|
192
275
|
}
|
|
193
276
|
/**
|
|
194
277
|
* 处理文本消息开始事件
|
|
195
278
|
*/ handleTextMessageStartEvent(event) {
|
|
196
|
-
|
|
197
|
-
|
|
198
|
-
|
|
199
|
-
|
|
200
|
-
|
|
201
|
-
|
|
202
|
-
data: ''
|
|
203
|
-
});
|
|
204
|
-
}
|
|
279
|
+
this.messageModule.plusMessage({
|
|
280
|
+
role: event.role,
|
|
281
|
+
content: '',
|
|
282
|
+
status: MessageStatus.Streaming,
|
|
283
|
+
messageId: event.messageId
|
|
284
|
+
});
|
|
205
285
|
}
|
|
206
286
|
/**
|
|
207
287
|
* 处理思考结束事件
|
|
208
288
|
*/ handleThinkingEndEvent(event) {
|
|
209
289
|
const message = this.messageModule.getCurrentLoadingMessage();
|
|
210
|
-
if (message && message.role === MessageRole.
|
|
211
|
-
|
|
212
|
-
|
|
213
|
-
lastThinkingMessageContent.status = MessageContentStatus.Complete;
|
|
214
|
-
lastThinkingMessageContent.data.duration = event.timestamp - tempTimestamp;
|
|
215
|
-
}
|
|
290
|
+
if (message && message.role === MessageRole.Reasoning) {
|
|
291
|
+
message.duration = event.duration;
|
|
292
|
+
message.status = MessageStatus.Complete;
|
|
216
293
|
}
|
|
217
294
|
}
|
|
218
295
|
/**
|
|
219
296
|
* 处理思考开始事件
|
|
220
|
-
*/ handleThinkingStartEvent(
|
|
221
|
-
|
|
222
|
-
|
|
223
|
-
|
|
224
|
-
|
|
225
|
-
|
|
226
|
-
const thinkingMessageContent = {
|
|
227
|
-
status: MessageContentStatus.Streaming,
|
|
228
|
-
type: MessageContentType.Thinking,
|
|
229
|
-
data: {
|
|
230
|
-
text: '',
|
|
231
|
-
title: event.title
|
|
232
|
-
}
|
|
233
|
-
};
|
|
234
|
-
message.content.push(thinkingMessageContent);
|
|
235
|
-
}
|
|
297
|
+
*/ handleThinkingStartEvent(_event) {
|
|
298
|
+
this.messageModule.plusMessage({
|
|
299
|
+
role: MessageRole.Reasoning,
|
|
300
|
+
content: [],
|
|
301
|
+
status: MessageStatus.Streaming
|
|
302
|
+
});
|
|
236
303
|
}
|
|
237
304
|
/**
|
|
238
305
|
* 处理思考文本消息内容事件
|
|
239
306
|
*/ handleThinkingTextMessageContentEvent(event) {
|
|
240
307
|
const message = this.messageModule.getCurrentLoadingMessage();
|
|
241
|
-
if (message && message.role === MessageRole.
|
|
242
|
-
|
|
243
|
-
if (lastThinkingMessageContent) {
|
|
244
|
-
lastThinkingMessageContent.data.text += event.delta;
|
|
245
|
-
}
|
|
308
|
+
if (message && message.role === MessageRole.Reasoning) {
|
|
309
|
+
message.content[message.content.length - 1] += event.delta;
|
|
246
310
|
}
|
|
247
311
|
}
|
|
248
312
|
/**
|
|
249
313
|
* 处理思考文本消息结束事件
|
|
250
314
|
*/ handleThinkingTextMessageEndEvent(_event) {
|
|
251
|
-
// console.log(
|
|
315
|
+
// console.log(_event);
|
|
252
316
|
}
|
|
253
317
|
/**
|
|
254
318
|
* 处理思考文本消息开始事件
|
|
255
319
|
*/ handleThinkingTextMessageStartEvent(_event) {
|
|
256
|
-
|
|
320
|
+
const message = this.messageModule.getCurrentLoadingMessage();
|
|
321
|
+
if (message && message.role === MessageRole.Reasoning) {
|
|
322
|
+
message.content.push('');
|
|
323
|
+
}
|
|
257
324
|
}
|
|
258
325
|
/**
|
|
259
326
|
* 处理工具调用参数事件
|
|
260
327
|
*/ handleToolCallArgsEvent(event) {
|
|
261
|
-
|
|
262
|
-
|
|
263
|
-
|
|
264
|
-
|
|
265
|
-
|
|
328
|
+
this.messageModule.list.value.forEach((item)=>{
|
|
329
|
+
if (item.role === MessageRole.Assistant && item.toolCalls) {
|
|
330
|
+
item.toolCalls.forEach((toolCall)=>{
|
|
331
|
+
if (toolCall.id === event.toolCallId) {
|
|
332
|
+
toolCall['function'].arguments += event.delta;
|
|
333
|
+
}
|
|
334
|
+
});
|
|
266
335
|
}
|
|
267
|
-
}
|
|
336
|
+
});
|
|
268
337
|
}
|
|
269
338
|
/**
|
|
270
339
|
* 处理工具调用块事件
|
|
271
|
-
*/ handleToolCallChunkEvent(
|
|
272
|
-
const message = this.messageModule.getCurrentLoadingMessage();
|
|
273
|
-
if (message && message.role === MessageRole.Assistant) {
|
|
274
|
-
const toolCallMessageContent = message.content.find((item)=>item.type === MessageContentType.ToolCall && item.data.toolCallId === event.toolCallId);
|
|
275
|
-
if ((toolCallMessageContent === null || toolCallMessageContent === void 0 ? void 0 : toolCallMessageContent.type) === MessageContentType.ToolCall) {
|
|
276
|
-
toolCallMessageContent.data.chunk += event.delta;
|
|
277
|
-
}
|
|
278
|
-
}
|
|
279
|
-
}
|
|
340
|
+
*/ handleToolCallChunkEvent(_event) {}
|
|
280
341
|
/**
|
|
281
342
|
* 处理工具调用结束事件
|
|
282
343
|
*/ handleToolCallEndEvent(event) {
|
|
283
|
-
|
|
284
|
-
|
|
285
|
-
|
|
286
|
-
|
|
287
|
-
|
|
344
|
+
this.messageModule.list.value.forEach((item)=>{
|
|
345
|
+
if (item.role === MessageRole.Assistant && item.toolCalls) {
|
|
346
|
+
if (item.toolCalls.some((toolCall)=>toolCall.id === event.toolCallId)) {
|
|
347
|
+
item.status = MessageStatus.Complete;
|
|
348
|
+
}
|
|
288
349
|
}
|
|
289
|
-
}
|
|
350
|
+
});
|
|
290
351
|
}
|
|
291
352
|
/**
|
|
292
353
|
* 处理工具调用结果事件
|
|
293
354
|
*/ handleToolCallResultEvent(event) {
|
|
294
|
-
|
|
295
|
-
|
|
296
|
-
|
|
297
|
-
|
|
298
|
-
|
|
299
|
-
|
|
300
|
-
|
|
355
|
+
this.messageModule.plusMessage({
|
|
356
|
+
role: MessageRole.Tool,
|
|
357
|
+
content: event.content,
|
|
358
|
+
duration: event.duration,
|
|
359
|
+
status: MessageStatus.Complete,
|
|
360
|
+
toolCallId: event.toolCallId,
|
|
361
|
+
messageId: event.messageId
|
|
362
|
+
});
|
|
301
363
|
}
|
|
302
364
|
/**
|
|
303
365
|
* 处理工具调用开始事件
|
|
304
366
|
*/ handleToolCallStartEvent(event) {
|
|
305
|
-
|
|
306
|
-
|
|
307
|
-
|
|
308
|
-
|
|
309
|
-
|
|
310
|
-
|
|
311
|
-
|
|
312
|
-
|
|
313
|
-
|
|
367
|
+
this.messageModule.plusMessage({
|
|
368
|
+
role: MessageRole.Assistant,
|
|
369
|
+
content: '',
|
|
370
|
+
status: MessageStatus.Streaming,
|
|
371
|
+
toolCalls: [
|
|
372
|
+
{
|
|
373
|
+
id: event.toolCallId,
|
|
374
|
+
type: MessageType.Function,
|
|
375
|
+
function: {
|
|
376
|
+
mcpName: event.mcpName,
|
|
377
|
+
name: event.toolCallName,
|
|
378
|
+
arguments: '',
|
|
379
|
+
description: event.description
|
|
380
|
+
}
|
|
314
381
|
}
|
|
315
|
-
|
|
316
|
-
|
|
317
|
-
}
|
|
382
|
+
]
|
|
383
|
+
});
|
|
318
384
|
}
|
|
319
385
|
injectMessageModule(message) {
|
|
320
386
|
this.messageModule = message;
|
|
321
387
|
}
|
|
322
388
|
onDone() {
|
|
323
|
-
var
|
|
389
|
+
var // 回调给上层
|
|
390
|
+
_this_onDoneCallback, _this;
|
|
324
391
|
(_this_onDoneCallback = (_this = this).onDoneCallback) === null || _this_onDoneCallback === void 0 ? void 0 : _this_onDoneCallback.call(_this);
|
|
325
392
|
}
|
|
326
393
|
onError(error) {
|
|
327
|
-
var
|
|
394
|
+
var // 回调给上层
|
|
395
|
+
_this_onErrorCallback, _this;
|
|
396
|
+
// 创建一个错误消息
|
|
397
|
+
this.messageModule.plusMessage({
|
|
398
|
+
role: MessageRole.Assistant,
|
|
399
|
+
content: error.message,
|
|
400
|
+
status: MessageStatus.Error
|
|
401
|
+
});
|
|
328
402
|
(_this_onErrorCallback = (_this = this).onErrorCallback) === null || _this_onErrorCallback === void 0 ? void 0 : _this_onErrorCallback.call(_this, error);
|
|
329
403
|
}
|
|
330
404
|
onMessage(message) {
|