Mimir.Catalog (Mimir v0.1.0)

Copy Markdown View Source

The routable universe: config-sourced entries (:mimir, :catalog) joining a model with the routing metadata the oracle filters on — lane, runtime, capabilities, latency, priority. Config-first by design; richer sourcing can replace the source without touching the oracle.

Model resolution is a seam: pass resolve: fun to validate or enrich each entry's model through your own registry (Entry.model_spec holds whatever the resolver returns — this library treats it as opaque). The default resolver accepts the model string as its own spec.

Summary

Functions

Build the routable entry list from config (defaults to :mimir, :catalog).

Types

resolver()

@type resolver() :: (String.t() -> {:ok, term()} | {:error, :unknown_model})

Functions

entries(config \\ nil, opts \\ [])

@spec entries(
  [map()] | nil,
  keyword()
) :: [Mimir.Catalog.Entry.t()]

Build the routable entry list from config (defaults to :mimir, :catalog).

Pass resolve: fun to validate/enrich each entry's model through your own registry; entries whose model the resolver rejects are dropped (and logged).