({
agentId,
agentName,
isOpen,
onClose
})
| 23 | } |
| 24 | |
| 25 | const MemoryManager: React.FC<MemoryManagerProps> = ({ |
| 26 | agentId, |
| 27 | agentName, |
| 28 | isOpen, |
| 29 | onClose |
| 30 | }) => { |
| 31 | const [memory, setMemory] = useState(''); |
| 32 | const [savedMemory, setSavedMemory] = useState(''); |
| 33 | const [imageMemory, setImageMemory] = useState<string[]>([]); |
| 34 | const [isSaving, setIsSaving] = useState(false); |
| 35 | const [isClearing, setIsClearing] = useState(false); |
| 36 | const [isClearingImages, setIsClearingImages] = useState(false); |
| 37 | const [isUploading, setIsUploading] = useState(false); |
| 38 | const [error, setError] = useState<string | null>(null); |
| 39 | const fileInputRef = useRef<HTMLInputElement>(null); |
| 40 | |
| 41 | // Load memory when component opens |
| 42 | useEffect(() => { |
| 43 | if (isOpen) { |
| 44 | loadMemory(); |
| 45 | loadImageMemory(); |
| 46 | } |
| 47 | }, [isOpen, agentId]); |
| 48 | |
| 49 | // Listen for memory update events |
| 50 | useEffect(() => { |
| 51 | const handleMemoryUpdate = (event: CustomEvent) => { |
| 52 | if (event.detail.agentId === agentId && isOpen) { |
| 53 | loadMemory(false); // Silent update |
| 54 | loadImageMemory(false); // Also reload image memory |
| 55 | } |
| 56 | }; |
| 57 | |
| 58 | // Add event listener |
| 59 | window.addEventListener(MEMORY_UPDATE_EVENT, handleMemoryUpdate as EventListener); |
| 60 | |
| 61 | // Clean up |
| 62 | return () => { |
| 63 | window.removeEventListener(MEMORY_UPDATE_EVENT, handleMemoryUpdate as EventListener); |
| 64 | }; |
| 65 | }, [agentId, isOpen]); |
| 66 | |
| 67 | const loadMemory = async (logActivity = true) => { |
| 68 | try { |
| 69 | setError(null); |
| 70 | const agentMemory = await getAgentMemory(agentId); |
| 71 | |
| 72 | setMemory(agentMemory); |
| 73 | setSavedMemory(agentMemory); |
| 74 | |
| 75 | if (logActivity) { |
| 76 | Logger.debug(agentId, `Memory loaded (${agentMemory.length} characters)`); |
| 77 | } |
| 78 | } catch (err) { |
| 79 | const errorMessage = err instanceof Error ? err.message : 'Unknown error'; |
| 80 | setError(`Failed to load memory: ${errorMessage}`); |
| 81 | Logger.error(agentId, `Failed to load memory: ${errorMessage}`, err); |
| 82 | } |
nothing calls this directly
no test coverage detected