jorel
Version:
A unified wrapper for working with LLMs from multiple providers, including streams, images, documents & automatic tool use.
33 lines (32 loc) • 1.13 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.JorElProviderManager = void 0;
/**
* Manages LLM providers for JorEl
*/
class JorElProviderManager {
constructor(logger) {
this.logger = logger;
this.providers = {};
this.logger.debug("ProviderManager", "Provider manager initialized");
}
/** Register a new LLM provider */
registerProvider(provider, coreProvider) {
if (this.providers[provider])
throw new Error(`Provider ${provider} is already registered`);
this.providers[provider] = coreProvider;
this.logger.debug("ProviderManager", `Registered provider ${provider}`);
}
/** Get a registered LLM provider */
getProvider(provider) {
const coreProvider = this.providers[provider];
if (!coreProvider)
throw new Error(`Provider ${provider} is not registered`);
return coreProvider;
}
/** List all registered LLM provider ids */
listProviders() {
return Object.keys(this.providers);
}
}
exports.JorElProviderManager = JorElProviderManager;