# `Arcanum.Response`
[🔗](https://github.com/kakilangit/arcanum/blob/v0.1.0/lib/arcanum/response.ex#L1)

Canonical response struct from inference calls.

Normalizes provider responses into a uniform shape so that
callers don't need to handle provider-specific formats.

# `t`

```elixir
@type t() :: %Arcanum.Response{
  content: String.t() | nil,
  finish_reason: String.t() | nil,
  thinking: String.t() | nil,
  tool_calls: [tool_call()] | nil,
  usage: usage() | nil
}
```

# `tool_call`

```elixir
@type tool_call() :: %{
  id: String.t(),
  function: %{name: String.t(), arguments: String.t()}
}
```

# `usage`

```elixir
@type usage() :: %{
  prompt_tokens: non_neg_integer(),
  completion_tokens: non_neg_integer(),
  total_tokens: non_neg_integer()
}
```

---

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