"""Start a loopback-only demo. Generate a private .env if absent; no cloud writes.""" import os import secrets import subprocess import sys from datetime import UTC, datetime from pathlib import Path import uvicorn root = Path(__file__).resolve().parents[1] sys.path.insert(0, str(root)) env = root / ".env" if not env.exists(): text = ( (root / ".env.example") .read_text() .replace( "FRAME_FLOW_TOKEN=\n", "FRAME_FLOW_TOKEN=" + secrets.token_urlsafe(32) + "\n", ) ) env.write_text(text) env.chmod(0o600) for line in env.read_text().splitlines(): if "=" in line and not line.startswith("#"): key, value = line.split("=", 1) os.environ.setdefault(key, value) os.environ["DATA_DIR"] = str(root / "data") os.environ["CONFIG_DIR"] = str(root / "config") os.environ["KOKONNA_MOCK"] = "true" os.environ["KOKONNA_WRITE_ENABLED"] = "false" os.environ["BUILD_COMMIT"] = ( subprocess.run( ["git", "rev-parse", "HEAD"], cwd=root, capture_output=True, text=True ).stdout.strip() or "development" ) os.environ["BUILD_TIME"] = datetime.now(UTC).isoformat() uvicorn.run( "pigway_frame_flow.main:app", host="127.0.0.1", port=18787, access_log=False )