Run one tool call and return a JSON-serializable result.
A refusal is returned rather than thrown, because a framework feeding this
back to a model wants the text, not a stack trace. The shape carries the
retry class so the model learns whether to change the request, wait, or
stop, instead of looping on a denial.
Run one tool call and return a JSON-serializable result.
A refusal is returned rather than thrown, because a framework feeding this back to a model wants the text, not a stack trace. The shape carries the
retryclass so the model learns whether to change the request, wait, or stop, instead of looping on a denial.