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