from typing import Dict, Any, List

def decide(context: Dict[str, Any]) -> Dict[str, Any]:
    """Motor de reglas simple.
    Entrada: contexto agregado (evento + memoria resumida)
    Salida: decision JSON-ready.
    """
    src = context.get("source")
    typ = context.get("type")
    payload = context.get("payload", {}) or {}

    # Ejemplos de reglas (rellena con tus dominios)
    if src == "iot" and typ == "alarma" and payload.get("nivel", 0) >= 8:
        return {
            "decision": "ALERTA alta: activar protocolo",
            "justificacion": "Evento IoT con nivel >= 8",
            "siguiente_paso": ["Notificar", "Grabar evidencia", "Bloquear accesos si aplica"],
            "riesgo": {"nivel":"alto", "drivers":["iot_critico"]},
            "evidencia": [{"fuente":"iot","ref":payload.get("device","?")}],
        }

    return {
        "decision": "Registrar y esperar",
        "justificacion": "No hay regla aplicable todavía",
        "siguiente_paso": ["Guardar en interacciones", "Etiquetar tema", "Revisar en dashboard"],
        "riesgo": {"nivel":"bajo", "drivers":["default"]},
        "evidencia": [{"fuente":src or "?", "ref":typ or "?"}],
    }
