import asyncio
import json
import sys

if hasattr(sys.stdout, "reconfigure"):
    sys.stdout.reconfigure(encoding="utf-8", errors="replace")
if hasattr(sys.stderr, "reconfigure"):
    sys.stderr.reconfigure(encoding="utf-8", errors="replace")

from mcp.client.sse import sse_client
from mcp.client.session import ClientSession

async def main():
    async with sse_client("http://127.0.0.1:8765/sse") as (read, write):
        async with ClientSession(read, write) as session:
            await session.initialize()
            res = await session.call_tool("mem0_get_all", {"user_id": "developer"})
            data = json.loads(res.content[0].text)
            for m in data.get("memories", {}).get("results", []):
                meta = m.get("metadata") or {}
                code = meta.get("code")
                if code in ["RULE-BACKEND-02", "RULE-WORKFLOW-01", "RULE-BACKEND-04", "RULE-ROOT-04", "RULE-ROOT-01", "RULE-FRONTEND-01", "RULE-AEC-02", "RULE-AEC-07"]:
                    print(f"*** {code} ***")
                    print(m.get("memory"))
                    print("-" * 50)

if __name__ == "__main__":
    asyncio.run(main())
