import hashlib import time from app.vault import store_reflex HIGH = ["override", "surge", "breach", "failure"] MED = ["delay", "unstable", "degrade"] def classify(score: float) -> str: if score >= 0.8: return "HALT" if score >= 0.4: return "MONITOR" return "STABLE" def run_reflex(req): ts = time.strftime("%Y-%m-%d %H:%M:%S") norm = req.scenario.lower().strip() h = hashlib.sha256(norm.encode()).hexdigest() if any(k in norm for k in HIGH): score = 0.92 elif any(k in norm for k in MED): score = 0.55 else: score = 0.18 state = classify(score) action = { "HALT": "HALT_SIGNAL", "MONITOR": "ESCALATE_MONITORING", "STABLE": "CONTINUE_OPERATION" }[state] size = store_reflex( timestamp=ts, scenario_hash=h, score=score, state=state, source=req.source ) return { "timestamp": ts, "scenario_hash": h, "anomaly_score": score, "system_state": state, "action": action, "vault_size": size }