Skip to content

modelRegistry

FieldValue
PrefixmodelRegistry
Namespace constantModelRegistryNamespace
Subjects constantModelRegistrySubjects
Kindbus
Schema recordModelRegistrySchemas
Tierframework
Package@makaio/services-core
Defined inpackages/services/core/src/model-registry/namespace.ts
KeyWireTypeSchema
changedmodelRegistry.changedeventschemas.ts
checkModelInProvidersmodelRegistry.checkModelInProvidersrpcschemas.ts
getForProvidermodelRegistry.getForProviderrpcschemas.ts
getLabModelsmodelRegistry.getLabModelsrpcschemas.ts
getProviderModelsmodelRegistry.getProviderModelsrpcschemas.ts
refreshmodelRegistry.refreshrpcschemas.ts

Broadcast that the registry has been refreshed and committed.

Fire-and-forget event used by consumers that need to rescan registry-backed capabilities after a successful refresh.

Subject: modelRegistry.changed Type: Event

Empty object.

Batch-check model availability across multiple providers in a single RPC.

Accepts an array of provider IDs and a canonical lab model name. Returns a map of providerId → resolved ProviderAIModel containing only the providers that have the model. Providers absent from the registry or that do not list the model are omitted from the result.

Use this subject instead of calling getForProvider in a loop — it collapses N sequential RPCs into a single bus request.

Subject: modelRegistry.checkModelInProviders Type: Request (RPC)

Request:

FieldTypeRequired
modelstringyes
providerIdsstring[]yes

Response:

FieldTypeRequired
matchesRecord<string, { name: string; contextWindowSize: number; labId: string; friendlyName?: string | undefined; family?: string | undefined; supportedReasoningLevels?: { none?: string | number | undefined; low?: string | number | undefined; medium?: string | number | undefined; high?: string | number | undefined; 'extra-high'?: string | number | undefined; } | undefined; metadata?: { maxOutputTokens?: number | undefined; capabilities?: { vision?: boolean | undefined; toolCalling?: boolean | undefined; parallelToolCalls?: boolean | undefined; structuredOutput?: boolean | undefined; pdfUpload?: boolean | undefined; speechToText?: { modes: ("batch" | "streaming")[]; vocabularyBiasing?: boolean | undefined; } | undefined; textToSpeech?: { modes: ("streaming" | "buffered")[]; voiceSelection?: boolean | undefined; voiceInstructions?: boolean | undefined; outputFormats?: string[] | undefined; } | undefined; } | undefined; pricing?: { token?: { inputPerMillion: number; outputPerMillion: number; inputCachedPerMillion?: number | undefined; cacheWritePerMillion?: number | undefined; } | undefined; request?: { multiplier: number; } | undefined; } | undefined; includedInSubscription?: boolean | undefined; description?: string | undefined; } | undefined; }>yes

Resolve a single model by provider and provider-native model ID.

Returns the merged model descriptor (lab definition + provider overrides), or undefined if the model is not found for the given provider.

Subject: modelRegistry.getForProvider Type: Request (RPC)

Request:

FieldTypeRequired
modelstringyes
providerIdstringyes

Response:

FieldTypeRequired
model{ name: string; contextWindowSize: number; labId: string; friendlyName?: string | undefined; family?: string | undefined; supportedReasoningLevels?: { none?: string | number | undefined; low?: string | number | undefined; medium?: string | number | undefined; high?: string | number | undefined; 'extra-high'?: string | number | undefined; } | undefined; metadata?: { maxOutputTokens?: number | undefined; capabilities?: { vision?: boolean | undefined; toolCalling?: boolean | undefined; parallelToolCalls?: boolean | undefined; structuredOutput?: boolean | undefined; pdfUpload?: boolean | undefined; speechToText?: { modes: ("batch" | "streaming")[]; vocabularyBiasing?: boolean | undefined; } | undefined; textToSpeech?: { modes: ("streaming" | "buffered")[]; voiceSelection?: boolean | undefined; voiceInstructions?: boolean | undefined; outputFormats?: string[] | undefined; } | undefined; } | undefined; pricing?: { token?: { inputPerMillion: number; outputPerMillion: number; inputCachedPerMillion?: number | undefined; cacheWritePerMillion?: number | undefined; } | undefined; request?: { multiplier: number; } | undefined; } | undefined; includedInSubscription?: boolean | undefined; description?: string | undefined; } | undefined; } | undefinedno

