/**
 * @license
 * Copyright 2025 OElite Platform
 * SPDX-License-Identifier: Apache-2.0
 */
import { ProviderType, AuthMethod } from './types.js';
/**
 * Provider metadata for all supported providers
 */
export const PROVIDER_METADATA = {
    [ProviderType.ANTHROPIC]: {
        type: ProviderType.ANTHROPIC,
        name: 'Anthropic',
        description: 'Claude models by Anthropic - leading AI safety and research company',
        website: 'https://anthropic.com',
        docsUrl: 'https://docs.anthropic.com',
        defaultAuthMethod: AuthMethod.API_KEY,
        envVars: {
            apiKey: ['ANTHROPIC_API_KEY', 'CLAUDE_API_KEY'],
            baseUrl: ['ANTHROPIC_BASE_URL'],
        },
        supportsCustomEndpoint: true,
    },
    [ProviderType.OPENAI]: {
        type: ProviderType.OPENAI,
        name: 'OpenAI',
        description: 'GPT models by OpenAI - pioneering AI research lab',
        website: 'https://openai.com',
        docsUrl: 'https://platform.openai.com/docs',
        defaultAuthMethod: AuthMethod.API_KEY,
        envVars: {
            apiKey: ['OPENAI_API_KEY'],
            baseUrl: ['OPENAI_BASE_URL'],
        },
        supportsCustomEndpoint: true,
    },
    [ProviderType.GOOGLE]: {
        type: ProviderType.GOOGLE,
        name: 'Google AI',
        description: 'Gemini models by Google - multimodal AI at scale',
        website: 'https://ai.google.dev',
        docsUrl: 'https://ai.google.dev/docs',
        defaultAuthMethod: AuthMethod.API_KEY,
        envVars: {
            apiKey: ['GOOGLE_API_KEY', 'GEMINI_API_KEY'],
            projectId: ['GOOGLE_CLOUD_PROJECT', 'GCP_PROJECT_ID'],
        },
        supportsCustomEndpoint: false,
    },
    [ProviderType.AZURE]: {
        type: ProviderType.AZURE,
        name: 'Azure OpenAI',
        description: 'OpenAI models via Microsoft Azure',
        website: 'https://azure.microsoft.com/en-us/products/ai-services/openai-service',
        docsUrl: 'https://learn.microsoft.com/en-us/azure/ai-services/openai/',
        defaultAuthMethod: AuthMethod.API_KEY,
        envVars: {
            apiKey: ['AZURE_OPENAI_API_KEY', 'AZURE_API_KEY'],
            baseUrl: ['AZURE_OPENAI_ENDPOINT', 'AZURE_OPENAI_BASE_URL'],
            region: ['AZURE_REGION'],
        },
        supportsCustomEndpoint: true,
    },
    [ProviderType.AWS_BEDROCK]: {
        type: ProviderType.AWS_BEDROCK,
        name: 'AWS Bedrock',
        description: 'Foundation models via Amazon Web Services',
        website: 'https://aws.amazon.com/bedrock/',
        docsUrl: 'https://docs.aws.amazon.com/bedrock/',
        defaultAuthMethod: AuthMethod.AWS_CREDENTIALS,
        envVars: {
            apiKey: ['AWS_ACCESS_KEY_ID'],
            region: ['AWS_REGION', 'AWS_DEFAULT_REGION'],
        },
        supportsCustomEndpoint: true,
    },
    [ProviderType.DASHSCOPE]: {
        type: ProviderType.DASHSCOPE,
        name: 'DashScope',
        description: 'Qwen models by Alibaba Cloud',
        website: 'https://dashscope.aliyun.com',
        docsUrl: 'https://help.aliyun.com/zh/dashscope/',
        defaultAuthMethod: AuthMethod.API_KEY,
        envVars: {
            apiKey: ['DASHSCOPE_API_KEY', 'QWEN_API_KEY'],
        },
        supportsCustomEndpoint: false,
    },
    [ProviderType.OPENROUTER]: {
        type: ProviderType.OPENROUTER,
        name: 'OpenRouter',
        description: 'Access to 100+ models through unified API',
        website: 'https://openrouter.ai',
        docsUrl: 'https://openrouter.ai/docs',
        defaultAuthMethod: AuthMethod.API_KEY,
        envVars: {
            apiKey: ['OPENROUTER_API_KEY'],
        },
        supportsCustomEndpoint: false,
    },
    [ProviderType.OLLAMA]: {
        type: ProviderType.OLLAMA,
        name: 'Ollama',
        description: 'Run large language models locally',
        website: 'https://ollama.ai',
        docsUrl: 'https://github.com/ollama/ollama',
        defaultAuthMethod: AuthMethod.NONE,
        envVars: {
            baseUrl: ['OLLAMA_BASE_URL', 'OLLAMA_HOST'],
        },
        supportsCustomEndpoint: true,
    },
    [ProviderType.CUSTOM]: {
        type: ProviderType.CUSTOM,
        name: 'Custom Provider',
        description: 'Custom OpenAI-compatible API endpoint',
        website: '',
        docsUrl: '',
        defaultAuthMethod: AuthMethod.API_KEY,
        envVars: {
            apiKey: ['CUSTOM_API_KEY'],
            baseUrl: ['CUSTOM_BASE_URL'],
        },
        supportsCustomEndpoint: true,
    },
};
/**
 * Get provider metadata
 */
export function getProviderMetadata(type) {
    return PROVIDER_METADATA[type];
}
/**
 * Get all provider metadata
 */
export function getAllProviderMetadata() {
    return Object.values(PROVIDER_METADATA);
}
/**
 * Check if a provider is supported
 */
export function isProviderSupported(type) {
    return type in PROVIDER_METADATA;
}
//# sourceMappingURL=providerMetadata.js.map