@playerthree/bench/model-catalog

OpenRouter model catalog for benchmark configuration discovery (server/CLI only): a bounded, allowlisted projection of the public models list. Catalog membership is neither an execution whitelist nor model identity evidence.

Classes

ModelCatalogError

Defined in: packages/bench/src/model-catalog.ts:59

A catalog fetch failed; carries a closed code only, never the provider's error text.

Extends

  • Error

Constructors

Constructor
new ModelCatalogError(code): ModelCatalogError;

Defined in: packages/bench/src/model-catalog.ts:61

Parameters
ParameterType
code"unavailable" | "invalid_response" | "response_too_large"
Returns

ModelCatalogError

Overrides

Error.constructor

Properties

PropertyModifierTypeDefined in
codereadonly"unavailable" | "invalid_response" | "response_too_large"packages/bench/src/model-catalog.ts:60

Interfaces

CatalogFetchOptions

Defined in: packages/bench/src/model-catalog.ts:52

Properties

PropertyTypeDescriptionDefined in
apiKey?stringOpt-in server-side credential only; public discovery never needs an environment lookup.packages/bench/src/model-catalog.ts:54
fetch?{ (input, init?): Promise<Response>; (input, init?): Promise<Response>; }-packages/bench/src/model-catalog.ts:55
now?() => number-packages/bench/src/model-catalog.ts:56

CatalogPrice

Defined in: packages/bench/src/model-catalog.ts:14

Properties

PropertyModifierTypeDescriptionDefined in
amountreadonlystring | nullExact decimal string, never a floating-point dollar conversion. Null includes provider sentinels.packages/bench/src/model-catalog.ts:17
parameterreadonlystring-packages/bench/src/model-catalog.ts:15
rawreadonlystring | null-packages/bench/src/model-catalog.ts:18
unitreadonlystring | nullUnknown future price dimensions remain unknown, not implicitly per-token.packages/bench/src/model-catalog.ts:20

CatalogSearch

Defined in: packages/bench/src/model-catalog.ts:206

Properties


ModelCatalog

Defined in: packages/bench/src/model-catalog.ts:40

Properties

PropertyModifierTypeDescriptionDefined in
disclaimerreadonly"OpenRouter catalog metadata is a discovery hint, not a whitelist or model identity attestation. Listed prices are dated estimates, not billed costs; routing, caching and conditional rates can change actual charges."-packages/bench/src/model-catalog.ts:45
fetchedAtreadonlystring-packages/bench/src/model-catalog.ts:42
modelsreadonlyreadonly ModelCatalogEntry[]-packages/bench/src/model-catalog.ts:46
scopereadonly"default-text-output-catalog"The unfiltered endpoint defaults to text-output models, not every OpenRouter product.packages/bench/src/model-catalog.ts:44
sourcereadonly"https://openrouter.ai/api/v1/models"-packages/bench/src/model-catalog.ts:41

ModelCatalogEntry

Defined in: packages/bench/src/model-catalog.ts:22

Properties

PropertyModifierTypeDefined in
contextLengthreadonlynumber | nullpackages/bench/src/model-catalog.ts:25
idreadonlystringpackages/bench/src/model-catalog.ts:23
inputModalitiesreadonlyreadonly string[] | nullpackages/bench/src/model-catalog.ts:26
namereadonlystring | nullpackages/bench/src/model-catalog.ts:24
outputModalitiesreadonlyreadonly string[] | nullpackages/bench/src/model-catalog.ts:27
pricingreadonlyobjectpackages/bench/src/model-catalog.ts:31
pricing.basisreadonly"catalog-list-price"packages/bench/src/model-catalog.ts:35
pricing.currencyreadonly"USD"packages/bench/src/model-catalog.ts:32
pricing.fetchedAtreadonlystringpackages/bench/src/model-catalog.ts:34
pricing.hasConditionalRatesreadonlyboolean | nullpackages/bench/src/model-catalog.ts:36
pricing.ratesreadonlyreadonly CatalogPrice[] | nullpackages/bench/src/model-catalog.ts:37
pricing.sourcereadonly"https://openrouter.ai/api/v1/models"packages/bench/src/model-catalog.ts:33
supportedParametersreadonlyreadonly string[] | nullpackages/bench/src/model-catalog.ts:28
supportsReasoningreadonlyboolean | nullpackages/bench/src/model-catalog.ts:30
supportsToolsreadonlyboolean | nullpackages/bench/src/model-catalog.ts:29

ModelCatalogState

Defined in: packages/bench/src/model-catalog.ts:48

Properties

PropertyModifierTypeDefined in
catalogreadonlyModelCatalog | nullpackages/bench/src/model-catalog.ts:50
statusreadonly"available" | "stale" | "unavailable"packages/bench/src/model-catalog.ts:49

Variables

MODEL_CATALOG_DISCLAIMER

const MODEL_CATALOG_DISCLAIMER: "OpenRouter catalog metadata is a discovery hint, not a whitelist or model identity attestation. Listed prices are dated estimates, not billed costs; routing, caching and conditional rates can change actual charges." = 'OpenRouter catalog metadata is a discovery hint, not a whitelist or model identity attestation. Listed prices are dated estimates, not billed costs; routing, caching and conditional rates can change actual charges.';

Defined in: packages/bench/src/model-catalog.ts:7


OPENROUTER_MODELS_URL

const OPENROUTER_MODELS_URL: "https://openrouter.ai/api/v1/models" = 'https://openrouter.ai/api/v1/models';

Defined in: packages/bench/src/model-catalog.ts:6

OpenRouter model catalog for benchmark configuration discovery (server/CLI only): a bounded, allowlisted projection of the public models list. Catalog membership is neither an execution whitelist nor model identity evidence.

Functions

createOpenRouterCatalog()

function createOpenRouterCatalog(options?): object;

Defined in: packages/bench/src/model-catalog.ts:178

One bounded snapshot and one in-flight fetch per instance; outage cooldown also covers a cold cache.

Parameters

ParameterType
options?CatalogFetchOptions

Returns

object

NameTypeDefined in
get()() => Promise<ModelCatalogState>packages/bench/src/model-catalog.ts:178

fetchOpenRouterCatalog()

function fetchOpenRouterCatalog(options?): Promise<ModelCatalog>;

Defined in: packages/bench/src/model-catalog.ts:139

One fetch of the catalog (10 s timeout, at most 8 MiB, no redirects); apiKey, if given, is sent as a bearer token.

Parameters

ParameterType
options?CatalogFetchOptions

Returns

Promise<ModelCatalog>


projectOpenRouterCatalog()

function projectOpenRouterCatalog(value, fetchedAt): ModelCatalog;

Defined in: packages/bench/src/model-catalog.ts:113

Allowlisted projection: never copy descriptions, arbitrary provider properties, request headers or response errors.

Parameters

ParameterType
valueunknown
fetchedAtstring

Returns

ModelCatalog


searchCatalog()

function searchCatalog(catalog, options?): object;

Defined in: packages/bench/src/model-catalog.ts:213

Case-insensitive substring search over id and name, optionally only models known to support tools or reasoning; limit 1..5000 (default 50).

Parameters

ParameterType
catalogModelCatalog
options?CatalogSearch

Returns

object