from __future__ import annotations

# standard
# third party
# custom
from ..model import Model

MODELS: list[Model] = [
    Model(
        name="claude-sonnet-4-6",
        display_name="Claude Sonnet 4.6",
        provider="anthropic",
        context_window=1_000_000,
        max_output_tokens=128_000,
        input_price_per_mtok=3.0,
        output_price_per_mtok=15.0,
        cache_read_price_per_mtok=0.3,
        cache_write_price_per_mtok=3.75,
        input_price_per_mtok_200k=6,
        output_price_per_mtok_200k=22.5,
        cache_read_price_per_mtok_200k=0.6,
        cache_write_price_per_mtok_200k=7.5,
        supports_vision=True,
        supports_tools=True,
        supports_thinking=True,
        supports_reasoning_tokens=True,
        release_date="2026-02-17",
    ),
    Model(
        name="claude-opus-4-6",
        display_name="Claude Opus 4.6",
        provider="anthropic",
        context_window=1_000_000,
        max_output_tokens=128_000,
        input_price_per_mtok=5.0,
        output_price_per_mtok=25.0,
        cache_read_price_per_mtok=0.5,
        cache_write_price_per_mtok=6.25,
        input_price_per_mtok_200k=10,
        output_price_per_mtok_200k=37.5,
        cache_read_price_per_mtok_200k=1,
        cache_write_price_per_mtok_200k=12.5,
        supports_vision=True,
        supports_tools=True,
        supports_thinking=True,
        supports_reasoning_tokens=True,
        release_date="2026-02-04",
    ),
    Model(
        name="claude-opus-4-5",
        display_name="Claude Opus 4.5",
        provider="anthropic",
        context_window=200_000,
        max_output_tokens=64_000,
        input_price_per_mtok=5.0,
        output_price_per_mtok=25.0,
        cache_read_price_per_mtok=0.5,
        cache_write_price_per_mtok=6.25,
        supports_vision=True,
        supports_tools=True,
        supports_thinking=True,
        supports_reasoning_tokens=True,
        release_date="2025-11-24",
    ),
    Model(
        name="claude-haiku-4-5",
        display_name="Claude Haiku 4.5",
        provider="anthropic",
        context_window=200_000,
        max_output_tokens=64_000,
        input_price_per_mtok=1.0,
        output_price_per_mtok=5.0,
        cache_read_price_per_mtok=0.1,
        cache_write_price_per_mtok=1.25,
        supports_vision=True,
        supports_tools=True,
        supports_thinking=True,
        supports_reasoning_tokens=True,
        release_date="2025-10-15",
    ),
    Model(
        name="claude-sonnet-4-5",
        display_name="Claude Sonnet 4.5",
        provider="anthropic",
        context_window=1_000_000,
        max_output_tokens=64_000,
        input_price_per_mtok=3.0,
        output_price_per_mtok=15.0,
        cache_read_price_per_mtok=0.3,
        cache_write_price_per_mtok=3.75,
        input_price_per_mtok_200k=6.0,
        output_price_per_mtok_200k=22.5,
        cache_read_price_per_mtok_200k=0.6,
        cache_write_price_per_mtok_200k=7.5,
        supports_vision=True,
        supports_tools=True,
        supports_thinking=True,
        supports_reasoning_tokens=True,
        release_date="2025-09-29",
    ),
]
