@blueking/chat-helper 0.0.12-beta.9 → 0.0.12
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 +21 -7
- package/dist/agent/type.d.ts +84 -0
- package/dist/agent/type.ts.js +5 -1
- package/dist/agent/use-agent.d.ts +573 -360
- package/dist/agent/use-agent.ts.js +365 -25
- package/dist/event/ag-ui.d.ts +4 -1
- package/dist/event/ag-ui.ts.js +106 -7
- package/dist/event/type.d.ts +15 -3
- package/dist/event/type.ts.js +2 -0
- package/dist/http/fetch/fetch.spec.d.ts +1 -0
- package/dist/http/fetch/fetch.ts.js +106 -22
- package/dist/http/index.d.ts +13 -7
- package/dist/http/module/agent.d.ts +2 -0
- package/dist/http/module/agent.ts.js +19 -2
- package/dist/http/module/index.d.ts +13 -7
- package/dist/http/module/message.d.ts +3 -3
- package/dist/http/module/message.ts.js +4 -3
- package/dist/http/module/session.d.ts +10 -5
- package/dist/http/module/session.ts.js +60 -3
- package/dist/http/transform/agent.d.ts +9 -1
- package/dist/http/transform/agent.spec.d.ts +1 -0
- package/dist/http/transform/agent.ts.js +32 -2
- package/dist/http/transform/message.ts.js +17 -5
- package/dist/index.d.ts +3844 -2720
- package/dist/message/type.d.ts +30 -3
- package/dist/message/type.ts.js +16 -0
- package/dist/message/use-message.d.ts +685 -385
- package/dist/session/index.d.ts +1 -0
- package/dist/session/index.ts.js +2 -1
- package/dist/session/pv-file-upload.d.ts +7 -0
- package/dist/session/pv-file-upload.spec.d.ts +1 -0
- package/dist/session/pv-file-upload.ts.js +64 -0
- package/dist/session/type.d.ts +57 -0
- package/dist/session/use-session.d.ts +2539 -1933
- package/dist/session/use-session.spec.d.ts +1 -0
- package/dist/session/use-session.ts.js +117 -10
- package/package.json +4 -2
|
@@ -19,9 +19,9 @@ export interface IShareMessagesResponse {
|
|
|
19
19
|
* @returns message 相关 http 接口
|
|
20
20
|
*/
|
|
21
21
|
export declare const useMessage: (fetchClient: FetchClient) => {
|
|
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").
|
|
22
|
+
getMessages: (sessionCode: string, limit?: number, config?: IRequestConfig, fuzzy?: string) => Promise<IMessage[]>;
|
|
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>;
|
|
@@ -56,10 +56,11 @@ import { transferMessage2MessageApi, transferMessageApi2Message } from '../trans
|
|
|
56
56
|
* @param fetchClient - 请求客户端
|
|
57
57
|
* @returns message 相关 http 接口
|
|
58
58
|
*/ export const useMessage = (fetchClient)=>{
|
|
59
|
-
//
|
|
60
|
-
const getMessages = (sessionCode, limit, config)=>fetchClient.get(`session_content/content/`, {
|
|
59
|
+
// 获取会话内容列表(fuzzy 置于末尾,避免影响既有 limit/config 调用)
|
|
60
|
+
const getMessages = (sessionCode, limit, config, fuzzy)=>fetchClient.get(`session_content/content/`, {
|
|
61
61
|
session_code: sessionCode,
|
|
62
|
-
limit
|
|
62
|
+
limit,
|
|
63
|
+
fuzzy
|
|
63
64
|
}, config).then((res)=>res.map(transferMessageApi2Message));
|
|
64
65
|
// 新增会话内容
|
|
65
66
|
const plusMessage = (data, config)=>fetchClient.post(`session_content/`, transferMessage2MessageApi(data), config).then(transferMessageApi2Message);
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import type { ISession, ISessionFeedback } from '../../session/type';
|
|
1
|
+
import type { GetPvFileDownloadUrlOptions, ILegacyUploadFileResult, IPvFileDownloadUrlResult, IPvFileUploadResult, ISession, ISessionFeedback, ISessionListParams } from '../../session/type';
|
|
2
2
|
import type { FetchClient, IRequestConfig } from '../fetch';
|
|
3
3
|
/**
|
|
4
4
|
* session 相关 http 接口
|
|
@@ -7,7 +7,12 @@ import type { FetchClient, IRequestConfig } from '../fetch';
|
|
|
7
7
|
*/
|
|
8
8
|
export declare const useSession: (fetchClient: FetchClient) => {
|
|
9
9
|
clearSession: (sessionCode: string, config?: IRequestConfig) => Promise<unknown>;
|
|
10
|
-
getSessions: (config?: IRequestConfig) => Promise<
|
|
10
|
+
getSessions: (params?: ISessionListParams, config?: IRequestConfig) => Promise<{
|
|
11
|
+
page: number;
|
|
12
|
+
numPages: number;
|
|
13
|
+
count: number;
|
|
14
|
+
results: ISession<unknown, unknown>[];
|
|
15
|
+
}>;
|
|
11
16
|
plusSession: (data: ISession, config?: IRequestConfig) => Promise<ISession<unknown, unknown>>;
|
|
12
17
|
modifySession: (data: ISession, config?: IRequestConfig) => Promise<ISession<unknown, unknown>>;
|
|
13
18
|
deleteSession: (sessionCode: string, config?: IRequestConfig) => Promise<unknown>;
|
|
@@ -22,8 +27,8 @@ export declare const useSession: (fetchClient: FetchClient) => {
|
|
|
22
27
|
}>;
|
|
23
28
|
getSessionFeedbackReasons: (rate: number, config?: IRequestConfig) => Promise<string[]>;
|
|
24
29
|
renameSession: (sessionCode: string, config?: IRequestConfig) => Promise<ISession<unknown, unknown>>;
|
|
25
|
-
uploadFile: (sessionCode: string, file: File, config?: IRequestConfig) => Promise<
|
|
26
|
-
|
|
27
|
-
|
|
30
|
+
uploadFile: (sessionCode: string, file: File, config?: IRequestConfig) => Promise<ILegacyUploadFileResult>;
|
|
31
|
+
uploadPvFiles: (sessionCode: string, files: File[], config?: IRequestConfig) => Promise<IPvFileUploadResult>;
|
|
32
|
+
getPvFileDownloadUrl: (sessionCode: string, path: string, options?: GetPvFileDownloadUrlOptions, config?: IRequestConfig) => Promise<IPvFileDownloadUrlResult>;
|
|
28
33
|
isResumeSession: (sessionCode: string, config?: IRequestConfig) => Promise<boolean>;
|
|
29
34
|
};
|
|
@@ -77,6 +77,32 @@ function _object_spread_props(target, source) {
|
|
|
77
77
|
import { transferSession2SessionApi, transferSessionApi2Session, transferSessionFeedback2SessionFeedbackApi, transferSessionFeedbackApi2SessionFeedback } from '../transform/session.ts.js';
|
|
78
78
|
import { resolveRequestValue } from '../fetch/index.ts.js';
|
|
79
79
|
/** 上传接口传输用文件名前缀,与原始展示名解耦 */ const UPLOAD_FILE_NAME_PREFIX = 'upload_file';
|
|
80
|
+
/** 会话列表默认每页条数 */ const DEFAULT_PAGE_SIZE = 20;
|
|
81
|
+
const DEFAULT_PV_FILE_DOWNLOAD_EXPIRES_IN = 600;
|
|
82
|
+
const DEFAULT_PV_FILE_DOWNLOAD_TIMEOUT = 20000;
|
|
83
|
+
/**
|
|
84
|
+
* 将会话列表接口响应统一为分页结构。
|
|
85
|
+
* 兼容两类后台:
|
|
86
|
+
* 1. 分页:`{ page, num_pages, count, results }`
|
|
87
|
+
* 2. 未分页(旧接口):直接返回 `ISessionApi[]`
|
|
88
|
+
*/ const normalizeSessionListResponse = (res)=>{
|
|
89
|
+
if (Array.isArray(res)) {
|
|
90
|
+
return {
|
|
91
|
+
page: 1,
|
|
92
|
+
numPages: 1,
|
|
93
|
+
count: res.length,
|
|
94
|
+
results: res.map(transferSessionApi2Session)
|
|
95
|
+
};
|
|
96
|
+
}
|
|
97
|
+
const results = Array.isArray(res === null || res === void 0 ? void 0 : res.results) ? res.results : [];
|
|
98
|
+
var _res_page, _res_num_pages, _res_count;
|
|
99
|
+
return {
|
|
100
|
+
page: (_res_page = res === null || res === void 0 ? void 0 : res.page) !== null && _res_page !== void 0 ? _res_page : 1,
|
|
101
|
+
numPages: (_res_num_pages = res === null || res === void 0 ? void 0 : res.num_pages) !== null && _res_num_pages !== void 0 ? _res_num_pages : 1,
|
|
102
|
+
count: (_res_count = res === null || res === void 0 ? void 0 : res.count) !== null && _res_count !== void 0 ? _res_count : results.length,
|
|
103
|
+
results: results.map(transferSessionApi2Session)
|
|
104
|
+
};
|
|
105
|
+
};
|
|
80
106
|
/** 从原始文件名提取 ASCII 安全扩展名,用于保留文件类型 */ const getSafeFileExtension = (fileName)=>{
|
|
81
107
|
const extension = fileName.split('.').pop();
|
|
82
108
|
if (!extension || extension === fileName) {
|
|
@@ -103,8 +129,14 @@ import { resolveRequestValue } from '../fetch/index.ts.js';
|
|
|
103
129
|
*/ export const useSession = (fetchClient)=>{
|
|
104
130
|
// 清除聊天上下文
|
|
105
131
|
const clearSession = (sessionCode, config)=>fetchClient.post(`chat_completion/${sessionCode}/clear/`, undefined, config);
|
|
106
|
-
//
|
|
107
|
-
const getSessions = (
|
|
132
|
+
// 获取会话列表(分页;兼容未支持分页的后台返回数组)
|
|
133
|
+
const getSessions = (params, config)=>{
|
|
134
|
+
var _params_page, _params_page_size;
|
|
135
|
+
return fetchClient.get(`session/`, {
|
|
136
|
+
page: (_params_page = params === null || params === void 0 ? void 0 : params.page) !== null && _params_page !== void 0 ? _params_page : 1,
|
|
137
|
+
page_size: (_params_page_size = params === null || params === void 0 ? void 0 : params.page_size) !== null && _params_page_size !== void 0 ? _params_page_size : DEFAULT_PAGE_SIZE
|
|
138
|
+
}, config).then(normalizeSessionListResponse);
|
|
139
|
+
};
|
|
108
140
|
// 新增会话
|
|
109
141
|
const plusSession = (data, config)=>fetchClient.post(`session/`, transferSession2SessionApi(data), config).then((res)=>transferSessionApi2Session(res));
|
|
110
142
|
// 修改会话
|
|
@@ -125,7 +157,7 @@ import { resolveRequestValue } from '../fetch/index.ts.js';
|
|
|
125
157
|
}, config);
|
|
126
158
|
// 会话重命名
|
|
127
159
|
const renameSession = (sessionCode, config)=>fetchClient.post(`session/${sessionCode}/ai_rename/`, undefined, config).then((res)=>transferSessionApi2Session(res));
|
|
128
|
-
//
|
|
160
|
+
// 旧版上传:session/{code}/upload/{asciiFileName}/(agent_sdk_version < 2.2.2rc25)
|
|
129
161
|
const uploadFile = (sessionCode, file, config)=>{
|
|
130
162
|
const safeFileName = buildSafeUploadFileName(file);
|
|
131
163
|
const fileName = encodeURIComponent(safeFileName);
|
|
@@ -137,6 +169,29 @@ import { resolveRequestValue } from '../fetch/index.ts.js';
|
|
|
137
169
|
})
|
|
138
170
|
})));
|
|
139
171
|
};
|
|
172
|
+
/** 新版批量上传:session/{code}/pv_files/upload/(agent_sdk_version ≥ 2.2.2rc25) */ const uploadPvFiles = (sessionCode, files, config)=>{
|
|
173
|
+
const formData = new FormData();
|
|
174
|
+
for (const file of files){
|
|
175
|
+
formData.append('files', file);
|
|
176
|
+
}
|
|
177
|
+
return fetchClient.post(`session/${sessionCode}/pv_files/upload/`, formData, config);
|
|
178
|
+
};
|
|
179
|
+
/**
|
|
180
|
+
* 签发会话 PV 文件的临时 download_url / preview_url。
|
|
181
|
+
* path 为文件相对路径(artifacts 的 outputId);URLSearchParams 会自动编码,勿二次 encode。
|
|
182
|
+
*/ const getPvFileDownloadUrl = (sessionCode, path, options, config)=>{
|
|
183
|
+
var _options_expiresIn;
|
|
184
|
+
const expiresIn = (_options_expiresIn = options === null || options === void 0 ? void 0 : options.expiresIn) !== null && _options_expiresIn !== void 0 ? _options_expiresIn : DEFAULT_PV_FILE_DOWNLOAD_EXPIRES_IN;
|
|
185
|
+
var _options_timeout;
|
|
186
|
+
const timeout = (_options_timeout = options === null || options === void 0 ? void 0 : options.timeout) !== null && _options_timeout !== void 0 ? _options_timeout : DEFAULT_PV_FILE_DOWNLOAD_TIMEOUT;
|
|
187
|
+
var _config_timeout;
|
|
188
|
+
return fetchClient.get(`session/${sessionCode}/pv_files/download_url/`, {
|
|
189
|
+
expires_in: expiresIn,
|
|
190
|
+
path
|
|
191
|
+
}, _object_spread_props(_object_spread({}, config), {
|
|
192
|
+
timeout: (_config_timeout = config === null || config === void 0 ? void 0 : config.timeout) !== null && _config_timeout !== void 0 ? _config_timeout : timeout
|
|
193
|
+
}));
|
|
194
|
+
};
|
|
140
195
|
// 轮询接口,判断是否可以继续聊天
|
|
141
196
|
const isResumeSession = (sessionCode, config)=>fetchClient.get(`session/${sessionCode}/is_resume/`, undefined, config);
|
|
142
197
|
return {
|
|
@@ -151,6 +206,8 @@ import { resolveRequestValue } from '../fetch/index.ts.js';
|
|
|
151
206
|
getSessionFeedbackReasons,
|
|
152
207
|
renameSession,
|
|
153
208
|
uploadFile,
|
|
209
|
+
uploadPvFiles,
|
|
210
|
+
getPvFileDownloadUrl,
|
|
154
211
|
isResumeSession
|
|
155
212
|
};
|
|
156
213
|
};
|
|
@@ -1,7 +1,15 @@
|
|
|
1
|
-
import type { IAgentInfo, IAgentInfoApi } from '../../agent/type';
|
|
1
|
+
import type { IAgentInfo, IAgentInfoApi, ILlmItem, ILlmItemApi } from '../../agent/type';
|
|
2
2
|
/**
|
|
3
3
|
* 将 API 返回的 agent 信息数据转换为前端使用的 agent 信息数据
|
|
4
4
|
* @param data API 返回的 agent 信息数据
|
|
5
5
|
* @returns 前端使用的 agent 信息数据
|
|
6
6
|
*/
|
|
7
7
|
export declare const transferAgentInfoApi2AgentInfo: (data: IAgentInfoApi) => IAgentInfo;
|
|
8
|
+
/**
|
|
9
|
+
* 将 llms/ 接口单项规范化为前端 ILlmItem(补齐缺省字段,避免 UI 崩溃)
|
|
10
|
+
*/
|
|
11
|
+
export declare const transferLlmApi2LlmItem: (data: ILlmItemApi) => ILlmItem;
|
|
12
|
+
/**
|
|
13
|
+
* 将 llms/ 列表响应规范化为 ILlmItem[]
|
|
14
|
+
*/
|
|
15
|
+
export declare const transferLlmListApi2LlmItems: (data: ILlmItemApi[] | null | undefined) => ILlmItem[];
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -27,7 +27,7 @@
|
|
|
27
27
|
* @param data API 返回的 agent 信息数据
|
|
28
28
|
* @returns 前端使用的 agent 信息数据
|
|
29
29
|
*/ export const transferAgentInfoApi2AgentInfo = (data)=>{
|
|
30
|
-
var _data_conversation_settings, _data_conversation_settings1, _data_conversation_settings_commands, _data_conversation_settings2, _data_conversation_settings3, _data_related_skills;
|
|
30
|
+
var _data_conversation_settings, _data_conversation_settings1, _data_conversation_settings_commands, _data_conversation_settings2, _data_conversation_settings3, _data_conversation_settings4, _data_related_skills;
|
|
31
31
|
return {
|
|
32
32
|
conversationSettings: {
|
|
33
33
|
openingRemark: data === null || data === void 0 ? void 0 : (_data_conversation_settings = data.conversation_settings) === null || _data_conversation_settings === void 0 ? void 0 : _data_conversation_settings.opening_remark,
|
|
@@ -56,13 +56,16 @@
|
|
|
56
56
|
status: command.status,
|
|
57
57
|
supportUpload: command.support_upload
|
|
58
58
|
})),
|
|
59
|
-
enableChatSession: data === null || data === void 0 ? void 0 : (_data_conversation_settings3 = data.conversation_settings) === null || _data_conversation_settings3 === void 0 ? void 0 : _data_conversation_settings3.enable_chat_session
|
|
59
|
+
enableChatSession: data === null || data === void 0 ? void 0 : (_data_conversation_settings3 = data.conversation_settings) === null || _data_conversation_settings3 === void 0 ? void 0 : _data_conversation_settings3.enable_chat_session,
|
|
60
|
+
enableWordSelectionPopup: data === null || data === void 0 ? void 0 : (_data_conversation_settings4 = data.conversation_settings) === null || _data_conversation_settings4 === void 0 ? void 0 : _data_conversation_settings4.enable_word_selection_popup
|
|
60
61
|
},
|
|
61
62
|
promptSetting: (data === null || data === void 0 ? void 0 : data.prompt_setting) ? {
|
|
62
63
|
content: data.prompt_setting.content,
|
|
63
64
|
supportUpload: data.prompt_setting.support_upload
|
|
64
65
|
} : undefined,
|
|
65
66
|
agentName: data === null || data === void 0 ? void 0 : data.agent_name,
|
|
67
|
+
agentType: data === null || data === void 0 ? void 0 : data.agent_type,
|
|
68
|
+
agentSdkVersion: data === null || data === void 0 ? void 0 : data.agent_sdk_version,
|
|
66
69
|
relatedSkills: data === null || data === void 0 ? void 0 : (_data_related_skills = data.related_skills) === null || _data_related_skills === void 0 ? void 0 : _data_related_skills.map((skill)=>({
|
|
67
70
|
id: skill.id,
|
|
68
71
|
skill_name: skill.skill_name,
|
|
@@ -79,3 +82,30 @@
|
|
|
79
82
|
resources: data === null || data === void 0 ? void 0 : data.resources
|
|
80
83
|
};
|
|
81
84
|
};
|
|
85
|
+
/**
|
|
86
|
+
* 将 llms/ 接口单项规范化为前端 ILlmItem(补齐缺省字段,避免 UI 崩溃)
|
|
87
|
+
*/ export const transferLlmApi2LlmItem = (data)=>{
|
|
88
|
+
var _data_id, _data_llm_type, _data_icon, _data_description, _data_max_token_size, _data_property, _data_space_auth_mode, _data_user_auth_mode;
|
|
89
|
+
return {
|
|
90
|
+
id: (_data_id = data.id) !== null && _data_id !== void 0 ? _data_id : 0,
|
|
91
|
+
llm_code: data.llm_code,
|
|
92
|
+
llm_name: data.llm_name,
|
|
93
|
+
llm_type: (_data_llm_type = data.llm_type) !== null && _data_llm_type !== void 0 ? _data_llm_type : 'chat.completion',
|
|
94
|
+
icon: (_data_icon = data.icon) !== null && _data_icon !== void 0 ? _data_icon : '',
|
|
95
|
+
description: (_data_description = data.description) !== null && _data_description !== void 0 ? _data_description : '',
|
|
96
|
+
base_model: data.base_model,
|
|
97
|
+
max_token_size: (_data_max_token_size = data.max_token_size) !== null && _data_max_token_size !== void 0 ? _data_max_token_size : 0,
|
|
98
|
+
property: (_data_property = data.property) !== null && _data_property !== void 0 ? _data_property : {},
|
|
99
|
+
space_auth_mode: (_data_space_auth_mode = data.space_auth_mode) !== null && _data_space_auth_mode !== void 0 ? _data_space_auth_mode : '',
|
|
100
|
+
user_auth_mode: (_data_user_auth_mode = data.user_auth_mode) !== null && _data_user_auth_mode !== void 0 ? _data_user_auth_mode : '',
|
|
101
|
+
tag_names: data.tag_names
|
|
102
|
+
};
|
|
103
|
+
};
|
|
104
|
+
/**
|
|
105
|
+
* 将 llms/ 列表响应规范化为 ILlmItem[]
|
|
106
|
+
*/ export const transferLlmListApi2LlmItems = (data)=>{
|
|
107
|
+
if (!Array.isArray(data)) {
|
|
108
|
+
return [];
|
|
109
|
+
}
|
|
110
|
+
return data.map(transferLlmApi2LlmItem);
|
|
111
|
+
};
|
|
@@ -74,20 +74,23 @@ function _object_spread_props(target, source) {
|
|
|
74
74
|
}
|
|
75
75
|
return target;
|
|
76
76
|
}
|
|
77
|
-
import { ActivityType, MessageRole, MessageType } from '../../message/type.ts.js';
|
|
77
|
+
import { ActivityType, MessageRole, MessageType, resolveMessageCreatedAt } from '../../message/type.ts.js';
|
|
78
78
|
/**
|
|
79
79
|
* 将 API 返回的消息数据转换为前端使用的消息数据
|
|
80
80
|
* @param data API 返回的消息数据
|
|
81
81
|
* @returns 前端使用的消息数据
|
|
82
82
|
*/ export const transferMessageApi2Message = (data)=>{
|
|
83
|
-
const
|
|
83
|
+
const createdAt = resolveMessageCreatedAt(data);
|
|
84
|
+
const baseMessage = _object_spread_props(_object_spread({}, createdAt ? {
|
|
85
|
+
createdAt
|
|
86
|
+
} : {}), {
|
|
84
87
|
id: data.id,
|
|
85
88
|
messageId: data.message_id,
|
|
86
89
|
name: data.name,
|
|
87
90
|
role: data.role,
|
|
88
91
|
sessionCode: data.session_code,
|
|
89
92
|
status: data.status
|
|
90
|
-
};
|
|
93
|
+
});
|
|
91
94
|
// 处理不同类型的消息
|
|
92
95
|
switch(data.role){
|
|
93
96
|
case MessageRole.Activity:
|
|
@@ -113,6 +116,7 @@ import { ActivityType, MessageRole, MessageType } from '../../message/type.ts.js
|
|
|
113
116
|
break;
|
|
114
117
|
}
|
|
115
118
|
case ActivityType.FlowAgent:
|
|
119
|
+
case ActivityType.ArtifactsGenerated:
|
|
116
120
|
default:
|
|
117
121
|
content = activityData.content;
|
|
118
122
|
break;
|
|
@@ -120,6 +124,7 @@ import { ActivityType, MessageRole, MessageType } from '../../message/type.ts.js
|
|
|
120
124
|
const result = _object_spread_props(_object_spread({}, baseMessage), {
|
|
121
125
|
activityType: activityData.activity_type,
|
|
122
126
|
content,
|
|
127
|
+
property: activityData.property,
|
|
123
128
|
role: activityData.role
|
|
124
129
|
});
|
|
125
130
|
return result;
|
|
@@ -326,6 +331,7 @@ import { ActivityType, MessageRole, MessageType } from '../../message/type.ts.js
|
|
|
326
331
|
filename: binaryItem.filename,
|
|
327
332
|
id: binaryItem.id,
|
|
328
333
|
mimeType: binaryItem.mime_type,
|
|
334
|
+
size: binaryItem.size,
|
|
329
335
|
type: binaryItem.type,
|
|
330
336
|
url: binaryItem.url
|
|
331
337
|
};
|
|
@@ -349,14 +355,17 @@ import { ActivityType, MessageRole, MessageType } from '../../message/type.ts.js
|
|
|
349
355
|
* @param data 前端使用的消息数据
|
|
350
356
|
* @returns API 使用的消息数据
|
|
351
357
|
*/ export const transferMessage2MessageApi = (data)=>{
|
|
352
|
-
const
|
|
358
|
+
const createdAt = resolveMessageCreatedAt(data);
|
|
359
|
+
const baseMessage = _object_spread_props(_object_spread({}, createdAt ? {
|
|
360
|
+
created_at: createdAt
|
|
361
|
+
} : {}), {
|
|
353
362
|
id: data.id,
|
|
354
363
|
message_id: data.messageId,
|
|
355
364
|
name: data.name,
|
|
356
365
|
role: data.role,
|
|
357
366
|
session_code: data.sessionCode,
|
|
358
367
|
status: data.status
|
|
359
|
-
};
|
|
368
|
+
});
|
|
360
369
|
// 处理不同类型的消息
|
|
361
370
|
switch(data.role){
|
|
362
371
|
case MessageRole.Activity:
|
|
@@ -382,6 +391,7 @@ import { ActivityType, MessageRole, MessageType } from '../../message/type.ts.js
|
|
|
382
391
|
break;
|
|
383
392
|
}
|
|
384
393
|
case ActivityType.FlowAgent:
|
|
394
|
+
case ActivityType.ArtifactsGenerated:
|
|
385
395
|
default:
|
|
386
396
|
content = activityData.content;
|
|
387
397
|
break;
|
|
@@ -389,6 +399,7 @@ import { ActivityType, MessageRole, MessageType } from '../../message/type.ts.js
|
|
|
389
399
|
const result = _object_spread_props(_object_spread({}, baseMessage), {
|
|
390
400
|
activity_type: activityData.activityType,
|
|
391
401
|
content,
|
|
402
|
+
property: activityData.property,
|
|
392
403
|
role: activityData.role
|
|
393
404
|
});
|
|
394
405
|
return result;
|
|
@@ -595,6 +606,7 @@ import { ActivityType, MessageRole, MessageType } from '../../message/type.ts.js
|
|
|
595
606
|
filename: binaryItem.filename,
|
|
596
607
|
id: binaryItem.id,
|
|
597
608
|
mime_type: binaryItem.mimeType,
|
|
609
|
+
size: binaryItem.size,
|
|
598
610
|
type: binaryItem.type,
|
|
599
611
|
url: binaryItem.url
|
|
600
612
|
};
|