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