"""Flask Application Entry Point""" import logging import sys import os # Add project root to path sys.path.insert(0, os.path.dirname(os.path.abspath(__file__))) import json from datetime import datetime, date from flask import Flask, Response from config import Config from memory_system import MemorySystem from api.routes import api from auth.api_auth import require_auth, api_auth_bp logging.basicConfig( level=logging.INFO, format="%(asctime)s [%(levelname)s] %(name)s: %(message)s", ) logger = logging.getLogger(__name__) def _sanitize(obj): """Recursively sanitize data for JSON serialization.""" if isinstance(obj, dict): return {k: _sanitize(v) for k, v in obj.items()} if isinstance(obj, list): return [_sanitize(v) for v in obj] if isinstance(obj, bytes): return None if isinstance(obj, (datetime, date)): return obj.isoformat() return obj def json_response(data, status=200): """Create a JSON response with proper serialization.""" return Response( json.dumps(_sanitize(data), ensure_ascii=False), status=status, mimetype="application/json", ) LANDING_HTML = """