Entelechy / tools /memory_tools.py
qa296
refactor: standardize type hints and improve null safety across codebase
6d49dc7
"""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)