File size: 1,469 Bytes
b8e5043 a7c4301 b8e5043 a7c4301 b8e5043 a7c4301 b8e5043 a7c4301 b8e5043 a7c4301 6d49dc7 b8e5043 a7c4301 b8e5043 411f347 a7c4301 b8e5043 411f347 a7c4301 b8e5043 a7c4301 b8e5043 a7c4301 b8e5043 705e71e | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 | """Memory tools - store and retrieve long-term memories."""
from memory.manager import MemoryManager
# Global memory manager instance (set during initialization)
_memory_manager: MemoryManager | None = None
def set_memory_manager(manager: MemoryManager):
"""Set the global memory manager instance."""
global _memory_manager
_memory_manager = manager
def _get_manager() -> MemoryManager:
if _memory_manager is None:
raise RuntimeError("Memory manager not initialized. Call set_memory_manager() first.")
return _memory_manager
async def run_remember(content: str, category: str | None = None) -> str:
"""Store information to long-term memory.
Args:
content: The content to remember.
category: Optional category (e.g., "python", "ai", "project-x").
Returns:
Confirmation message.
"""
manager = _get_manager()
return await manager.remember(content, category=category)
async def run_recall(query: str) -> str:
"""Search long-term memory.
Args:
query: Search query.
Returns:
Formatted search results.
"""
manager = _get_manager()
return await manager.recall(query)
async def run_journal(content: str) -> str:
"""Write a journal entry to today's daily journal.
Args:
content: The journal entry content.
Returns:
Confirmation message.
"""
manager = _get_manager()
return await manager.journal(content)
|