List the models available from the endpoint/account selected by the client:
{:ok, %TypeSafeSDK.ListModelsResponse{models: models}} =
TypeSafeSDK.list_models(client)Each model is a TypeSafeSDK.ModelMetadata with required name, description,
and release_date fields. Unknown future fields are ignored.
Enum.map(models, & &1.name)
# Select a returned model name for an evaluation:
TypeSafeSDK.system_one(client, state, questions, model: "jev-latest")The evaluation response reports the model that actually handled the request;
an alias such as jev-latest may resolve to a concrete version on the official
service. Alternate TypeSafe-compatible hosts can expose different model IDs; use a
name returned by that host instead of assuming the default alias exists everywhere.
Response metadata and reproducible evaluation
The model-list response also retains raw JSON, request ID, raw HTTP response,
retry count and elapsed milliseconds. Test.stub_models/3 exercises the same
list-model decoding path. For repeated evaluations, choose a concrete model
version from the list rather than assuming an alias is immutable; record the
actual returned model and request IDs. The bundled evaluation workflow freezes
an observed model with its development policy for held-out runs.
Pure catalog lookup helpers in 0.3
{:ok, response} = TypeSafeSDK.list_models(client)
{:ok, model} = TypeSafeSDK.Models.find(response, "jev")
model = TypeSafeSDK.Models.find!(response.models, "jev")
{:ok, latest} = TypeSafeSDK.Models.latest(response, :all)find/2 is exact; it does not perform prefix or fuzzy matching and reports
ambiguity. latest/2 uses the structured release_date. Selectors can be
:all, an exact model name, exact model-field keyword/map filters, or a unary
predicate. Invalid dates or an objective latest-date tie fail with an
unordered_model_catalog error rather than guessing from lexical or returned
order.
mix run examples/live_composition_contracts.exs demonstrates exact find/2,
find!/2, and objective latest/2 selection using the real catalog returned by the
selected endpoint. It does not fabricate dated model names when a provider catalog
lacks usable dates or has an ambiguous latest entry.