Skip to content

Class: FallbackRegistryFetcher

Makaio Framework


Makaio Framework / services-core / FallbackRegistryFetcher

Defined in: ../../../packages/services/core/src/model-registry/fallback-registry-fetcher.ts:18

Tries multiple fetchers in order, returning the first successful result.

Each fetcher is attempted sequentially. On success, returns immediately. On failure, moves to the next fetcher. If all fetchers fail, throws the last error encountered.

const fetcher = new FallbackRegistryFetcher([
new CachedRegistryFetcher(new CdnRegistryFetcher(cdnUrl), fileCache),
new BundledSeedFetcher(seedPath),
]);

new FallbackRegistryFetcher(fetchers): FallbackRegistryFetcher

Defined in: ../../../packages/services/core/src/model-registry/fallback-registry-fetcher.ts:26

Creates a new FallbackRegistryFetcher.

IModelRegistryFetcher[]

Ordered list of fetchers to try (first match wins)

FallbackRegistryFetcher

Error if fetchers array is empty

fetch(): Promise<{ $schema: "makaio/model-registry/v2"; labs: Record<string, { models: object[]; name: string; }>; providers: Record<string, { models: Record<string, { canonicalModel?: string; contextWindowSize?: number; family?: string; friendlyName?: string; labId?: undefined; metadata?: { capabilities?: { parallelToolCalls?: … | … | …; pdfUpload?: … | … | …; speechToText?: … | …; structuredOutput?: … | … | …; textToSpeech?: … | …; toolCalling?: … | … | …; vision?: … | … | …; }; description?: string; includedInSubscription?: boolean; maxOutputTokens?: number; pricing?: { request?: … | …; token?: … | …; }; }; name?: undefined; supportedReasoningLevels?: { extra-high?: string | number; high?: string | number; low?: string | number; medium?: string | number; none?: string | number; }; }>; name: string; }>; updatedAt: string; }>

Defined in: ../../../packages/services/core/src/model-registry/fallback-registry-fetcher.ts:38

Try each fetcher in order, returning the first successful result.

Promise<{ $schema: "makaio/model-registry/v2"; labs: Record<string, { models: object[]; name: string; }>; providers: Record<string, { models: Record<string, { canonicalModel?: string; contextWindowSize?: number; family?: string; friendlyName?: string; labId?: undefined; metadata?: { capabilities?: { parallelToolCalls?: … | … | …; pdfUpload?: … | … | …; speechToText?: … | …; structuredOutput?: … | … | …; textToSpeech?: … | …; toolCalling?: … | … | …; vision?: … | … | …; }; description?: string; includedInSubscription?: boolean; maxOutputTokens?: number; pricing?: { request?: … | …; token?: … | …; }; }; name?: undefined; supportedReasoningLevels?: { extra-high?: string | number; high?: string | number; low?: string | number; medium?: string | number; none?: string | number; }; }>; name: string; }>; updatedAt: string; }>

The model registry from the first successful fetcher

The last error if all fetchers fail

IModelRegistryFetcher.fetch