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