# ol.llx.ai.impl.model-catalog.generate

## supported-provider-rules

[source,window=_blank](https://github.com/outskirtslabs/llx/blob/main/src/ol/llx/ai/impl/model_catalog/generate.clj#L10-L14)

---

## default-generated-artifact-path

[source,window=_blank](https://github.com/outskirtslabs/llx/blob/main/src/ol/llx/ai/impl/model_catalog/generate.clj#L16-L16)

---

## default-overrides-path

[source,window=_blank](https://github.com/outskirtslabs/llx/blob/main/src/ol/llx/ai/impl/model_catalog/generate.clj#L17-L17)

---

## models-dev-url

[source,window=_blank](https://github.com/outskirtslabs/llx/blob/main/src/ol/llx/ai/impl/model_catalog/generate.clj#L18-L18)

---

## fetch-models-dev-data

```clojure
(fetch-models-dev-data)
```

Fetches and decodes the models.dev catalog JSON as a Clojure map.

[source,window=_blank](https://github.com/outskirtslabs/llx/blob/main/src/ol/llx/ai/impl/model_catalog/generate.clj#L20-L28)

---

## build-catalog

```clojure
(build-catalog {:keys [models-dev-data overrides]})
```

Builds canonical model entries from models.dev source data and local override patches.

`overrides` is a map of `model-id -> patch-map`.
Existing source models are patched in a fine-grained way (nested maps merged).
If a model id is absent in source, the patch map must include a full valid model definition.

[source,window=_blank](https://github.com/outskirtslabs/llx/blob/main/src/ol/llx/ai/impl/model_catalog/generate.clj#L201-L221)

---

## render-generated-source

```clojure
(render-generated-source catalog)
```

Renders deterministic source for `ol.llx.ai.impl.models-generated` from normalized catalog entries.

[source,window=_blank](https://github.com/outskirtslabs/llx/blob/main/src/ol/llx/ai/impl/model_catalog/generate.clj#L236-L248)

---

## write-generated-artifact!

```clojure
(write-generated-artifact! {:keys [path content]})
```

[source,window=_blank](https://github.com/outskirtslabs/llx/blob/main/src/ol/llx/ai/impl/model_catalog/generate.clj#L250-L253)

---

## generate-models!

```clojure
(generate-models! opts)
```

[source,window=_blank](https://github.com/outskirtslabs/llx/blob/main/src/ol/llx/ai/impl/model_catalog/generate.clj#L259-L269)

---

## -main

```clojure
(-main & _args)
```

[source,window=_blank](https://github.com/outskirtslabs/llx/blob/main/src/ol/llx/ai/impl/model_catalog/generate.clj#L271-L274)
