# `LLMProxy.HTTP.Routes.Passthrough`
[🔗](https://github.com/elixir-vibe/llm_proxy/blob/v0.3.1/lib/llm_proxy/http/routes/passthrough.ex#L1)

Shared provider-passthrough route flow.

Passthrough routes keep the upstream provider API shape at the HTTP boundary
while sharing common result dispatch and provider-error dispatch here.

# `error_handler`

```elixir
@spec error_handler(
  LLMProxy.HTTP.Routes.Passthrough.ErrorHandler.send_error(),
  LLMProxy.HTTP.Routes.Passthrough.ErrorHandler.provider_error_type(),
  LLMProxy.HTTP.Routes.Passthrough.ErrorHandler.on_provider_error()
) :: LLMProxy.HTTP.Routes.Passthrough.ErrorHandler.t()
```

# `result_handler`

```elixir
@spec result_handler(
  LLMProxy.HTTP.Routes.Passthrough.ResultHandler.non_stream(),
  LLMProxy.HTTP.Routes.Passthrough.ResultHandler.stream()
) :: LLMProxy.HTTP.Routes.Passthrough.ResultHandler.t()
```

# `send_error`

```elixir
@spec send_error(
  Plug.Conn.t(),
  term(),
  LLMProxy.HTTP.Routes.Passthrough.ErrorHandler.t()
) ::
  Plug.Conn.t()
```

# `send_result`

```elixir
@spec send_result(
  Plug.Conn.t(),
  LLMProxy.Providers.Result.t(),
  map(),
  String.t(),
  LLMProxy.HTTP.Routes.Passthrough.ResultHandler.t()
) :: Plug.Conn.t()
```

---

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