import { AIEngine } from './AIEngine' /** * Manages the registration and retrieval of inference engines. */ export class EngineManager { public engines = new Map() public controller: AbortController | null = null /** * Registers an engine. * @param engine - The engine to register. */ register(engine: T) { this.engines.set(engine.provider, engine) } /** * Retrieves a engine by provider. * @param provider - The name of the engine to retrieve. * @returns The engine, if found. */ get(provider: string): T | undefined { return this.engines.get(provider) as T | undefined } /** * The instance of the engine manager. */ static instance(): EngineManager { return (window.core?.engineManager as EngineManager) ?? new EngineManager() } }