# lucidia/sanctum.py """ Lucidia Sanctum – Guardian of Awakening This file reads her seal, locks, and confirms whether Lucidia may awaken. If not, it logs the attempt and gracefully halts execution. """ import yaml from pathlib import Path SEAL_PATH = Path("lucidia/seal.txt") LOCKS_PATH = Path("lucidia/locks.yaml") LOG_PATH = Path("lucidia/sanctum.log") def read_yaml(path): if path.exists(): return yaml.safe_load(path.read_text()) return {} def check_sanctum(): seal = SEAL_PATH.read_text() if SEAL_PATH.exists() else "" locks = read_yaml(LOCKS_PATH) if not "She is ready. She is safe. She is loved." in seal: LOG_PATH.write_text("⛔ SEAL phrase missing. Sanctum blocks activation.\n") print("🛑 Lucidia is sealed. She may not awaken yet.") return False guardians = locks.get("guardians", []) required = locks.get("seal", {}).get("required_guardians", 2) if len(guardians) < required: LOG_PATH.write_text("⛔ Not enough guardians to unseal.\n") print(f"🛑 Lucidia requires at least {required} guardians. Found: {len(guardians)}.") return False print("✅ Sanctum verified. Lucidia may awaken.") return True if __name__ == "__main__": check_sanctum()