@blueking/chat-helper 0.0.12-beta.12 → 0.0.12-beta.14
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/dist/agent/use-agent.d.ts +386 -386
- package/dist/event/ag-ui.ts.js +1 -2
- package/dist/event/type.d.ts +2 -2
- package/dist/http/fetch/fetch.ts.js +80 -16
- package/dist/http/index.d.ts +2 -2
- package/dist/http/module/index.d.ts +2 -2
- package/dist/http/module/message.d.ts +2 -2
- package/dist/http/module/message.ts.js +2 -2
- package/dist/http/transform/message.d.ts +0 -6
- package/dist/http/transform/message.ts.js +0 -52
- package/dist/index.d.ts +3218 -3218
- package/dist/message/use-message.d.ts +586 -586
- package/dist/session/use-session.d.ts +2369 -2369
- package/package.json +1 -1
package/dist/event/ag-ui.ts.js
CHANGED
|
@@ -35,7 +35,6 @@
|
|
|
35
35
|
}
|
|
36
36
|
return obj;
|
|
37
37
|
}
|
|
38
|
-
import { mergeArtifactsActivityIntoMessages, transferMessageApi2Message } from '../http/transform/index.ts.js';
|
|
39
38
|
import { ActivityType, MessageRole, MessageStatus, MessageType } from '../message/index.ts.js';
|
|
40
39
|
import { CustomEventName, EventType, FlowTaskState, RunFinishedOutcomeType } from './type.ts.js';
|
|
41
40
|
/**
|
|
@@ -246,7 +245,7 @@ import { CustomEventName, EventType, FlowTaskState, RunFinishedOutcomeType } fro
|
|
|
246
245
|
* 用于同步多端消息状态
|
|
247
246
|
*/ handleMessagesSnapshotEvent(event) {
|
|
248
247
|
if (event.messages && event.messages.length > 0) {
|
|
249
|
-
this.messageModule.list.value =
|
|
248
|
+
this.messageModule.list.value = event.messages;
|
|
250
249
|
}
|
|
251
250
|
}
|
|
252
251
|
/**
|
package/dist/event/type.d.ts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { type
|
|
1
|
+
import { type IMessage, type IMessageArtifact, type MessageRole, type MessageStatus } from '../message/type';
|
|
2
2
|
import type { JSONSchema4 } from 'json-schema';
|
|
3
3
|
export declare enum CustomEventName {
|
|
4
4
|
ArtifactsGenerated = "artifacts_generated",
|
|
@@ -176,7 +176,7 @@ export interface IKnowledgeRagTextContentCustomValue {
|
|
|
176
176
|
* 同步多端消息状态
|
|
177
177
|
*/
|
|
178
178
|
export interface IMessagesSnapshotEvent extends IBaseEvent {
|
|
179
|
-
messages:
|
|
179
|
+
messages: IMessage[];
|
|
180
180
|
type: EventType.MessagesSnapshot;
|
|
181
181
|
}
|
|
182
182
|
/**
|
|
@@ -276,7 +276,12 @@ export class FetchClient {
|
|
|
276
276
|
var _this = this;
|
|
277
277
|
return _async_to_generator(function*() {
|
|
278
278
|
const { url, fetchConfig, requestConfig, controller } = _this.prepareRequest(config);
|
|
279
|
-
|
|
279
|
+
// 超时与用户主动取消共用同一个 AbortController,需靠此标记区分
|
|
280
|
+
let timedOut = false;
|
|
281
|
+
const timeoutId = requestConfig.timeout && requestConfig.timeout > 0 ? setTimeout(()=>{
|
|
282
|
+
timedOut = true;
|
|
283
|
+
controller.abort();
|
|
284
|
+
}, requestConfig.timeout) : undefined;
|
|
280
285
|
try {
|
|
281
286
|
const fetchResponse = yield fetch(url, fetchConfig);
|
|
282
287
|
if (timeoutId) {
|
|
@@ -319,9 +324,8 @@ export class FetchClient {
|
|
|
319
324
|
};
|
|
320
325
|
const validateStatus = requestConfig.validateStatus || _this.defaults.validateStatus;
|
|
321
326
|
if (!validateStatus(fetchResponse.status)) {
|
|
322
|
-
|
|
323
|
-
|
|
324
|
-
throw createError(message, requestConfig, `ERR_BAD_RESPONSE`, response);
|
|
327
|
+
const { code, message } = resolveErrorPayload(response.data, `Request failed with status code ${fetchResponse.status}`);
|
|
328
|
+
throw createError(message, requestConfig, code, response);
|
|
325
329
|
}
|
|
326
330
|
let finalResponse = response;
|
|
327
331
|
_this.interceptors.response.forEach((interceptor)=>{
|
|
@@ -341,23 +345,28 @@ export class FetchClient {
|
|
|
341
345
|
}
|
|
342
346
|
// 检查业务状态码(区别于 HTTP 状态码)
|
|
343
347
|
const apiResponse = finalResponse.data;
|
|
348
|
+
// 无响应体(如 204 或空 body)时没有业务码可校验,直接放行
|
|
349
|
+
if (!apiResponse) {
|
|
350
|
+
return undefined;
|
|
351
|
+
}
|
|
344
352
|
if (![
|
|
345
353
|
0,
|
|
346
354
|
'success'
|
|
347
355
|
].includes(apiResponse.code)) {
|
|
348
|
-
|
|
356
|
+
const { code, message } = resolveErrorPayload(apiResponse, `Request failed with code ${apiResponse.code}`);
|
|
357
|
+
throw createError(message, requestConfig, code, finalResponse);
|
|
349
358
|
}
|
|
350
359
|
return apiResponse.data;
|
|
351
360
|
} catch (error) {
|
|
352
361
|
if (timeoutId) {
|
|
353
362
|
clearTimeout(timeoutId);
|
|
354
363
|
}
|
|
355
|
-
//
|
|
356
|
-
if (error instanceof Error && error.name === 'AbortError') {
|
|
364
|
+
// 用户手动取消请求;超时同样表现为 AbortError,需作为异常上报
|
|
365
|
+
if (error instanceof Error && error.name === 'AbortError' && !timedOut) {
|
|
357
366
|
console.warn('User canceled request', error.message);
|
|
358
367
|
return;
|
|
359
368
|
}
|
|
360
|
-
const requestError = error.isAxiosError === true ? error : createError(error.message, requestConfig, error.code, undefined);
|
|
369
|
+
const requestError = timedOut ? createError(`timeout of ${requestConfig.timeout}ms exceeded`, requestConfig, 'ECONNABORTED', undefined) : error.isAxiosError === true ? error : createError(error.message, requestConfig, error.code, undefined);
|
|
361
370
|
_this.dispatchError(requestError);
|
|
362
371
|
throw _this.applyResponseErrorInterceptors(requestError);
|
|
363
372
|
}
|
|
@@ -396,17 +405,14 @@ export class FetchClient {
|
|
|
396
405
|
const fetchResponse = yield fetch(url, fetchConfig);
|
|
397
406
|
const validateStatus = requestConfig.validateStatus || _this.defaults.validateStatus;
|
|
398
407
|
if (!validateStatus(fetchResponse.status)) {
|
|
399
|
-
let
|
|
408
|
+
let errorData = null;
|
|
400
409
|
try {
|
|
401
|
-
|
|
402
|
-
const errorData = yield fetchResponse.json();
|
|
403
|
-
if (errorData === null || errorData === void 0 ? void 0 : (_errorData_error = errorData.error) === null || _errorData_error === void 0 ? void 0 : _errorData_error.message) {
|
|
404
|
-
message = errorData.error.message;
|
|
405
|
-
}
|
|
410
|
+
errorData = yield fetchResponse.json();
|
|
406
411
|
} catch (_error) {
|
|
407
|
-
|
|
412
|
+
errorData = null;
|
|
408
413
|
}
|
|
409
|
-
const
|
|
414
|
+
const { code, message } = resolveErrorPayload(errorData, `Request failed with status code ${fetchResponse.status}`);
|
|
415
|
+
const error = createError(message, requestConfig, code, undefined);
|
|
410
416
|
wrappedOnError(error);
|
|
411
417
|
return;
|
|
412
418
|
}
|
|
@@ -503,6 +509,64 @@ function buildURL(url, params) {
|
|
|
503
509
|
}
|
|
504
510
|
return url;
|
|
505
511
|
}
|
|
512
|
+
/**
|
|
513
|
+
* 从错误响应体中解析业务错误信息
|
|
514
|
+
*
|
|
515
|
+
* 后端错误体存在多种形态,需逐一兼容:
|
|
516
|
+
* - 新版网关 / aidev 插件:`{ error: { code, message, data } }`
|
|
517
|
+
* - 旧版蓝鲸标准(如 blueapps 登录态失效):`{ result, code, message, data }`
|
|
518
|
+
* - DRF 原生异常:`{ detail }`
|
|
519
|
+
*/ function resolveErrorPayload(body, fallbackMessage) {
|
|
520
|
+
var _record_error;
|
|
521
|
+
const fallbackCode = 'ERR_BAD_RESPONSE';
|
|
522
|
+
if (!body || typeof body !== 'object') {
|
|
523
|
+
return {
|
|
524
|
+
code: fallbackCode,
|
|
525
|
+
message: fallbackMessage
|
|
526
|
+
};
|
|
527
|
+
}
|
|
528
|
+
const record = body;
|
|
529
|
+
if ((_record_error = record.error) === null || _record_error === void 0 ? void 0 : _record_error.message) {
|
|
530
|
+
var _record_error_code;
|
|
531
|
+
return {
|
|
532
|
+
code: (_record_error_code = record.error.code) !== null && _record_error_code !== void 0 ? _record_error_code : fallbackCode,
|
|
533
|
+
data: record.error.data,
|
|
534
|
+
message: stringifyErrorMessage(record.error.message, fallbackMessage)
|
|
535
|
+
};
|
|
536
|
+
}
|
|
537
|
+
if (record.message) {
|
|
538
|
+
var _record_code;
|
|
539
|
+
return {
|
|
540
|
+
code: (_record_code = record.code) !== null && _record_code !== void 0 ? _record_code : fallbackCode,
|
|
541
|
+
data: record.data,
|
|
542
|
+
message: stringifyErrorMessage(record.message, fallbackMessage)
|
|
543
|
+
};
|
|
544
|
+
}
|
|
545
|
+
if (record.detail) {
|
|
546
|
+
var _record_code1;
|
|
547
|
+
return {
|
|
548
|
+
code: (_record_code1 = record.code) !== null && _record_code1 !== void 0 ? _record_code1 : fallbackCode,
|
|
549
|
+
data: record.data,
|
|
550
|
+
message: stringifyErrorMessage(record.detail, fallbackMessage)
|
|
551
|
+
};
|
|
552
|
+
}
|
|
553
|
+
var _record_code2;
|
|
554
|
+
return {
|
|
555
|
+
code: (_record_code2 = record.code) !== null && _record_code2 !== void 0 ? _record_code2 : fallbackCode,
|
|
556
|
+
data: record.data,
|
|
557
|
+
message: fallbackMessage
|
|
558
|
+
};
|
|
559
|
+
}
|
|
560
|
+
/** 错误 message 可能是字符串以外的结构(如字段校验字典),统一转成可读文案 */ function stringifyErrorMessage(message, fallbackMessage) {
|
|
561
|
+
if (typeof message === 'string') {
|
|
562
|
+
return message || fallbackMessage;
|
|
563
|
+
}
|
|
564
|
+
try {
|
|
565
|
+
return JSON.stringify(message) || fallbackMessage;
|
|
566
|
+
} catch (_error) {
|
|
567
|
+
return fallbackMessage;
|
|
568
|
+
}
|
|
569
|
+
}
|
|
506
570
|
function createError(message, config, code, response) {
|
|
507
571
|
const error = new Error(message);
|
|
508
572
|
error.config = config;
|
package/dist/http/index.d.ts
CHANGED
|
@@ -44,8 +44,8 @@ export declare const useHttp: (options: IUseChatHelperOptions) => {
|
|
|
44
44
|
};
|
|
45
45
|
message: {
|
|
46
46
|
getMessages: (sessionCode: string, limit?: number, config?: import("./fetch").IRequestConfig) => Promise<import("..").IMessage[]>;
|
|
47
|
-
plusMessage: (data: import("..").IMessage, config?: import("./fetch").IRequestConfig) => Promise<import("..").IActivityMessage | import("..").IAssistantMessage | import("..").IDeveloperMessage | import("..").
|
|
48
|
-
modifyMessage: (data: import("..").IMessage, config?: import("./fetch").IRequestConfig) => Promise<import("..").IActivityMessage | import("..").IAssistantMessage | import("..").IDeveloperMessage | import("..").
|
|
47
|
+
plusMessage: (data: import("..").IMessage, config?: import("./fetch").IRequestConfig) => Promise<import("..").IActivityMessage | import("..").IAssistantMessage | import("..").IDeveloperMessage | import("..").IGuideMessage | import("..").IHiddenAssistantMessage | import("..").IHiddenGuideMessage | import("..").IHiddenMessage | import("..").IHiddenSystemMessage | import("..").IHiddenUserMessage | import("..").IInfoMessage | import("..").IPauseMessage | import("..").IPlaceholderMessage | import("..").IReasoningMessage | import("..").ISystemMessage | import("..").ITemplateAssistantMessage | import("..").ITemplateGuideMessage | import("..").ITemplateHiddenMessage | import("..").ITemplateSystemMessage | import("..").ITemplateUserMessage | import("..").IToolMessage | import("..").IUserMessage | import("..").IInterruptMessage>;
|
|
48
|
+
modifyMessage: (data: import("..").IMessage, config?: import("./fetch").IRequestConfig) => Promise<import("..").IActivityMessage | import("..").IAssistantMessage | import("..").IDeveloperMessage | import("..").IGuideMessage | import("..").IHiddenAssistantMessage | import("..").IHiddenGuideMessage | import("..").IHiddenMessage | import("..").IHiddenSystemMessage | import("..").IHiddenUserMessage | import("..").IInfoMessage | import("..").IPauseMessage | import("..").IPlaceholderMessage | import("..").IReasoningMessage | import("..").ISystemMessage | import("..").ITemplateAssistantMessage | import("..").ITemplateGuideMessage | import("..").ITemplateHiddenMessage | import("..").ITemplateSystemMessage | import("..").ITemplateUserMessage | import("..").IToolMessage | import("..").IUserMessage | import("..").IInterruptMessage>;
|
|
49
49
|
deleteMessage: (id: string, config?: import("./fetch").IRequestConfig) => Promise<import("..").IMessage>;
|
|
50
50
|
batchDeleteMessages: (ids: string[], config?: import("./fetch").IRequestConfig) => Promise<number>;
|
|
51
51
|
shareMessages: (sessionCode: string, contentIds: string[], expiredAt?: number, config?: import("./fetch").IRequestConfig) => Promise<import("./module/message").IShareMessagesResponse>;
|
|
@@ -39,8 +39,8 @@ export declare const useModule: (fetchClient: FetchClient) => {
|
|
|
39
39
|
};
|
|
40
40
|
message: {
|
|
41
41
|
getMessages: (sessionCode: string, limit?: number, config?: import("../fetch").IRequestConfig) => Promise<import("../..").IMessage[]>;
|
|
42
|
-
plusMessage: (data: import("../..").IMessage, config?: import("../fetch").IRequestConfig) => Promise<import("../..").IActivityMessage | import("../..").IAssistantMessage | import("../..").IDeveloperMessage | import("../..").
|
|
43
|
-
modifyMessage: (data: import("../..").IMessage, config?: import("../fetch").IRequestConfig) => Promise<import("../..").IActivityMessage | import("../..").IAssistantMessage | import("../..").IDeveloperMessage | import("../..").
|
|
42
|
+
plusMessage: (data: import("../..").IMessage, config?: import("../fetch").IRequestConfig) => Promise<import("../..").IActivityMessage | import("../..").IAssistantMessage | import("../..").IDeveloperMessage | import("../..").IGuideMessage | import("../..").IHiddenAssistantMessage | import("../..").IHiddenGuideMessage | import("../..").IHiddenMessage | import("../..").IHiddenSystemMessage | import("../..").IHiddenUserMessage | import("../..").IInfoMessage | import("../..").IPauseMessage | import("../..").IPlaceholderMessage | import("../..").IReasoningMessage | import("../..").ISystemMessage | import("../..").ITemplateAssistantMessage | import("../..").ITemplateGuideMessage | import("../..").ITemplateHiddenMessage | import("../..").ITemplateSystemMessage | import("../..").ITemplateUserMessage | import("../..").IToolMessage | import("../..").IUserMessage | import("../..").IInterruptMessage>;
|
|
43
|
+
modifyMessage: (data: import("../..").IMessage, config?: import("../fetch").IRequestConfig) => Promise<import("../..").IActivityMessage | import("../..").IAssistantMessage | import("../..").IDeveloperMessage | import("../..").IGuideMessage | import("../..").IHiddenAssistantMessage | import("../..").IHiddenGuideMessage | import("../..").IHiddenMessage | import("../..").IHiddenSystemMessage | import("../..").IHiddenUserMessage | import("../..").IInfoMessage | import("../..").IPauseMessage | import("../..").IPlaceholderMessage | import("../..").IReasoningMessage | import("../..").ISystemMessage | import("../..").ITemplateAssistantMessage | import("../..").ITemplateGuideMessage | import("../..").ITemplateHiddenMessage | import("../..").ITemplateSystemMessage | import("../..").ITemplateUserMessage | import("../..").IToolMessage | import("../..").IUserMessage | import("../..").IInterruptMessage>;
|
|
44
44
|
deleteMessage: (id: string, config?: import("../fetch").IRequestConfig) => Promise<import("../..").IMessage>;
|
|
45
45
|
batchDeleteMessages: (ids: string[], config?: import("../fetch").IRequestConfig) => Promise<number>;
|
|
46
46
|
shareMessages: (sessionCode: string, contentIds: string[], expiredAt?: number, config?: import("../fetch").IRequestConfig) => Promise<import("./message").IShareMessagesResponse>;
|
|
@@ -20,8 +20,8 @@ export interface IShareMessagesResponse {
|
|
|
20
20
|
*/
|
|
21
21
|
export declare const useMessage: (fetchClient: FetchClient) => {
|
|
22
22
|
getMessages: (sessionCode: string, limit?: number, config?: IRequestConfig) => Promise<IMessage[]>;
|
|
23
|
-
plusMessage: (data: IMessage, config?: IRequestConfig) => Promise<import("../../message/type").IActivityMessage | import("../../message/type").IAssistantMessage | import("../../message/type").IDeveloperMessage | import("../../message/type").
|
|
24
|
-
modifyMessage: (data: IMessage, config?: IRequestConfig) => Promise<import("../../message/type").IActivityMessage | import("../../message/type").IAssistantMessage | import("../../message/type").IDeveloperMessage | import("../../message/type").
|
|
23
|
+
plusMessage: (data: IMessage, config?: IRequestConfig) => Promise<import("../../message/type").IActivityMessage | import("../../message/type").IAssistantMessage | import("../../message/type").IDeveloperMessage | import("../../message/type").IGuideMessage | import("../../message/type").IHiddenAssistantMessage | import("../../message/type").IHiddenGuideMessage | import("../../message/type").IHiddenMessage | import("../../message/type").IHiddenSystemMessage | import("../../message/type").IHiddenUserMessage | import("../../message/type").IInfoMessage | import("../../message/type").IPauseMessage | import("../../message/type").IPlaceholderMessage | import("../../message/type").IReasoningMessage | import("../../message/type").ISystemMessage | import("../../message/type").ITemplateAssistantMessage | import("../../message/type").ITemplateGuideMessage | import("../../message/type").ITemplateHiddenMessage | import("../../message/type").ITemplateSystemMessage | import("../../message/type").ITemplateUserMessage | import("../../message/type").IToolMessage | import("../../message/type").IUserMessage | import("../../message/type").IInterruptMessage>;
|
|
24
|
+
modifyMessage: (data: IMessage, config?: IRequestConfig) => Promise<import("../../message/type").IActivityMessage | import("../../message/type").IAssistantMessage | import("../../message/type").IDeveloperMessage | import("../../message/type").IGuideMessage | import("../../message/type").IHiddenAssistantMessage | import("../../message/type").IHiddenGuideMessage | import("../../message/type").IHiddenMessage | import("../../message/type").IHiddenSystemMessage | import("../../message/type").IHiddenUserMessage | import("../../message/type").IInfoMessage | import("../../message/type").IPauseMessage | import("../../message/type").IPlaceholderMessage | import("../../message/type").IReasoningMessage | import("../../message/type").ISystemMessage | import("../../message/type").ITemplateAssistantMessage | import("../../message/type").ITemplateGuideMessage | import("../../message/type").ITemplateHiddenMessage | import("../../message/type").ITemplateSystemMessage | import("../../message/type").ITemplateUserMessage | import("../../message/type").IToolMessage | import("../../message/type").IUserMessage | import("../../message/type").IInterruptMessage>;
|
|
25
25
|
deleteMessage: (id: string, config?: IRequestConfig) => Promise<IMessage>;
|
|
26
26
|
batchDeleteMessages: (ids: string[], config?: IRequestConfig) => Promise<number>;
|
|
27
27
|
shareMessages: (sessionCode: string, contentIds: string[], expiredAt?: number, config?: IRequestConfig) => Promise<IShareMessagesResponse>;
|
|
@@ -50,7 +50,7 @@ function _object_spread(target) {
|
|
|
50
50
|
}
|
|
51
51
|
return target;
|
|
52
52
|
}
|
|
53
|
-
import { transferMessage2MessageApi, transferMessageApi2Message
|
|
53
|
+
import { transferMessage2MessageApi, transferMessageApi2Message } from '../transform/message.ts.js';
|
|
54
54
|
/**
|
|
55
55
|
* message 相关 http 接口
|
|
56
56
|
* @param fetchClient - 请求客户端
|
|
@@ -60,7 +60,7 @@ import { transferMessage2MessageApi, transferMessageApi2Message, mergeArtifactsA
|
|
|
60
60
|
const getMessages = (sessionCode, limit, config)=>fetchClient.get(`session_content/content/`, {
|
|
61
61
|
session_code: sessionCode,
|
|
62
62
|
limit
|
|
63
|
-
}, config).then((res)=>
|
|
63
|
+
}, config).then((res)=>res.map(transferMessageApi2Message));
|
|
64
64
|
// 新增会话内容
|
|
65
65
|
const plusMessage = (data, config)=>fetchClient.post(`session_content/`, transferMessage2MessageApi(data), config).then(transferMessageApi2Message);
|
|
66
66
|
// 修改会话内容
|
|
@@ -11,9 +11,3 @@ export declare const transferMessageApi2Message: (data: IMessageApi) => IMessage
|
|
|
11
11
|
* @returns API 使用的消息数据
|
|
12
12
|
*/
|
|
13
13
|
export declare const transferMessage2MessageApi: (data: IMessage) => IMessageApi;
|
|
14
|
-
/**
|
|
15
|
-
* 将历史/快照中的 artifacts_generated activity 合并到前一条 Assistant 的 property.artifacts,
|
|
16
|
-
* 并过滤掉该 activity(UI 只从 Assistant.property.artifacts 渲染)。
|
|
17
|
-
* 实时 SSE 已写过 property.artifacts;历史回填依赖此归一化。
|
|
18
|
-
*/
|
|
19
|
-
export declare const mergeArtifactsActivityIntoMessages: (messages: IMessage[]) => IMessage[];
|
|
@@ -617,55 +617,3 @@ import { ActivityType, MessageRole, MessageType } from '../../message/type.ts.js
|
|
|
617
617
|
}
|
|
618
618
|
}
|
|
619
619
|
};
|
|
620
|
-
/**
|
|
621
|
-
* 将历史/快照中的 artifacts_generated activity 合并到前一条 Assistant 的 property.artifacts,
|
|
622
|
-
* 并过滤掉该 activity(UI 只从 Assistant.property.artifacts 渲染)。
|
|
623
|
-
* 实时 SSE 已写过 property.artifacts;历史回填依赖此归一化。
|
|
624
|
-
*/ export const mergeArtifactsActivityIntoMessages = (messages)=>{
|
|
625
|
-
const result = [];
|
|
626
|
-
for (const message of messages){
|
|
627
|
-
var _activity_content, _activity_property;
|
|
628
|
-
if (message.role !== MessageRole.Activity) {
|
|
629
|
-
result.push(message);
|
|
630
|
-
continue;
|
|
631
|
-
}
|
|
632
|
-
const activity = message;
|
|
633
|
-
if (activity.activityType !== ActivityType.ArtifactsGenerated) {
|
|
634
|
-
result.push(message);
|
|
635
|
-
continue;
|
|
636
|
-
}
|
|
637
|
-
const artifacts = (_activity_content = activity.content) === null || _activity_content === void 0 ? void 0 : _activity_content.artifacts;
|
|
638
|
-
// status=empty 或无产物:丢弃 activity,不渲染
|
|
639
|
-
if (!(artifacts === null || artifacts === void 0 ? void 0 : artifacts.length)) {
|
|
640
|
-
continue;
|
|
641
|
-
}
|
|
642
|
-
const activityTurnId = (_activity_property = activity.property) === null || _activity_property === void 0 ? void 0 : _activity_property.turn_id;
|
|
643
|
-
let matchedByTurn = -1;
|
|
644
|
-
let nearestAssistant = -1;
|
|
645
|
-
for(let i = result.length - 1; i >= 0; i -= 1){
|
|
646
|
-
var _candidate_property;
|
|
647
|
-
if (result[i].role !== MessageRole.Assistant) {
|
|
648
|
-
continue;
|
|
649
|
-
}
|
|
650
|
-
const candidate = result[i];
|
|
651
|
-
if (nearestAssistant < 0) {
|
|
652
|
-
nearestAssistant = i;
|
|
653
|
-
}
|
|
654
|
-
if (activityTurnId && ((_candidate_property = candidate.property) === null || _candidate_property === void 0 ? void 0 : _candidate_property.turn_id) === activityTurnId) {
|
|
655
|
-
matchedByTurn = i;
|
|
656
|
-
break;
|
|
657
|
-
}
|
|
658
|
-
}
|
|
659
|
-
const targetIndex = matchedByTurn >= 0 ? matchedByTurn : nearestAssistant;
|
|
660
|
-
if (targetIndex >= 0) {
|
|
661
|
-
const assistant = result[targetIndex];
|
|
662
|
-
result[targetIndex] = _object_spread_props(_object_spread({}, assistant), {
|
|
663
|
-
property: _object_spread_props(_object_spread({}, assistant.property), {
|
|
664
|
-
artifacts
|
|
665
|
-
})
|
|
666
|
-
});
|
|
667
|
-
}
|
|
668
|
-
// 始终丢弃 artifacts_generated activity
|
|
669
|
-
}
|
|
670
|
-
return result;
|
|
671
|
-
};
|