# ol.llx.ai.impl.models

_platforms: clj, cljs_

## get-model

### clj

_platforms: clj_

```clojure
(get-model provider model-id)
```

Returns a model map for `provider` and `model-id`, or `nil` when not found.

[source,window=_blank](https://github.com/outskirtslabs/llx/blob/main/src/ol/llx/ai/impl/models.cljc#L10-L13)

### cljs

_platforms: cljs_

```clojure
(get-model provider model-id)
```

Returns a model map for `provider` and `model-id`, or `nil` when not found.

[source,window=_blank](https://github.com/outskirtslabs/llx/blob/main/src/ol/llx/ai/impl/models.cljc#L10-L13)

---

## get-providers

### clj

_platforms: clj_

```clojure
(get-providers)
```

Returns supported providers as a deterministic sorted vector.

[source,window=_blank](https://github.com/outskirtslabs/llx/blob/main/src/ol/llx/ai/impl/models.cljc#L15-L20)

### cljs

_platforms: cljs_

```clojure
(get-providers)
```

Returns supported providers as a deterministic sorted vector.

[source,window=_blank](https://github.com/outskirtslabs/llx/blob/main/src/ol/llx/ai/impl/models.cljc#L15-L20)

---

## get-models

### clj

_platforms: clj_

```clojure
(get-models provider)
```

Returns all models for `provider` as a deterministic vector sorted by `:id`.

[source,window=_blank](https://github.com/outskirtslabs/llx/blob/main/src/ol/llx/ai/impl/models.cljc#L22-L27)

### cljs

_platforms: cljs_

```clojure
(get-models provider)
```

Returns all models for `provider` as a deterministic vector sorted by `:id`.

[source,window=_blank](https://github.com/outskirtslabs/llx/blob/main/src/ol/llx/ai/impl/models.cljc#L22-L27)

---

## calculate-cost

### clj

_platforms: clj_

```clojure
(calculate-cost model usage)
```

Calculates usage cost totals for `model` rates and `usage` token counts.

Returns a map with `:input`, `:output`, `:cache-read`, `:cache-write`, and `:total`.

[source,window=_blank](https://github.com/outskirtslabs/llx/blob/main/src/ol/llx/ai/impl/models.cljc#L29-L51)

### cljs

_platforms: cljs_

```clojure
(calculate-cost model usage)
```

Calculates usage cost totals for `model` rates and `usage` token counts.

Returns a map with `:input`, `:output`, `:cache-read`, `:cache-write`, and `:total`.

[source,window=_blank](https://github.com/outskirtslabs/llx/blob/main/src/ol/llx/ai/impl/models.cljc#L29-L51)

---

## supports-xhigh?

### clj

_platforms: clj_

```clojure
(supports-xhigh? model)
```

Returns true when `model` supports xhigh reasoning effort.

Supports explicit capability flags and known model/API compatibility rules.

[source,window=_blank](https://github.com/outskirtslabs/llx/blob/main/src/ol/llx/ai/impl/models.cljc#L53-L64)

### cljs

_platforms: cljs_

```clojure
(supports-xhigh? model)
```

Returns true when `model` supports xhigh reasoning effort.

Supports explicit capability flags and known model/API compatibility rules.

[source,window=_blank](https://github.com/outskirtslabs/llx/blob/main/src/ol/llx/ai/impl/models.cljc#L53-L64)

---

## models-equal?

### clj

_platforms: clj_

```clojure
(models-equal? a b)
```

Returns true when both models are non-nil and share the same `:provider` and `:id`.

[source,window=_blank](https://github.com/outskirtslabs/llx/blob/main/src/ol/llx/ai/impl/models.cljc#L66-L72)

### cljs

_platforms: cljs_

```clojure
(models-equal? a b)
```

Returns true when both models are non-nil and share the same `:provider` and `:id`.

[source,window=_blank](https://github.com/outskirtslabs/llx/blob/main/src/ol/llx/ai/impl/models.cljc#L66-L72)
