"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
exports.generatorsRegistry = void 0;
exports.registerLlmGenerator = registerLlmGenerator;
exports.unregisterLlmGenerator = unregisterLlmGenerator;
exports.getLlmGenerator = getLlmGenerator;
const anthropic_1 = require("./anthropic");
const codex_1 = require("./codex");
const mock_1 = require("./mock");
const openai_1 = require("./openai");
const openai_compatible_1 = require("./openai-compatible");
exports.generatorsRegistry = new Map();
function registerLlmGenerator(gen) {
    exports.generatorsRegistry.set(gen.apiType, gen);
}
function unregisterLlmGenerator(apiType) {
    exports.generatorsRegistry.delete(apiType);
}
function getLlmGenerator(apiType) {
    return exports.generatorsRegistry.get(apiType);
}
(function initializeBuiltins() {
    registerLlmGenerator(new anthropic_1.AnthropicGen());
    registerLlmGenerator(new anthropic_1.AnthropicGen('anthropic-compatible'));
    registerLlmGenerator(new codex_1.CodexGen());
    registerLlmGenerator(new mock_1.MockGen());
    registerLlmGenerator(new openai_1.OpenAiGen());
    registerLlmGenerator(new openai_compatible_1.OpenAiCompatibleGen());
})();