List all canonical model definitions published by a lab.

Returns the full lab model array without any provider-specific overrides.

Subject: modelRegistry.getLabModels Type: Request (RPC)

Request:

FieldTypeRequired
labIdstringyes

Response:

FieldTypeRequired
models{ name: string; contextWindowSize: number; labId: string; friendlyName?: string | undefined; family?: string | undefined; supportedReasoningLevels?: { none?: string | number | undefined; low?: string | number | undefined; medium?: string | number | undefined; high?: string | number | undefined; 'extra-high'?: string | number | undefined; } | undefined; metadata?: { maxOutputTokens?: number | undefined; capabilities?: { vision?: boolean | undefined; toolCalling?: boolean | undefined; parallelToolCalls?: boolean | undefined; structuredOutput?: boolean | undefined; pdfUpload?: boolean | undefined; speechToText?: { modes: ("batch" | "streaming")[]; vocabularyBiasing?: boolean | undefined; } | undefined; textToSpeech?: { modes: ("streaming" | "buffered")[]; voiceSelection?: boolean | undefined; voiceInstructions?: boolean | undefined; outputFormats?: string[] | undefined; } | undefined; } | undefined; pricing?: { token?: { inputPerMillion: number; outputPerMillion: number; inputCachedPerMillion?: number | undefined; cacheWritePerMillion?: number | undefined; } | undefined; request?: { multiplier: number; } | undefined; } | undefined; includedInSubscription?: boolean | undefined; description?: string | undefined; } | undefined; }[]yes

List all models available from a provider (merged with lab definitions).

Returns the full merged model list for the provider — lab defaults with provider-specific overrides applied.

Subject: modelRegistry.getProviderModels Type: Request (RPC)

Request:

FieldTypeRequired
providerIdstringyes

Response:

FieldTypeRequired
models{ name: string; contextWindowSize: number; labId: string; friendlyName?: string | undefined; family?: string | undefined; supportedReasoningLevels?: { none?: string | number | undefined; low?: string | number | undefined; medium?: string | number | undefined; high?: string | number | undefined; 'extra-high'?: string | number | undefined; } | undefined; metadata?: { maxOutputTokens?: number | undefined; capabilities?: { vision?: boolean | undefined; toolCalling?: boolean | undefined; parallelToolCalls?: boolean | undefined; structuredOutput?: boolean | undefined; pdfUpload?: boolean | undefined; speechToText?: { modes: ("batch" | "streaming")[]; vocabularyBiasing?: boolean | undefined; } | undefined; textToSpeech?: { modes: ("streaming" | "buffered")[]; voiceSelection?: boolean | undefined; voiceInstructions?: boolean | undefined; outputFormats?: string[] | undefined; } | undefined; } | undefined; pricing?: { token?: { inputPerMillion: number; outputPerMillion: number; inputCachedPerMillion?: number | undefined; cacheWritePerMillion?: number | undefined; } | undefined; request?: { multiplier: number; } | undefined; } | undefined; includedInSubscription?: boolean | undefined; description?: string | undefined; } | undefined; }[]yes

Force refresh of the model registry from remote source. Fetches latest registry and updates cache.

Subject: modelRegistry.refresh Type: Request (RPC)

Request:

Empty object.

Response:

FieldTypeRequired
errorstring | undefinedno
successbooleanyes

Auto-generated by yarn docs:bus. Do not edit manually.