Feat: Add agent log-sheet in cavas and log-sheet in share's page (#9072)

### What problem does this PR solve?

Feat: Add agent log-sheet in cavas and log-sheet in share's page #3221 

### Type of change

- [x] New Feature (non-breaking change which adds functionality)
This commit is contained in:
chanx
2025-07-28 16:48:46 +08:00
committed by GitHub
parent cc0227cf6e
commit 381f9df941
12 changed files with 520 additions and 256 deletions

View File

@ -17,7 +17,9 @@ import {
useFetchDocumentThumbnailsByIds,
} from '@/hooks/document-hooks';
import { IRegenerateMessage, IRemoveMessageById } from '@/hooks/logic-hooks';
import { INodeEvent } from '@/hooks/use-send-message';
import { cn } from '@/lib/utils';
import { WorkFlowTimeline } from '@/pages/agent/log-sheet/workFlowTimeline';
import { IMessage } from '@/pages/chat/interface';
import { getExtension, isImage } from '@/utils/document-util';
import { Avatar, Button, Flex, List, Space, Typography } from 'antd';
@ -38,6 +40,9 @@ interface IProps
IRegenerateMessage,
PropsWithChildren {
item: IMessage;
conversationId?: string;
currentEventListWithoutMessageById?: (messageId: string) => INodeEvent[];
setCurrentMessageId?: (messageId: string) => void;
reference?: IReferenceObject;
loading?: boolean;
sendLoading?: boolean;
@ -54,6 +59,9 @@ interface IProps
function MessageItem({
item,
conversationId,
currentEventListWithoutMessageById,
setCurrentMessageId,
reference,
loading = false,
avatar,
@ -106,6 +114,11 @@ function MessageItem({
}
}, [item.doc_ids, setDocumentIds, setIds, documentThumbnails]);
useEffect(() => {
if (typeof setCurrentMessageId === 'function') {
setCurrentMessageId(item.id);
}
}, [item.id, setCurrentMessageId]);
return (
<div
className={classNames(styles.messageItem, {
@ -186,6 +199,15 @@ function MessageItem({
list={referenceDocuments}
></ReferenceDocumentList>
)}
{isAssistant && currentEventListWithoutMessageById && (
<WorkFlowTimeline
currentEventListWithoutMessage={currentEventListWithoutMessageById(
item.id,
)}
currentMessageId={item.id}
canvasId={conversationId}
/>
)}
{isUser && documentList.length > 0 && (
<List
bordered