/**
 * Provider Model Presets
 *
 * Predefined model information for each supported LLM provider.
 * Used for UI dropdowns and validation.
 */
/**
 * Predefined models for each API format
 * Used for UI selection and validation
 * Note: Most providers use OpenAI-compatible format
 */
export const PROVIDER_MODELS = {
    // OpenAI-compatible format (used by OpenAI, DeepSeek, Ollama, etc.)
    openai: [
        {
            id: 'gpt-4o',
            name: 'GPT-4o',
            contextWindow: 128000,
            supportsCaching: true
        },
        {
            id: 'gpt-4o-mini',
            name: 'GPT-4o Mini',
            contextWindow: 128000,
            supportsCaching: true
        },
        {
            id: 'o1',
            name: 'O1',
            contextWindow: 200000,
            supportsCaching: true
        },
        {
            id: 'deepseek-chat',
            name: 'DeepSeek Chat',
            contextWindow: 64000,
            supportsCaching: false
        },
        {
            id: 'deepseek-coder',
            name: 'DeepSeek Coder',
            contextWindow: 64000,
            supportsCaching: false
        },
        {
            id: 'llama3.2',
            name: 'Llama 3.2',
            contextWindow: 128000,
            supportsCaching: false
        },
        {
            id: 'qwen2.5-coder',
            name: 'Qwen 2.5 Coder',
            contextWindow: 32000,
            supportsCaching: false
        }
    ],
    // Anthropic format
    anthropic: [
        {
            id: 'claude-sonnet-4-20250514',
            name: 'Claude Sonnet 4',
            contextWindow: 200000,
            supportsCaching: true
        },
        {
            id: 'claude-3-5-sonnet-20241022',
            name: 'Claude 3.5 Sonnet',
            contextWindow: 200000,
            supportsCaching: true
        },
        {
            id: 'claude-3-5-haiku-20241022',
            name: 'Claude 3.5 Haiku',
            contextWindow: 200000,
            supportsCaching: true
        },
        {
            id: 'claude-3-opus-20240229',
            name: 'Claude 3 Opus',
            contextWindow: 200000,
            supportsCaching: false
        }
    ],
    // Custom format
    custom: [
        {
            id: 'custom-model',
            name: 'Custom Model',
            contextWindow: 128000,
            supportsCaching: false
        }
    ]
};
/**
 * Get models for a specific provider
 * @param providerType - Provider type to get models for
 * @returns Array of model information
 */
export function getModelsForProvider(providerType) {
    return PROVIDER_MODELS[providerType] || [];
}
/**
 * Predefined embedding models for each API format
 * Used for UI selection and validation
 */
export const EMBEDDING_MODELS = {
    // OpenAI embedding models
    openai: [
        {
            id: 'text-embedding-3-small',
            name: 'Text Embedding 3 Small',
            dimensions: 1536,
            maxTokens: 8191,
            provider: 'openai'
        },
        {
            id: 'text-embedding-3-large',
            name: 'Text Embedding 3 Large',
            dimensions: 3072,
            maxTokens: 8191,
            provider: 'openai'
        },
        {
            id: 'text-embedding-ada-002',
            name: 'Ada 002',
            dimensions: 1536,
            maxTokens: 8191,
            provider: 'openai'
        }
    ],
    // Anthropic doesn't have embedding models
    anthropic: [],
    // Custom embedding models
    custom: [
        {
            id: 'custom-embedding',
            name: 'Custom Embedding',
            dimensions: 1536,
            maxTokens: 8192,
            provider: 'custom'
        }
    ]
};
/**
 * Get embedding models for a specific provider
 * @param providerType - Provider type to get embedding models for
 * @returns Array of embedding model information
 */
export function getEmbeddingModelsForProvider(providerType) {
    return EMBEDDING_MODELS[providerType] || [];
}
/**
 * Get model information by ID within a provider
 * @param providerType - Provider type
 * @param modelId - Model identifier
 * @returns Model information or undefined if not found
 */
export function getModelInfo(providerType, modelId) {
    const models = PROVIDER_MODELS[providerType] || [];
    return models.find(m => m.id === modelId);
}
/**
 * Validate if a model ID is supported by a provider
 * @param providerType - Provider type
 * @param modelId - Model identifier to validate
 * @returns true if model is valid for provider
 */
export function isValidModel(providerType, modelId) {
    return getModelInfo(providerType, modelId) !== undefined;
}
//# sourceMappingURL=litellm-provider-models.js.map