import type { MemoryArtifact } from 'librechat-data-provider'; import { useMemo } from 'react'; import { useLocalize } from '~/hooks'; export default function MemoryInfo({ memoryArtifacts }: { memoryArtifacts: MemoryArtifact[] }) { const localize = useLocalize(); const { updatedMemories, deletedMemories, errorMessages } = useMemo(() => { const updated = memoryArtifacts.filter((art) => art.type === 'update'); const deleted = memoryArtifacts.filter((art) => art.type === 'delete'); const errors = memoryArtifacts.filter((art) => art.type === 'error'); const messages = errors.map((artifact) => { try { const errorData = JSON.parse(artifact.value as string); if (errorData.errorType === 'already_exceeded') { return localize('com_ui_memory_already_exceeded', { tokens: errorData.tokenCount, }); } else if (errorData.errorType === 'would_exceed') { return localize('com_ui_memory_would_exceed', { tokens: errorData.tokenCount, }); } else { return localize('com_ui_memory_error'); } } catch { return localize('com_ui_memory_error'); } }); return { updatedMemories: updated, deletedMemories: deleted, errorMessages: messages, }; }, [memoryArtifacts, localize]); if (memoryArtifacts.length === 0) { return null; } if (updatedMemories.length === 0 && deletedMemories.length === 0 && errorMessages.length === 0) { return null; } return (
{updatedMemories.length > 0 && (

{localize('com_ui_memory_updated_items')}

{updatedMemories.map((artifact) => (
{artifact.key}
{artifact.value}
))}
)} {deletedMemories.length > 0 && (

{localize('com_ui_memory_deleted_items')}

{deletedMemories.map((artifact) => (
{artifact.key}
{localize('com_ui_memory_deleted')}
))}
)} {errorMessages.length > 0 && (

{localize('com_ui_memory_storage_full')}

{errorMessages.map((errorMessage) => (
{errorMessage}
))}
)}
); }