# `AgentSessionManager.Models`
[🔗](https://github.com/nshkrdotcom/agent_session_manager/blob/v0.8.0/lib/agent_session_manager/models.ex#L1)

Central registry of model identifiers, default models, and pricing data.

All model name strings and per-token rates are defined here so that updating
a model version or price is a single-file change. Adapters and cost calculators
reference this module rather than hardcoding model strings.

## Application Configuration

Defaults can be overridden via application config:

    config :agent_session_manager, AgentSessionManager.Models,
      claude_default_model: "claude-sonnet-4-5-20250929",
      pricing_table: %{...}

See the [Model Configuration guide](model_configuration.md) for details.

# `default_model`

```elixir
@spec default_model(atom()) :: String.t() | nil
```

Returns the default model for the given provider.

## Examples

    iex> AgentSessionManager.Models.default_model(:claude)
    "claude-haiku-4-5-20251001"

    iex> AgentSessionManager.Models.default_model(:codex)
    nil

# `default_pricing_table`

```elixir
@spec default_pricing_table() :: map()
```

Returns the compiled default pricing table (not affected by app config).

# `model_names`

```elixir
@spec model_names() :: [String.t()]
```

Returns a list of all known model name keys from the default pricing table.

# `pricing_table`

```elixir
@spec pricing_table() :: map()
```

Returns the active pricing table, merging any application config overrides.

---

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