Source code for veupath_chatbot.platform.tool_errors

"""Helpers for standardized AI tool error payloads."""

from enum import Enum

from veupath_chatbot.platform.types import JSONObject, JSONValue


[docs] def tool_error(code: str | Enum, message: str, **details: JSONValue) -> JSONObject: """Build a standardized tool error payload. :param code: Error code (string or Enum). :param message: Error message. :param details: Additional details as keyword arguments. :returns: Standardized error payload dict. """ code_value = code.value if isinstance(code, Enum) else str(code) payload: JSONObject = {"ok": False, "code": code_value, "message": message} if details: payload["details"] = details for key, value in details.items(): if key not in payload and value is not None: payload[key] = value return payload