# Gerado por IA import os from datetime import datetime from database import get_today_messages, save_message from config import settings def get_daily_context_path() -> str: today = datetime.utcnow().strftime("%Y-%m-%d") os.makedirs(settings.CONTEXTS_DIR, exist_ok=True) return os.path.join(settings.CONTEXTS_DIR, f"conversas_{today}.json") def load_daily_context() -> list[dict]: """Carrega o contexto do dia. SQLite e a fonte da verdade; JSON e um cache sincronizado.""" # Fonte primaria: SQLite context = get_today_messages() if context: return context # Fallback: JSON (caso SQLite esteja vazio) path = get_daily_context_path() if os.path.exists(path): try: import json with open(path, "r", encoding="utf-8") as f: return json.load(f) except Exception: return [] return [] def append_to_context(agent_name: str, message: str) -> None: path = get_daily_context_path() context = load_daily_context() timestamp = datetime.utcnow().isoformat() entry = {"agent_name": agent_name, "message": message, "created_at": timestamp} context.append(entry) import json with open(path, "w", encoding="utf-8") as f: json.dump(context, f, ensure_ascii=False, indent=2) save_message(agent_name, message) def get_context_summary(max_messages: int = 50) -> str: context = load_daily_context() if not context: return "Nenhuma conversa registrada para hoje ainda." lines = [f"[{c['created_at']}] {c['agent_name']}: {c['message']}" for c in context[-max_messages:]] return "\n".join(lines)