diff --git a/web/src/pages/memory/memory-message/interface.ts b/web/src/pages/memory/memory-message/interface.ts index 09bd51e75..b82de47f9 100644 --- a/web/src/pages/memory/memory-message/interface.ts +++ b/web/src/pages/memory/memory-message/interface.ts @@ -2,7 +2,6 @@ export interface IMessageInfo { message_id: number; message_type: 'semantic' | 'raw' | 'procedural'; source_id: string | '-'; - id: string; user_id: string; agent_id: string; agent_name: string; @@ -11,6 +10,7 @@ export interface IMessageInfo { invalid_at: string; forget_at: string; status: boolean; + extract?: IMessageInfo[]; } export interface IMessageTableProps { diff --git a/web/src/pages/memory/memory-message/message-table.tsx b/web/src/pages/memory/memory-message/message-table.tsx index 1a8d6c946..354baba3a 100644 --- a/web/src/pages/memory/memory-message/message-table.tsx +++ b/web/src/pages/memory/memory-message/message-table.tsx @@ -17,15 +17,19 @@ import { TableRow, } from '@/components/ui/table'; import { Pagination } from '@/interfaces/common'; +import { cn } from '@/lib/utils'; import { replaceText } from '@/pages/dataset/process-log-modal'; import { MemoryOptions } from '@/pages/memories/constants'; import { ColumnDef, ColumnFiltersState, + ExpandedState, + Row, SortingState, VisibilityState, flexRender, getCoreRowModel, + getExpandedRowModel, getFilteredRowModel, getPaginationRowModel, getSortedRowModel, @@ -33,7 +37,13 @@ import { } from '@tanstack/react-table'; import { t } from 'i18next'; import { pick } from 'lodash'; -import { Copy, Eraser, TextSelect } from 'lucide-react'; +import { + Copy, + Eraser, + ListChevronsDownUp, + ListChevronsUpDown, + TextSelect, +} from 'lucide-react'; import * as React from 'react'; import { useMemo, useState } from 'react'; import { CopyToClipboard } from 'react-copy-to-clipboard'; @@ -74,15 +84,55 @@ export function MemoryTable({ handleClickMessageContentDialog, } = useMessageAction(); + const disabledRowFunc = (row: Row) => { + return row.original.forget_at !== 'None' && !!row.original.forget_at; + }; // Define columns for the memory table const columns: ColumnDef[] = useMemo( () => [ { accessorKey: 'session_id', - header: () => {t('memory.messages.sessionId')}, + header: ({ table }) => ( +
+ {' '} + {t('memory.messages.sessionId')} +
+ ), cell: ({ row }) => ( -
- {row.getValue('session_id')} +
+ {row.getCanExpand() ? ( + + ) : ( + '' + )} +
+ {row.getValue('session_id')} +
), }, @@ -138,6 +188,7 @@ export function MemoryTable({ return (
{ handleClickUpdateMessageState(row.original, val); @@ -166,6 +217,7 @@ export function MemoryTable({