@quantumai/quantum-cli-core
Version:
Quantum CLI Core - Multi-LLM Collaboration System
41 lines • 1.55 kB
JavaScript
/**
* @license
* Copyright 2025 Google LLC
* SPDX-License-Identifier: Apache-2.0
*/
import { GeminiProvider } from './gemini-provider.js';
import { OpenAIProvider } from './openai-provider.js';
import { AnthropicProvider } from './anthropic-provider.js';
export class ProviderFactory {
static createProvider(providerConfig, geminiClient, _config) {
switch (providerConfig.type) {
case 'gemini':
return new GeminiProvider(providerConfig, geminiClient);
case 'openai':
return new OpenAIProvider(providerConfig);
case 'anthropic':
return new AnthropicProvider(providerConfig);
default:
throw new Error(`Unknown provider type: ${providerConfig.type}`);
}
}
static async validateAllProviders(providerConfigs, geminiClient, config) {
const results = [];
for (const providerConfig of providerConfigs) {
try {
const provider = ProviderFactory.createProvider(providerConfig, geminiClient, config);
const isValid = await provider.validateCredentials();
results.push({ provider, isValid });
}
catch (error) {
results.push({
provider: null,
isValid: false,
error: error instanceof Error ? error.message : 'Unknown error',
});
}
}
return results;
}
}
//# sourceMappingURL=provider-factory.js.map