# `Agentic.Config`

Runtime config surface for `agentic`, loaded from
`Application.get_all_env(:agentic)`.

Hosts configure agentic through the standard Elixir config flow:

    config :agentic,
      providers: [Agentic.LLM.Provider.Anthropic, ...],
      catalog: [persist_path: "~/.agentic/catalog.json", ...]

This module exposes typed accessors validated via `nimble_options`.

# `catalog`

```elixir
@spec catalog(key :: atom(), default :: term()) :: term()
```

Catalog config key.

# `embedding_model`

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

Returns the preferred embedding model id, or nil if not configured.
Hosts can set `config :agentic, embedding_model: "text-embedding-3-small"`.

# `providers`

```elixir
@spec providers() :: [module()]
```

All providers configured at compile time.

# `router`

```elixir
@spec router(key :: atom(), default :: term()) :: term()
```

Router config key.

# `telemetry`

```elixir
@spec telemetry(key :: atom(), default :: term()) :: term()
```

Telemetry config key.

# `usage`

```elixir
@spec usage(key :: atom(), default :: term()) :: term()
```

Usage config key.

# `validate!`

```elixir
@spec validate!() :: keyword()
```

Validate and return the full config map.

---

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