@zero-library/chat-copilot 3.1.18 → 3.1.20
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 +73 -78
- package/dist/index.cjs.js.map +1 -1
- package/dist/index.css +9 -0
- package/dist/index.css.map +1 -1
- package/dist/index.d.mts +8 -2
- package/dist/index.d.ts +8 -2
- package/dist/index.esm.js +73 -78
- 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)) || "";
|
|
@@ -833,7 +833,7 @@ var ChatInput = React10.forwardRef(
|
|
|
833
833
|
}
|
|
834
834
|
}
|
|
835
835
|
),
|
|
836
|
-
placeholder: !stringValue ? /* @__PURE__ */ jsx("div", { className: index_module_default.promptEditorPlaceholder, children: placeholder || "\u4ECA\u5929\u5E2E\u4F60\u505A\u4E9B\u4EC0\u4E48\uFF1F
|
|
836
|
+
placeholder: !stringValue ? /* @__PURE__ */ jsx("div", { className: index_module_default.promptEditorPlaceholder, children: placeholder || "\u4ECA\u5929\u5E2E\u4F60\u505A\u4E9B\u4EC0\u4E48\uFF1F" }) : null,
|
|
837
837
|
ErrorBoundary: LexicalErrorBoundary
|
|
838
838
|
}
|
|
839
839
|
),
|
|
@@ -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,
|
|
@@ -1317,6 +1317,7 @@ function createChatStore() {
|
|
|
1317
1317
|
id: data || "",
|
|
1318
1318
|
title: "",
|
|
1319
1319
|
agentId: agent.agentInfo?.id || "",
|
|
1320
|
+
isFavorite: false,
|
|
1320
1321
|
updatedAt: (/* @__PURE__ */ new Date()).toISOString(),
|
|
1321
1322
|
spec: newSpec
|
|
1322
1323
|
});
|
|
@@ -1617,7 +1618,7 @@ function createChatStore() {
|
|
|
1617
1618
|
}
|
|
1618
1619
|
if (isMain) config.hooks?.onStepMessage?.(msg);
|
|
1619
1620
|
}
|
|
1620
|
-
function doneCallback(msg,
|
|
1621
|
+
function doneCallback(msg, message3, isMain) {
|
|
1621
1622
|
conversation.messages[msg.conversationId].loading = false;
|
|
1622
1623
|
const messages = conversation.messages[msg.conversationId]?.message;
|
|
1623
1624
|
if (messages) {
|
|
@@ -1910,9 +1911,9 @@ function createChatStore() {
|
|
|
1910
1911
|
}
|
|
1911
1912
|
}
|
|
1912
1913
|
}
|
|
1913
|
-
function processMessageContent(
|
|
1914
|
+
function processMessageContent(message3, targetMessages) {
|
|
1914
1915
|
const newMessage = {
|
|
1915
|
-
...
|
|
1916
|
+
...message3,
|
|
1916
1917
|
agentId: agent.agentInfo.id
|
|
1917
1918
|
};
|
|
1918
1919
|
const isMain = !targetMessages;
|
|
@@ -1980,13 +1981,13 @@ function createChatStore() {
|
|
|
1980
1981
|
}
|
|
1981
1982
|
processMessageContent(newMessage);
|
|
1982
1983
|
};
|
|
1983
|
-
const sendMessage = async (
|
|
1984
|
+
const sendMessage = async (message3, msgFiles = [], params) => {
|
|
1984
1985
|
const conversationId = conversation.active.id;
|
|
1985
1986
|
if (conversation.messages[conversationId].loading) return;
|
|
1986
1987
|
let msgContent = "", files;
|
|
1987
1988
|
const references = conversation.messages[conversationId].references;
|
|
1988
|
-
if (
|
|
1989
|
-
msgContent =
|
|
1989
|
+
if (message3) {
|
|
1990
|
+
msgContent = message3;
|
|
1990
1991
|
files = [...msgFiles, ...conversation.messages[conversationId].files || []];
|
|
1991
1992
|
} else {
|
|
1992
1993
|
if (references?.type === 1 && references?.content?.msgContent) {
|
|
@@ -2033,9 +2034,9 @@ function createChatStore() {
|
|
|
2033
2034
|
};
|
|
2034
2035
|
const extraParams = deepCopy(config.params?.params || {});
|
|
2035
2036
|
const userInputParams = variablesToObject(conversation.active.userInput || []);
|
|
2036
|
-
Object.assign(extraParams,
|
|
2037
|
+
Object.assign(extraParams, message3 ? {} : { ...references?.params }, params, userInputParams);
|
|
2037
2038
|
sendParams.params = extraParams;
|
|
2038
|
-
if (!
|
|
2039
|
+
if (!message3) {
|
|
2039
2040
|
setContent("");
|
|
2040
2041
|
setContentParams();
|
|
2041
2042
|
setReferences();
|
|
@@ -2236,7 +2237,7 @@ var ConversationFavoritesBtn_default = ({ icon, ...rest }) => {
|
|
|
2236
2237
|
const activeConversation = useMemo(() => {
|
|
2237
2238
|
return conversationsState.list.items.find((item) => item.id === conversationState.active.id);
|
|
2238
2239
|
}, [conversationsState.list.items, conversationState.active.id]);
|
|
2239
|
-
const isFavorite = activeConversation?.isFavorite
|
|
2240
|
+
const isFavorite = activeConversation?.isFavorite;
|
|
2240
2241
|
const handleToggleFavorite = () => {
|
|
2241
2242
|
if (!conversationState.active.id) return;
|
|
2242
2243
|
chatStore.collectConversation(conversationState.active.id, !isFavorite);
|
|
@@ -2259,14 +2260,9 @@ var ConversationShareBtn_default = ({ icon, ...rest }) => {
|
|
|
2259
2260
|
const conversationState = useSnapshot(chatStore.conversation);
|
|
2260
2261
|
const configState = useSnapshot(chatStore.config);
|
|
2261
2262
|
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");
|
|
2263
|
+
const { data } = await configState.services.request.shareConversation(conversationState.active.id);
|
|
2264
|
+
if (data) {
|
|
2265
|
+
copyText(data.url);
|
|
2270
2266
|
}
|
|
2271
2267
|
};
|
|
2272
2268
|
return /* @__PURE__ */ jsx(
|
|
@@ -2296,6 +2292,7 @@ var styles_module_default2 = {
|
|
|
2296
2292
|
chatHeaderBtnGroup: "styles_module_chatHeaderBtnGroup",
|
|
2297
2293
|
conversationListPanel: "styles_module_conversationListPanel",
|
|
2298
2294
|
createConversationButton: "styles_module_createConversationButton",
|
|
2295
|
+
conversationListContent: "styles_module_conversationListContent",
|
|
2299
2296
|
conversations: "styles_module_conversations",
|
|
2300
2297
|
conversationTabs: "styles_module_conversationTabs",
|
|
2301
2298
|
conversationTabPane: "styles_module_conversationTabPane",
|
|
@@ -2592,9 +2589,9 @@ var ConversationListHeader_default = ({ title = true, avatar = true, newConversa
|
|
|
2592
2589
|
] });
|
|
2593
2590
|
};
|
|
2594
2591
|
var ConversationListPanel = ({ header }) => {
|
|
2595
|
-
return /* @__PURE__ */ jsxs(Flex, { vertical: true, className: classNames2("
|
|
2592
|
+
return /* @__PURE__ */ jsxs(Flex, { vertical: true, className: classNames2("zero-chat-conversations", styles_module_default2.conversationListPanel), children: [
|
|
2596
2593
|
/* @__PURE__ */ jsx(RenderWrapper, { control: header, DefaultComponent: ConversationListHeader_default }),
|
|
2597
|
-
/* @__PURE__ */ jsx("div", { className:
|
|
2594
|
+
/* @__PURE__ */ jsx("div", { className: styles_module_default2.conversationListContent, children: /* @__PURE__ */ jsx(ConversationList_default, {}) })
|
|
2598
2595
|
] });
|
|
2599
2596
|
};
|
|
2600
2597
|
var ConversationListPanel_default = ConversationListPanel;
|
|
@@ -3144,12 +3141,12 @@ var DocDrawer_default = ({ title, open, onClose, paramsStr }) => {
|
|
|
3144
3141
|
}, [paramsStr]);
|
|
3145
3142
|
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
3143
|
};
|
|
3147
|
-
var IndexQuote_default = ({ data, loading, message:
|
|
3144
|
+
var IndexQuote_default = ({ data, loading, message: message3 }) => {
|
|
3148
3145
|
const [open, setOpen] = useState(false);
|
|
3149
3146
|
const citation = useMemo(() => {
|
|
3150
|
-
const citations =
|
|
3147
|
+
const citations = message3.content?.find((item) => item.type === "citation")?.citations ?? [];
|
|
3151
3148
|
return citations?.find((item) => String(item.citationId) === String(data.citationId));
|
|
3152
|
-
}, [data.citationId,
|
|
3149
|
+
}, [data.citationId, message3.content]);
|
|
3153
3150
|
const onClick = () => {
|
|
3154
3151
|
if (!citation?.citationUrl) return;
|
|
3155
3152
|
if (isExternal(citation.citationUrl)) {
|
|
@@ -3164,7 +3161,7 @@ var IndexQuote_default = ({ data, loading, message: message4 }) => {
|
|
|
3164
3161
|
open && /* @__PURE__ */ jsx(DocDrawer_default, { paramsStr: citation?.citationUrl, title: citation?.citationName, open, onClose: () => setOpen(false) })
|
|
3165
3162
|
] });
|
|
3166
3163
|
};
|
|
3167
|
-
var MarkImg_default = ({ data, loading, message:
|
|
3164
|
+
var MarkImg_default = ({ data, loading, message: message3, ...rest }) => {
|
|
3168
3165
|
const getPreviewFileUrl = (src) => {
|
|
3169
3166
|
return buildUrlParams({ [TOKEN_KEY]: tokenManager.get() || "" }, src);
|
|
3170
3167
|
};
|
|
@@ -3191,9 +3188,9 @@ var MdEdit_default = ({ data, loading }) => {
|
|
|
3191
3188
|
!loading && /* @__PURE__ */ jsx(Flex, { justify: "end", className: "m-t-16", children: /* @__PURE__ */ jsx(Button, { color: "primary", variant: "outlined", onClick: onOk, children: btnText }) })
|
|
3192
3189
|
] });
|
|
3193
3190
|
};
|
|
3194
|
-
var PreviewLink_default = ({ data, loading, message:
|
|
3191
|
+
var PreviewLink_default = ({ data, loading, message: message3, ...rest }) => {
|
|
3195
3192
|
const chatStore = useChatStore();
|
|
3196
|
-
const conversationWorkspacePrefix = "/workspace
|
|
3193
|
+
const conversationWorkspacePrefix = "/workspace";
|
|
3197
3194
|
const getLinkFileName = (path) => {
|
|
3198
3195
|
const lastSegment = path.split("/").pop();
|
|
3199
3196
|
if (!lastSegment) {
|
|
@@ -3212,9 +3209,6 @@ var PreviewLink_default = ({ data, loading, message: message4, ...rest }) => {
|
|
|
3212
3209
|
if (path.startsWith(conversationWorkspacePrefix)) {
|
|
3213
3210
|
return path;
|
|
3214
3211
|
}
|
|
3215
|
-
if (path.startsWith(conversationWorkspacePrefix.slice(1))) {
|
|
3216
|
-
return `/${path}`;
|
|
3217
|
-
}
|
|
3218
3212
|
const fileName = getLinkFileName(path);
|
|
3219
3213
|
return `${conversationWorkspacePrefix}${fileName}`;
|
|
3220
3214
|
};
|
|
@@ -3225,7 +3219,7 @@ var PreviewLink_default = ({ data, loading, message: message4, ...rest }) => {
|
|
|
3225
3219
|
chatStore.setPreview({
|
|
3226
3220
|
fileUrl: chatStore.config.services.request.getPreviewUrl({
|
|
3227
3221
|
path: normalizedPath,
|
|
3228
|
-
workspaceId:
|
|
3222
|
+
workspaceId: message3.conversationId
|
|
3229
3223
|
}),
|
|
3230
3224
|
fileName,
|
|
3231
3225
|
suffix
|
|
@@ -3338,7 +3332,7 @@ var adaptMarkdownComponent = (Component, payloadMapRef, messageRef) => {
|
|
|
3338
3332
|
return WrappedComponent;
|
|
3339
3333
|
};
|
|
3340
3334
|
var adaptMarkdownComponents = (components, payloadMapRef, messageRef) => Object.fromEntries(Object.entries(components ?? {}).map(([key, Component]) => [key, adaptMarkdownComponent(Component, payloadMapRef, messageRef)]));
|
|
3341
|
-
var XMarkdown_default = memo(({ message:
|
|
3335
|
+
var XMarkdown_default = memo(({ message: message3, components = {}, content = "", ...rest }) => {
|
|
3342
3336
|
const config = useMemo(() => getMarkdownConfig(), []);
|
|
3343
3337
|
const formattedContent = useMemo(() => formatMixedContent(content), [content]);
|
|
3344
3338
|
const newComponents = useMemo(
|
|
@@ -3364,9 +3358,9 @@ var XMarkdown_default = memo(({ message: message4, components = {}, content = ""
|
|
|
3364
3358
|
[formattedContent, payloadTagPattern]
|
|
3365
3359
|
);
|
|
3366
3360
|
const payloadMapRef = useRef(payloadMap);
|
|
3367
|
-
const messageRef = useRef(
|
|
3361
|
+
const messageRef = useRef(message3);
|
|
3368
3362
|
payloadMapRef.current = payloadMap;
|
|
3369
|
-
messageRef.current =
|
|
3363
|
+
messageRef.current = message3;
|
|
3370
3364
|
const markdownComponents = useMemo(() => adaptMarkdownComponents(newComponents, payloadMapRef, messageRef), [payloadTagPattern]);
|
|
3371
3365
|
return /* @__PURE__ */ jsx(
|
|
3372
3366
|
XMarkdown,
|
|
@@ -3793,10 +3787,10 @@ function extractDismissedSurfaceIdsFromMessages(messages) {
|
|
|
3793
3787
|
const lastCreateIndexBySurface = /* @__PURE__ */ new Map();
|
|
3794
3788
|
const lastActionIndexBySurface = /* @__PURE__ */ new Map();
|
|
3795
3789
|
for (let messageIndex = 0; messageIndex < messages.length; messageIndex++) {
|
|
3796
|
-
const
|
|
3797
|
-
const items = Array.isArray(
|
|
3790
|
+
const message3 = messages[messageIndex];
|
|
3791
|
+
const items = Array.isArray(message3?.content) ? message3.content : [];
|
|
3798
3792
|
for (const item of items) {
|
|
3799
|
-
if (
|
|
3793
|
+
if (message3?.role !== 1) {
|
|
3800
3794
|
if (item?.type === "a2uiCommand" && item.command) {
|
|
3801
3795
|
const surfaceId = String(item.command?.createSurface?.surfaceId || "").trim();
|
|
3802
3796
|
if (surfaceId) lastCreateIndexBySurface.set(surfaceId, messageIndex);
|
|
@@ -3812,7 +3806,7 @@ function extractDismissedSurfaceIdsFromMessages(messages) {
|
|
|
3812
3806
|
}
|
|
3813
3807
|
}
|
|
3814
3808
|
}
|
|
3815
|
-
if (
|
|
3809
|
+
if (message3?.role === 1 && item?.type === "text") {
|
|
3816
3810
|
const text = item.messageContent || item.text || "";
|
|
3817
3811
|
if (typeof text !== "string" || !text.includes("a2ui_action.v1")) continue;
|
|
3818
3812
|
try {
|
|
@@ -4395,9 +4389,9 @@ function diffConversationMessages(messages, prevCursors) {
|
|
|
4395
4389
|
const nextCursors = [];
|
|
4396
4390
|
const pendingItems = [];
|
|
4397
4391
|
for (let messageIndex = 0; messageIndex < messages.length; messageIndex += 1) {
|
|
4398
|
-
const
|
|
4399
|
-
const messageId = String(
|
|
4400
|
-
const items = Array.isArray(
|
|
4392
|
+
const message3 = messages[messageIndex];
|
|
4393
|
+
const messageId = String(message3?.messageId ?? messageIndex);
|
|
4394
|
+
const items = Array.isArray(message3?.content) ? message3.content : [];
|
|
4401
4395
|
const prevCursor = prevCursors[messageIndex];
|
|
4402
4396
|
const startIndex = prevCursor ? prevCursor.contentLength : 0;
|
|
4403
4397
|
if (prevCursor && (prevCursor.messageId !== messageId || items.length < prevCursor.contentLength)) {
|
|
@@ -4414,9 +4408,9 @@ function scanA2uiTagsFromMessages(messages, processedTagIds) {
|
|
|
4414
4408
|
const newTags = [];
|
|
4415
4409
|
const newTagIds = [];
|
|
4416
4410
|
for (let messageIndex = 0; messageIndex < messages.length; messageIndex += 1) {
|
|
4417
|
-
const
|
|
4418
|
-
const messageId = String(
|
|
4419
|
-
const items = Array.isArray(
|
|
4411
|
+
const message3 = messages[messageIndex];
|
|
4412
|
+
const messageId = String(message3?.messageId ?? messageIndex);
|
|
4413
|
+
const items = Array.isArray(message3?.content) ? message3.content : [];
|
|
4420
4414
|
for (const item of items) {
|
|
4421
4415
|
const text = extractItemTextForA2ui(item);
|
|
4422
4416
|
if (typeof text !== "string" || !text.includes("<A2UI")) continue;
|
|
@@ -4472,9 +4466,9 @@ function reduceA2uiRuntimeMessages(state, messages) {
|
|
|
4472
4466
|
processA2uiCommand(cmd, messageIndex, messageId, nextState, effects, deletedSurfaceIds, nextWizardSteps);
|
|
4473
4467
|
}
|
|
4474
4468
|
});
|
|
4475
|
-
nextState.processedMessageCursors = shouldReplayAll ? messages.map((
|
|
4476
|
-
messageId: String(
|
|
4477
|
-
contentLength: Array.isArray(
|
|
4469
|
+
nextState.processedMessageCursors = shouldReplayAll ? messages.map((message3, messageIndex) => ({
|
|
4470
|
+
messageId: String(message3?.messageId ?? messageIndex),
|
|
4471
|
+
contentLength: Array.isArray(message3?.content) ? message3.content.length : 0
|
|
4478
4472
|
})) : nextCursors;
|
|
4479
4473
|
nextState.wizardStepBySurface = { ...nextState.wizardStepBySurface, ...nextWizardSteps };
|
|
4480
4474
|
if (deletedSurfaceIds.size) {
|
|
@@ -4822,8 +4816,8 @@ function readContextModelPath(context) {
|
|
|
4822
4816
|
function buildLatestCommandIndexBySurface(messages) {
|
|
4823
4817
|
const indexBySurface = {};
|
|
4824
4818
|
let commandIndex = -1;
|
|
4825
|
-
for (const
|
|
4826
|
-
const items = Array.isArray(
|
|
4819
|
+
for (const message3 of messages) {
|
|
4820
|
+
const items = Array.isArray(message3?.content) ? message3.content : [];
|
|
4827
4821
|
for (const item of items) {
|
|
4828
4822
|
if (item?.type === "a2uiCommand" && item.command) {
|
|
4829
4823
|
commandIndex += 1;
|
|
@@ -5011,7 +5005,7 @@ var TextNode2 = React10__default.memo(
|
|
|
5011
5005
|
item,
|
|
5012
5006
|
role,
|
|
5013
5007
|
customComponents,
|
|
5014
|
-
message:
|
|
5008
|
+
message: message3
|
|
5015
5009
|
}) => {
|
|
5016
5010
|
const content = toA2uiDisplayText(role, item?.messageContent);
|
|
5017
5011
|
const markdownComponents = {
|
|
@@ -5024,7 +5018,7 @@ var TextNode2 = React10__default.memo(
|
|
|
5024
5018
|
const markdownContent = typeof content === "string" ? transformResourceText(content) : content;
|
|
5025
5019
|
return /* @__PURE__ */ jsxs(Fragment, { children: [
|
|
5026
5020
|
!!item.reasoningContent && /* @__PURE__ */ jsx(Think, { title: "\u6DF1\u5EA6\u601D\u8003", style: { marginBottom: "16px" }, children: item.reasoningContent }),
|
|
5027
|
-
!!markdownContent && /* @__PURE__ */ jsx(XMarkdown_default, { message:
|
|
5021
|
+
!!markdownContent && /* @__PURE__ */ jsx(XMarkdown_default, { message: message3, components: markdownComponents, content: markdownContent })
|
|
5028
5022
|
] });
|
|
5029
5023
|
}
|
|
5030
5024
|
);
|
|
@@ -5352,9 +5346,9 @@ var ToolCallItem = ({ item }) => {
|
|
|
5352
5346
|
};
|
|
5353
5347
|
var tool_call_item_default = ToolCallItem;
|
|
5354
5348
|
var RENDERABLE_MESSAGE_TYPES = ["runStarted", "toolCall", "toolResult", "text", "stepError", "runFailed", "files", "plan"];
|
|
5355
|
-
var MessageRender_default = React10__default.memo(({ role, message:
|
|
5349
|
+
var MessageRender_default = React10__default.memo(({ role, message: message3, messageIndex = -1, loading, containerRef, customComponents }) => {
|
|
5356
5350
|
const content = useMemo(() => {
|
|
5357
|
-
return (
|
|
5351
|
+
return (message3.content || []).filter((item) => {
|
|
5358
5352
|
if (!RENDERABLE_MESSAGE_TYPES.includes(item.type)) {
|
|
5359
5353
|
return false;
|
|
5360
5354
|
}
|
|
@@ -5367,12 +5361,12 @@ var MessageRender_default = React10__default.memo(({ role, message: message4, me
|
|
|
5367
5361
|
}
|
|
5368
5362
|
return true;
|
|
5369
5363
|
});
|
|
5370
|
-
}, [
|
|
5364
|
+
}, [message3.content]);
|
|
5371
5365
|
const quoteMsg = useMemo(() => {
|
|
5372
5366
|
const quoteMsg2 = {};
|
|
5373
|
-
if (
|
|
5367
|
+
if (message3.params) {
|
|
5374
5368
|
try {
|
|
5375
|
-
const citation = JSON.parse(
|
|
5369
|
+
const citation = JSON.parse(message3.params).citation;
|
|
5376
5370
|
if (citation) {
|
|
5377
5371
|
quoteMsg2.messageContent = citation;
|
|
5378
5372
|
}
|
|
@@ -5380,7 +5374,7 @@ var MessageRender_default = React10__default.memo(({ role, message: message4, me
|
|
|
5380
5374
|
}
|
|
5381
5375
|
}
|
|
5382
5376
|
return isEmptyObj(quoteMsg2) ? null : quoteMsg2;
|
|
5383
|
-
}, [
|
|
5377
|
+
}, [message3.params, message3.quoteMsg]);
|
|
5384
5378
|
const showPending = loading && (content.length === 0 || content[content.length - 1].type !== "text");
|
|
5385
5379
|
if (content.length === 0 && !showPending) return null;
|
|
5386
5380
|
const lastToolCallIndex = (() => {
|
|
@@ -5404,20 +5398,20 @@ var MessageRender_default = React10__default.memo(({ role, message: message4, me
|
|
|
5404
5398
|
TextNode2,
|
|
5405
5399
|
{
|
|
5406
5400
|
item,
|
|
5407
|
-
role:
|
|
5401
|
+
role: message3.role,
|
|
5408
5402
|
customComponents,
|
|
5409
|
-
message:
|
|
5403
|
+
message: message3,
|
|
5410
5404
|
messageIndex
|
|
5411
5405
|
},
|
|
5412
5406
|
`message-${index}`
|
|
5413
5407
|
),
|
|
5414
|
-
(item.type === "stepError" || item.type === "runFailed") && (item.errorMessage ? /* @__PURE__ */ jsx(XMarkdown_default, { message:
|
|
5408
|
+
(item.type === "stepError" || item.type === "runFailed") && (item.errorMessage ? /* @__PURE__ */ jsx(XMarkdown_default, { message: message3, components: customComponents, content: item.errorMessage }) : null),
|
|
5415
5409
|
item.type === "files" && /* @__PURE__ */ jsx(FilesNode, { item }, `files-${index}`),
|
|
5416
5410
|
item.type === "plan" && /* @__PURE__ */ jsx(A2uiPlanNode, { item }, `plan-${index}`)
|
|
5417
5411
|
] })
|
|
5418
5412
|
}
|
|
5419
5413
|
),
|
|
5420
|
-
index === lastToolCallIndex && messageIndex >= 0 ? /* @__PURE__ */ jsx(A2uiMessageCards, { messageIndex, message:
|
|
5414
|
+
index === lastToolCallIndex && messageIndex >= 0 ? /* @__PURE__ */ jsx(A2uiMessageCards, { messageIndex, message: message3 }) : null
|
|
5421
5415
|
] }, `message-${index}`)),
|
|
5422
5416
|
showPending && role.user === "agent" && /* @__PURE__ */ jsx(Bubble, { role: role.user, placement: role.placement, content: /* @__PURE__ */ jsx(RunStartedNode, {}) }),
|
|
5423
5417
|
quoteMsg && /* @__PURE__ */ jsx(QuoteMsgNode, { quoteMsg, role })
|
|
@@ -5513,13 +5507,13 @@ var BubbleListItems_default = ({
|
|
|
5513
5507
|
const messageRefs = useRef({});
|
|
5514
5508
|
const chatRecords = useMemo(() => {
|
|
5515
5509
|
const chatRecords2 = [];
|
|
5516
|
-
conversationMessages.forEach((
|
|
5517
|
-
const role = getRole(
|
|
5510
|
+
conversationMessages.forEach((message3, messageIndex) => {
|
|
5511
|
+
const role = getRole(message3.role);
|
|
5518
5512
|
const isLeftBubble = role.user === "agent";
|
|
5519
|
-
const isMessageLoading = !!
|
|
5520
|
-
const baseKey = `${
|
|
5513
|
+
const isMessageLoading = !!message3.generating;
|
|
5514
|
+
const baseKey = `${message3.executionId}-${messageIndex}`;
|
|
5521
5515
|
const footerNode = !isMessageLoading ? /* @__PURE__ */ jsxs(Flex, { align: "center", gap: 8, children: [
|
|
5522
|
-
|
|
5516
|
+
message3.stopFlag && isLeftBubble && /* @__PURE__ */ jsx(Text3, { type: "secondary", style: { flex: "none" }, children: "\u5DF2\u505C\u6B62" }),
|
|
5523
5517
|
/* @__PURE__ */ jsx(Flex, { align: "center", gap: 4, children: role.user === "agent" && /* @__PURE__ */ jsxs(Fragment, { children: [
|
|
5524
5518
|
/* @__PURE__ */ jsx(
|
|
5525
5519
|
Button,
|
|
@@ -5539,21 +5533,21 @@ var BubbleListItems_default = ({
|
|
|
5539
5533
|
/* @__PURE__ */ jsx(
|
|
5540
5534
|
Button,
|
|
5541
5535
|
{
|
|
5542
|
-
color:
|
|
5536
|
+
color: message3.feedback === 1 ? "primary" : "default",
|
|
5543
5537
|
size: "small",
|
|
5544
5538
|
variant: "text",
|
|
5545
5539
|
icon: /* @__PURE__ */ jsx(LikeOutlined, {}),
|
|
5546
|
-
onClick: () => chatStore.feedback(
|
|
5540
|
+
onClick: () => chatStore.feedback(message3.executionId, 1, messageIndex)
|
|
5547
5541
|
}
|
|
5548
5542
|
),
|
|
5549
5543
|
/* @__PURE__ */ jsx(
|
|
5550
5544
|
Button,
|
|
5551
5545
|
{
|
|
5552
|
-
color:
|
|
5546
|
+
color: message3.feedback === 2 ? "primary" : "default",
|
|
5553
5547
|
size: "small",
|
|
5554
5548
|
variant: "text",
|
|
5555
5549
|
icon: /* @__PURE__ */ jsx(DislikeOutlined, {}),
|
|
5556
|
-
onClick: () => chatStore.feedback(
|
|
5550
|
+
onClick: () => chatStore.feedback(message3.executionId, 2, messageIndex)
|
|
5557
5551
|
}
|
|
5558
5552
|
),
|
|
5559
5553
|
/* @__PURE__ */ jsx(
|
|
@@ -5561,7 +5555,7 @@ var BubbleListItems_default = ({
|
|
|
5561
5555
|
{
|
|
5562
5556
|
control: agentActions,
|
|
5563
5557
|
ctx: {
|
|
5564
|
-
message:
|
|
5558
|
+
message: message3,
|
|
5565
5559
|
get dom() {
|
|
5566
5560
|
return messageRefs.current[baseKey];
|
|
5567
5561
|
}
|
|
@@ -5579,7 +5573,7 @@ var BubbleListItems_default = ({
|
|
|
5579
5573
|
MessageRender_default,
|
|
5580
5574
|
{
|
|
5581
5575
|
role,
|
|
5582
|
-
message:
|
|
5576
|
+
message: message3,
|
|
5583
5577
|
messageIndex,
|
|
5584
5578
|
customComponents,
|
|
5585
5579
|
loading: isMessageLoading,
|
|
@@ -6055,7 +6049,8 @@ var ChatSender_default2 = forwardRef(
|
|
|
6055
6049
|
skillsBtn = false,
|
|
6056
6050
|
knowledgeBtn = false,
|
|
6057
6051
|
modelSelect = false,
|
|
6058
|
-
commandConfig
|
|
6052
|
+
commandConfig,
|
|
6053
|
+
uploadConfig
|
|
6059
6054
|
}, ref) => {
|
|
6060
6055
|
const chatStore = useChatStore();
|
|
6061
6056
|
const configState = useSnapshot(chatStore.config);
|
|
@@ -6102,7 +6097,7 @@ var ChatSender_default2 = forwardRef(
|
|
|
6102
6097
|
onFocus: chatStore.config.hooks?.onSenderFocus,
|
|
6103
6098
|
fileUpload: {
|
|
6104
6099
|
request: fileUploadRequest,
|
|
6105
|
-
config: agentState.agentInfo.config?.options?.fileUpload
|
|
6100
|
+
config: uploadConfig || agentState.agentInfo.config?.options?.fileUpload
|
|
6106
6101
|
},
|
|
6107
6102
|
sendBtnProps: isFunction(sendBtnProps) ? sendBtnProps() : {},
|
|
6108
6103
|
extraFooterBelow: /* @__PURE__ */ jsx(RenderWrapper, { control: footerBelow }),
|
|
@@ -6652,13 +6647,13 @@ var layouts_default = forwardRef(({ theme: theme5, params, hooks, layout, config
|
|
|
6652
6647
|
}, [hasPreView]);
|
|
6653
6648
|
useWebSocket({
|
|
6654
6649
|
url: configState.services.websocketUrls?.[0],
|
|
6655
|
-
onMessage: (
|
|
6650
|
+
onMessage: (message3) => chatStore.acceptMessage(message3.payload),
|
|
6656
6651
|
clientHeartbeat: false,
|
|
6657
6652
|
reconnectInterval: 1e4
|
|
6658
6653
|
});
|
|
6659
6654
|
useWebSocket({
|
|
6660
6655
|
url: configState.services.websocketUrls?.[1],
|
|
6661
|
-
onMessage: (
|
|
6656
|
+
onMessage: (message3) => chatStore.acceptMessage(message3.payload),
|
|
6662
6657
|
clientHeartbeat: false,
|
|
6663
6658
|
reconnectInterval: 1e4
|
|
6664
6659
|
});
|