#!/usr/bin/env python3 """ Test script for memory system. """ import sys from pathlib import Path # Add parent directory to path sys.path.insert(0, str(Path(__file__).parent.parent)) from memory.manager import get_memory_manager from memory.schema import MemoryCategory, MemorySource def test_memory(): """Test memory system.""" print("=" * 60) print("Memory System Test") print("=" * 60) manager = get_memory_manager() # Test storing explicit fact print("\n1. Storing explicit fact...") entry = manager.store_fact( category=MemoryCategory.PREFERENCES, key="favorite_color", value="blue", confidence=1.0, source=MemorySource.EXPLICIT ) print(f" ✅ Stored: {entry.category.value}/{entry.key} = {entry.value}") # Test storing inferred fact print("\n2. Storing inferred fact...") entry = manager.store_fact( category=MemoryCategory.ROUTINES, key="morning_routine", value="coffee at 7am", confidence=0.8, source=MemorySource.INFERRED, context="Mentioned in conversation" ) print(f" ✅ Stored: {entry.category.value}/{entry.key} = {entry.value}") # Test retrieving fact print("\n3. Retrieving fact...") fact = manager.get_fact(MemoryCategory.PREFERENCES, "favorite_color") if fact: print(f" ✅ Retrieved: {fact.key} = {fact.value} (confidence: {fact.confidence})") # Test category retrieval print("\n4. Getting category facts...") facts = manager.get_category_facts(MemoryCategory.PREFERENCES) print(f" ✅ Found {len(facts)} facts in preferences category") # Test search print("\n5. Searching facts...") results = manager.search_facts("coffee") print(f" ✅ Found {len(results)} facts matching 'coffee'") for result in results: print(f" - {result.key}: {result.value}") # Test prompt formatting print("\n6. Formatting for prompt...") prompt_text = manager.format_for_prompt() print(" ✅ Formatted memory:") print(" " + "\n ".join(prompt_text.split("\n")[:10])) print("\n" + "=" * 60) print("✅ Memory system tests complete!") print("=" * 60) if __name__ == "__main__": test_memory()