Token counts for one Messages API request. input_tokens and
output_tokens are what you're billed for; the rest breaks that down
further (cache hits, server tool calls, and so on).
raw holds the usage object exactly as it arrived, so a counter the API adds
before Claudex models it is still readable. It's hidden from inspect/1 to
keep output readable.
Summary
Types
@type t() :: %Claudex.Usage{ cache_creation: map() | nil, cache_creation_input_tokens: non_neg_integer() | nil, cache_read_input_tokens: non_neg_integer() | nil, inference_geo: String.t() | nil, input_tokens: non_neg_integer(), output_tokens: non_neg_integer(), output_tokens_details: map() | nil, raw: map(), server_tool_use: map() | nil, service_tier: String.t() | nil, speed: String.t() | nil }