"""Variante FIXED de la demo de arnés determinista (traza sintética).

Mismo parser que before.py con un único cambio general en el arnés:
la respuesta solo es válida si la herramienta declara status == "ok".
Cualquier otro valor de status, o su ausencia, se trata como fallo de la
herramienta y se propaga su error_code. No se inspecciona el texto de
`content` ni se enumeran códigos de error concretos.
"""


def parse_tool_response(response: dict) -> dict:
    content = response.get("content")
    # Único cambio respecto a before.py: el veredicto sale del campo estructurado status.
    if response.get("status") != "ok":
        return {
            "ok": False,
            "error_code": response.get("error_code", "UNKNOWN"),
            "message": content if content is not None else "",
        }
    if content is None:
        return {"ok": False, "error_code": "EMPTY_RESPONSE", "message": ""}
    return {"ok": True, "answer": content}
