from pathlib import Path
from datetime import datetime
import json

class Hippocampus:
    """
    Memória contextual simples (JSON Lines): append-only.
    Guarda perceções, decisões e ações para replays futuros.
    Apenas stdlib JSON — 100% compatível com Python estático.
    """

    def __init__(self, log_dir: Path):
        self.log_dir = log_dir
        self.log_dir.mkdir(parents=True, exist_ok=True)
        self.events_file = self.log_dir / "events.jsonl"

    def remember(self, kind: str, data: dict) -> None:
        rec = {
            "ts": datetime.utcnow().isoformat() + "Z",
            "kind": kind,
            "data": data,
        }

        try:
            # stdlib json → sempre string
            blob = json.dumps(rec, separators=(",", ":"))  # compacto
            with self.events_file.open("a", encoding="utf-8") as f:
                f.write(blob + "\n")
        except Exception:
            # nunca crashar o Neurotron por logs
            pass

