Typed error returned by unified LLM adapters and client retries.
The struct normalizes provider/API/transport failures into a consistent shape so callers can make retry, logging, and host-event decisions without pattern matching on provider-specific payloads.
Summary
Types
@type error_type() ::
:transport
| :timeout
| :rate_limited
| :authentication
| :permission
| :invalid_request
| :server
| :api
| :unsupported
| :unknown
@type t() :: %AttractorEx.LLM.Error{ __exception__: true, code: String.t() | nil, details: map(), message: String.t(), provider: String.t() | nil, raw: term(), retry_after_ms: non_neg_integer() | nil, retryable: boolean(), status: pos_integer() | nil, type: error_type() }