# `Agentic.LLM.ErrorClassifier`

Unified error classification combining three sources:

1. Provider-specific override via `Provider.classify_http_error/3`
2. HTTP status code baseline lookup
3. Pattern-based fallback via `ErrorPatterns.classify_message/1`
4. Always test for `:context_overflow` separately (can happen on any status)

If none match, falls through to `:permanent`.

# `classification`

```elixir
@type classification() :: Agentic.LLM.Error.classification()
```

# `classify`

```elixir
@spec classify(non_neg_integer() | nil, term(), term(), module() | nil) ::
  {atom(), term()}
```

Classify an error from HTTP status, body, and headers.

`provider` is the provider module (e.g. `Agentic.LLM.Provider.Groq`).
When the provider implements the optional `classify_http_error/3`
callback, its result takes precedence over the generic baseline.

---

*Consult [api-reference.md](api-reference.md) for complete listing*
