/**
* Provider registry
*/
import { OpenAIProvider } from './openai.js';
import { AnthropicProvider } from './anthropic.js';
import { GeminiProvider } from './gemini.js';
import { AIProvider } from '../types.js';
const providers = new Map<string, AIProvider>();
export function getProvider(providerName: 'openai' | 'anthropic' | 'gemini'): AIProvider {
if (!providers.has(providerName)) {
switch (providerName) {
case 'openai':
providers.set(providerName, new OpenAIProvider());
break;
case 'anthropic':
providers.set(providerName, new AnthropicProvider());
break;
case 'gemini':
providers.set(providerName, new GeminiProvider());
break;
default:
throw new Error(`Unknown provider: ${providerName}`);
}
}
return providers.get(providerName)!;
}
export { OpenAIProvider, AnthropicProvider, GeminiProvider };