import { IChatModel } from '../types';

export const CLAUDE_MODELS: IChatModel[] = [
    {
        id: 'claude-opus-4-5-20251101',
        aliases: ['claude-opus-4-5-latest', 'claude-opus-4-5', 'claude-opus-4.5'],
        name: 'Claude Opus 4.5',
        costs_currency: 'usd-cents',
        input_cost_key: 'input_tokens',
        output_cost_key: 'output_tokens',
        costs: {
            tokens: 1_000_000,
            input_tokens: 500,
            ephemeral_5m_input_tokens: 500 * 1.25,
            ephemeral_1h_input_tokens: 500 * 2,
            cache_read_input_tokens: 500 * 0.1,
            output_tokens: 2500,
        },
        context: 200000,
        max_tokens: 64000,
    },
    {
        id: 'claude-haiku-4-5-20251001',
        aliases: ['claude-haiku-4.5', 'claude-haiku-4-5', 'claude-4-5-haiku'],
        name: 'Claude Haiku 4.5',
        costs_currency: 'usd-cents',
        input_cost_key: 'input_tokens',
        output_cost_key: 'output_tokens',
        costs: {
            tokens: 1_000_000,
            input_tokens: 100,
            ephemeral_5m_input_tokens: 100 * 1.25,
            ephemeral_1h_input_tokens: 100 * 2,
            cache_read_input_tokens: 100 * 0.1,
            output_tokens: 500,
        },
        context: 200000,
        max_tokens: 64000,
    },
    {
        id: 'claude-sonnet-4-5-20250929',
        aliases: ['claude-sonnet-4.5', 'claude-sonnet-4-5'],
        name: 'Claude Sonnet 4.5',
        costs_currency: 'usd-cents',
        input_cost_key: 'input_tokens',
        output_cost_key: 'output_tokens',
        costs: {
            tokens: 1_000_000,
            input_tokens: 300,
            ephemeral_5m_input_tokens: 300 * 1.25,
            ephemeral_1h_input_tokens: 300 * 2,
            cache_read_input_tokens: 300 * 0.1,
            output_tokens: 1500,
        },
        context: 200000,
        max_tokens: 64000,
    },
    {
        id: 'claude-opus-4-1-20250805',
        aliases: ['claude-opus-4-1'],
        name: 'Claude Opus 4.1',
        costs_currency: 'usd-cents',
        input_cost_key: 'input_tokens',
        output_cost_key: 'output_tokens',
        costs: {
            tokens: 1_000_000,
            input_tokens: 1500,
            ephemeral_5m_input_tokens: 1500 * 1.25,
            ephemeral_1h_input_tokens: 1500 * 2,
            cache_read_input_tokens: 1500 * 0.1,
            output_tokens: 7500,
        },
        context: 200000,
        max_tokens: 32000,
    },
    {
        id: 'claude-opus-4-20250514',
        aliases: ['claude-opus-4', 'claude-opus-4-latest'],
        name: 'Claude Opus 4',
        costs_currency: 'usd-cents',
        input_cost_key: 'input_tokens',
        output_cost_key: 'output_tokens',
        costs: {
            tokens: 1_000_000,
            input_tokens: 1500,
            ephemeral_5m_input_tokens: 1500 * 1.25,
            ephemeral_1h_input_tokens: 1500 * 2,
            cache_read_input_tokens: 1500 * 0.1,
            output_tokens: 7500,
        },
        context: 200000,
        max_tokens: 32000,
    },
    {
        id: 'claude-sonnet-4-20250514',
        aliases: ['claude-sonnet-4', 'claude-sonnet-4-latest'],
        name: 'Claude Sonnet 4',
        costs_currency: 'usd-cents',
        input_cost_key: 'input_tokens',
        output_cost_key: 'output_tokens',
        costs: {
            tokens: 1_000_000,
            input_tokens: 300,
            ephemeral_5m_input_tokens: 300 * 1.25,
            ephemeral_1h_input_tokens: 300 * 2,
            cache_read_input_tokens: 300 * 0.1,
            output_tokens: 1500,
        },
        context: 200000,
        max_tokens: 64000,
    },
    {
        id: 'claude-3-7-sonnet-20250219',
        aliases: ['claude-3-7-sonnet-latest'],
        succeeded_by: 'claude-sonnet-4-20250514',
        costs_currency: 'usd-cents',
        input_cost_key: 'input_tokens',
        output_cost_key: 'output_tokens',
        costs: {
            tokens: 1_000_000,
            input_tokens: 300,
            ephemeral_5m_input_tokens: 300 * 1.25,
            ephemeral_1h_input_tokens: 300 * 2,
            cache_read_input_tokens: 300 * 0.1,
            output_tokens: 1500,
        },
        context: 200000,
        max_tokens: 8192,
    },
    {
        id: 'claude-3-5-sonnet-20241022',
        name: 'Claude 3.5 Sonnet',
        aliases: ['claude-3-5-sonnet-latest'],
        costs_currency: 'usd-cents',
        input_cost_key: 'input_tokens',
        output_cost_key: 'output_tokens',
        costs: {
            tokens: 1_000_000,
            input_tokens: 300,
            ephemeral_5m_input_tokens: 300 * 1.25,
            ephemeral_1h_input_tokens: 300 * 2,
            cache_read_input_tokens: 300 * 0.1,
            output_tokens: 1500,
        },
        qualitative_speed: 'fast',
        training_cutoff: '2024-04',
        context: 200000,
        max_tokens: 8192,
    },
    {
        id: 'claude-3-5-sonnet-20240620',
        succeeded_by: 'claude-3-5-sonnet-20241022',
        costs_currency: 'usd-cents',
        input_cost_key: 'input_tokens',
        output_cost_key: 'output_tokens',
        costs: {
            tokens: 1_000_000,
            input_tokens: 300,
            ephemeral_5m_input_tokens: 300 * 1.25,
            ephemeral_1h_input_tokens: 300 * 2,
            cache_read_input_tokens: 300 * 0.1,
            output_tokens: 1500,
        },
        context: 200000, // might be wrong
        max_tokens: 8192,
    },
    {
        id: 'claude-3-haiku-20240307',
        costs_currency: 'usd-cents',
        input_cost_key: 'input_tokens',
        output_cost_key: 'output_tokens',
        costs: {
            tokens: 1_000_000,
            input_tokens: 25,
            ephemeral_5m_input_tokens: 25 * 1.25,
            ephemeral_1h_input_tokens: 25 * 2,
            cache_read_input_tokens: 25 * 0.1,
            output_tokens: 125,
        },
        qualitative_speed: 'fastest',
        context: 200000,
        max_tokens: 4096,
    },
];
