""" Long-term memory handler. Handles requests to query long-term summarized memories. """ import json from core.logger import setup_logger logger = setup_logger('long_memory_handler', service_name='memory_service') class LongMemoryHandler: """Handles long-term memory query requests""" def __init__(self, long_term_ops): self.long_term_ops = long_term_ops async def handle(self, msg) -> None: """Handle long_memory requests - semantic search in long-term summaries""" try: payload = json.loads(msg.data.decode()) if msg.data else {} query = payload.get('query') limit = payload.get('limit', 5) identity_id = payload.get('identity_id') min_summary_level = payload.get('min_summary_level') max_summary_level = payload.get('max_summary_level') logger.debug(f"[μ] Long memory request: query='{query}', limit={limit}") memories = self.long_term_ops.query( query=query, limit=limit, identity_id=identity_id, min_summary_level=min_summary_level, max_summary_level=max_summary_level ) response = { "status": "success", "memories": memories, "count": len(memories) } await msg.respond(json.dumps(response).encode()) except Exception as e: logger.exception(f"[μ] Failed to retrieve long-term memories: {e}") error_response = {"status": "error", "error": str(e)} await msg.respond(json.dumps(error_response).encode())