Skip to content

Class: ModelRegistryService

Makaio Framework


Makaio Framework / services-core / ModelRegistryService

Defined in: ../../../packages/services/core/src/model-registry/model-registry-service.ts:82

Service for managing model registry operations via bus handlers.

Responsibilities:

  • Resolve model registry through the injected fetcher (chain)
  • Hold in-memory cache, deduplicate concurrent requests
  • Register bus handlers for getForProvider, getLabModels, getProviderModels, checkModelInProviders, and refresh
  • Emit modelRegistry.changed after a committed refresh
  • Follow init/destroy lifecycle pattern with idempotent guards

Schema validation (including superRefine cross-validation) is delegated to the fetcher chain. The service trusts the registry returned by the fetcher.

Caching and fallback logic lives in the fetcher chain, not here. This service only manages in-memory state and bus wiring.

const service = new ModelRegistryService({
bus: MakaioBus,
fetcher: new UserOverlayFetcher(
userModelsDir,
new FallbackRegistryFetcher([
new CachedRegistryFetcher(new CdnRegistryFetcher(registryUrl), fileCache),
new BundledSeedFetcher(seedPath),
]),
),
});
await service.init();
  • BaseService

new ModelRegistryService(options): ModelRegistryService

Defined in: ../../../packages/services/core/src/model-registry/model-registry-service.ts:94

Creates a new ModelRegistryService instance.

ModelRegistryServiceOptions

Service configuration options

ModelRegistryService

BaseService.constructor

protected readonly bus: IMakaioBus

Defined in: ../../../packages/services/base/src/base-service.ts:39

Bus instance used for registering handlers

BaseService.bus

get initialized(): boolean

Defined in: ../../../packages/services/base/src/base-service.ts:47

Whether the service has been successfully initialized.

Returns true after init() completes and before destroy() is called.

boolean

true if initialized, false otherwise

BaseService.initialized

protected addCleanup(fn): void

Defined in: ../../../packages/services/base/src/base-service.ts:143

Enqueue an arbitrary cleanup function to be called on destroy().

Use for non-handler resources (timers, external subscriptions, etc.).

() => void | Promise<void>

Function to invoke during teardown

void

BaseService.addCleanup


destroy(): Promise<void>

Defined in: ../../../packages/services/base/src/base-service.ts:89

Destroy the service and unsubscribe all registered handlers.

Calls the optional onDestroy() hook before running cleanups, then resets the initialized flag. Safe to call multiple times (idempotent).

Promise<void>

Promise that resolves after teardown completes

BaseService.destroy


init(): Promise<void>

Defined in: ../../../packages/services/base/src/base-service.ts:57

Initialize the service.

Delegates to onInit() once; subsequent calls are no-ops (idempotent).

Promise<void>

Promise that resolves when initialization is complete

BaseService.init


protected onDestroy(): void

Defined in: ../../../packages/services/core/src/model-registry/model-registry-service.ts:153

Clear in-memory registry cache on destroy.

void

BaseService.onDestroy


protected onInit(): void

Defined in: ../../../packages/services/core/src/model-registry/model-registry-service.ts:102

Register bus handlers for model registry operations.

void

BaseService.onInit


protected registerHandler<S>(subject, handler): void

Defined in: ../../../packages/services/base/src/base-service.ts:129

Register a bus handler and enqueue its unsubscribe function for teardown.

Equivalent to this._cleanups.push(this.bus.on(subject, handler)).

S extends SubjectDefinition

S

The subject definition to listen on

HandlerForSubjectDefinition<S>

Handler function for the subject

void

BaseService.registerHandler