Skip to main content

merge_catalog

Function merge_catalog 

Source
pub fn merge_catalog(
    current: &[ServiceDescriptor],
    upstream: &ModelsDevPayload,
) -> Result<(Vec<ServiceDescriptor>, CatalogDiff)>
Expand description

Merge a models.dev payload into the current catalog.

Field precedence (per the sync design):

  • Provider service fields (auth, base URL, tiers, setup, …): catalog wins.
  • Provider convenience fields (api_base_url, npm_package, doc_url): catalog wins; models.dev fills only when the catalog value is empty.
  • Model fields (cost, limit, modalities, capabilities, …): models.dev wins; catalog-only models (absent upstream) are preserved in place.

Returns the merged providers and a CatalogDiff. Pure: no I/O.