@zero-library/chat-copilot 3.1.18 → 3.1.19
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/index.cjs.js +64 -72
- package/dist/index.cjs.js.map +1 -1
- package/dist/index.d.mts +4 -1
- package/dist/index.d.ts +4 -1
- package/dist/index.esm.js +64 -72
- package/dist/index.esm.js.map +1 -1
- package/package.json +2 -2
package/dist/index.d.mts
CHANGED
|
@@ -870,7 +870,7 @@ declare const createChatService: (request: ReturnType<typeof createRequest>, con
|
|
|
870
870
|
}) => Promise<R<WorkspaceTag[]>>;
|
|
871
871
|
getAgentAvatar: (path: string) => Promise<Blob>;
|
|
872
872
|
conversationFavorite: (conversationId: string, isFavorite: boolean) => Promise<R<boolean>>;
|
|
873
|
-
shareConversation: (conversationId: string) => Promise<R<
|
|
873
|
+
shareConversation: (conversationId: string) => Promise<R<ShareConversationResponse>>;
|
|
874
874
|
};
|
|
875
875
|
|
|
876
876
|
type RequestInstance = Partial<ReturnType<typeof createChatService>>;
|
|
@@ -1777,6 +1777,9 @@ interface DownloadFileReq {
|
|
|
1777
1777
|
agentId?: string;
|
|
1778
1778
|
isPreview?: boolean;
|
|
1779
1779
|
}
|
|
1780
|
+
interface ShareConversationResponse {
|
|
1781
|
+
url: string;
|
|
1782
|
+
}
|
|
1780
1783
|
|
|
1781
1784
|
/**
|
|
1782
1785
|
* 附件组件属性接口
|
package/dist/index.d.ts
CHANGED
|
@@ -870,7 +870,7 @@ declare const createChatService: (request: ReturnType<typeof createRequest>, con
|
|
|
870
870
|
}) => Promise<R<WorkspaceTag[]>>;
|
|
871
871
|
getAgentAvatar: (path: string) => Promise<Blob>;
|
|
872
872
|
conversationFavorite: (conversationId: string, isFavorite: boolean) => Promise<R<boolean>>;
|
|
873
|
-
shareConversation: (conversationId: string) => Promise<R<
|
|
873
|
+
shareConversation: (conversationId: string) => Promise<R<ShareConversationResponse>>;
|
|
874
874
|
};
|
|
875
875
|
|
|
876
876
|
type RequestInstance = Partial<ReturnType<typeof createChatService>>;
|
|
@@ -1777,6 +1777,9 @@ interface DownloadFileReq {
|
|
|
1777
1777
|
agentId?: string;
|
|
1778
1778
|
isPreview?: boolean;
|
|
1779
1779
|
}
|
|
1780
|
+
interface ShareConversationResponse {
|
|
1781
|
+
url: string;
|
|
1782
|
+
}
|
|
1780
1783
|
|
|
1781
1784
|
/**
|
|
1782
1785
|
* 附件组件属性接口
|
package/dist/index.esm.js
CHANGED
|
@@ -44,7 +44,7 @@ var styles_module_default = {
|
|
|
44
44
|
chatAttachments: "styles_module_chatAttachments",
|
|
45
45
|
chatSender: "styles_module_chatSender"};
|
|
46
46
|
var Attachments_default = forwardRef(({ fileUpload, fileUploadConfig, fileList = [], onChange, extraParams }, ref) => {
|
|
47
|
-
const { message:
|
|
47
|
+
const { message: message3 } = App.useApp();
|
|
48
48
|
const chatStore = useChatStore();
|
|
49
49
|
const configState = useSnapshot(chatStore.config);
|
|
50
50
|
const fileListRef = useRef([]);
|
|
@@ -72,7 +72,7 @@ var Attachments_default = forwardRef(({ fileUpload, fileUploadConfig, fileList =
|
|
|
72
72
|
onChange(files);
|
|
73
73
|
}, [attachedFiles]);
|
|
74
74
|
const onErrorTip = useDebounce((errorMsg) => {
|
|
75
|
-
|
|
75
|
+
message3.error(errorMsg);
|
|
76
76
|
}, 300);
|
|
77
77
|
const findConfig = (file) => {
|
|
78
78
|
return fileUploadConfig?.allowedTypes?.find((type) => type === getFileSuffixName(file.name)) || "";
|
|
@@ -1017,7 +1017,7 @@ var createChatService = (request, config) => {
|
|
|
1017
1017
|
return request.put("/agents/conversations/favorite", { conversationIds: [conversationId], favorite: isFavorite });
|
|
1018
1018
|
};
|
|
1019
1019
|
const shareConversation = (conversationId) => {
|
|
1020
|
-
return request.
|
|
1020
|
+
return request.post(`/agents/conversations/${conversationId}/share/url`);
|
|
1021
1021
|
};
|
|
1022
1022
|
return {
|
|
1023
1023
|
fetchModelList,
|
|
@@ -1617,7 +1617,7 @@ function createChatStore() {
|
|
|
1617
1617
|
}
|
|
1618
1618
|
if (isMain) config.hooks?.onStepMessage?.(msg);
|
|
1619
1619
|
}
|
|
1620
|
-
function doneCallback(msg,
|
|
1620
|
+
function doneCallback(msg, message3, isMain) {
|
|
1621
1621
|
conversation.messages[msg.conversationId].loading = false;
|
|
1622
1622
|
const messages = conversation.messages[msg.conversationId]?.message;
|
|
1623
1623
|
if (messages) {
|
|
@@ -1910,9 +1910,9 @@ function createChatStore() {
|
|
|
1910
1910
|
}
|
|
1911
1911
|
}
|
|
1912
1912
|
}
|
|
1913
|
-
function processMessageContent(
|
|
1913
|
+
function processMessageContent(message3, targetMessages) {
|
|
1914
1914
|
const newMessage = {
|
|
1915
|
-
...
|
|
1915
|
+
...message3,
|
|
1916
1916
|
agentId: agent.agentInfo.id
|
|
1917
1917
|
};
|
|
1918
1918
|
const isMain = !targetMessages;
|
|
@@ -1980,13 +1980,13 @@ function createChatStore() {
|
|
|
1980
1980
|
}
|
|
1981
1981
|
processMessageContent(newMessage);
|
|
1982
1982
|
};
|
|
1983
|
-
const sendMessage = async (
|
|
1983
|
+
const sendMessage = async (message3, msgFiles = [], params) => {
|
|
1984
1984
|
const conversationId = conversation.active.id;
|
|
1985
1985
|
if (conversation.messages[conversationId].loading) return;
|
|
1986
1986
|
let msgContent = "", files;
|
|
1987
1987
|
const references = conversation.messages[conversationId].references;
|
|
1988
|
-
if (
|
|
1989
|
-
msgContent =
|
|
1988
|
+
if (message3) {
|
|
1989
|
+
msgContent = message3;
|
|
1990
1990
|
files = [...msgFiles, ...conversation.messages[conversationId].files || []];
|
|
1991
1991
|
} else {
|
|
1992
1992
|
if (references?.type === 1 && references?.content?.msgContent) {
|
|
@@ -2033,9 +2033,9 @@ function createChatStore() {
|
|
|
2033
2033
|
};
|
|
2034
2034
|
const extraParams = deepCopy(config.params?.params || {});
|
|
2035
2035
|
const userInputParams = variablesToObject(conversation.active.userInput || []);
|
|
2036
|
-
Object.assign(extraParams,
|
|
2036
|
+
Object.assign(extraParams, message3 ? {} : { ...references?.params }, params, userInputParams);
|
|
2037
2037
|
sendParams.params = extraParams;
|
|
2038
|
-
if (!
|
|
2038
|
+
if (!message3) {
|
|
2039
2039
|
setContent("");
|
|
2040
2040
|
setContentParams();
|
|
2041
2041
|
setReferences();
|
|
@@ -2259,14 +2259,9 @@ var ConversationShareBtn_default = ({ icon, ...rest }) => {
|
|
|
2259
2259
|
const conversationState = useSnapshot(chatStore.conversation);
|
|
2260
2260
|
const configState = useSnapshot(chatStore.config);
|
|
2261
2261
|
const handleShareConversation = async () => {
|
|
2262
|
-
|
|
2263
|
-
|
|
2264
|
-
|
|
2265
|
-
copyText(data);
|
|
2266
|
-
message.success("\u5206\u4EAB\u94FE\u63A5\u5DF2\u590D\u5236\u5230\u526A\u8D34\u677F");
|
|
2267
|
-
}
|
|
2268
|
-
} catch (error) {
|
|
2269
|
-
message.error("\u5206\u4EAB\u4F1A\u8BDD\u5931\u8D25");
|
|
2262
|
+
const { data } = await configState.services.request.shareConversation(conversationState.active.id);
|
|
2263
|
+
if (data) {
|
|
2264
|
+
copyText(data.url);
|
|
2270
2265
|
}
|
|
2271
2266
|
};
|
|
2272
2267
|
return /* @__PURE__ */ jsx(
|
|
@@ -3144,12 +3139,12 @@ var DocDrawer_default = ({ title, open, onClose, paramsStr }) => {
|
|
|
3144
3139
|
}, [paramsStr]);
|
|
3145
3140
|
return /* @__PURE__ */ jsx(Drawer, { title, push: false, size: "100%", open, onClose, children: /* @__PURE__ */ jsx(Spin, { spinning: loading, children: content ? /* @__PURE__ */ jsx(XMarkdown, { content }) : /* @__PURE__ */ jsx(Empty, { className: "m-t-32" }) }) });
|
|
3146
3141
|
};
|
|
3147
|
-
var IndexQuote_default = ({ data, loading, message:
|
|
3142
|
+
var IndexQuote_default = ({ data, loading, message: message3 }) => {
|
|
3148
3143
|
const [open, setOpen] = useState(false);
|
|
3149
3144
|
const citation = useMemo(() => {
|
|
3150
|
-
const citations =
|
|
3145
|
+
const citations = message3.content?.find((item) => item.type === "citation")?.citations ?? [];
|
|
3151
3146
|
return citations?.find((item) => String(item.citationId) === String(data.citationId));
|
|
3152
|
-
}, [data.citationId,
|
|
3147
|
+
}, [data.citationId, message3.content]);
|
|
3153
3148
|
const onClick = () => {
|
|
3154
3149
|
if (!citation?.citationUrl) return;
|
|
3155
3150
|
if (isExternal(citation.citationUrl)) {
|
|
@@ -3164,7 +3159,7 @@ var IndexQuote_default = ({ data, loading, message: message4 }) => {
|
|
|
3164
3159
|
open && /* @__PURE__ */ jsx(DocDrawer_default, { paramsStr: citation?.citationUrl, title: citation?.citationName, open, onClose: () => setOpen(false) })
|
|
3165
3160
|
] });
|
|
3166
3161
|
};
|
|
3167
|
-
var MarkImg_default = ({ data, loading, message:
|
|
3162
|
+
var MarkImg_default = ({ data, loading, message: message3, ...rest }) => {
|
|
3168
3163
|
const getPreviewFileUrl = (src) => {
|
|
3169
3164
|
return buildUrlParams({ [TOKEN_KEY]: tokenManager.get() || "" }, src);
|
|
3170
3165
|
};
|
|
@@ -3191,9 +3186,9 @@ var MdEdit_default = ({ data, loading }) => {
|
|
|
3191
3186
|
!loading && /* @__PURE__ */ jsx(Flex, { justify: "end", className: "m-t-16", children: /* @__PURE__ */ jsx(Button, { color: "primary", variant: "outlined", onClick: onOk, children: btnText }) })
|
|
3192
3187
|
] });
|
|
3193
3188
|
};
|
|
3194
|
-
var PreviewLink_default = ({ data, loading, message:
|
|
3189
|
+
var PreviewLink_default = ({ data, loading, message: message3, ...rest }) => {
|
|
3195
3190
|
const chatStore = useChatStore();
|
|
3196
|
-
const conversationWorkspacePrefix = "/workspace
|
|
3191
|
+
const conversationWorkspacePrefix = "/workspace";
|
|
3197
3192
|
const getLinkFileName = (path) => {
|
|
3198
3193
|
const lastSegment = path.split("/").pop();
|
|
3199
3194
|
if (!lastSegment) {
|
|
@@ -3212,9 +3207,6 @@ var PreviewLink_default = ({ data, loading, message: message4, ...rest }) => {
|
|
|
3212
3207
|
if (path.startsWith(conversationWorkspacePrefix)) {
|
|
3213
3208
|
return path;
|
|
3214
3209
|
}
|
|
3215
|
-
if (path.startsWith(conversationWorkspacePrefix.slice(1))) {
|
|
3216
|
-
return `/${path}`;
|
|
3217
|
-
}
|
|
3218
3210
|
const fileName = getLinkFileName(path);
|
|
3219
3211
|
return `${conversationWorkspacePrefix}${fileName}`;
|
|
3220
3212
|
};
|
|
@@ -3225,7 +3217,7 @@ var PreviewLink_default = ({ data, loading, message: message4, ...rest }) => {
|
|
|
3225
3217
|
chatStore.setPreview({
|
|
3226
3218
|
fileUrl: chatStore.config.services.request.getPreviewUrl({
|
|
3227
3219
|
path: normalizedPath,
|
|
3228
|
-
workspaceId:
|
|
3220
|
+
workspaceId: message3.conversationId
|
|
3229
3221
|
}),
|
|
3230
3222
|
fileName,
|
|
3231
3223
|
suffix
|
|
@@ -3338,7 +3330,7 @@ var adaptMarkdownComponent = (Component, payloadMapRef, messageRef) => {
|
|
|
3338
3330
|
return WrappedComponent;
|
|
3339
3331
|
};
|
|
3340
3332
|
var adaptMarkdownComponents = (components, payloadMapRef, messageRef) => Object.fromEntries(Object.entries(components ?? {}).map(([key, Component]) => [key, adaptMarkdownComponent(Component, payloadMapRef, messageRef)]));
|
|
3341
|
-
var XMarkdown_default = memo(({ message:
|
|
3333
|
+
var XMarkdown_default = memo(({ message: message3, components = {}, content = "", ...rest }) => {
|
|
3342
3334
|
const config = useMemo(() => getMarkdownConfig(), []);
|
|
3343
3335
|
const formattedContent = useMemo(() => formatMixedContent(content), [content]);
|
|
3344
3336
|
const newComponents = useMemo(
|
|
@@ -3364,9 +3356,9 @@ var XMarkdown_default = memo(({ message: message4, components = {}, content = ""
|
|
|
3364
3356
|
[formattedContent, payloadTagPattern]
|
|
3365
3357
|
);
|
|
3366
3358
|
const payloadMapRef = useRef(payloadMap);
|
|
3367
|
-
const messageRef = useRef(
|
|
3359
|
+
const messageRef = useRef(message3);
|
|
3368
3360
|
payloadMapRef.current = payloadMap;
|
|
3369
|
-
messageRef.current =
|
|
3361
|
+
messageRef.current = message3;
|
|
3370
3362
|
const markdownComponents = useMemo(() => adaptMarkdownComponents(newComponents, payloadMapRef, messageRef), [payloadTagPattern]);
|
|
3371
3363
|
return /* @__PURE__ */ jsx(
|
|
3372
3364
|
XMarkdown,
|
|
@@ -3793,10 +3785,10 @@ function extractDismissedSurfaceIdsFromMessages(messages) {
|
|
|
3793
3785
|
const lastCreateIndexBySurface = /* @__PURE__ */ new Map();
|
|
3794
3786
|
const lastActionIndexBySurface = /* @__PURE__ */ new Map();
|
|
3795
3787
|
for (let messageIndex = 0; messageIndex < messages.length; messageIndex++) {
|
|
3796
|
-
const
|
|
3797
|
-
const items = Array.isArray(
|
|
3788
|
+
const message3 = messages[messageIndex];
|
|
3789
|
+
const items = Array.isArray(message3?.content) ? message3.content : [];
|
|
3798
3790
|
for (const item of items) {
|
|
3799
|
-
if (
|
|
3791
|
+
if (message3?.role !== 1) {
|
|
3800
3792
|
if (item?.type === "a2uiCommand" && item.command) {
|
|
3801
3793
|
const surfaceId = String(item.command?.createSurface?.surfaceId || "").trim();
|
|
3802
3794
|
if (surfaceId) lastCreateIndexBySurface.set(surfaceId, messageIndex);
|
|
@@ -3812,7 +3804,7 @@ function extractDismissedSurfaceIdsFromMessages(messages) {
|
|
|
3812
3804
|
}
|
|
3813
3805
|
}
|
|
3814
3806
|
}
|
|
3815
|
-
if (
|
|
3807
|
+
if (message3?.role === 1 && item?.type === "text") {
|
|
3816
3808
|
const text = item.messageContent || item.text || "";
|
|
3817
3809
|
if (typeof text !== "string" || !text.includes("a2ui_action.v1")) continue;
|
|
3818
3810
|
try {
|
|
@@ -4395,9 +4387,9 @@ function diffConversationMessages(messages, prevCursors) {
|
|
|
4395
4387
|
const nextCursors = [];
|
|
4396
4388
|
const pendingItems = [];
|
|
4397
4389
|
for (let messageIndex = 0; messageIndex < messages.length; messageIndex += 1) {
|
|
4398
|
-
const
|
|
4399
|
-
const messageId = String(
|
|
4400
|
-
const items = Array.isArray(
|
|
4390
|
+
const message3 = messages[messageIndex];
|
|
4391
|
+
const messageId = String(message3?.messageId ?? messageIndex);
|
|
4392
|
+
const items = Array.isArray(message3?.content) ? message3.content : [];
|
|
4401
4393
|
const prevCursor = prevCursors[messageIndex];
|
|
4402
4394
|
const startIndex = prevCursor ? prevCursor.contentLength : 0;
|
|
4403
4395
|
if (prevCursor && (prevCursor.messageId !== messageId || items.length < prevCursor.contentLength)) {
|
|
@@ -4414,9 +4406,9 @@ function scanA2uiTagsFromMessages(messages, processedTagIds) {
|
|
|
4414
4406
|
const newTags = [];
|
|
4415
4407
|
const newTagIds = [];
|
|
4416
4408
|
for (let messageIndex = 0; messageIndex < messages.length; messageIndex += 1) {
|
|
4417
|
-
const
|
|
4418
|
-
const messageId = String(
|
|
4419
|
-
const items = Array.isArray(
|
|
4409
|
+
const message3 = messages[messageIndex];
|
|
4410
|
+
const messageId = String(message3?.messageId ?? messageIndex);
|
|
4411
|
+
const items = Array.isArray(message3?.content) ? message3.content : [];
|
|
4420
4412
|
for (const item of items) {
|
|
4421
4413
|
const text = extractItemTextForA2ui(item);
|
|
4422
4414
|
if (typeof text !== "string" || !text.includes("<A2UI")) continue;
|
|
@@ -4472,9 +4464,9 @@ function reduceA2uiRuntimeMessages(state, messages) {
|
|
|
4472
4464
|
processA2uiCommand(cmd, messageIndex, messageId, nextState, effects, deletedSurfaceIds, nextWizardSteps);
|
|
4473
4465
|
}
|
|
4474
4466
|
});
|
|
4475
|
-
nextState.processedMessageCursors = shouldReplayAll ? messages.map((
|
|
4476
|
-
messageId: String(
|
|
4477
|
-
contentLength: Array.isArray(
|
|
4467
|
+
nextState.processedMessageCursors = shouldReplayAll ? messages.map((message3, messageIndex) => ({
|
|
4468
|
+
messageId: String(message3?.messageId ?? messageIndex),
|
|
4469
|
+
contentLength: Array.isArray(message3?.content) ? message3.content.length : 0
|
|
4478
4470
|
})) : nextCursors;
|
|
4479
4471
|
nextState.wizardStepBySurface = { ...nextState.wizardStepBySurface, ...nextWizardSteps };
|
|
4480
4472
|
if (deletedSurfaceIds.size) {
|
|
@@ -4822,8 +4814,8 @@ function readContextModelPath(context) {
|
|
|
4822
4814
|
function buildLatestCommandIndexBySurface(messages) {
|
|
4823
4815
|
const indexBySurface = {};
|
|
4824
4816
|
let commandIndex = -1;
|
|
4825
|
-
for (const
|
|
4826
|
-
const items = Array.isArray(
|
|
4817
|
+
for (const message3 of messages) {
|
|
4818
|
+
const items = Array.isArray(message3?.content) ? message3.content : [];
|
|
4827
4819
|
for (const item of items) {
|
|
4828
4820
|
if (item?.type === "a2uiCommand" && item.command) {
|
|
4829
4821
|
commandIndex += 1;
|
|
@@ -5011,7 +5003,7 @@ var TextNode2 = React10__default.memo(
|
|
|
5011
5003
|
item,
|
|
5012
5004
|
role,
|
|
5013
5005
|
customComponents,
|
|
5014
|
-
message:
|
|
5006
|
+
message: message3
|
|
5015
5007
|
}) => {
|
|
5016
5008
|
const content = toA2uiDisplayText(role, item?.messageContent);
|
|
5017
5009
|
const markdownComponents = {
|
|
@@ -5024,7 +5016,7 @@ var TextNode2 = React10__default.memo(
|
|
|
5024
5016
|
const markdownContent = typeof content === "string" ? transformResourceText(content) : content;
|
|
5025
5017
|
return /* @__PURE__ */ jsxs(Fragment, { children: [
|
|
5026
5018
|
!!item.reasoningContent && /* @__PURE__ */ jsx(Think, { title: "\u6DF1\u5EA6\u601D\u8003", style: { marginBottom: "16px" }, children: item.reasoningContent }),
|
|
5027
|
-
!!markdownContent && /* @__PURE__ */ jsx(XMarkdown_default, { message:
|
|
5019
|
+
!!markdownContent && /* @__PURE__ */ jsx(XMarkdown_default, { message: message3, components: markdownComponents, content: markdownContent })
|
|
5028
5020
|
] });
|
|
5029
5021
|
}
|
|
5030
5022
|
);
|
|
@@ -5352,9 +5344,9 @@ var ToolCallItem = ({ item }) => {
|
|
|
5352
5344
|
};
|
|
5353
5345
|
var tool_call_item_default = ToolCallItem;
|
|
5354
5346
|
var RENDERABLE_MESSAGE_TYPES = ["runStarted", "toolCall", "toolResult", "text", "stepError", "runFailed", "files", "plan"];
|
|
5355
|
-
var MessageRender_default = React10__default.memo(({ role, message:
|
|
5347
|
+
var MessageRender_default = React10__default.memo(({ role, message: message3, messageIndex = -1, loading, containerRef, customComponents }) => {
|
|
5356
5348
|
const content = useMemo(() => {
|
|
5357
|
-
return (
|
|
5349
|
+
return (message3.content || []).filter((item) => {
|
|
5358
5350
|
if (!RENDERABLE_MESSAGE_TYPES.includes(item.type)) {
|
|
5359
5351
|
return false;
|
|
5360
5352
|
}
|
|
@@ -5367,12 +5359,12 @@ var MessageRender_default = React10__default.memo(({ role, message: message4, me
|
|
|
5367
5359
|
}
|
|
5368
5360
|
return true;
|
|
5369
5361
|
});
|
|
5370
|
-
}, [
|
|
5362
|
+
}, [message3.content]);
|
|
5371
5363
|
const quoteMsg = useMemo(() => {
|
|
5372
5364
|
const quoteMsg2 = {};
|
|
5373
|
-
if (
|
|
5365
|
+
if (message3.params) {
|
|
5374
5366
|
try {
|
|
5375
|
-
const citation = JSON.parse(
|
|
5367
|
+
const citation = JSON.parse(message3.params).citation;
|
|
5376
5368
|
if (citation) {
|
|
5377
5369
|
quoteMsg2.messageContent = citation;
|
|
5378
5370
|
}
|
|
@@ -5380,7 +5372,7 @@ var MessageRender_default = React10__default.memo(({ role, message: message4, me
|
|
|
5380
5372
|
}
|
|
5381
5373
|
}
|
|
5382
5374
|
return isEmptyObj(quoteMsg2) ? null : quoteMsg2;
|
|
5383
|
-
}, [
|
|
5375
|
+
}, [message3.params, message3.quoteMsg]);
|
|
5384
5376
|
const showPending = loading && (content.length === 0 || content[content.length - 1].type !== "text");
|
|
5385
5377
|
if (content.length === 0 && !showPending) return null;
|
|
5386
5378
|
const lastToolCallIndex = (() => {
|
|
@@ -5404,20 +5396,20 @@ var MessageRender_default = React10__default.memo(({ role, message: message4, me
|
|
|
5404
5396
|
TextNode2,
|
|
5405
5397
|
{
|
|
5406
5398
|
item,
|
|
5407
|
-
role:
|
|
5399
|
+
role: message3.role,
|
|
5408
5400
|
customComponents,
|
|
5409
|
-
message:
|
|
5401
|
+
message: message3,
|
|
5410
5402
|
messageIndex
|
|
5411
5403
|
},
|
|
5412
5404
|
`message-${index}`
|
|
5413
5405
|
),
|
|
5414
|
-
(item.type === "stepError" || item.type === "runFailed") && (item.errorMessage ? /* @__PURE__ */ jsx(XMarkdown_default, { message:
|
|
5406
|
+
(item.type === "stepError" || item.type === "runFailed") && (item.errorMessage ? /* @__PURE__ */ jsx(XMarkdown_default, { message: message3, components: customComponents, content: item.errorMessage }) : null),
|
|
5415
5407
|
item.type === "files" && /* @__PURE__ */ jsx(FilesNode, { item }, `files-${index}`),
|
|
5416
5408
|
item.type === "plan" && /* @__PURE__ */ jsx(A2uiPlanNode, { item }, `plan-${index}`)
|
|
5417
5409
|
] })
|
|
5418
5410
|
}
|
|
5419
5411
|
),
|
|
5420
|
-
index === lastToolCallIndex && messageIndex >= 0 ? /* @__PURE__ */ jsx(A2uiMessageCards, { messageIndex, message:
|
|
5412
|
+
index === lastToolCallIndex && messageIndex >= 0 ? /* @__PURE__ */ jsx(A2uiMessageCards, { messageIndex, message: message3 }) : null
|
|
5421
5413
|
] }, `message-${index}`)),
|
|
5422
5414
|
showPending && role.user === "agent" && /* @__PURE__ */ jsx(Bubble, { role: role.user, placement: role.placement, content: /* @__PURE__ */ jsx(RunStartedNode, {}) }),
|
|
5423
5415
|
quoteMsg && /* @__PURE__ */ jsx(QuoteMsgNode, { quoteMsg, role })
|
|
@@ -5513,13 +5505,13 @@ var BubbleListItems_default = ({
|
|
|
5513
5505
|
const messageRefs = useRef({});
|
|
5514
5506
|
const chatRecords = useMemo(() => {
|
|
5515
5507
|
const chatRecords2 = [];
|
|
5516
|
-
conversationMessages.forEach((
|
|
5517
|
-
const role = getRole(
|
|
5508
|
+
conversationMessages.forEach((message3, messageIndex) => {
|
|
5509
|
+
const role = getRole(message3.role);
|
|
5518
5510
|
const isLeftBubble = role.user === "agent";
|
|
5519
|
-
const isMessageLoading = !!
|
|
5520
|
-
const baseKey = `${
|
|
5511
|
+
const isMessageLoading = !!message3.generating;
|
|
5512
|
+
const baseKey = `${message3.executionId}-${messageIndex}`;
|
|
5521
5513
|
const footerNode = !isMessageLoading ? /* @__PURE__ */ jsxs(Flex, { align: "center", gap: 8, children: [
|
|
5522
|
-
|
|
5514
|
+
message3.stopFlag && isLeftBubble && /* @__PURE__ */ jsx(Text3, { type: "secondary", style: { flex: "none" }, children: "\u5DF2\u505C\u6B62" }),
|
|
5523
5515
|
/* @__PURE__ */ jsx(Flex, { align: "center", gap: 4, children: role.user === "agent" && /* @__PURE__ */ jsxs(Fragment, { children: [
|
|
5524
5516
|
/* @__PURE__ */ jsx(
|
|
5525
5517
|
Button,
|
|
@@ -5539,21 +5531,21 @@ var BubbleListItems_default = ({
|
|
|
5539
5531
|
/* @__PURE__ */ jsx(
|
|
5540
5532
|
Button,
|
|
5541
5533
|
{
|
|
5542
|
-
color:
|
|
5534
|
+
color: message3.feedback === 1 ? "primary" : "default",
|
|
5543
5535
|
size: "small",
|
|
5544
5536
|
variant: "text",
|
|
5545
5537
|
icon: /* @__PURE__ */ jsx(LikeOutlined, {}),
|
|
5546
|
-
onClick: () => chatStore.feedback(
|
|
5538
|
+
onClick: () => chatStore.feedback(message3.executionId, 1, messageIndex)
|
|
5547
5539
|
}
|
|
5548
5540
|
),
|
|
5549
5541
|
/* @__PURE__ */ jsx(
|
|
5550
5542
|
Button,
|
|
5551
5543
|
{
|
|
5552
|
-
color:
|
|
5544
|
+
color: message3.feedback === 2 ? "primary" : "default",
|
|
5553
5545
|
size: "small",
|
|
5554
5546
|
variant: "text",
|
|
5555
5547
|
icon: /* @__PURE__ */ jsx(DislikeOutlined, {}),
|
|
5556
|
-
onClick: () => chatStore.feedback(
|
|
5548
|
+
onClick: () => chatStore.feedback(message3.executionId, 2, messageIndex)
|
|
5557
5549
|
}
|
|
5558
5550
|
),
|
|
5559
5551
|
/* @__PURE__ */ jsx(
|
|
@@ -5561,7 +5553,7 @@ var BubbleListItems_default = ({
|
|
|
5561
5553
|
{
|
|
5562
5554
|
control: agentActions,
|
|
5563
5555
|
ctx: {
|
|
5564
|
-
message:
|
|
5556
|
+
message: message3,
|
|
5565
5557
|
get dom() {
|
|
5566
5558
|
return messageRefs.current[baseKey];
|
|
5567
5559
|
}
|
|
@@ -5579,7 +5571,7 @@ var BubbleListItems_default = ({
|
|
|
5579
5571
|
MessageRender_default,
|
|
5580
5572
|
{
|
|
5581
5573
|
role,
|
|
5582
|
-
message:
|
|
5574
|
+
message: message3,
|
|
5583
5575
|
messageIndex,
|
|
5584
5576
|
customComponents,
|
|
5585
5577
|
loading: isMessageLoading,
|
|
@@ -6652,13 +6644,13 @@ var layouts_default = forwardRef(({ theme: theme5, params, hooks, layout, config
|
|
|
6652
6644
|
}, [hasPreView]);
|
|
6653
6645
|
useWebSocket({
|
|
6654
6646
|
url: configState.services.websocketUrls?.[0],
|
|
6655
|
-
onMessage: (
|
|
6647
|
+
onMessage: (message3) => chatStore.acceptMessage(message3.payload),
|
|
6656
6648
|
clientHeartbeat: false,
|
|
6657
6649
|
reconnectInterval: 1e4
|
|
6658
6650
|
});
|
|
6659
6651
|
useWebSocket({
|
|
6660
6652
|
url: configState.services.websocketUrls?.[1],
|
|
6661
|
-
onMessage: (
|
|
6653
|
+
onMessage: (message3) => chatStore.acceptMessage(message3.payload),
|
|
6662
6654
|
clientHeartbeat: false,
|
|
6663
6655
|
reconnectInterval: 1e4
|
|
6664
6656
|
});
|