# `Planck.AI.Models.TypeSafe`
[🔗](https://github.com/alexdesousa/planck/blob/v0.2.4/lib/planck/ai/models/type_safe.ex#L1)

Model catalog for Typesafe AI's System One models and Typesafe-compatible
endpoints.

Unlike `Planck.AI.Models.OpenAI`, there is no bundled LLMDB catalog for
`:typesafe` — this provider queries `GET "#{base_url}/v1/models"` at call
time, cloud or self-hosted, since both expose the same path per Typesafe's
API reference. A self-hosted/compatible server that doesn't implement
discovery (e.g. `decider`) degrades to `[]`, the same as any other
non-200 or unreachable response.

## Examples

    # Cloud catalog (TYPESAFE_API_KEY)
    Planck.AI.Models.TypeSafe.all()

    # Self-hosted / compatible endpoint
    Planck.AI.Models.TypeSafe.all(base_url: "http://localhost:8377")

# `all`

```elixir
@spec all(keyword()) :: [Planck.AI.Model.t()]
```

Returns models for this provider by querying `GET /v1/models` at
`base_url` (defaults to Typesafe's cloud API).

## Options

- `:base_url` — base URL of the server. Defaults to `https://api.typesafe.ai`.
- `:identifier` — uppercase tag for env var derivation (e.g. `"JEV"` →
  `JEV_API_KEY`). Defaults to `"TYPESAFE"`.
- `:context_window` — default context window. Defaults to `32_768`.
- `:max_tokens` — default max tokens. Defaults to `2_048`.

---

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