// Generated by scripts/check_litellm_providers.py --write-rust-snapshot.
// Source: LiteLLM model_prices_and_context_window.json.
// Do not edit provider/model rows by hand; update the script or source aliases.

use crate::model::{ModelCapabilities, ModelDef, ModelStatus};
use crate::provider::{
    AuthKind, ProviderCapabilities, ProviderDef, ProviderProtocol, ProviderStatus,
};

pub const PROVIDER_AI21: ProviderDef = ProviderDef {
    id: "ai21",
    display_name: "AI21 Labs",
    default_base_url: "https://api.ai21.com/studio/v1",
    protocol: ProviderProtocol::OpenAICompat,
    auth: AuthKind::Bearer,
    status: ProviderStatus::Stub,
    env_vars: &["AI21_API_KEY"],
    litellm_prefix: "ai21/",
    capabilities: ProviderCapabilities {
        chat_completions: true,
        streaming: true,
        tool_use: true,
        embeddings: false,
        vision: false,
        batch: false,
    },
};

pub const MODELS_AI21: &[ModelDef] = &[
    ModelDef {
        id: "j2-light",
        provider_id: "ai21",
        context_window: 8192,
        max_output_tokens: 8192,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: false,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "j2-mid",
        provider_id: "ai21",
        context_window: 8192,
        max_output_tokens: 8192,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: false,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "j2-ultra",
        provider_id: "ai21",
        context_window: 8192,
        max_output_tokens: 8192,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: false,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "jamba-1.5",
        provider_id: "ai21",
        context_window: 256000,
        max_output_tokens: 256000,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "jamba-1.5-large",
        provider_id: "ai21",
        context_window: 256000,
        max_output_tokens: 256000,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "jamba-1.5-large@001",
        provider_id: "ai21",
        context_window: 256000,
        max_output_tokens: 256000,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "jamba-1.5-mini",
        provider_id: "ai21",
        context_window: 256000,
        max_output_tokens: 256000,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "jamba-1.5-mini@001",
        provider_id: "ai21",
        context_window: 256000,
        max_output_tokens: 256000,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "jamba-large-1.6",
        provider_id: "ai21",
        context_window: 256000,
        max_output_tokens: 256000,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "jamba-large-1.7",
        provider_id: "ai21",
        context_window: 256000,
        max_output_tokens: 256000,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "jamba-mini-1.6",
        provider_id: "ai21",
        context_window: 256000,
        max_output_tokens: 256000,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "jamba-mini-1.7",
        provider_id: "ai21",
        context_window: 256000,
        max_output_tokens: 256000,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
];

pub const PROVIDER_AIML: ProviderDef = ProviderDef {
    id: "aiml",
    display_name: "AI/ML API",
    default_base_url: "https://api.aimlapi.com/v1",
    protocol: ProviderProtocol::OpenAICompat,
    auth: AuthKind::Bearer,
    status: ProviderStatus::Stub,
    env_vars: &["AIML_API_KEY"],
    litellm_prefix: "aiml/",
    capabilities: ProviderCapabilities {
        chat_completions: false,
        streaming: false,
        tool_use: false,
        embeddings: false,
        vision: false,
        batch: false,
    },
};

pub const MODELS_AIML: &[ModelDef] = &[
    ModelDef {
        id: "dall-e-2",
        provider_id: "aiml",
        context_window: 0,
        max_output_tokens: 0,
        capabilities: ModelCapabilities {
            streaming: false,
            tool_use: false,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "dall-e-3",
        provider_id: "aiml",
        context_window: 0,
        max_output_tokens: 0,
        capabilities: ModelCapabilities {
            streaming: false,
            tool_use: false,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "flux-pro",
        provider_id: "aiml",
        context_window: 0,
        max_output_tokens: 0,
        capabilities: ModelCapabilities {
            streaming: false,
            tool_use: false,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "flux-pro/v1.1",
        provider_id: "aiml",
        context_window: 0,
        max_output_tokens: 0,
        capabilities: ModelCapabilities {
            streaming: false,
            tool_use: false,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "flux-pro/v1.1-ultra",
        provider_id: "aiml",
        context_window: 0,
        max_output_tokens: 0,
        capabilities: ModelCapabilities {
            streaming: false,
            tool_use: false,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "flux-realism",
        provider_id: "aiml",
        context_window: 0,
        max_output_tokens: 0,
        capabilities: ModelCapabilities {
            streaming: false,
            tool_use: false,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "flux/dev",
        provider_id: "aiml",
        context_window: 0,
        max_output_tokens: 0,
        capabilities: ModelCapabilities {
            streaming: false,
            tool_use: false,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "flux/kontext-max/text-to-image",
        provider_id: "aiml",
        context_window: 0,
        max_output_tokens: 0,
        capabilities: ModelCapabilities {
            streaming: false,
            tool_use: false,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "flux/kontext-pro/text-to-image",
        provider_id: "aiml",
        context_window: 0,
        max_output_tokens: 0,
        capabilities: ModelCapabilities {
            streaming: false,
            tool_use: false,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "flux/schnell",
        provider_id: "aiml",
        context_window: 0,
        max_output_tokens: 0,
        capabilities: ModelCapabilities {
            streaming: false,
            tool_use: false,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "google/imagen-4.0-ultra-generate-001",
        provider_id: "aiml",
        context_window: 0,
        max_output_tokens: 0,
        capabilities: ModelCapabilities {
            streaming: false,
            tool_use: false,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "google/nano-banana-pro",
        provider_id: "aiml",
        context_window: 0,
        max_output_tokens: 0,
        capabilities: ModelCapabilities {
            streaming: false,
            tool_use: false,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
];

pub const PROVIDER_AMAZON_NOVA: ProviderDef = ProviderDef {
    id: "amazon_nova",
    display_name: "AWS Bedrock",
    default_base_url: "",
    protocol: ProviderProtocol::BedrockNative,
    auth: AuthKind::AwsSigV4,
    status: ProviderStatus::Wired,
    env_vars: &["AWS_ACCESS_KEY_ID", "AWS_SECRET_ACCESS_KEY", "AWS_REGION"],
    litellm_prefix: "amazon_nova/",
    capabilities: ProviderCapabilities {
        chat_completions: true,
        streaming: true,
        tool_use: true,
        embeddings: false,
        vision: true,
        batch: false,
    },
};

pub const MODELS_AMAZON_NOVA: &[ModelDef] = &[
    ModelDef {
        id: "amazon-nova/nova-lite-v1",
        provider_id: "amazon_nova",
        context_window: 300000,
        max_output_tokens: 10000,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: true,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "amazon-nova/nova-micro-v1",
        provider_id: "amazon_nova",
        context_window: 128000,
        max_output_tokens: 10000,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "amazon-nova/nova-premier-v1",
        provider_id: "amazon_nova",
        context_window: 1000000,
        max_output_tokens: 10000,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: true,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "amazon-nova/nova-pro-v1",
        provider_id: "amazon_nova",
        context_window: 300000,
        max_output_tokens: 10000,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: true,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
];

pub const PROVIDER_ANTHROPIC: ProviderDef = ProviderDef {
    id: "anthropic",
    display_name: "Anthropic",
    default_base_url: "https://api.anthropic.com",
    protocol: ProviderProtocol::AnthropicNative,
    auth: AuthKind::Bearer,
    status: ProviderStatus::Implemented,
    env_vars: &["ANTHROPIC_API_KEY"],
    litellm_prefix: "anthropic/",
    capabilities: ProviderCapabilities {
        chat_completions: true,
        streaming: true,
        tool_use: true,
        embeddings: false,
        vision: true,
        batch: true,
    },
};

pub const MODELS_ANTHROPIC: &[ModelDef] = &[
    ModelDef {
        id: "claude-3-7-sonnet-20250219",
        provider_id: "anthropic",
        context_window: 200000,
        max_output_tokens: 64000,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: true,
            extended_thinking: true,
        },
        status: ModelStatus::Deprecated,
    },
    ModelDef {
        id: "claude-3-haiku-20240307",
        provider_id: "anthropic",
        context_window: 200000,
        max_output_tokens: 4096,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: true,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "claude-3-opus-20240229",
        provider_id: "anthropic",
        context_window: 200000,
        max_output_tokens: 4096,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: true,
            extended_thinking: false,
        },
        status: ModelStatus::Deprecated,
    },
    ModelDef {
        id: "claude-4-opus-20250514",
        provider_id: "anthropic",
        context_window: 200000,
        max_output_tokens: 32000,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: true,
            extended_thinking: true,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "claude-4-sonnet-20250514",
        provider_id: "anthropic",
        context_window: 1000000,
        max_output_tokens: 64000,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: true,
            extended_thinking: true,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "claude-haiku-4-5",
        provider_id: "anthropic",
        context_window: 200000,
        max_output_tokens: 64000,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: true,
            extended_thinking: true,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "claude-haiku-4-5-20251001",
        provider_id: "anthropic",
        context_window: 200000,
        max_output_tokens: 64000,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: true,
            extended_thinking: true,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "claude-opus-4-1",
        provider_id: "anthropic",
        context_window: 200000,
        max_output_tokens: 32000,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: true,
            extended_thinking: true,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "claude-opus-4-1-20250805",
        provider_id: "anthropic",
        context_window: 200000,
        max_output_tokens: 32000,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: true,
            extended_thinking: true,
        },
        status: ModelStatus::Deprecated,
    },
    ModelDef {
        id: "claude-opus-4-20250514",
        provider_id: "anthropic",
        context_window: 200000,
        max_output_tokens: 32000,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: true,
            extended_thinking: true,
        },
        status: ModelStatus::Deprecated,
    },
    ModelDef {
        id: "claude-opus-4-5",
        provider_id: "anthropic",
        context_window: 200000,
        max_output_tokens: 64000,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: true,
            extended_thinking: true,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "claude-opus-4-5-20251101",
        provider_id: "anthropic",
        context_window: 200000,
        max_output_tokens: 64000,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: true,
            extended_thinking: true,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "claude-opus-4-6",
        provider_id: "anthropic",
        context_window: 1000000,
        max_output_tokens: 128000,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: true,
            extended_thinking: true,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "claude-opus-4-6-20260205",
        provider_id: "anthropic",
        context_window: 1000000,
        max_output_tokens: 128000,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: true,
            extended_thinking: true,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "claude-opus-4-7",
        provider_id: "anthropic",
        context_window: 1000000,
        max_output_tokens: 128000,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: true,
            extended_thinking: true,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "claude-opus-4-7-20260416",
        provider_id: "anthropic",
        context_window: 1000000,
        max_output_tokens: 128000,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: true,
            extended_thinking: true,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "claude-sonnet-4-20250514",
        provider_id: "anthropic",
        context_window: 1000000,
        max_output_tokens: 64000,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: true,
            extended_thinking: true,
        },
        status: ModelStatus::Deprecated,
    },
    ModelDef {
        id: "claude-sonnet-4-5",
        provider_id: "anthropic",
        context_window: 200000,
        max_output_tokens: 64000,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: true,
            extended_thinking: true,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "claude-sonnet-4-5-20250929",
        provider_id: "anthropic",
        context_window: 200000,
        max_output_tokens: 64000,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: true,
            extended_thinking: true,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "claude-sonnet-4-6",
        provider_id: "anthropic",
        context_window: 1000000,
        max_output_tokens: 64000,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: true,
            extended_thinking: true,
        },
        status: ModelStatus::Available,
    },
];

pub const PROVIDER_ANYSCALE: ProviderDef = ProviderDef {
    id: "anyscale",
    display_name: "Anyscale",
    default_base_url: "https://api.endpoints.anyscale.com/v1",
    protocol: ProviderProtocol::OpenAICompat,
    auth: AuthKind::Bearer,
    status: ProviderStatus::Stub,
    env_vars: &["ANYSCALE_API_KEY"],
    litellm_prefix: "anyscale/",
    capabilities: ProviderCapabilities {
        chat_completions: true,
        streaming: true,
        tool_use: true,
        embeddings: false,
        vision: false,
        batch: false,
    },
};

pub const MODELS_ANYSCALE: &[ModelDef] = &[
    ModelDef {
        id: "HuggingFaceH4/zephyr-7b-beta",
        provider_id: "anyscale",
        context_window: 16384,
        max_output_tokens: 16384,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: false,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "codellama/CodeLlama-34b-Instruct-hf",
        provider_id: "anyscale",
        context_window: 4096,
        max_output_tokens: 4096,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: false,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "codellama/CodeLlama-70b-Instruct-hf",
        provider_id: "anyscale",
        context_window: 4096,
        max_output_tokens: 4096,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: false,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "google/gemma-7b-it",
        provider_id: "anyscale",
        context_window: 8192,
        max_output_tokens: 8192,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: false,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "meta-llama/Llama-2-13b-chat-hf",
        provider_id: "anyscale",
        context_window: 4096,
        max_output_tokens: 4096,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: false,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "meta-llama/Llama-2-70b-chat-hf",
        provider_id: "anyscale",
        context_window: 4096,
        max_output_tokens: 4096,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: false,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "meta-llama/Llama-2-7b-chat-hf",
        provider_id: "anyscale",
        context_window: 4096,
        max_output_tokens: 4096,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: false,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "meta-llama/Meta-Llama-3-70B-Instruct",
        provider_id: "anyscale",
        context_window: 8192,
        max_output_tokens: 8192,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: false,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "meta-llama/Meta-Llama-3-8B-Instruct",
        provider_id: "anyscale",
        context_window: 8192,
        max_output_tokens: 8192,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: false,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "mistralai/Mistral-7B-Instruct-v0.1",
        provider_id: "anyscale",
        context_window: 16384,
        max_output_tokens: 16384,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "mistralai/Mixtral-8x22B-Instruct-v0.1",
        provider_id: "anyscale",
        context_window: 65536,
        max_output_tokens: 65536,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "mistralai/Mixtral-8x7B-Instruct-v0.1",
        provider_id: "anyscale",
        context_window: 16384,
        max_output_tokens: 16384,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
];

pub const PROVIDER_ASSEMBLYAI: ProviderDef = ProviderDef {
    id: "assemblyai",
    display_name: "AssemblyAI",
    default_base_url: "https://api.assemblyai.com",
    protocol: ProviderProtocol::OpenAICompat,
    auth: AuthKind::Bearer,
    status: ProviderStatus::Wired,
    env_vars: &["ASSEMBLYAI_API_KEY"],
    litellm_prefix: "assemblyai/",
    capabilities: ProviderCapabilities {
        chat_completions: false,
        streaming: false,
        tool_use: false,
        embeddings: false,
        vision: false,
        batch: false,
    },
};

pub const MODELS_ASSEMBLYAI: &[ModelDef] = &[
    ModelDef {
        id: "best",
        provider_id: "assemblyai",
        context_window: 0,
        max_output_tokens: 0,
        capabilities: ModelCapabilities {
            streaming: false,
            tool_use: false,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "nano",
        provider_id: "assemblyai",
        context_window: 0,
        max_output_tokens: 0,
        capabilities: ModelCapabilities {
            streaming: false,
            tool_use: false,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
];

pub const PROVIDER_AWS_POLLY: ProviderDef = ProviderDef {
    id: "aws_polly",
    display_name: "AWS Polly",
    default_base_url: "",
    protocol: ProviderProtocol::OpenAICompat,
    auth: AuthKind::Bearer,
    status: ProviderStatus::Stub,
    env_vars: &["AWS_POLLY_API_KEY"],
    litellm_prefix: "aws_polly/",
    capabilities: ProviderCapabilities {
        chat_completions: false,
        streaming: false,
        tool_use: false,
        embeddings: false,
        vision: false,
        batch: false,
    },
};

pub const MODELS_AWS_POLLY: &[ModelDef] = &[
    ModelDef {
        id: "generative",
        provider_id: "aws_polly",
        context_window: 0,
        max_output_tokens: 0,
        capabilities: ModelCapabilities {
            streaming: false,
            tool_use: false,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "long-form",
        provider_id: "aws_polly",
        context_window: 0,
        max_output_tokens: 0,
        capabilities: ModelCapabilities {
            streaming: false,
            tool_use: false,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "neural",
        provider_id: "aws_polly",
        context_window: 0,
        max_output_tokens: 0,
        capabilities: ModelCapabilities {
            streaming: false,
            tool_use: false,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "standard",
        provider_id: "aws_polly",
        context_window: 0,
        max_output_tokens: 0,
        capabilities: ModelCapabilities {
            streaming: false,
            tool_use: false,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
];

pub const PROVIDER_AZURE: ProviderDef = ProviderDef {
    id: "azure",
    display_name: "Azure OpenAI",
    default_base_url: "",
    protocol: ProviderProtocol::AzureOpenAI,
    auth: AuthKind::AzureApiKey,
    status: ProviderStatus::Wired,
    env_vars: &["AZURE_OPENAI_API_KEY"],
    litellm_prefix: "azure/",
    capabilities: ProviderCapabilities {
        chat_completions: true,
        streaming: true,
        tool_use: true,
        embeddings: true,
        vision: true,
        batch: false,
    },
};

pub const MODELS_AZURE: &[ModelDef] = &[
    ModelDef {
        id: "ada",
        provider_id: "azure",
        context_window: 8191,
        max_output_tokens: 0,
        capabilities: ModelCapabilities {
            streaming: false,
            tool_use: false,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "codex-mini",
        provider_id: "azure",
        context_window: 200000,
        max_output_tokens: 100000,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: true,
            extended_thinking: true,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "command-r-plus",
        provider_id: "azure",
        context_window: 128000,
        max_output_tokens: 4096,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "computer-use-preview",
        provider_id: "azure",
        context_window: 8192,
        max_output_tokens: 1024,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: true,
            extended_thinking: true,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "container",
        provider_id: "azure",
        context_window: 0,
        max_output_tokens: 0,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: false,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "eu/gpt-4o-2024-08-06",
        provider_id: "azure",
        context_window: 128000,
        max_output_tokens: 16384,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: true,
            extended_thinking: false,
        },
        status: ModelStatus::Deprecated,
    },
    ModelDef {
        id: "eu/gpt-4o-2024-11-20",
        provider_id: "azure",
        context_window: 128000,
        max_output_tokens: 16384,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: true,
            extended_thinking: false,
        },
        status: ModelStatus::Deprecated,
    },
    ModelDef {
        id: "eu/gpt-4o-mini-2024-07-18",
        provider_id: "azure",
        context_window: 128000,
        max_output_tokens: 16384,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: true,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "eu/gpt-4o-mini-realtime-preview-2024-12-17",
        provider_id: "azure",
        context_window: 128000,
        max_output_tokens: 4096,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "eu/gpt-4o-realtime-preview-2024-10-01",
        provider_id: "azure",
        context_window: 128000,
        max_output_tokens: 4096,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "eu/gpt-4o-realtime-preview-2024-12-17",
        provider_id: "azure",
        context_window: 128000,
        max_output_tokens: 4096,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "eu/gpt-5-2025-08-07",
        provider_id: "azure",
        context_window: 272000,
        max_output_tokens: 128000,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: true,
            extended_thinking: true,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "eu/gpt-5-mini-2025-08-07",
        provider_id: "azure",
        context_window: 272000,
        max_output_tokens: 128000,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: true,
            extended_thinking: true,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "eu/gpt-5-nano-2025-08-07",
        provider_id: "azure",
        context_window: 272000,
        max_output_tokens: 128000,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: true,
            extended_thinking: true,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "eu/gpt-5.1",
        provider_id: "azure",
        context_window: 272000,
        max_output_tokens: 128000,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: true,
            extended_thinking: true,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "eu/gpt-5.1-chat",
        provider_id: "azure",
        context_window: 128000,
        max_output_tokens: 128000,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: true,
            extended_thinking: true,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "eu/gpt-5.1-codex",
        provider_id: "azure",
        context_window: 272000,
        max_output_tokens: 128000,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: true,
            extended_thinking: true,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "eu/gpt-5.1-codex-mini",
        provider_id: "azure",
        context_window: 272000,
        max_output_tokens: 128000,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: true,
            extended_thinking: true,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "eu/o1-2024-12-17",
        provider_id: "azure",
        context_window: 200000,
        max_output_tokens: 100000,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: true,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "eu/o1-mini-2024-09-12",
        provider_id: "azure",
        context_window: 128000,
        max_output_tokens: 65536,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "eu/o1-preview-2024-09-12",
        provider_id: "azure",
        context_window: 128000,
        max_output_tokens: 32768,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "eu/o3-mini-2025-01-31",
        provider_id: "azure",
        context_window: 200000,
        max_output_tokens: 100000,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: false,
            extended_thinking: true,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "global-standard/gpt-4o-2024-08-06",
        provider_id: "azure",
        context_window: 128000,
        max_output_tokens: 16384,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: true,
            extended_thinking: false,
        },
        status: ModelStatus::Deprecated,
    },
    ModelDef {
        id: "global-standard/gpt-4o-2024-11-20",
        provider_id: "azure",
        context_window: 128000,
        max_output_tokens: 16384,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: true,
            extended_thinking: false,
        },
        status: ModelStatus::Deprecated,
    },
    ModelDef {
        id: "global-standard/gpt-4o-mini",
        provider_id: "azure",
        context_window: 128000,
        max_output_tokens: 16384,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: true,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "global/gpt-4o-2024-08-06",
        provider_id: "azure",
        context_window: 128000,
        max_output_tokens: 16384,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: true,
            extended_thinking: false,
        },
        status: ModelStatus::Deprecated,
    },
    ModelDef {
        id: "global/gpt-4o-2024-11-20",
        provider_id: "azure",
        context_window: 128000,
        max_output_tokens: 16384,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: true,
            extended_thinking: false,
        },
        status: ModelStatus::Deprecated,
    },
    ModelDef {
        id: "global/gpt-5.1",
        provider_id: "azure",
        context_window: 272000,
        max_output_tokens: 128000,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: true,
            extended_thinking: true,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "global/gpt-5.1-chat",
        provider_id: "azure",
        context_window: 128000,
        max_output_tokens: 128000,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: true,
            extended_thinking: true,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "global/gpt-5.1-codex",
        provider_id: "azure",
        context_window: 272000,
        max_output_tokens: 128000,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: true,
            extended_thinking: true,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "global/gpt-5.1-codex-mini",
        provider_id: "azure",
        context_window: 272000,
        max_output_tokens: 128000,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: true,
            extended_thinking: true,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "gpt-3.5-turbo",
        provider_id: "azure",
        context_window: 4097,
        max_output_tokens: 4096,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "gpt-3.5-turbo-0125",
        provider_id: "azure",
        context_window: 16384,
        max_output_tokens: 4096,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Deprecated,
    },
    ModelDef {
        id: "gpt-35-turbo",
        provider_id: "azure",
        context_window: 4097,
        max_output_tokens: 4096,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "gpt-35-turbo-0125",
        provider_id: "azure",
        context_window: 16384,
        max_output_tokens: 4096,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Deprecated,
    },
    ModelDef {
        id: "gpt-35-turbo-1106",
        provider_id: "azure",
        context_window: 16384,
        max_output_tokens: 4096,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Deprecated,
    },
    ModelDef {
        id: "gpt-35-turbo-16k",
        provider_id: "azure",
        context_window: 16385,
        max_output_tokens: 4096,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "gpt-35-turbo-16k-0613",
        provider_id: "azure",
        context_window: 16385,
        max_output_tokens: 4096,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "gpt-4",
        provider_id: "azure",
        context_window: 8192,
        max_output_tokens: 4096,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "gpt-4-0125-preview",
        provider_id: "azure",
        context_window: 128000,
        max_output_tokens: 4096,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "gpt-4-0613",
        provider_id: "azure",
        context_window: 8192,
        max_output_tokens: 4096,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "gpt-4-1106-preview",
        provider_id: "azure",
        context_window: 128000,
        max_output_tokens: 4096,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "gpt-4-32k",
        provider_id: "azure",
        context_window: 32768,
        max_output_tokens: 4096,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "gpt-4-32k-0613",
        provider_id: "azure",
        context_window: 32768,
        max_output_tokens: 4096,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "gpt-4-turbo",
        provider_id: "azure",
        context_window: 128000,
        max_output_tokens: 4096,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "gpt-4-turbo-2024-04-09",
        provider_id: "azure",
        context_window: 128000,
        max_output_tokens: 4096,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: true,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "gpt-4-turbo-vision-preview",
        provider_id: "azure",
        context_window: 128000,
        max_output_tokens: 4096,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: true,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "gpt-4.1",
        provider_id: "azure",
        context_window: 1047576,
        max_output_tokens: 32768,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: true,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "gpt-4.1-2025-04-14",
        provider_id: "azure",
        context_window: 1047576,
        max_output_tokens: 32768,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: true,
            extended_thinking: false,
        },
        status: ModelStatus::Deprecated,
    },
    ModelDef {
        id: "gpt-4.1-mini",
        provider_id: "azure",
        context_window: 1047576,
        max_output_tokens: 32768,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: true,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "gpt-4.1-mini-2025-04-14",
        provider_id: "azure",
        context_window: 1047576,
        max_output_tokens: 32768,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: true,
            extended_thinking: false,
        },
        status: ModelStatus::Deprecated,
    },
    ModelDef {
        id: "gpt-4.1-nano",
        provider_id: "azure",
        context_window: 1047576,
        max_output_tokens: 32768,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: true,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "gpt-4.1-nano-2025-04-14",
        provider_id: "azure",
        context_window: 1047576,
        max_output_tokens: 32768,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: true,
            extended_thinking: false,
        },
        status: ModelStatus::Deprecated,
    },
    ModelDef {
        id: "gpt-4.5-preview",
        provider_id: "azure",
        context_window: 128000,
        max_output_tokens: 16384,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: true,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "gpt-4o",
        provider_id: "azure",
        context_window: 128000,
        max_output_tokens: 16384,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: true,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "gpt-4o-2024-05-13",
        provider_id: "azure",
        context_window: 128000,
        max_output_tokens: 4096,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: true,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "gpt-4o-2024-08-06",
        provider_id: "azure",
        context_window: 128000,
        max_output_tokens: 16384,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: true,
            extended_thinking: false,
        },
        status: ModelStatus::Deprecated,
    },
    ModelDef {
        id: "gpt-4o-2024-11-20",
        provider_id: "azure",
        context_window: 128000,
        max_output_tokens: 16384,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: true,
            extended_thinking: false,
        },
        status: ModelStatus::Deprecated,
    },
    ModelDef {
        id: "gpt-4o-audio-preview-2024-12-17",
        provider_id: "azure",
        context_window: 128000,
        max_output_tokens: 16384,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "gpt-4o-mini",
        provider_id: "azure",
        context_window: 128000,
        max_output_tokens: 16384,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: true,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "gpt-4o-mini-2024-07-18",
        provider_id: "azure",
        context_window: 128000,
        max_output_tokens: 16384,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: true,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "gpt-4o-mini-audio-preview-2024-12-17",
        provider_id: "azure",
        context_window: 128000,
        max_output_tokens: 16384,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "gpt-4o-mini-realtime-preview-2024-12-17",
        provider_id: "azure",
        context_window: 128000,
        max_output_tokens: 4096,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "gpt-4o-mini-transcribe",
        provider_id: "azure",
        context_window: 16000,
        max_output_tokens: 2000,
        capabilities: ModelCapabilities {
            streaming: false,
            tool_use: false,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "gpt-4o-mini-tts",
        provider_id: "azure",
        context_window: 0,
        max_output_tokens: 0,
        capabilities: ModelCapabilities {
            streaming: false,
            tool_use: false,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "gpt-4o-realtime-preview-2024-10-01",
        provider_id: "azure",
        context_window: 128000,
        max_output_tokens: 4096,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "gpt-4o-realtime-preview-2024-12-17",
        provider_id: "azure",
        context_window: 128000,
        max_output_tokens: 4096,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "gpt-4o-transcribe",
        provider_id: "azure",
        context_window: 16000,
        max_output_tokens: 2000,
        capabilities: ModelCapabilities {
            streaming: false,
            tool_use: false,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "gpt-4o-transcribe-diarize",
        provider_id: "azure",
        context_window: 16000,
        max_output_tokens: 2000,
        capabilities: ModelCapabilities {
            streaming: false,
            tool_use: false,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "gpt-5",
        provider_id: "azure",
        context_window: 272000,
        max_output_tokens: 128000,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: true,
            extended_thinking: true,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "gpt-5-2025-08-07",
        provider_id: "azure",
        context_window: 272000,
        max_output_tokens: 128000,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: true,
            extended_thinking: true,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "gpt-5-chat",
        provider_id: "azure",
        context_window: 128000,
        max_output_tokens: 16384,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: true,
            extended_thinking: true,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "gpt-5-chat-latest",
        provider_id: "azure",
        context_window: 128000,
        max_output_tokens: 16384,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: true,
            extended_thinking: true,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "gpt-5-codex",
        provider_id: "azure",
        context_window: 272000,
        max_output_tokens: 128000,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: true,
            extended_thinking: true,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "gpt-5-mini",
        provider_id: "azure",
        context_window: 272000,
        max_output_tokens: 128000,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: true,
            extended_thinking: true,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "gpt-5-mini-2025-08-07",
        provider_id: "azure",
        context_window: 272000,
        max_output_tokens: 128000,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: true,
            extended_thinking: true,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "gpt-5-nano",
        provider_id: "azure",
        context_window: 272000,
        max_output_tokens: 128000,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: true,
            extended_thinking: true,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "gpt-5-nano-2025-08-07",
        provider_id: "azure",
        context_window: 272000,
        max_output_tokens: 128000,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: true,
            extended_thinking: true,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "gpt-5-pro",
        provider_id: "azure",
        context_window: 272000,
        max_output_tokens: 128000,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: true,
            extended_thinking: true,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "gpt-5.1",
        provider_id: "azure",
        context_window: 272000,
        max_output_tokens: 128000,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: true,
            extended_thinking: true,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "gpt-5.1-2025-11-13",
        provider_id: "azure",
        context_window: 272000,
        max_output_tokens: 128000,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: true,
            extended_thinking: true,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "gpt-5.1-chat",
        provider_id: "azure",
        context_window: 128000,
        max_output_tokens: 128000,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: true,
            extended_thinking: true,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "gpt-5.1-chat-2025-11-13",
        provider_id: "azure",
        context_window: 128000,
        max_output_tokens: 16384,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: false,
            vision: true,
            extended_thinking: true,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "gpt-5.1-codex",
        provider_id: "azure",
        context_window: 272000,
        max_output_tokens: 128000,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: true,
            extended_thinking: true,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "gpt-5.1-codex-2025-11-13",
        provider_id: "azure",
        context_window: 272000,
        max_output_tokens: 128000,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: true,
            extended_thinking: true,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "gpt-5.1-codex-max",
        provider_id: "azure",
        context_window: 272000,
        max_output_tokens: 128000,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: true,
            extended_thinking: true,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "gpt-5.1-codex-mini",
        provider_id: "azure",
        context_window: 272000,
        max_output_tokens: 128000,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: true,
            extended_thinking: true,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "gpt-5.1-codex-mini-2025-11-13",
        provider_id: "azure",
        context_window: 272000,
        max_output_tokens: 128000,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: true,
            extended_thinking: true,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "gpt-5.2",
        provider_id: "azure",
        context_window: 272000,
        max_output_tokens: 128000,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: true,
            extended_thinking: true,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "gpt-5.2-2025-12-11",
        provider_id: "azure",
        context_window: 272000,
        max_output_tokens: 128000,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: true,
            extended_thinking: true,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "gpt-5.2-chat",
        provider_id: "azure",
        context_window: 128000,
        max_output_tokens: 16384,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: true,
            extended_thinking: true,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "gpt-5.2-chat-2025-12-11",
        provider_id: "azure",
        context_window: 128000,
        max_output_tokens: 16384,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: true,
            extended_thinking: true,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "gpt-5.2-codex",
        provider_id: "azure",
        context_window: 272000,
        max_output_tokens: 128000,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: true,
            extended_thinking: true,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "gpt-5.2-pro",
        provider_id: "azure",
        context_window: 272000,
        max_output_tokens: 128000,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: true,
            extended_thinking: true,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "gpt-5.2-pro-2025-12-11",
        provider_id: "azure",
        context_window: 272000,
        max_output_tokens: 128000,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: true,
            extended_thinking: true,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "gpt-5.3-chat",
        provider_id: "azure",
        context_window: 128000,
        max_output_tokens: 16384,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: true,
            extended_thinking: true,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "gpt-5.3-codex",
        provider_id: "azure",
        context_window: 272000,
        max_output_tokens: 128000,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: true,
            extended_thinking: true,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "gpt-5.4",
        provider_id: "azure",
        context_window: 1050000,
        max_output_tokens: 128000,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: true,
            extended_thinking: true,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "gpt-5.4-2026-03-05",
        provider_id: "azure",
        context_window: 1050000,
        max_output_tokens: 128000,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: true,
            extended_thinking: true,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "gpt-5.4-mini",
        provider_id: "azure",
        context_window: 1050000,
        max_output_tokens: 128000,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: true,
            extended_thinking: true,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "gpt-5.4-mini-2026-03-17",
        provider_id: "azure",
        context_window: 1050000,
        max_output_tokens: 128000,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: true,
            extended_thinking: true,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "gpt-5.4-nano",
        provider_id: "azure",
        context_window: 1050000,
        max_output_tokens: 128000,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: true,
            extended_thinking: true,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "gpt-5.4-nano-2026-03-17",
        provider_id: "azure",
        context_window: 1050000,
        max_output_tokens: 128000,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: true,
            extended_thinking: true,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "gpt-5.4-pro",
        provider_id: "azure",
        context_window: 1050000,
        max_output_tokens: 128000,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: true,
            extended_thinking: true,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "gpt-5.4-pro-2026-03-05",
        provider_id: "azure",
        context_window: 1050000,
        max_output_tokens: 128000,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: true,
            extended_thinking: true,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "gpt-5.5",
        provider_id: "azure",
        context_window: 1050000,
        max_output_tokens: 128000,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: true,
            extended_thinking: true,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "gpt-5.5-2026-04-23",
        provider_id: "azure",
        context_window: 1050000,
        max_output_tokens: 128000,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: true,
            extended_thinking: true,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "gpt-5.5-pro",
        provider_id: "azure",
        context_window: 1050000,
        max_output_tokens: 128000,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: true,
            extended_thinking: true,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "gpt-5.5-pro-2026-04-23",
        provider_id: "azure",
        context_window: 1050000,
        max_output_tokens: 128000,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: true,
            extended_thinking: true,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "gpt-audio-1.5-2026-02-23",
        provider_id: "azure",
        context_window: 128000,
        max_output_tokens: 16384,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "gpt-audio-2025-08-28",
        provider_id: "azure",
        context_window: 128000,
        max_output_tokens: 16384,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "gpt-audio-mini-2025-10-06",
        provider_id: "azure",
        context_window: 128000,
        max_output_tokens: 16384,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "gpt-image-1",
        provider_id: "azure",
        context_window: 0,
        max_output_tokens: 0,
        capabilities: ModelCapabilities {
            streaming: false,
            tool_use: false,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "gpt-image-1-mini",
        provider_id: "azure",
        context_window: 0,
        max_output_tokens: 0,
        capabilities: ModelCapabilities {
            streaming: false,
            tool_use: false,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "gpt-image-1.5",
        provider_id: "azure",
        context_window: 0,
        max_output_tokens: 0,
        capabilities: ModelCapabilities {
            streaming: false,
            tool_use: false,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "gpt-image-1.5-2025-12-16",
        provider_id: "azure",
        context_window: 0,
        max_output_tokens: 0,
        capabilities: ModelCapabilities {
            streaming: false,
            tool_use: false,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "gpt-image-2",
        provider_id: "azure",
        context_window: 0,
        max_output_tokens: 0,
        capabilities: ModelCapabilities {
            streaming: false,
            tool_use: false,
            vision: true,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "gpt-image-2-2026-04-21",
        provider_id: "azure",
        context_window: 0,
        max_output_tokens: 0,
        capabilities: ModelCapabilities {
            streaming: false,
            tool_use: false,
            vision: true,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "gpt-realtime-1.5-2026-02-23",
        provider_id: "azure",
        context_window: 32000,
        max_output_tokens: 4096,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "gpt-realtime-2025-08-28",
        provider_id: "azure",
        context_window: 32000,
        max_output_tokens: 4096,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "gpt-realtime-mini-2025-10-06",
        provider_id: "azure",
        context_window: 32000,
        max_output_tokens: 4096,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "hd/1024-x-1024/dall-e-3",
        provider_id: "azure",
        context_window: 0,
        max_output_tokens: 0,
        capabilities: ModelCapabilities {
            streaming: false,
            tool_use: false,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "hd/1024-x-1792/dall-e-3",
        provider_id: "azure",
        context_window: 0,
        max_output_tokens: 0,
        capabilities: ModelCapabilities {
            streaming: false,
            tool_use: false,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "hd/1792-x-1024/dall-e-3",
        provider_id: "azure",
        context_window: 0,
        max_output_tokens: 0,
        capabilities: ModelCapabilities {
            streaming: false,
            tool_use: false,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "high/1024-x-1024/gpt-image-1",
        provider_id: "azure",
        context_window: 0,
        max_output_tokens: 0,
        capabilities: ModelCapabilities {
            streaming: false,
            tool_use: false,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "high/1024-x-1024/gpt-image-1-mini",
        provider_id: "azure",
        context_window: 0,
        max_output_tokens: 0,
        capabilities: ModelCapabilities {
            streaming: false,
            tool_use: false,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "high/1024-x-1536/gpt-image-1",
        provider_id: "azure",
        context_window: 0,
        max_output_tokens: 0,
        capabilities: ModelCapabilities {
            streaming: false,
            tool_use: false,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "high/1024-x-1536/gpt-image-1-mini",
        provider_id: "azure",
        context_window: 0,
        max_output_tokens: 0,
        capabilities: ModelCapabilities {
            streaming: false,
            tool_use: false,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "high/1536-x-1024/gpt-image-1",
        provider_id: "azure",
        context_window: 0,
        max_output_tokens: 0,
        capabilities: ModelCapabilities {
            streaming: false,
            tool_use: false,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "high/1536-x-1024/gpt-image-1-mini",
        provider_id: "azure",
        context_window: 0,
        max_output_tokens: 0,
        capabilities: ModelCapabilities {
            streaming: false,
            tool_use: false,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "low/1024-x-1024/gpt-image-1",
        provider_id: "azure",
        context_window: 0,
        max_output_tokens: 0,
        capabilities: ModelCapabilities {
            streaming: false,
            tool_use: false,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "low/1024-x-1024/gpt-image-1-mini",
        provider_id: "azure",
        context_window: 0,
        max_output_tokens: 0,
        capabilities: ModelCapabilities {
            streaming: false,
            tool_use: false,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "low/1024-x-1536/gpt-image-1",
        provider_id: "azure",
        context_window: 0,
        max_output_tokens: 0,
        capabilities: ModelCapabilities {
            streaming: false,
            tool_use: false,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "low/1024-x-1536/gpt-image-1-mini",
        provider_id: "azure",
        context_window: 0,
        max_output_tokens: 0,
        capabilities: ModelCapabilities {
            streaming: false,
            tool_use: false,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "low/1536-x-1024/gpt-image-1",
        provider_id: "azure",
        context_window: 0,
        max_output_tokens: 0,
        capabilities: ModelCapabilities {
            streaming: false,
            tool_use: false,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "low/1536-x-1024/gpt-image-1-mini",
        provider_id: "azure",
        context_window: 0,
        max_output_tokens: 0,
        capabilities: ModelCapabilities {
            streaming: false,
            tool_use: false,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "medium/1024-x-1024/gpt-image-1",
        provider_id: "azure",
        context_window: 0,
        max_output_tokens: 0,
        capabilities: ModelCapabilities {
            streaming: false,
            tool_use: false,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "medium/1024-x-1024/gpt-image-1-mini",
        provider_id: "azure",
        context_window: 0,
        max_output_tokens: 0,
        capabilities: ModelCapabilities {
            streaming: false,
            tool_use: false,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "medium/1024-x-1536/gpt-image-1",
        provider_id: "azure",
        context_window: 0,
        max_output_tokens: 0,
        capabilities: ModelCapabilities {
            streaming: false,
            tool_use: false,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "medium/1024-x-1536/gpt-image-1-mini",
        provider_id: "azure",
        context_window: 0,
        max_output_tokens: 0,
        capabilities: ModelCapabilities {
            streaming: false,
            tool_use: false,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "medium/1536-x-1024/gpt-image-1",
        provider_id: "azure",
        context_window: 0,
        max_output_tokens: 0,
        capabilities: ModelCapabilities {
            streaming: false,
            tool_use: false,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "medium/1536-x-1024/gpt-image-1-mini",
        provider_id: "azure",
        context_window: 0,
        max_output_tokens: 0,
        capabilities: ModelCapabilities {
            streaming: false,
            tool_use: false,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "mistral-large-2402",
        provider_id: "azure",
        context_window: 32000,
        max_output_tokens: 0,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "mistral-large-latest",
        provider_id: "azure",
        context_window: 32000,
        max_output_tokens: 0,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "o1",
        provider_id: "azure",
        context_window: 200000,
        max_output_tokens: 100000,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: true,
            extended_thinking: true,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "o1-2024-12-17",
        provider_id: "azure",
        context_window: 200000,
        max_output_tokens: 100000,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: true,
            extended_thinking: true,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "o1-mini",
        provider_id: "azure",
        context_window: 128000,
        max_output_tokens: 65536,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: false,
            extended_thinking: true,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "o1-mini-2024-09-12",
        provider_id: "azure",
        context_window: 128000,
        max_output_tokens: 65536,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: false,
            extended_thinking: true,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "o1-preview",
        provider_id: "azure",
        context_window: 128000,
        max_output_tokens: 32768,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: false,
            extended_thinking: true,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "o1-preview-2024-09-12",
        provider_id: "azure",
        context_window: 128000,
        max_output_tokens: 32768,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: false,
            extended_thinking: true,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "o3",
        provider_id: "azure",
        context_window: 200000,
        max_output_tokens: 100000,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: true,
            extended_thinking: true,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "o3-2025-04-16",
        provider_id: "azure",
        context_window: 200000,
        max_output_tokens: 100000,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: true,
            extended_thinking: true,
        },
        status: ModelStatus::Deprecated,
    },
    ModelDef {
        id: "o3-deep-research",
        provider_id: "azure",
        context_window: 200000,
        max_output_tokens: 100000,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: true,
            extended_thinking: true,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "o3-mini",
        provider_id: "azure",
        context_window: 200000,
        max_output_tokens: 100000,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: false,
            extended_thinking: true,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "o3-mini-2025-01-31",
        provider_id: "azure",
        context_window: 200000,
        max_output_tokens: 100000,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: false,
            extended_thinking: true,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "o3-pro",
        provider_id: "azure",
        context_window: 200000,
        max_output_tokens: 100000,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: true,
            extended_thinking: true,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "o3-pro-2025-06-10",
        provider_id: "azure",
        context_window: 200000,
        max_output_tokens: 100000,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: true,
            extended_thinking: true,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "o4-mini",
        provider_id: "azure",
        context_window: 200000,
        max_output_tokens: 100000,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: true,
            extended_thinking: true,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "o4-mini-2025-04-16",
        provider_id: "azure",
        context_window: 200000,
        max_output_tokens: 100000,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: true,
            extended_thinking: true,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "sora-2",
        provider_id: "azure",
        context_window: 0,
        max_output_tokens: 0,
        capabilities: ModelCapabilities {
            streaming: false,
            tool_use: false,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "sora-2-pro",
        provider_id: "azure",
        context_window: 0,
        max_output_tokens: 0,
        capabilities: ModelCapabilities {
            streaming: false,
            tool_use: false,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "sora-2-pro-high-res",
        provider_id: "azure",
        context_window: 0,
        max_output_tokens: 0,
        capabilities: ModelCapabilities {
            streaming: false,
            tool_use: false,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "speech/azure-tts",
        provider_id: "azure",
        context_window: 0,
        max_output_tokens: 0,
        capabilities: ModelCapabilities {
            streaming: false,
            tool_use: false,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "speech/azure-tts-hd",
        provider_id: "azure",
        context_window: 0,
        max_output_tokens: 0,
        capabilities: ModelCapabilities {
            streaming: false,
            tool_use: false,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "standard/1024-x-1024/dall-e-2",
        provider_id: "azure",
        context_window: 0,
        max_output_tokens: 0,
        capabilities: ModelCapabilities {
            streaming: false,
            tool_use: false,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "standard/1024-x-1024/dall-e-3",
        provider_id: "azure",
        context_window: 0,
        max_output_tokens: 0,
        capabilities: ModelCapabilities {
            streaming: false,
            tool_use: false,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "standard/1024-x-1792/dall-e-3",
        provider_id: "azure",
        context_window: 0,
        max_output_tokens: 0,
        capabilities: ModelCapabilities {
            streaming: false,
            tool_use: false,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "standard/1792-x-1024/dall-e-3",
        provider_id: "azure",
        context_window: 0,
        max_output_tokens: 0,
        capabilities: ModelCapabilities {
            streaming: false,
            tool_use: false,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "text-embedding-3-large",
        provider_id: "azure",
        context_window: 8191,
        max_output_tokens: 0,
        capabilities: ModelCapabilities {
            streaming: false,
            tool_use: false,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "text-embedding-3-small",
        provider_id: "azure",
        context_window: 8191,
        max_output_tokens: 0,
        capabilities: ModelCapabilities {
            streaming: false,
            tool_use: false,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Deprecated,
    },
    ModelDef {
        id: "text-embedding-ada-002",
        provider_id: "azure",
        context_window: 8191,
        max_output_tokens: 0,
        capabilities: ModelCapabilities {
            streaming: false,
            tool_use: false,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "tts-1",
        provider_id: "azure",
        context_window: 0,
        max_output_tokens: 0,
        capabilities: ModelCapabilities {
            streaming: false,
            tool_use: false,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "tts-1-hd",
        provider_id: "azure",
        context_window: 0,
        max_output_tokens: 0,
        capabilities: ModelCapabilities {
            streaming: false,
            tool_use: false,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "us/gpt-4.1-2025-04-14",
        provider_id: "azure",
        context_window: 1047576,
        max_output_tokens: 32768,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: true,
            extended_thinking: false,
        },
        status: ModelStatus::Deprecated,
    },
    ModelDef {
        id: "us/gpt-4.1-mini-2025-04-14",
        provider_id: "azure",
        context_window: 1047576,
        max_output_tokens: 32768,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: true,
            extended_thinking: false,
        },
        status: ModelStatus::Deprecated,
    },
    ModelDef {
        id: "us/gpt-4.1-nano-2025-04-14",
        provider_id: "azure",
        context_window: 1047576,
        max_output_tokens: 32768,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: true,
            extended_thinking: false,
        },
        status: ModelStatus::Deprecated,
    },
    ModelDef {
        id: "us/gpt-4o-2024-08-06",
        provider_id: "azure",
        context_window: 128000,
        max_output_tokens: 16384,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: true,
            extended_thinking: false,
        },
        status: ModelStatus::Deprecated,
    },
    ModelDef {
        id: "us/gpt-4o-2024-11-20",
        provider_id: "azure",
        context_window: 128000,
        max_output_tokens: 16384,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: true,
            extended_thinking: false,
        },
        status: ModelStatus::Deprecated,
    },
    ModelDef {
        id: "us/gpt-4o-mini-2024-07-18",
        provider_id: "azure",
        context_window: 128000,
        max_output_tokens: 16384,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: true,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "us/gpt-4o-mini-realtime-preview-2024-12-17",
        provider_id: "azure",
        context_window: 128000,
        max_output_tokens: 4096,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "us/gpt-4o-realtime-preview-2024-10-01",
        provider_id: "azure",
        context_window: 128000,
        max_output_tokens: 4096,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "us/gpt-4o-realtime-preview-2024-12-17",
        provider_id: "azure",
        context_window: 128000,
        max_output_tokens: 4096,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "us/gpt-5-2025-08-07",
        provider_id: "azure",
        context_window: 272000,
        max_output_tokens: 128000,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: true,
            extended_thinking: true,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "us/gpt-5-mini-2025-08-07",
        provider_id: "azure",
        context_window: 272000,
        max_output_tokens: 128000,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: true,
            extended_thinking: true,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "us/gpt-5-nano-2025-08-07",
        provider_id: "azure",
        context_window: 272000,
        max_output_tokens: 128000,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: true,
            extended_thinking: true,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "us/gpt-5.1",
        provider_id: "azure",
        context_window: 272000,
        max_output_tokens: 128000,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: true,
            extended_thinking: true,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "us/gpt-5.1-chat",
        provider_id: "azure",
        context_window: 128000,
        max_output_tokens: 128000,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: true,
            extended_thinking: true,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "us/gpt-5.1-codex",
        provider_id: "azure",
        context_window: 272000,
        max_output_tokens: 128000,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: true,
            extended_thinking: true,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "us/gpt-5.1-codex-mini",
        provider_id: "azure",
        context_window: 272000,
        max_output_tokens: 128000,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: true,
            extended_thinking: true,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "us/o1-2024-12-17",
        provider_id: "azure",
        context_window: 200000,
        max_output_tokens: 100000,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: true,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "us/o1-mini-2024-09-12",
        provider_id: "azure",
        context_window: 128000,
        max_output_tokens: 65536,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "us/o1-preview-2024-09-12",
        provider_id: "azure",
        context_window: 128000,
        max_output_tokens: 32768,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "us/o3-2025-04-16",
        provider_id: "azure",
        context_window: 200000,
        max_output_tokens: 100000,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: true,
            extended_thinking: true,
        },
        status: ModelStatus::Deprecated,
    },
    ModelDef {
        id: "us/o3-mini-2025-01-31",
        provider_id: "azure",
        context_window: 200000,
        max_output_tokens: 100000,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: false,
            extended_thinking: true,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "us/o4-mini-2025-04-16",
        provider_id: "azure",
        context_window: 200000,
        max_output_tokens: 100000,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: true,
            extended_thinking: true,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "whisper-1",
        provider_id: "azure",
        context_window: 0,
        max_output_tokens: 0,
        capabilities: ModelCapabilities {
            streaming: false,
            tool_use: false,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
];

pub const PROVIDER_AZURE_AI: ProviderDef = ProviderDef {
    id: "azure_ai",
    display_name: "Azure AI Foundry",
    default_base_url: "",
    protocol: ProviderProtocol::OpenAICompat,
    auth: AuthKind::Bearer,
    status: ProviderStatus::Stub,
    env_vars: &["AZURE_AI_API_KEY", "AZURE_AI_API_BASE"],
    litellm_prefix: "azure_ai/",
    capabilities: ProviderCapabilities {
        chat_completions: true,
        streaming: true,
        tool_use: true,
        embeddings: true,
        vision: true,
        batch: false,
    },
};

pub const MODELS_AZURE_AI: &[ModelDef] = &[
    ModelDef {
        id: "Cohere-embed-v3-english",
        provider_id: "azure_ai",
        context_window: 512,
        max_output_tokens: 0,
        capabilities: ModelCapabilities {
            streaming: false,
            tool_use: false,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "Cohere-embed-v3-multilingual",
        provider_id: "azure_ai",
        context_window: 512,
        max_output_tokens: 0,
        capabilities: ModelCapabilities {
            streaming: false,
            tool_use: false,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "FLUX-1.1-pro",
        provider_id: "azure_ai",
        context_window: 0,
        max_output_tokens: 0,
        capabilities: ModelCapabilities {
            streaming: false,
            tool_use: false,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "FLUX.1-Kontext-pro",
        provider_id: "azure_ai",
        context_window: 0,
        max_output_tokens: 0,
        capabilities: ModelCapabilities {
            streaming: false,
            tool_use: false,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "Llama-3.2-11B-Vision-Instruct",
        provider_id: "azure_ai",
        context_window: 128000,
        max_output_tokens: 2048,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: true,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "Llama-3.2-90B-Vision-Instruct",
        provider_id: "azure_ai",
        context_window: 128000,
        max_output_tokens: 2048,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: true,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "Llama-3.3-70B-Instruct",
        provider_id: "azure_ai",
        context_window: 128000,
        max_output_tokens: 2048,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "Llama-4-Maverick-17B-128E-Instruct-FP8",
        provider_id: "azure_ai",
        context_window: 1000000,
        max_output_tokens: 16384,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: true,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "Llama-4-Scout-17B-16E-Instruct",
        provider_id: "azure_ai",
        context_window: 10000000,
        max_output_tokens: 16384,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: true,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "MAI-DS-R1",
        provider_id: "azure_ai",
        context_window: 128000,
        max_output_tokens: 8192,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: false,
            extended_thinking: true,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "Meta-Llama-3-70B-Instruct",
        provider_id: "azure_ai",
        context_window: 8192,
        max_output_tokens: 2048,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "Meta-Llama-3.1-405B-Instruct",
        provider_id: "azure_ai",
        context_window: 128000,
        max_output_tokens: 2048,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "Meta-Llama-3.1-70B-Instruct",
        provider_id: "azure_ai",
        context_window: 128000,
        max_output_tokens: 2048,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "Meta-Llama-3.1-8B-Instruct",
        provider_id: "azure_ai",
        context_window: 128000,
        max_output_tokens: 2048,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "Phi-3-medium-128k-instruct",
        provider_id: "azure_ai",
        context_window: 128000,
        max_output_tokens: 4096,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "Phi-3-medium-4k-instruct",
        provider_id: "azure_ai",
        context_window: 4096,
        max_output_tokens: 4096,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "Phi-3-mini-128k-instruct",
        provider_id: "azure_ai",
        context_window: 128000,
        max_output_tokens: 4096,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "Phi-3-mini-4k-instruct",
        provider_id: "azure_ai",
        context_window: 4096,
        max_output_tokens: 4096,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "Phi-3-small-128k-instruct",
        provider_id: "azure_ai",
        context_window: 128000,
        max_output_tokens: 4096,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "Phi-3-small-8k-instruct",
        provider_id: "azure_ai",
        context_window: 8192,
        max_output_tokens: 4096,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "Phi-3.5-MoE-instruct",
        provider_id: "azure_ai",
        context_window: 128000,
        max_output_tokens: 4096,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "Phi-3.5-mini-instruct",
        provider_id: "azure_ai",
        context_window: 128000,
        max_output_tokens: 4096,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "Phi-3.5-vision-instruct",
        provider_id: "azure_ai",
        context_window: 128000,
        max_output_tokens: 4096,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: true,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "Phi-4",
        provider_id: "azure_ai",
        context_window: 16384,
        max_output_tokens: 16384,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "Phi-4-mini-instruct",
        provider_id: "azure_ai",
        context_window: 131072,
        max_output_tokens: 4096,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "Phi-4-mini-reasoning",
        provider_id: "azure_ai",
        context_window: 131072,
        max_output_tokens: 4096,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "Phi-4-multimodal-instruct",
        provider_id: "azure_ai",
        context_window: 131072,
        max_output_tokens: 4096,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: true,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "Phi-4-reasoning",
        provider_id: "azure_ai",
        context_window: 32768,
        max_output_tokens: 4096,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: false,
            extended_thinking: true,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "claude-haiku-4-5",
        provider_id: "azure_ai",
        context_window: 200000,
        max_output_tokens: 64000,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: true,
            extended_thinking: true,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "claude-opus-4-1",
        provider_id: "azure_ai",
        context_window: 200000,
        max_output_tokens: 32000,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: true,
            extended_thinking: true,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "claude-opus-4-5",
        provider_id: "azure_ai",
        context_window: 200000,
        max_output_tokens: 64000,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: true,
            extended_thinking: true,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "claude-opus-4-6",
        provider_id: "azure_ai",
        context_window: 200000,
        max_output_tokens: 128000,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: true,
            extended_thinking: true,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "claude-opus-4-7",
        provider_id: "azure_ai",
        context_window: 200000,
        max_output_tokens: 128000,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: true,
            extended_thinking: true,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "claude-sonnet-4-5",
        provider_id: "azure_ai",
        context_window: 200000,
        max_output_tokens: 64000,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: true,
            extended_thinking: true,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "claude-sonnet-4-6",
        provider_id: "azure_ai",
        context_window: 1000000,
        max_output_tokens: 64000,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: true,
            extended_thinking: true,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "cohere-rerank-v3-english",
        provider_id: "azure_ai",
        context_window: 4096,
        max_output_tokens: 4096,
        capabilities: ModelCapabilities {
            streaming: false,
            tool_use: false,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "cohere-rerank-v3-multilingual",
        provider_id: "azure_ai",
        context_window: 4096,
        max_output_tokens: 4096,
        capabilities: ModelCapabilities {
            streaming: false,
            tool_use: false,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "cohere-rerank-v3.5",
        provider_id: "azure_ai",
        context_window: 4096,
        max_output_tokens: 4096,
        capabilities: ModelCapabilities {
            streaming: false,
            tool_use: false,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "cohere-rerank-v4.0-fast",
        provider_id: "azure_ai",
        context_window: 32768,
        max_output_tokens: 32768,
        capabilities: ModelCapabilities {
            streaming: false,
            tool_use: false,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "cohere-rerank-v4.0-pro",
        provider_id: "azure_ai",
        context_window: 32768,
        max_output_tokens: 32768,
        capabilities: ModelCapabilities {
            streaming: false,
            tool_use: false,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "deepseek-r1",
        provider_id: "azure_ai",
        context_window: 128000,
        max_output_tokens: 8192,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: false,
            extended_thinking: true,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "deepseek-v3",
        provider_id: "azure_ai",
        context_window: 128000,
        max_output_tokens: 8192,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "deepseek-v3-0324",
        provider_id: "azure_ai",
        context_window: 128000,
        max_output_tokens: 8192,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "deepseek-v3.2",
        provider_id: "azure_ai",
        context_window: 163840,
        max_output_tokens: 163840,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: false,
            extended_thinking: true,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "deepseek-v3.2-speciale",
        provider_id: "azure_ai",
        context_window: 163840,
        max_output_tokens: 163840,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: false,
            extended_thinking: true,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "doc-intelligence/prebuilt-document",
        provider_id: "azure_ai",
        context_window: 0,
        max_output_tokens: 0,
        capabilities: ModelCapabilities {
            streaming: false,
            tool_use: false,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "doc-intelligence/prebuilt-layout",
        provider_id: "azure_ai",
        context_window: 0,
        max_output_tokens: 0,
        capabilities: ModelCapabilities {
            streaming: false,
            tool_use: false,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "doc-intelligence/prebuilt-read",
        provider_id: "azure_ai",
        context_window: 0,
        max_output_tokens: 0,
        capabilities: ModelCapabilities {
            streaming: false,
            tool_use: false,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "embed-v-4-0",
        provider_id: "azure_ai",
        context_window: 128000,
        max_output_tokens: 0,
        capabilities: ModelCapabilities {
            streaming: false,
            tool_use: false,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "flux.2-pro",
        provider_id: "azure_ai",
        context_window: 0,
        max_output_tokens: 0,
        capabilities: ModelCapabilities {
            streaming: false,
            tool_use: false,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "global/grok-3",
        provider_id: "azure_ai",
        context_window: 131072,
        max_output_tokens: 131072,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "global/grok-3-mini",
        provider_id: "azure_ai",
        context_window: 131072,
        max_output_tokens: 131072,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: false,
            extended_thinking: true,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "gpt-5.4",
        provider_id: "azure_ai",
        context_window: 1050000,
        max_output_tokens: 128000,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: true,
            extended_thinking: true,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "gpt-5.4-2026-03-05",
        provider_id: "azure_ai",
        context_window: 1050000,
        max_output_tokens: 128000,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: true,
            extended_thinking: true,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "gpt-5.4-mini",
        provider_id: "azure_ai",
        context_window: 400000,
        max_output_tokens: 128000,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: true,
            extended_thinking: true,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "gpt-5.4-mini-2026-03-17",
        provider_id: "azure_ai",
        context_window: 400000,
        max_output_tokens: 128000,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: true,
            extended_thinking: true,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "gpt-5.4-nano",
        provider_id: "azure_ai",
        context_window: 400000,
        max_output_tokens: 128000,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: true,
            extended_thinking: true,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "gpt-5.4-nano-2026-03-17",
        provider_id: "azure_ai",
        context_window: 400000,
        max_output_tokens: 128000,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: true,
            extended_thinking: true,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "gpt-5.4-pro",
        provider_id: "azure_ai",
        context_window: 1050000,
        max_output_tokens: 128000,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: true,
            extended_thinking: true,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "gpt-5.4-pro-2026-03-05",
        provider_id: "azure_ai",
        context_window: 1050000,
        max_output_tokens: 128000,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: true,
            extended_thinking: true,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "gpt-oss-120b",
        provider_id: "azure_ai",
        context_window: 131072,
        max_output_tokens: 131072,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "grok-3",
        provider_id: "azure_ai",
        context_window: 131072,
        max_output_tokens: 131072,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "grok-3-mini",
        provider_id: "azure_ai",
        context_window: 131072,
        max_output_tokens: 131072,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: false,
            extended_thinking: true,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "grok-4",
        provider_id: "azure_ai",
        context_window: 131072,
        max_output_tokens: 131072,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "grok-4-1-fast-non-reasoning",
        provider_id: "azure_ai",
        context_window: 131072,
        max_output_tokens: 131072,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "grok-4-1-fast-reasoning",
        provider_id: "azure_ai",
        context_window: 131072,
        max_output_tokens: 131072,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: false,
            extended_thinking: true,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "grok-4-fast-non-reasoning",
        provider_id: "azure_ai",
        context_window: 131072,
        max_output_tokens: 131072,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "grok-4-fast-reasoning",
        provider_id: "azure_ai",
        context_window: 131072,
        max_output_tokens: 131072,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "grok-code-fast-1",
        provider_id: "azure_ai",
        context_window: 131072,
        max_output_tokens: 131072,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "jais-30b-chat",
        provider_id: "azure_ai",
        context_window: 8192,
        max_output_tokens: 8192,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: false,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "jamba-instruct",
        provider_id: "azure_ai",
        context_window: 70000,
        max_output_tokens: 4096,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "kimi-k2.5",
        provider_id: "azure_ai",
        context_window: 262144,
        max_output_tokens: 262144,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: true,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "ministral-3b",
        provider_id: "azure_ai",
        context_window: 128000,
        max_output_tokens: 4096,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "mistral-document-ai-2505",
        provider_id: "azure_ai",
        context_window: 0,
        max_output_tokens: 0,
        capabilities: ModelCapabilities {
            streaming: false,
            tool_use: false,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "mistral-document-ai-2512",
        provider_id: "azure_ai",
        context_window: 0,
        max_output_tokens: 0,
        capabilities: ModelCapabilities {
            streaming: false,
            tool_use: false,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "mistral-large",
        provider_id: "azure_ai",
        context_window: 32000,
        max_output_tokens: 8191,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "mistral-large-2407",
        provider_id: "azure_ai",
        context_window: 128000,
        max_output_tokens: 4096,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "mistral-large-3",
        provider_id: "azure_ai",
        context_window: 256000,
        max_output_tokens: 8191,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: true,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "mistral-large-latest",
        provider_id: "azure_ai",
        context_window: 128000,
        max_output_tokens: 4096,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "mistral-medium-2505",
        provider_id: "azure_ai",
        context_window: 131072,
        max_output_tokens: 8191,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "mistral-nemo",
        provider_id: "azure_ai",
        context_window: 131072,
        max_output_tokens: 4096,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "mistral-small",
        provider_id: "azure_ai",
        context_window: 32000,
        max_output_tokens: 8191,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "mistral-small-2503",
        provider_id: "azure_ai",
        context_window: 128000,
        max_output_tokens: 128000,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: true,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "model_router",
        provider_id: "azure_ai",
        context_window: 0,
        max_output_tokens: 0,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: false,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
];

pub const PROVIDER_AZURE_TEXT: ProviderDef = ProviderDef {
    id: "azure_text",
    display_name: "Azure OpenAI",
    default_base_url: "",
    protocol: ProviderProtocol::AzureOpenAI,
    auth: AuthKind::AzureApiKey,
    status: ProviderStatus::Wired,
    env_vars: &["AZURE_OPENAI_API_KEY"],
    litellm_prefix: "azure_text/",
    capabilities: ProviderCapabilities {
        chat_completions: false,
        streaming: true,
        tool_use: false,
        embeddings: false,
        vision: false,
        batch: false,
    },
};

pub const MODELS_AZURE_TEXT: &[ModelDef] = &[
    ModelDef {
        id: "azure/gpt-3.5-turbo-instruct-0914",
        provider_id: "azure_text",
        context_window: 4097,
        max_output_tokens: 0,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: false,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "azure/gpt-35-turbo-instruct",
        provider_id: "azure_text",
        context_window: 4097,
        max_output_tokens: 0,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: false,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "azure/gpt-35-turbo-instruct-0914",
        provider_id: "azure_text",
        context_window: 4097,
        max_output_tokens: 0,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: false,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
];

pub const PROVIDER_BASETEN: ProviderDef = ProviderDef {
    id: "baseten",
    display_name: "Baseten",
    default_base_url: "https://inference.baseten.co/v1",
    protocol: ProviderProtocol::OpenAICompat,
    auth: AuthKind::Bearer,
    status: ProviderStatus::Stub,
    env_vars: &["BASETEN_API_KEY"],
    litellm_prefix: "baseten/",
    capabilities: ProviderCapabilities {
        chat_completions: true,
        streaming: true,
        tool_use: false,
        embeddings: false,
        vision: false,
        batch: false,
    },
};

pub const MODELS_BASETEN: &[ModelDef] = &[
    ModelDef {
        id: "MiniMaxAI/MiniMax-M2.5",
        provider_id: "baseten",
        context_window: 0,
        max_output_tokens: 0,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: false,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "deepseek-ai/DeepSeek-V3-0324",
        provider_id: "baseten",
        context_window: 0,
        max_output_tokens: 0,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: false,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "deepseek-ai/DeepSeek-V3.1",
        provider_id: "baseten",
        context_window: 0,
        max_output_tokens: 0,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: false,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "moonshotai/Kimi-K2-Instruct-0905",
        provider_id: "baseten",
        context_window: 0,
        max_output_tokens: 0,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: false,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "moonshotai/Kimi-K2-Thinking",
        provider_id: "baseten",
        context_window: 0,
        max_output_tokens: 0,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: false,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "moonshotai/Kimi-K2.5",
        provider_id: "baseten",
        context_window: 0,
        max_output_tokens: 0,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: false,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "nvidia/Nemotron-120B-A12B",
        provider_id: "baseten",
        context_window: 0,
        max_output_tokens: 0,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: false,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "openai/gpt-oss-120b",
        provider_id: "baseten",
        context_window: 0,
        max_output_tokens: 0,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: false,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "zai-org/GLM-4.6",
        provider_id: "baseten",
        context_window: 0,
        max_output_tokens: 0,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: false,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "zai-org/GLM-4.7",
        provider_id: "baseten",
        context_window: 0,
        max_output_tokens: 0,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: false,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "zai-org/GLM-5",
        provider_id: "baseten",
        context_window: 0,
        max_output_tokens: 0,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: false,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
];

pub const PROVIDER_BEDROCK: ProviderDef = ProviderDef {
    id: "bedrock",
    display_name: "AWS Bedrock",
    default_base_url: "",
    protocol: ProviderProtocol::BedrockNative,
    auth: AuthKind::AwsSigV4,
    status: ProviderStatus::Wired,
    env_vars: &["AWS_ACCESS_KEY_ID", "AWS_SECRET_ACCESS_KEY", "AWS_REGION"],
    litellm_prefix: "bedrock/",
    capabilities: ProviderCapabilities {
        chat_completions: true,
        streaming: true,
        tool_use: true,
        embeddings: true,
        vision: true,
        batch: false,
    },
};

pub const MODELS_BEDROCK: &[ModelDef] = &[
    ModelDef {
        id: "*/1-month-commitment/cohere.command-light-text-v14",
        provider_id: "bedrock",
        context_window: 4096,
        max_output_tokens: 4096,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "*/1-month-commitment/cohere.command-text-v14",
        provider_id: "bedrock",
        context_window: 4096,
        max_output_tokens: 4096,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "*/6-month-commitment/cohere.command-light-text-v14",
        provider_id: "bedrock",
        context_window: 4096,
        max_output_tokens: 4096,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "*/6-month-commitment/cohere.command-text-v14",
        provider_id: "bedrock",
        context_window: 4096,
        max_output_tokens: 4096,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "1024-x-1024/50-steps/bedrock/amazon.nova-canvas-v1:0",
        provider_id: "bedrock",
        context_window: 2600,
        max_output_tokens: 0,
        capabilities: ModelCapabilities {
            streaming: false,
            tool_use: false,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "1024-x-1024/50-steps/stability.stable-diffusion-xl-v1",
        provider_id: "bedrock",
        context_window: 77,
        max_output_tokens: 0,
        capabilities: ModelCapabilities {
            streaming: false,
            tool_use: false,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "1024-x-1024/max-steps/stability.stable-diffusion-xl-v1",
        provider_id: "bedrock",
        context_window: 77,
        max_output_tokens: 0,
        capabilities: ModelCapabilities {
            streaming: false,
            tool_use: false,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "512-x-512/50-steps/stability.stable-diffusion-xl-v0",
        provider_id: "bedrock",
        context_window: 77,
        max_output_tokens: 0,
        capabilities: ModelCapabilities {
            streaming: false,
            tool_use: false,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "512-x-512/max-steps/stability.stable-diffusion-xl-v0",
        provider_id: "bedrock",
        context_window: 77,
        max_output_tokens: 0,
        capabilities: ModelCapabilities {
            streaming: false,
            tool_use: false,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "ai21.j2-mid-v1",
        provider_id: "bedrock",
        context_window: 8191,
        max_output_tokens: 8191,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: false,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "ai21.j2-ultra-v1",
        provider_id: "bedrock",
        context_window: 8191,
        max_output_tokens: 8191,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: false,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "ai21.jamba-1-5-large-v1:0",
        provider_id: "bedrock",
        context_window: 256000,
        max_output_tokens: 256000,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: false,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "ai21.jamba-1-5-mini-v1:0",
        provider_id: "bedrock",
        context_window: 256000,
        max_output_tokens: 256000,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: false,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "ai21.jamba-instruct-v1:0",
        provider_id: "bedrock",
        context_window: 70000,
        max_output_tokens: 4096,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: false,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "amazon.nova-2-multimodal-embeddings-v1:0",
        provider_id: "bedrock",
        context_window: 8172,
        max_output_tokens: 0,
        capabilities: ModelCapabilities {
            streaming: false,
            tool_use: false,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "amazon.nova-canvas-v1:0",
        provider_id: "bedrock",
        context_window: 2600,
        max_output_tokens: 0,
        capabilities: ModelCapabilities {
            streaming: false,
            tool_use: false,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "amazon.rerank-v1:0",
        provider_id: "bedrock",
        context_window: 32000,
        max_output_tokens: 32000,
        capabilities: ModelCapabilities {
            streaming: false,
            tool_use: false,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "amazon.titan-embed-image-v1",
        provider_id: "bedrock",
        context_window: 128,
        max_output_tokens: 0,
        capabilities: ModelCapabilities {
            streaming: false,
            tool_use: false,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "amazon.titan-embed-text-v1",
        provider_id: "bedrock",
        context_window: 8192,
        max_output_tokens: 0,
        capabilities: ModelCapabilities {
            streaming: false,
            tool_use: false,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "amazon.titan-embed-text-v2:0",
        provider_id: "bedrock",
        context_window: 8192,
        max_output_tokens: 0,
        capabilities: ModelCapabilities {
            streaming: false,
            tool_use: false,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "amazon.titan-image-generator-v1",
        provider_id: "bedrock",
        context_window: 0,
        max_output_tokens: 0,
        capabilities: ModelCapabilities {
            streaming: false,
            tool_use: false,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "amazon.titan-image-generator-v2",
        provider_id: "bedrock",
        context_window: 0,
        max_output_tokens: 0,
        capabilities: ModelCapabilities {
            streaming: false,
            tool_use: false,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "amazon.titan-image-generator-v2:0",
        provider_id: "bedrock",
        context_window: 0,
        max_output_tokens: 0,
        capabilities: ModelCapabilities {
            streaming: false,
            tool_use: false,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "amazon.titan-text-express-v1",
        provider_id: "bedrock",
        context_window: 42000,
        max_output_tokens: 8000,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: false,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "amazon.titan-text-lite-v1",
        provider_id: "bedrock",
        context_window: 42000,
        max_output_tokens: 4000,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: false,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "amazon.titan-text-premier-v1:0",
        provider_id: "bedrock",
        context_window: 42000,
        max_output_tokens: 32000,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: false,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "anthropic.claude-3-5-haiku-20241022-v1:0",
        provider_id: "bedrock",
        context_window: 200000,
        max_output_tokens: 8192,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "anthropic.claude-3-5-sonnet-20240620-v1:0",
        provider_id: "bedrock",
        context_window: 1000000,
        max_output_tokens: 4096,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: true,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "anthropic.claude-3-5-sonnet-20241022-v2:0",
        provider_id: "bedrock",
        context_window: 1000000,
        max_output_tokens: 8192,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: true,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "anthropic.claude-3-7-sonnet-20240620-v1:0",
        provider_id: "bedrock",
        context_window: 200000,
        max_output_tokens: 8192,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: true,
            extended_thinking: true,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "anthropic.claude-3-haiku-20240307-v1:0",
        provider_id: "bedrock",
        context_window: 200000,
        max_output_tokens: 4096,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: true,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "anthropic.claude-3-opus-20240229-v1:0",
        provider_id: "bedrock",
        context_window: 200000,
        max_output_tokens: 4096,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: true,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "anthropic.claude-3-sonnet-20240229-v1:0",
        provider_id: "bedrock",
        context_window: 200000,
        max_output_tokens: 4096,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: true,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "anthropic.claude-instant-v1",
        provider_id: "bedrock",
        context_window: 100000,
        max_output_tokens: 8191,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "anthropic.claude-mythos-preview",
        provider_id: "bedrock",
        context_window: 1000000,
        max_output_tokens: 128000,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: true,
            extended_thinking: true,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "anthropic.claude-v1",
        provider_id: "bedrock",
        context_window: 100000,
        max_output_tokens: 8191,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: false,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "anthropic.claude-v2:1",
        provider_id: "bedrock",
        context_window: 100000,
        max_output_tokens: 8191,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "ap-northeast-1/1-month-commitment/anthropic.claude-instant-v1",
        provider_id: "bedrock",
        context_window: 100000,
        max_output_tokens: 8191,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "ap-northeast-1/1-month-commitment/anthropic.claude-v1",
        provider_id: "bedrock",
        context_window: 100000,
        max_output_tokens: 8191,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: false,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "ap-northeast-1/1-month-commitment/anthropic.claude-v2:1",
        provider_id: "bedrock",
        context_window: 100000,
        max_output_tokens: 8191,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "ap-northeast-1/6-month-commitment/anthropic.claude-instant-v1",
        provider_id: "bedrock",
        context_window: 100000,
        max_output_tokens: 8191,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "ap-northeast-1/6-month-commitment/anthropic.claude-v1",
        provider_id: "bedrock",
        context_window: 100000,
        max_output_tokens: 8191,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: false,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "ap-northeast-1/6-month-commitment/anthropic.claude-v2:1",
        provider_id: "bedrock",
        context_window: 100000,
        max_output_tokens: 8191,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "ap-northeast-1/anthropic.claude-instant-v1",
        provider_id: "bedrock",
        context_window: 100000,
        max_output_tokens: 8191,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "ap-northeast-1/anthropic.claude-v1",
        provider_id: "bedrock",
        context_window: 100000,
        max_output_tokens: 8191,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "ap-northeast-1/anthropic.claude-v2:1",
        provider_id: "bedrock",
        context_window: 100000,
        max_output_tokens: 8191,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "ap-northeast-1/deepseek.v3.2",
        provider_id: "bedrock",
        context_window: 163840,
        max_output_tokens: 163840,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: false,
            extended_thinking: true,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "ap-northeast-1/minimax.minimax-m2.1",
        provider_id: "bedrock",
        context_window: 196000,
        max_output_tokens: 8192,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "ap-northeast-1/minimax.minimax-m2.5",
        provider_id: "bedrock",
        context_window: 1000000,
        max_output_tokens: 8192,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: false,
            extended_thinking: true,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "ap-northeast-1/moonshotai.kimi-k2-thinking",
        provider_id: "bedrock",
        context_window: 262144,
        max_output_tokens: 262144,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: false,
            extended_thinking: true,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "ap-northeast-1/moonshotai.kimi-k2.5",
        provider_id: "bedrock",
        context_window: 262144,
        max_output_tokens: 262144,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: true,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "ap-northeast-1/qwen.qwen3-coder-next",
        provider_id: "bedrock",
        context_window: 262144,
        max_output_tokens: 8192,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "ap-south-1/deepseek.v3.2",
        provider_id: "bedrock",
        context_window: 163840,
        max_output_tokens: 163840,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: false,
            extended_thinking: true,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "ap-south-1/meta.llama3-70b-instruct-v1:0",
        provider_id: "bedrock",
        context_window: 8192,
        max_output_tokens: 8192,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: false,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "ap-south-1/meta.llama3-8b-instruct-v1:0",
        provider_id: "bedrock",
        context_window: 8192,
        max_output_tokens: 8192,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: false,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "ap-south-1/minimax.minimax-m2.1",
        provider_id: "bedrock",
        context_window: 196000,
        max_output_tokens: 8192,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "ap-south-1/minimax.minimax-m2.5",
        provider_id: "bedrock",
        context_window: 1000000,
        max_output_tokens: 8192,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: false,
            extended_thinking: true,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "ap-south-1/moonshotai.kimi-k2-thinking",
        provider_id: "bedrock",
        context_window: 262144,
        max_output_tokens: 262144,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: false,
            extended_thinking: true,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "ap-south-1/moonshotai.kimi-k2.5",
        provider_id: "bedrock",
        context_window: 262144,
        max_output_tokens: 262144,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: true,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "ap-south-1/qwen.qwen3-coder-next",
        provider_id: "bedrock",
        context_window: 262144,
        max_output_tokens: 8192,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "ap-southeast-2/minimax.minimax-m2.5",
        provider_id: "bedrock",
        context_window: 1000000,
        max_output_tokens: 8192,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: false,
            extended_thinking: true,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "ap-southeast-3/deepseek.v3.2",
        provider_id: "bedrock",
        context_window: 163840,
        max_output_tokens: 163840,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: false,
            extended_thinking: true,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "ap-southeast-3/minimax.minimax-m2.1",
        provider_id: "bedrock",
        context_window: 196000,
        max_output_tokens: 8192,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "ap-southeast-3/minimax.minimax-m2.5",
        provider_id: "bedrock",
        context_window: 1000000,
        max_output_tokens: 8192,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: false,
            extended_thinking: true,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "ap-southeast-3/moonshotai.kimi-k2.5",
        provider_id: "bedrock",
        context_window: 262144,
        max_output_tokens: 262144,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: true,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "ap-southeast-3/qwen.qwen3-coder-next",
        provider_id: "bedrock",
        context_window: 262144,
        max_output_tokens: 8192,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "apac.anthropic.claude-3-5-sonnet-20240620-v1:0",
        provider_id: "bedrock",
        context_window: 200000,
        max_output_tokens: 4096,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: true,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "apac.anthropic.claude-3-5-sonnet-20241022-v2:0",
        provider_id: "bedrock",
        context_window: 200000,
        max_output_tokens: 8192,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: true,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "apac.anthropic.claude-3-haiku-20240307-v1:0",
        provider_id: "bedrock",
        context_window: 200000,
        max_output_tokens: 4096,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: true,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "apac.anthropic.claude-3-sonnet-20240229-v1:0",
        provider_id: "bedrock",
        context_window: 200000,
        max_output_tokens: 4096,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: true,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "ca-central-1/meta.llama3-70b-instruct-v1:0",
        provider_id: "bedrock",
        context_window: 8192,
        max_output_tokens: 8192,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: false,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "ca-central-1/meta.llama3-8b-instruct-v1:0",
        provider_id: "bedrock",
        context_window: 8192,
        max_output_tokens: 8192,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: false,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "claude-sonnet-4-5-20250929-v1:0",
        provider_id: "bedrock",
        context_window: 200000,
        max_output_tokens: 64000,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: true,
            extended_thinking: true,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "cohere.command-light-text-v14",
        provider_id: "bedrock",
        context_window: 4096,
        max_output_tokens: 4096,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "cohere.command-r-plus-v1:0",
        provider_id: "bedrock",
        context_window: 128000,
        max_output_tokens: 4096,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "cohere.command-r-v1:0",
        provider_id: "bedrock",
        context_window: 128000,
        max_output_tokens: 4096,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "cohere.command-text-v14",
        provider_id: "bedrock",
        context_window: 4096,
        max_output_tokens: 4096,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "cohere.embed-english-v3",
        provider_id: "bedrock",
        context_window: 512,
        max_output_tokens: 0,
        capabilities: ModelCapabilities {
            streaming: false,
            tool_use: false,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "cohere.embed-multilingual-v3",
        provider_id: "bedrock",
        context_window: 512,
        max_output_tokens: 0,
        capabilities: ModelCapabilities {
            streaming: false,
            tool_use: false,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "cohere.embed-v4:0",
        provider_id: "bedrock",
        context_window: 128000,
        max_output_tokens: 0,
        capabilities: ModelCapabilities {
            streaming: false,
            tool_use: false,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "cohere.rerank-v3-5:0",
        provider_id: "bedrock",
        context_window: 32000,
        max_output_tokens: 32000,
        capabilities: ModelCapabilities {
            streaming: false,
            tool_use: false,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "eu-central-1/1-month-commitment/anthropic.claude-instant-v1",
        provider_id: "bedrock",
        context_window: 100000,
        max_output_tokens: 8191,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "eu-central-1/1-month-commitment/anthropic.claude-v1",
        provider_id: "bedrock",
        context_window: 100000,
        max_output_tokens: 8191,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: false,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "eu-central-1/1-month-commitment/anthropic.claude-v2:1",
        provider_id: "bedrock",
        context_window: 100000,
        max_output_tokens: 8191,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "eu-central-1/6-month-commitment/anthropic.claude-instant-v1",
        provider_id: "bedrock",
        context_window: 100000,
        max_output_tokens: 8191,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "eu-central-1/6-month-commitment/anthropic.claude-v1",
        provider_id: "bedrock",
        context_window: 100000,
        max_output_tokens: 8191,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: false,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "eu-central-1/6-month-commitment/anthropic.claude-v2:1",
        provider_id: "bedrock",
        context_window: 100000,
        max_output_tokens: 8191,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "eu-central-1/anthropic.claude-instant-v1",
        provider_id: "bedrock",
        context_window: 100000,
        max_output_tokens: 8191,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "eu-central-1/anthropic.claude-v1",
        provider_id: "bedrock",
        context_window: 100000,
        max_output_tokens: 8191,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: false,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "eu-central-1/anthropic.claude-v2:1",
        provider_id: "bedrock",
        context_window: 100000,
        max_output_tokens: 8191,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "eu-central-1/minimax.minimax-m2.1",
        provider_id: "bedrock",
        context_window: 196000,
        max_output_tokens: 8192,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "eu-central-1/minimax.minimax-m2.5",
        provider_id: "bedrock",
        context_window: 1000000,
        max_output_tokens: 8192,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: false,
            extended_thinking: true,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "eu-central-1/qwen.qwen3-coder-next",
        provider_id: "bedrock",
        context_window: 262144,
        max_output_tokens: 8192,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "eu-north-1/deepseek.v3.2",
        provider_id: "bedrock",
        context_window: 163840,
        max_output_tokens: 163840,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: false,
            extended_thinking: true,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "eu-north-1/minimax.minimax-m2.1",
        provider_id: "bedrock",
        context_window: 196000,
        max_output_tokens: 8192,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "eu-north-1/minimax.minimax-m2.5",
        provider_id: "bedrock",
        context_window: 1000000,
        max_output_tokens: 8192,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: false,
            extended_thinking: true,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "eu-north-1/moonshotai.kimi-k2.5",
        provider_id: "bedrock",
        context_window: 262144,
        max_output_tokens: 262144,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: true,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "eu-south-1/minimax.minimax-m2.1",
        provider_id: "bedrock",
        context_window: 196000,
        max_output_tokens: 8192,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "eu-south-1/minimax.minimax-m2.5",
        provider_id: "bedrock",
        context_window: 1000000,
        max_output_tokens: 8192,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: false,
            extended_thinking: true,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "eu-south-1/qwen.qwen3-coder-next",
        provider_id: "bedrock",
        context_window: 262144,
        max_output_tokens: 8192,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "eu-west-1/meta.llama3-70b-instruct-v1:0",
        provider_id: "bedrock",
        context_window: 8192,
        max_output_tokens: 8192,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: false,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "eu-west-1/meta.llama3-8b-instruct-v1:0",
        provider_id: "bedrock",
        context_window: 8192,
        max_output_tokens: 8192,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: false,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "eu-west-1/minimax.minimax-m2.1",
        provider_id: "bedrock",
        context_window: 196000,
        max_output_tokens: 8192,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "eu-west-1/minimax.minimax-m2.5",
        provider_id: "bedrock",
        context_window: 1000000,
        max_output_tokens: 8192,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: false,
            extended_thinking: true,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "eu-west-1/qwen.qwen3-coder-next",
        provider_id: "bedrock",
        context_window: 262144,
        max_output_tokens: 8192,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "eu-west-2/meta.llama3-70b-instruct-v1:0",
        provider_id: "bedrock",
        context_window: 8192,
        max_output_tokens: 8192,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: false,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "eu-west-2/meta.llama3-8b-instruct-v1:0",
        provider_id: "bedrock",
        context_window: 8192,
        max_output_tokens: 8192,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: false,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "eu-west-2/minimax.minimax-m2.1",
        provider_id: "bedrock",
        context_window: 196000,
        max_output_tokens: 8192,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "eu-west-2/minimax.minimax-m2.5",
        provider_id: "bedrock",
        context_window: 1000000,
        max_output_tokens: 8192,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: false,
            extended_thinking: true,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "eu-west-2/qwen.qwen3-coder-next",
        provider_id: "bedrock",
        context_window: 262144,
        max_output_tokens: 8192,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "eu-west-3/mistral.mistral-7b-instruct-v0:2",
        provider_id: "bedrock",
        context_window: 32000,
        max_output_tokens: 8191,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "eu-west-3/mistral.mistral-large-2402-v1:0",
        provider_id: "bedrock",
        context_window: 32000,
        max_output_tokens: 8191,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "eu-west-3/mistral.mixtral-8x7b-instruct-v0:1",
        provider_id: "bedrock",
        context_window: 32000,
        max_output_tokens: 8191,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "eu.anthropic.claude-3-5-haiku-20241022-v1:0",
        provider_id: "bedrock",
        context_window: 200000,
        max_output_tokens: 8192,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "eu.anthropic.claude-3-5-sonnet-20240620-v1:0",
        provider_id: "bedrock",
        context_window: 200000,
        max_output_tokens: 4096,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: true,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "eu.anthropic.claude-3-5-sonnet-20241022-v2:0",
        provider_id: "bedrock",
        context_window: 200000,
        max_output_tokens: 8192,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: true,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "eu.anthropic.claude-3-7-sonnet-20250219-v1:0",
        provider_id: "bedrock",
        context_window: 200000,
        max_output_tokens: 8192,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: true,
            extended_thinking: true,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "eu.anthropic.claude-3-haiku-20240307-v1:0",
        provider_id: "bedrock",
        context_window: 200000,
        max_output_tokens: 4096,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: true,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "eu.anthropic.claude-3-opus-20240229-v1:0",
        provider_id: "bedrock",
        context_window: 200000,
        max_output_tokens: 4096,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: true,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "eu.anthropic.claude-3-sonnet-20240229-v1:0",
        provider_id: "bedrock",
        context_window: 200000,
        max_output_tokens: 4096,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: true,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "eu.meta.llama3-2-1b-instruct-v1:0",
        provider_id: "bedrock",
        context_window: 128000,
        max_output_tokens: 4096,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "eu.meta.llama3-2-3b-instruct-v1:0",
        provider_id: "bedrock",
        context_window: 128000,
        max_output_tokens: 4096,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "eu.twelvelabs.marengo-embed-2-7-v1:0",
        provider_id: "bedrock",
        context_window: 77,
        max_output_tokens: 0,
        capabilities: ModelCapabilities {
            streaming: false,
            tool_use: false,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "eu.twelvelabs.pegasus-1-2-v1:0",
        provider_id: "bedrock",
        context_window: 0,
        max_output_tokens: 0,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: false,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "invoke/anthropic.claude-3-5-sonnet-20240620-v1:0",
        provider_id: "bedrock",
        context_window: 200000,
        max_output_tokens: 4096,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: true,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "max-x-max/50-steps/stability.stable-diffusion-xl-v0",
        provider_id: "bedrock",
        context_window: 77,
        max_output_tokens: 0,
        capabilities: ModelCapabilities {
            streaming: false,
            tool_use: false,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "max-x-max/max-steps/stability.stable-diffusion-xl-v0",
        provider_id: "bedrock",
        context_window: 77,
        max_output_tokens: 0,
        capabilities: ModelCapabilities {
            streaming: false,
            tool_use: false,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "meta.llama2-13b-chat-v1",
        provider_id: "bedrock",
        context_window: 4096,
        max_output_tokens: 4096,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: false,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "meta.llama2-70b-chat-v1",
        provider_id: "bedrock",
        context_window: 4096,
        max_output_tokens: 4096,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: false,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "meta.llama3-1-405b-instruct-v1:0",
        provider_id: "bedrock",
        context_window: 128000,
        max_output_tokens: 4096,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "meta.llama3-1-70b-instruct-v1:0",
        provider_id: "bedrock",
        context_window: 128000,
        max_output_tokens: 2048,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "meta.llama3-1-8b-instruct-v1:0",
        provider_id: "bedrock",
        context_window: 128000,
        max_output_tokens: 2048,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "meta.llama3-2-11b-instruct-v1:0",
        provider_id: "bedrock",
        context_window: 128000,
        max_output_tokens: 4096,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: true,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "meta.llama3-2-1b-instruct-v1:0",
        provider_id: "bedrock",
        context_window: 128000,
        max_output_tokens: 4096,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "meta.llama3-2-3b-instruct-v1:0",
        provider_id: "bedrock",
        context_window: 128000,
        max_output_tokens: 4096,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "meta.llama3-2-90b-instruct-v1:0",
        provider_id: "bedrock",
        context_window: 128000,
        max_output_tokens: 4096,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: true,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "meta.llama3-70b-instruct-v1:0",
        provider_id: "bedrock",
        context_window: 8192,
        max_output_tokens: 8192,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: false,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "meta.llama3-8b-instruct-v1:0",
        provider_id: "bedrock",
        context_window: 8192,
        max_output_tokens: 8192,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: false,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "mistral.mistral-7b-instruct-v0:2",
        provider_id: "bedrock",
        context_window: 32000,
        max_output_tokens: 8191,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "mistral.mistral-large-2402-v1:0",
        provider_id: "bedrock",
        context_window: 32000,
        max_output_tokens: 8191,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "mistral.mistral-large-2407-v1:0",
        provider_id: "bedrock",
        context_window: 128000,
        max_output_tokens: 8191,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "mistral.mistral-small-2402-v1:0",
        provider_id: "bedrock",
        context_window: 32000,
        max_output_tokens: 8191,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "mistral.mixtral-8x7b-instruct-v0:1",
        provider_id: "bedrock",
        context_window: 32000,
        max_output_tokens: 8191,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "moonshotai.kimi-k2-thinking",
        provider_id: "bedrock",
        context_window: 262144,
        max_output_tokens: 262144,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: false,
            extended_thinking: true,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "moonshotai.kimi-k2.5",
        provider_id: "bedrock",
        context_window: 262144,
        max_output_tokens: 262144,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: true,
            extended_thinking: true,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "sa-east-1/deepseek.v3.2",
        provider_id: "bedrock",
        context_window: 163840,
        max_output_tokens: 163840,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: false,
            extended_thinking: true,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "sa-east-1/meta.llama3-70b-instruct-v1:0",
        provider_id: "bedrock",
        context_window: 8192,
        max_output_tokens: 8192,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: false,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "sa-east-1/meta.llama3-8b-instruct-v1:0",
        provider_id: "bedrock",
        context_window: 8192,
        max_output_tokens: 8192,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: false,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "sa-east-1/minimax.minimax-m2.1",
        provider_id: "bedrock",
        context_window: 196000,
        max_output_tokens: 8192,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "sa-east-1/minimax.minimax-m2.5",
        provider_id: "bedrock",
        context_window: 1000000,
        max_output_tokens: 8192,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: false,
            extended_thinking: true,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "sa-east-1/moonshotai.kimi-k2-thinking",
        provider_id: "bedrock",
        context_window: 262144,
        max_output_tokens: 262144,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: false,
            extended_thinking: true,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "sa-east-1/moonshotai.kimi-k2.5",
        provider_id: "bedrock",
        context_window: 262144,
        max_output_tokens: 262144,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: true,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "sa-east-1/qwen.qwen3-coder-next",
        provider_id: "bedrock",
        context_window: 262144,
        max_output_tokens: 8192,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "stability.sd3-5-large-v1:0",
        provider_id: "bedrock",
        context_window: 77,
        max_output_tokens: 0,
        capabilities: ModelCapabilities {
            streaming: false,
            tool_use: false,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "stability.sd3-large-v1:0",
        provider_id: "bedrock",
        context_window: 77,
        max_output_tokens: 0,
        capabilities: ModelCapabilities {
            streaming: false,
            tool_use: false,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "stability.stable-conservative-upscale-v1:0",
        provider_id: "bedrock",
        context_window: 77,
        max_output_tokens: 0,
        capabilities: ModelCapabilities {
            streaming: false,
            tool_use: false,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "stability.stable-creative-upscale-v1:0",
        provider_id: "bedrock",
        context_window: 77,
        max_output_tokens: 0,
        capabilities: ModelCapabilities {
            streaming: false,
            tool_use: false,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "stability.stable-fast-upscale-v1:0",
        provider_id: "bedrock",
        context_window: 77,
        max_output_tokens: 0,
        capabilities: ModelCapabilities {
            streaming: false,
            tool_use: false,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "stability.stable-image-control-sketch-v1:0",
        provider_id: "bedrock",
        context_window: 77,
        max_output_tokens: 0,
        capabilities: ModelCapabilities {
            streaming: false,
            tool_use: false,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "stability.stable-image-control-structure-v1:0",
        provider_id: "bedrock",
        context_window: 77,
        max_output_tokens: 0,
        capabilities: ModelCapabilities {
            streaming: false,
            tool_use: false,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "stability.stable-image-core-v1:0",
        provider_id: "bedrock",
        context_window: 77,
        max_output_tokens: 0,
        capabilities: ModelCapabilities {
            streaming: false,
            tool_use: false,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "stability.stable-image-core-v1:1",
        provider_id: "bedrock",
        context_window: 77,
        max_output_tokens: 0,
        capabilities: ModelCapabilities {
            streaming: false,
            tool_use: false,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "stability.stable-image-erase-object-v1:0",
        provider_id: "bedrock",
        context_window: 77,
        max_output_tokens: 0,
        capabilities: ModelCapabilities {
            streaming: false,
            tool_use: false,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "stability.stable-image-inpaint-v1:0",
        provider_id: "bedrock",
        context_window: 77,
        max_output_tokens: 0,
        capabilities: ModelCapabilities {
            streaming: false,
            tool_use: false,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "stability.stable-image-remove-background-v1:0",
        provider_id: "bedrock",
        context_window: 77,
        max_output_tokens: 0,
        capabilities: ModelCapabilities {
            streaming: false,
            tool_use: false,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "stability.stable-image-search-recolor-v1:0",
        provider_id: "bedrock",
        context_window: 77,
        max_output_tokens: 0,
        capabilities: ModelCapabilities {
            streaming: false,
            tool_use: false,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "stability.stable-image-search-replace-v1:0",
        provider_id: "bedrock",
        context_window: 77,
        max_output_tokens: 0,
        capabilities: ModelCapabilities {
            streaming: false,
            tool_use: false,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "stability.stable-image-style-guide-v1:0",
        provider_id: "bedrock",
        context_window: 77,
        max_output_tokens: 0,
        capabilities: ModelCapabilities {
            streaming: false,
            tool_use: false,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "stability.stable-image-ultra-v1:0",
        provider_id: "bedrock",
        context_window: 77,
        max_output_tokens: 0,
        capabilities: ModelCapabilities {
            streaming: false,
            tool_use: false,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "stability.stable-image-ultra-v1:1",
        provider_id: "bedrock",
        context_window: 77,
        max_output_tokens: 0,
        capabilities: ModelCapabilities {
            streaming: false,
            tool_use: false,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "stability.stable-outpaint-v1:0",
        provider_id: "bedrock",
        context_window: 77,
        max_output_tokens: 0,
        capabilities: ModelCapabilities {
            streaming: false,
            tool_use: false,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "stability.stable-style-transfer-v1:0",
        provider_id: "bedrock",
        context_window: 77,
        max_output_tokens: 0,
        capabilities: ModelCapabilities {
            streaming: false,
            tool_use: false,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "twelvelabs.marengo-embed-2-7-v1:0",
        provider_id: "bedrock",
        context_window: 77,
        max_output_tokens: 0,
        capabilities: ModelCapabilities {
            streaming: false,
            tool_use: false,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "twelvelabs.pegasus-1-2-v1:0",
        provider_id: "bedrock",
        context_window: 0,
        max_output_tokens: 0,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: false,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "us-east-1/1-month-commitment/anthropic.claude-instant-v1",
        provider_id: "bedrock",
        context_window: 100000,
        max_output_tokens: 8191,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "us-east-1/1-month-commitment/anthropic.claude-v1",
        provider_id: "bedrock",
        context_window: 100000,
        max_output_tokens: 8191,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: false,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "us-east-1/1-month-commitment/anthropic.claude-v2:1",
        provider_id: "bedrock",
        context_window: 100000,
        max_output_tokens: 8191,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "us-east-1/6-month-commitment/anthropic.claude-instant-v1",
        provider_id: "bedrock",
        context_window: 100000,
        max_output_tokens: 8191,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "us-east-1/6-month-commitment/anthropic.claude-v1",
        provider_id: "bedrock",
        context_window: 100000,
        max_output_tokens: 8191,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: false,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "us-east-1/6-month-commitment/anthropic.claude-v2:1",
        provider_id: "bedrock",
        context_window: 100000,
        max_output_tokens: 8191,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "us-east-1/anthropic.claude-instant-v1",
        provider_id: "bedrock",
        context_window: 100000,
        max_output_tokens: 8191,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "us-east-1/anthropic.claude-v1",
        provider_id: "bedrock",
        context_window: 100000,
        max_output_tokens: 8191,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "us-east-1/anthropic.claude-v2:1",
        provider_id: "bedrock",
        context_window: 100000,
        max_output_tokens: 8191,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "us-east-1/deepseek.v3.2",
        provider_id: "bedrock",
        context_window: 163840,
        max_output_tokens: 163840,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: false,
            extended_thinking: true,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "us-east-1/meta.llama3-70b-instruct-v1:0",
        provider_id: "bedrock",
        context_window: 8192,
        max_output_tokens: 8192,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: false,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "us-east-1/meta.llama3-8b-instruct-v1:0",
        provider_id: "bedrock",
        context_window: 8192,
        max_output_tokens: 8192,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: false,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "us-east-1/minimax.minimax-m2.1",
        provider_id: "bedrock",
        context_window: 196000,
        max_output_tokens: 8192,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "us-east-1/minimax.minimax-m2.5",
        provider_id: "bedrock",
        context_window: 1000000,
        max_output_tokens: 8192,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "us-east-1/mistral.mistral-7b-instruct-v0:2",
        provider_id: "bedrock",
        context_window: 32000,
        max_output_tokens: 8191,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "us-east-1/mistral.mistral-large-2402-v1:0",
        provider_id: "bedrock",
        context_window: 32000,
        max_output_tokens: 8191,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "us-east-1/mistral.mixtral-8x7b-instruct-v0:1",
        provider_id: "bedrock",
        context_window: 32000,
        max_output_tokens: 8191,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "us-east-1/moonshotai.kimi-k2-thinking",
        provider_id: "bedrock",
        context_window: 262144,
        max_output_tokens: 262144,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: false,
            extended_thinking: true,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "us-east-1/moonshotai.kimi-k2.5",
        provider_id: "bedrock",
        context_window: 262144,
        max_output_tokens: 262144,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: true,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "us-east-1/qwen.qwen3-coder-next",
        provider_id: "bedrock",
        context_window: 262144,
        max_output_tokens: 8192,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "us-east-1/zai.glm-5",
        provider_id: "bedrock",
        context_window: 200000,
        max_output_tokens: 128000,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: false,
            extended_thinking: true,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "us-east-2/deepseek.v3.2",
        provider_id: "bedrock",
        context_window: 163840,
        max_output_tokens: 163840,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: false,
            extended_thinking: true,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "us-east-2/minimax.minimax-m2.1",
        provider_id: "bedrock",
        context_window: 196000,
        max_output_tokens: 8192,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "us-east-2/minimax.minimax-m2.5",
        provider_id: "bedrock",
        context_window: 1000000,
        max_output_tokens: 8192,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: false,
            extended_thinking: true,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "us-east-2/moonshotai.kimi-k2-thinking",
        provider_id: "bedrock",
        context_window: 262144,
        max_output_tokens: 262144,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: false,
            extended_thinking: true,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "us-east-2/moonshotai.kimi-k2.5",
        provider_id: "bedrock",
        context_window: 262144,
        max_output_tokens: 262144,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: true,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "us-east-2/qwen.qwen3-coder-next",
        provider_id: "bedrock",
        context_window: 262144,
        max_output_tokens: 8192,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "us-gov-east-1/amazon.nova-pro-v1:0",
        provider_id: "bedrock",
        context_window: 300000,
        max_output_tokens: 10000,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: true,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "us-gov-east-1/amazon.titan-embed-text-v1",
        provider_id: "bedrock",
        context_window: 8192,
        max_output_tokens: 0,
        capabilities: ModelCapabilities {
            streaming: false,
            tool_use: false,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "us-gov-east-1/amazon.titan-embed-text-v2:0",
        provider_id: "bedrock",
        context_window: 8192,
        max_output_tokens: 0,
        capabilities: ModelCapabilities {
            streaming: false,
            tool_use: false,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "us-gov-east-1/amazon.titan-text-express-v1",
        provider_id: "bedrock",
        context_window: 42000,
        max_output_tokens: 8000,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: false,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "us-gov-east-1/amazon.titan-text-lite-v1",
        provider_id: "bedrock",
        context_window: 42000,
        max_output_tokens: 4000,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: false,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "us-gov-east-1/amazon.titan-text-premier-v1:0",
        provider_id: "bedrock",
        context_window: 42000,
        max_output_tokens: 32000,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: false,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "us-gov-east-1/anthropic.claude-3-5-sonnet-20240620-v1:0",
        provider_id: "bedrock",
        context_window: 200000,
        max_output_tokens: 8192,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: true,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "us-gov-east-1/anthropic.claude-3-haiku-20240307-v1:0",
        provider_id: "bedrock",
        context_window: 200000,
        max_output_tokens: 4096,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: true,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "us-gov-east-1/anthropic.claude-haiku-4-5-20251001-v1:0",
        provider_id: "bedrock",
        context_window: 200000,
        max_output_tokens: 64000,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: true,
            extended_thinking: true,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "us-gov-east-1/anthropic.claude-sonnet-4-5-20250929-v1:0",
        provider_id: "bedrock",
        context_window: 200000,
        max_output_tokens: 8192,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: true,
            extended_thinking: true,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "us-gov-east-1/claude-sonnet-4-5-20250929-v1:0",
        provider_id: "bedrock",
        context_window: 200000,
        max_output_tokens: 8192,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: true,
            extended_thinking: true,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "us-gov-east-1/meta.llama3-70b-instruct-v1:0",
        provider_id: "bedrock",
        context_window: 8000,
        max_output_tokens: 2048,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: false,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "us-gov-east-1/meta.llama3-8b-instruct-v1:0",
        provider_id: "bedrock",
        context_window: 8000,
        max_output_tokens: 2048,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: false,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "us-gov-west-1/amazon.nova-pro-v1:0",
        provider_id: "bedrock",
        context_window: 300000,
        max_output_tokens: 10000,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: true,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "us-gov-west-1/amazon.titan-embed-text-v1",
        provider_id: "bedrock",
        context_window: 8192,
        max_output_tokens: 0,
        capabilities: ModelCapabilities {
            streaming: false,
            tool_use: false,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "us-gov-west-1/amazon.titan-embed-text-v2:0",
        provider_id: "bedrock",
        context_window: 8192,
        max_output_tokens: 0,
        capabilities: ModelCapabilities {
            streaming: false,
            tool_use: false,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "us-gov-west-1/amazon.titan-text-express-v1",
        provider_id: "bedrock",
        context_window: 42000,
        max_output_tokens: 8000,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: false,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "us-gov-west-1/amazon.titan-text-lite-v1",
        provider_id: "bedrock",
        context_window: 42000,
        max_output_tokens: 4000,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: false,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "us-gov-west-1/amazon.titan-text-premier-v1:0",
        provider_id: "bedrock",
        context_window: 42000,
        max_output_tokens: 32000,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: false,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "us-gov-west-1/anthropic.claude-3-5-sonnet-20240620-v1:0",
        provider_id: "bedrock",
        context_window: 200000,
        max_output_tokens: 8192,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: true,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "us-gov-west-1/anthropic.claude-3-7-sonnet-20250219-v1:0",
        provider_id: "bedrock",
        context_window: 200000,
        max_output_tokens: 8192,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: true,
            extended_thinking: true,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "us-gov-west-1/anthropic.claude-3-haiku-20240307-v1:0",
        provider_id: "bedrock",
        context_window: 200000,
        max_output_tokens: 4096,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: true,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "us-gov-west-1/anthropic.claude-haiku-4-5-20251001-v1:0",
        provider_id: "bedrock",
        context_window: 200000,
        max_output_tokens: 64000,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: true,
            extended_thinking: true,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "us-gov-west-1/anthropic.claude-sonnet-4-5-20250929-v1:0",
        provider_id: "bedrock",
        context_window: 200000,
        max_output_tokens: 8192,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: true,
            extended_thinking: true,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "us-gov-west-1/claude-sonnet-4-5-20250929-v1:0",
        provider_id: "bedrock",
        context_window: 200000,
        max_output_tokens: 8192,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: true,
            extended_thinking: true,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "us-gov-west-1/meta.llama3-70b-instruct-v1:0",
        provider_id: "bedrock",
        context_window: 8000,
        max_output_tokens: 2048,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: false,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "us-gov-west-1/meta.llama3-8b-instruct-v1:0",
        provider_id: "bedrock",
        context_window: 8000,
        max_output_tokens: 2048,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: false,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "us-west-1/meta.llama3-70b-instruct-v1:0",
        provider_id: "bedrock",
        context_window: 8192,
        max_output_tokens: 8192,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: false,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "us-west-1/meta.llama3-8b-instruct-v1:0",
        provider_id: "bedrock",
        context_window: 8192,
        max_output_tokens: 8192,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: false,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "us-west-2/1-month-commitment/anthropic.claude-instant-v1",
        provider_id: "bedrock",
        context_window: 100000,
        max_output_tokens: 8191,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "us-west-2/1-month-commitment/anthropic.claude-v1",
        provider_id: "bedrock",
        context_window: 100000,
        max_output_tokens: 8191,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: false,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "us-west-2/1-month-commitment/anthropic.claude-v2:1",
        provider_id: "bedrock",
        context_window: 100000,
        max_output_tokens: 8191,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "us-west-2/6-month-commitment/anthropic.claude-instant-v1",
        provider_id: "bedrock",
        context_window: 100000,
        max_output_tokens: 8191,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "us-west-2/6-month-commitment/anthropic.claude-v1",
        provider_id: "bedrock",
        context_window: 100000,
        max_output_tokens: 8191,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: false,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "us-west-2/6-month-commitment/anthropic.claude-v2:1",
        provider_id: "bedrock",
        context_window: 100000,
        max_output_tokens: 8191,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "us-west-2/anthropic.claude-instant-v1",
        provider_id: "bedrock",
        context_window: 100000,
        max_output_tokens: 8191,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "us-west-2/anthropic.claude-v1",
        provider_id: "bedrock",
        context_window: 100000,
        max_output_tokens: 8191,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "us-west-2/anthropic.claude-v2:1",
        provider_id: "bedrock",
        context_window: 100000,
        max_output_tokens: 8191,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "us-west-2/deepseek.v3.2",
        provider_id: "bedrock",
        context_window: 163840,
        max_output_tokens: 163840,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: false,
            extended_thinking: true,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "us-west-2/minimax.minimax-m2.1",
        provider_id: "bedrock",
        context_window: 196000,
        max_output_tokens: 8192,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "us-west-2/minimax.minimax-m2.5",
        provider_id: "bedrock",
        context_window: 1000000,
        max_output_tokens: 8192,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "us-west-2/mistral.mistral-7b-instruct-v0:2",
        provider_id: "bedrock",
        context_window: 32000,
        max_output_tokens: 8191,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "us-west-2/mistral.mistral-large-2402-v1:0",
        provider_id: "bedrock",
        context_window: 32000,
        max_output_tokens: 8191,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "us-west-2/mistral.mixtral-8x7b-instruct-v0:1",
        provider_id: "bedrock",
        context_window: 32000,
        max_output_tokens: 8191,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "us-west-2/moonshotai.kimi-k2-thinking",
        provider_id: "bedrock",
        context_window: 262144,
        max_output_tokens: 262144,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: false,
            extended_thinking: true,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "us-west-2/moonshotai.kimi-k2.5",
        provider_id: "bedrock",
        context_window: 262144,
        max_output_tokens: 262144,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: true,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "us-west-2/qwen.qwen3-coder-next",
        provider_id: "bedrock",
        context_window: 262144,
        max_output_tokens: 8192,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "us-west-2/zai.glm-5",
        provider_id: "bedrock",
        context_window: 200000,
        max_output_tokens: 128000,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: false,
            extended_thinking: true,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "us.amazon.nova-canvas-v1:0",
        provider_id: "bedrock",
        context_window: 2600,
        max_output_tokens: 0,
        capabilities: ModelCapabilities {
            streaming: false,
            tool_use: false,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "us.anthropic.claude-3-5-haiku-20241022-v1:0",
        provider_id: "bedrock",
        context_window: 200000,
        max_output_tokens: 8192,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "us.anthropic.claude-3-5-sonnet-20240620-v1:0",
        provider_id: "bedrock",
        context_window: 200000,
        max_output_tokens: 4096,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: true,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "us.anthropic.claude-3-5-sonnet-20241022-v2:0",
        provider_id: "bedrock",
        context_window: 200000,
        max_output_tokens: 8192,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: true,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "us.anthropic.claude-3-haiku-20240307-v1:0",
        provider_id: "bedrock",
        context_window: 200000,
        max_output_tokens: 4096,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: true,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "us.anthropic.claude-3-opus-20240229-v1:0",
        provider_id: "bedrock",
        context_window: 200000,
        max_output_tokens: 4096,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: true,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "us.anthropic.claude-3-sonnet-20240229-v1:0",
        provider_id: "bedrock",
        context_window: 200000,
        max_output_tokens: 4096,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: true,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "us.meta.llama3-1-405b-instruct-v1:0",
        provider_id: "bedrock",
        context_window: 128000,
        max_output_tokens: 4096,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "us.meta.llama3-1-70b-instruct-v1:0",
        provider_id: "bedrock",
        context_window: 128000,
        max_output_tokens: 2048,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "us.meta.llama3-1-8b-instruct-v1:0",
        provider_id: "bedrock",
        context_window: 128000,
        max_output_tokens: 2048,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "us.meta.llama3-2-11b-instruct-v1:0",
        provider_id: "bedrock",
        context_window: 128000,
        max_output_tokens: 4096,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: true,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "us.meta.llama3-2-1b-instruct-v1:0",
        provider_id: "bedrock",
        context_window: 128000,
        max_output_tokens: 4096,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "us.meta.llama3-2-3b-instruct-v1:0",
        provider_id: "bedrock",
        context_window: 128000,
        max_output_tokens: 4096,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "us.meta.llama3-2-90b-instruct-v1:0",
        provider_id: "bedrock",
        context_window: 128000,
        max_output_tokens: 4096,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: true,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "us.twelvelabs.marengo-embed-2-7-v1:0",
        provider_id: "bedrock",
        context_window: 77,
        max_output_tokens: 0,
        capabilities: ModelCapabilities {
            streaming: false,
            tool_use: false,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "us.twelvelabs.pegasus-1-2-v1:0",
        provider_id: "bedrock",
        context_window: 0,
        max_output_tokens: 0,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: false,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
];

pub const PROVIDER_BEDROCK_CONVERSE: ProviderDef = ProviderDef {
    id: "bedrock_converse",
    display_name: "AWS Bedrock",
    default_base_url: "",
    protocol: ProviderProtocol::BedrockNative,
    auth: AuthKind::AwsSigV4,
    status: ProviderStatus::Wired,
    env_vars: &["AWS_ACCESS_KEY_ID", "AWS_SECRET_ACCESS_KEY", "AWS_REGION"],
    litellm_prefix: "bedrock_converse/",
    capabilities: ProviderCapabilities {
        chat_completions: true,
        streaming: true,
        tool_use: true,
        embeddings: false,
        vision: true,
        batch: false,
    },
};

pub const MODELS_BEDROCK_CONVERSE: &[ModelDef] = &[
    ModelDef {
        id: "amazon.nova-2-lite-v1:0",
        provider_id: "bedrock_converse",
        context_window: 1000000,
        max_output_tokens: 64000,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: true,
            extended_thinking: true,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "amazon.nova-2-pro-preview-20251202-v1:0",
        provider_id: "bedrock_converse",
        context_window: 1000000,
        max_output_tokens: 64000,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: true,
            extended_thinking: true,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "amazon.nova-lite-v1:0",
        provider_id: "bedrock_converse",
        context_window: 300000,
        max_output_tokens: 10000,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: true,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "amazon.nova-micro-v1:0",
        provider_id: "bedrock_converse",
        context_window: 128000,
        max_output_tokens: 10000,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "amazon.nova-pro-v1:0",
        provider_id: "bedrock_converse",
        context_window: 300000,
        max_output_tokens: 10000,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: true,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "anthropic.claude-3-7-sonnet-20250219-v1:0",
        provider_id: "bedrock_converse",
        context_window: 200000,
        max_output_tokens: 8192,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: true,
            extended_thinking: true,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "anthropic.claude-haiku-4-5-20251001-v1:0",
        provider_id: "bedrock_converse",
        context_window: 200000,
        max_output_tokens: 64000,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: true,
            extended_thinking: true,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "anthropic.claude-haiku-4-5@20251001",
        provider_id: "bedrock_converse",
        context_window: 200000,
        max_output_tokens: 64000,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: true,
            extended_thinking: true,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "anthropic.claude-opus-4-1-20250805-v1:0",
        provider_id: "bedrock_converse",
        context_window: 200000,
        max_output_tokens: 32000,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: true,
            extended_thinking: true,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "anthropic.claude-opus-4-20250514-v1:0",
        provider_id: "bedrock_converse",
        context_window: 200000,
        max_output_tokens: 32000,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: true,
            extended_thinking: true,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "anthropic.claude-opus-4-5-20251101-v1:0",
        provider_id: "bedrock_converse",
        context_window: 200000,
        max_output_tokens: 64000,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: true,
            extended_thinking: true,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "anthropic.claude-opus-4-6-v1",
        provider_id: "bedrock_converse",
        context_window: 1000000,
        max_output_tokens: 128000,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: true,
            extended_thinking: true,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "anthropic.claude-opus-4-7",
        provider_id: "bedrock_converse",
        context_window: 1000000,
        max_output_tokens: 128000,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: true,
            extended_thinking: true,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "anthropic.claude-sonnet-4-20250514-v1:0",
        provider_id: "bedrock_converse",
        context_window: 1000000,
        max_output_tokens: 64000,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: true,
            extended_thinking: true,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "anthropic.claude-sonnet-4-5-20250929-v1:0",
        provider_id: "bedrock_converse",
        context_window: 200000,
        max_output_tokens: 64000,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: true,
            extended_thinking: true,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "anthropic.claude-sonnet-4-6",
        provider_id: "bedrock_converse",
        context_window: 1000000,
        max_output_tokens: 64000,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: true,
            extended_thinking: true,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "apac.amazon.nova-2-lite-v1:0",
        provider_id: "bedrock_converse",
        context_window: 1000000,
        max_output_tokens: 64000,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: true,
            extended_thinking: true,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "apac.amazon.nova-2-pro-preview-20251202-v1:0",
        provider_id: "bedrock_converse",
        context_window: 1000000,
        max_output_tokens: 64000,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: true,
            extended_thinking: true,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "apac.amazon.nova-lite-v1:0",
        provider_id: "bedrock_converse",
        context_window: 300000,
        max_output_tokens: 10000,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: true,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "apac.amazon.nova-micro-v1:0",
        provider_id: "bedrock_converse",
        context_window: 128000,
        max_output_tokens: 10000,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "apac.amazon.nova-pro-v1:0",
        provider_id: "bedrock_converse",
        context_window: 300000,
        max_output_tokens: 10000,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: true,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "apac.anthropic.claude-haiku-4-5-20251001-v1:0",
        provider_id: "bedrock_converse",
        context_window: 200000,
        max_output_tokens: 64000,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: true,
            extended_thinking: true,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "apac.anthropic.claude-sonnet-4-20250514-v1:0",
        provider_id: "bedrock_converse",
        context_window: 1000000,
        max_output_tokens: 64000,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: true,
            extended_thinking: true,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "au.anthropic.claude-haiku-4-5-20251001-v1:0",
        provider_id: "bedrock_converse",
        context_window: 200000,
        max_output_tokens: 64000,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: true,
            extended_thinking: true,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "au.anthropic.claude-opus-4-6-v1",
        provider_id: "bedrock_converse",
        context_window: 1000000,
        max_output_tokens: 128000,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: true,
            extended_thinking: true,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "au.anthropic.claude-opus-4-7",
        provider_id: "bedrock_converse",
        context_window: 1000000,
        max_output_tokens: 128000,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: true,
            extended_thinking: true,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "au.anthropic.claude-sonnet-4-5-20250929-v1:0",
        provider_id: "bedrock_converse",
        context_window: 200000,
        max_output_tokens: 64000,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: true,
            extended_thinking: true,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "au.anthropic.claude-sonnet-4-6",
        provider_id: "bedrock_converse",
        context_window: 1000000,
        max_output_tokens: 64000,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: true,
            extended_thinking: true,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "deepseek.v3-v1:0",
        provider_id: "bedrock_converse",
        context_window: 163840,
        max_output_tokens: 81920,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: false,
            extended_thinking: true,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "deepseek.v3.2",
        provider_id: "bedrock_converse",
        context_window: 163840,
        max_output_tokens: 163840,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: false,
            extended_thinking: true,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "eu.amazon.nova-2-lite-v1:0",
        provider_id: "bedrock_converse",
        context_window: 1000000,
        max_output_tokens: 64000,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: true,
            extended_thinking: true,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "eu.amazon.nova-2-pro-preview-20251202-v1:0",
        provider_id: "bedrock_converse",
        context_window: 1000000,
        max_output_tokens: 64000,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: true,
            extended_thinking: true,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "eu.amazon.nova-lite-v1:0",
        provider_id: "bedrock_converse",
        context_window: 300000,
        max_output_tokens: 10000,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: true,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "eu.amazon.nova-micro-v1:0",
        provider_id: "bedrock_converse",
        context_window: 128000,
        max_output_tokens: 10000,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "eu.amazon.nova-pro-v1:0",
        provider_id: "bedrock_converse",
        context_window: 300000,
        max_output_tokens: 10000,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: true,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "eu.anthropic.claude-haiku-4-5-20251001-v1:0",
        provider_id: "bedrock_converse",
        context_window: 200000,
        max_output_tokens: 64000,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: true,
            extended_thinking: true,
        },
        status: ModelStatus::Deprecated,
    },
    ModelDef {
        id: "eu.anthropic.claude-opus-4-1-20250805-v1:0",
        provider_id: "bedrock_converse",
        context_window: 200000,
        max_output_tokens: 32000,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: true,
            extended_thinking: true,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "eu.anthropic.claude-opus-4-20250514-v1:0",
        provider_id: "bedrock_converse",
        context_window: 200000,
        max_output_tokens: 32000,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: true,
            extended_thinking: true,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "eu.anthropic.claude-opus-4-5-20251101-v1:0",
        provider_id: "bedrock_converse",
        context_window: 200000,
        max_output_tokens: 64000,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: true,
            extended_thinking: true,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "eu.anthropic.claude-opus-4-6-v1",
        provider_id: "bedrock_converse",
        context_window: 1000000,
        max_output_tokens: 128000,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: true,
            extended_thinking: true,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "eu.anthropic.claude-opus-4-7",
        provider_id: "bedrock_converse",
        context_window: 1000000,
        max_output_tokens: 128000,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: true,
            extended_thinking: true,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "eu.anthropic.claude-sonnet-4-20250514-v1:0",
        provider_id: "bedrock_converse",
        context_window: 1000000,
        max_output_tokens: 64000,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: true,
            extended_thinking: true,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "eu.anthropic.claude-sonnet-4-5-20250929-v1:0",
        provider_id: "bedrock_converse",
        context_window: 200000,
        max_output_tokens: 64000,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: true,
            extended_thinking: true,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "eu.anthropic.claude-sonnet-4-6",
        provider_id: "bedrock_converse",
        context_window: 1000000,
        max_output_tokens: 64000,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: true,
            extended_thinking: true,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "eu.deepseek.v3.2",
        provider_id: "bedrock_converse",
        context_window: 163840,
        max_output_tokens: 163840,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: false,
            extended_thinking: true,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "eu.mistral.pixtral-large-2502-v1:0",
        provider_id: "bedrock_converse",
        context_window: 128000,
        max_output_tokens: 4096,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "global.amazon.nova-2-lite-v1:0",
        provider_id: "bedrock_converse",
        context_window: 1000000,
        max_output_tokens: 64000,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: true,
            extended_thinking: true,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "global.anthropic.claude-haiku-4-5-20251001-v1:0",
        provider_id: "bedrock_converse",
        context_window: 200000,
        max_output_tokens: 64000,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: true,
            extended_thinking: true,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "global.anthropic.claude-opus-4-5-20251101-v1:0",
        provider_id: "bedrock_converse",
        context_window: 200000,
        max_output_tokens: 64000,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: true,
            extended_thinking: true,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "global.anthropic.claude-opus-4-6-v1",
        provider_id: "bedrock_converse",
        context_window: 1000000,
        max_output_tokens: 128000,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: true,
            extended_thinking: true,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "global.anthropic.claude-opus-4-7",
        provider_id: "bedrock_converse",
        context_window: 1000000,
        max_output_tokens: 128000,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: true,
            extended_thinking: true,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "global.anthropic.claude-sonnet-4-20250514-v1:0",
        provider_id: "bedrock_converse",
        context_window: 1000000,
        max_output_tokens: 64000,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: true,
            extended_thinking: true,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "global.anthropic.claude-sonnet-4-5-20250929-v1:0",
        provider_id: "bedrock_converse",
        context_window: 200000,
        max_output_tokens: 64000,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: true,
            extended_thinking: true,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "global.anthropic.claude-sonnet-4-6",
        provider_id: "bedrock_converse",
        context_window: 1000000,
        max_output_tokens: 64000,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: true,
            extended_thinking: true,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "google.gemma-3-12b-it",
        provider_id: "bedrock_converse",
        context_window: 128000,
        max_output_tokens: 8192,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: false,
            vision: true,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "google.gemma-3-27b-it",
        provider_id: "bedrock_converse",
        context_window: 128000,
        max_output_tokens: 8192,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: false,
            vision: true,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "google.gemma-3-4b-it",
        provider_id: "bedrock_converse",
        context_window: 128000,
        max_output_tokens: 8192,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: false,
            vision: true,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "jp.anthropic.claude-haiku-4-5-20251001-v1:0",
        provider_id: "bedrock_converse",
        context_window: 200000,
        max_output_tokens: 64000,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: true,
            extended_thinking: true,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "jp.anthropic.claude-sonnet-4-5-20250929-v1:0",
        provider_id: "bedrock_converse",
        context_window: 200000,
        max_output_tokens: 64000,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: true,
            extended_thinking: true,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "jp.anthropic.claude-sonnet-4-6",
        provider_id: "bedrock_converse",
        context_window: 1000000,
        max_output_tokens: 64000,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: true,
            extended_thinking: true,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "meta.llama3-3-70b-instruct-v1:0",
        provider_id: "bedrock_converse",
        context_window: 128000,
        max_output_tokens: 4096,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "meta.llama4-maverick-17b-instruct-v1:0",
        provider_id: "bedrock_converse",
        context_window: 128000,
        max_output_tokens: 4096,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "meta.llama4-scout-17b-instruct-v1:0",
        provider_id: "bedrock_converse",
        context_window: 128000,
        max_output_tokens: 4096,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "minimax.minimax-m2",
        provider_id: "bedrock_converse",
        context_window: 128000,
        max_output_tokens: 8192,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: false,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "minimax.minimax-m2.1",
        provider_id: "bedrock_converse",
        context_window: 196000,
        max_output_tokens: 8192,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "minimax.minimax-m2.5",
        provider_id: "bedrock_converse",
        context_window: 1000000,
        max_output_tokens: 8192,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "mistral.devstral-2-123b",
        provider_id: "bedrock_converse",
        context_window: 256000,
        max_output_tokens: 8192,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "mistral.magistral-small-2509",
        provider_id: "bedrock_converse",
        context_window: 128000,
        max_output_tokens: 8192,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: false,
            extended_thinking: true,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "mistral.ministral-3-14b-instruct",
        provider_id: "bedrock_converse",
        context_window: 128000,
        max_output_tokens: 8192,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "mistral.ministral-3-3b-instruct",
        provider_id: "bedrock_converse",
        context_window: 128000,
        max_output_tokens: 8192,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "mistral.ministral-3-8b-instruct",
        provider_id: "bedrock_converse",
        context_window: 128000,
        max_output_tokens: 8192,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "mistral.mistral-large-3-675b-instruct",
        provider_id: "bedrock_converse",
        context_window: 128000,
        max_output_tokens: 8192,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "mistral.voxtral-mini-3b-2507",
        provider_id: "bedrock_converse",
        context_window: 128000,
        max_output_tokens: 8192,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: false,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "mistral.voxtral-small-24b-2507",
        provider_id: "bedrock_converse",
        context_window: 128000,
        max_output_tokens: 8192,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: false,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "moonshot.kimi-k2-thinking",
        provider_id: "bedrock_converse",
        context_window: 128000,
        max_output_tokens: 8192,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: false,
            vision: false,
            extended_thinking: true,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "moonshotai.kimi-k2.5",
        provider_id: "bedrock_converse",
        context_window: 262144,
        max_output_tokens: 262144,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: true,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "nvidia.nemotron-nano-12b-v2",
        provider_id: "bedrock_converse",
        context_window: 128000,
        max_output_tokens: 8192,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: false,
            vision: true,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "nvidia.nemotron-nano-3-30b",
        provider_id: "bedrock_converse",
        context_window: 262144,
        max_output_tokens: 8192,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "nvidia.nemotron-nano-9b-v2",
        provider_id: "bedrock_converse",
        context_window: 128000,
        max_output_tokens: 8192,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: false,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "nvidia.nemotron-super-3-120b",
        provider_id: "bedrock_converse",
        context_window: 256000,
        max_output_tokens: 32768,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: false,
            extended_thinking: true,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "openai.gpt-oss-120b-1:0",
        provider_id: "bedrock_converse",
        context_window: 128000,
        max_output_tokens: 128000,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: false,
            extended_thinking: true,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "openai.gpt-oss-20b-1:0",
        provider_id: "bedrock_converse",
        context_window: 128000,
        max_output_tokens: 128000,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: false,
            extended_thinking: true,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "openai.gpt-oss-safeguard-120b",
        provider_id: "bedrock_converse",
        context_window: 128000,
        max_output_tokens: 8192,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: false,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "openai.gpt-oss-safeguard-20b",
        provider_id: "bedrock_converse",
        context_window: 128000,
        max_output_tokens: 8192,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: false,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "qwen.qwen3-235b-a22b-2507-v1:0",
        provider_id: "bedrock_converse",
        context_window: 262144,
        max_output_tokens: 131072,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: false,
            extended_thinking: true,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "qwen.qwen3-32b-v1:0",
        provider_id: "bedrock_converse",
        context_window: 131072,
        max_output_tokens: 16384,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: false,
            extended_thinking: true,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "qwen.qwen3-coder-30b-a3b-v1:0",
        provider_id: "bedrock_converse",
        context_window: 262144,
        max_output_tokens: 131072,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: false,
            extended_thinking: true,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "qwen.qwen3-coder-480b-a35b-v1:0",
        provider_id: "bedrock_converse",
        context_window: 262000,
        max_output_tokens: 65536,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: false,
            extended_thinking: true,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "qwen.qwen3-coder-next",
        provider_id: "bedrock_converse",
        context_window: 262144,
        max_output_tokens: 8192,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "qwen.qwen3-next-80b-a3b",
        provider_id: "bedrock_converse",
        context_window: 128000,
        max_output_tokens: 8192,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "qwen.qwen3-vl-235b-a22b",
        provider_id: "bedrock_converse",
        context_window: 128000,
        max_output_tokens: 8192,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: true,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "us-gov.anthropic.claude-sonnet-4-5-20250929-v1:0",
        provider_id: "bedrock_converse",
        context_window: 200000,
        max_output_tokens: 64000,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: true,
            extended_thinking: true,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "us.amazon.nova-2-lite-v1:0",
        provider_id: "bedrock_converse",
        context_window: 1000000,
        max_output_tokens: 64000,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: true,
            extended_thinking: true,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "us.amazon.nova-2-pro-preview-20251202-v1:0",
        provider_id: "bedrock_converse",
        context_window: 1000000,
        max_output_tokens: 64000,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: true,
            extended_thinking: true,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "us.amazon.nova-lite-v1:0",
        provider_id: "bedrock_converse",
        context_window: 300000,
        max_output_tokens: 10000,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: true,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "us.amazon.nova-micro-v1:0",
        provider_id: "bedrock_converse",
        context_window: 128000,
        max_output_tokens: 10000,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "us.amazon.nova-premier-v1:0",
        provider_id: "bedrock_converse",
        context_window: 1000000,
        max_output_tokens: 10000,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: true,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "us.amazon.nova-pro-v1:0",
        provider_id: "bedrock_converse",
        context_window: 300000,
        max_output_tokens: 10000,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: true,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "us.anthropic.claude-3-7-sonnet-20250219-v1:0",
        provider_id: "bedrock_converse",
        context_window: 200000,
        max_output_tokens: 8192,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: true,
            extended_thinking: true,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "us.anthropic.claude-haiku-4-5-20251001-v1:0",
        provider_id: "bedrock_converse",
        context_window: 200000,
        max_output_tokens: 64000,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: true,
            extended_thinking: true,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "us.anthropic.claude-opus-4-1-20250805-v1:0",
        provider_id: "bedrock_converse",
        context_window: 200000,
        max_output_tokens: 32000,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: true,
            extended_thinking: true,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "us.anthropic.claude-opus-4-20250514-v1:0",
        provider_id: "bedrock_converse",
        context_window: 200000,
        max_output_tokens: 32000,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: true,
            extended_thinking: true,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "us.anthropic.claude-opus-4-5-20251101-v1:0",
        provider_id: "bedrock_converse",
        context_window: 200000,
        max_output_tokens: 64000,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: true,
            extended_thinking: true,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "us.anthropic.claude-opus-4-6-v1",
        provider_id: "bedrock_converse",
        context_window: 1000000,
        max_output_tokens: 128000,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: true,
            extended_thinking: true,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "us.anthropic.claude-opus-4-7",
        provider_id: "bedrock_converse",
        context_window: 1000000,
        max_output_tokens: 128000,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: true,
            extended_thinking: true,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "us.anthropic.claude-sonnet-4-20250514-v1:0",
        provider_id: "bedrock_converse",
        context_window: 1000000,
        max_output_tokens: 64000,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: true,
            extended_thinking: true,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "us.anthropic.claude-sonnet-4-5-20250929-v1:0",
        provider_id: "bedrock_converse",
        context_window: 200000,
        max_output_tokens: 64000,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: true,
            extended_thinking: true,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "us.anthropic.claude-sonnet-4-6",
        provider_id: "bedrock_converse",
        context_window: 1000000,
        max_output_tokens: 64000,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: true,
            extended_thinking: true,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "us.deepseek.r1-v1:0",
        provider_id: "bedrock_converse",
        context_window: 128000,
        max_output_tokens: 4096,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: false,
            vision: false,
            extended_thinking: true,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "us.deepseek.v3.2",
        provider_id: "bedrock_converse",
        context_window: 163840,
        max_output_tokens: 163840,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: false,
            extended_thinking: true,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "us.meta.llama3-3-70b-instruct-v1:0",
        provider_id: "bedrock_converse",
        context_window: 128000,
        max_output_tokens: 4096,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "us.meta.llama4-maverick-17b-instruct-v1:0",
        provider_id: "bedrock_converse",
        context_window: 128000,
        max_output_tokens: 4096,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "us.meta.llama4-scout-17b-instruct-v1:0",
        provider_id: "bedrock_converse",
        context_window: 128000,
        max_output_tokens: 4096,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "us.mistral.pixtral-large-2502-v1:0",
        provider_id: "bedrock_converse",
        context_window: 128000,
        max_output_tokens: 4096,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "us.writer.palmyra-x4-v1:0",
        provider_id: "bedrock_converse",
        context_window: 128000,
        max_output_tokens: 8192,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "us.writer.palmyra-x5-v1:0",
        provider_id: "bedrock_converse",
        context_window: 1000000,
        max_output_tokens: 8192,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "writer.palmyra-x4-v1:0",
        provider_id: "bedrock_converse",
        context_window: 128000,
        max_output_tokens: 8192,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "writer.palmyra-x5-v1:0",
        provider_id: "bedrock_converse",
        context_window: 1000000,
        max_output_tokens: 8192,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "zai.glm-4.7",
        provider_id: "bedrock_converse",
        context_window: 200000,
        max_output_tokens: 128000,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: false,
            extended_thinking: true,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "zai.glm-4.7-flash",
        provider_id: "bedrock_converse",
        context_window: 200000,
        max_output_tokens: 128000,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: false,
            extended_thinking: true,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "zai.glm-5",
        provider_id: "bedrock_converse",
        context_window: 200000,
        max_output_tokens: 128000,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: false,
            extended_thinking: true,
        },
        status: ModelStatus::Available,
    },
];

pub const PROVIDER_BEDROCK_MANTLE: ProviderDef = ProviderDef {
    id: "bedrock_mantle",
    display_name: "AWS Bedrock",
    default_base_url: "",
    protocol: ProviderProtocol::BedrockNative,
    auth: AuthKind::AwsSigV4,
    status: ProviderStatus::Wired,
    env_vars: &["AWS_ACCESS_KEY_ID", "AWS_SECRET_ACCESS_KEY", "AWS_REGION"],
    litellm_prefix: "bedrock_mantle/",
    capabilities: ProviderCapabilities {
        chat_completions: true,
        streaming: true,
        tool_use: true,
        embeddings: false,
        vision: false,
        batch: false,
    },
};

pub const MODELS_BEDROCK_MANTLE: &[ModelDef] = &[
    ModelDef {
        id: "openai.gpt-oss-120b",
        provider_id: "bedrock_mantle",
        context_window: 131072,
        max_output_tokens: 32768,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: false,
            extended_thinking: true,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "openai.gpt-oss-20b",
        provider_id: "bedrock_mantle",
        context_window: 131072,
        max_output_tokens: 32768,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: false,
            extended_thinking: true,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "openai.gpt-oss-safeguard-120b",
        provider_id: "bedrock_mantle",
        context_window: 131072,
        max_output_tokens: 65536,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: false,
            extended_thinking: true,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "openai.gpt-oss-safeguard-20b",
        provider_id: "bedrock_mantle",
        context_window: 131072,
        max_output_tokens: 65536,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: false,
            extended_thinking: true,
        },
        status: ModelStatus::Available,
    },
];

pub const PROVIDER_BLACK_FOREST_LABS: ProviderDef = ProviderDef {
    id: "black_forest_labs",
    display_name: "Black Forest Labs",
    default_base_url: "",
    protocol: ProviderProtocol::OpenAICompat,
    auth: AuthKind::Bearer,
    status: ProviderStatus::Stub,
    env_vars: &["BLACK_FOREST_LABS_API_KEY"],
    litellm_prefix: "black_forest_labs/",
    capabilities: ProviderCapabilities {
        chat_completions: false,
        streaming: false,
        tool_use: false,
        embeddings: false,
        vision: false,
        batch: false,
    },
};

pub const MODELS_BLACK_FOREST_LABS: &[ModelDef] = &[
    ModelDef {
        id: "flux-dev",
        provider_id: "black_forest_labs",
        context_window: 0,
        max_output_tokens: 0,
        capabilities: ModelCapabilities {
            streaming: false,
            tool_use: false,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "flux-kontext-max",
        provider_id: "black_forest_labs",
        context_window: 0,
        max_output_tokens: 0,
        capabilities: ModelCapabilities {
            streaming: false,
            tool_use: false,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "flux-kontext-pro",
        provider_id: "black_forest_labs",
        context_window: 0,
        max_output_tokens: 0,
        capabilities: ModelCapabilities {
            streaming: false,
            tool_use: false,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "flux-pro",
        provider_id: "black_forest_labs",
        context_window: 0,
        max_output_tokens: 0,
        capabilities: ModelCapabilities {
            streaming: false,
            tool_use: false,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "flux-pro-1.0-expand",
        provider_id: "black_forest_labs",
        context_window: 0,
        max_output_tokens: 0,
        capabilities: ModelCapabilities {
            streaming: false,
            tool_use: false,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "flux-pro-1.0-fill",
        provider_id: "black_forest_labs",
        context_window: 0,
        max_output_tokens: 0,
        capabilities: ModelCapabilities {
            streaming: false,
            tool_use: false,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "flux-pro-1.1",
        provider_id: "black_forest_labs",
        context_window: 0,
        max_output_tokens: 0,
        capabilities: ModelCapabilities {
            streaming: false,
            tool_use: false,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "flux-pro-1.1-ultra",
        provider_id: "black_forest_labs",
        context_window: 0,
        max_output_tokens: 0,
        capabilities: ModelCapabilities {
            streaming: false,
            tool_use: false,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
];

pub const PROVIDER_CEREBRAS: ProviderDef = ProviderDef {
    id: "cerebras",
    display_name: "Cerebras",
    default_base_url: "https://api.cerebras.ai/v1",
    protocol: ProviderProtocol::OpenAICompat,
    auth: AuthKind::Bearer,
    status: ProviderStatus::Stub,
    env_vars: &["CEREBRAS_API_KEY"],
    litellm_prefix: "cerebras/",
    capabilities: ProviderCapabilities {
        chat_completions: true,
        streaming: true,
        tool_use: true,
        embeddings: false,
        vision: false,
        batch: false,
    },
};

pub const MODELS_CEREBRAS: &[ModelDef] = &[
    ModelDef {
        id: "gpt-oss-120b",
        provider_id: "cerebras",
        context_window: 131072,
        max_output_tokens: 32768,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: false,
            extended_thinking: true,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "llama-3.3-70b",
        provider_id: "cerebras",
        context_window: 128000,
        max_output_tokens: 128000,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "llama3.1-70b",
        provider_id: "cerebras",
        context_window: 128000,
        max_output_tokens: 128000,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "llama3.1-8b",
        provider_id: "cerebras",
        context_window: 128000,
        max_output_tokens: 128000,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "qwen-3-32b",
        provider_id: "cerebras",
        context_window: 128000,
        max_output_tokens: 128000,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: false,
            extended_thinking: true,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "zai-glm-4.6",
        provider_id: "cerebras",
        context_window: 128000,
        max_output_tokens: 128000,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: false,
            extended_thinking: true,
        },
        status: ModelStatus::Deprecated,
    },
    ModelDef {
        id: "zai-glm-4.7",
        provider_id: "cerebras",
        context_window: 128000,
        max_output_tokens: 128000,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: false,
            extended_thinking: true,
        },
        status: ModelStatus::Available,
    },
];

pub const PROVIDER_CHATGPT: ProviderDef = ProviderDef {
    id: "chatgpt",
    display_name: "Chatgpt",
    default_base_url: "",
    protocol: ProviderProtocol::OpenAICompat,
    auth: AuthKind::Bearer,
    status: ProviderStatus::Stub,
    env_vars: &["CHATGPT_API_KEY"],
    litellm_prefix: "chatgpt/",
    capabilities: ProviderCapabilities {
        chat_completions: true,
        streaming: true,
        tool_use: true,
        embeddings: false,
        vision: true,
        batch: false,
    },
};

pub const MODELS_CHATGPT: &[ModelDef] = &[
    ModelDef {
        id: "gpt-5.1-codex-max",
        provider_id: "chatgpt",
        context_window: 128000,
        max_output_tokens: 128000,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: true,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "gpt-5.1-codex-mini",
        provider_id: "chatgpt",
        context_window: 128000,
        max_output_tokens: 64000,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: true,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "gpt-5.2",
        provider_id: "chatgpt",
        context_window: 128000,
        max_output_tokens: 64000,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: true,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "gpt-5.2-codex",
        provider_id: "chatgpt",
        context_window: 128000,
        max_output_tokens: 128000,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: true,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "gpt-5.3-chat-latest",
        provider_id: "chatgpt",
        context_window: 128000,
        max_output_tokens: 64000,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: true,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "gpt-5.3-codex",
        provider_id: "chatgpt",
        context_window: 128000,
        max_output_tokens: 128000,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: true,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "gpt-5.3-codex-spark",
        provider_id: "chatgpt",
        context_window: 128000,
        max_output_tokens: 128000,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: true,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "gpt-5.3-instant",
        provider_id: "chatgpt",
        context_window: 128000,
        max_output_tokens: 64000,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: true,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "gpt-5.4",
        provider_id: "chatgpt",
        context_window: 1050000,
        max_output_tokens: 128000,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: true,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "gpt-5.4-pro",
        provider_id: "chatgpt",
        context_window: 1050000,
        max_output_tokens: 128000,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: true,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
];

pub const PROVIDER_CLOUDFLARE: ProviderDef = ProviderDef {
    id: "cloudflare",
    display_name: "Cloudflare Workers AI",
    default_base_url: "",
    protocol: ProviderProtocol::OpenAICompat,
    auth: AuthKind::Bearer,
    status: ProviderStatus::Stub,
    env_vars: &["CLOUDFLARE_API_KEY", "CLOUDFLARE_ACCOUNT_ID"],
    litellm_prefix: "cloudflare/",
    capabilities: ProviderCapabilities {
        chat_completions: true,
        streaming: true,
        tool_use: false,
        embeddings: false,
        vision: false,
        batch: false,
    },
};

pub const MODELS_CLOUDFLARE: &[ModelDef] = &[
    ModelDef {
        id: "@cf/meta/llama-2-7b-chat-fp16",
        provider_id: "cloudflare",
        context_window: 3072,
        max_output_tokens: 3072,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: false,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "@cf/meta/llama-2-7b-chat-int8",
        provider_id: "cloudflare",
        context_window: 2048,
        max_output_tokens: 2048,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: false,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "@cf/mistral/mistral-7b-instruct-v0.1",
        provider_id: "cloudflare",
        context_window: 8192,
        max_output_tokens: 8192,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: false,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "@hf/thebloke/codellama-7b-instruct-awq",
        provider_id: "cloudflare",
        context_window: 4096,
        max_output_tokens: 4096,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: false,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
];

pub const PROVIDER_CODESTRAL: ProviderDef = ProviderDef {
    id: "codestral",
    display_name: "Codestral",
    default_base_url: "https://codestral.mistral.ai/v1",
    protocol: ProviderProtocol::OpenAICompat,
    auth: AuthKind::Bearer,
    status: ProviderStatus::Stub,
    env_vars: &["CODESTRAL_API_KEY"],
    litellm_prefix: "codestral/",
    capabilities: ProviderCapabilities {
        chat_completions: true,
        streaming: true,
        tool_use: true,
        embeddings: false,
        vision: false,
        batch: false,
    },
};

pub const MODELS_CODESTRAL: &[ModelDef] = &[
    ModelDef {
        id: "codestral-2405",
        provider_id: "codestral",
        context_window: 32000,
        max_output_tokens: 8191,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "codestral-latest",
        provider_id: "codestral",
        context_window: 32000,
        max_output_tokens: 8191,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
];

pub const PROVIDER_COHERE: ProviderDef = ProviderDef {
    id: "cohere",
    display_name: "Cohere",
    default_base_url: "https://api.cohere.com/compatibility/v1",
    protocol: ProviderProtocol::OpenAICompat,
    auth: AuthKind::Bearer,
    status: ProviderStatus::Stub,
    env_vars: &["COHERE_API_KEY"],
    litellm_prefix: "cohere/",
    capabilities: ProviderCapabilities {
        chat_completions: false,
        streaming: true,
        tool_use: false,
        embeddings: true,
        vision: false,
        batch: false,
    },
};

pub const MODELS_COHERE: &[ModelDef] = &[
    ModelDef {
        id: "command",
        provider_id: "cohere",
        context_window: 4096,
        max_output_tokens: 4096,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: false,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "command-nightly",
        provider_id: "cohere",
        context_window: 4096,
        max_output_tokens: 4096,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: false,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "embed-english-light-v2.0",
        provider_id: "cohere",
        context_window: 1024,
        max_output_tokens: 0,
        capabilities: ModelCapabilities {
            streaming: false,
            tool_use: false,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "embed-english-light-v3.0",
        provider_id: "cohere",
        context_window: 1024,
        max_output_tokens: 0,
        capabilities: ModelCapabilities {
            streaming: false,
            tool_use: false,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "embed-english-v2.0",
        provider_id: "cohere",
        context_window: 4096,
        max_output_tokens: 0,
        capabilities: ModelCapabilities {
            streaming: false,
            tool_use: false,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "embed-english-v3.0",
        provider_id: "cohere",
        context_window: 1024,
        max_output_tokens: 0,
        capabilities: ModelCapabilities {
            streaming: false,
            tool_use: false,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "embed-multilingual-light-v3.0",
        provider_id: "cohere",
        context_window: 1024,
        max_output_tokens: 0,
        capabilities: ModelCapabilities {
            streaming: false,
            tool_use: false,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "embed-multilingual-v2.0",
        provider_id: "cohere",
        context_window: 768,
        max_output_tokens: 0,
        capabilities: ModelCapabilities {
            streaming: false,
            tool_use: false,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "embed-multilingual-v3.0",
        provider_id: "cohere",
        context_window: 1024,
        max_output_tokens: 0,
        capabilities: ModelCapabilities {
            streaming: false,
            tool_use: false,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "embed-v4.0",
        provider_id: "cohere",
        context_window: 128000,
        max_output_tokens: 0,
        capabilities: ModelCapabilities {
            streaming: false,
            tool_use: false,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "rerank-english-v2.0",
        provider_id: "cohere",
        context_window: 4096,
        max_output_tokens: 4096,
        capabilities: ModelCapabilities {
            streaming: false,
            tool_use: false,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "rerank-english-v3.0",
        provider_id: "cohere",
        context_window: 4096,
        max_output_tokens: 4096,
        capabilities: ModelCapabilities {
            streaming: false,
            tool_use: false,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "rerank-multilingual-v2.0",
        provider_id: "cohere",
        context_window: 4096,
        max_output_tokens: 4096,
        capabilities: ModelCapabilities {
            streaming: false,
            tool_use: false,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "rerank-multilingual-v3.0",
        provider_id: "cohere",
        context_window: 4096,
        max_output_tokens: 4096,
        capabilities: ModelCapabilities {
            streaming: false,
            tool_use: false,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "rerank-v3.5",
        provider_id: "cohere",
        context_window: 4096,
        max_output_tokens: 4096,
        capabilities: ModelCapabilities {
            streaming: false,
            tool_use: false,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
];

pub const PROVIDER_COHERE_CHAT: ProviderDef = ProviderDef {
    id: "cohere_chat",
    display_name: "Cohere",
    default_base_url: "https://api.cohere.com/compatibility/v1",
    protocol: ProviderProtocol::OpenAICompat,
    auth: AuthKind::Bearer,
    status: ProviderStatus::Stub,
    env_vars: &["COHERE_API_KEY"],
    litellm_prefix: "cohere_chat/",
    capabilities: ProviderCapabilities {
        chat_completions: true,
        streaming: true,
        tool_use: true,
        embeddings: false,
        vision: false,
        batch: false,
    },
};

pub const MODELS_COHERE_CHAT: &[ModelDef] = &[
    ModelDef {
        id: "command-a-03-2025",
        provider_id: "cohere_chat",
        context_window: 256000,
        max_output_tokens: 8000,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "command-light",
        provider_id: "cohere_chat",
        context_window: 4096,
        max_output_tokens: 4096,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "command-r",
        provider_id: "cohere_chat",
        context_window: 128000,
        max_output_tokens: 4096,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "command-r-08-2024",
        provider_id: "cohere_chat",
        context_window: 128000,
        max_output_tokens: 4096,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "command-r-plus",
        provider_id: "cohere_chat",
        context_window: 128000,
        max_output_tokens: 4096,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "command-r-plus-08-2024",
        provider_id: "cohere_chat",
        context_window: 128000,
        max_output_tokens: 4096,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "command-r7b-12-2024",
        provider_id: "cohere_chat",
        context_window: 128000,
        max_output_tokens: 4096,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
];

pub const PROVIDER_CRUSOE: ProviderDef = ProviderDef {
    id: "crusoe",
    display_name: "Crusoe",
    default_base_url: "",
    protocol: ProviderProtocol::OpenAICompat,
    auth: AuthKind::Bearer,
    status: ProviderStatus::Stub,
    env_vars: &["CRUSOE_API_KEY"],
    litellm_prefix: "crusoe/",
    capabilities: ProviderCapabilities {
        chat_completions: true,
        streaming: true,
        tool_use: true,
        embeddings: false,
        vision: true,
        batch: false,
    },
};

pub const MODELS_CRUSOE: &[ModelDef] = &[
    ModelDef {
        id: "Qwen/Qwen3-235B-A22B-Instruct-2507",
        provider_id: "crusoe",
        context_window: 262144,
        max_output_tokens: 262144,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "deepseek-ai/DeepSeek-R1-0528",
        provider_id: "crusoe",
        context_window: 163840,
        max_output_tokens: 163840,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: false,
            vision: false,
            extended_thinking: true,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "deepseek-ai/DeepSeek-V3-0324",
        provider_id: "crusoe",
        context_window: 163840,
        max_output_tokens: 163840,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "google/gemma-3-12b-it",
        provider_id: "crusoe",
        context_window: 131072,
        max_output_tokens: 131072,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: true,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "meta-llama/Llama-3.3-70B-Instruct",
        provider_id: "crusoe",
        context_window: 131072,
        max_output_tokens: 131072,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "moonshotai/Kimi-K2-Thinking",
        provider_id: "crusoe",
        context_window: 262144,
        max_output_tokens: 262144,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: false,
            vision: false,
            extended_thinking: true,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "openai/gpt-oss-120b",
        provider_id: "crusoe",
        context_window: 131072,
        max_output_tokens: 131072,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
];

pub const PROVIDER_DASHSCOPE: ProviderDef = ProviderDef {
    id: "dashscope",
    display_name: "Dashscope (Qwen)",
    default_base_url: "https://dashscope.aliyuncs.com/compatible-mode/v1",
    protocol: ProviderProtocol::OpenAICompat,
    auth: AuthKind::Bearer,
    status: ProviderStatus::Stub,
    env_vars: &["DASHSCOPE_API_KEY"],
    litellm_prefix: "dashscope/",
    capabilities: ProviderCapabilities {
        chat_completions: true,
        streaming: true,
        tool_use: true,
        embeddings: false,
        vision: true,
        batch: false,
    },
};

pub const MODELS_DASHSCOPE: &[ModelDef] = &[
    ModelDef {
        id: "qwen-coder",
        provider_id: "dashscope",
        context_window: 1000000,
        max_output_tokens: 16384,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: false,
            extended_thinking: true,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "qwen-flash",
        provider_id: "dashscope",
        context_window: 997952,
        max_output_tokens: 32768,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: false,
            extended_thinking: true,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "qwen-flash-2025-07-28",
        provider_id: "dashscope",
        context_window: 997952,
        max_output_tokens: 32768,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: false,
            extended_thinking: true,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "qwen-image-2.0",
        provider_id: "dashscope",
        context_window: 0,
        max_output_tokens: 0,
        capabilities: ModelCapabilities {
            streaming: false,
            tool_use: false,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "qwen-image-2.0-pro",
        provider_id: "dashscope",
        context_window: 0,
        max_output_tokens: 0,
        capabilities: ModelCapabilities {
            streaming: false,
            tool_use: false,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "qwen-max",
        provider_id: "dashscope",
        context_window: 30720,
        max_output_tokens: 8192,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: false,
            extended_thinking: true,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "qwen-plus",
        provider_id: "dashscope",
        context_window: 129024,
        max_output_tokens: 16384,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: false,
            extended_thinking: true,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "qwen-plus-2025-01-25",
        provider_id: "dashscope",
        context_window: 129024,
        max_output_tokens: 8192,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: false,
            extended_thinking: true,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "qwen-plus-2025-04-28",
        provider_id: "dashscope",
        context_window: 129024,
        max_output_tokens: 16384,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: false,
            extended_thinking: true,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "qwen-plus-2025-07-14",
        provider_id: "dashscope",
        context_window: 129024,
        max_output_tokens: 16384,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: false,
            extended_thinking: true,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "qwen-plus-2025-07-28",
        provider_id: "dashscope",
        context_window: 997952,
        max_output_tokens: 32768,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: false,
            extended_thinking: true,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "qwen-plus-2025-09-11",
        provider_id: "dashscope",
        context_window: 997952,
        max_output_tokens: 32768,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: false,
            extended_thinking: true,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "qwen-plus-latest",
        provider_id: "dashscope",
        context_window: 997952,
        max_output_tokens: 32768,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: false,
            extended_thinking: true,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "qwen-turbo",
        provider_id: "dashscope",
        context_window: 129024,
        max_output_tokens: 16384,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: false,
            extended_thinking: true,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "qwen-turbo-2024-11-01",
        provider_id: "dashscope",
        context_window: 1000000,
        max_output_tokens: 8192,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: false,
            extended_thinking: true,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "qwen-turbo-2025-04-28",
        provider_id: "dashscope",
        context_window: 1000000,
        max_output_tokens: 16384,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: false,
            extended_thinking: true,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "qwen-turbo-latest",
        provider_id: "dashscope",
        context_window: 1000000,
        max_output_tokens: 16384,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: false,
            extended_thinking: true,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "qwen3-30b-a3b",
        provider_id: "dashscope",
        context_window: 129024,
        max_output_tokens: 16384,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: false,
            extended_thinking: true,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "qwen3-coder-flash",
        provider_id: "dashscope",
        context_window: 997952,
        max_output_tokens: 65536,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: false,
            extended_thinking: true,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "qwen3-coder-flash-2025-07-28",
        provider_id: "dashscope",
        context_window: 997952,
        max_output_tokens: 65536,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: false,
            extended_thinking: true,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "qwen3-coder-plus",
        provider_id: "dashscope",
        context_window: 997952,
        max_output_tokens: 65536,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: false,
            extended_thinking: true,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "qwen3-coder-plus-2025-07-22",
        provider_id: "dashscope",
        context_window: 997952,
        max_output_tokens: 65536,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: false,
            extended_thinking: true,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "qwen3-max",
        provider_id: "dashscope",
        context_window: 258048,
        max_output_tokens: 65536,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: false,
            extended_thinking: true,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "qwen3-max-2026-01-23",
        provider_id: "dashscope",
        context_window: 258048,
        max_output_tokens: 65536,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: false,
            extended_thinking: true,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "qwen3-max-preview",
        provider_id: "dashscope",
        context_window: 258048,
        max_output_tokens: 65536,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: false,
            extended_thinking: true,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "qwen3-next-80b-a3b-instruct",
        provider_id: "dashscope",
        context_window: 262144,
        max_output_tokens: 65536,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "qwen3-next-80b-a3b-thinking",
        provider_id: "dashscope",
        context_window: 262144,
        max_output_tokens: 65536,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: false,
            extended_thinking: true,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "qwen3-vl-235b-a22b-instruct",
        provider_id: "dashscope",
        context_window: 131072,
        max_output_tokens: 32768,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: true,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "qwen3-vl-235b-a22b-thinking",
        provider_id: "dashscope",
        context_window: 131072,
        max_output_tokens: 32768,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: true,
            extended_thinking: true,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "qwen3-vl-32b-instruct",
        provider_id: "dashscope",
        context_window: 131072,
        max_output_tokens: 32768,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: true,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "qwen3-vl-32b-thinking",
        provider_id: "dashscope",
        context_window: 131072,
        max_output_tokens: 32768,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: true,
            extended_thinking: true,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "qwen3-vl-plus",
        provider_id: "dashscope",
        context_window: 260096,
        max_output_tokens: 32768,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: true,
            extended_thinking: true,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "qwen3.5-plus",
        provider_id: "dashscope",
        context_window: 991808,
        max_output_tokens: 65536,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: true,
            extended_thinking: true,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "qwq-plus",
        provider_id: "dashscope",
        context_window: 98304,
        max_output_tokens: 8192,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: false,
            extended_thinking: true,
        },
        status: ModelStatus::Available,
    },
];

pub const PROVIDER_DATABRICKS: ProviderDef = ProviderDef {
    id: "databricks",
    display_name: "Databricks",
    default_base_url: "",
    protocol: ProviderProtocol::OpenAICompat,
    auth: AuthKind::Bearer,
    status: ProviderStatus::Stub,
    env_vars: &["DATABRICKS_TOKEN", "DATABRICKS_API_KEY", "DATABRICKS_HOST"],
    litellm_prefix: "databricks/",
    capabilities: ProviderCapabilities {
        chat_completions: true,
        streaming: true,
        tool_use: true,
        embeddings: true,
        vision: false,
        batch: false,
    },
};

pub const MODELS_DATABRICKS: &[ModelDef] = &[
    ModelDef {
        id: "databricks-bge-large-en",
        provider_id: "databricks",
        context_window: 512,
        max_output_tokens: 0,
        capabilities: ModelCapabilities {
            streaming: false,
            tool_use: false,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "databricks-claude-3-7-sonnet",
        provider_id: "databricks",
        context_window: 200000,
        max_output_tokens: 128000,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: false,
            extended_thinking: true,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "databricks-claude-haiku-4-5",
        provider_id: "databricks",
        context_window: 200000,
        max_output_tokens: 64000,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: false,
            extended_thinking: true,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "databricks-claude-opus-4",
        provider_id: "databricks",
        context_window: 200000,
        max_output_tokens: 32000,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: false,
            extended_thinking: true,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "databricks-claude-opus-4-1",
        provider_id: "databricks",
        context_window: 200000,
        max_output_tokens: 32000,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: false,
            extended_thinking: true,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "databricks-claude-opus-4-5",
        provider_id: "databricks",
        context_window: 200000,
        max_output_tokens: 64000,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: false,
            extended_thinking: true,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "databricks-claude-sonnet-4",
        provider_id: "databricks",
        context_window: 200000,
        max_output_tokens: 64000,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: false,
            extended_thinking: true,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "databricks-claude-sonnet-4-1",
        provider_id: "databricks",
        context_window: 200000,
        max_output_tokens: 64000,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: false,
            extended_thinking: true,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "databricks-claude-sonnet-4-5",
        provider_id: "databricks",
        context_window: 200000,
        max_output_tokens: 64000,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: false,
            extended_thinking: true,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "databricks-gemini-2-5-flash",
        provider_id: "databricks",
        context_window: 1048576,
        max_output_tokens: 65535,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "databricks-gemini-2-5-pro",
        provider_id: "databricks",
        context_window: 1048576,
        max_output_tokens: 65536,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "databricks-gemma-3-12b",
        provider_id: "databricks",
        context_window: 128000,
        max_output_tokens: 32000,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: false,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "databricks-gpt-5",
        provider_id: "databricks",
        context_window: 272000,
        max_output_tokens: 128000,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: false,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "databricks-gpt-5-1",
        provider_id: "databricks",
        context_window: 272000,
        max_output_tokens: 128000,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: false,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "databricks-gpt-5-mini",
        provider_id: "databricks",
        context_window: 272000,
        max_output_tokens: 128000,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: false,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "databricks-gpt-5-nano",
        provider_id: "databricks",
        context_window: 272000,
        max_output_tokens: 128000,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: false,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "databricks-gpt-oss-120b",
        provider_id: "databricks",
        context_window: 131072,
        max_output_tokens: 131072,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: false,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "databricks-gpt-oss-20b",
        provider_id: "databricks",
        context_window: 131072,
        max_output_tokens: 131072,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: false,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "databricks-gte-large-en",
        provider_id: "databricks",
        context_window: 8192,
        max_output_tokens: 0,
        capabilities: ModelCapabilities {
            streaming: false,
            tool_use: false,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "databricks-llama-2-70b-chat",
        provider_id: "databricks",
        context_window: 4096,
        max_output_tokens: 4096,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "databricks-llama-4-maverick",
        provider_id: "databricks",
        context_window: 128000,
        max_output_tokens: 128000,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "databricks-meta-llama-3-1-405b-instruct",
        provider_id: "databricks",
        context_window: 128000,
        max_output_tokens: 128000,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "databricks-meta-llama-3-1-8b-instruct",
        provider_id: "databricks",
        context_window: 200000,
        max_output_tokens: 128000,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: false,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "databricks-meta-llama-3-3-70b-instruct",
        provider_id: "databricks",
        context_window: 128000,
        max_output_tokens: 128000,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "databricks-meta-llama-3-70b-instruct",
        provider_id: "databricks",
        context_window: 128000,
        max_output_tokens: 128000,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "databricks-mixtral-8x7b-instruct",
        provider_id: "databricks",
        context_window: 4096,
        max_output_tokens: 4096,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "databricks-mpt-30b-instruct",
        provider_id: "databricks",
        context_window: 8192,
        max_output_tokens: 8192,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "databricks-mpt-7b-instruct",
        provider_id: "databricks",
        context_window: 8192,
        max_output_tokens: 8192,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
];

pub const PROVIDER_DATAFORSEO: ProviderDef = ProviderDef {
    id: "dataforseo",
    display_name: "Dataforseo",
    default_base_url: "",
    protocol: ProviderProtocol::OpenAICompat,
    auth: AuthKind::Bearer,
    status: ProviderStatus::Stub,
    env_vars: &["DATAFORSEO_API_KEY"],
    litellm_prefix: "dataforseo/",
    capabilities: ProviderCapabilities {
        chat_completions: false,
        streaming: false,
        tool_use: false,
        embeddings: false,
        vision: false,
        batch: false,
    },
};

pub const MODELS_DATAFORSEO: &[ModelDef] = &[ModelDef {
    id: "search",
    provider_id: "dataforseo",
    context_window: 0,
    max_output_tokens: 0,
    capabilities: ModelCapabilities {
        streaming: false,
        tool_use: false,
        vision: false,
        extended_thinking: false,
    },
    status: ModelStatus::Available,
}];

pub const PROVIDER_DEEPGRAM: ProviderDef = ProviderDef {
    id: "deepgram",
    display_name: "Deepgram",
    default_base_url: "https://api.deepgram.com/v1",
    protocol: ProviderProtocol::OpenAICompat,
    auth: AuthKind::Bearer,
    status: ProviderStatus::Wired,
    env_vars: &["DEEPGRAM_API_KEY"],
    litellm_prefix: "deepgram/",
    capabilities: ProviderCapabilities {
        chat_completions: false,
        streaming: false,
        tool_use: false,
        embeddings: false,
        vision: false,
        batch: false,
    },
};

pub const MODELS_DEEPGRAM: &[ModelDef] = &[
    ModelDef {
        id: "base",
        provider_id: "deepgram",
        context_window: 0,
        max_output_tokens: 0,
        capabilities: ModelCapabilities {
            streaming: false,
            tool_use: false,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "base-conversationalai",
        provider_id: "deepgram",
        context_window: 0,
        max_output_tokens: 0,
        capabilities: ModelCapabilities {
            streaming: false,
            tool_use: false,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "base-finance",
        provider_id: "deepgram",
        context_window: 0,
        max_output_tokens: 0,
        capabilities: ModelCapabilities {
            streaming: false,
            tool_use: false,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "base-general",
        provider_id: "deepgram",
        context_window: 0,
        max_output_tokens: 0,
        capabilities: ModelCapabilities {
            streaming: false,
            tool_use: false,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "base-meeting",
        provider_id: "deepgram",
        context_window: 0,
        max_output_tokens: 0,
        capabilities: ModelCapabilities {
            streaming: false,
            tool_use: false,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "base-phonecall",
        provider_id: "deepgram",
        context_window: 0,
        max_output_tokens: 0,
        capabilities: ModelCapabilities {
            streaming: false,
            tool_use: false,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "base-video",
        provider_id: "deepgram",
        context_window: 0,
        max_output_tokens: 0,
        capabilities: ModelCapabilities {
            streaming: false,
            tool_use: false,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "base-voicemail",
        provider_id: "deepgram",
        context_window: 0,
        max_output_tokens: 0,
        capabilities: ModelCapabilities {
            streaming: false,
            tool_use: false,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "enhanced",
        provider_id: "deepgram",
        context_window: 0,
        max_output_tokens: 0,
        capabilities: ModelCapabilities {
            streaming: false,
            tool_use: false,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "enhanced-finance",
        provider_id: "deepgram",
        context_window: 0,
        max_output_tokens: 0,
        capabilities: ModelCapabilities {
            streaming: false,
            tool_use: false,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "enhanced-general",
        provider_id: "deepgram",
        context_window: 0,
        max_output_tokens: 0,
        capabilities: ModelCapabilities {
            streaming: false,
            tool_use: false,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "enhanced-meeting",
        provider_id: "deepgram",
        context_window: 0,
        max_output_tokens: 0,
        capabilities: ModelCapabilities {
            streaming: false,
            tool_use: false,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "enhanced-phonecall",
        provider_id: "deepgram",
        context_window: 0,
        max_output_tokens: 0,
        capabilities: ModelCapabilities {
            streaming: false,
            tool_use: false,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "nova",
        provider_id: "deepgram",
        context_window: 0,
        max_output_tokens: 0,
        capabilities: ModelCapabilities {
            streaming: false,
            tool_use: false,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "nova-2",
        provider_id: "deepgram",
        context_window: 0,
        max_output_tokens: 0,
        capabilities: ModelCapabilities {
            streaming: false,
            tool_use: false,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "nova-2-atc",
        provider_id: "deepgram",
        context_window: 0,
        max_output_tokens: 0,
        capabilities: ModelCapabilities {
            streaming: false,
            tool_use: false,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "nova-2-automotive",
        provider_id: "deepgram",
        context_window: 0,
        max_output_tokens: 0,
        capabilities: ModelCapabilities {
            streaming: false,
            tool_use: false,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "nova-2-conversationalai",
        provider_id: "deepgram",
        context_window: 0,
        max_output_tokens: 0,
        capabilities: ModelCapabilities {
            streaming: false,
            tool_use: false,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "nova-2-drivethru",
        provider_id: "deepgram",
        context_window: 0,
        max_output_tokens: 0,
        capabilities: ModelCapabilities {
            streaming: false,
            tool_use: false,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "nova-2-finance",
        provider_id: "deepgram",
        context_window: 0,
        max_output_tokens: 0,
        capabilities: ModelCapabilities {
            streaming: false,
            tool_use: false,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "nova-2-general",
        provider_id: "deepgram",
        context_window: 0,
        max_output_tokens: 0,
        capabilities: ModelCapabilities {
            streaming: false,
            tool_use: false,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "nova-2-meeting",
        provider_id: "deepgram",
        context_window: 0,
        max_output_tokens: 0,
        capabilities: ModelCapabilities {
            streaming: false,
            tool_use: false,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "nova-2-phonecall",
        provider_id: "deepgram",
        context_window: 0,
        max_output_tokens: 0,
        capabilities: ModelCapabilities {
            streaming: false,
            tool_use: false,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "nova-2-video",
        provider_id: "deepgram",
        context_window: 0,
        max_output_tokens: 0,
        capabilities: ModelCapabilities {
            streaming: false,
            tool_use: false,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "nova-2-voicemail",
        provider_id: "deepgram",
        context_window: 0,
        max_output_tokens: 0,
        capabilities: ModelCapabilities {
            streaming: false,
            tool_use: false,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "nova-3",
        provider_id: "deepgram",
        context_window: 0,
        max_output_tokens: 0,
        capabilities: ModelCapabilities {
            streaming: false,
            tool_use: false,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "nova-3-general",
        provider_id: "deepgram",
        context_window: 0,
        max_output_tokens: 0,
        capabilities: ModelCapabilities {
            streaming: false,
            tool_use: false,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "nova-3-medical",
        provider_id: "deepgram",
        context_window: 0,
        max_output_tokens: 0,
        capabilities: ModelCapabilities {
            streaming: false,
            tool_use: false,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "nova-general",
        provider_id: "deepgram",
        context_window: 0,
        max_output_tokens: 0,
        capabilities: ModelCapabilities {
            streaming: false,
            tool_use: false,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "nova-phonecall",
        provider_id: "deepgram",
        context_window: 0,
        max_output_tokens: 0,
        capabilities: ModelCapabilities {
            streaming: false,
            tool_use: false,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "whisper",
        provider_id: "deepgram",
        context_window: 0,
        max_output_tokens: 0,
        capabilities: ModelCapabilities {
            streaming: false,
            tool_use: false,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "whisper-base",
        provider_id: "deepgram",
        context_window: 0,
        max_output_tokens: 0,
        capabilities: ModelCapabilities {
            streaming: false,
            tool_use: false,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "whisper-large",
        provider_id: "deepgram",
        context_window: 0,
        max_output_tokens: 0,
        capabilities: ModelCapabilities {
            streaming: false,
            tool_use: false,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "whisper-medium",
        provider_id: "deepgram",
        context_window: 0,
        max_output_tokens: 0,
        capabilities: ModelCapabilities {
            streaming: false,
            tool_use: false,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "whisper-small",
        provider_id: "deepgram",
        context_window: 0,
        max_output_tokens: 0,
        capabilities: ModelCapabilities {
            streaming: false,
            tool_use: false,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "whisper-tiny",
        provider_id: "deepgram",
        context_window: 0,
        max_output_tokens: 0,
        capabilities: ModelCapabilities {
            streaming: false,
            tool_use: false,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
];

pub const PROVIDER_DEEPINFRA: ProviderDef = ProviderDef {
    id: "deepinfra",
    display_name: "DeepInfra",
    default_base_url: "https://api.deepinfra.com/v1/openai",
    protocol: ProviderProtocol::OpenAICompat,
    auth: AuthKind::Bearer,
    status: ProviderStatus::Stub,
    env_vars: &["DEEPINFRA_API_KEY"],
    litellm_prefix: "deepinfra/",
    capabilities: ProviderCapabilities {
        chat_completions: true,
        streaming: true,
        tool_use: true,
        embeddings: false,
        vision: true,
        batch: false,
    },
};

pub const MODELS_DEEPINFRA: &[ModelDef] = &[
    ModelDef {
        id: "Gryphe/MythoMax-L2-13b",
        provider_id: "deepinfra",
        context_window: 4096,
        max_output_tokens: 4096,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "NousResearch/Hermes-3-Llama-3.1-405B",
        provider_id: "deepinfra",
        context_window: 131072,
        max_output_tokens: 131072,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "NousResearch/Hermes-3-Llama-3.1-70B",
        provider_id: "deepinfra",
        context_window: 131072,
        max_output_tokens: 131072,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: false,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "Qwen/QwQ-32B",
        provider_id: "deepinfra",
        context_window: 131072,
        max_output_tokens: 131072,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "Qwen/Qwen2.5-72B-Instruct",
        provider_id: "deepinfra",
        context_window: 32768,
        max_output_tokens: 32768,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "Qwen/Qwen2.5-7B-Instruct",
        provider_id: "deepinfra",
        context_window: 32768,
        max_output_tokens: 32768,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: false,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "Qwen/Qwen2.5-VL-32B-Instruct",
        provider_id: "deepinfra",
        context_window: 128000,
        max_output_tokens: 128000,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: true,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "Qwen/Qwen3-14B",
        provider_id: "deepinfra",
        context_window: 40960,
        max_output_tokens: 40960,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "Qwen/Qwen3-235B-A22B",
        provider_id: "deepinfra",
        context_window: 40960,
        max_output_tokens: 40960,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "Qwen/Qwen3-235B-A22B-Instruct-2507",
        provider_id: "deepinfra",
        context_window: 262144,
        max_output_tokens: 262144,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "Qwen/Qwen3-235B-A22B-Thinking-2507",
        provider_id: "deepinfra",
        context_window: 262144,
        max_output_tokens: 262144,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "Qwen/Qwen3-30B-A3B",
        provider_id: "deepinfra",
        context_window: 40960,
        max_output_tokens: 40960,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "Qwen/Qwen3-32B",
        provider_id: "deepinfra",
        context_window: 40960,
        max_output_tokens: 40960,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "Qwen/Qwen3-Coder-480B-A35B-Instruct",
        provider_id: "deepinfra",
        context_window: 262144,
        max_output_tokens: 262144,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "Qwen/Qwen3-Coder-480B-A35B-Instruct-Turbo",
        provider_id: "deepinfra",
        context_window: 262144,
        max_output_tokens: 262144,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "Qwen/Qwen3-Next-80B-A3B-Instruct",
        provider_id: "deepinfra",
        context_window: 262144,
        max_output_tokens: 262144,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "Qwen/Qwen3-Next-80B-A3B-Thinking",
        provider_id: "deepinfra",
        context_window: 262144,
        max_output_tokens: 262144,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "Sao10K/L3-8B-Lunaris-v1-Turbo",
        provider_id: "deepinfra",
        context_window: 8192,
        max_output_tokens: 8192,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: false,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "Sao10K/L3.1-70B-Euryale-v2.2",
        provider_id: "deepinfra",
        context_window: 131072,
        max_output_tokens: 131072,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: false,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "Sao10K/L3.3-70B-Euryale-v2.3",
        provider_id: "deepinfra",
        context_window: 131072,
        max_output_tokens: 131072,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: false,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "allenai/olmOCR-7B-0725-FP8",
        provider_id: "deepinfra",
        context_window: 16384,
        max_output_tokens: 16384,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: false,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "anthropic/claude-3-7-sonnet-latest",
        provider_id: "deepinfra",
        context_window: 200000,
        max_output_tokens: 200000,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "anthropic/claude-4-opus",
        provider_id: "deepinfra",
        context_window: 200000,
        max_output_tokens: 200000,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "anthropic/claude-4-sonnet",
        provider_id: "deepinfra",
        context_window: 200000,
        max_output_tokens: 200000,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "deepseek-ai/DeepSeek-R1",
        provider_id: "deepinfra",
        context_window: 163840,
        max_output_tokens: 163840,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "deepseek-ai/DeepSeek-R1-0528",
        provider_id: "deepinfra",
        context_window: 163840,
        max_output_tokens: 163840,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "deepseek-ai/DeepSeek-R1-0528-Turbo",
        provider_id: "deepinfra",
        context_window: 32768,
        max_output_tokens: 32768,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "deepseek-ai/DeepSeek-R1-Distill-Llama-70B",
        provider_id: "deepinfra",
        context_window: 131072,
        max_output_tokens: 131072,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: false,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "deepseek-ai/DeepSeek-R1-Distill-Qwen-32B",
        provider_id: "deepinfra",
        context_window: 131072,
        max_output_tokens: 131072,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "deepseek-ai/DeepSeek-R1-Turbo",
        provider_id: "deepinfra",
        context_window: 40960,
        max_output_tokens: 40960,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "deepseek-ai/DeepSeek-V3",
        provider_id: "deepinfra",
        context_window: 163840,
        max_output_tokens: 163840,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "deepseek-ai/DeepSeek-V3-0324",
        provider_id: "deepinfra",
        context_window: 163840,
        max_output_tokens: 163840,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "deepseek-ai/DeepSeek-V3.1",
        provider_id: "deepinfra",
        context_window: 163840,
        max_output_tokens: 163840,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: false,
            extended_thinking: true,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "deepseek-ai/DeepSeek-V3.1-Terminus",
        provider_id: "deepinfra",
        context_window: 163840,
        max_output_tokens: 163840,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "google/gemini-2.0-flash-001",
        provider_id: "deepinfra",
        context_window: 1000000,
        max_output_tokens: 1000000,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Deprecated,
    },
    ModelDef {
        id: "google/gemini-2.5-flash",
        provider_id: "deepinfra",
        context_window: 1000000,
        max_output_tokens: 1000000,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "google/gemini-2.5-pro",
        provider_id: "deepinfra",
        context_window: 1000000,
        max_output_tokens: 1000000,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "google/gemma-3-12b-it",
        provider_id: "deepinfra",
        context_window: 131072,
        max_output_tokens: 131072,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "google/gemma-3-27b-it",
        provider_id: "deepinfra",
        context_window: 131072,
        max_output_tokens: 131072,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "google/gemma-3-4b-it",
        provider_id: "deepinfra",
        context_window: 131072,
        max_output_tokens: 131072,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "meta-llama/Llama-3.2-11B-Vision-Instruct",
        provider_id: "deepinfra",
        context_window: 131072,
        max_output_tokens: 131072,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: false,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "meta-llama/Llama-3.2-3B-Instruct",
        provider_id: "deepinfra",
        context_window: 131072,
        max_output_tokens: 131072,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "meta-llama/Llama-3.3-70B-Instruct",
        provider_id: "deepinfra",
        context_window: 131072,
        max_output_tokens: 131072,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "meta-llama/Llama-3.3-70B-Instruct-Turbo",
        provider_id: "deepinfra",
        context_window: 131072,
        max_output_tokens: 131072,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "meta-llama/Llama-4-Maverick-17B-128E-Instruct-FP8",
        provider_id: "deepinfra",
        context_window: 1048576,
        max_output_tokens: 1048576,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "meta-llama/Llama-4-Scout-17B-16E-Instruct",
        provider_id: "deepinfra",
        context_window: 327680,
        max_output_tokens: 327680,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "meta-llama/Llama-Guard-3-8B",
        provider_id: "deepinfra",
        context_window: 131072,
        max_output_tokens: 131072,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: false,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "meta-llama/Llama-Guard-4-12B",
        provider_id: "deepinfra",
        context_window: 163840,
        max_output_tokens: 163840,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: false,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "meta-llama/Meta-Llama-3-8B-Instruct",
        provider_id: "deepinfra",
        context_window: 8192,
        max_output_tokens: 8192,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "meta-llama/Meta-Llama-3.1-70B-Instruct",
        provider_id: "deepinfra",
        context_window: 131072,
        max_output_tokens: 131072,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "meta-llama/Meta-Llama-3.1-70B-Instruct-Turbo",
        provider_id: "deepinfra",
        context_window: 131072,
        max_output_tokens: 131072,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "meta-llama/Meta-Llama-3.1-8B-Instruct",
        provider_id: "deepinfra",
        context_window: 131072,
        max_output_tokens: 131072,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "meta-llama/Meta-Llama-3.1-8B-Instruct-Turbo",
        provider_id: "deepinfra",
        context_window: 131072,
        max_output_tokens: 131072,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "microsoft/WizardLM-2-8x22B",
        provider_id: "deepinfra",
        context_window: 65536,
        max_output_tokens: 65536,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: false,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "microsoft/phi-4",
        provider_id: "deepinfra",
        context_window: 16384,
        max_output_tokens: 16384,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "mistralai/Mistral-Nemo-Instruct-2407",
        provider_id: "deepinfra",
        context_window: 131072,
        max_output_tokens: 131072,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "mistralai/Mistral-Small-24B-Instruct-2501",
        provider_id: "deepinfra",
        context_window: 32768,
        max_output_tokens: 32768,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "mistralai/Mistral-Small-3.2-24B-Instruct-2506",
        provider_id: "deepinfra",
        context_window: 128000,
        max_output_tokens: 128000,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "mistralai/Mixtral-8x7B-Instruct-v0.1",
        provider_id: "deepinfra",
        context_window: 32768,
        max_output_tokens: 32768,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "moonshotai/Kimi-K2-Instruct",
        provider_id: "deepinfra",
        context_window: 131072,
        max_output_tokens: 131072,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "moonshotai/Kimi-K2-Instruct-0905",
        provider_id: "deepinfra",
        context_window: 262144,
        max_output_tokens: 262144,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "nvidia/Llama-3.1-Nemotron-70B-Instruct",
        provider_id: "deepinfra",
        context_window: 131072,
        max_output_tokens: 131072,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "nvidia/Llama-3.3-Nemotron-Super-49B-v1.5",
        provider_id: "deepinfra",
        context_window: 131072,
        max_output_tokens: 131072,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "nvidia/NVIDIA-Nemotron-Nano-9B-v2",
        provider_id: "deepinfra",
        context_window: 131072,
        max_output_tokens: 131072,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "openai/gpt-oss-120b",
        provider_id: "deepinfra",
        context_window: 131072,
        max_output_tokens: 131072,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "openai/gpt-oss-20b",
        provider_id: "deepinfra",
        context_window: 131072,
        max_output_tokens: 131072,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "zai-org/GLM-4.5",
        provider_id: "deepinfra",
        context_window: 131072,
        max_output_tokens: 131072,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
];

pub const PROVIDER_DEEPSEEK: ProviderDef = ProviderDef {
    id: "deepseek",
    display_name: "DeepSeek",
    default_base_url: "https://api.deepseek.com",
    protocol: ProviderProtocol::OpenAICompat,
    auth: AuthKind::Bearer,
    status: ProviderStatus::Stub,
    env_vars: &["DEEPSEEK_API_KEY"],
    litellm_prefix: "deepseek/",
    capabilities: ProviderCapabilities {
        chat_completions: true,
        streaming: true,
        tool_use: true,
        embeddings: false,
        vision: false,
        batch: false,
    },
};

pub const MODELS_DEEPSEEK: &[ModelDef] = &[
    ModelDef {
        id: "deepseek-chat",
        provider_id: "deepseek",
        context_window: 131072,
        max_output_tokens: 8192,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "deepseek-coder",
        provider_id: "deepseek",
        context_window: 128000,
        max_output_tokens: 4096,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "deepseek-r1",
        provider_id: "deepseek",
        context_window: 65536,
        max_output_tokens: 8192,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: false,
            extended_thinking: true,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "deepseek-reasoner",
        provider_id: "deepseek",
        context_window: 131072,
        max_output_tokens: 65536,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: false,
            vision: false,
            extended_thinking: true,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "deepseek-v3",
        provider_id: "deepseek",
        context_window: 65536,
        max_output_tokens: 8192,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "deepseek-v3.2",
        provider_id: "deepseek",
        context_window: 163840,
        max_output_tokens: 163840,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: false,
            extended_thinking: true,
        },
        status: ModelStatus::Available,
    },
];

pub const PROVIDER_DUCKDUCKGO: ProviderDef = ProviderDef {
    id: "duckduckgo",
    display_name: "Duckduckgo",
    default_base_url: "",
    protocol: ProviderProtocol::OpenAICompat,
    auth: AuthKind::Bearer,
    status: ProviderStatus::Stub,
    env_vars: &["DUCKDUCKGO_API_KEY"],
    litellm_prefix: "duckduckgo/",
    capabilities: ProviderCapabilities {
        chat_completions: false,
        streaming: false,
        tool_use: false,
        embeddings: false,
        vision: false,
        batch: false,
    },
};

pub const MODELS_DUCKDUCKGO: &[ModelDef] = &[ModelDef {
    id: "search",
    provider_id: "duckduckgo",
    context_window: 0,
    max_output_tokens: 0,
    capabilities: ModelCapabilities {
        streaming: false,
        tool_use: false,
        vision: false,
        extended_thinking: false,
    },
    status: ModelStatus::Available,
}];

pub const PROVIDER_ELEVENLABS: ProviderDef = ProviderDef {
    id: "elevenlabs",
    display_name: "ElevenLabs",
    default_base_url: "https://api.elevenlabs.io/v1",
    protocol: ProviderProtocol::OpenAICompat,
    auth: AuthKind::Bearer,
    status: ProviderStatus::Wired,
    env_vars: &["ELEVENLABS_API_KEY"],
    litellm_prefix: "elevenlabs/",
    capabilities: ProviderCapabilities {
        chat_completions: false,
        streaming: false,
        tool_use: false,
        embeddings: false,
        vision: false,
        batch: false,
    },
};

pub const MODELS_ELEVENLABS: &[ModelDef] = &[
    ModelDef {
        id: "eleven_multilingual_v2",
        provider_id: "elevenlabs",
        context_window: 0,
        max_output_tokens: 0,
        capabilities: ModelCapabilities {
            streaming: false,
            tool_use: false,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "eleven_v3",
        provider_id: "elevenlabs",
        context_window: 0,
        max_output_tokens: 0,
        capabilities: ModelCapabilities {
            streaming: false,
            tool_use: false,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "scribe_v1",
        provider_id: "elevenlabs",
        context_window: 0,
        max_output_tokens: 0,
        capabilities: ModelCapabilities {
            streaming: false,
            tool_use: false,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "scribe_v1_experimental",
        provider_id: "elevenlabs",
        context_window: 0,
        max_output_tokens: 0,
        capabilities: ModelCapabilities {
            streaming: false,
            tool_use: false,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
];

pub const PROVIDER_EXA_AI: ProviderDef = ProviderDef {
    id: "exa_ai",
    display_name: "Exa",
    default_base_url: "https://api.exa.ai",
    protocol: ProviderProtocol::OpenAICompat,
    auth: AuthKind::Bearer,
    status: ProviderStatus::Stub,
    env_vars: &["EXA_API_KEY"],
    litellm_prefix: "exa_ai/",
    capabilities: ProviderCapabilities {
        chat_completions: false,
        streaming: false,
        tool_use: false,
        embeddings: false,
        vision: false,
        batch: false,
    },
};

pub const MODELS_EXA_AI: &[ModelDef] = &[ModelDef {
    id: "search",
    provider_id: "exa_ai",
    context_window: 0,
    max_output_tokens: 0,
    capabilities: ModelCapabilities {
        streaming: false,
        tool_use: false,
        vision: false,
        extended_thinking: false,
    },
    status: ModelStatus::Available,
}];

pub const PROVIDER_FAL_AI: ProviderDef = ProviderDef {
    id: "fal_ai",
    display_name: "FAL AI",
    default_base_url: "",
    protocol: ProviderProtocol::OpenAICompat,
    auth: AuthKind::Bearer,
    status: ProviderStatus::Stub,
    env_vars: &["FAL_AI_API_KEY"],
    litellm_prefix: "fal_ai/",
    capabilities: ProviderCapabilities {
        chat_completions: false,
        streaming: false,
        tool_use: false,
        embeddings: false,
        vision: false,
        batch: false,
    },
};

pub const MODELS_FAL_AI: &[ModelDef] = &[
    ModelDef {
        id: "bria/text-to-image/3.2",
        provider_id: "fal_ai",
        context_window: 0,
        max_output_tokens: 0,
        capabilities: ModelCapabilities {
            streaming: false,
            tool_use: false,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "fal-ai/bytedance/dreamina/v3.1/text-to-image",
        provider_id: "fal_ai",
        context_window: 0,
        max_output_tokens: 0,
        capabilities: ModelCapabilities {
            streaming: false,
            tool_use: false,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "fal-ai/bytedance/seedream/v3/text-to-image",
        provider_id: "fal_ai",
        context_window: 0,
        max_output_tokens: 0,
        capabilities: ModelCapabilities {
            streaming: false,
            tool_use: false,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "fal-ai/flux-pro/v1.1",
        provider_id: "fal_ai",
        context_window: 0,
        max_output_tokens: 0,
        capabilities: ModelCapabilities {
            streaming: false,
            tool_use: false,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "fal-ai/flux-pro/v1.1-ultra",
        provider_id: "fal_ai",
        context_window: 0,
        max_output_tokens: 0,
        capabilities: ModelCapabilities {
            streaming: false,
            tool_use: false,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "fal-ai/flux/schnell",
        provider_id: "fal_ai",
        context_window: 0,
        max_output_tokens: 0,
        capabilities: ModelCapabilities {
            streaming: false,
            tool_use: false,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "fal-ai/ideogram/v3",
        provider_id: "fal_ai",
        context_window: 0,
        max_output_tokens: 0,
        capabilities: ModelCapabilities {
            streaming: false,
            tool_use: false,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "fal-ai/imagen4/preview",
        provider_id: "fal_ai",
        context_window: 0,
        max_output_tokens: 0,
        capabilities: ModelCapabilities {
            streaming: false,
            tool_use: false,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "fal-ai/imagen4/preview/fast",
        provider_id: "fal_ai",
        context_window: 0,
        max_output_tokens: 0,
        capabilities: ModelCapabilities {
            streaming: false,
            tool_use: false,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "fal-ai/imagen4/preview/ultra",
        provider_id: "fal_ai",
        context_window: 0,
        max_output_tokens: 0,
        capabilities: ModelCapabilities {
            streaming: false,
            tool_use: false,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "fal-ai/recraft/v3/text-to-image",
        provider_id: "fal_ai",
        context_window: 0,
        max_output_tokens: 0,
        capabilities: ModelCapabilities {
            streaming: false,
            tool_use: false,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "fal-ai/stable-diffusion-v35-medium",
        provider_id: "fal_ai",
        context_window: 0,
        max_output_tokens: 0,
        capabilities: ModelCapabilities {
            streaming: false,
            tool_use: false,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
];

pub const PROVIDER_FEATHERLESS_AI: ProviderDef = ProviderDef {
    id: "featherless_ai",
    display_name: "Featherless AI",
    default_base_url: "https://api.featherless.ai/v1",
    protocol: ProviderProtocol::OpenAICompat,
    auth: AuthKind::Bearer,
    status: ProviderStatus::Stub,
    env_vars: &["FEATHERLESS_API_KEY"],
    litellm_prefix: "featherless_ai/",
    capabilities: ProviderCapabilities {
        chat_completions: true,
        streaming: true,
        tool_use: false,
        embeddings: false,
        vision: false,
        batch: false,
    },
};

pub const MODELS_FEATHERLESS_AI: &[ModelDef] = &[
    ModelDef {
        id: "featherless-ai/Qwerky-72B",
        provider_id: "featherless_ai",
        context_window: 32768,
        max_output_tokens: 4096,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: false,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "featherless-ai/Qwerky-QwQ-32B",
        provider_id: "featherless_ai",
        context_window: 32768,
        max_output_tokens: 4096,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: false,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
];

pub const PROVIDER_FIRECRAWL: ProviderDef = ProviderDef {
    id: "firecrawl",
    display_name: "Firecrawl",
    default_base_url: "",
    protocol: ProviderProtocol::OpenAICompat,
    auth: AuthKind::Bearer,
    status: ProviderStatus::Stub,
    env_vars: &["FIRECRAWL_API_KEY"],
    litellm_prefix: "firecrawl/",
    capabilities: ProviderCapabilities {
        chat_completions: false,
        streaming: false,
        tool_use: false,
        embeddings: false,
        vision: false,
        batch: false,
    },
};

pub const MODELS_FIRECRAWL: &[ModelDef] = &[ModelDef {
    id: "search",
    provider_id: "firecrawl",
    context_window: 0,
    max_output_tokens: 0,
    capabilities: ModelCapabilities {
        streaming: false,
        tool_use: false,
        vision: false,
        extended_thinking: false,
    },
    status: ModelStatus::Available,
}];

pub const PROVIDER_FIREWORKS_AI: ProviderDef = ProviderDef {
    id: "fireworks_ai",
    display_name: "Fireworks AI",
    default_base_url: "https://api.fireworks.ai/inference/v1",
    protocol: ProviderProtocol::OpenAICompat,
    auth: AuthKind::Bearer,
    status: ProviderStatus::Stub,
    env_vars: &["FIREWORKS_API_KEY"],
    litellm_prefix: "fireworks_ai/",
    capabilities: ProviderCapabilities {
        chat_completions: true,
        streaming: true,
        tool_use: true,
        embeddings: true,
        vision: true,
        batch: false,
    },
};

pub const MODELS_FIREWORKS_AI: &[ModelDef] = &[
    ModelDef {
        id: "accounts/fireworks/models/",
        provider_id: "fireworks_ai",
        context_window: 40960,
        max_output_tokens: 40960,
        capabilities: ModelCapabilities {
            streaming: false,
            tool_use: false,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "accounts/fireworks/models/SSD-1B",
        provider_id: "fireworks_ai",
        context_window: 4096,
        max_output_tokens: 4096,
        capabilities: ModelCapabilities {
            streaming: false,
            tool_use: false,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "accounts/fireworks/models/chronos-hermes-13b-v2",
        provider_id: "fireworks_ai",
        context_window: 4096,
        max_output_tokens: 4096,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: false,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "accounts/fireworks/models/code-llama-13b",
        provider_id: "fireworks_ai",
        context_window: 16384,
        max_output_tokens: 16384,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: false,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "accounts/fireworks/models/code-llama-13b-instruct",
        provider_id: "fireworks_ai",
        context_window: 16384,
        max_output_tokens: 16384,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: false,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "accounts/fireworks/models/code-llama-13b-python",
        provider_id: "fireworks_ai",
        context_window: 16384,
        max_output_tokens: 16384,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: false,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "accounts/fireworks/models/code-llama-34b",
        provider_id: "fireworks_ai",
        context_window: 16384,
        max_output_tokens: 16384,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: false,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "accounts/fireworks/models/code-llama-34b-instruct",
        provider_id: "fireworks_ai",
        context_window: 16384,
        max_output_tokens: 16384,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: false,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "accounts/fireworks/models/code-llama-34b-python",
        provider_id: "fireworks_ai",
        context_window: 16384,
        max_output_tokens: 16384,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: false,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "accounts/fireworks/models/code-llama-70b",
        provider_id: "fireworks_ai",
        context_window: 4096,
        max_output_tokens: 4096,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: false,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "accounts/fireworks/models/code-llama-70b-instruct",
        provider_id: "fireworks_ai",
        context_window: 4096,
        max_output_tokens: 4096,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: false,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "accounts/fireworks/models/code-llama-70b-python",
        provider_id: "fireworks_ai",
        context_window: 4096,
        max_output_tokens: 4096,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: false,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "accounts/fireworks/models/code-llama-7b",
        provider_id: "fireworks_ai",
        context_window: 16384,
        max_output_tokens: 16384,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: false,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "accounts/fireworks/models/code-llama-7b-instruct",
        provider_id: "fireworks_ai",
        context_window: 16384,
        max_output_tokens: 16384,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: false,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "accounts/fireworks/models/code-llama-7b-python",
        provider_id: "fireworks_ai",
        context_window: 16384,
        max_output_tokens: 16384,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: false,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "accounts/fireworks/models/code-qwen-1p5-7b",
        provider_id: "fireworks_ai",
        context_window: 65536,
        max_output_tokens: 65536,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: false,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "accounts/fireworks/models/codegemma-2b",
        provider_id: "fireworks_ai",
        context_window: 8192,
        max_output_tokens: 8192,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: false,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "accounts/fireworks/models/codegemma-7b",
        provider_id: "fireworks_ai",
        context_window: 8192,
        max_output_tokens: 8192,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: false,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "accounts/fireworks/models/cogito-671b-v2-p1",
        provider_id: "fireworks_ai",
        context_window: 163840,
        max_output_tokens: 163840,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: false,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "accounts/fireworks/models/cogito-v1-preview-llama-3b",
        provider_id: "fireworks_ai",
        context_window: 131072,
        max_output_tokens: 131072,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: false,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "accounts/fireworks/models/cogito-v1-preview-llama-70b",
        provider_id: "fireworks_ai",
        context_window: 131072,
        max_output_tokens: 131072,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: false,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "accounts/fireworks/models/cogito-v1-preview-llama-8b",
        provider_id: "fireworks_ai",
        context_window: 131072,
        max_output_tokens: 131072,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: false,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "accounts/fireworks/models/cogito-v1-preview-qwen-14b",
        provider_id: "fireworks_ai",
        context_window: 131072,
        max_output_tokens: 131072,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: false,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "accounts/fireworks/models/cogito-v1-preview-qwen-32b",
        provider_id: "fireworks_ai",
        context_window: 131072,
        max_output_tokens: 131072,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: false,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "accounts/fireworks/models/dbrx-instruct",
        provider_id: "fireworks_ai",
        context_window: 32768,
        max_output_tokens: 32768,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: false,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "accounts/fireworks/models/deepseek-coder-1b-base",
        provider_id: "fireworks_ai",
        context_window: 16384,
        max_output_tokens: 16384,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: false,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "accounts/fireworks/models/deepseek-coder-33b-instruct",
        provider_id: "fireworks_ai",
        context_window: 16384,
        max_output_tokens: 16384,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: false,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "accounts/fireworks/models/deepseek-coder-7b-base",
        provider_id: "fireworks_ai",
        context_window: 4096,
        max_output_tokens: 4096,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: false,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "accounts/fireworks/models/deepseek-coder-7b-base-v1p5",
        provider_id: "fireworks_ai",
        context_window: 4096,
        max_output_tokens: 4096,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: false,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "accounts/fireworks/models/deepseek-coder-7b-instruct-v1p5",
        provider_id: "fireworks_ai",
        context_window: 4096,
        max_output_tokens: 4096,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: false,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "accounts/fireworks/models/deepseek-coder-v2-instruct",
        provider_id: "fireworks_ai",
        context_window: 65536,
        max_output_tokens: 65536,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: false,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "accounts/fireworks/models/deepseek-coder-v2-lite-base",
        provider_id: "fireworks_ai",
        context_window: 163840,
        max_output_tokens: 163840,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: false,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "accounts/fireworks/models/deepseek-coder-v2-lite-instruct",
        provider_id: "fireworks_ai",
        context_window: 163840,
        max_output_tokens: 163840,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: false,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "accounts/fireworks/models/deepseek-prover-v2",
        provider_id: "fireworks_ai",
        context_window: 163840,
        max_output_tokens: 163840,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: false,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "accounts/fireworks/models/deepseek-r1",
        provider_id: "fireworks_ai",
        context_window: 128000,
        max_output_tokens: 20480,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: false,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "accounts/fireworks/models/deepseek-r1-0528",
        provider_id: "fireworks_ai",
        context_window: 160000,
        max_output_tokens: 160000,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: false,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "accounts/fireworks/models/deepseek-r1-0528-distill-qwen3-8b",
        provider_id: "fireworks_ai",
        context_window: 131072,
        max_output_tokens: 131072,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: false,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "accounts/fireworks/models/deepseek-r1-basic",
        provider_id: "fireworks_ai",
        context_window: 128000,
        max_output_tokens: 20480,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: false,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "accounts/fireworks/models/deepseek-r1-distill-llama-70b",
        provider_id: "fireworks_ai",
        context_window: 131072,
        max_output_tokens: 131072,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: false,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "accounts/fireworks/models/deepseek-r1-distill-llama-8b",
        provider_id: "fireworks_ai",
        context_window: 131072,
        max_output_tokens: 131072,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: false,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "accounts/fireworks/models/deepseek-r1-distill-qwen-14b",
        provider_id: "fireworks_ai",
        context_window: 131072,
        max_output_tokens: 131072,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: false,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "accounts/fireworks/models/deepseek-r1-distill-qwen-1p5b",
        provider_id: "fireworks_ai",
        context_window: 131072,
        max_output_tokens: 131072,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: false,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "accounts/fireworks/models/deepseek-r1-distill-qwen-32b",
        provider_id: "fireworks_ai",
        context_window: 131072,
        max_output_tokens: 131072,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: false,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "accounts/fireworks/models/deepseek-r1-distill-qwen-7b",
        provider_id: "fireworks_ai",
        context_window: 131072,
        max_output_tokens: 131072,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: false,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "accounts/fireworks/models/deepseek-v2-lite-chat",
        provider_id: "fireworks_ai",
        context_window: 163840,
        max_output_tokens: 163840,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: false,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "accounts/fireworks/models/deepseek-v2p5",
        provider_id: "fireworks_ai",
        context_window: 32768,
        max_output_tokens: 32768,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: false,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "accounts/fireworks/models/deepseek-v3",
        provider_id: "fireworks_ai",
        context_window: 128000,
        max_output_tokens: 8192,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: false,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "accounts/fireworks/models/deepseek-v3-0324",
        provider_id: "fireworks_ai",
        context_window: 163840,
        max_output_tokens: 163840,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: false,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "accounts/fireworks/models/deepseek-v3p1",
        provider_id: "fireworks_ai",
        context_window: 128000,
        max_output_tokens: 8192,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: false,
            extended_thinking: true,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "accounts/fireworks/models/deepseek-v3p1-terminus",
        provider_id: "fireworks_ai",
        context_window: 128000,
        max_output_tokens: 8192,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: false,
            extended_thinking: true,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "accounts/fireworks/models/deepseek-v3p2",
        provider_id: "fireworks_ai",
        context_window: 163840,
        max_output_tokens: 163840,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: false,
            extended_thinking: true,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "accounts/fireworks/models/devstral-small-2505",
        provider_id: "fireworks_ai",
        context_window: 131072,
        max_output_tokens: 131072,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: false,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "accounts/fireworks/models/dobby-mini-unhinged-plus-llama-3-1-8b",
        provider_id: "fireworks_ai",
        context_window: 131072,
        max_output_tokens: 131072,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: false,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "accounts/fireworks/models/dobby-unhinged-llama-3-3-70b-new",
        provider_id: "fireworks_ai",
        context_window: 131072,
        max_output_tokens: 131072,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: false,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "accounts/fireworks/models/dolphin-2-9-2-qwen2-72b",
        provider_id: "fireworks_ai",
        context_window: 131072,
        max_output_tokens: 131072,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: false,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "accounts/fireworks/models/dolphin-2p6-mixtral-8x7b",
        provider_id: "fireworks_ai",
        context_window: 32768,
        max_output_tokens: 32768,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: false,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "accounts/fireworks/models/ernie-4p5-21b-a3b-pt",
        provider_id: "fireworks_ai",
        context_window: 4096,
        max_output_tokens: 4096,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: false,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "accounts/fireworks/models/ernie-4p5-300b-a47b-pt",
        provider_id: "fireworks_ai",
        context_window: 4096,
        max_output_tokens: 4096,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: false,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "accounts/fireworks/models/fare-20b",
        provider_id: "fireworks_ai",
        context_window: 131072,
        max_output_tokens: 131072,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: false,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "accounts/fireworks/models/firefunction-v1",
        provider_id: "fireworks_ai",
        context_window: 32768,
        max_output_tokens: 32768,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: false,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "accounts/fireworks/models/firefunction-v2",
        provider_id: "fireworks_ai",
        context_window: 8192,
        max_output_tokens: 8192,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "accounts/fireworks/models/firellava-13b",
        provider_id: "fireworks_ai",
        context_window: 4096,
        max_output_tokens: 4096,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: false,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "accounts/fireworks/models/firesearch-ocr-v6",
        provider_id: "fireworks_ai",
        context_window: 8192,
        max_output_tokens: 8192,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: false,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "accounts/fireworks/models/fireworks-asr-large",
        provider_id: "fireworks_ai",
        context_window: 4096,
        max_output_tokens: 4096,
        capabilities: ModelCapabilities {
            streaming: false,
            tool_use: false,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "accounts/fireworks/models/fireworks-asr-v2",
        provider_id: "fireworks_ai",
        context_window: 4096,
        max_output_tokens: 4096,
        capabilities: ModelCapabilities {
            streaming: false,
            tool_use: false,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "accounts/fireworks/models/flux-1-dev",
        provider_id: "fireworks_ai",
        context_window: 4096,
        max_output_tokens: 4096,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: false,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "accounts/fireworks/models/flux-1-dev-controlnet-union",
        provider_id: "fireworks_ai",
        context_window: 4096,
        max_output_tokens: 4096,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: false,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "accounts/fireworks/models/flux-1-dev-fp8",
        provider_id: "fireworks_ai",
        context_window: 4096,
        max_output_tokens: 4096,
        capabilities: ModelCapabilities {
            streaming: false,
            tool_use: false,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "accounts/fireworks/models/flux-1-schnell",
        provider_id: "fireworks_ai",
        context_window: 4096,
        max_output_tokens: 4096,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: false,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "accounts/fireworks/models/flux-1-schnell-fp8",
        provider_id: "fireworks_ai",
        context_window: 4096,
        max_output_tokens: 4096,
        capabilities: ModelCapabilities {
            streaming: false,
            tool_use: false,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "accounts/fireworks/models/flux-kontext-max",
        provider_id: "fireworks_ai",
        context_window: 4096,
        max_output_tokens: 4096,
        capabilities: ModelCapabilities {
            streaming: false,
            tool_use: false,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "accounts/fireworks/models/flux-kontext-pro",
        provider_id: "fireworks_ai",
        context_window: 4096,
        max_output_tokens: 4096,
        capabilities: ModelCapabilities {
            streaming: false,
            tool_use: false,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "accounts/fireworks/models/gemma-2b-it",
        provider_id: "fireworks_ai",
        context_window: 8192,
        max_output_tokens: 8192,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: false,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "accounts/fireworks/models/gemma-3-27b-it",
        provider_id: "fireworks_ai",
        context_window: 131072,
        max_output_tokens: 131072,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: false,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "accounts/fireworks/models/gemma-7b",
        provider_id: "fireworks_ai",
        context_window: 8192,
        max_output_tokens: 8192,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: false,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "accounts/fireworks/models/gemma-7b-it",
        provider_id: "fireworks_ai",
        context_window: 8192,
        max_output_tokens: 8192,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: false,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "accounts/fireworks/models/gemma2-9b-it",
        provider_id: "fireworks_ai",
        context_window: 8192,
        max_output_tokens: 8192,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: false,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "accounts/fireworks/models/glm-4p5",
        provider_id: "fireworks_ai",
        context_window: 128000,
        max_output_tokens: 96000,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: false,
            extended_thinking: true,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "accounts/fireworks/models/glm-4p5-air",
        provider_id: "fireworks_ai",
        context_window: 128000,
        max_output_tokens: 96000,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: false,
            extended_thinking: true,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "accounts/fireworks/models/glm-4p5v",
        provider_id: "fireworks_ai",
        context_window: 131072,
        max_output_tokens: 131072,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: false,
            vision: false,
            extended_thinking: true,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "accounts/fireworks/models/glm-4p6",
        provider_id: "fireworks_ai",
        context_window: 202800,
        max_output_tokens: 202800,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: false,
            extended_thinking: true,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "accounts/fireworks/models/glm-4p7",
        provider_id: "fireworks_ai",
        context_window: 202800,
        max_output_tokens: 202800,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: false,
            extended_thinking: true,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "accounts/fireworks/models/glm-5p1",
        provider_id: "fireworks_ai",
        context_window: 202800,
        max_output_tokens: 202800,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: false,
            vision: false,
            extended_thinking: true,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "accounts/fireworks/models/gpt-oss-120b",
        provider_id: "fireworks_ai",
        context_window: 131072,
        max_output_tokens: 131072,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: false,
            extended_thinking: true,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "accounts/fireworks/models/gpt-oss-20b",
        provider_id: "fireworks_ai",
        context_window: 131072,
        max_output_tokens: 131072,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: false,
            extended_thinking: true,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "accounts/fireworks/models/gpt-oss-safeguard-120b",
        provider_id: "fireworks_ai",
        context_window: 131072,
        max_output_tokens: 131072,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: false,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "accounts/fireworks/models/gpt-oss-safeguard-20b",
        provider_id: "fireworks_ai",
        context_window: 131072,
        max_output_tokens: 131072,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: false,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "accounts/fireworks/models/hermes-2-pro-mistral-7b",
        provider_id: "fireworks_ai",
        context_window: 32768,
        max_output_tokens: 32768,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: false,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "accounts/fireworks/models/internvl3-38b",
        provider_id: "fireworks_ai",
        context_window: 16384,
        max_output_tokens: 16384,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: false,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "accounts/fireworks/models/internvl3-78b",
        provider_id: "fireworks_ai",
        context_window: 16384,
        max_output_tokens: 16384,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: false,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "accounts/fireworks/models/internvl3-8b",
        provider_id: "fireworks_ai",
        context_window: 16384,
        max_output_tokens: 16384,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: false,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "accounts/fireworks/models/japanese-stable-diffusion-xl",
        provider_id: "fireworks_ai",
        context_window: 4096,
        max_output_tokens: 4096,
        capabilities: ModelCapabilities {
            streaming: false,
            tool_use: false,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "accounts/fireworks/models/kat-coder",
        provider_id: "fireworks_ai",
        context_window: 262144,
        max_output_tokens: 262144,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: false,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "accounts/fireworks/models/kat-dev-32b",
        provider_id: "fireworks_ai",
        context_window: 131072,
        max_output_tokens: 131072,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: false,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "accounts/fireworks/models/kat-dev-72b-exp",
        provider_id: "fireworks_ai",
        context_window: 131072,
        max_output_tokens: 131072,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: false,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "accounts/fireworks/models/kimi-k2-instruct",
        provider_id: "fireworks_ai",
        context_window: 131072,
        max_output_tokens: 16384,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "accounts/fireworks/models/kimi-k2-instruct-0905",
        provider_id: "fireworks_ai",
        context_window: 262144,
        max_output_tokens: 32768,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "accounts/fireworks/models/kimi-k2-thinking",
        provider_id: "fireworks_ai",
        context_window: 262144,
        max_output_tokens: 262144,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "accounts/fireworks/models/kimi-k2p5",
        provider_id: "fireworks_ai",
        context_window: 262144,
        max_output_tokens: 262144,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "accounts/fireworks/models/llama-guard-2-8b",
        provider_id: "fireworks_ai",
        context_window: 8192,
        max_output_tokens: 8192,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: false,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "accounts/fireworks/models/llama-guard-3-1b",
        provider_id: "fireworks_ai",
        context_window: 131072,
        max_output_tokens: 131072,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: false,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "accounts/fireworks/models/llama-guard-3-8b",
        provider_id: "fireworks_ai",
        context_window: 131072,
        max_output_tokens: 131072,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: false,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "accounts/fireworks/models/llama-v2-13b",
        provider_id: "fireworks_ai",
        context_window: 4096,
        max_output_tokens: 4096,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: false,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "accounts/fireworks/models/llama-v2-13b-chat",
        provider_id: "fireworks_ai",
        context_window: 4096,
        max_output_tokens: 4096,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: false,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "accounts/fireworks/models/llama-v2-70b",
        provider_id: "fireworks_ai",
        context_window: 4096,
        max_output_tokens: 4096,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: false,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "accounts/fireworks/models/llama-v2-70b-chat",
        provider_id: "fireworks_ai",
        context_window: 2048,
        max_output_tokens: 2048,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: false,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "accounts/fireworks/models/llama-v2-7b",
        provider_id: "fireworks_ai",
        context_window: 4096,
        max_output_tokens: 4096,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: false,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "accounts/fireworks/models/llama-v2-7b-chat",
        provider_id: "fireworks_ai",
        context_window: 4096,
        max_output_tokens: 4096,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: false,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "accounts/fireworks/models/llama-v3-70b-instruct",
        provider_id: "fireworks_ai",
        context_window: 8192,
        max_output_tokens: 8192,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: false,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "accounts/fireworks/models/llama-v3-70b-instruct-hf",
        provider_id: "fireworks_ai",
        context_window: 8192,
        max_output_tokens: 8192,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: false,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "accounts/fireworks/models/llama-v3-8b",
        provider_id: "fireworks_ai",
        context_window: 8192,
        max_output_tokens: 8192,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: false,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "accounts/fireworks/models/llama-v3-8b-instruct-hf",
        provider_id: "fireworks_ai",
        context_window: 8192,
        max_output_tokens: 8192,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: false,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "accounts/fireworks/models/llama-v3p1-405b-instruct",
        provider_id: "fireworks_ai",
        context_window: 128000,
        max_output_tokens: 16384,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "accounts/fireworks/models/llama-v3p1-405b-instruct-long",
        provider_id: "fireworks_ai",
        context_window: 4096,
        max_output_tokens: 4096,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: false,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "accounts/fireworks/models/llama-v3p1-70b-instruct",
        provider_id: "fireworks_ai",
        context_window: 131072,
        max_output_tokens: 131072,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: false,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "accounts/fireworks/models/llama-v3p1-70b-instruct-1b",
        provider_id: "fireworks_ai",
        context_window: 4096,
        max_output_tokens: 4096,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: false,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "accounts/fireworks/models/llama-v3p1-8b-instruct",
        provider_id: "fireworks_ai",
        context_window: 16384,
        max_output_tokens: 16384,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: false,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "accounts/fireworks/models/llama-v3p1-nemotron-70b-instruct",
        provider_id: "fireworks_ai",
        context_window: 131072,
        max_output_tokens: 131072,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: false,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "accounts/fireworks/models/llama-v3p2-11b-vision-instruct",
        provider_id: "fireworks_ai",
        context_window: 16384,
        max_output_tokens: 16384,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: false,
            vision: true,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "accounts/fireworks/models/llama-v3p2-1b",
        provider_id: "fireworks_ai",
        context_window: 131072,
        max_output_tokens: 131072,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: false,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "accounts/fireworks/models/llama-v3p2-1b-instruct",
        provider_id: "fireworks_ai",
        context_window: 16384,
        max_output_tokens: 16384,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: false,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "accounts/fireworks/models/llama-v3p2-3b",
        provider_id: "fireworks_ai",
        context_window: 131072,
        max_output_tokens: 131072,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: false,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "accounts/fireworks/models/llama-v3p2-3b-instruct",
        provider_id: "fireworks_ai",
        context_window: 16384,
        max_output_tokens: 16384,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: false,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "accounts/fireworks/models/llama-v3p2-90b-vision-instruct",
        provider_id: "fireworks_ai",
        context_window: 16384,
        max_output_tokens: 16384,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: false,
            vision: true,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "accounts/fireworks/models/llama-v3p3-70b-instruct",
        provider_id: "fireworks_ai",
        context_window: 131072,
        max_output_tokens: 131072,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: false,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "accounts/fireworks/models/llama4-maverick-instruct-basic",
        provider_id: "fireworks_ai",
        context_window: 131072,
        max_output_tokens: 131072,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: false,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "accounts/fireworks/models/llama4-scout-instruct-basic",
        provider_id: "fireworks_ai",
        context_window: 131072,
        max_output_tokens: 131072,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: false,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "accounts/fireworks/models/llamaguard-7b",
        provider_id: "fireworks_ai",
        context_window: 4096,
        max_output_tokens: 4096,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: false,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "accounts/fireworks/models/llava-yi-34b",
        provider_id: "fireworks_ai",
        context_window: 4096,
        max_output_tokens: 4096,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: false,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "accounts/fireworks/models/minimax-m1-80k",
        provider_id: "fireworks_ai",
        context_window: 4096,
        max_output_tokens: 4096,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: false,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "accounts/fireworks/models/minimax-m2",
        provider_id: "fireworks_ai",
        context_window: 4096,
        max_output_tokens: 4096,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: false,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "accounts/fireworks/models/minimax-m2p1",
        provider_id: "fireworks_ai",
        context_window: 204800,
        max_output_tokens: 204800,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "accounts/fireworks/models/ministral-3-14b-instruct-2512",
        provider_id: "fireworks_ai",
        context_window: 256000,
        max_output_tokens: 256000,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: false,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "accounts/fireworks/models/ministral-3-3b-instruct-2512",
        provider_id: "fireworks_ai",
        context_window: 256000,
        max_output_tokens: 256000,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: false,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "accounts/fireworks/models/ministral-3-8b-instruct-2512",
        provider_id: "fireworks_ai",
        context_window: 256000,
        max_output_tokens: 256000,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: false,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "accounts/fireworks/models/mistral-7b",
        provider_id: "fireworks_ai",
        context_window: 32768,
        max_output_tokens: 32768,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: false,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "accounts/fireworks/models/mistral-7b-instruct-4k",
        provider_id: "fireworks_ai",
        context_window: 32768,
        max_output_tokens: 32768,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: false,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "accounts/fireworks/models/mistral-7b-instruct-v0p2",
        provider_id: "fireworks_ai",
        context_window: 32768,
        max_output_tokens: 32768,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: false,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "accounts/fireworks/models/mistral-7b-instruct-v3",
        provider_id: "fireworks_ai",
        context_window: 32768,
        max_output_tokens: 32768,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: false,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "accounts/fireworks/models/mistral-7b-v0p2",
        provider_id: "fireworks_ai",
        context_window: 32768,
        max_output_tokens: 32768,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: false,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "accounts/fireworks/models/mistral-large-3-fp8",
        provider_id: "fireworks_ai",
        context_window: 256000,
        max_output_tokens: 256000,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: false,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "accounts/fireworks/models/mistral-nemo-base-2407",
        provider_id: "fireworks_ai",
        context_window: 128000,
        max_output_tokens: 128000,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: false,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "accounts/fireworks/models/mistral-nemo-instruct-2407",
        provider_id: "fireworks_ai",
        context_window: 128000,
        max_output_tokens: 128000,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: false,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "accounts/fireworks/models/mistral-small-24b-instruct-2501",
        provider_id: "fireworks_ai",
        context_window: 32768,
        max_output_tokens: 32768,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: false,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "accounts/fireworks/models/mixtral-8x22b",
        provider_id: "fireworks_ai",
        context_window: 65536,
        max_output_tokens: 65536,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: false,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "accounts/fireworks/models/mixtral-8x22b-instruct",
        provider_id: "fireworks_ai",
        context_window: 65536,
        max_output_tokens: 65536,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: false,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "accounts/fireworks/models/mixtral-8x22b-instruct-hf",
        provider_id: "fireworks_ai",
        context_window: 65536,
        max_output_tokens: 65536,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "accounts/fireworks/models/mixtral-8x7b",
        provider_id: "fireworks_ai",
        context_window: 32768,
        max_output_tokens: 32768,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: false,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "accounts/fireworks/models/mixtral-8x7b-instruct",
        provider_id: "fireworks_ai",
        context_window: 32768,
        max_output_tokens: 32768,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: false,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "accounts/fireworks/models/mixtral-8x7b-instruct-hf",
        provider_id: "fireworks_ai",
        context_window: 32768,
        max_output_tokens: 32768,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: false,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "accounts/fireworks/models/mythomax-l2-13b",
        provider_id: "fireworks_ai",
        context_window: 4096,
        max_output_tokens: 4096,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: false,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "accounts/fireworks/models/nemotron-nano-v2-12b-vl",
        provider_id: "fireworks_ai",
        context_window: 4096,
        max_output_tokens: 4096,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: false,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "accounts/fireworks/models/nous-capybara-7b-v1p9",
        provider_id: "fireworks_ai",
        context_window: 32768,
        max_output_tokens: 32768,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: false,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "accounts/fireworks/models/nous-hermes-2-mixtral-8x7b-dpo",
        provider_id: "fireworks_ai",
        context_window: 32768,
        max_output_tokens: 32768,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: false,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "accounts/fireworks/models/nous-hermes-2-yi-34b",
        provider_id: "fireworks_ai",
        context_window: 4096,
        max_output_tokens: 4096,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: false,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "accounts/fireworks/models/nous-hermes-llama2-13b",
        provider_id: "fireworks_ai",
        context_window: 4096,
        max_output_tokens: 4096,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: false,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "accounts/fireworks/models/nous-hermes-llama2-70b",
        provider_id: "fireworks_ai",
        context_window: 4096,
        max_output_tokens: 4096,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: false,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "accounts/fireworks/models/nous-hermes-llama2-7b",
        provider_id: "fireworks_ai",
        context_window: 4096,
        max_output_tokens: 4096,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: false,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "accounts/fireworks/models/nvidia-nemotron-nano-12b-v2",
        provider_id: "fireworks_ai",
        context_window: 131072,
        max_output_tokens: 131072,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: false,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "accounts/fireworks/models/nvidia-nemotron-nano-9b-v2",
        provider_id: "fireworks_ai",
        context_window: 131072,
        max_output_tokens: 131072,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: false,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "accounts/fireworks/models/openchat-3p5-0106-7b",
        provider_id: "fireworks_ai",
        context_window: 8192,
        max_output_tokens: 8192,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: false,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "accounts/fireworks/models/openhermes-2-mistral-7b",
        provider_id: "fireworks_ai",
        context_window: 32768,
        max_output_tokens: 32768,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: false,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "accounts/fireworks/models/openhermes-2p5-mistral-7b",
        provider_id: "fireworks_ai",
        context_window: 32768,
        max_output_tokens: 32768,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: false,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "accounts/fireworks/models/openorca-7b",
        provider_id: "fireworks_ai",
        context_window: 32768,
        max_output_tokens: 32768,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: false,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "accounts/fireworks/models/phi-2-3b",
        provider_id: "fireworks_ai",
        context_window: 2048,
        max_output_tokens: 2048,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: false,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "accounts/fireworks/models/phi-3-mini-128k-instruct",
        provider_id: "fireworks_ai",
        context_window: 131072,
        max_output_tokens: 131072,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: false,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "accounts/fireworks/models/phi-3-vision-128k-instruct",
        provider_id: "fireworks_ai",
        context_window: 32064,
        max_output_tokens: 32064,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: false,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "accounts/fireworks/models/phind-code-llama-34b-python-v1",
        provider_id: "fireworks_ai",
        context_window: 16384,
        max_output_tokens: 16384,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: false,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "accounts/fireworks/models/phind-code-llama-34b-v1",
        provider_id: "fireworks_ai",
        context_window: 16384,
        max_output_tokens: 16384,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: false,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "accounts/fireworks/models/phind-code-llama-34b-v2",
        provider_id: "fireworks_ai",
        context_window: 16384,
        max_output_tokens: 16384,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: false,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "accounts/fireworks/models/playground-v2-1024px-aesthetic",
        provider_id: "fireworks_ai",
        context_window: 4096,
        max_output_tokens: 4096,
        capabilities: ModelCapabilities {
            streaming: false,
            tool_use: false,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "accounts/fireworks/models/playground-v2-5-1024px-aesthetic",
        provider_id: "fireworks_ai",
        context_window: 4096,
        max_output_tokens: 4096,
        capabilities: ModelCapabilities {
            streaming: false,
            tool_use: false,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "accounts/fireworks/models/pythia-12b",
        provider_id: "fireworks_ai",
        context_window: 2048,
        max_output_tokens: 2048,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: false,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "accounts/fireworks/models/qwen-qwq-32b-preview",
        provider_id: "fireworks_ai",
        context_window: 32768,
        max_output_tokens: 32768,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: false,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "accounts/fireworks/models/qwen-v2p5-14b-instruct",
        provider_id: "fireworks_ai",
        context_window: 32768,
        max_output_tokens: 32768,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: false,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "accounts/fireworks/models/qwen-v2p5-7b",
        provider_id: "fireworks_ai",
        context_window: 131072,
        max_output_tokens: 131072,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: false,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "accounts/fireworks/models/qwen1p5-72b-chat",
        provider_id: "fireworks_ai",
        context_window: 32768,
        max_output_tokens: 32768,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: false,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "accounts/fireworks/models/qwen2-72b-instruct",
        provider_id: "fireworks_ai",
        context_window: 32768,
        max_output_tokens: 32768,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: false,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "accounts/fireworks/models/qwen2-7b-instruct",
        provider_id: "fireworks_ai",
        context_window: 32768,
        max_output_tokens: 32768,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: false,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "accounts/fireworks/models/qwen2-vl-2b-instruct",
        provider_id: "fireworks_ai",
        context_window: 32768,
        max_output_tokens: 32768,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: false,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "accounts/fireworks/models/qwen2-vl-72b-instruct",
        provider_id: "fireworks_ai",
        context_window: 32768,
        max_output_tokens: 32768,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: false,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "accounts/fireworks/models/qwen2-vl-7b-instruct",
        provider_id: "fireworks_ai",
        context_window: 32768,
        max_output_tokens: 32768,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: false,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "accounts/fireworks/models/qwen2p5-0p5b-instruct",
        provider_id: "fireworks_ai",
        context_window: 32768,
        max_output_tokens: 32768,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: false,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "accounts/fireworks/models/qwen2p5-14b",
        provider_id: "fireworks_ai",
        context_window: 131072,
        max_output_tokens: 131072,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: false,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "accounts/fireworks/models/qwen2p5-1p5b-instruct",
        provider_id: "fireworks_ai",
        context_window: 32768,
        max_output_tokens: 32768,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: false,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "accounts/fireworks/models/qwen2p5-32b",
        provider_id: "fireworks_ai",
        context_window: 131072,
        max_output_tokens: 131072,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: false,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "accounts/fireworks/models/qwen2p5-32b-instruct",
        provider_id: "fireworks_ai",
        context_window: 32768,
        max_output_tokens: 32768,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: false,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "accounts/fireworks/models/qwen2p5-72b",
        provider_id: "fireworks_ai",
        context_window: 131072,
        max_output_tokens: 131072,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: false,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "accounts/fireworks/models/qwen2p5-72b-instruct",
        provider_id: "fireworks_ai",
        context_window: 32768,
        max_output_tokens: 32768,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: false,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "accounts/fireworks/models/qwen2p5-7b-instruct",
        provider_id: "fireworks_ai",
        context_window: 32768,
        max_output_tokens: 32768,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: false,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "accounts/fireworks/models/qwen2p5-coder-0p5b",
        provider_id: "fireworks_ai",
        context_window: 32768,
        max_output_tokens: 32768,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: false,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "accounts/fireworks/models/qwen2p5-coder-0p5b-instruct",
        provider_id: "fireworks_ai",
        context_window: 32768,
        max_output_tokens: 32768,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: false,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "accounts/fireworks/models/qwen2p5-coder-14b",
        provider_id: "fireworks_ai",
        context_window: 32768,
        max_output_tokens: 32768,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: false,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "accounts/fireworks/models/qwen2p5-coder-14b-instruct",
        provider_id: "fireworks_ai",
        context_window: 32768,
        max_output_tokens: 32768,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: false,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "accounts/fireworks/models/qwen2p5-coder-1p5b",
        provider_id: "fireworks_ai",
        context_window: 32768,
        max_output_tokens: 32768,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: false,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "accounts/fireworks/models/qwen2p5-coder-1p5b-instruct",
        provider_id: "fireworks_ai",
        context_window: 32768,
        max_output_tokens: 32768,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: false,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "accounts/fireworks/models/qwen2p5-coder-32b",
        provider_id: "fireworks_ai",
        context_window: 32768,
        max_output_tokens: 32768,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: false,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "accounts/fireworks/models/qwen2p5-coder-32b-instruct",
        provider_id: "fireworks_ai",
        context_window: 4096,
        max_output_tokens: 4096,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: false,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "accounts/fireworks/models/qwen2p5-coder-32b-instruct-128k",
        provider_id: "fireworks_ai",
        context_window: 131072,
        max_output_tokens: 131072,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: false,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "accounts/fireworks/models/qwen2p5-coder-32b-instruct-32k-rope",
        provider_id: "fireworks_ai",
        context_window: 32768,
        max_output_tokens: 32768,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: false,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "accounts/fireworks/models/qwen2p5-coder-32b-instruct-64k",
        provider_id: "fireworks_ai",
        context_window: 65536,
        max_output_tokens: 65536,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: false,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "accounts/fireworks/models/qwen2p5-coder-3b",
        provider_id: "fireworks_ai",
        context_window: 32768,
        max_output_tokens: 32768,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: false,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "accounts/fireworks/models/qwen2p5-coder-3b-instruct",
        provider_id: "fireworks_ai",
        context_window: 32768,
        max_output_tokens: 32768,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: false,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "accounts/fireworks/models/qwen2p5-coder-7b",
        provider_id: "fireworks_ai",
        context_window: 32768,
        max_output_tokens: 32768,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: false,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "accounts/fireworks/models/qwen2p5-coder-7b-instruct",
        provider_id: "fireworks_ai",
        context_window: 32768,
        max_output_tokens: 32768,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: false,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "accounts/fireworks/models/qwen2p5-math-72b-instruct",
        provider_id: "fireworks_ai",
        context_window: 4096,
        max_output_tokens: 4096,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: false,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "accounts/fireworks/models/qwen2p5-vl-32b-instruct",
        provider_id: "fireworks_ai",
        context_window: 128000,
        max_output_tokens: 128000,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: false,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "accounts/fireworks/models/qwen2p5-vl-3b-instruct",
        provider_id: "fireworks_ai",
        context_window: 128000,
        max_output_tokens: 128000,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: false,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "accounts/fireworks/models/qwen2p5-vl-72b-instruct",
        provider_id: "fireworks_ai",
        context_window: 128000,
        max_output_tokens: 128000,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: false,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "accounts/fireworks/models/qwen2p5-vl-7b-instruct",
        provider_id: "fireworks_ai",
        context_window: 128000,
        max_output_tokens: 128000,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: false,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "accounts/fireworks/models/qwen3-0p6b",
        provider_id: "fireworks_ai",
        context_window: 40960,
        max_output_tokens: 40960,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: false,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "accounts/fireworks/models/qwen3-14b",
        provider_id: "fireworks_ai",
        context_window: 40960,
        max_output_tokens: 40960,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: false,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "accounts/fireworks/models/qwen3-1p7b",
        provider_id: "fireworks_ai",
        context_window: 131072,
        max_output_tokens: 131072,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: false,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "accounts/fireworks/models/qwen3-1p7b-fp8-draft",
        provider_id: "fireworks_ai",
        context_window: 262144,
        max_output_tokens: 262144,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: false,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "accounts/fireworks/models/qwen3-1p7b-fp8-draft-131072",
        provider_id: "fireworks_ai",
        context_window: 131072,
        max_output_tokens: 131072,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: false,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "accounts/fireworks/models/qwen3-1p7b-fp8-draft-40960",
        provider_id: "fireworks_ai",
        context_window: 40960,
        max_output_tokens: 40960,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: false,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "accounts/fireworks/models/qwen3-235b-a22b",
        provider_id: "fireworks_ai",
        context_window: 131072,
        max_output_tokens: 131072,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: false,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "accounts/fireworks/models/qwen3-235b-a22b-instruct-2507",
        provider_id: "fireworks_ai",
        context_window: 262144,
        max_output_tokens: 262144,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: false,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "accounts/fireworks/models/qwen3-235b-a22b-thinking-2507",
        provider_id: "fireworks_ai",
        context_window: 262144,
        max_output_tokens: 262144,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: false,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "accounts/fireworks/models/qwen3-30b-a3b",
        provider_id: "fireworks_ai",
        context_window: 131072,
        max_output_tokens: 131072,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: false,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "accounts/fireworks/models/qwen3-30b-a3b-instruct-2507",
        provider_id: "fireworks_ai",
        context_window: 262144,
        max_output_tokens: 262144,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: false,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "accounts/fireworks/models/qwen3-30b-a3b-thinking-2507",
        provider_id: "fireworks_ai",
        context_window: 262144,
        max_output_tokens: 262144,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: false,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "accounts/fireworks/models/qwen3-32b",
        provider_id: "fireworks_ai",
        context_window: 131072,
        max_output_tokens: 131072,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: false,
            vision: false,
            extended_thinking: true,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "accounts/fireworks/models/qwen3-4b",
        provider_id: "fireworks_ai",
        context_window: 40960,
        max_output_tokens: 40960,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: false,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "accounts/fireworks/models/qwen3-4b-instruct-2507",
        provider_id: "fireworks_ai",
        context_window: 262144,
        max_output_tokens: 262144,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: false,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "accounts/fireworks/models/qwen3-8b",
        provider_id: "fireworks_ai",
        context_window: 40960,
        max_output_tokens: 40960,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: false,
            vision: false,
            extended_thinking: true,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "accounts/fireworks/models/qwen3-coder-30b-a3b-instruct",
        provider_id: "fireworks_ai",
        context_window: 262144,
        max_output_tokens: 262144,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: false,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "accounts/fireworks/models/qwen3-coder-480b-a35b-instruct",
        provider_id: "fireworks_ai",
        context_window: 262144,
        max_output_tokens: 262144,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: false,
            vision: false,
            extended_thinking: true,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "accounts/fireworks/models/qwen3-coder-480b-instruct-bf16",
        provider_id: "fireworks_ai",
        context_window: 4096,
        max_output_tokens: 4096,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: false,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "accounts/fireworks/models/qwen3-embedding-0p6b",
        provider_id: "fireworks_ai",
        context_window: 32768,
        max_output_tokens: 32768,
        capabilities: ModelCapabilities {
            streaming: false,
            tool_use: false,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "accounts/fireworks/models/qwen3-embedding-4b",
        provider_id: "fireworks_ai",
        context_window: 40960,
        max_output_tokens: 40960,
        capabilities: ModelCapabilities {
            streaming: false,
            tool_use: false,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "accounts/fireworks/models/qwen3-next-80b-a3b-instruct",
        provider_id: "fireworks_ai",
        context_window: 4096,
        max_output_tokens: 4096,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: false,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "accounts/fireworks/models/qwen3-next-80b-a3b-thinking",
        provider_id: "fireworks_ai",
        context_window: 4096,
        max_output_tokens: 4096,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: false,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "accounts/fireworks/models/qwen3-reranker-0p6b",
        provider_id: "fireworks_ai",
        context_window: 40960,
        max_output_tokens: 40960,
        capabilities: ModelCapabilities {
            streaming: false,
            tool_use: false,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "accounts/fireworks/models/qwen3-reranker-4b",
        provider_id: "fireworks_ai",
        context_window: 40960,
        max_output_tokens: 40960,
        capabilities: ModelCapabilities {
            streaming: false,
            tool_use: false,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "accounts/fireworks/models/qwen3-reranker-8b",
        provider_id: "fireworks_ai",
        context_window: 40960,
        max_output_tokens: 40960,
        capabilities: ModelCapabilities {
            streaming: false,
            tool_use: false,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "accounts/fireworks/models/qwen3-vl-235b-a22b-instruct",
        provider_id: "fireworks_ai",
        context_window: 262144,
        max_output_tokens: 262144,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: false,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "accounts/fireworks/models/qwen3-vl-235b-a22b-thinking",
        provider_id: "fireworks_ai",
        context_window: 262144,
        max_output_tokens: 262144,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: false,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "accounts/fireworks/models/qwen3-vl-30b-a3b-instruct",
        provider_id: "fireworks_ai",
        context_window: 262144,
        max_output_tokens: 262144,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: false,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "accounts/fireworks/models/qwen3-vl-30b-a3b-thinking",
        provider_id: "fireworks_ai",
        context_window: 262144,
        max_output_tokens: 262144,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: false,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "accounts/fireworks/models/qwen3-vl-32b-instruct",
        provider_id: "fireworks_ai",
        context_window: 4096,
        max_output_tokens: 4096,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: false,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "accounts/fireworks/models/qwen3-vl-8b-instruct",
        provider_id: "fireworks_ai",
        context_window: 4096,
        max_output_tokens: 4096,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: false,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "accounts/fireworks/models/qwq-32b",
        provider_id: "fireworks_ai",
        context_window: 131072,
        max_output_tokens: 131072,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: false,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "accounts/fireworks/models/rolm-ocr",
        provider_id: "fireworks_ai",
        context_window: 128000,
        max_output_tokens: 128000,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: false,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "accounts/fireworks/models/snorkel-mistral-7b-pairrm-dpo",
        provider_id: "fireworks_ai",
        context_window: 32768,
        max_output_tokens: 32768,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: false,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "accounts/fireworks/models/stable-diffusion-xl-1024-v1-0",
        provider_id: "fireworks_ai",
        context_window: 4096,
        max_output_tokens: 4096,
        capabilities: ModelCapabilities {
            streaming: false,
            tool_use: false,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "accounts/fireworks/models/stablecode-3b",
        provider_id: "fireworks_ai",
        context_window: 4096,
        max_output_tokens: 4096,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: false,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "accounts/fireworks/models/starcoder-16b",
        provider_id: "fireworks_ai",
        context_window: 8192,
        max_output_tokens: 8192,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: false,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "accounts/fireworks/models/starcoder-7b",
        provider_id: "fireworks_ai",
        context_window: 8192,
        max_output_tokens: 8192,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: false,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "accounts/fireworks/models/starcoder2-15b",
        provider_id: "fireworks_ai",
        context_window: 16384,
        max_output_tokens: 16384,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: false,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "accounts/fireworks/models/starcoder2-3b",
        provider_id: "fireworks_ai",
        context_window: 16384,
        max_output_tokens: 16384,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: false,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "accounts/fireworks/models/starcoder2-7b",
        provider_id: "fireworks_ai",
        context_window: 16384,
        max_output_tokens: 16384,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: false,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "accounts/fireworks/models/toppy-m-7b",
        provider_id: "fireworks_ai",
        context_window: 32768,
        max_output_tokens: 32768,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: false,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "accounts/fireworks/models/whisper-v3",
        provider_id: "fireworks_ai",
        context_window: 4096,
        max_output_tokens: 4096,
        capabilities: ModelCapabilities {
            streaming: false,
            tool_use: false,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "accounts/fireworks/models/whisper-v3-turbo",
        provider_id: "fireworks_ai",
        context_window: 4096,
        max_output_tokens: 4096,
        capabilities: ModelCapabilities {
            streaming: false,
            tool_use: false,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "accounts/fireworks/models/yi-34b",
        provider_id: "fireworks_ai",
        context_window: 4096,
        max_output_tokens: 4096,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: false,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "accounts/fireworks/models/yi-34b-200k-capybara",
        provider_id: "fireworks_ai",
        context_window: 200000,
        max_output_tokens: 200000,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: false,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "accounts/fireworks/models/yi-34b-chat",
        provider_id: "fireworks_ai",
        context_window: 4096,
        max_output_tokens: 4096,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: false,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "accounts/fireworks/models/yi-6b",
        provider_id: "fireworks_ai",
        context_window: 4096,
        max_output_tokens: 4096,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: false,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "accounts/fireworks/models/yi-large",
        provider_id: "fireworks_ai",
        context_window: 32768,
        max_output_tokens: 32768,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: false,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "accounts/fireworks/models/zephyr-7b-beta",
        provider_id: "fireworks_ai",
        context_window: 32768,
        max_output_tokens: 32768,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: false,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "fireworks-ai-4.1b-to-16b",
        provider_id: "fireworks_ai",
        context_window: 0,
        max_output_tokens: 0,
        capabilities: ModelCapabilities {
            streaming: false,
            tool_use: false,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "fireworks-ai-56b-to-176b",
        provider_id: "fireworks_ai",
        context_window: 0,
        max_output_tokens: 0,
        capabilities: ModelCapabilities {
            streaming: false,
            tool_use: false,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "fireworks-ai-above-16b",
        provider_id: "fireworks_ai",
        context_window: 0,
        max_output_tokens: 0,
        capabilities: ModelCapabilities {
            streaming: false,
            tool_use: false,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "fireworks-ai-default",
        provider_id: "fireworks_ai",
        context_window: 0,
        max_output_tokens: 0,
        capabilities: ModelCapabilities {
            streaming: false,
            tool_use: false,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "fireworks-ai-moe-up-to-56b",
        provider_id: "fireworks_ai",
        context_window: 0,
        max_output_tokens: 0,
        capabilities: ModelCapabilities {
            streaming: false,
            tool_use: false,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "fireworks-ai-up-to-4b",
        provider_id: "fireworks_ai",
        context_window: 0,
        max_output_tokens: 0,
        capabilities: ModelCapabilities {
            streaming: false,
            tool_use: false,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "glm-4p7",
        provider_id: "fireworks_ai",
        context_window: 202800,
        max_output_tokens: 202800,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: false,
            extended_thinking: true,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "glm-5p1",
        provider_id: "fireworks_ai",
        context_window: 202800,
        max_output_tokens: 202800,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: false,
            vision: false,
            extended_thinking: true,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "kimi-k2p5",
        provider_id: "fireworks_ai",
        context_window: 262144,
        max_output_tokens: 262144,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "minimax-m2p1",
        provider_id: "fireworks_ai",
        context_window: 204800,
        max_output_tokens: 204800,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
];

pub const PROVIDER_FIREWORKS_AI_EMBEDDING_MODELS: ProviderDef = ProviderDef {
    id: "fireworks_ai-embedding-models",
    display_name: "Fireworks AI",
    default_base_url: "https://api.fireworks.ai/inference/v1",
    protocol: ProviderProtocol::OpenAICompat,
    auth: AuthKind::Bearer,
    status: ProviderStatus::Stub,
    env_vars: &["FIREWORKS_API_KEY"],
    litellm_prefix: "fireworks_ai-embedding-models/",
    capabilities: ProviderCapabilities {
        chat_completions: false,
        streaming: false,
        tool_use: false,
        embeddings: true,
        vision: false,
        batch: false,
    },
};

pub const MODELS_FIREWORKS_AI_EMBEDDING_MODELS: &[ModelDef] = &[
    ModelDef {
        id: "fireworks-ai-embedding-150m-to-350m",
        provider_id: "fireworks_ai-embedding-models",
        context_window: 0,
        max_output_tokens: 0,
        capabilities: ModelCapabilities {
            streaming: false,
            tool_use: false,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "fireworks-ai-embedding-up-to-150m",
        provider_id: "fireworks_ai-embedding-models",
        context_window: 0,
        max_output_tokens: 0,
        capabilities: ModelCapabilities {
            streaming: false,
            tool_use: false,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "fireworks_ai/WhereIsAI/UAE-Large-V1",
        provider_id: "fireworks_ai-embedding-models",
        context_window: 512,
        max_output_tokens: 0,
        capabilities: ModelCapabilities {
            streaming: false,
            tool_use: false,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "fireworks_ai/nomic-ai/nomic-embed-text-v1",
        provider_id: "fireworks_ai-embedding-models",
        context_window: 8192,
        max_output_tokens: 0,
        capabilities: ModelCapabilities {
            streaming: false,
            tool_use: false,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "fireworks_ai/nomic-ai/nomic-embed-text-v1.5",
        provider_id: "fireworks_ai-embedding-models",
        context_window: 8192,
        max_output_tokens: 0,
        capabilities: ModelCapabilities {
            streaming: false,
            tool_use: false,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "fireworks_ai/thenlper/gte-base",
        provider_id: "fireworks_ai-embedding-models",
        context_window: 512,
        max_output_tokens: 0,
        capabilities: ModelCapabilities {
            streaming: false,
            tool_use: false,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "fireworks_ai/thenlper/gte-large",
        provider_id: "fireworks_ai-embedding-models",
        context_window: 512,
        max_output_tokens: 0,
        capabilities: ModelCapabilities {
            streaming: false,
            tool_use: false,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
];

pub const PROVIDER_FRIENDLIAI: ProviderDef = ProviderDef {
    id: "friendliai",
    display_name: "FriendliAI",
    default_base_url: "https://api.friendli.ai/serverless/v1",
    protocol: ProviderProtocol::OpenAICompat,
    auth: AuthKind::Bearer,
    status: ProviderStatus::Stub,
    env_vars: &["FRIENDLI_TOKEN", "FRIENDLIAI_TOKEN", "FRIENDLIAI_API_KEY"],
    litellm_prefix: "friendliai/",
    capabilities: ProviderCapabilities {
        chat_completions: true,
        streaming: true,
        tool_use: true,
        embeddings: false,
        vision: false,
        batch: false,
    },
};

pub const MODELS_FRIENDLIAI: &[ModelDef] = &[
    ModelDef {
        id: "meta-llama-3.1-70b-instruct",
        provider_id: "friendliai",
        context_window: 8192,
        max_output_tokens: 8192,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "meta-llama-3.1-8b-instruct",
        provider_id: "friendliai",
        context_window: 8192,
        max_output_tokens: 8192,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
];

pub const PROVIDER_GEMINI: ProviderDef = ProviderDef {
    id: "gemini",
    display_name: "Google AI Studio (Gemini)",
    default_base_url: "https://generativelanguage.googleapis.com/v1beta",
    protocol: ProviderProtocol::GeminiOpenAI,
    auth: AuthKind::GoogleApiKey,
    status: ProviderStatus::Implemented,
    env_vars: &["GEMINI_API_KEY"],
    litellm_prefix: "gemini/",
    capabilities: ProviderCapabilities {
        chat_completions: true,
        streaming: true,
        tool_use: true,
        embeddings: true,
        vision: true,
        batch: false,
    },
};

pub const MODELS_GEMINI: &[ModelDef] = &[
    ModelDef {
        id: "deep-research-pro-preview-12-2025",
        provider_id: "gemini",
        context_window: 65536,
        max_output_tokens: 32768,
        capabilities: ModelCapabilities {
            streaming: false,
            tool_use: false,
            vision: true,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "gemini-1.5-flash",
        provider_id: "gemini",
        context_window: 8192,
        max_output_tokens: 0,
        capabilities: ModelCapabilities {
            streaming: false,
            tool_use: false,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Deprecated,
    },
    ModelDef {
        id: "gemini-2.0-flash",
        provider_id: "gemini",
        context_window: 1048576,
        max_output_tokens: 8192,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: true,
            extended_thinking: false,
        },
        status: ModelStatus::Deprecated,
    },
    ModelDef {
        id: "gemini-2.0-flash-001",
        provider_id: "gemini",
        context_window: 1048576,
        max_output_tokens: 8192,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: true,
            extended_thinking: false,
        },
        status: ModelStatus::Deprecated,
    },
    ModelDef {
        id: "gemini-2.0-flash-exp-image-generation",
        provider_id: "gemini",
        context_window: 32768,
        max_output_tokens: 32768,
        capabilities: ModelCapabilities {
            streaming: false,
            tool_use: false,
            vision: true,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "gemini-2.0-flash-lite",
        provider_id: "gemini",
        context_window: 1048576,
        max_output_tokens: 8192,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: true,
            extended_thinking: false,
        },
        status: ModelStatus::Deprecated,
    },
    ModelDef {
        id: "gemini-2.0-flash-lite-001",
        provider_id: "gemini",
        context_window: 1048576,
        max_output_tokens: 8192,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: true,
            extended_thinking: false,
        },
        status: ModelStatus::Deprecated,
    },
    ModelDef {
        id: "gemini-2.5-computer-use-preview-10-2025",
        provider_id: "gemini",
        context_window: 128000,
        max_output_tokens: 64000,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: true,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "gemini-2.5-flash",
        provider_id: "gemini",
        context_window: 1048576,
        max_output_tokens: 65535,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: true,
            extended_thinking: true,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "gemini-2.5-flash-image",
        provider_id: "gemini",
        context_window: 32768,
        max_output_tokens: 32768,
        capabilities: ModelCapabilities {
            streaming: false,
            tool_use: true,
            vision: true,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "gemini-2.5-flash-lite",
        provider_id: "gemini",
        context_window: 1048576,
        max_output_tokens: 65535,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: true,
            extended_thinking: true,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "gemini-2.5-flash-lite-preview-06-17",
        provider_id: "gemini",
        context_window: 1048576,
        max_output_tokens: 65535,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: true,
            extended_thinking: true,
        },
        status: ModelStatus::Deprecated,
    },
    ModelDef {
        id: "gemini-2.5-flash-lite-preview-09-2025",
        provider_id: "gemini",
        context_window: 1048576,
        max_output_tokens: 65535,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: true,
            extended_thinking: true,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "gemini-2.5-flash-native-audio-latest",
        provider_id: "gemini",
        context_window: 1048576,
        max_output_tokens: 8192,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: false,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "gemini-2.5-flash-native-audio-preview-09-2025",
        provider_id: "gemini",
        context_window: 1048576,
        max_output_tokens: 8192,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: false,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "gemini-2.5-flash-native-audio-preview-12-2025",
        provider_id: "gemini",
        context_window: 1048576,
        max_output_tokens: 8192,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: false,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "gemini-2.5-flash-preview-09-2025",
        provider_id: "gemini",
        context_window: 1048576,
        max_output_tokens: 65535,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: true,
            extended_thinking: true,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "gemini-2.5-flash-preview-tts",
        provider_id: "gemini",
        context_window: 0,
        max_output_tokens: 0,
        capabilities: ModelCapabilities {
            streaming: false,
            tool_use: false,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "gemini-2.5-pro",
        provider_id: "gemini",
        context_window: 1048576,
        max_output_tokens: 65535,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: true,
            extended_thinking: true,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "gemini-2.5-pro-preview-tts",
        provider_id: "gemini",
        context_window: 1048576,
        max_output_tokens: 65535,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: true,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "gemini-3-flash-preview",
        provider_id: "gemini",
        context_window: 1048576,
        max_output_tokens: 65535,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: true,
            extended_thinking: true,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "gemini-3-pro-image-preview",
        provider_id: "gemini",
        context_window: 65536,
        max_output_tokens: 32768,
        capabilities: ModelCapabilities {
            streaming: false,
            tool_use: false,
            vision: true,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "gemini-3-pro-preview",
        provider_id: "gemini",
        context_window: 1048576,
        max_output_tokens: 65535,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: true,
            extended_thinking: true,
        },
        status: ModelStatus::Deprecated,
    },
    ModelDef {
        id: "gemini-3.1-flash-image-preview",
        provider_id: "gemini",
        context_window: 65536,
        max_output_tokens: 32768,
        capabilities: ModelCapabilities {
            streaming: false,
            tool_use: false,
            vision: true,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "gemini-3.1-flash-lite",
        provider_id: "gemini",
        context_window: 1048576,
        max_output_tokens: 65536,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: true,
            extended_thinking: true,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "gemini-3.1-flash-lite-preview",
        provider_id: "gemini",
        context_window: 1048576,
        max_output_tokens: 65536,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: true,
            extended_thinking: true,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "gemini-3.1-flash-live-preview",
        provider_id: "gemini",
        context_window: 131072,
        max_output_tokens: 65536,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: true,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "gemini-3.1-pro-preview",
        provider_id: "gemini",
        context_window: 1048576,
        max_output_tokens: 65536,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: true,
            extended_thinking: true,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "gemini-3.1-pro-preview-customtools",
        provider_id: "gemini",
        context_window: 1048576,
        max_output_tokens: 65536,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: true,
            extended_thinking: true,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "gemini-3.5-flash",
        provider_id: "gemini",
        context_window: 1048576,
        max_output_tokens: 65535,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: true,
            extended_thinking: true,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "gemini-embedding-001",
        provider_id: "gemini",
        context_window: 2048,
        max_output_tokens: 0,
        capabilities: ModelCapabilities {
            streaming: false,
            tool_use: false,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "gemini-embedding-2",
        provider_id: "gemini",
        context_window: 8192,
        max_output_tokens: 0,
        capabilities: ModelCapabilities {
            streaming: false,
            tool_use: false,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "gemini-embedding-2-preview",
        provider_id: "gemini",
        context_window: 8192,
        max_output_tokens: 0,
        capabilities: ModelCapabilities {
            streaming: false,
            tool_use: false,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "gemini-exp-1114",
        provider_id: "gemini",
        context_window: 1048576,
        max_output_tokens: 8192,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: true,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "gemini-exp-1206",
        provider_id: "gemini",
        context_window: 1048576,
        max_output_tokens: 65535,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: true,
            extended_thinking: true,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "gemini-flash-latest",
        provider_id: "gemini",
        context_window: 1048576,
        max_output_tokens: 65535,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: true,
            extended_thinking: true,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "gemini-flash-lite-latest",
        provider_id: "gemini",
        context_window: 1048576,
        max_output_tokens: 65535,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: true,
            extended_thinking: true,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "gemini-gemma-2-27b-it",
        provider_id: "gemini",
        context_window: 0,
        max_output_tokens: 8192,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: true,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "gemini-gemma-2-9b-it",
        provider_id: "gemini",
        context_window: 0,
        max_output_tokens: 8192,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: true,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "gemini-live-2.5-flash-preview-native-audio-09-2025",
        provider_id: "gemini",
        context_window: 1048576,
        max_output_tokens: 65535,
        capabilities: ModelCapabilities {
            streaming: false,
            tool_use: true,
            vision: true,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "gemini-pro-latest",
        provider_id: "gemini",
        context_window: 1048576,
        max_output_tokens: 65535,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: true,
            extended_thinking: true,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "gemini-robotics-er-1.5-preview",
        provider_id: "gemini",
        context_window: 1048576,
        max_output_tokens: 65535,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: true,
            extended_thinking: true,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "gemma-3-27b-it",
        provider_id: "gemini",
        context_window: 131072,
        max_output_tokens: 8192,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: true,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "imagen-3.0-fast-generate-001",
        provider_id: "gemini",
        context_window: 0,
        max_output_tokens: 0,
        capabilities: ModelCapabilities {
            streaming: false,
            tool_use: false,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "imagen-3.0-generate-001",
        provider_id: "gemini",
        context_window: 0,
        max_output_tokens: 0,
        capabilities: ModelCapabilities {
            streaming: false,
            tool_use: false,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "imagen-3.0-generate-002",
        provider_id: "gemini",
        context_window: 0,
        max_output_tokens: 0,
        capabilities: ModelCapabilities {
            streaming: false,
            tool_use: false,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Deprecated,
    },
    ModelDef {
        id: "imagen-4.0-fast-generate-001",
        provider_id: "gemini",
        context_window: 0,
        max_output_tokens: 0,
        capabilities: ModelCapabilities {
            streaming: false,
            tool_use: false,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "imagen-4.0-generate-001",
        provider_id: "gemini",
        context_window: 0,
        max_output_tokens: 0,
        capabilities: ModelCapabilities {
            streaming: false,
            tool_use: false,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "imagen-4.0-ultra-generate-001",
        provider_id: "gemini",
        context_window: 0,
        max_output_tokens: 0,
        capabilities: ModelCapabilities {
            streaming: false,
            tool_use: false,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "learnlm-1.5-pro-experimental",
        provider_id: "gemini",
        context_window: 32767,
        max_output_tokens: 8192,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: true,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "lyria-3-clip-preview",
        provider_id: "gemini",
        context_window: 131072,
        max_output_tokens: 8192,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: false,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "lyria-3-pro-preview",
        provider_id: "gemini",
        context_window: 131072,
        max_output_tokens: 8192,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: false,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "veo-2.0-generate-001",
        provider_id: "gemini",
        context_window: 1024,
        max_output_tokens: 0,
        capabilities: ModelCapabilities {
            streaming: false,
            tool_use: false,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "veo-3.1-fast-generate-001",
        provider_id: "gemini",
        context_window: 1024,
        max_output_tokens: 0,
        capabilities: ModelCapabilities {
            streaming: false,
            tool_use: false,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "veo-3.1-fast-generate-preview",
        provider_id: "gemini",
        context_window: 1024,
        max_output_tokens: 0,
        capabilities: ModelCapabilities {
            streaming: false,
            tool_use: false,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "veo-3.1-generate-001",
        provider_id: "gemini",
        context_window: 1024,
        max_output_tokens: 0,
        capabilities: ModelCapabilities {
            streaming: false,
            tool_use: false,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "veo-3.1-generate-preview",
        provider_id: "gemini",
        context_window: 1024,
        max_output_tokens: 0,
        capabilities: ModelCapabilities {
            streaming: false,
            tool_use: false,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "veo-3.1-lite-generate-preview",
        provider_id: "gemini",
        context_window: 1024,
        max_output_tokens: 0,
        capabilities: ModelCapabilities {
            streaming: false,
            tool_use: false,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
];

pub const PROVIDER_GIGACHAT: ProviderDef = ProviderDef {
    id: "gigachat",
    display_name: "Gigachat",
    default_base_url: "",
    protocol: ProviderProtocol::OpenAICompat,
    auth: AuthKind::Bearer,
    status: ProviderStatus::Stub,
    env_vars: &["GIGACHAT_API_KEY"],
    litellm_prefix: "gigachat/",
    capabilities: ProviderCapabilities {
        chat_completions: true,
        streaming: true,
        tool_use: true,
        embeddings: true,
        vision: true,
        batch: false,
    },
};

pub const MODELS_GIGACHAT: &[ModelDef] = &[
    ModelDef {
        id: "Embeddings",
        provider_id: "gigachat",
        context_window: 512,
        max_output_tokens: 0,
        capabilities: ModelCapabilities {
            streaming: false,
            tool_use: false,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "Embeddings-2",
        provider_id: "gigachat",
        context_window: 512,
        max_output_tokens: 0,
        capabilities: ModelCapabilities {
            streaming: false,
            tool_use: false,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "EmbeddingsGigaR",
        provider_id: "gigachat",
        context_window: 4096,
        max_output_tokens: 0,
        capabilities: ModelCapabilities {
            streaming: false,
            tool_use: false,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "GigaChat-2-Lite",
        provider_id: "gigachat",
        context_window: 128000,
        max_output_tokens: 8192,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "GigaChat-2-Max",
        provider_id: "gigachat",
        context_window: 128000,
        max_output_tokens: 8192,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: true,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "GigaChat-2-Pro",
        provider_id: "gigachat",
        context_window: 128000,
        max_output_tokens: 8192,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: true,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
];

pub const PROVIDER_GITHUB_COPILOT: ProviderDef = ProviderDef {
    id: "github_copilot",
    display_name: "GitHub Models",
    default_base_url: "https://models.github.ai/inference",
    protocol: ProviderProtocol::OpenAICompat,
    auth: AuthKind::Bearer,
    status: ProviderStatus::Stub,
    env_vars: &["GITHUB_TOKEN"],
    litellm_prefix: "github_copilot/",
    capabilities: ProviderCapabilities {
        chat_completions: true,
        streaming: true,
        tool_use: true,
        embeddings: true,
        vision: true,
        batch: false,
    },
};

pub const MODELS_GITHUB_COPILOT: &[ModelDef] = &[
    ModelDef {
        id: "claude-haiku-4.5",
        provider_id: "github_copilot",
        context_window: 128000,
        max_output_tokens: 16000,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: true,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "claude-opus-4.5",
        provider_id: "github_copilot",
        context_window: 128000,
        max_output_tokens: 16000,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: true,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "claude-opus-4.6-fast",
        provider_id: "github_copilot",
        context_window: 128000,
        max_output_tokens: 16000,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: true,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "claude-opus-41",
        provider_id: "github_copilot",
        context_window: 80000,
        max_output_tokens: 16000,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: false,
            vision: true,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "claude-sonnet-4",
        provider_id: "github_copilot",
        context_window: 128000,
        max_output_tokens: 16000,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: true,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "claude-sonnet-4.5",
        provider_id: "github_copilot",
        context_window: 128000,
        max_output_tokens: 16000,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: true,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "gemini-2.5-pro",
        provider_id: "github_copilot",
        context_window: 128000,
        max_output_tokens: 64000,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: true,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "gemini-3-pro-preview",
        provider_id: "github_copilot",
        context_window: 128000,
        max_output_tokens: 64000,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: true,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "gpt-3.5-turbo",
        provider_id: "github_copilot",
        context_window: 16384,
        max_output_tokens: 4096,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "gpt-3.5-turbo-0613",
        provider_id: "github_copilot",
        context_window: 16384,
        max_output_tokens: 4096,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "gpt-4",
        provider_id: "github_copilot",
        context_window: 32768,
        max_output_tokens: 4096,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "gpt-4-0613",
        provider_id: "github_copilot",
        context_window: 32768,
        max_output_tokens: 4096,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "gpt-4-o-preview",
        provider_id: "github_copilot",
        context_window: 64000,
        max_output_tokens: 4096,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "gpt-4.1",
        provider_id: "github_copilot",
        context_window: 128000,
        max_output_tokens: 16384,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: true,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "gpt-4.1-2025-04-14",
        provider_id: "github_copilot",
        context_window: 128000,
        max_output_tokens: 16384,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: true,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "gpt-41-copilot",
        provider_id: "github_copilot",
        context_window: 0,
        max_output_tokens: 0,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: false,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "gpt-4o",
        provider_id: "github_copilot",
        context_window: 64000,
        max_output_tokens: 4096,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: true,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "gpt-4o-2024-05-13",
        provider_id: "github_copilot",
        context_window: 64000,
        max_output_tokens: 4096,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: true,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "gpt-4o-2024-08-06",
        provider_id: "github_copilot",
        context_window: 64000,
        max_output_tokens: 16384,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "gpt-4o-2024-11-20",
        provider_id: "github_copilot",
        context_window: 64000,
        max_output_tokens: 16384,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: true,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "gpt-4o-mini",
        provider_id: "github_copilot",
        context_window: 64000,
        max_output_tokens: 4096,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "gpt-4o-mini-2024-07-18",
        provider_id: "github_copilot",
        context_window: 64000,
        max_output_tokens: 4096,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "gpt-5",
        provider_id: "github_copilot",
        context_window: 128000,
        max_output_tokens: 128000,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: true,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "gpt-5-mini",
        provider_id: "github_copilot",
        context_window: 128000,
        max_output_tokens: 64000,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: true,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "gpt-5.1",
        provider_id: "github_copilot",
        context_window: 128000,
        max_output_tokens: 64000,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: true,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "gpt-5.1-codex-max",
        provider_id: "github_copilot",
        context_window: 128000,
        max_output_tokens: 128000,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: true,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "gpt-5.2",
        provider_id: "github_copilot",
        context_window: 128000,
        max_output_tokens: 64000,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: true,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "gpt-5.3-codex",
        provider_id: "github_copilot",
        context_window: 128000,
        max_output_tokens: 128000,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: true,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "text-embedding-3-small",
        provider_id: "github_copilot",
        context_window: 8191,
        max_output_tokens: 0,
        capabilities: ModelCapabilities {
            streaming: false,
            tool_use: false,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "text-embedding-3-small-inference",
        provider_id: "github_copilot",
        context_window: 8191,
        max_output_tokens: 0,
        capabilities: ModelCapabilities {
            streaming: false,
            tool_use: false,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "text-embedding-ada-002",
        provider_id: "github_copilot",
        context_window: 8191,
        max_output_tokens: 0,
        capabilities: ModelCapabilities {
            streaming: false,
            tool_use: false,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
];

pub const PROVIDER_GMI: ProviderDef = ProviderDef {
    id: "gmi",
    display_name: "GMI Cloud",
    default_base_url: "https://api.gmi-serving.com/v1",
    protocol: ProviderProtocol::OpenAICompat,
    auth: AuthKind::Bearer,
    status: ProviderStatus::Stub,
    env_vars: &["GMI_CLOUD_API_KEY"],
    litellm_prefix: "gmi/",
    capabilities: ProviderCapabilities {
        chat_completions: true,
        streaming: true,
        tool_use: true,
        embeddings: false,
        vision: true,
        batch: false,
    },
};

pub const MODELS_GMI: &[ModelDef] = &[
    ModelDef {
        id: "MiniMaxAI/MiniMax-M2.1",
        provider_id: "gmi",
        context_window: 196608,
        max_output_tokens: 16384,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: false,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "Qwen/Qwen3-VL-235B-A22B-Instruct-FP8",
        provider_id: "gmi",
        context_window: 262144,
        max_output_tokens: 16384,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: false,
            vision: true,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "anthropic/claude-opus-4",
        provider_id: "gmi",
        context_window: 409600,
        max_output_tokens: 32000,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: true,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "anthropic/claude-opus-4.5",
        provider_id: "gmi",
        context_window: 409600,
        max_output_tokens: 32000,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: true,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "anthropic/claude-sonnet-4",
        provider_id: "gmi",
        context_window: 409600,
        max_output_tokens: 32000,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: true,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "anthropic/claude-sonnet-4.5",
        provider_id: "gmi",
        context_window: 409600,
        max_output_tokens: 32000,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: true,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "deepseek-ai/DeepSeek-V3-0324",
        provider_id: "gmi",
        context_window: 163840,
        max_output_tokens: 16384,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "deepseek-ai/DeepSeek-V3.2",
        provider_id: "gmi",
        context_window: 163840,
        max_output_tokens: 16384,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "google/gemini-3-flash-preview",
        provider_id: "gmi",
        context_window: 1048576,
        max_output_tokens: 65536,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: true,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "google/gemini-3-pro-preview",
        provider_id: "gmi",
        context_window: 1048576,
        max_output_tokens: 65536,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: true,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "moonshotai/Kimi-K2-Thinking",
        provider_id: "gmi",
        context_window: 262144,
        max_output_tokens: 16384,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: false,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "openai/gpt-4o",
        provider_id: "gmi",
        context_window: 131072,
        max_output_tokens: 16384,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: true,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "openai/gpt-4o-mini",
        provider_id: "gmi",
        context_window: 131072,
        max_output_tokens: 16384,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: true,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "openai/gpt-5",
        provider_id: "gmi",
        context_window: 409600,
        max_output_tokens: 32000,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "openai/gpt-5.1",
        provider_id: "gmi",
        context_window: 409600,
        max_output_tokens: 32000,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "openai/gpt-5.2",
        provider_id: "gmi",
        context_window: 409600,
        max_output_tokens: 32000,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "zai-org/GLM-4.7-FP8",
        provider_id: "gmi",
        context_window: 202752,
        max_output_tokens: 16384,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: false,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
];

pub const PROVIDER_GOOGLE_PSE: ProviderDef = ProviderDef {
    id: "google_pse",
    display_name: "Google PSE",
    default_base_url: "",
    protocol: ProviderProtocol::OpenAICompat,
    auth: AuthKind::Bearer,
    status: ProviderStatus::Stub,
    env_vars: &["GOOGLE_PSE_API_KEY"],
    litellm_prefix: "google_pse/",
    capabilities: ProviderCapabilities {
        chat_completions: false,
        streaming: false,
        tool_use: false,
        embeddings: false,
        vision: false,
        batch: false,
    },
};

pub const MODELS_GOOGLE_PSE: &[ModelDef] = &[ModelDef {
    id: "search",
    provider_id: "google_pse",
    context_window: 0,
    max_output_tokens: 0,
    capabilities: ModelCapabilities {
        streaming: false,
        tool_use: false,
        vision: false,
        extended_thinking: false,
    },
    status: ModelStatus::Available,
}];

pub const PROVIDER_GRADIENT_AI: ProviderDef = ProviderDef {
    id: "gradient_ai",
    display_name: "DigitalOcean Gradient AI",
    default_base_url: "https://inference.do-ai.run/v1",
    protocol: ProviderProtocol::OpenAICompat,
    auth: AuthKind::Bearer,
    status: ProviderStatus::Stub,
    env_vars: &["DIGITALOCEAN_INFERENCE_KEY", "GRADIENT_ACCESS_TOKEN"],
    litellm_prefix: "gradient_ai/",
    capabilities: ProviderCapabilities {
        chat_completions: true,
        streaming: true,
        tool_use: false,
        embeddings: false,
        vision: false,
        batch: false,
    },
};

pub const MODELS_GRADIENT_AI: &[ModelDef] = &[
    ModelDef {
        id: "alibaba-qwen3-32b",
        provider_id: "gradient_ai",
        context_window: 131072,
        max_output_tokens: 40960,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: false,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "anthropic-claude-3-opus",
        provider_id: "gradient_ai",
        context_window: 200000,
        max_output_tokens: 1024,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: false,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "anthropic-claude-3.5-haiku",
        provider_id: "gradient_ai",
        context_window: 200000,
        max_output_tokens: 1024,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: false,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "anthropic-claude-3.5-sonnet",
        provider_id: "gradient_ai",
        context_window: 200000,
        max_output_tokens: 1024,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: false,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "anthropic-claude-3.7-sonnet",
        provider_id: "gradient_ai",
        context_window: 200000,
        max_output_tokens: 1024,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: false,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "deepseek-r1-distill-llama-70b",
        provider_id: "gradient_ai",
        context_window: 32768,
        max_output_tokens: 8000,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: false,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "llama3-8b-instruct",
        provider_id: "gradient_ai",
        context_window: 8192,
        max_output_tokens: 512,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: false,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "llama3.3-70b-instruct",
        provider_id: "gradient_ai",
        context_window: 128000,
        max_output_tokens: 2048,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: false,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "mistral-nemo-instruct-2407",
        provider_id: "gradient_ai",
        context_window: 128000,
        max_output_tokens: 512,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: false,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "openai-gpt-4o",
        provider_id: "gradient_ai",
        context_window: 128000,
        max_output_tokens: 16384,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: false,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "openai-gpt-4o-mini",
        provider_id: "gradient_ai",
        context_window: 128000,
        max_output_tokens: 16384,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: false,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "openai-o3",
        provider_id: "gradient_ai",
        context_window: 200000,
        max_output_tokens: 100000,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: false,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "openai-o3-mini",
        provider_id: "gradient_ai",
        context_window: 200000,
        max_output_tokens: 100000,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: false,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
];

pub const PROVIDER_GROQ: ProviderDef = ProviderDef {
    id: "groq",
    display_name: "Groq",
    default_base_url: "https://api.groq.com/openai/v1",
    protocol: ProviderProtocol::OpenAICompat,
    auth: AuthKind::Bearer,
    status: ProviderStatus::Stub,
    env_vars: &["GROQ_API_KEY"],
    litellm_prefix: "groq/",
    capabilities: ProviderCapabilities {
        chat_completions: true,
        streaming: true,
        tool_use: true,
        embeddings: false,
        vision: true,
        batch: false,
    },
};

pub const MODELS_GROQ: &[ModelDef] = &[
    ModelDef {
        id: "gemma-7b-it",
        provider_id: "groq",
        context_window: 8192,
        max_output_tokens: 8192,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "llama-3.1-8b-instant",
        provider_id: "groq",
        context_window: 128000,
        max_output_tokens: 8192,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "llama-3.3-70b-versatile",
        provider_id: "groq",
        context_window: 128000,
        max_output_tokens: 32768,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "meta-llama/llama-4-maverick-17b-128e-instruct",
        provider_id: "groq",
        context_window: 131072,
        max_output_tokens: 8192,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: true,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "meta-llama/llama-4-scout-17b-16e-instruct",
        provider_id: "groq",
        context_window: 131072,
        max_output_tokens: 8192,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: true,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "meta-llama/llama-guard-4-12b",
        provider_id: "groq",
        context_window: 8192,
        max_output_tokens: 8192,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: false,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "moonshotai/kimi-k2-instruct-0905",
        provider_id: "groq",
        context_window: 262144,
        max_output_tokens: 16384,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "openai/gpt-oss-120b",
        provider_id: "groq",
        context_window: 131072,
        max_output_tokens: 32766,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: false,
            extended_thinking: true,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "openai/gpt-oss-20b",
        provider_id: "groq",
        context_window: 131072,
        max_output_tokens: 32768,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: false,
            extended_thinking: true,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "openai/gpt-oss-safeguard-20b",
        provider_id: "groq",
        context_window: 131072,
        max_output_tokens: 65536,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: false,
            extended_thinking: true,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "playai-tts",
        provider_id: "groq",
        context_window: 10000,
        max_output_tokens: 10000,
        capabilities: ModelCapabilities {
            streaming: false,
            tool_use: false,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "qwen/qwen3-32b",
        provider_id: "groq",
        context_window: 131000,
        max_output_tokens: 131000,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: false,
            extended_thinking: true,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "whisper-large-v3",
        provider_id: "groq",
        context_window: 0,
        max_output_tokens: 0,
        capabilities: ModelCapabilities {
            streaming: false,
            tool_use: false,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "whisper-large-v3-turbo",
        provider_id: "groq",
        context_window: 0,
        max_output_tokens: 0,
        capabilities: ModelCapabilities {
            streaming: false,
            tool_use: false,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
];

pub const PROVIDER_HEROKU: ProviderDef = ProviderDef {
    id: "heroku",
    display_name: "Heroku",
    default_base_url: "",
    protocol: ProviderProtocol::OpenAICompat,
    auth: AuthKind::Bearer,
    status: ProviderStatus::Stub,
    env_vars: &["HEROKU_API_KEY"],
    litellm_prefix: "heroku/",
    capabilities: ProviderCapabilities {
        chat_completions: true,
        streaming: true,
        tool_use: true,
        embeddings: false,
        vision: false,
        batch: false,
    },
};

pub const MODELS_HEROKU: &[ModelDef] = &[
    ModelDef {
        id: "claude-3-5-haiku",
        provider_id: "heroku",
        context_window: 200000,
        max_output_tokens: 8192,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "claude-3-5-sonnet-latest",
        provider_id: "heroku",
        context_window: 200000,
        max_output_tokens: 8192,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "claude-3-7-sonnet",
        provider_id: "heroku",
        context_window: 200000,
        max_output_tokens: 8192,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "claude-4-sonnet",
        provider_id: "heroku",
        context_window: 200000,
        max_output_tokens: 8192,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
];

pub const PROVIDER_HYPERBOLIC: ProviderDef = ProviderDef {
    id: "hyperbolic",
    display_name: "Hyperbolic",
    default_base_url: "https://api.hyperbolic.xyz/v1",
    protocol: ProviderProtocol::OpenAICompat,
    auth: AuthKind::Bearer,
    status: ProviderStatus::Stub,
    env_vars: &["HYPERBOLIC_API_KEY"],
    litellm_prefix: "hyperbolic/",
    capabilities: ProviderCapabilities {
        chat_completions: true,
        streaming: true,
        tool_use: true,
        embeddings: false,
        vision: false,
        batch: false,
    },
};

pub const MODELS_HYPERBOLIC: &[ModelDef] = &[
    ModelDef {
        id: "NousResearch/Hermes-3-Llama-3.1-70B",
        provider_id: "hyperbolic",
        context_window: 32768,
        max_output_tokens: 32768,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "Qwen/QwQ-32B",
        provider_id: "hyperbolic",
        context_window: 131072,
        max_output_tokens: 131072,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "Qwen/Qwen2.5-72B-Instruct",
        provider_id: "hyperbolic",
        context_window: 131072,
        max_output_tokens: 131072,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "Qwen/Qwen2.5-Coder-32B-Instruct",
        provider_id: "hyperbolic",
        context_window: 32768,
        max_output_tokens: 32768,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "Qwen/Qwen3-235B-A22B",
        provider_id: "hyperbolic",
        context_window: 131072,
        max_output_tokens: 131072,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "deepseek-ai/DeepSeek-R1",
        provider_id: "hyperbolic",
        context_window: 32768,
        max_output_tokens: 32768,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "deepseek-ai/DeepSeek-R1-0528",
        provider_id: "hyperbolic",
        context_window: 131072,
        max_output_tokens: 131072,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "deepseek-ai/DeepSeek-V3",
        provider_id: "hyperbolic",
        context_window: 32768,
        max_output_tokens: 32768,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "deepseek-ai/DeepSeek-V3-0324",
        provider_id: "hyperbolic",
        context_window: 32768,
        max_output_tokens: 32768,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "meta-llama/Llama-3.2-3B-Instruct",
        provider_id: "hyperbolic",
        context_window: 32768,
        max_output_tokens: 32768,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "meta-llama/Llama-3.3-70B-Instruct",
        provider_id: "hyperbolic",
        context_window: 131072,
        max_output_tokens: 131072,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "meta-llama/Meta-Llama-3-70B-Instruct",
        provider_id: "hyperbolic",
        context_window: 131072,
        max_output_tokens: 131072,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "meta-llama/Meta-Llama-3.1-405B-Instruct",
        provider_id: "hyperbolic",
        context_window: 32768,
        max_output_tokens: 32768,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "meta-llama/Meta-Llama-3.1-70B-Instruct",
        provider_id: "hyperbolic",
        context_window: 32768,
        max_output_tokens: 32768,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "meta-llama/Meta-Llama-3.1-8B-Instruct",
        provider_id: "hyperbolic",
        context_window: 32768,
        max_output_tokens: 32768,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "moonshotai/Kimi-K2-Instruct",
        provider_id: "hyperbolic",
        context_window: 131072,
        max_output_tokens: 131072,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
];

pub const PROVIDER_JINA_AI: ProviderDef = ProviderDef {
    id: "jina_ai",
    display_name: "Jina AI",
    default_base_url: "https://api.jina.ai/v1",
    protocol: ProviderProtocol::OpenAICompat,
    auth: AuthKind::Bearer,
    status: ProviderStatus::Stub,
    env_vars: &["JINA_AI_API_KEY"],
    litellm_prefix: "jina_ai/",
    capabilities: ProviderCapabilities {
        chat_completions: false,
        streaming: false,
        tool_use: false,
        embeddings: false,
        vision: false,
        batch: false,
    },
};

pub const MODELS_JINA_AI: &[ModelDef] = &[ModelDef {
    id: "jina-reranker-v2-base-multilingual",
    provider_id: "jina_ai",
    context_window: 1024,
    max_output_tokens: 1024,
    capabilities: ModelCapabilities {
        streaming: false,
        tool_use: false,
        vision: false,
        extended_thinking: false,
    },
    status: ModelStatus::Available,
}];

pub const PROVIDER_LAMBDA_AI: ProviderDef = ProviderDef {
    id: "lambda_ai",
    display_name: "Lambda AI",
    default_base_url: "https://api.lambda.ai/v1",
    protocol: ProviderProtocol::OpenAICompat,
    auth: AuthKind::Bearer,
    status: ProviderStatus::Stub,
    env_vars: &["LAMBDA_API_KEY"],
    litellm_prefix: "lambda_ai/",
    capabilities: ProviderCapabilities {
        chat_completions: true,
        streaming: true,
        tool_use: true,
        embeddings: false,
        vision: true,
        batch: false,
    },
};

pub const MODELS_LAMBDA_AI: &[ModelDef] = &[
    ModelDef {
        id: "deepseek-llama3.3-70b",
        provider_id: "lambda_ai",
        context_window: 131072,
        max_output_tokens: 131072,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: false,
            extended_thinking: true,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "deepseek-r1-0528",
        provider_id: "lambda_ai",
        context_window: 131072,
        max_output_tokens: 131072,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: false,
            extended_thinking: true,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "deepseek-r1-671b",
        provider_id: "lambda_ai",
        context_window: 131072,
        max_output_tokens: 131072,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: false,
            extended_thinking: true,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "deepseek-v3-0324",
        provider_id: "lambda_ai",
        context_window: 131072,
        max_output_tokens: 131072,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "hermes3-405b",
        provider_id: "lambda_ai",
        context_window: 131072,
        max_output_tokens: 131072,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "hermes3-70b",
        provider_id: "lambda_ai",
        context_window: 131072,
        max_output_tokens: 131072,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "hermes3-8b",
        provider_id: "lambda_ai",
        context_window: 131072,
        max_output_tokens: 131072,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "lfm-40b",
        provider_id: "lambda_ai",
        context_window: 131072,
        max_output_tokens: 131072,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "lfm-7b",
        provider_id: "lambda_ai",
        context_window: 131072,
        max_output_tokens: 131072,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "llama-4-maverick-17b-128e-instruct-fp8",
        provider_id: "lambda_ai",
        context_window: 131072,
        max_output_tokens: 8192,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "llama-4-scout-17b-16e-instruct",
        provider_id: "lambda_ai",
        context_window: 16384,
        max_output_tokens: 8192,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "llama3.1-405b-instruct-fp8",
        provider_id: "lambda_ai",
        context_window: 131072,
        max_output_tokens: 131072,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "llama3.1-70b-instruct-fp8",
        provider_id: "lambda_ai",
        context_window: 131072,
        max_output_tokens: 131072,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "llama3.1-8b-instruct",
        provider_id: "lambda_ai",
        context_window: 131072,
        max_output_tokens: 131072,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "llama3.1-nemotron-70b-instruct-fp8",
        provider_id: "lambda_ai",
        context_window: 131072,
        max_output_tokens: 131072,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "llama3.2-11b-vision-instruct",
        provider_id: "lambda_ai",
        context_window: 131072,
        max_output_tokens: 131072,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: true,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "llama3.2-3b-instruct",
        provider_id: "lambda_ai",
        context_window: 131072,
        max_output_tokens: 131072,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "llama3.3-70b-instruct-fp8",
        provider_id: "lambda_ai",
        context_window: 131072,
        max_output_tokens: 131072,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "qwen25-coder-32b-instruct",
        provider_id: "lambda_ai",
        context_window: 131072,
        max_output_tokens: 131072,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "qwen3-32b-fp8",
        provider_id: "lambda_ai",
        context_window: 131072,
        max_output_tokens: 131072,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: false,
            extended_thinking: true,
        },
        status: ModelStatus::Available,
    },
];

pub const PROVIDER_LEMONADE: ProviderDef = ProviderDef {
    id: "lemonade",
    display_name: "Lemonade",
    default_base_url: "http://localhost:13305/api/v1",
    protocol: ProviderProtocol::OpenAICompat,
    auth: AuthKind::None,
    status: ProviderStatus::Stub,
    env_vars: &["LEMONADE_API_KEY"],
    litellm_prefix: "lemonade/",
    capabilities: ProviderCapabilities {
        chat_completions: true,
        streaming: true,
        tool_use: true,
        embeddings: false,
        vision: false,
        batch: false,
    },
};

pub const MODELS_LEMONADE: &[ModelDef] = &[
    ModelDef {
        id: "Gemma-3-4b-it-GGUF",
        provider_id: "lemonade",
        context_window: 128000,
        max_output_tokens: 8192,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "Qwen3-4B-Instruct-2507-GGUF",
        provider_id: "lemonade",
        context_window: 262144,
        max_output_tokens: 32768,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "Qwen3-Coder-30B-A3B-Instruct-GGUF",
        provider_id: "lemonade",
        context_window: 262144,
        max_output_tokens: 32768,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "gpt-oss-120b-mxfp-GGUF",
        provider_id: "lemonade",
        context_window: 131072,
        max_output_tokens: 32768,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "gpt-oss-20b-mxfp4-GGUF",
        provider_id: "lemonade",
        context_window: 131072,
        max_output_tokens: 32768,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
];

pub const PROVIDER_LINKUP: ProviderDef = ProviderDef {
    id: "linkup",
    display_name: "Linkup",
    default_base_url: "",
    protocol: ProviderProtocol::OpenAICompat,
    auth: AuthKind::Bearer,
    status: ProviderStatus::Stub,
    env_vars: &["LINKUP_API_KEY"],
    litellm_prefix: "linkup/",
    capabilities: ProviderCapabilities {
        chat_completions: false,
        streaming: false,
        tool_use: false,
        embeddings: false,
        vision: false,
        batch: false,
    },
};

pub const MODELS_LINKUP: &[ModelDef] = &[
    ModelDef {
        id: "search",
        provider_id: "linkup",
        context_window: 0,
        max_output_tokens: 0,
        capabilities: ModelCapabilities {
            streaming: false,
            tool_use: false,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "search-deep",
        provider_id: "linkup",
        context_window: 0,
        max_output_tokens: 0,
        capabilities: ModelCapabilities {
            streaming: false,
            tool_use: false,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
];

pub const PROVIDER_LLAMAGATE: ProviderDef = ProviderDef {
    id: "llamagate",
    display_name: "Llamagate",
    default_base_url: "",
    protocol: ProviderProtocol::OpenAICompat,
    auth: AuthKind::Bearer,
    status: ProviderStatus::Stub,
    env_vars: &["LLAMAGATE_API_KEY"],
    litellm_prefix: "llamagate/",
    capabilities: ProviderCapabilities {
        chat_completions: true,
        streaming: true,
        tool_use: true,
        embeddings: true,
        vision: true,
        batch: false,
    },
};

pub const MODELS_LLAMAGATE: &[ModelDef] = &[
    ModelDef {
        id: "codellama-7b",
        provider_id: "llamagate",
        context_window: 16384,
        max_output_tokens: 4096,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "deepseek-coder-6.7b",
        provider_id: "llamagate",
        context_window: 16384,
        max_output_tokens: 4096,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "deepseek-r1-7b-qwen",
        provider_id: "llamagate",
        context_window: 131072,
        max_output_tokens: 16384,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: false,
            extended_thinking: true,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "deepseek-r1-8b",
        provider_id: "llamagate",
        context_window: 65536,
        max_output_tokens: 16384,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: false,
            extended_thinking: true,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "dolphin3-8b",
        provider_id: "llamagate",
        context_window: 128000,
        max_output_tokens: 8192,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "gemma3-4b",
        provider_id: "llamagate",
        context_window: 128000,
        max_output_tokens: 8192,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: true,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "llama-3.1-8b",
        provider_id: "llamagate",
        context_window: 131072,
        max_output_tokens: 8192,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "llama-3.2-3b",
        provider_id: "llamagate",
        context_window: 131072,
        max_output_tokens: 8192,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "llava-7b",
        provider_id: "llamagate",
        context_window: 4096,
        max_output_tokens: 2048,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: false,
            vision: true,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "mistral-7b-v0.3",
        provider_id: "llamagate",
        context_window: 32768,
        max_output_tokens: 8192,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "nomic-embed-text",
        provider_id: "llamagate",
        context_window: 8192,
        max_output_tokens: 0,
        capabilities: ModelCapabilities {
            streaming: false,
            tool_use: false,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "openthinker-7b",
        provider_id: "llamagate",
        context_window: 32768,
        max_output_tokens: 8192,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: false,
            extended_thinking: true,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "qwen2.5-coder-7b",
        provider_id: "llamagate",
        context_window: 32768,
        max_output_tokens: 8192,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "qwen3-8b",
        provider_id: "llamagate",
        context_window: 32768,
        max_output_tokens: 8192,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "qwen3-embedding-8b",
        provider_id: "llamagate",
        context_window: 40960,
        max_output_tokens: 0,
        capabilities: ModelCapabilities {
            streaming: false,
            tool_use: false,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "qwen3-vl-8b",
        provider_id: "llamagate",
        context_window: 32768,
        max_output_tokens: 8192,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: true,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
];

pub const PROVIDER_META_LLAMA: ProviderDef = ProviderDef {
    id: "meta_llama",
    display_name: "Meta Llama API",
    default_base_url: "https://api.llama.com/compat/v1",
    protocol: ProviderProtocol::OpenAICompat,
    auth: AuthKind::Bearer,
    status: ProviderStatus::Stub,
    env_vars: &["LLAMA_API_KEY"],
    litellm_prefix: "meta_llama/",
    capabilities: ProviderCapabilities {
        chat_completions: true,
        streaming: true,
        tool_use: true,
        embeddings: false,
        vision: false,
        batch: false,
    },
};

pub const MODELS_META_LLAMA: &[ModelDef] = &[
    ModelDef {
        id: "Llama-3.3-70B-Instruct",
        provider_id: "meta_llama",
        context_window: 128000,
        max_output_tokens: 4028,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "Llama-3.3-8B-Instruct",
        provider_id: "meta_llama",
        context_window: 128000,
        max_output_tokens: 4028,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "Llama-4-Maverick-17B-128E-Instruct-FP8",
        provider_id: "meta_llama",
        context_window: 1000000,
        max_output_tokens: 4028,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "Llama-4-Scout-17B-16E-Instruct-FP8",
        provider_id: "meta_llama",
        context_window: 10000000,
        max_output_tokens: 4028,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
];

pub const PROVIDER_MINIMAX: ProviderDef = ProviderDef {
    id: "minimax",
    display_name: "MiniMax",
    default_base_url: "https://api.minimax.io/v1",
    protocol: ProviderProtocol::OpenAICompat,
    auth: AuthKind::Bearer,
    status: ProviderStatus::Stub,
    env_vars: &["MINIMAX_API_KEY"],
    litellm_prefix: "minimax/",
    capabilities: ProviderCapabilities {
        chat_completions: true,
        streaming: true,
        tool_use: true,
        embeddings: false,
        vision: false,
        batch: false,
    },
};

pub const MODELS_MINIMAX: &[ModelDef] = &[
    ModelDef {
        id: "MiniMax-M2",
        provider_id: "minimax",
        context_window: 200000,
        max_output_tokens: 8192,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: false,
            extended_thinking: true,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "MiniMax-M2.1",
        provider_id: "minimax",
        context_window: 1000000,
        max_output_tokens: 8192,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: false,
            extended_thinking: true,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "MiniMax-M2.1-lightning",
        provider_id: "minimax",
        context_window: 1000000,
        max_output_tokens: 8192,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: false,
            extended_thinking: true,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "MiniMax-M2.5",
        provider_id: "minimax",
        context_window: 1000000,
        max_output_tokens: 8192,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: false,
            extended_thinking: true,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "MiniMax-M2.5-lightning",
        provider_id: "minimax",
        context_window: 1000000,
        max_output_tokens: 8192,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: false,
            extended_thinking: true,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "speech-02-hd",
        provider_id: "minimax",
        context_window: 0,
        max_output_tokens: 0,
        capabilities: ModelCapabilities {
            streaming: false,
            tool_use: false,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "speech-02-turbo",
        provider_id: "minimax",
        context_window: 0,
        max_output_tokens: 0,
        capabilities: ModelCapabilities {
            streaming: false,
            tool_use: false,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "speech-2.6-hd",
        provider_id: "minimax",
        context_window: 0,
        max_output_tokens: 0,
        capabilities: ModelCapabilities {
            streaming: false,
            tool_use: false,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "speech-2.6-turbo",
        provider_id: "minimax",
        context_window: 0,
        max_output_tokens: 0,
        capabilities: ModelCapabilities {
            streaming: false,
            tool_use: false,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
];

pub const PROVIDER_MISTRAL: ProviderDef = ProviderDef {
    id: "mistral",
    display_name: "Mistral AI",
    default_base_url: "https://api.mistral.ai/v1",
    protocol: ProviderProtocol::OpenAICompat,
    auth: AuthKind::Bearer,
    status: ProviderStatus::Stub,
    env_vars: &["MISTRAL_API_KEY"],
    litellm_prefix: "mistral/",
    capabilities: ProviderCapabilities {
        chat_completions: true,
        streaming: true,
        tool_use: true,
        embeddings: true,
        vision: true,
        batch: false,
    },
};

pub const MODELS_MISTRAL: &[ModelDef] = &[
    ModelDef {
        id: "codestral-2405",
        provider_id: "mistral",
        context_window: 32000,
        max_output_tokens: 8191,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "codestral-2508",
        provider_id: "mistral",
        context_window: 256000,
        max_output_tokens: 256000,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "codestral-embed",
        provider_id: "mistral",
        context_window: 8192,
        max_output_tokens: 0,
        capabilities: ModelCapabilities {
            streaming: false,
            tool_use: false,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "codestral-embed-2505",
        provider_id: "mistral",
        context_window: 8192,
        max_output_tokens: 0,
        capabilities: ModelCapabilities {
            streaming: false,
            tool_use: false,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "codestral-latest",
        provider_id: "mistral",
        context_window: 32000,
        max_output_tokens: 8191,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "codestral-mamba-latest",
        provider_id: "mistral",
        context_window: 256000,
        max_output_tokens: 256000,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "devstral-2512",
        provider_id: "mistral",
        context_window: 256000,
        max_output_tokens: 256000,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "devstral-latest",
        provider_id: "mistral",
        context_window: 256000,
        max_output_tokens: 256000,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "devstral-medium-2507",
        provider_id: "mistral",
        context_window: 128000,
        max_output_tokens: 128000,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "devstral-medium-latest",
        provider_id: "mistral",
        context_window: 256000,
        max_output_tokens: 256000,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "devstral-small-2505",
        provider_id: "mistral",
        context_window: 128000,
        max_output_tokens: 128000,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "devstral-small-2507",
        provider_id: "mistral",
        context_window: 128000,
        max_output_tokens: 128000,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "devstral-small-latest",
        provider_id: "mistral",
        context_window: 256000,
        max_output_tokens: 256000,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "labs-devstral-small-2512",
        provider_id: "mistral",
        context_window: 256000,
        max_output_tokens: 256000,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "magistral-medium-1-2-2509",
        provider_id: "mistral",
        context_window: 40000,
        max_output_tokens: 40000,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: false,
            extended_thinking: true,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "magistral-medium-2506",
        provider_id: "mistral",
        context_window: 40000,
        max_output_tokens: 40000,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: false,
            extended_thinking: true,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "magistral-medium-2509",
        provider_id: "mistral",
        context_window: 40000,
        max_output_tokens: 40000,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: false,
            extended_thinking: true,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "magistral-medium-latest",
        provider_id: "mistral",
        context_window: 40000,
        max_output_tokens: 40000,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: false,
            extended_thinking: true,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "magistral-small-1-2-2509",
        provider_id: "mistral",
        context_window: 40000,
        max_output_tokens: 40000,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: false,
            extended_thinking: true,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "magistral-small-2506",
        provider_id: "mistral",
        context_window: 40000,
        max_output_tokens: 40000,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: false,
            extended_thinking: true,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "magistral-small-latest",
        provider_id: "mistral",
        context_window: 40000,
        max_output_tokens: 40000,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: false,
            extended_thinking: true,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "ministral-3-14b-2512",
        provider_id: "mistral",
        context_window: 262144,
        max_output_tokens: 262144,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: true,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "ministral-3-3b-2512",
        provider_id: "mistral",
        context_window: 131072,
        max_output_tokens: 131072,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: true,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "ministral-3-8b-2512",
        provider_id: "mistral",
        context_window: 262144,
        max_output_tokens: 262144,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: true,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "ministral-8b-2512",
        provider_id: "mistral",
        context_window: 262144,
        max_output_tokens: 262144,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: true,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "mistral-embed",
        provider_id: "mistral",
        context_window: 8192,
        max_output_tokens: 0,
        capabilities: ModelCapabilities {
            streaming: false,
            tool_use: false,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "mistral-large-2402",
        provider_id: "mistral",
        context_window: 32000,
        max_output_tokens: 8191,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "mistral-large-2407",
        provider_id: "mistral",
        context_window: 128000,
        max_output_tokens: 128000,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "mistral-large-2411",
        provider_id: "mistral",
        context_window: 128000,
        max_output_tokens: 128000,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "mistral-large-2512",
        provider_id: "mistral",
        context_window: 262144,
        max_output_tokens: 262144,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: true,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "mistral-large-3",
        provider_id: "mistral",
        context_window: 262144,
        max_output_tokens: 262144,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: true,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "mistral-large-latest",
        provider_id: "mistral",
        context_window: 262144,
        max_output_tokens: 262144,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: true,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "mistral-medium",
        provider_id: "mistral",
        context_window: 32000,
        max_output_tokens: 8191,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "mistral-medium-2312",
        provider_id: "mistral",
        context_window: 32000,
        max_output_tokens: 8191,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "mistral-medium-2505",
        provider_id: "mistral",
        context_window: 131072,
        max_output_tokens: 8191,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "mistral-medium-3-1-2508",
        provider_id: "mistral",
        context_window: 131072,
        max_output_tokens: 131072,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: true,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "mistral-medium-latest",
        provider_id: "mistral",
        context_window: 131072,
        max_output_tokens: 131072,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: true,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "mistral-ocr-2505-completion",
        provider_id: "mistral",
        context_window: 0,
        max_output_tokens: 0,
        capabilities: ModelCapabilities {
            streaming: false,
            tool_use: false,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "mistral-ocr-latest",
        provider_id: "mistral",
        context_window: 0,
        max_output_tokens: 0,
        capabilities: ModelCapabilities {
            streaming: false,
            tool_use: false,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "mistral-small",
        provider_id: "mistral",
        context_window: 32000,
        max_output_tokens: 8191,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "mistral-small-3-2-2506",
        provider_id: "mistral",
        context_window: 131072,
        max_output_tokens: 131072,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: true,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "mistral-small-latest",
        provider_id: "mistral",
        context_window: 131072,
        max_output_tokens: 131072,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: true,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "mistral-tiny",
        provider_id: "mistral",
        context_window: 32000,
        max_output_tokens: 8191,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "open-codestral-mamba",
        provider_id: "mistral",
        context_window: 256000,
        max_output_tokens: 256000,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "open-mistral-7b",
        provider_id: "mistral",
        context_window: 32000,
        max_output_tokens: 8191,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "open-mistral-nemo",
        provider_id: "mistral",
        context_window: 128000,
        max_output_tokens: 128000,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "open-mistral-nemo-2407",
        provider_id: "mistral",
        context_window: 128000,
        max_output_tokens: 128000,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "open-mixtral-8x22b",
        provider_id: "mistral",
        context_window: 65336,
        max_output_tokens: 8191,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "open-mixtral-8x7b",
        provider_id: "mistral",
        context_window: 32000,
        max_output_tokens: 8191,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "pixtral-12b-2409",
        provider_id: "mistral",
        context_window: 128000,
        max_output_tokens: 128000,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: true,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "pixtral-large-2411",
        provider_id: "mistral",
        context_window: 128000,
        max_output_tokens: 128000,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: true,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "pixtral-large-latest",
        provider_id: "mistral",
        context_window: 128000,
        max_output_tokens: 128000,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: true,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
];

pub const PROVIDER_MOONSHOT: ProviderDef = ProviderDef {
    id: "moonshot",
    display_name: "Moonshot AI",
    default_base_url: "https://api.moonshot.ai/v1",
    protocol: ProviderProtocol::OpenAICompat,
    auth: AuthKind::Bearer,
    status: ProviderStatus::Stub,
    env_vars: &["MOONSHOT_API_KEY"],
    litellm_prefix: "moonshot/",
    capabilities: ProviderCapabilities {
        chat_completions: true,
        streaming: true,
        tool_use: true,
        embeddings: false,
        vision: true,
        batch: false,
    },
};

pub const MODELS_MOONSHOT: &[ModelDef] = &[
    ModelDef {
        id: "kimi-k2-0711-preview",
        provider_id: "moonshot",
        context_window: 131072,
        max_output_tokens: 131072,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "kimi-k2-0905-preview",
        provider_id: "moonshot",
        context_window: 262144,
        max_output_tokens: 262144,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "kimi-k2-thinking",
        provider_id: "moonshot",
        context_window: 262144,
        max_output_tokens: 262144,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: false,
            extended_thinking: true,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "kimi-k2-thinking-turbo",
        provider_id: "moonshot",
        context_window: 262144,
        max_output_tokens: 262144,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: false,
            extended_thinking: true,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "kimi-k2-turbo-preview",
        provider_id: "moonshot",
        context_window: 262144,
        max_output_tokens: 262144,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "kimi-k2.5",
        provider_id: "moonshot",
        context_window: 262144,
        max_output_tokens: 262144,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: true,
            extended_thinking: true,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "kimi-k2.6",
        provider_id: "moonshot",
        context_window: 262144,
        max_output_tokens: 262144,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: true,
            extended_thinking: true,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "kimi-latest",
        provider_id: "moonshot",
        context_window: 131072,
        max_output_tokens: 131072,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: true,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "kimi-latest-128k",
        provider_id: "moonshot",
        context_window: 131072,
        max_output_tokens: 131072,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: true,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "kimi-latest-32k",
        provider_id: "moonshot",
        context_window: 32768,
        max_output_tokens: 32768,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: true,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "kimi-latest-8k",
        provider_id: "moonshot",
        context_window: 8192,
        max_output_tokens: 8192,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: true,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "kimi-thinking-preview",
        provider_id: "moonshot",
        context_window: 131072,
        max_output_tokens: 131072,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: false,
            vision: true,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "moonshot-v1-128k",
        provider_id: "moonshot",
        context_window: 131072,
        max_output_tokens: 131072,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "moonshot-v1-128k-0430",
        provider_id: "moonshot",
        context_window: 131072,
        max_output_tokens: 131072,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "moonshot-v1-128k-vision-preview",
        provider_id: "moonshot",
        context_window: 131072,
        max_output_tokens: 131072,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: true,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "moonshot-v1-32k",
        provider_id: "moonshot",
        context_window: 32768,
        max_output_tokens: 32768,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "moonshot-v1-32k-0430",
        provider_id: "moonshot",
        context_window: 32768,
        max_output_tokens: 32768,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "moonshot-v1-32k-vision-preview",
        provider_id: "moonshot",
        context_window: 32768,
        max_output_tokens: 32768,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: true,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "moonshot-v1-8k",
        provider_id: "moonshot",
        context_window: 8192,
        max_output_tokens: 8192,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "moonshot-v1-8k-0430",
        provider_id: "moonshot",
        context_window: 8192,
        max_output_tokens: 8192,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "moonshot-v1-8k-vision-preview",
        provider_id: "moonshot",
        context_window: 8192,
        max_output_tokens: 8192,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: true,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "moonshot-v1-auto",
        provider_id: "moonshot",
        context_window: 131072,
        max_output_tokens: 131072,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
];

pub const PROVIDER_MORPH: ProviderDef = ProviderDef {
    id: "morph",
    display_name: "Morph",
    default_base_url: "https://api.morphllm.com/v1",
    protocol: ProviderProtocol::OpenAICompat,
    auth: AuthKind::Bearer,
    status: ProviderStatus::Stub,
    env_vars: &["MORPH_API_KEY"],
    litellm_prefix: "morph/",
    capabilities: ProviderCapabilities {
        chat_completions: true,
        streaming: true,
        tool_use: false,
        embeddings: false,
        vision: false,
        batch: false,
    },
};

pub const MODELS_MORPH: &[ModelDef] = &[
    ModelDef {
        id: "morph-v3-fast",
        provider_id: "morph",
        context_window: 16000,
        max_output_tokens: 16000,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: false,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "morph-v3-large",
        provider_id: "morph",
        context_window: 16000,
        max_output_tokens: 16000,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: false,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
];

pub const PROVIDER_NEBIUS: ProviderDef = ProviderDef {
    id: "nebius",
    display_name: "Nebius AI Studio",
    default_base_url: "https://api.tokenfactory.nebius.com/v1",
    protocol: ProviderProtocol::OpenAICompat,
    auth: AuthKind::Bearer,
    status: ProviderStatus::Stub,
    env_vars: &["NEBIUS_API_KEY"],
    litellm_prefix: "nebius/",
    capabilities: ProviderCapabilities {
        chat_completions: true,
        streaming: true,
        tool_use: true,
        embeddings: true,
        vision: true,
        batch: false,
    },
};

pub const MODELS_NEBIUS: &[ModelDef] = &[
    ModelDef {
        id: "BAAI/bge-en-icl",
        provider_id: "nebius",
        context_window: 32768,
        max_output_tokens: 0,
        capabilities: ModelCapabilities {
            streaming: false,
            tool_use: false,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "BAAI/bge-multilingual-gemma2",
        provider_id: "nebius",
        context_window: 8192,
        max_output_tokens: 0,
        capabilities: ModelCapabilities {
            streaming: false,
            tool_use: false,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "NousResearch/Hermes-3-Llama-3.1-405B",
        provider_id: "nebius",
        context_window: 128000,
        max_output_tokens: 128000,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "Qwen/QwQ-32B",
        provider_id: "nebius",
        context_window: 32768,
        max_output_tokens: 32768,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: false,
            extended_thinking: true,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "Qwen/Qwen2-VL-72B-Instruct",
        provider_id: "nebius",
        context_window: 131072,
        max_output_tokens: 131072,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: true,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "Qwen/Qwen2-VL-7B-Instruct",
        provider_id: "nebius",
        context_window: 131072,
        max_output_tokens: 131072,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: false,
            vision: true,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "Qwen/Qwen2.5-32B-Instruct",
        provider_id: "nebius",
        context_window: 128000,
        max_output_tokens: 128000,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "Qwen/Qwen2.5-72B-Instruct",
        provider_id: "nebius",
        context_window: 128000,
        max_output_tokens: 128000,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "Qwen/Qwen2.5-Coder-7B",
        provider_id: "nebius",
        context_window: 32768,
        max_output_tokens: 32768,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "Qwen/Qwen2.5-VL-72B-Instruct",
        provider_id: "nebius",
        context_window: 131072,
        max_output_tokens: 131072,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: true,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "Qwen/Qwen3-14B",
        provider_id: "nebius",
        context_window: 32768,
        max_output_tokens: 32768,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "Qwen/Qwen3-235B-A22B",
        provider_id: "nebius",
        context_window: 262144,
        max_output_tokens: 262144,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "Qwen/Qwen3-30B-A3B",
        provider_id: "nebius",
        context_window: 32768,
        max_output_tokens: 32768,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "Qwen/Qwen3-32B",
        provider_id: "nebius",
        context_window: 32768,
        max_output_tokens: 32768,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "Qwen/Qwen3-4B",
        provider_id: "nebius",
        context_window: 32768,
        max_output_tokens: 32768,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "deepseek-ai/DeepSeek-R1",
        provider_id: "nebius",
        context_window: 128000,
        max_output_tokens: 128000,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: false,
            extended_thinking: true,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "deepseek-ai/DeepSeek-R1-0528",
        provider_id: "nebius",
        context_window: 164000,
        max_output_tokens: 164000,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: false,
            extended_thinking: true,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "deepseek-ai/DeepSeek-R1-Distill-Llama-70B",
        provider_id: "nebius",
        context_window: 128000,
        max_output_tokens: 128000,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "deepseek-ai/DeepSeek-V3",
        provider_id: "nebius",
        context_window: 128000,
        max_output_tokens: 128000,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "deepseek-ai/DeepSeek-V3-0324",
        provider_id: "nebius",
        context_window: 128000,
        max_output_tokens: 128000,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "google/gemma-3-27b-it",
        provider_id: "nebius",
        context_window: 128000,
        max_output_tokens: 128000,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: true,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "intfloat/e5-mistral-7b-instruct",
        provider_id: "nebius",
        context_window: 32768,
        max_output_tokens: 0,
        capabilities: ModelCapabilities {
            streaming: false,
            tool_use: false,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "meta-llama/Llama-3.3-70B-Instruct",
        provider_id: "nebius",
        context_window: 128000,
        max_output_tokens: 128000,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "meta-llama/Llama-Guard-3-8B",
        provider_id: "nebius",
        context_window: 128000,
        max_output_tokens: 128000,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: false,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "meta-llama/Meta-Llama-3.1-405B-Instruct",
        provider_id: "nebius",
        context_window: 128000,
        max_output_tokens: 128000,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "meta-llama/Meta-Llama-3.1-70B-Instruct",
        provider_id: "nebius",
        context_window: 128000,
        max_output_tokens: 128000,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "meta-llama/Meta-Llama-3.1-8B-Instruct",
        provider_id: "nebius",
        context_window: 128000,
        max_output_tokens: 128000,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "mistralai/Mistral-Nemo-Instruct-2407",
        provider_id: "nebius",
        context_window: 128000,
        max_output_tokens: 128000,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "nvidia/Llama-3.1-Nemotron-Ultra-253B-v1",
        provider_id: "nebius",
        context_window: 128000,
        max_output_tokens: 128000,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "nvidia/Llama-3.3-Nemotron-Super-49B-v1",
        provider_id: "nebius",
        context_window: 131072,
        max_output_tokens: 131072,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
];

pub const PROVIDER_NLP_CLOUD: ProviderDef = ProviderDef {
    id: "nlp_cloud",
    display_name: "NLP Cloud",
    default_base_url: "https://api.nlpcloud.io/v1",
    protocol: ProviderProtocol::OpenAICompat,
    auth: AuthKind::Bearer,
    status: ProviderStatus::Stub,
    env_vars: &["NLP_CLOUD_API_KEY"],
    litellm_prefix: "nlp_cloud/",
    capabilities: ProviderCapabilities {
        chat_completions: true,
        streaming: true,
        tool_use: false,
        embeddings: false,
        vision: false,
        batch: false,
    },
};

pub const MODELS_NLP_CLOUD: &[ModelDef] = &[
    ModelDef {
        id: "chatdolphin",
        provider_id: "nlp_cloud",
        context_window: 16384,
        max_output_tokens: 16384,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: false,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "dolphin",
        provider_id: "nlp_cloud",
        context_window: 16384,
        max_output_tokens: 16384,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: false,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
];

pub const PROVIDER_NOVITA: ProviderDef = ProviderDef {
    id: "novita",
    display_name: "Novita AI",
    default_base_url: "https://api.novita.ai/openai",
    protocol: ProviderProtocol::OpenAICompat,
    auth: AuthKind::Bearer,
    status: ProviderStatus::Stub,
    env_vars: &["NOVITA_API_KEY"],
    litellm_prefix: "novita/",
    capabilities: ProviderCapabilities {
        chat_completions: true,
        streaming: true,
        tool_use: true,
        embeddings: true,
        vision: true,
        batch: false,
    },
};

pub const MODELS_NOVITA: &[ModelDef] = &[
    ModelDef {
        id: "Sao10K/L3-8B-Stheno-v3.2",
        provider_id: "novita",
        context_window: 8192,
        max_output_tokens: 32000,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "baai/bge-m3",
        provider_id: "novita",
        context_window: 8192,
        max_output_tokens: 96000,
        capabilities: ModelCapabilities {
            streaming: false,
            tool_use: false,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "baai/bge-reranker-v2-m3",
        provider_id: "novita",
        context_window: 8000,
        max_output_tokens: 8000,
        capabilities: ModelCapabilities {
            streaming: false,
            tool_use: false,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "baichuan/baichuan-m2-32b",
        provider_id: "novita",
        context_window: 131072,
        max_output_tokens: 131072,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: false,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "baidu/ernie-4.5-21B-a3b",
        provider_id: "novita",
        context_window: 120000,
        max_output_tokens: 8000,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "baidu/ernie-4.5-21B-a3b-thinking",
        provider_id: "novita",
        context_window: 131072,
        max_output_tokens: 65536,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: false,
            vision: false,
            extended_thinking: true,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "baidu/ernie-4.5-300b-a47b-paddle",
        provider_id: "novita",
        context_window: 123000,
        max_output_tokens: 12000,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "baidu/ernie-4.5-vl-28b-a3b",
        provider_id: "novita",
        context_window: 30000,
        max_output_tokens: 8000,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: true,
            extended_thinking: true,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "baidu/ernie-4.5-vl-28b-a3b-thinking",
        provider_id: "novita",
        context_window: 131072,
        max_output_tokens: 65536,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: true,
            extended_thinking: true,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "baidu/ernie-4.5-vl-424b-a47b",
        provider_id: "novita",
        context_window: 123000,
        max_output_tokens: 16000,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: false,
            vision: true,
            extended_thinking: true,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "deepseek/deepseek-ocr",
        provider_id: "novita",
        context_window: 8192,
        max_output_tokens: 8192,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: true,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "deepseek/deepseek-prover-v2-671b",
        provider_id: "novita",
        context_window: 160000,
        max_output_tokens: 160000,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: false,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "deepseek/deepseek-r1-0528",
        provider_id: "novita",
        context_window: 163840,
        max_output_tokens: 32768,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: false,
            extended_thinking: true,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "deepseek/deepseek-r1-0528-qwen3-8b",
        provider_id: "novita",
        context_window: 128000,
        max_output_tokens: 32000,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: false,
            vision: false,
            extended_thinking: true,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "deepseek/deepseek-r1-distill-llama-70b",
        provider_id: "novita",
        context_window: 8192,
        max_output_tokens: 8192,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: false,
            extended_thinking: true,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "deepseek/deepseek-r1-distill-qwen-14b",
        provider_id: "novita",
        context_window: 32768,
        max_output_tokens: 16384,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: false,
            extended_thinking: true,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "deepseek/deepseek-r1-distill-qwen-32b",
        provider_id: "novita",
        context_window: 64000,
        max_output_tokens: 32000,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: false,
            extended_thinking: true,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "deepseek/deepseek-r1-turbo",
        provider_id: "novita",
        context_window: 64000,
        max_output_tokens: 16000,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: false,
            extended_thinking: true,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "deepseek/deepseek-v3-0324",
        provider_id: "novita",
        context_window: 163840,
        max_output_tokens: 163840,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "deepseek/deepseek-v3-turbo",
        provider_id: "novita",
        context_window: 64000,
        max_output_tokens: 16000,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "deepseek/deepseek-v3.1",
        provider_id: "novita",
        context_window: 131072,
        max_output_tokens: 32768,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: false,
            extended_thinking: true,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "deepseek/deepseek-v3.1-terminus",
        provider_id: "novita",
        context_window: 131072,
        max_output_tokens: 32768,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: false,
            extended_thinking: true,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "deepseek/deepseek-v3.2",
        provider_id: "novita",
        context_window: 163840,
        max_output_tokens: 65536,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: false,
            extended_thinking: true,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "deepseek/deepseek-v3.2-exp",
        provider_id: "novita",
        context_window: 163840,
        max_output_tokens: 65536,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: false,
            extended_thinking: true,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "google/gemma-3-12b-it",
        provider_id: "novita",
        context_window: 131072,
        max_output_tokens: 8192,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: true,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "google/gemma-3-27b-it",
        provider_id: "novita",
        context_window: 98304,
        max_output_tokens: 16384,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: false,
            vision: true,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "gryphe/mythomax-l2-13b",
        provider_id: "novita",
        context_window: 4096,
        max_output_tokens: 3200,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: false,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "kwaipilot/kat-coder-pro",
        provider_id: "novita",
        context_window: 256000,
        max_output_tokens: 128000,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "meta-llama/llama-3-70b-instruct",
        provider_id: "novita",
        context_window: 8192,
        max_output_tokens: 8000,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "meta-llama/llama-3-8b-instruct",
        provider_id: "novita",
        context_window: 8192,
        max_output_tokens: 8192,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: false,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "meta-llama/llama-3.1-8b-instruct",
        provider_id: "novita",
        context_window: 16384,
        max_output_tokens: 16384,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: false,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "meta-llama/llama-3.2-3b-instruct",
        provider_id: "novita",
        context_window: 32768,
        max_output_tokens: 32000,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "meta-llama/llama-3.3-70b-instruct",
        provider_id: "novita",
        context_window: 131072,
        max_output_tokens: 120000,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "meta-llama/llama-4-maverick-17b-128e-instruct-fp8",
        provider_id: "novita",
        context_window: 1048576,
        max_output_tokens: 8192,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: false,
            vision: true,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "meta-llama/llama-4-scout-17b-16e-instruct",
        provider_id: "novita",
        context_window: 131072,
        max_output_tokens: 131072,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: false,
            vision: true,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "microsoft/wizardlm-2-8x22b",
        provider_id: "novita",
        context_window: 65535,
        max_output_tokens: 8000,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: false,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "minimax/minimax-m2",
        provider_id: "novita",
        context_window: 204800,
        max_output_tokens: 131072,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: false,
            extended_thinking: true,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "minimax/minimax-m2.1",
        provider_id: "novita",
        context_window: 204800,
        max_output_tokens: 131072,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "minimaxai/minimax-m1-80k",
        provider_id: "novita",
        context_window: 1000000,
        max_output_tokens: 40000,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: false,
            extended_thinking: true,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "mistralai/mistral-nemo",
        provider_id: "novita",
        context_window: 60288,
        max_output_tokens: 16000,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "moonshotai/kimi-k2-0905",
        provider_id: "novita",
        context_window: 262144,
        max_output_tokens: 262144,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "moonshotai/kimi-k2-instruct",
        provider_id: "novita",
        context_window: 131072,
        max_output_tokens: 131072,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "moonshotai/kimi-k2-thinking",
        provider_id: "novita",
        context_window: 262144,
        max_output_tokens: 262144,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: false,
            extended_thinking: true,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "nousresearch/hermes-2-pro-llama-3-8b",
        provider_id: "novita",
        context_window: 8192,
        max_output_tokens: 8192,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "openai/gpt-oss-120b",
        provider_id: "novita",
        context_window: 131072,
        max_output_tokens: 32768,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: true,
            extended_thinking: true,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "openai/gpt-oss-20b",
        provider_id: "novita",
        context_window: 131072,
        max_output_tokens: 32768,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: true,
            extended_thinking: true,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "paddlepaddle/paddleocr-vl",
        provider_id: "novita",
        context_window: 16384,
        max_output_tokens: 16384,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: false,
            vision: true,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "qwen/qwen-2.5-72b-instruct",
        provider_id: "novita",
        context_window: 32000,
        max_output_tokens: 8192,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "qwen/qwen-mt-plus",
        provider_id: "novita",
        context_window: 16384,
        max_output_tokens: 8192,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: false,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "qwen/qwen2.5-7b-instruct",
        provider_id: "novita",
        context_window: 32000,
        max_output_tokens: 32000,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "qwen/qwen2.5-vl-72b-instruct",
        provider_id: "novita",
        context_window: 32768,
        max_output_tokens: 32768,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: false,
            vision: true,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "qwen/qwen3-235b-a22b-fp8",
        provider_id: "novita",
        context_window: 40960,
        max_output_tokens: 20000,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: false,
            vision: false,
            extended_thinking: true,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "qwen/qwen3-235b-a22b-instruct-2507",
        provider_id: "novita",
        context_window: 131072,
        max_output_tokens: 16384,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "qwen/qwen3-235b-a22b-thinking-2507",
        provider_id: "novita",
        context_window: 131072,
        max_output_tokens: 32768,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: false,
            extended_thinking: true,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "qwen/qwen3-30b-a3b-fp8",
        provider_id: "novita",
        context_window: 40960,
        max_output_tokens: 20000,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: false,
            vision: false,
            extended_thinking: true,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "qwen/qwen3-32b-fp8",
        provider_id: "novita",
        context_window: 40960,
        max_output_tokens: 20000,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: false,
            vision: false,
            extended_thinking: true,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "qwen/qwen3-4b-fp8",
        provider_id: "novita",
        context_window: 128000,
        max_output_tokens: 20000,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: false,
            vision: false,
            extended_thinking: true,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "qwen/qwen3-8b-fp8",
        provider_id: "novita",
        context_window: 128000,
        max_output_tokens: 20000,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: false,
            vision: false,
            extended_thinking: true,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "qwen/qwen3-coder-30b-a3b-instruct",
        provider_id: "novita",
        context_window: 160000,
        max_output_tokens: 32768,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "qwen/qwen3-coder-480b-a35b-instruct",
        provider_id: "novita",
        context_window: 262144,
        max_output_tokens: 65536,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "qwen/qwen3-embedding-0.6b",
        provider_id: "novita",
        context_window: 32768,
        max_output_tokens: 32768,
        capabilities: ModelCapabilities {
            streaming: false,
            tool_use: false,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "qwen/qwen3-embedding-8b",
        provider_id: "novita",
        context_window: 32768,
        max_output_tokens: 4096,
        capabilities: ModelCapabilities {
            streaming: false,
            tool_use: false,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "qwen/qwen3-max",
        provider_id: "novita",
        context_window: 262144,
        max_output_tokens: 65536,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "qwen/qwen3-next-80b-a3b-instruct",
        provider_id: "novita",
        context_window: 131072,
        max_output_tokens: 32768,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "qwen/qwen3-next-80b-a3b-thinking",
        provider_id: "novita",
        context_window: 131072,
        max_output_tokens: 32768,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: false,
            extended_thinking: true,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "qwen/qwen3-omni-30b-a3b-instruct",
        provider_id: "novita",
        context_window: 65536,
        max_output_tokens: 16384,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: true,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "qwen/qwen3-omni-30b-a3b-thinking",
        provider_id: "novita",
        context_window: 65536,
        max_output_tokens: 16384,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: true,
            extended_thinking: true,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "qwen/qwen3-reranker-8b",
        provider_id: "novita",
        context_window: 32768,
        max_output_tokens: 4096,
        capabilities: ModelCapabilities {
            streaming: false,
            tool_use: false,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "qwen/qwen3-vl-235b-a22b-instruct",
        provider_id: "novita",
        context_window: 131072,
        max_output_tokens: 32768,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: true,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "qwen/qwen3-vl-235b-a22b-thinking",
        provider_id: "novita",
        context_window: 131072,
        max_output_tokens: 32768,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: false,
            vision: true,
            extended_thinking: true,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "qwen/qwen3-vl-30b-a3b-instruct",
        provider_id: "novita",
        context_window: 131072,
        max_output_tokens: 32768,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: true,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "qwen/qwen3-vl-30b-a3b-thinking",
        provider_id: "novita",
        context_window: 131072,
        max_output_tokens: 32768,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: true,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "qwen/qwen3-vl-8b-instruct",
        provider_id: "novita",
        context_window: 131072,
        max_output_tokens: 32768,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: true,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "sao10k/l3-70b-euryale-v2.1",
        provider_id: "novita",
        context_window: 8192,
        max_output_tokens: 8192,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "sao10k/l3-8b-lunaris",
        provider_id: "novita",
        context_window: 8192,
        max_output_tokens: 8192,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "sao10k/l31-70b-euryale-v2.2",
        provider_id: "novita",
        context_window: 8192,
        max_output_tokens: 8192,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "skywork/r1v4-lite",
        provider_id: "novita",
        context_window: 262144,
        max_output_tokens: 65536,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: true,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "xiaomimimo/mimo-v2-flash",
        provider_id: "novita",
        context_window: 262144,
        max_output_tokens: 32000,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: false,
            extended_thinking: true,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "zai-org/autoglm-phone-9b-multilingual",
        provider_id: "novita",
        context_window: 65536,
        max_output_tokens: 65536,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: false,
            vision: true,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "zai-org/glm-4.5",
        provider_id: "novita",
        context_window: 131072,
        max_output_tokens: 98304,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: false,
            extended_thinking: true,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "zai-org/glm-4.5-air",
        provider_id: "novita",
        context_window: 131072,
        max_output_tokens: 98304,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: false,
            extended_thinking: true,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "zai-org/glm-4.5v",
        provider_id: "novita",
        context_window: 65536,
        max_output_tokens: 16384,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: true,
            extended_thinking: true,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "zai-org/glm-4.6",
        provider_id: "novita",
        context_window: 204800,
        max_output_tokens: 131072,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: false,
            extended_thinking: true,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "zai-org/glm-4.6v",
        provider_id: "novita",
        context_window: 131072,
        max_output_tokens: 32768,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: true,
            extended_thinking: true,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "zai-org/glm-4.7",
        provider_id: "novita",
        context_window: 204800,
        max_output_tokens: 131072,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: false,
            extended_thinking: true,
        },
        status: ModelStatus::Available,
    },
];

pub const PROVIDER_NSCALE: ProviderDef = ProviderDef {
    id: "nscale",
    display_name: "Nscale",
    default_base_url: "https://inference.api.nscale.com/v1",
    protocol: ProviderProtocol::OpenAICompat,
    auth: AuthKind::Bearer,
    status: ProviderStatus::Stub,
    env_vars: &["NSCALE_API_KEY"],
    litellm_prefix: "nscale/",
    capabilities: ProviderCapabilities {
        chat_completions: true,
        streaming: true,
        tool_use: false,
        embeddings: false,
        vision: false,
        batch: false,
    },
};

pub const MODELS_NSCALE: &[ModelDef] = &[
    ModelDef {
        id: "Qwen/QwQ-32B",
        provider_id: "nscale",
        context_window: 0,
        max_output_tokens: 0,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: false,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "Qwen/Qwen2.5-Coder-32B-Instruct",
        provider_id: "nscale",
        context_window: 0,
        max_output_tokens: 0,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: false,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "Qwen/Qwen2.5-Coder-3B-Instruct",
        provider_id: "nscale",
        context_window: 0,
        max_output_tokens: 0,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: false,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "Qwen/Qwen2.5-Coder-7B-Instruct",
        provider_id: "nscale",
        context_window: 0,
        max_output_tokens: 0,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: false,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "black-forest-labs/FLUX.1-schnell",
        provider_id: "nscale",
        context_window: 0,
        max_output_tokens: 0,
        capabilities: ModelCapabilities {
            streaming: false,
            tool_use: false,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "deepseek-ai/DeepSeek-R1-Distill-Llama-70B",
        provider_id: "nscale",
        context_window: 0,
        max_output_tokens: 0,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: false,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "deepseek-ai/DeepSeek-R1-Distill-Llama-8B",
        provider_id: "nscale",
        context_window: 0,
        max_output_tokens: 0,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: false,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "deepseek-ai/DeepSeek-R1-Distill-Qwen-1.5B",
        provider_id: "nscale",
        context_window: 0,
        max_output_tokens: 0,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: false,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "deepseek-ai/DeepSeek-R1-Distill-Qwen-14B",
        provider_id: "nscale",
        context_window: 0,
        max_output_tokens: 0,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: false,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "deepseek-ai/DeepSeek-R1-Distill-Qwen-32B",
        provider_id: "nscale",
        context_window: 0,
        max_output_tokens: 0,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: false,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "deepseek-ai/DeepSeek-R1-Distill-Qwen-7B",
        provider_id: "nscale",
        context_window: 0,
        max_output_tokens: 0,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: false,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "meta-llama/Llama-3.1-8B-Instruct",
        provider_id: "nscale",
        context_window: 0,
        max_output_tokens: 0,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: false,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "meta-llama/Llama-3.3-70B-Instruct",
        provider_id: "nscale",
        context_window: 0,
        max_output_tokens: 0,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: false,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "meta-llama/Llama-4-Scout-17B-16E-Instruct",
        provider_id: "nscale",
        context_window: 0,
        max_output_tokens: 0,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: false,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "mistralai/mixtral-8x22b-instruct-v0.1",
        provider_id: "nscale",
        context_window: 0,
        max_output_tokens: 0,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: false,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "stabilityai/stable-diffusion-xl-base-1.0",
        provider_id: "nscale",
        context_window: 0,
        max_output_tokens: 0,
        capabilities: ModelCapabilities {
            streaming: false,
            tool_use: false,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
];

pub const PROVIDER_NVIDIA_NIM: ProviderDef = ProviderDef {
    id: "nvidia_nim",
    display_name: "NVIDIA NIM",
    default_base_url: "https://integrate.api.nvidia.com/v1",
    protocol: ProviderProtocol::OpenAICompat,
    auth: AuthKind::Bearer,
    status: ProviderStatus::Stub,
    env_vars: &["NVIDIA_NIM_API_KEY", "NVIDIA_API_KEY"],
    litellm_prefix: "nvidia_nim/",
    capabilities: ProviderCapabilities {
        chat_completions: false,
        streaming: false,
        tool_use: false,
        embeddings: false,
        vision: false,
        batch: false,
    },
};

pub const MODELS_NVIDIA_NIM: &[ModelDef] = &[
    ModelDef {
        id: "nvidia/llama-3_2-nv-rerankqa-1b-v2",
        provider_id: "nvidia_nim",
        context_window: 0,
        max_output_tokens: 0,
        capabilities: ModelCapabilities {
            streaming: false,
            tool_use: false,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "nvidia/nv-rerankqa-mistral-4b-v3",
        provider_id: "nvidia_nim",
        context_window: 0,
        max_output_tokens: 0,
        capabilities: ModelCapabilities {
            streaming: false,
            tool_use: false,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "ranking/nvidia/llama-3.2-nv-rerankqa-1b-v2",
        provider_id: "nvidia_nim",
        context_window: 0,
        max_output_tokens: 0,
        capabilities: ModelCapabilities {
            streaming: false,
            tool_use: false,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
];

pub const PROVIDER_OCI: ProviderDef = ProviderDef {
    id: "oci",
    display_name: "Oracle Cloud Infrastructure",
    default_base_url: "",
    protocol: ProviderProtocol::OpenAICompat,
    auth: AuthKind::Bearer,
    status: ProviderStatus::Stub,
    env_vars: &["OCI_API_KEY"],
    litellm_prefix: "oci/",
    capabilities: ProviderCapabilities {
        chat_completions: true,
        streaming: true,
        tool_use: true,
        embeddings: true,
        vision: true,
        batch: false,
    },
};

pub const MODELS_OCI: &[ModelDef] = &[
    ModelDef {
        id: "cohere.command-a-03-2025",
        provider_id: "oci",
        context_window: 256000,
        max_output_tokens: 4000,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "cohere.command-a-reasoning-08-2025",
        provider_id: "oci",
        context_window: 256000,
        max_output_tokens: 4000,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "cohere.command-a-translate-08-2025",
        provider_id: "oci",
        context_window: 256000,
        max_output_tokens: 4000,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: false,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "cohere.command-a-vision-07-2025",
        provider_id: "oci",
        context_window: 128000,
        max_output_tokens: 4000,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: true,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "cohere.command-latest",
        provider_id: "oci",
        context_window: 128000,
        max_output_tokens: 4000,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "cohere.command-plus-latest",
        provider_id: "oci",
        context_window: 128000,
        max_output_tokens: 4000,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "cohere.command-r-08-2024",
        provider_id: "oci",
        context_window: 128000,
        max_output_tokens: 4000,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "cohere.command-r-plus-08-2024",
        provider_id: "oci",
        context_window: 128000,
        max_output_tokens: 4000,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "cohere.embed-english-image-v3.0",
        provider_id: "oci",
        context_window: 512,
        max_output_tokens: 0,
        capabilities: ModelCapabilities {
            streaming: false,
            tool_use: false,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "cohere.embed-english-light-image-v3.0",
        provider_id: "oci",
        context_window: 512,
        max_output_tokens: 0,
        capabilities: ModelCapabilities {
            streaming: false,
            tool_use: false,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "cohere.embed-english-light-v3.0",
        provider_id: "oci",
        context_window: 512,
        max_output_tokens: 0,
        capabilities: ModelCapabilities {
            streaming: false,
            tool_use: false,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "cohere.embed-english-v3.0",
        provider_id: "oci",
        context_window: 512,
        max_output_tokens: 0,
        capabilities: ModelCapabilities {
            streaming: false,
            tool_use: false,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "cohere.embed-multilingual-light-image-v3.0",
        provider_id: "oci",
        context_window: 512,
        max_output_tokens: 0,
        capabilities: ModelCapabilities {
            streaming: false,
            tool_use: false,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "cohere.embed-multilingual-light-v3.0",
        provider_id: "oci",
        context_window: 512,
        max_output_tokens: 0,
        capabilities: ModelCapabilities {
            streaming: false,
            tool_use: false,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "cohere.embed-multilingual-v3.0",
        provider_id: "oci",
        context_window: 512,
        max_output_tokens: 0,
        capabilities: ModelCapabilities {
            streaming: false,
            tool_use: false,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "cohere.embed-v4.0",
        provider_id: "oci",
        context_window: 128000,
        max_output_tokens: 0,
        capabilities: ModelCapabilities {
            streaming: false,
            tool_use: false,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "google.gemini-2.5-flash",
        provider_id: "oci",
        context_window: 1048576,
        max_output_tokens: 65536,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: true,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "google.gemini-2.5-flash-lite",
        provider_id: "oci",
        context_window: 1048576,
        max_output_tokens: 65536,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: true,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "google.gemini-2.5-pro",
        provider_id: "oci",
        context_window: 1048576,
        max_output_tokens: 65536,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: true,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "meta.llama-3.1-405b-instruct",
        provider_id: "oci",
        context_window: 128000,
        max_output_tokens: 4000,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "meta.llama-3.1-70b-instruct",
        provider_id: "oci",
        context_window: 128000,
        max_output_tokens: 4000,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "meta.llama-3.2-11b-vision-instruct",
        provider_id: "oci",
        context_window: 128000,
        max_output_tokens: 4000,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: true,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "meta.llama-3.2-90b-vision-instruct",
        provider_id: "oci",
        context_window: 128000,
        max_output_tokens: 4000,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: true,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "meta.llama-3.3-70b-instruct",
        provider_id: "oci",
        context_window: 128000,
        max_output_tokens: 4000,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "meta.llama-3.3-70b-instruct-fp8-dynamic",
        provider_id: "oci",
        context_window: 128000,
        max_output_tokens: 4000,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "meta.llama-4-maverick-17b-128e-instruct-fp8",
        provider_id: "oci",
        context_window: 512000,
        max_output_tokens: 4000,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "meta.llama-4-scout-17b-16e-instruct",
        provider_id: "oci",
        context_window: 192000,
        max_output_tokens: 4000,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "xai.grok-3",
        provider_id: "oci",
        context_window: 131072,
        max_output_tokens: 131072,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "xai.grok-3-fast",
        provider_id: "oci",
        context_window: 131072,
        max_output_tokens: 131072,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "xai.grok-3-mini",
        provider_id: "oci",
        context_window: 131072,
        max_output_tokens: 131072,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "xai.grok-3-mini-fast",
        provider_id: "oci",
        context_window: 131072,
        max_output_tokens: 131072,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "xai.grok-4",
        provider_id: "oci",
        context_window: 128000,
        max_output_tokens: 128000,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "xai.grok-4-fast",
        provider_id: "oci",
        context_window: 131072,
        max_output_tokens: 131072,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "xai.grok-4.1-fast",
        provider_id: "oci",
        context_window: 131072,
        max_output_tokens: 131072,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "xai.grok-4.20",
        provider_id: "oci",
        context_window: 131072,
        max_output_tokens: 131072,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "xai.grok-4.20-multi-agent",
        provider_id: "oci",
        context_window: 131072,
        max_output_tokens: 131072,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "xai.grok-code-fast-1",
        provider_id: "oci",
        context_window: 131072,
        max_output_tokens: 131072,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
];

pub const PROVIDER_OLLAMA: ProviderDef = ProviderDef {
    id: "ollama",
    display_name: "Ollama",
    default_base_url: "http://localhost:11434/v1",
    protocol: ProviderProtocol::OpenAICompat,
    auth: AuthKind::None,
    status: ProviderStatus::Stub,
    env_vars: &["OLLAMA_API_KEY"],
    litellm_prefix: "ollama/",
    capabilities: ProviderCapabilities {
        chat_completions: true,
        streaming: true,
        tool_use: true,
        embeddings: false,
        vision: false,
        batch: false,
    },
};

pub const MODELS_OLLAMA: &[ModelDef] = &[
    ModelDef {
        id: "codegeex4",
        provider_id: "ollama",
        context_window: 32768,
        max_output_tokens: 8192,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: false,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "codegemma",
        provider_id: "ollama",
        context_window: 8192,
        max_output_tokens: 8192,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: false,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "codellama",
        provider_id: "ollama",
        context_window: 4096,
        max_output_tokens: 4096,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: false,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "deepseek-coder-v2-base",
        provider_id: "ollama",
        context_window: 8192,
        max_output_tokens: 8192,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "deepseek-coder-v2-instruct",
        provider_id: "ollama",
        context_window: 32768,
        max_output_tokens: 8192,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "deepseek-coder-v2-lite-base",
        provider_id: "ollama",
        context_window: 8192,
        max_output_tokens: 8192,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "deepseek-coder-v2-lite-instruct",
        provider_id: "ollama",
        context_window: 32768,
        max_output_tokens: 8192,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "deepseek-v3.1:671b-cloud",
        provider_id: "ollama",
        context_window: 163840,
        max_output_tokens: 163840,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "gpt-oss:120b-cloud",
        provider_id: "ollama",
        context_window: 131072,
        max_output_tokens: 131072,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "gpt-oss:20b-cloud",
        provider_id: "ollama",
        context_window: 131072,
        max_output_tokens: 131072,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "internlm2_5-20b-chat",
        provider_id: "ollama",
        context_window: 32768,
        max_output_tokens: 8192,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "llama2",
        provider_id: "ollama",
        context_window: 4096,
        max_output_tokens: 4096,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: false,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "llama2-uncensored",
        provider_id: "ollama",
        context_window: 4096,
        max_output_tokens: 4096,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: false,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "llama2:13b",
        provider_id: "ollama",
        context_window: 4096,
        max_output_tokens: 4096,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: false,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "llama2:70b",
        provider_id: "ollama",
        context_window: 4096,
        max_output_tokens: 4096,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: false,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "llama2:7b",
        provider_id: "ollama",
        context_window: 4096,
        max_output_tokens: 4096,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: false,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "llama3",
        provider_id: "ollama",
        context_window: 8192,
        max_output_tokens: 8192,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: false,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "llama3.1",
        provider_id: "ollama",
        context_window: 8192,
        max_output_tokens: 8192,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "llama3:70b",
        provider_id: "ollama",
        context_window: 8192,
        max_output_tokens: 8192,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: false,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "llama3:8b",
        provider_id: "ollama",
        context_window: 8192,
        max_output_tokens: 8192,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: false,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "mistral",
        provider_id: "ollama",
        context_window: 8192,
        max_output_tokens: 8192,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "mistral-7B-Instruct-v0.1",
        provider_id: "ollama",
        context_window: 8192,
        max_output_tokens: 8192,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "mistral-7B-Instruct-v0.2",
        provider_id: "ollama",
        context_window: 32768,
        max_output_tokens: 32768,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "mistral-large-instruct-2407",
        provider_id: "ollama",
        context_window: 65536,
        max_output_tokens: 8192,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "mixtral-8x22B-Instruct-v0.1",
        provider_id: "ollama",
        context_window: 65536,
        max_output_tokens: 65536,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "mixtral-8x7B-Instruct-v0.1",
        provider_id: "ollama",
        context_window: 32768,
        max_output_tokens: 32768,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "orca-mini",
        provider_id: "ollama",
        context_window: 4096,
        max_output_tokens: 4096,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: false,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "qwen3-coder:480b-cloud",
        provider_id: "ollama",
        context_window: 262144,
        max_output_tokens: 262144,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "vicuna",
        provider_id: "ollama",
        context_window: 2048,
        max_output_tokens: 2048,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: false,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
];

pub const PROVIDER_OPENAI: ProviderDef = ProviderDef {
    id: "openai",
    display_name: "OpenAI",
    default_base_url: "https://api.openai.com",
    protocol: ProviderProtocol::OpenAICompat,
    auth: AuthKind::Bearer,
    status: ProviderStatus::Implemented,
    env_vars: &["OPENAI_API_KEY"],
    litellm_prefix: "openai/",
    capabilities: ProviderCapabilities {
        chat_completions: true,
        streaming: true,
        tool_use: true,
        embeddings: true,
        vision: true,
        batch: true,
    },
};

pub const MODELS_OPENAI: &[ModelDef] = &[
    ModelDef {
        id: "1024-x-1024/dall-e-2",
        provider_id: "openai",
        context_window: 0,
        max_output_tokens: 0,
        capabilities: ModelCapabilities {
            streaming: false,
            tool_use: false,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "1024-x-1024/gpt-image-1.5",
        provider_id: "openai",
        context_window: 0,
        max_output_tokens: 0,
        capabilities: ModelCapabilities {
            streaming: false,
            tool_use: false,
            vision: true,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "1024-x-1024/gpt-image-1.5-2025-12-16",
        provider_id: "openai",
        context_window: 0,
        max_output_tokens: 0,
        capabilities: ModelCapabilities {
            streaming: false,
            tool_use: false,
            vision: true,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "1024-x-1536/gpt-image-1.5",
        provider_id: "openai",
        context_window: 0,
        max_output_tokens: 0,
        capabilities: ModelCapabilities {
            streaming: false,
            tool_use: false,
            vision: true,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "1024-x-1536/gpt-image-1.5-2025-12-16",
        provider_id: "openai",
        context_window: 0,
        max_output_tokens: 0,
        capabilities: ModelCapabilities {
            streaming: false,
            tool_use: false,
            vision: true,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "1536-x-1024/gpt-image-1.5",
        provider_id: "openai",
        context_window: 0,
        max_output_tokens: 0,
        capabilities: ModelCapabilities {
            streaming: false,
            tool_use: false,
            vision: true,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "1536-x-1024/gpt-image-1.5-2025-12-16",
        provider_id: "openai",
        context_window: 0,
        max_output_tokens: 0,
        capabilities: ModelCapabilities {
            streaming: false,
            tool_use: false,
            vision: true,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "256-x-256/dall-e-2",
        provider_id: "openai",
        context_window: 0,
        max_output_tokens: 0,
        capabilities: ModelCapabilities {
            streaming: false,
            tool_use: false,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "512-x-512/dall-e-2",
        provider_id: "openai",
        context_window: 0,
        max_output_tokens: 0,
        capabilities: ModelCapabilities {
            streaming: false,
            tool_use: false,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "chatgpt-4o-latest",
        provider_id: "openai",
        context_window: 128000,
        max_output_tokens: 4096,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: true,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "chatgpt-image-latest",
        provider_id: "openai",
        context_window: 0,
        max_output_tokens: 0,
        capabilities: ModelCapabilities {
            streaming: false,
            tool_use: false,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "codex-mini-latest",
        provider_id: "openai",
        context_window: 200000,
        max_output_tokens: 100000,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: true,
            extended_thinking: true,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "container",
        provider_id: "openai",
        context_window: 0,
        max_output_tokens: 0,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: false,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "dall-e-2",
        provider_id: "openai",
        context_window: 0,
        max_output_tokens: 0,
        capabilities: ModelCapabilities {
            streaming: false,
            tool_use: false,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "dall-e-3",
        provider_id: "openai",
        context_window: 0,
        max_output_tokens: 0,
        capabilities: ModelCapabilities {
            streaming: false,
            tool_use: false,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "ft:gpt-3.5-turbo",
        provider_id: "openai",
        context_window: 16385,
        max_output_tokens: 4096,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "ft:gpt-3.5-turbo-0125",
        provider_id: "openai",
        context_window: 16385,
        max_output_tokens: 4096,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "ft:gpt-3.5-turbo-0613",
        provider_id: "openai",
        context_window: 4096,
        max_output_tokens: 4096,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "ft:gpt-3.5-turbo-1106",
        provider_id: "openai",
        context_window: 16385,
        max_output_tokens: 4096,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "ft:gpt-4-0613",
        provider_id: "openai",
        context_window: 8192,
        max_output_tokens: 4096,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "ft:gpt-4.1-2025-04-14",
        provider_id: "openai",
        context_window: 1047576,
        max_output_tokens: 32768,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "ft:gpt-4.1-mini-2025-04-14",
        provider_id: "openai",
        context_window: 1047576,
        max_output_tokens: 32768,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "ft:gpt-4.1-nano-2025-04-14",
        provider_id: "openai",
        context_window: 1047576,
        max_output_tokens: 32768,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "ft:gpt-4o-2024-08-06",
        provider_id: "openai",
        context_window: 128000,
        max_output_tokens: 16384,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: true,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "ft:gpt-4o-2024-11-20",
        provider_id: "openai",
        context_window: 128000,
        max_output_tokens: 16384,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "ft:gpt-4o-mini-2024-07-18",
        provider_id: "openai",
        context_window: 128000,
        max_output_tokens: 16384,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "ft:o4-mini-2025-04-16",
        provider_id: "openai",
        context_window: 200000,
        max_output_tokens: 100000,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: false,
            extended_thinking: true,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "gpt-3.5-turbo",
        provider_id: "openai",
        context_window: 16385,
        max_output_tokens: 4096,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "gpt-3.5-turbo-0125",
        provider_id: "openai",
        context_window: 16385,
        max_output_tokens: 4096,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "gpt-3.5-turbo-1106",
        provider_id: "openai",
        context_window: 16385,
        max_output_tokens: 4096,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Deprecated,
    },
    ModelDef {
        id: "gpt-3.5-turbo-16k",
        provider_id: "openai",
        context_window: 16385,
        max_output_tokens: 4096,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "gpt-4",
        provider_id: "openai",
        context_window: 8192,
        max_output_tokens: 4096,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "gpt-4-0125-preview",
        provider_id: "openai",
        context_window: 128000,
        max_output_tokens: 4096,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Deprecated,
    },
    ModelDef {
        id: "gpt-4-0314",
        provider_id: "openai",
        context_window: 8192,
        max_output_tokens: 4096,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Deprecated,
    },
    ModelDef {
        id: "gpt-4-0613",
        provider_id: "openai",
        context_window: 8192,
        max_output_tokens: 4096,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Deprecated,
    },
    ModelDef {
        id: "gpt-4-1106-preview",
        provider_id: "openai",
        context_window: 128000,
        max_output_tokens: 4096,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Deprecated,
    },
    ModelDef {
        id: "gpt-4-turbo",
        provider_id: "openai",
        context_window: 128000,
        max_output_tokens: 4096,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: true,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "gpt-4-turbo-2024-04-09",
        provider_id: "openai",
        context_window: 128000,
        max_output_tokens: 4096,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: true,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "gpt-4-turbo-preview",
        provider_id: "openai",
        context_window: 128000,
        max_output_tokens: 4096,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "gpt-4.1",
        provider_id: "openai",
        context_window: 1047576,
        max_output_tokens: 32768,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: true,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "gpt-4.1-2025-04-14",
        provider_id: "openai",
        context_window: 1047576,
        max_output_tokens: 32768,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: true,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "gpt-4.1-mini",
        provider_id: "openai",
        context_window: 1047576,
        max_output_tokens: 32768,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: true,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "gpt-4.1-mini-2025-04-14",
        provider_id: "openai",
        context_window: 1047576,
        max_output_tokens: 32768,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: true,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "gpt-4.1-nano",
        provider_id: "openai",
        context_window: 1047576,
        max_output_tokens: 32768,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: true,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "gpt-4.1-nano-2025-04-14",
        provider_id: "openai",
        context_window: 1047576,
        max_output_tokens: 32768,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: true,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "gpt-4o",
        provider_id: "openai",
        context_window: 128000,
        max_output_tokens: 16384,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: true,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "gpt-4o-2024-05-13",
        provider_id: "openai",
        context_window: 128000,
        max_output_tokens: 4096,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: true,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "gpt-4o-2024-08-06",
        provider_id: "openai",
        context_window: 128000,
        max_output_tokens: 16384,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: true,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "gpt-4o-2024-11-20",
        provider_id: "openai",
        context_window: 128000,
        max_output_tokens: 16384,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: true,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "gpt-4o-audio-preview",
        provider_id: "openai",
        context_window: 128000,
        max_output_tokens: 16384,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "gpt-4o-audio-preview-2024-12-17",
        provider_id: "openai",
        context_window: 128000,
        max_output_tokens: 16384,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "gpt-4o-audio-preview-2025-06-03",
        provider_id: "openai",
        context_window: 128000,
        max_output_tokens: 16384,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "gpt-4o-mini",
        provider_id: "openai",
        context_window: 128000,
        max_output_tokens: 16384,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: true,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "gpt-4o-mini-2024-07-18",
        provider_id: "openai",
        context_window: 128000,
        max_output_tokens: 16384,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: true,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "gpt-4o-mini-audio-preview",
        provider_id: "openai",
        context_window: 128000,
        max_output_tokens: 16384,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "gpt-4o-mini-audio-preview-2024-12-17",
        provider_id: "openai",
        context_window: 128000,
        max_output_tokens: 16384,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "gpt-4o-mini-realtime-preview",
        provider_id: "openai",
        context_window: 128000,
        max_output_tokens: 4096,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "gpt-4o-mini-realtime-preview-2024-12-17",
        provider_id: "openai",
        context_window: 128000,
        max_output_tokens: 4096,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "gpt-4o-mini-search-preview",
        provider_id: "openai",
        context_window: 128000,
        max_output_tokens: 16384,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: true,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "gpt-4o-mini-search-preview-2025-03-11",
        provider_id: "openai",
        context_window: 128000,
        max_output_tokens: 16384,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: true,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "gpt-4o-mini-transcribe",
        provider_id: "openai",
        context_window: 16000,
        max_output_tokens: 2000,
        capabilities: ModelCapabilities {
            streaming: false,
            tool_use: false,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "gpt-4o-mini-transcribe-2025-03-20",
        provider_id: "openai",
        context_window: 16000,
        max_output_tokens: 2000,
        capabilities: ModelCapabilities {
            streaming: false,
            tool_use: false,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "gpt-4o-mini-transcribe-2025-12-15",
        provider_id: "openai",
        context_window: 16000,
        max_output_tokens: 2000,
        capabilities: ModelCapabilities {
            streaming: false,
            tool_use: false,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "gpt-4o-mini-tts",
        provider_id: "openai",
        context_window: 0,
        max_output_tokens: 0,
        capabilities: ModelCapabilities {
            streaming: false,
            tool_use: false,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "gpt-4o-mini-tts-2025-03-20",
        provider_id: "openai",
        context_window: 0,
        max_output_tokens: 0,
        capabilities: ModelCapabilities {
            streaming: false,
            tool_use: false,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "gpt-4o-mini-tts-2025-12-15",
        provider_id: "openai",
        context_window: 0,
        max_output_tokens: 0,
        capabilities: ModelCapabilities {
            streaming: false,
            tool_use: false,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "gpt-4o-realtime-preview",
        provider_id: "openai",
        context_window: 128000,
        max_output_tokens: 4096,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "gpt-4o-realtime-preview-2024-12-17",
        provider_id: "openai",
        context_window: 128000,
        max_output_tokens: 4096,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "gpt-4o-realtime-preview-2025-06-03",
        provider_id: "openai",
        context_window: 128000,
        max_output_tokens: 4096,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "gpt-4o-search-preview",
        provider_id: "openai",
        context_window: 128000,
        max_output_tokens: 16384,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: true,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "gpt-4o-search-preview-2025-03-11",
        provider_id: "openai",
        context_window: 128000,
        max_output_tokens: 16384,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: true,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "gpt-4o-transcribe",
        provider_id: "openai",
        context_window: 16000,
        max_output_tokens: 2000,
        capabilities: ModelCapabilities {
            streaming: false,
            tool_use: false,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "gpt-4o-transcribe-diarize",
        provider_id: "openai",
        context_window: 16000,
        max_output_tokens: 2000,
        capabilities: ModelCapabilities {
            streaming: false,
            tool_use: false,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "gpt-5",
        provider_id: "openai",
        context_window: 272000,
        max_output_tokens: 128000,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: true,
            extended_thinking: true,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "gpt-5-2025-08-07",
        provider_id: "openai",
        context_window: 272000,
        max_output_tokens: 128000,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: true,
            extended_thinking: true,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "gpt-5-chat",
        provider_id: "openai",
        context_window: 128000,
        max_output_tokens: 16384,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: false,
            vision: true,
            extended_thinking: true,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "gpt-5-chat-latest",
        provider_id: "openai",
        context_window: 128000,
        max_output_tokens: 16384,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: false,
            vision: true,
            extended_thinking: true,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "gpt-5-codex",
        provider_id: "openai",
        context_window: 272000,
        max_output_tokens: 128000,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: true,
            extended_thinking: true,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "gpt-5-mini",
        provider_id: "openai",
        context_window: 272000,
        max_output_tokens: 128000,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: true,
            extended_thinking: true,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "gpt-5-mini-2025-08-07",
        provider_id: "openai",
        context_window: 272000,
        max_output_tokens: 128000,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: true,
            extended_thinking: true,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "gpt-5-nano",
        provider_id: "openai",
        context_window: 272000,
        max_output_tokens: 128000,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: true,
            extended_thinking: true,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "gpt-5-nano-2025-08-07",
        provider_id: "openai",
        context_window: 272000,
        max_output_tokens: 128000,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: true,
            extended_thinking: true,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "gpt-5-pro",
        provider_id: "openai",
        context_window: 128000,
        max_output_tokens: 272000,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: true,
            extended_thinking: true,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "gpt-5-pro-2025-10-06",
        provider_id: "openai",
        context_window: 128000,
        max_output_tokens: 272000,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: true,
            extended_thinking: true,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "gpt-5-search-api",
        provider_id: "openai",
        context_window: 272000,
        max_output_tokens: 128000,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: true,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "gpt-5-search-api-2025-10-14",
        provider_id: "openai",
        context_window: 272000,
        max_output_tokens: 128000,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: true,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "gpt-5.1",
        provider_id: "openai",
        context_window: 272000,
        max_output_tokens: 128000,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: true,
            extended_thinking: true,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "gpt-5.1-2025-11-13",
        provider_id: "openai",
        context_window: 272000,
        max_output_tokens: 128000,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: true,
            extended_thinking: true,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "gpt-5.1-chat-latest",
        provider_id: "openai",
        context_window: 128000,
        max_output_tokens: 16384,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: false,
            vision: true,
            extended_thinking: true,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "gpt-5.1-codex",
        provider_id: "openai",
        context_window: 272000,
        max_output_tokens: 128000,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: true,
            extended_thinking: true,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "gpt-5.1-codex-max",
        provider_id: "openai",
        context_window: 272000,
        max_output_tokens: 128000,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: true,
            extended_thinking: true,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "gpt-5.1-codex-mini",
        provider_id: "openai",
        context_window: 272000,
        max_output_tokens: 128000,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: true,
            extended_thinking: true,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "gpt-5.2",
        provider_id: "openai",
        context_window: 272000,
        max_output_tokens: 128000,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: true,
            extended_thinking: true,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "gpt-5.2-2025-12-11",
        provider_id: "openai",
        context_window: 272000,
        max_output_tokens: 128000,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: true,
            extended_thinking: true,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "gpt-5.2-chat-latest",
        provider_id: "openai",
        context_window: 128000,
        max_output_tokens: 16384,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: true,
            extended_thinking: true,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "gpt-5.2-codex",
        provider_id: "openai",
        context_window: 272000,
        max_output_tokens: 128000,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: true,
            extended_thinking: true,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "gpt-5.2-pro",
        provider_id: "openai",
        context_window: 272000,
        max_output_tokens: 128000,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: true,
            extended_thinking: true,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "gpt-5.2-pro-2025-12-11",
        provider_id: "openai",
        context_window: 272000,
        max_output_tokens: 128000,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: true,
            extended_thinking: true,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "gpt-5.3-chat-latest",
        provider_id: "openai",
        context_window: 128000,
        max_output_tokens: 16384,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: true,
            extended_thinking: true,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "gpt-5.3-codex",
        provider_id: "openai",
        context_window: 272000,
        max_output_tokens: 128000,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: true,
            extended_thinking: true,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "gpt-5.4",
        provider_id: "openai",
        context_window: 1050000,
        max_output_tokens: 128000,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: true,
            extended_thinking: true,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "gpt-5.4-2026-03-05",
        provider_id: "openai",
        context_window: 1050000,
        max_output_tokens: 128000,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: true,
            extended_thinking: true,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "gpt-5.4-mini",
        provider_id: "openai",
        context_window: 272000,
        max_output_tokens: 128000,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: true,
            extended_thinking: true,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "gpt-5.4-mini-2026-03-17",
        provider_id: "openai",
        context_window: 272000,
        max_output_tokens: 128000,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: true,
            extended_thinking: true,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "gpt-5.4-nano",
        provider_id: "openai",
        context_window: 272000,
        max_output_tokens: 128000,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: true,
            extended_thinking: true,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "gpt-5.4-nano-2026-03-17",
        provider_id: "openai",
        context_window: 272000,
        max_output_tokens: 128000,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: true,
            extended_thinking: true,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "gpt-5.4-pro",
        provider_id: "openai",
        context_window: 1050000,
        max_output_tokens: 128000,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: true,
            extended_thinking: true,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "gpt-5.4-pro-2026-03-05",
        provider_id: "openai",
        context_window: 1050000,
        max_output_tokens: 128000,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: true,
            extended_thinking: true,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "gpt-5.5",
        provider_id: "openai",
        context_window: 1050000,
        max_output_tokens: 128000,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: true,
            extended_thinking: true,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "gpt-5.5-2026-04-23",
        provider_id: "openai",
        context_window: 1050000,
        max_output_tokens: 128000,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: true,
            extended_thinking: true,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "gpt-5.5-pro",
        provider_id: "openai",
        context_window: 1050000,
        max_output_tokens: 128000,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: true,
            extended_thinking: true,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "gpt-5.5-pro-2026-04-23",
        provider_id: "openai",
        context_window: 1050000,
        max_output_tokens: 128000,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: true,
            extended_thinking: true,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "gpt-audio",
        provider_id: "openai",
        context_window: 128000,
        max_output_tokens: 16384,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "gpt-audio-1.5",
        provider_id: "openai",
        context_window: 128000,
        max_output_tokens: 16384,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "gpt-audio-2025-08-28",
        provider_id: "openai",
        context_window: 128000,
        max_output_tokens: 16384,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "gpt-audio-mini",
        provider_id: "openai",
        context_window: 128000,
        max_output_tokens: 16384,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "gpt-audio-mini-2025-10-06",
        provider_id: "openai",
        context_window: 128000,
        max_output_tokens: 16384,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "gpt-audio-mini-2025-12-15",
        provider_id: "openai",
        context_window: 128000,
        max_output_tokens: 16384,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "gpt-image-1",
        provider_id: "openai",
        context_window: 0,
        max_output_tokens: 0,
        capabilities: ModelCapabilities {
            streaming: false,
            tool_use: false,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "gpt-image-1-mini",
        provider_id: "openai",
        context_window: 0,
        max_output_tokens: 0,
        capabilities: ModelCapabilities {
            streaming: false,
            tool_use: false,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "gpt-image-1.5",
        provider_id: "openai",
        context_window: 0,
        max_output_tokens: 0,
        capabilities: ModelCapabilities {
            streaming: false,
            tool_use: false,
            vision: true,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "gpt-image-1.5-2025-12-16",
        provider_id: "openai",
        context_window: 0,
        max_output_tokens: 0,
        capabilities: ModelCapabilities {
            streaming: false,
            tool_use: false,
            vision: true,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "gpt-image-2",
        provider_id: "openai",
        context_window: 0,
        max_output_tokens: 0,
        capabilities: ModelCapabilities {
            streaming: false,
            tool_use: false,
            vision: true,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "gpt-image-2-2026-04-21",
        provider_id: "openai",
        context_window: 0,
        max_output_tokens: 0,
        capabilities: ModelCapabilities {
            streaming: false,
            tool_use: false,
            vision: true,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "gpt-realtime",
        provider_id: "openai",
        context_window: 32000,
        max_output_tokens: 4096,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "gpt-realtime-1.5",
        provider_id: "openai",
        context_window: 32000,
        max_output_tokens: 4096,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "gpt-realtime-2",
        provider_id: "openai",
        context_window: 32000,
        max_output_tokens: 4096,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "gpt-realtime-2025-08-28",
        provider_id: "openai",
        context_window: 32000,
        max_output_tokens: 4096,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "gpt-realtime-mini",
        provider_id: "openai",
        context_window: 128000,
        max_output_tokens: 4096,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "gpt-realtime-mini-2025-10-06",
        provider_id: "openai",
        context_window: 128000,
        max_output_tokens: 4096,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "gpt-realtime-mini-2025-12-15",
        provider_id: "openai",
        context_window: 128000,
        max_output_tokens: 4096,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "hd/1024-x-1024/dall-e-3",
        provider_id: "openai",
        context_window: 0,
        max_output_tokens: 0,
        capabilities: ModelCapabilities {
            streaming: false,
            tool_use: false,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "hd/1024-x-1792/dall-e-3",
        provider_id: "openai",
        context_window: 0,
        max_output_tokens: 0,
        capabilities: ModelCapabilities {
            streaming: false,
            tool_use: false,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "hd/1792-x-1024/dall-e-3",
        provider_id: "openai",
        context_window: 0,
        max_output_tokens: 0,
        capabilities: ModelCapabilities {
            streaming: false,
            tool_use: false,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "high/1024-x-1024/gpt-image-1",
        provider_id: "openai",
        context_window: 0,
        max_output_tokens: 0,
        capabilities: ModelCapabilities {
            streaming: false,
            tool_use: false,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "high/1024-x-1024/gpt-image-1.5",
        provider_id: "openai",
        context_window: 0,
        max_output_tokens: 0,
        capabilities: ModelCapabilities {
            streaming: false,
            tool_use: false,
            vision: true,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "high/1024-x-1024/gpt-image-1.5-2025-12-16",
        provider_id: "openai",
        context_window: 0,
        max_output_tokens: 0,
        capabilities: ModelCapabilities {
            streaming: false,
            tool_use: false,
            vision: true,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "high/1024-x-1536/gpt-image-1",
        provider_id: "openai",
        context_window: 0,
        max_output_tokens: 0,
        capabilities: ModelCapabilities {
            streaming: false,
            tool_use: false,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "high/1024-x-1536/gpt-image-1.5",
        provider_id: "openai",
        context_window: 0,
        max_output_tokens: 0,
        capabilities: ModelCapabilities {
            streaming: false,
            tool_use: false,
            vision: true,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "high/1024-x-1536/gpt-image-1.5-2025-12-16",
        provider_id: "openai",
        context_window: 0,
        max_output_tokens: 0,
        capabilities: ModelCapabilities {
            streaming: false,
            tool_use: false,
            vision: true,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "high/1536-x-1024/gpt-image-1",
        provider_id: "openai",
        context_window: 0,
        max_output_tokens: 0,
        capabilities: ModelCapabilities {
            streaming: false,
            tool_use: false,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "high/1536-x-1024/gpt-image-1.5",
        provider_id: "openai",
        context_window: 0,
        max_output_tokens: 0,
        capabilities: ModelCapabilities {
            streaming: false,
            tool_use: false,
            vision: true,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "high/1536-x-1024/gpt-image-1.5-2025-12-16",
        provider_id: "openai",
        context_window: 0,
        max_output_tokens: 0,
        capabilities: ModelCapabilities {
            streaming: false,
            tool_use: false,
            vision: true,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "low/1024-x-1024/gpt-image-1",
        provider_id: "openai",
        context_window: 0,
        max_output_tokens: 0,
        capabilities: ModelCapabilities {
            streaming: false,
            tool_use: false,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "low/1024-x-1024/gpt-image-1-mini",
        provider_id: "openai",
        context_window: 0,
        max_output_tokens: 0,
        capabilities: ModelCapabilities {
            streaming: false,
            tool_use: false,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "low/1024-x-1024/gpt-image-1.5",
        provider_id: "openai",
        context_window: 0,
        max_output_tokens: 0,
        capabilities: ModelCapabilities {
            streaming: false,
            tool_use: false,
            vision: true,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "low/1024-x-1024/gpt-image-1.5-2025-12-16",
        provider_id: "openai",
        context_window: 0,
        max_output_tokens: 0,
        capabilities: ModelCapabilities {
            streaming: false,
            tool_use: false,
            vision: true,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "low/1024-x-1536/gpt-image-1",
        provider_id: "openai",
        context_window: 0,
        max_output_tokens: 0,
        capabilities: ModelCapabilities {
            streaming: false,
            tool_use: false,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "low/1024-x-1536/gpt-image-1-mini",
        provider_id: "openai",
        context_window: 0,
        max_output_tokens: 0,
        capabilities: ModelCapabilities {
            streaming: false,
            tool_use: false,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "low/1024-x-1536/gpt-image-1.5",
        provider_id: "openai",
        context_window: 0,
        max_output_tokens: 0,
        capabilities: ModelCapabilities {
            streaming: false,
            tool_use: false,
            vision: true,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "low/1024-x-1536/gpt-image-1.5-2025-12-16",
        provider_id: "openai",
        context_window: 0,
        max_output_tokens: 0,
        capabilities: ModelCapabilities {
            streaming: false,
            tool_use: false,
            vision: true,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "low/1536-x-1024/gpt-image-1",
        provider_id: "openai",
        context_window: 0,
        max_output_tokens: 0,
        capabilities: ModelCapabilities {
            streaming: false,
            tool_use: false,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "low/1536-x-1024/gpt-image-1-mini",
        provider_id: "openai",
        context_window: 0,
        max_output_tokens: 0,
        capabilities: ModelCapabilities {
            streaming: false,
            tool_use: false,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "low/1536-x-1024/gpt-image-1.5",
        provider_id: "openai",
        context_window: 0,
        max_output_tokens: 0,
        capabilities: ModelCapabilities {
            streaming: false,
            tool_use: false,
            vision: true,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "low/1536-x-1024/gpt-image-1.5-2025-12-16",
        provider_id: "openai",
        context_window: 0,
        max_output_tokens: 0,
        capabilities: ModelCapabilities {
            streaming: false,
            tool_use: false,
            vision: true,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "medium/1024-x-1024/gpt-image-1",
        provider_id: "openai",
        context_window: 0,
        max_output_tokens: 0,
        capabilities: ModelCapabilities {
            streaming: false,
            tool_use: false,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "medium/1024-x-1024/gpt-image-1-mini",
        provider_id: "openai",
        context_window: 0,
        max_output_tokens: 0,
        capabilities: ModelCapabilities {
            streaming: false,
            tool_use: false,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "medium/1024-x-1024/gpt-image-1.5",
        provider_id: "openai",
        context_window: 0,
        max_output_tokens: 0,
        capabilities: ModelCapabilities {
            streaming: false,
            tool_use: false,
            vision: true,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "medium/1024-x-1024/gpt-image-1.5-2025-12-16",
        provider_id: "openai",
        context_window: 0,
        max_output_tokens: 0,
        capabilities: ModelCapabilities {
            streaming: false,
            tool_use: false,
            vision: true,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "medium/1024-x-1536/gpt-image-1",
        provider_id: "openai",
        context_window: 0,
        max_output_tokens: 0,
        capabilities: ModelCapabilities {
            streaming: false,
            tool_use: false,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "medium/1024-x-1536/gpt-image-1-mini",
        provider_id: "openai",
        context_window: 0,
        max_output_tokens: 0,
        capabilities: ModelCapabilities {
            streaming: false,
            tool_use: false,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "medium/1024-x-1536/gpt-image-1.5",
        provider_id: "openai",
        context_window: 0,
        max_output_tokens: 0,
        capabilities: ModelCapabilities {
            streaming: false,
            tool_use: false,
            vision: true,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "medium/1024-x-1536/gpt-image-1.5-2025-12-16",
        provider_id: "openai",
        context_window: 0,
        max_output_tokens: 0,
        capabilities: ModelCapabilities {
            streaming: false,
            tool_use: false,
            vision: true,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "medium/1536-x-1024/gpt-image-1",
        provider_id: "openai",
        context_window: 0,
        max_output_tokens: 0,
        capabilities: ModelCapabilities {
            streaming: false,
            tool_use: false,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "medium/1536-x-1024/gpt-image-1-mini",
        provider_id: "openai",
        context_window: 0,
        max_output_tokens: 0,
        capabilities: ModelCapabilities {
            streaming: false,
            tool_use: false,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "medium/1536-x-1024/gpt-image-1.5",
        provider_id: "openai",
        context_window: 0,
        max_output_tokens: 0,
        capabilities: ModelCapabilities {
            streaming: false,
            tool_use: false,
            vision: true,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "medium/1536-x-1024/gpt-image-1.5-2025-12-16",
        provider_id: "openai",
        context_window: 0,
        max_output_tokens: 0,
        capabilities: ModelCapabilities {
            streaming: false,
            tool_use: false,
            vision: true,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "o1",
        provider_id: "openai",
        context_window: 200000,
        max_output_tokens: 100000,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: true,
            extended_thinking: true,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "o1-2024-12-17",
        provider_id: "openai",
        context_window: 200000,
        max_output_tokens: 100000,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: true,
            extended_thinking: true,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "o1-pro",
        provider_id: "openai",
        context_window: 200000,
        max_output_tokens: 100000,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: true,
            extended_thinking: true,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "o1-pro-2025-03-19",
        provider_id: "openai",
        context_window: 200000,
        max_output_tokens: 100000,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: true,
            extended_thinking: true,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "o3",
        provider_id: "openai",
        context_window: 200000,
        max_output_tokens: 100000,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: true,
            extended_thinking: true,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "o3-2025-04-16",
        provider_id: "openai",
        context_window: 200000,
        max_output_tokens: 100000,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: true,
            extended_thinking: true,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "o3-deep-research",
        provider_id: "openai",
        context_window: 200000,
        max_output_tokens: 100000,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: true,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "o3-deep-research-2025-06-26",
        provider_id: "openai",
        context_window: 200000,
        max_output_tokens: 100000,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: true,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "o3-mini",
        provider_id: "openai",
        context_window: 200000,
        max_output_tokens: 100000,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: false,
            extended_thinking: true,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "o3-mini-2025-01-31",
        provider_id: "openai",
        context_window: 200000,
        max_output_tokens: 100000,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: false,
            extended_thinking: true,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "o3-pro",
        provider_id: "openai",
        context_window: 200000,
        max_output_tokens: 100000,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: true,
            extended_thinking: true,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "o3-pro-2025-06-10",
        provider_id: "openai",
        context_window: 200000,
        max_output_tokens: 100000,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: true,
            extended_thinking: true,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "o4-mini",
        provider_id: "openai",
        context_window: 200000,
        max_output_tokens: 100000,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: true,
            extended_thinking: true,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "o4-mini-2025-04-16",
        provider_id: "openai",
        context_window: 200000,
        max_output_tokens: 100000,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: true,
            extended_thinking: true,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "o4-mini-deep-research",
        provider_id: "openai",
        context_window: 200000,
        max_output_tokens: 100000,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: true,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "o4-mini-deep-research-2025-06-26",
        provider_id: "openai",
        context_window: 200000,
        max_output_tokens: 100000,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: true,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "omni-moderation-2024-09-26",
        provider_id: "openai",
        context_window: 32768,
        max_output_tokens: 0,
        capabilities: ModelCapabilities {
            streaming: false,
            tool_use: false,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "omni-moderation-latest",
        provider_id: "openai",
        context_window: 32768,
        max_output_tokens: 0,
        capabilities: ModelCapabilities {
            streaming: false,
            tool_use: false,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "sora-2",
        provider_id: "openai",
        context_window: 0,
        max_output_tokens: 0,
        capabilities: ModelCapabilities {
            streaming: false,
            tool_use: false,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "sora-2-pro",
        provider_id: "openai",
        context_window: 0,
        max_output_tokens: 0,
        capabilities: ModelCapabilities {
            streaming: false,
            tool_use: false,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "sora-2-pro-high-res",
        provider_id: "openai",
        context_window: 0,
        max_output_tokens: 0,
        capabilities: ModelCapabilities {
            streaming: false,
            tool_use: false,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "standard/1024-x-1024/dall-e-3",
        provider_id: "openai",
        context_window: 0,
        max_output_tokens: 0,
        capabilities: ModelCapabilities {
            streaming: false,
            tool_use: false,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "standard/1024-x-1024/gpt-image-1.5",
        provider_id: "openai",
        context_window: 0,
        max_output_tokens: 0,
        capabilities: ModelCapabilities {
            streaming: false,
            tool_use: false,
            vision: true,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "standard/1024-x-1024/gpt-image-1.5-2025-12-16",
        provider_id: "openai",
        context_window: 0,
        max_output_tokens: 0,
        capabilities: ModelCapabilities {
            streaming: false,
            tool_use: false,
            vision: true,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "standard/1024-x-1536/gpt-image-1.5",
        provider_id: "openai",
        context_window: 0,
        max_output_tokens: 0,
        capabilities: ModelCapabilities {
            streaming: false,
            tool_use: false,
            vision: true,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "standard/1024-x-1536/gpt-image-1.5-2025-12-16",
        provider_id: "openai",
        context_window: 0,
        max_output_tokens: 0,
        capabilities: ModelCapabilities {
            streaming: false,
            tool_use: false,
            vision: true,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "standard/1024-x-1792/dall-e-3",
        provider_id: "openai",
        context_window: 0,
        max_output_tokens: 0,
        capabilities: ModelCapabilities {
            streaming: false,
            tool_use: false,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "standard/1536-x-1024/gpt-image-1.5",
        provider_id: "openai",
        context_window: 0,
        max_output_tokens: 0,
        capabilities: ModelCapabilities {
            streaming: false,
            tool_use: false,
            vision: true,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "standard/1536-x-1024/gpt-image-1.5-2025-12-16",
        provider_id: "openai",
        context_window: 0,
        max_output_tokens: 0,
        capabilities: ModelCapabilities {
            streaming: false,
            tool_use: false,
            vision: true,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "standard/1792-x-1024/dall-e-3",
        provider_id: "openai",
        context_window: 0,
        max_output_tokens: 0,
        capabilities: ModelCapabilities {
            streaming: false,
            tool_use: false,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "text-embedding-3-large",
        provider_id: "openai",
        context_window: 8191,
        max_output_tokens: 0,
        capabilities: ModelCapabilities {
            streaming: false,
            tool_use: false,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "text-embedding-3-small",
        provider_id: "openai",
        context_window: 8191,
        max_output_tokens: 0,
        capabilities: ModelCapabilities {
            streaming: false,
            tool_use: false,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "text-embedding-ada-002",
        provider_id: "openai",
        context_window: 8191,
        max_output_tokens: 0,
        capabilities: ModelCapabilities {
            streaming: false,
            tool_use: false,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "text-embedding-ada-002-v2",
        provider_id: "openai",
        context_window: 8191,
        max_output_tokens: 0,
        capabilities: ModelCapabilities {
            streaming: false,
            tool_use: false,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "text-moderation-007",
        provider_id: "openai",
        context_window: 32768,
        max_output_tokens: 0,
        capabilities: ModelCapabilities {
            streaming: false,
            tool_use: false,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "text-moderation-latest",
        provider_id: "openai",
        context_window: 32768,
        max_output_tokens: 0,
        capabilities: ModelCapabilities {
            streaming: false,
            tool_use: false,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "text-moderation-stable",
        provider_id: "openai",
        context_window: 32768,
        max_output_tokens: 0,
        capabilities: ModelCapabilities {
            streaming: false,
            tool_use: false,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "tts-1",
        provider_id: "openai",
        context_window: 0,
        max_output_tokens: 0,
        capabilities: ModelCapabilities {
            streaming: false,
            tool_use: false,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "tts-1-1106",
        provider_id: "openai",
        context_window: 0,
        max_output_tokens: 0,
        capabilities: ModelCapabilities {
            streaming: false,
            tool_use: false,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "tts-1-hd",
        provider_id: "openai",
        context_window: 0,
        max_output_tokens: 0,
        capabilities: ModelCapabilities {
            streaming: false,
            tool_use: false,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "tts-1-hd-1106",
        provider_id: "openai",
        context_window: 0,
        max_output_tokens: 0,
        capabilities: ModelCapabilities {
            streaming: false,
            tool_use: false,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "whisper-1",
        provider_id: "openai",
        context_window: 0,
        max_output_tokens: 0,
        capabilities: ModelCapabilities {
            streaming: false,
            tool_use: false,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
];

pub const PROVIDER_OPENROUTER: ProviderDef = ProviderDef {
    id: "openrouter",
    display_name: "OpenRouter",
    default_base_url: "https://openrouter.ai/api/v1",
    protocol: ProviderProtocol::OpenAICompat,
    auth: AuthKind::Bearer,
    status: ProviderStatus::Stub,
    env_vars: &["OPENROUTER_API_KEY"],
    litellm_prefix: "openrouter/",
    capabilities: ProviderCapabilities {
        chat_completions: true,
        streaming: true,
        tool_use: true,
        embeddings: false,
        vision: true,
        batch: false,
    },
};

pub const MODELS_OPENROUTER: &[ModelDef] = &[
    ModelDef {
        id: "anthropic/claude-3-haiku",
        provider_id: "openrouter",
        context_window: 200000,
        max_output_tokens: 4096,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: true,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "anthropic/claude-3.5-sonnet",
        provider_id: "openrouter",
        context_window: 200000,
        max_output_tokens: 8192,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: true,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "anthropic/claude-3.7-sonnet",
        provider_id: "openrouter",
        context_window: 200000,
        max_output_tokens: 128000,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: true,
            extended_thinking: true,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "anthropic/claude-haiku-4.5",
        provider_id: "openrouter",
        context_window: 200000,
        max_output_tokens: 200000,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: true,
            extended_thinking: true,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "anthropic/claude-opus-4",
        provider_id: "openrouter",
        context_window: 200000,
        max_output_tokens: 32000,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: true,
            extended_thinking: true,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "anthropic/claude-opus-4.1",
        provider_id: "openrouter",
        context_window: 200000,
        max_output_tokens: 32000,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: true,
            extended_thinking: true,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "anthropic/claude-opus-4.5",
        provider_id: "openrouter",
        context_window: 200000,
        max_output_tokens: 32000,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: true,
            extended_thinking: true,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "anthropic/claude-opus-4.6",
        provider_id: "openrouter",
        context_window: 1000000,
        max_output_tokens: 128000,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: true,
            extended_thinking: true,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "anthropic/claude-opus-4.7",
        provider_id: "openrouter",
        context_window: 1000000,
        max_output_tokens: 128000,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: true,
            extended_thinking: true,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "anthropic/claude-sonnet-4",
        provider_id: "openrouter",
        context_window: 1000000,
        max_output_tokens: 64000,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: true,
            extended_thinking: true,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "anthropic/claude-sonnet-4.5",
        provider_id: "openrouter",
        context_window: 1000000,
        max_output_tokens: 1000000,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: true,
            extended_thinking: true,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "anthropic/claude-sonnet-4.6",
        provider_id: "openrouter",
        context_window: 1000000,
        max_output_tokens: 128000,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: true,
            extended_thinking: true,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "bytedance/ui-tars-1.5-7b",
        provider_id: "openrouter",
        context_window: 131072,
        max_output_tokens: 2048,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "deepseek/deepseek-chat",
        provider_id: "openrouter",
        context_window: 65536,
        max_output_tokens: 8192,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "deepseek/deepseek-chat-v3-0324",
        provider_id: "openrouter",
        context_window: 65536,
        max_output_tokens: 8192,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "deepseek/deepseek-chat-v3.1",
        provider_id: "openrouter",
        context_window: 163840,
        max_output_tokens: 163840,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: false,
            extended_thinking: true,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "deepseek/deepseek-r1",
        provider_id: "openrouter",
        context_window: 65336,
        max_output_tokens: 8192,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: false,
            extended_thinking: true,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "deepseek/deepseek-r1-0528",
        provider_id: "openrouter",
        context_window: 65336,
        max_output_tokens: 8192,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: false,
            extended_thinking: true,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "deepseek/deepseek-v3.2",
        provider_id: "openrouter",
        context_window: 163840,
        max_output_tokens: 163840,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: false,
            extended_thinking: true,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "deepseek/deepseek-v3.2-exp",
        provider_id: "openrouter",
        context_window: 163840,
        max_output_tokens: 163840,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "google/gemini-2.0-flash-001",
        provider_id: "openrouter",
        context_window: 1048576,
        max_output_tokens: 8192,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: true,
            extended_thinking: false,
        },
        status: ModelStatus::Deprecated,
    },
    ModelDef {
        id: "google/gemini-2.5-flash",
        provider_id: "openrouter",
        context_window: 1048576,
        max_output_tokens: 8192,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: true,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "google/gemini-2.5-pro",
        provider_id: "openrouter",
        context_window: 1048576,
        max_output_tokens: 8192,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: true,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "google/gemini-3-flash-preview",
        provider_id: "openrouter",
        context_window: 1048576,
        max_output_tokens: 65535,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: true,
            extended_thinking: true,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "google/gemini-3-pro-preview",
        provider_id: "openrouter",
        context_window: 1048576,
        max_output_tokens: 65535,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: true,
            extended_thinking: true,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "google/gemini-3.1-flash-lite",
        provider_id: "openrouter",
        context_window: 1048576,
        max_output_tokens: 65536,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: true,
            extended_thinking: true,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "google/gemini-3.1-flash-lite-preview",
        provider_id: "openrouter",
        context_window: 1048576,
        max_output_tokens: 65536,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: true,
            extended_thinking: true,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "google/gemini-3.1-pro-preview",
        provider_id: "openrouter",
        context_window: 1048576,
        max_output_tokens: 65536,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: true,
            extended_thinking: true,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "gryphe/mythomax-l2-13b",
        provider_id: "openrouter",
        context_window: 0,
        max_output_tokens: 0,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "mancer/weaver",
        provider_id: "openrouter",
        context_window: 8000,
        max_output_tokens: 2000,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "meta-llama/llama-3-70b-instruct",
        provider_id: "openrouter",
        context_window: 8192,
        max_output_tokens: 8000,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "minimax/minimax-m2",
        provider_id: "openrouter",
        context_window: 204800,
        max_output_tokens: 204800,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: false,
            extended_thinking: true,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "minimax/minimax-m2.1",
        provider_id: "openrouter",
        context_window: 204000,
        max_output_tokens: 64000,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: true,
            extended_thinking: true,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "minimax/minimax-m2.5",
        provider_id: "openrouter",
        context_window: 196608,
        max_output_tokens: 65536,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: false,
            extended_thinking: true,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "mistralai/devstral-2512",
        provider_id: "openrouter",
        context_window: 262144,
        max_output_tokens: 65536,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "mistralai/ministral-14b-2512",
        provider_id: "openrouter",
        context_window: 262144,
        max_output_tokens: 262144,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: true,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "mistralai/ministral-3b-2512",
        provider_id: "openrouter",
        context_window: 131072,
        max_output_tokens: 131072,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: true,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "mistralai/ministral-8b-2512",
        provider_id: "openrouter",
        context_window: 262144,
        max_output_tokens: 262144,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: true,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "mistralai/mistral-7b-instruct",
        provider_id: "openrouter",
        context_window: 32768,
        max_output_tokens: 8191,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "mistralai/mistral-large",
        provider_id: "openrouter",
        context_window: 128000,
        max_output_tokens: 8191,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "mistralai/mistral-large-2512",
        provider_id: "openrouter",
        context_window: 262144,
        max_output_tokens: 262144,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: true,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "mistralai/mistral-small-3.1-24b-instruct",
        provider_id: "openrouter",
        context_window: 131072,
        max_output_tokens: 131072,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "mistralai/mistral-small-3.2-24b-instruct",
        provider_id: "openrouter",
        context_window: 128000,
        max_output_tokens: 128000,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "mistralai/mixtral-8x22b-instruct",
        provider_id: "openrouter",
        context_window: 65536,
        max_output_tokens: 65536,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "moonshotai/kimi-k2.5",
        provider_id: "openrouter",
        context_window: 262144,
        max_output_tokens: 262144,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: true,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "openai/gpt-3.5-turbo",
        provider_id: "openrouter",
        context_window: 16385,
        max_output_tokens: 4096,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "openai/gpt-3.5-turbo-16k",
        provider_id: "openrouter",
        context_window: 16385,
        max_output_tokens: 4096,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "openai/gpt-4",
        provider_id: "openrouter",
        context_window: 8191,
        max_output_tokens: 4096,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "openai/gpt-4.1",
        provider_id: "openrouter",
        context_window: 1047576,
        max_output_tokens: 32768,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: true,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "openai/gpt-4.1-mini",
        provider_id: "openrouter",
        context_window: 1047576,
        max_output_tokens: 32768,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: true,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "openai/gpt-4.1-nano",
        provider_id: "openrouter",
        context_window: 1047576,
        max_output_tokens: 32768,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: true,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "openai/gpt-4o",
        provider_id: "openrouter",
        context_window: 128000,
        max_output_tokens: 4096,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: true,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "openai/gpt-4o-2024-05-13",
        provider_id: "openrouter",
        context_window: 128000,
        max_output_tokens: 4096,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: true,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "openai/gpt-5",
        provider_id: "openrouter",
        context_window: 272000,
        max_output_tokens: 128000,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: false,
            extended_thinking: true,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "openai/gpt-5-chat",
        provider_id: "openrouter",
        context_window: 128000,
        max_output_tokens: 16384,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: false,
            extended_thinking: true,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "openai/gpt-5-codex",
        provider_id: "openrouter",
        context_window: 272000,
        max_output_tokens: 128000,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: false,
            extended_thinking: true,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "openai/gpt-5-mini",
        provider_id: "openrouter",
        context_window: 272000,
        max_output_tokens: 128000,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: false,
            extended_thinking: true,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "openai/gpt-5-nano",
        provider_id: "openrouter",
        context_window: 272000,
        max_output_tokens: 128000,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: false,
            extended_thinking: true,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "openai/gpt-5.1-codex-max",
        provider_id: "openrouter",
        context_window: 400000,
        max_output_tokens: 128000,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: true,
            extended_thinking: true,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "openai/gpt-5.2",
        provider_id: "openrouter",
        context_window: 272000,
        max_output_tokens: 128000,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: true,
            extended_thinking: true,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "openai/gpt-5.2-chat",
        provider_id: "openrouter",
        context_window: 128000,
        max_output_tokens: 16384,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: true,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "openai/gpt-5.2-codex",
        provider_id: "openrouter",
        context_window: 272000,
        max_output_tokens: 128000,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: false,
            extended_thinking: true,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "openai/gpt-5.2-pro",
        provider_id: "openrouter",
        context_window: 272000,
        max_output_tokens: 128000,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: true,
            extended_thinking: true,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "openai/gpt-oss-120b",
        provider_id: "openrouter",
        context_window: 131072,
        max_output_tokens: 32768,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: false,
            extended_thinking: true,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "openai/gpt-oss-20b",
        provider_id: "openrouter",
        context_window: 131072,
        max_output_tokens: 32768,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: false,
            extended_thinking: true,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "openai/o1",
        provider_id: "openrouter",
        context_window: 200000,
        max_output_tokens: 100000,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: true,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "openai/o3-mini",
        provider_id: "openrouter",
        context_window: 128000,
        max_output_tokens: 65536,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: false,
            extended_thinking: true,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "openai/o3-mini-high",
        provider_id: "openrouter",
        context_window: 128000,
        max_output_tokens: 65536,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: false,
            extended_thinking: true,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "openrouter/auto",
        provider_id: "openrouter",
        context_window: 2000000,
        max_output_tokens: 0,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: true,
            extended_thinking: true,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "openrouter/bodybuilder",
        provider_id: "openrouter",
        context_window: 128000,
        max_output_tokens: 0,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: false,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "openrouter/free",
        provider_id: "openrouter",
        context_window: 200000,
        max_output_tokens: 0,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: true,
            extended_thinking: true,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "qwen/qwen-2.5-coder-32b-instruct",
        provider_id: "openrouter",
        context_window: 33792,
        max_output_tokens: 33792,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "qwen/qwen-vl-plus",
        provider_id: "openrouter",
        context_window: 8192,
        max_output_tokens: 2048,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: true,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "qwen/qwen3-235b-a22b-2507",
        provider_id: "openrouter",
        context_window: 262144,
        max_output_tokens: 262144,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "qwen/qwen3-235b-a22b-thinking-2507",
        provider_id: "openrouter",
        context_window: 262144,
        max_output_tokens: 262144,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: false,
            extended_thinking: true,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "qwen/qwen3-coder",
        provider_id: "openrouter",
        context_window: 262100,
        max_output_tokens: 262100,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "qwen/qwen3-coder-plus",
        provider_id: "openrouter",
        context_window: 997952,
        max_output_tokens: 65536,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: false,
            extended_thinking: true,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "qwen/qwen3.5-122b-a10b",
        provider_id: "openrouter",
        context_window: 262144,
        max_output_tokens: 65536,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: true,
            extended_thinking: true,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "qwen/qwen3.5-27b",
        provider_id: "openrouter",
        context_window: 262144,
        max_output_tokens: 65536,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: true,
            extended_thinking: true,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "qwen/qwen3.5-35b-a3b",
        provider_id: "openrouter",
        context_window: 262144,
        max_output_tokens: 65536,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: true,
            extended_thinking: true,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "qwen/qwen3.5-397b-a17b",
        provider_id: "openrouter",
        context_window: 262144,
        max_output_tokens: 65536,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: true,
            extended_thinking: true,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "qwen/qwen3.5-flash-02-23",
        provider_id: "openrouter",
        context_window: 1000000,
        max_output_tokens: 65536,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: true,
            extended_thinking: true,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "qwen/qwen3.5-plus-02-15",
        provider_id: "openrouter",
        context_window: 1000000,
        max_output_tokens: 65536,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: true,
            extended_thinking: true,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "qwen/qwen3.6-plus",
        provider_id: "openrouter",
        context_window: 1000000,
        max_output_tokens: 65536,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: true,
            extended_thinking: true,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "switchpoint/router",
        provider_id: "openrouter",
        context_window: 131072,
        max_output_tokens: 131072,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "undi95/remm-slerp-l2-13b",
        provider_id: "openrouter",
        context_window: 6144,
        max_output_tokens: 4096,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "x-ai/grok-4",
        provider_id: "openrouter",
        context_window: 256000,
        max_output_tokens: 256000,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: false,
            extended_thinking: true,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "xiaomi/mimo-v2-flash",
        provider_id: "openrouter",
        context_window: 262144,
        max_output_tokens: 16384,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: false,
            extended_thinking: true,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "xiaomi/mimo-v2.5",
        provider_id: "openrouter",
        context_window: 1048576,
        max_output_tokens: 131072,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: true,
            extended_thinking: true,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "xiaomi/mimo-v2.5-pro",
        provider_id: "openrouter",
        context_window: 1048576,
        max_output_tokens: 16384,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: false,
            extended_thinking: true,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "z-ai/glm-4.6",
        provider_id: "openrouter",
        context_window: 202800,
        max_output_tokens: 131000,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: false,
            extended_thinking: true,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "z-ai/glm-4.6:exacto",
        provider_id: "openrouter",
        context_window: 202800,
        max_output_tokens: 131000,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: false,
            extended_thinking: true,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "z-ai/glm-4.7",
        provider_id: "openrouter",
        context_window: 202752,
        max_output_tokens: 64000,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: true,
            extended_thinking: true,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "z-ai/glm-4.7-flash",
        provider_id: "openrouter",
        context_window: 200000,
        max_output_tokens: 32000,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: true,
            extended_thinking: true,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "z-ai/glm-5",
        provider_id: "openrouter",
        context_window: 202752,
        max_output_tokens: 128000,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: false,
            extended_thinking: true,
        },
        status: ModelStatus::Available,
    },
];

pub const PROVIDER_OVHCLOUD: ProviderDef = ProviderDef {
    id: "ovhcloud",
    display_name: "OVHCloud AI Endpoints",
    default_base_url: "https://oai.endpoints.kepler.ai.cloud.ovh.net/v1",
    protocol: ProviderProtocol::OpenAICompat,
    auth: AuthKind::Bearer,
    status: ProviderStatus::Stub,
    env_vars: &["OVH_AI_ENDPOINTS_ACCESS_TOKEN", "OVHCLOUD_API_KEY"],
    litellm_prefix: "ovhcloud/",
    capabilities: ProviderCapabilities {
        chat_completions: true,
        streaming: true,
        tool_use: true,
        embeddings: false,
        vision: true,
        batch: false,
    },
};

pub const MODELS_OVHCLOUD: &[ModelDef] = &[
    ModelDef {
        id: "DeepSeek-R1-Distill-Llama-70B",
        provider_id: "ovhcloud",
        context_window: 131000,
        max_output_tokens: 131000,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: false,
            extended_thinking: true,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "Llama-3.1-8B-Instruct",
        provider_id: "ovhcloud",
        context_window: 131000,
        max_output_tokens: 131000,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "Meta-Llama-3_1-70B-Instruct",
        provider_id: "ovhcloud",
        context_window: 131000,
        max_output_tokens: 131000,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: false,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "Meta-Llama-3_3-70B-Instruct",
        provider_id: "ovhcloud",
        context_window: 131000,
        max_output_tokens: 131000,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "Mistral-7B-Instruct-v0.3",
        provider_id: "ovhcloud",
        context_window: 127000,
        max_output_tokens: 127000,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "Mistral-Nemo-Instruct-2407",
        provider_id: "ovhcloud",
        context_window: 118000,
        max_output_tokens: 118000,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "Mistral-Small-3.2-24B-Instruct-2506",
        provider_id: "ovhcloud",
        context_window: 128000,
        max_output_tokens: 128000,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: true,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "Mixtral-8x7B-Instruct-v0.1",
        provider_id: "ovhcloud",
        context_window: 32000,
        max_output_tokens: 32000,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: false,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "Qwen2.5-Coder-32B-Instruct",
        provider_id: "ovhcloud",
        context_window: 32000,
        max_output_tokens: 32000,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: false,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "Qwen2.5-VL-72B-Instruct",
        provider_id: "ovhcloud",
        context_window: 32000,
        max_output_tokens: 32000,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: false,
            vision: true,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "Qwen3-32B",
        provider_id: "ovhcloud",
        context_window: 32000,
        max_output_tokens: 32000,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: false,
            extended_thinking: true,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "gpt-oss-120b",
        provider_id: "ovhcloud",
        context_window: 131000,
        max_output_tokens: 131000,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: false,
            vision: false,
            extended_thinking: true,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "gpt-oss-20b",
        provider_id: "ovhcloud",
        context_window: 131000,
        max_output_tokens: 131000,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: false,
            vision: false,
            extended_thinking: true,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "llava-v1.6-mistral-7b-hf",
        provider_id: "ovhcloud",
        context_window: 32000,
        max_output_tokens: 32000,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: false,
            vision: true,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "mamba-codestral-7B-v0.1",
        provider_id: "ovhcloud",
        context_window: 256000,
        max_output_tokens: 256000,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: false,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
];

pub const PROVIDER_PALM: ProviderDef = ProviderDef {
    id: "palm",
    display_name: "Google AI Studio (Gemini)",
    default_base_url: "https://generativelanguage.googleapis.com/v1beta",
    protocol: ProviderProtocol::GeminiOpenAI,
    auth: AuthKind::GoogleApiKey,
    status: ProviderStatus::Implemented,
    env_vars: &["GEMINI_API_KEY"],
    litellm_prefix: "palm/",
    capabilities: ProviderCapabilities {
        chat_completions: true,
        streaming: true,
        tool_use: false,
        embeddings: false,
        vision: false,
        batch: false,
    },
};

pub const MODELS_PALM: &[ModelDef] = &[
    ModelDef {
        id: "chat-bison",
        provider_id: "palm",
        context_window: 8192,
        max_output_tokens: 4096,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: false,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "chat-bison-001",
        provider_id: "palm",
        context_window: 8192,
        max_output_tokens: 4096,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: false,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "text-bison",
        provider_id: "palm",
        context_window: 8192,
        max_output_tokens: 1024,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: false,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "text-bison-001",
        provider_id: "palm",
        context_window: 8192,
        max_output_tokens: 1024,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: false,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "text-bison-safety-off",
        provider_id: "palm",
        context_window: 8192,
        max_output_tokens: 1024,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: false,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "text-bison-safety-recitation-off",
        provider_id: "palm",
        context_window: 8192,
        max_output_tokens: 1024,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: false,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
];

pub const PROVIDER_PARALLEL_AI: ProviderDef = ProviderDef {
    id: "parallel_ai",
    display_name: "Parallel AI",
    default_base_url: "",
    protocol: ProviderProtocol::OpenAICompat,
    auth: AuthKind::Bearer,
    status: ProviderStatus::Stub,
    env_vars: &["PARALLEL_AI_API_KEY"],
    litellm_prefix: "parallel_ai/",
    capabilities: ProviderCapabilities {
        chat_completions: false,
        streaming: false,
        tool_use: false,
        embeddings: false,
        vision: false,
        batch: false,
    },
};

pub const MODELS_PARALLEL_AI: &[ModelDef] = &[
    ModelDef {
        id: "search",
        provider_id: "parallel_ai",
        context_window: 0,
        max_output_tokens: 0,
        capabilities: ModelCapabilities {
            streaming: false,
            tool_use: false,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "search-pro",
        provider_id: "parallel_ai",
        context_window: 0,
        max_output_tokens: 0,
        capabilities: ModelCapabilities {
            streaming: false,
            tool_use: false,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
];

pub const PROVIDER_PERPLEXITY: ProviderDef = ProviderDef {
    id: "perplexity",
    display_name: "Perplexity AI",
    default_base_url: "https://api.perplexity.ai",
    protocol: ProviderProtocol::OpenAICompat,
    auth: AuthKind::Bearer,
    status: ProviderStatus::Stub,
    env_vars: &["PERPLEXITYAI_API_KEY", "PERPLEXITY_API_KEY"],
    litellm_prefix: "perplexity/",
    capabilities: ProviderCapabilities {
        chat_completions: true,
        streaming: true,
        tool_use: true,
        embeddings: true,
        vision: false,
        batch: false,
    },
};

pub const MODELS_PERPLEXITY: &[ModelDef] = &[
    ModelDef {
        id: "anthropic/claude-haiku-4-5",
        provider_id: "perplexity",
        context_window: 0,
        max_output_tokens: 0,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "anthropic/claude-opus-4-5",
        provider_id: "perplexity",
        context_window: 0,
        max_output_tokens: 0,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "anthropic/claude-opus-4-6",
        provider_id: "perplexity",
        context_window: 0,
        max_output_tokens: 0,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "anthropic/claude-opus-4-7",
        provider_id: "perplexity",
        context_window: 0,
        max_output_tokens: 0,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "anthropic/claude-sonnet-4-5",
        provider_id: "perplexity",
        context_window: 0,
        max_output_tokens: 0,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "codellama-34b-instruct",
        provider_id: "perplexity",
        context_window: 16384,
        max_output_tokens: 16384,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: false,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "codellama-70b-instruct",
        provider_id: "perplexity",
        context_window: 16384,
        max_output_tokens: 16384,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: false,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "google/gemini-2.5-flash",
        provider_id: "perplexity",
        context_window: 0,
        max_output_tokens: 0,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "google/gemini-2.5-pro",
        provider_id: "perplexity",
        context_window: 0,
        max_output_tokens: 0,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "google/gemini-3-flash-preview",
        provider_id: "perplexity",
        context_window: 0,
        max_output_tokens: 0,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "google/gemini-3-pro-preview",
        provider_id: "perplexity",
        context_window: 0,
        max_output_tokens: 0,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "llama-2-70b-chat",
        provider_id: "perplexity",
        context_window: 4096,
        max_output_tokens: 4096,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: false,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "llama-3.1-70b-instruct",
        provider_id: "perplexity",
        context_window: 131072,
        max_output_tokens: 131072,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: false,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "llama-3.1-8b-instruct",
        provider_id: "perplexity",
        context_window: 131072,
        max_output_tokens: 131072,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: false,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "mistral-7b-instruct",
        provider_id: "perplexity",
        context_window: 4096,
        max_output_tokens: 4096,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: false,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "mixtral-8x7b-instruct",
        provider_id: "perplexity",
        context_window: 4096,
        max_output_tokens: 4096,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: false,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "openai/gpt-5-mini",
        provider_id: "perplexity",
        context_window: 0,
        max_output_tokens: 0,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "openai/gpt-5.1",
        provider_id: "perplexity",
        context_window: 0,
        max_output_tokens: 0,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "openai/gpt-5.2",
        provider_id: "perplexity",
        context_window: 0,
        max_output_tokens: 0,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: false,
            extended_thinking: true,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "perplexity/sonar",
        provider_id: "perplexity",
        context_window: 0,
        max_output_tokens: 0,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "pplx-70b-chat",
        provider_id: "perplexity",
        context_window: 4096,
        max_output_tokens: 4096,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: false,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "pplx-70b-online",
        provider_id: "perplexity",
        context_window: 4096,
        max_output_tokens: 4096,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: false,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "pplx-7b-chat",
        provider_id: "perplexity",
        context_window: 8192,
        max_output_tokens: 8192,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: false,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "pplx-7b-online",
        provider_id: "perplexity",
        context_window: 4096,
        max_output_tokens: 4096,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: false,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "pplx-embed-v1-0.6b",
        provider_id: "perplexity",
        context_window: 32768,
        max_output_tokens: 0,
        capabilities: ModelCapabilities {
            streaming: false,
            tool_use: false,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "pplx-embed-v1-4b",
        provider_id: "perplexity",
        context_window: 32768,
        max_output_tokens: 0,
        capabilities: ModelCapabilities {
            streaming: false,
            tool_use: false,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "preset/advanced-deep-research",
        provider_id: "perplexity",
        context_window: 0,
        max_output_tokens: 0,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "preset/deep-research",
        provider_id: "perplexity",
        context_window: 0,
        max_output_tokens: 0,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "preset/fast-search",
        provider_id: "perplexity",
        context_window: 0,
        max_output_tokens: 0,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "preset/pro-search",
        provider_id: "perplexity",
        context_window: 0,
        max_output_tokens: 0,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "search",
        provider_id: "perplexity",
        context_window: 0,
        max_output_tokens: 0,
        capabilities: ModelCapabilities {
            streaming: false,
            tool_use: false,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "sonar",
        provider_id: "perplexity",
        context_window: 128000,
        max_output_tokens: 0,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: false,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "sonar-deep-research",
        provider_id: "perplexity",
        context_window: 128000,
        max_output_tokens: 0,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: false,
            vision: false,
            extended_thinking: true,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "sonar-medium-chat",
        provider_id: "perplexity",
        context_window: 16384,
        max_output_tokens: 16384,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: false,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "sonar-medium-online",
        provider_id: "perplexity",
        context_window: 12000,
        max_output_tokens: 12000,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: false,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "sonar-pro",
        provider_id: "perplexity",
        context_window: 200000,
        max_output_tokens: 8000,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: false,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "sonar-reasoning",
        provider_id: "perplexity",
        context_window: 128000,
        max_output_tokens: 0,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: false,
            vision: false,
            extended_thinking: true,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "sonar-reasoning-pro",
        provider_id: "perplexity",
        context_window: 128000,
        max_output_tokens: 0,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: false,
            vision: false,
            extended_thinking: true,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "sonar-small-chat",
        provider_id: "perplexity",
        context_window: 16384,
        max_output_tokens: 16384,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: false,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "sonar-small-online",
        provider_id: "perplexity",
        context_window: 12000,
        max_output_tokens: 12000,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: false,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "xai/grok-4-1-fast-non-reasoning",
        provider_id: "perplexity",
        context_window: 0,
        max_output_tokens: 0,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
];

pub const PROVIDER_PUBLICAI: ProviderDef = ProviderDef {
    id: "publicai",
    display_name: "PublicAI",
    default_base_url: "https://api.publicai.co/v1",
    protocol: ProviderProtocol::OpenAICompat,
    auth: AuthKind::Bearer,
    status: ProviderStatus::Stub,
    env_vars: &["PUBLIC_AI_API_KEY"],
    litellm_prefix: "publicai/",
    capabilities: ProviderCapabilities {
        chat_completions: true,
        streaming: true,
        tool_use: true,
        embeddings: false,
        vision: false,
        batch: false,
    },
};

pub const MODELS_PUBLICAI: &[ModelDef] = &[
    ModelDef {
        id: "BSC-LT/ALIA-40b-instruct_Q8_0",
        provider_id: "publicai",
        context_window: 8192,
        max_output_tokens: 4096,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "BSC-LT/salamandra-7b-instruct-tools-16k",
        provider_id: "publicai",
        context_window: 16384,
        max_output_tokens: 4096,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "aisingapore/Gemma-SEA-LION-v4-27B-IT",
        provider_id: "publicai",
        context_window: 8192,
        max_output_tokens: 4096,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "aisingapore/Qwen-SEA-LION-v4-32B-IT",
        provider_id: "publicai",
        context_window: 32768,
        max_output_tokens: 4096,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "allenai/Olmo-3-32B-Think",
        provider_id: "publicai",
        context_window: 32768,
        max_output_tokens: 4096,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: false,
            extended_thinking: true,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "allenai/Olmo-3-7B-Instruct",
        provider_id: "publicai",
        context_window: 32768,
        max_output_tokens: 4096,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "allenai/Olmo-3-7B-Think",
        provider_id: "publicai",
        context_window: 32768,
        max_output_tokens: 4096,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: false,
            extended_thinking: true,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "swiss-ai/apertus-70b-instruct",
        provider_id: "publicai",
        context_window: 8192,
        max_output_tokens: 4096,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: false,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "swiss-ai/apertus-8b-instruct",
        provider_id: "publicai",
        context_window: 8192,
        max_output_tokens: 4096,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: false,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
];

pub const PROVIDER_RECRAFT: ProviderDef = ProviderDef {
    id: "recraft",
    display_name: "Recraft",
    default_base_url: "",
    protocol: ProviderProtocol::OpenAICompat,
    auth: AuthKind::Bearer,
    status: ProviderStatus::Stub,
    env_vars: &["RECRAFT_API_KEY"],
    litellm_prefix: "recraft/",
    capabilities: ProviderCapabilities {
        chat_completions: false,
        streaming: false,
        tool_use: false,
        embeddings: false,
        vision: false,
        batch: false,
    },
};

pub const MODELS_RECRAFT: &[ModelDef] = &[
    ModelDef {
        id: "recraftv2",
        provider_id: "recraft",
        context_window: 0,
        max_output_tokens: 0,
        capabilities: ModelCapabilities {
            streaming: false,
            tool_use: false,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "recraftv3",
        provider_id: "recraft",
        context_window: 0,
        max_output_tokens: 0,
        capabilities: ModelCapabilities {
            streaming: false,
            tool_use: false,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
];

pub const PROVIDER_REDUCTO: ProviderDef = ProviderDef {
    id: "reducto",
    display_name: "Reducto",
    default_base_url: "",
    protocol: ProviderProtocol::OpenAICompat,
    auth: AuthKind::Bearer,
    status: ProviderStatus::Stub,
    env_vars: &["REDUCTO_API_KEY"],
    litellm_prefix: "reducto/",
    capabilities: ProviderCapabilities {
        chat_completions: false,
        streaming: false,
        tool_use: false,
        embeddings: false,
        vision: false,
        batch: false,
    },
};

pub const MODELS_REDUCTO: &[ModelDef] = &[
    ModelDef {
        id: "parse-legacy",
        provider_id: "reducto",
        context_window: 0,
        max_output_tokens: 0,
        capabilities: ModelCapabilities {
            streaming: false,
            tool_use: false,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "parse-v3",
        provider_id: "reducto",
        context_window: 0,
        max_output_tokens: 0,
        capabilities: ModelCapabilities {
            streaming: false,
            tool_use: false,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
];

pub const PROVIDER_REPLICATE: ProviderDef = ProviderDef {
    id: "replicate",
    display_name: "Replicate",
    default_base_url: "https://api.replicate.com/v1",
    protocol: ProviderProtocol::OpenAICompat,
    auth: AuthKind::Bearer,
    status: ProviderStatus::Stub,
    env_vars: &["REPLICATE_API_KEY", "REPLICATE_API_TOKEN"],
    litellm_prefix: "replicate/",
    capabilities: ProviderCapabilities {
        chat_completions: true,
        streaming: true,
        tool_use: true,
        embeddings: false,
        vision: true,
        batch: false,
    },
};

pub const MODELS_REPLICATE: &[ModelDef] = &[
    ModelDef {
        id: "anthropic/claude-3.5-haiku",
        provider_id: "replicate",
        context_window: 0,
        max_output_tokens: 0,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: true,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "anthropic/claude-3.5-sonnet",
        provider_id: "replicate",
        context_window: 0,
        max_output_tokens: 0,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: true,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "anthropic/claude-3.7-sonnet",
        provider_id: "replicate",
        context_window: 0,
        max_output_tokens: 0,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: true,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "anthropic/claude-4-sonnet",
        provider_id: "replicate",
        context_window: 0,
        max_output_tokens: 0,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: true,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "anthropic/claude-4.5-haiku",
        provider_id: "replicate",
        context_window: 0,
        max_output_tokens: 0,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: true,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "anthropic/claude-4.5-sonnet",
        provider_id: "replicate",
        context_window: 0,
        max_output_tokens: 0,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: true,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "deepseek-ai/deepseek-r1",
        provider_id: "replicate",
        context_window: 65536,
        max_output_tokens: 8192,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: false,
            vision: false,
            extended_thinking: true,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "deepseek-ai/deepseek-v3",
        provider_id: "replicate",
        context_window: 65536,
        max_output_tokens: 8192,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "deepseek-ai/deepseek-v3.1",
        provider_id: "replicate",
        context_window: 163840,
        max_output_tokens: 163840,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: false,
            extended_thinking: true,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "google/gemini-2.5-flash",
        provider_id: "replicate",
        context_window: 0,
        max_output_tokens: 0,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: true,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "google/gemini-3-pro",
        provider_id: "replicate",
        context_window: 0,
        max_output_tokens: 0,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: true,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "ibm-granite/granite-3.3-8b-instruct",
        provider_id: "replicate",
        context_window: 0,
        max_output_tokens: 0,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "meta/llama-2-13b",
        provider_id: "replicate",
        context_window: 4096,
        max_output_tokens: 4096,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "meta/llama-2-13b-chat",
        provider_id: "replicate",
        context_window: 4096,
        max_output_tokens: 4096,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "meta/llama-2-70b",
        provider_id: "replicate",
        context_window: 4096,
        max_output_tokens: 4096,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "meta/llama-2-70b-chat",
        provider_id: "replicate",
        context_window: 4096,
        max_output_tokens: 4096,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "meta/llama-2-7b",
        provider_id: "replicate",
        context_window: 4096,
        max_output_tokens: 4096,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "meta/llama-2-7b-chat",
        provider_id: "replicate",
        context_window: 4096,
        max_output_tokens: 4096,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "meta/llama-3-70b",
        provider_id: "replicate",
        context_window: 8192,
        max_output_tokens: 8192,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "meta/llama-3-70b-instruct",
        provider_id: "replicate",
        context_window: 8192,
        max_output_tokens: 8192,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "meta/llama-3-8b",
        provider_id: "replicate",
        context_window: 8086,
        max_output_tokens: 8086,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "meta/llama-3-8b-instruct",
        provider_id: "replicate",
        context_window: 8086,
        max_output_tokens: 8086,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "mistralai/mistral-7b-instruct-v0.2",
        provider_id: "replicate",
        context_window: 4096,
        max_output_tokens: 4096,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "mistralai/mistral-7b-v0.1",
        provider_id: "replicate",
        context_window: 4096,
        max_output_tokens: 4096,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "mistralai/mixtral-8x7b-instruct-v0.1",
        provider_id: "replicate",
        context_window: 4096,
        max_output_tokens: 4096,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "openai/gpt-4.1",
        provider_id: "replicate",
        context_window: 0,
        max_output_tokens: 0,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: true,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "openai/gpt-4.1-mini",
        provider_id: "replicate",
        context_window: 0,
        max_output_tokens: 0,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: true,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "openai/gpt-4.1-nano",
        provider_id: "replicate",
        context_window: 0,
        max_output_tokens: 0,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "openai/gpt-4o",
        provider_id: "replicate",
        context_window: 0,
        max_output_tokens: 0,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: true,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "openai/gpt-4o-mini",
        provider_id: "replicate",
        context_window: 0,
        max_output_tokens: 0,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: true,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "openai/gpt-5",
        provider_id: "replicate",
        context_window: 0,
        max_output_tokens: 0,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: true,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "openai/gpt-5-mini",
        provider_id: "replicate",
        context_window: 0,
        max_output_tokens: 0,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: true,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "openai/gpt-5-nano",
        provider_id: "replicate",
        context_window: 0,
        max_output_tokens: 0,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "openai/gpt-oss-120b",
        provider_id: "replicate",
        context_window: 0,
        max_output_tokens: 0,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "openai/o1",
        provider_id: "replicate",
        context_window: 0,
        max_output_tokens: 0,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: false,
            vision: false,
            extended_thinking: true,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "openai/o1-mini",
        provider_id: "replicate",
        context_window: 0,
        max_output_tokens: 0,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: false,
            vision: false,
            extended_thinking: true,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "openai/o4-mini",
        provider_id: "replicate",
        context_window: 0,
        max_output_tokens: 0,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: false,
            vision: false,
            extended_thinking: true,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "qwen/qwen3-235b-a22b-instruct-2507",
        provider_id: "replicate",
        context_window: 0,
        max_output_tokens: 0,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "replicateopenai/gpt-oss-20b",
        provider_id: "replicate",
        context_window: 0,
        max_output_tokens: 0,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "xai/grok-4",
        provider_id: "replicate",
        context_window: 0,
        max_output_tokens: 0,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
];

pub const PROVIDER_RUNWAYML: ProviderDef = ProviderDef {
    id: "runwayml",
    display_name: "Runwayml",
    default_base_url: "",
    protocol: ProviderProtocol::OpenAICompat,
    auth: AuthKind::Bearer,
    status: ProviderStatus::Stub,
    env_vars: &["RUNWAYML_API_KEY"],
    litellm_prefix: "runwayml/",
    capabilities: ProviderCapabilities {
        chat_completions: false,
        streaming: false,
        tool_use: false,
        embeddings: false,
        vision: false,
        batch: false,
    },
};

pub const MODELS_RUNWAYML: &[ModelDef] = &[
    ModelDef {
        id: "eleven_multilingual_v2",
        provider_id: "runwayml",
        context_window: 0,
        max_output_tokens: 0,
        capabilities: ModelCapabilities {
            streaming: false,
            tool_use: false,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "gen3a_turbo",
        provider_id: "runwayml",
        context_window: 0,
        max_output_tokens: 0,
        capabilities: ModelCapabilities {
            streaming: false,
            tool_use: false,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "gen4_aleph",
        provider_id: "runwayml",
        context_window: 0,
        max_output_tokens: 0,
        capabilities: ModelCapabilities {
            streaming: false,
            tool_use: false,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "gen4_image",
        provider_id: "runwayml",
        context_window: 0,
        max_output_tokens: 0,
        capabilities: ModelCapabilities {
            streaming: false,
            tool_use: false,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "gen4_image_turbo",
        provider_id: "runwayml",
        context_window: 0,
        max_output_tokens: 0,
        capabilities: ModelCapabilities {
            streaming: false,
            tool_use: false,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "gen4_turbo",
        provider_id: "runwayml",
        context_window: 0,
        max_output_tokens: 0,
        capabilities: ModelCapabilities {
            streaming: false,
            tool_use: false,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
];

pub const PROVIDER_SAGEMAKER: ProviderDef = ProviderDef {
    id: "sagemaker",
    display_name: "AWS SageMaker",
    default_base_url: "",
    protocol: ProviderProtocol::Custom,
    auth: AuthKind::AwsSigV4,
    status: ProviderStatus::Stub,
    env_vars: &[
        "AWS_ACCESS_KEY_ID",
        "AWS_SECRET_ACCESS_KEY",
        "AWS_REGION_NAME",
    ],
    litellm_prefix: "sagemaker/",
    capabilities: ProviderCapabilities {
        chat_completions: true,
        streaming: true,
        tool_use: false,
        embeddings: false,
        vision: false,
        batch: false,
    },
};

pub const MODELS_SAGEMAKER: &[ModelDef] = &[
    ModelDef {
        id: "meta-textgeneration-llama-2-13b",
        provider_id: "sagemaker",
        context_window: 4096,
        max_output_tokens: 4096,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: false,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "meta-textgeneration-llama-2-13b-f",
        provider_id: "sagemaker",
        context_window: 4096,
        max_output_tokens: 4096,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: false,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "meta-textgeneration-llama-2-70b",
        provider_id: "sagemaker",
        context_window: 4096,
        max_output_tokens: 4096,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: false,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "meta-textgeneration-llama-2-70b-b-f",
        provider_id: "sagemaker",
        context_window: 4096,
        max_output_tokens: 4096,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: false,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "meta-textgeneration-llama-2-7b",
        provider_id: "sagemaker",
        context_window: 4096,
        max_output_tokens: 4096,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: false,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "meta-textgeneration-llama-2-7b-f",
        provider_id: "sagemaker",
        context_window: 4096,
        max_output_tokens: 4096,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: false,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
];

pub const PROVIDER_SAMBANOVA: ProviderDef = ProviderDef {
    id: "sambanova",
    display_name: "SambaNova",
    default_base_url: "https://api.sambanova.ai/v1",
    protocol: ProviderProtocol::OpenAICompat,
    auth: AuthKind::Bearer,
    status: ProviderStatus::Stub,
    env_vars: &["SAMBANOVA_API_KEY"],
    litellm_prefix: "sambanova/",
    capabilities: ProviderCapabilities {
        chat_completions: true,
        streaming: true,
        tool_use: true,
        embeddings: false,
        vision: true,
        batch: false,
    },
};

pub const MODELS_SAMBANOVA: &[ModelDef] = &[
    ModelDef {
        id: "DeepSeek-R1",
        provider_id: "sambanova",
        context_window: 32768,
        max_output_tokens: 32768,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: false,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "DeepSeek-R1-Distill-Llama-70B",
        provider_id: "sambanova",
        context_window: 131072,
        max_output_tokens: 131072,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: false,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "DeepSeek-V3-0324",
        provider_id: "sambanova",
        context_window: 32768,
        max_output_tokens: 32768,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: false,
            extended_thinking: true,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "DeepSeek-V3.1",
        provider_id: "sambanova",
        context_window: 32768,
        max_output_tokens: 32768,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: false,
            extended_thinking: true,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "Llama-4-Maverick-17B-128E-Instruct",
        provider_id: "sambanova",
        context_window: 131072,
        max_output_tokens: 131072,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: true,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "Llama-4-Scout-17B-16E-Instruct",
        provider_id: "sambanova",
        context_window: 8192,
        max_output_tokens: 8192,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "Meta-Llama-3.1-405B-Instruct",
        provider_id: "sambanova",
        context_window: 16384,
        max_output_tokens: 16384,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "Meta-Llama-3.1-8B-Instruct",
        provider_id: "sambanova",
        context_window: 16384,
        max_output_tokens: 16384,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "Meta-Llama-3.2-1B-Instruct",
        provider_id: "sambanova",
        context_window: 16384,
        max_output_tokens: 16384,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: false,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "Meta-Llama-3.2-3B-Instruct",
        provider_id: "sambanova",
        context_window: 4096,
        max_output_tokens: 4096,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: false,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "Meta-Llama-3.3-70B-Instruct",
        provider_id: "sambanova",
        context_window: 131072,
        max_output_tokens: 131072,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "Meta-Llama-Guard-3-8B",
        provider_id: "sambanova",
        context_window: 16384,
        max_output_tokens: 16384,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: false,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "MiniMax-M2.7",
        provider_id: "sambanova",
        context_window: 204800,
        max_output_tokens: 131072,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: false,
            extended_thinking: true,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "QwQ-32B",
        provider_id: "sambanova",
        context_window: 16384,
        max_output_tokens: 16384,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: false,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "Qwen2-Audio-7B-Instruct",
        provider_id: "sambanova",
        context_window: 4096,
        max_output_tokens: 4096,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: false,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "Qwen3-32B",
        provider_id: "sambanova",
        context_window: 8192,
        max_output_tokens: 8192,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: false,
            extended_thinking: true,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "gpt-oss-120b",
        provider_id: "sambanova",
        context_window: 131072,
        max_output_tokens: 131072,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: false,
            extended_thinking: true,
        },
        status: ModelStatus::Available,
    },
];

pub const PROVIDER_SARVAM: ProviderDef = ProviderDef {
    id: "sarvam",
    display_name: "Sarvam",
    default_base_url: "",
    protocol: ProviderProtocol::OpenAICompat,
    auth: AuthKind::Bearer,
    status: ProviderStatus::Stub,
    env_vars: &["SARVAM_API_KEY"],
    litellm_prefix: "sarvam/",
    capabilities: ProviderCapabilities {
        chat_completions: true,
        streaming: true,
        tool_use: false,
        embeddings: false,
        vision: false,
        batch: false,
    },
};

pub const MODELS_SARVAM: &[ModelDef] = &[ModelDef {
    id: "sarvam-m",
    provider_id: "sarvam",
    context_window: 8192,
    max_output_tokens: 32000,
    capabilities: ModelCapabilities {
        streaming: true,
        tool_use: false,
        vision: false,
        extended_thinking: true,
    },
    status: ModelStatus::Available,
}];

pub const PROVIDER_SEARXNG: ProviderDef = ProviderDef {
    id: "searxng",
    display_name: "Searxng",
    default_base_url: "",
    protocol: ProviderProtocol::OpenAICompat,
    auth: AuthKind::Bearer,
    status: ProviderStatus::Stub,
    env_vars: &["SEARXNG_API_KEY"],
    litellm_prefix: "searxng/",
    capabilities: ProviderCapabilities {
        chat_completions: false,
        streaming: false,
        tool_use: false,
        embeddings: false,
        vision: false,
        batch: false,
    },
};

pub const MODELS_SEARXNG: &[ModelDef] = &[ModelDef {
    id: "search",
    provider_id: "searxng",
    context_window: 0,
    max_output_tokens: 0,
    capabilities: ModelCapabilities {
        streaming: false,
        tool_use: false,
        vision: false,
        extended_thinking: false,
    },
    status: ModelStatus::Available,
}];

pub const PROVIDER_SERPER: ProviderDef = ProviderDef {
    id: "serper",
    display_name: "Serper",
    default_base_url: "https://google.serper.dev",
    protocol: ProviderProtocol::OpenAICompat,
    auth: AuthKind::Bearer,
    status: ProviderStatus::Stub,
    env_vars: &["SERPER_API_KEY"],
    litellm_prefix: "serper/",
    capabilities: ProviderCapabilities {
        chat_completions: false,
        streaming: false,
        tool_use: false,
        embeddings: false,
        vision: false,
        batch: false,
    },
};

pub const MODELS_SERPER: &[ModelDef] = &[ModelDef {
    id: "search",
    provider_id: "serper",
    context_window: 0,
    max_output_tokens: 0,
    capabilities: ModelCapabilities {
        streaming: false,
        tool_use: false,
        vision: false,
        extended_thinking: false,
    },
    status: ModelStatus::Available,
}];

pub const PROVIDER_SNOWFLAKE: ProviderDef = ProviderDef {
    id: "snowflake",
    display_name: "Snowflake Cortex",
    default_base_url: "",
    protocol: ProviderProtocol::OpenAICompat,
    auth: AuthKind::Bearer,
    status: ProviderStatus::Stub,
    env_vars: &["SNOWFLAKE_JWT", "SNOWFLAKE_PAT", "SNOWFLAKE_ACCOUNT_ID"],
    litellm_prefix: "snowflake/",
    capabilities: ProviderCapabilities {
        chat_completions: true,
        streaming: true,
        tool_use: false,
        embeddings: false,
        vision: false,
        batch: false,
    },
};

pub const MODELS_SNOWFLAKE: &[ModelDef] = &[
    ModelDef {
        id: "claude-3-5-sonnet",
        provider_id: "snowflake",
        context_window: 18000,
        max_output_tokens: 8192,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: false,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "deepseek-r1",
        provider_id: "snowflake",
        context_window: 32768,
        max_output_tokens: 8192,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: false,
            vision: false,
            extended_thinking: true,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "gemma-7b",
        provider_id: "snowflake",
        context_window: 8000,
        max_output_tokens: 8192,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: false,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "jamba-1.5-large",
        provider_id: "snowflake",
        context_window: 256000,
        max_output_tokens: 8192,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: false,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "jamba-1.5-mini",
        provider_id: "snowflake",
        context_window: 256000,
        max_output_tokens: 8192,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: false,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "jamba-instruct",
        provider_id: "snowflake",
        context_window: 256000,
        max_output_tokens: 8192,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: false,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "llama2-70b-chat",
        provider_id: "snowflake",
        context_window: 4096,
        max_output_tokens: 8192,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: false,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "llama3-70b",
        provider_id: "snowflake",
        context_window: 8000,
        max_output_tokens: 8192,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: false,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "llama3-8b",
        provider_id: "snowflake",
        context_window: 8000,
        max_output_tokens: 8192,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: false,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "llama3.1-405b",
        provider_id: "snowflake",
        context_window: 128000,
        max_output_tokens: 8192,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: false,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "llama3.1-70b",
        provider_id: "snowflake",
        context_window: 128000,
        max_output_tokens: 8192,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: false,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "llama3.1-8b",
        provider_id: "snowflake",
        context_window: 128000,
        max_output_tokens: 8192,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: false,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "llama3.2-1b",
        provider_id: "snowflake",
        context_window: 128000,
        max_output_tokens: 8192,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: false,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "llama3.2-3b",
        provider_id: "snowflake",
        context_window: 128000,
        max_output_tokens: 8192,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: false,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "llama3.3-70b",
        provider_id: "snowflake",
        context_window: 128000,
        max_output_tokens: 8192,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: false,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "mistral-7b",
        provider_id: "snowflake",
        context_window: 32000,
        max_output_tokens: 8192,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: false,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "mistral-large",
        provider_id: "snowflake",
        context_window: 32000,
        max_output_tokens: 8192,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: false,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "mistral-large2",
        provider_id: "snowflake",
        context_window: 128000,
        max_output_tokens: 8192,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: false,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "mixtral-8x7b",
        provider_id: "snowflake",
        context_window: 32000,
        max_output_tokens: 8192,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: false,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "reka-core",
        provider_id: "snowflake",
        context_window: 32000,
        max_output_tokens: 8192,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: false,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "reka-flash",
        provider_id: "snowflake",
        context_window: 100000,
        max_output_tokens: 8192,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: false,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "snowflake-arctic",
        provider_id: "snowflake",
        context_window: 4096,
        max_output_tokens: 8192,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: false,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "snowflake-llama-3.1-405b",
        provider_id: "snowflake",
        context_window: 8000,
        max_output_tokens: 8192,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: false,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "snowflake-llama-3.3-70b",
        provider_id: "snowflake",
        context_window: 8000,
        max_output_tokens: 8192,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: false,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
];

pub const PROVIDER_STABILITY: ProviderDef = ProviderDef {
    id: "stability",
    display_name: "Stability AI",
    default_base_url: "https://api.stability.ai",
    protocol: ProviderProtocol::OpenAICompat,
    auth: AuthKind::Bearer,
    status: ProviderStatus::Wired,
    env_vars: &["STABILITY_API_KEY"],
    litellm_prefix: "stability/",
    capabilities: ProviderCapabilities {
        chat_completions: false,
        streaming: false,
        tool_use: false,
        embeddings: false,
        vision: false,
        batch: false,
    },
};

pub const MODELS_STABILITY: &[ModelDef] = &[
    ModelDef {
        id: "conservative",
        provider_id: "stability",
        context_window: 0,
        max_output_tokens: 0,
        capabilities: ModelCapabilities {
            streaming: false,
            tool_use: false,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "creative",
        provider_id: "stability",
        context_window: 0,
        max_output_tokens: 0,
        capabilities: ModelCapabilities {
            streaming: false,
            tool_use: false,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "erase",
        provider_id: "stability",
        context_window: 0,
        max_output_tokens: 0,
        capabilities: ModelCapabilities {
            streaming: false,
            tool_use: false,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "fast",
        provider_id: "stability",
        context_window: 0,
        max_output_tokens: 0,
        capabilities: ModelCapabilities {
            streaming: false,
            tool_use: false,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "inpaint",
        provider_id: "stability",
        context_window: 0,
        max_output_tokens: 0,
        capabilities: ModelCapabilities {
            streaming: false,
            tool_use: false,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "outpaint",
        provider_id: "stability",
        context_window: 0,
        max_output_tokens: 0,
        capabilities: ModelCapabilities {
            streaming: false,
            tool_use: false,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "remove-background",
        provider_id: "stability",
        context_window: 0,
        max_output_tokens: 0,
        capabilities: ModelCapabilities {
            streaming: false,
            tool_use: false,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "replace-background-and-relight",
        provider_id: "stability",
        context_window: 0,
        max_output_tokens: 0,
        capabilities: ModelCapabilities {
            streaming: false,
            tool_use: false,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "sd3",
        provider_id: "stability",
        context_window: 0,
        max_output_tokens: 0,
        capabilities: ModelCapabilities {
            streaming: false,
            tool_use: false,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "sd3-large",
        provider_id: "stability",
        context_window: 0,
        max_output_tokens: 0,
        capabilities: ModelCapabilities {
            streaming: false,
            tool_use: false,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "sd3-large-turbo",
        provider_id: "stability",
        context_window: 0,
        max_output_tokens: 0,
        capabilities: ModelCapabilities {
            streaming: false,
            tool_use: false,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "sd3-medium",
        provider_id: "stability",
        context_window: 0,
        max_output_tokens: 0,
        capabilities: ModelCapabilities {
            streaming: false,
            tool_use: false,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "sd3.5-large",
        provider_id: "stability",
        context_window: 0,
        max_output_tokens: 0,
        capabilities: ModelCapabilities {
            streaming: false,
            tool_use: false,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "sd3.5-large-turbo",
        provider_id: "stability",
        context_window: 0,
        max_output_tokens: 0,
        capabilities: ModelCapabilities {
            streaming: false,
            tool_use: false,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "sd3.5-medium",
        provider_id: "stability",
        context_window: 0,
        max_output_tokens: 0,
        capabilities: ModelCapabilities {
            streaming: false,
            tool_use: false,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "search-and-recolor",
        provider_id: "stability",
        context_window: 0,
        max_output_tokens: 0,
        capabilities: ModelCapabilities {
            streaming: false,
            tool_use: false,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "search-and-replace",
        provider_id: "stability",
        context_window: 0,
        max_output_tokens: 0,
        capabilities: ModelCapabilities {
            streaming: false,
            tool_use: false,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "sketch",
        provider_id: "stability",
        context_window: 0,
        max_output_tokens: 0,
        capabilities: ModelCapabilities {
            streaming: false,
            tool_use: false,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "stable-image-core",
        provider_id: "stability",
        context_window: 0,
        max_output_tokens: 0,
        capabilities: ModelCapabilities {
            streaming: false,
            tool_use: false,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "stable-image-ultra",
        provider_id: "stability",
        context_window: 0,
        max_output_tokens: 0,
        capabilities: ModelCapabilities {
            streaming: false,
            tool_use: false,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "structure",
        provider_id: "stability",
        context_window: 0,
        max_output_tokens: 0,
        capabilities: ModelCapabilities {
            streaming: false,
            tool_use: false,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "style",
        provider_id: "stability",
        context_window: 0,
        max_output_tokens: 0,
        capabilities: ModelCapabilities {
            streaming: false,
            tool_use: false,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "style-transfer",
        provider_id: "stability",
        context_window: 0,
        max_output_tokens: 0,
        capabilities: ModelCapabilities {
            streaming: false,
            tool_use: false,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
];

pub const PROVIDER_TAVILY: ProviderDef = ProviderDef {
    id: "tavily",
    display_name: "Tavily",
    default_base_url: "https://api.tavily.com",
    protocol: ProviderProtocol::OpenAICompat,
    auth: AuthKind::Bearer,
    status: ProviderStatus::Stub,
    env_vars: &["TAVILY_API_KEY"],
    litellm_prefix: "tavily/",
    capabilities: ProviderCapabilities {
        chat_completions: false,
        streaming: false,
        tool_use: false,
        embeddings: false,
        vision: false,
        batch: false,
    },
};

pub const MODELS_TAVILY: &[ModelDef] = &[
    ModelDef {
        id: "search",
        provider_id: "tavily",
        context_window: 0,
        max_output_tokens: 0,
        capabilities: ModelCapabilities {
            streaming: false,
            tool_use: false,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "search-advanced",
        provider_id: "tavily",
        context_window: 0,
        max_output_tokens: 0,
        capabilities: ModelCapabilities {
            streaming: false,
            tool_use: false,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
];

pub const PROVIDER_TEXT_COMPLETION_CODESTRAL: ProviderDef = ProviderDef {
    id: "text-completion-codestral",
    display_name: "Codestral",
    default_base_url: "https://codestral.mistral.ai/v1",
    protocol: ProviderProtocol::OpenAICompat,
    auth: AuthKind::Bearer,
    status: ProviderStatus::Stub,
    env_vars: &["CODESTRAL_API_KEY"],
    litellm_prefix: "text-completion-codestral/",
    capabilities: ProviderCapabilities {
        chat_completions: false,
        streaming: true,
        tool_use: false,
        embeddings: false,
        vision: false,
        batch: false,
    },
};

pub const MODELS_TEXT_COMPLETION_CODESTRAL: &[ModelDef] = &[
    ModelDef {
        id: "codestral-2405",
        provider_id: "text-completion-codestral",
        context_window: 32000,
        max_output_tokens: 8191,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: false,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "codestral-latest",
        provider_id: "text-completion-codestral",
        context_window: 32000,
        max_output_tokens: 8191,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: false,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
];

pub const PROVIDER_TEXT_COMPLETION_OPENAI: ProviderDef = ProviderDef {
    id: "text-completion-openai",
    display_name: "OpenAI",
    default_base_url: "https://api.openai.com",
    protocol: ProviderProtocol::OpenAICompat,
    auth: AuthKind::Bearer,
    status: ProviderStatus::Implemented,
    env_vars: &["OPENAI_API_KEY"],
    litellm_prefix: "text-completion-openai/",
    capabilities: ProviderCapabilities {
        chat_completions: false,
        streaming: true,
        tool_use: false,
        embeddings: false,
        vision: false,
        batch: true,
    },
};

pub const MODELS_TEXT_COMPLETION_OPENAI: &[ModelDef] = &[
    ModelDef {
        id: "babbage-002",
        provider_id: "text-completion-openai",
        context_window: 16384,
        max_output_tokens: 4096,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: false,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "davinci-002",
        provider_id: "text-completion-openai",
        context_window: 16384,
        max_output_tokens: 4096,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: false,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "ft:babbage-002",
        provider_id: "text-completion-openai",
        context_window: 16384,
        max_output_tokens: 4096,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: false,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "ft:davinci-002",
        provider_id: "text-completion-openai",
        context_window: 16384,
        max_output_tokens: 4096,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: false,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "gpt-3.5-turbo-instruct",
        provider_id: "text-completion-openai",
        context_window: 8192,
        max_output_tokens: 4096,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: false,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "gpt-3.5-turbo-instruct-0914",
        provider_id: "text-completion-openai",
        context_window: 8192,
        max_output_tokens: 4097,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: false,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
];

pub const PROVIDER_TOGETHER_AI: ProviderDef = ProviderDef {
    id: "together_ai",
    display_name: "Together AI",
    default_base_url: "https://api.together.xyz/v1",
    protocol: ProviderProtocol::OpenAICompat,
    auth: AuthKind::Bearer,
    status: ProviderStatus::Stub,
    env_vars: &["TOGETHER_API_KEY", "TOGETHERAI_API_KEY"],
    litellm_prefix: "together_ai/",
    capabilities: ProviderCapabilities {
        chat_completions: true,
        streaming: true,
        tool_use: true,
        embeddings: true,
        vision: true,
        batch: false,
    },
};

pub const MODELS_TOGETHER_AI: &[ModelDef] = &[
    ModelDef {
        id: "BAAI/bge-base-en-v1.5",
        provider_id: "together_ai",
        context_window: 512,
        max_output_tokens: 0,
        capabilities: ModelCapabilities {
            streaming: false,
            tool_use: false,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "Qwen/Qwen2.5-72B-Instruct-Turbo",
        provider_id: "together_ai",
        context_window: 0,
        max_output_tokens: 0,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "Qwen/Qwen2.5-7B-Instruct-Turbo",
        provider_id: "together_ai",
        context_window: 0,
        max_output_tokens: 0,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "Qwen/Qwen3-235B-A22B-Instruct-2507-tput",
        provider_id: "together_ai",
        context_window: 262000,
        max_output_tokens: 0,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "Qwen/Qwen3-235B-A22B-Thinking-2507",
        provider_id: "together_ai",
        context_window: 256000,
        max_output_tokens: 0,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "Qwen/Qwen3-235B-A22B-fp8-tput",
        provider_id: "together_ai",
        context_window: 40000,
        max_output_tokens: 0,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: false,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "Qwen/Qwen3-Coder-480B-A35B-Instruct-FP8",
        provider_id: "together_ai",
        context_window: 256000,
        max_output_tokens: 0,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "Qwen/Qwen3-Next-80B-A3B-Instruct",
        provider_id: "together_ai",
        context_window: 262144,
        max_output_tokens: 0,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "Qwen/Qwen3-Next-80B-A3B-Thinking",
        provider_id: "together_ai",
        context_window: 262144,
        max_output_tokens: 0,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "Qwen/Qwen3.5-397B-A17B",
        provider_id: "together_ai",
        context_window: 262144,
        max_output_tokens: 0,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "baai/bge-base-en-v1.5",
        provider_id: "together_ai",
        context_window: 512,
        max_output_tokens: 0,
        capabilities: ModelCapabilities {
            streaming: false,
            tool_use: false,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "deepseek-ai/DeepSeek-R1",
        provider_id: "together_ai",
        context_window: 128000,
        max_output_tokens: 20480,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "deepseek-ai/DeepSeek-R1-0528-tput",
        provider_id: "together_ai",
        context_window: 128000,
        max_output_tokens: 0,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "deepseek-ai/DeepSeek-V3",
        provider_id: "together_ai",
        context_window: 65536,
        max_output_tokens: 8192,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "deepseek-ai/DeepSeek-V3.1",
        provider_id: "together_ai",
        context_window: 128000,
        max_output_tokens: 16384,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: false,
            extended_thinking: true,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "meta-llama/Llama-3.2-3B-Instruct-Turbo",
        provider_id: "together_ai",
        context_window: 0,
        max_output_tokens: 0,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "meta-llama/Llama-3.3-70B-Instruct-Turbo",
        provider_id: "together_ai",
        context_window: 0,
        max_output_tokens: 0,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "meta-llama/Llama-3.3-70B-Instruct-Turbo-Free",
        provider_id: "together_ai",
        context_window: 0,
        max_output_tokens: 0,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "meta-llama/Llama-4-Maverick-17B-128E-Instruct-FP8",
        provider_id: "together_ai",
        context_window: 0,
        max_output_tokens: 0,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "meta-llama/Llama-4-Scout-17B-16E-Instruct",
        provider_id: "together_ai",
        context_window: 0,
        max_output_tokens: 0,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "meta-llama/Meta-Llama-3.1-405B-Instruct-Turbo",
        provider_id: "together_ai",
        context_window: 0,
        max_output_tokens: 0,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "meta-llama/Meta-Llama-3.1-70B-Instruct-Turbo",
        provider_id: "together_ai",
        context_window: 0,
        max_output_tokens: 0,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "meta-llama/Meta-Llama-3.1-8B-Instruct-Turbo",
        provider_id: "together_ai",
        context_window: 0,
        max_output_tokens: 0,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "mistralai/Mistral-7B-Instruct-v0.1",
        provider_id: "together_ai",
        context_window: 0,
        max_output_tokens: 0,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "mistralai/Mistral-Small-24B-Instruct-2501",
        provider_id: "together_ai",
        context_window: 0,
        max_output_tokens: 0,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "mistralai/Mixtral-8x7B-Instruct-v0.1",
        provider_id: "together_ai",
        context_window: 0,
        max_output_tokens: 0,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "moonshotai/Kimi-K2-Instruct",
        provider_id: "together_ai",
        context_window: 0,
        max_output_tokens: 0,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "moonshotai/Kimi-K2-Instruct-0905",
        provider_id: "together_ai",
        context_window: 262144,
        max_output_tokens: 0,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "moonshotai/Kimi-K2.5",
        provider_id: "together_ai",
        context_window: 256000,
        max_output_tokens: 256000,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: true,
            extended_thinking: true,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "openai/gpt-oss-120b",
        provider_id: "together_ai",
        context_window: 131072,
        max_output_tokens: 131072,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: false,
            extended_thinking: true,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "openai/gpt-oss-20b",
        provider_id: "together_ai",
        context_window: 128000,
        max_output_tokens: 0,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "together-ai-21.1b-41b",
        provider_id: "together_ai",
        context_window: 0,
        max_output_tokens: 0,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: false,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "together-ai-4.1b-8b",
        provider_id: "together_ai",
        context_window: 0,
        max_output_tokens: 0,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: false,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "together-ai-41.1b-80b",
        provider_id: "together_ai",
        context_window: 0,
        max_output_tokens: 0,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: false,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "together-ai-8.1b-21b",
        provider_id: "together_ai",
        context_window: 0,
        max_output_tokens: 0,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: false,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "together-ai-81.1b-110b",
        provider_id: "together_ai",
        context_window: 0,
        max_output_tokens: 0,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: false,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "together-ai-embedding-151m-to-350m",
        provider_id: "together_ai",
        context_window: 0,
        max_output_tokens: 0,
        capabilities: ModelCapabilities {
            streaming: false,
            tool_use: false,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "together-ai-embedding-up-to-150m",
        provider_id: "together_ai",
        context_window: 0,
        max_output_tokens: 0,
        capabilities: ModelCapabilities {
            streaming: false,
            tool_use: false,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "together-ai-up-to-4b",
        provider_id: "together_ai",
        context_window: 0,
        max_output_tokens: 0,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: false,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "togethercomputer/CodeLlama-34b-Instruct",
        provider_id: "together_ai",
        context_window: 0,
        max_output_tokens: 0,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "zai-org/GLM-4.5-Air-FP8",
        provider_id: "together_ai",
        context_window: 128000,
        max_output_tokens: 0,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "zai-org/GLM-4.6",
        provider_id: "together_ai",
        context_window: 200000,
        max_output_tokens: 200000,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: false,
            extended_thinking: true,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "zai-org/GLM-4.7",
        provider_id: "together_ai",
        context_window: 200000,
        max_output_tokens: 200000,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: false,
            extended_thinking: true,
        },
        status: ModelStatus::Available,
    },
];

pub const PROVIDER_V0: ProviderDef = ProviderDef {
    id: "v0",
    display_name: "V0",
    default_base_url: "",
    protocol: ProviderProtocol::OpenAICompat,
    auth: AuthKind::Bearer,
    status: ProviderStatus::Stub,
    env_vars: &["V0_API_KEY"],
    litellm_prefix: "v0/",
    capabilities: ProviderCapabilities {
        chat_completions: true,
        streaming: true,
        tool_use: true,
        embeddings: false,
        vision: true,
        batch: false,
    },
};

pub const MODELS_V0: &[ModelDef] = &[
    ModelDef {
        id: "v0-1.0-md",
        provider_id: "v0",
        context_window: 128000,
        max_output_tokens: 128000,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: true,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "v0-1.5-lg",
        provider_id: "v0",
        context_window: 512000,
        max_output_tokens: 512000,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: true,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "v0-1.5-md",
        provider_id: "v0",
        context_window: 128000,
        max_output_tokens: 128000,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: true,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
];

pub const PROVIDER_VERCEL_AI_GATEWAY: ProviderDef = ProviderDef {
    id: "vercel_ai_gateway",
    display_name: "Vercel AI Gateway",
    default_base_url: "",
    protocol: ProviderProtocol::OpenAICompat,
    auth: AuthKind::Bearer,
    status: ProviderStatus::Stub,
    env_vars: &["VERCEL_AI_GATEWAY_API_KEY"],
    litellm_prefix: "vercel_ai_gateway/",
    capabilities: ProviderCapabilities {
        chat_completions: true,
        streaming: true,
        tool_use: true,
        embeddings: true,
        vision: true,
        batch: false,
    },
};

pub const MODELS_VERCEL_AI_GATEWAY: &[ModelDef] = &[
    ModelDef {
        id: "alibaba/qwen-3-14b",
        provider_id: "vercel_ai_gateway",
        context_window: 40960,
        max_output_tokens: 16384,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: false,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "alibaba/qwen-3-235b",
        provider_id: "vercel_ai_gateway",
        context_window: 40960,
        max_output_tokens: 16384,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: false,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "alibaba/qwen-3-30b",
        provider_id: "vercel_ai_gateway",
        context_window: 40960,
        max_output_tokens: 16384,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: false,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "alibaba/qwen-3-32b",
        provider_id: "vercel_ai_gateway",
        context_window: 40960,
        max_output_tokens: 16384,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "alibaba/qwen3-coder",
        provider_id: "vercel_ai_gateway",
        context_window: 262144,
        max_output_tokens: 66536,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "amazon/nova-lite",
        provider_id: "vercel_ai_gateway",
        context_window: 300000,
        max_output_tokens: 8192,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: true,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "amazon/nova-micro",
        provider_id: "vercel_ai_gateway",
        context_window: 128000,
        max_output_tokens: 8192,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "amazon/nova-pro",
        provider_id: "vercel_ai_gateway",
        context_window: 300000,
        max_output_tokens: 8192,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: true,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "amazon/titan-embed-text-v2",
        provider_id: "vercel_ai_gateway",
        context_window: 0,
        max_output_tokens: 0,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: false,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "anthropic/claude-3-5-sonnet",
        provider_id: "vercel_ai_gateway",
        context_window: 200000,
        max_output_tokens: 8192,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: true,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "anthropic/claude-3-5-sonnet-20241022",
        provider_id: "vercel_ai_gateway",
        context_window: 200000,
        max_output_tokens: 8192,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: true,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "anthropic/claude-3-7-sonnet",
        provider_id: "vercel_ai_gateway",
        context_window: 200000,
        max_output_tokens: 64000,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: true,
            extended_thinking: true,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "anthropic/claude-3-haiku",
        provider_id: "vercel_ai_gateway",
        context_window: 200000,
        max_output_tokens: 4096,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: true,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "anthropic/claude-3-opus",
        provider_id: "vercel_ai_gateway",
        context_window: 200000,
        max_output_tokens: 4096,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: true,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "anthropic/claude-3.5-haiku",
        provider_id: "vercel_ai_gateway",
        context_window: 200000,
        max_output_tokens: 8192,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: true,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "anthropic/claude-3.5-sonnet",
        provider_id: "vercel_ai_gateway",
        context_window: 200000,
        max_output_tokens: 8192,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: true,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "anthropic/claude-3.7-sonnet",
        provider_id: "vercel_ai_gateway",
        context_window: 200000,
        max_output_tokens: 64000,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: true,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "anthropic/claude-4-opus",
        provider_id: "vercel_ai_gateway",
        context_window: 200000,
        max_output_tokens: 32000,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: true,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "anthropic/claude-4-sonnet",
        provider_id: "vercel_ai_gateway",
        context_window: 200000,
        max_output_tokens: 64000,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "anthropic/claude-haiku-4.5",
        provider_id: "vercel_ai_gateway",
        context_window: 200000,
        max_output_tokens: 64000,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: true,
            extended_thinking: true,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "anthropic/claude-opus-4",
        provider_id: "vercel_ai_gateway",
        context_window: 200000,
        max_output_tokens: 32000,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: true,
            extended_thinking: true,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "anthropic/claude-opus-4.1",
        provider_id: "vercel_ai_gateway",
        context_window: 200000,
        max_output_tokens: 32000,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: true,
            extended_thinking: true,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "anthropic/claude-opus-4.5",
        provider_id: "vercel_ai_gateway",
        context_window: 200000,
        max_output_tokens: 64000,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: true,
            extended_thinking: true,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "anthropic/claude-opus-4.6",
        provider_id: "vercel_ai_gateway",
        context_window: 200000,
        max_output_tokens: 64000,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: true,
            extended_thinking: true,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "anthropic/claude-sonnet-4",
        provider_id: "vercel_ai_gateway",
        context_window: 200000,
        max_output_tokens: 64000,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: true,
            extended_thinking: true,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "anthropic/claude-sonnet-4.5",
        provider_id: "vercel_ai_gateway",
        context_window: 1000000,
        max_output_tokens: 64000,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: true,
            extended_thinking: true,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "cohere/command-a",
        provider_id: "vercel_ai_gateway",
        context_window: 256000,
        max_output_tokens: 8000,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "cohere/command-r",
        provider_id: "vercel_ai_gateway",
        context_window: 128000,
        max_output_tokens: 4096,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "cohere/command-r-plus",
        provider_id: "vercel_ai_gateway",
        context_window: 128000,
        max_output_tokens: 4096,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "cohere/embed-v4.0",
        provider_id: "vercel_ai_gateway",
        context_window: 0,
        max_output_tokens: 0,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: false,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "deepseek/deepseek-r1",
        provider_id: "vercel_ai_gateway",
        context_window: 128000,
        max_output_tokens: 8192,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "deepseek/deepseek-r1-distill-llama-70b",
        provider_id: "vercel_ai_gateway",
        context_window: 131072,
        max_output_tokens: 131072,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "deepseek/deepseek-v3",
        provider_id: "vercel_ai_gateway",
        context_window: 128000,
        max_output_tokens: 8192,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "google/gemini-2.0-flash",
        provider_id: "vercel_ai_gateway",
        context_window: 1048576,
        max_output_tokens: 8192,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: true,
            extended_thinking: false,
        },
        status: ModelStatus::Deprecated,
    },
    ModelDef {
        id: "google/gemini-2.0-flash-lite",
        provider_id: "vercel_ai_gateway",
        context_window: 1048576,
        max_output_tokens: 8192,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: true,
            extended_thinking: false,
        },
        status: ModelStatus::Deprecated,
    },
    ModelDef {
        id: "google/gemini-2.5-flash",
        provider_id: "vercel_ai_gateway",
        context_window: 1000000,
        max_output_tokens: 65536,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: true,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "google/gemini-2.5-pro",
        provider_id: "vercel_ai_gateway",
        context_window: 1048576,
        max_output_tokens: 65536,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: true,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "google/gemini-embedding-001",
        provider_id: "vercel_ai_gateway",
        context_window: 0,
        max_output_tokens: 0,
        capabilities: ModelCapabilities {
            streaming: false,
            tool_use: false,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "google/gemma-2-9b",
        provider_id: "vercel_ai_gateway",
        context_window: 8192,
        max_output_tokens: 8192,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: true,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "google/text-embedding-005",
        provider_id: "vercel_ai_gateway",
        context_window: 0,
        max_output_tokens: 0,
        capabilities: ModelCapabilities {
            streaming: false,
            tool_use: false,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "google/text-multilingual-embedding-002",
        provider_id: "vercel_ai_gateway",
        context_window: 0,
        max_output_tokens: 0,
        capabilities: ModelCapabilities {
            streaming: false,
            tool_use: false,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "inception/mercury-coder-small",
        provider_id: "vercel_ai_gateway",
        context_window: 32000,
        max_output_tokens: 16384,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: false,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "meta/llama-3-70b",
        provider_id: "vercel_ai_gateway",
        context_window: 8192,
        max_output_tokens: 8192,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "meta/llama-3-8b",
        provider_id: "vercel_ai_gateway",
        context_window: 8192,
        max_output_tokens: 8192,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "meta/llama-3.1-70b",
        provider_id: "vercel_ai_gateway",
        context_window: 128000,
        max_output_tokens: 8192,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "meta/llama-3.1-8b",
        provider_id: "vercel_ai_gateway",
        context_window: 131000,
        max_output_tokens: 131072,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "meta/llama-3.2-11b",
        provider_id: "vercel_ai_gateway",
        context_window: 128000,
        max_output_tokens: 8192,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: true,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "meta/llama-3.2-1b",
        provider_id: "vercel_ai_gateway",
        context_window: 128000,
        max_output_tokens: 8192,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: false,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "meta/llama-3.2-3b",
        provider_id: "vercel_ai_gateway",
        context_window: 128000,
        max_output_tokens: 8192,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "meta/llama-3.2-90b",
        provider_id: "vercel_ai_gateway",
        context_window: 128000,
        max_output_tokens: 8192,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: true,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "meta/llama-3.3-70b",
        provider_id: "vercel_ai_gateway",
        context_window: 128000,
        max_output_tokens: 8192,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "meta/llama-4-maverick",
        provider_id: "vercel_ai_gateway",
        context_window: 131072,
        max_output_tokens: 8192,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "meta/llama-4-scout",
        provider_id: "vercel_ai_gateway",
        context_window: 131072,
        max_output_tokens: 8192,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: true,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "mistral/codestral",
        provider_id: "vercel_ai_gateway",
        context_window: 256000,
        max_output_tokens: 4000,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "mistral/codestral-embed",
        provider_id: "vercel_ai_gateway",
        context_window: 0,
        max_output_tokens: 0,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: false,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "mistral/devstral-small",
        provider_id: "vercel_ai_gateway",
        context_window: 128000,
        max_output_tokens: 128000,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "mistral/magistral-medium",
        provider_id: "vercel_ai_gateway",
        context_window: 128000,
        max_output_tokens: 64000,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "mistral/magistral-small",
        provider_id: "vercel_ai_gateway",
        context_window: 128000,
        max_output_tokens: 64000,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "mistral/ministral-3b",
        provider_id: "vercel_ai_gateway",
        context_window: 128000,
        max_output_tokens: 4000,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "mistral/ministral-8b",
        provider_id: "vercel_ai_gateway",
        context_window: 128000,
        max_output_tokens: 4000,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: true,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "mistral/mistral-embed",
        provider_id: "vercel_ai_gateway",
        context_window: 0,
        max_output_tokens: 0,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: false,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "mistral/mistral-large",
        provider_id: "vercel_ai_gateway",
        context_window: 32000,
        max_output_tokens: 4000,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "mistral/mistral-saba-24b",
        provider_id: "vercel_ai_gateway",
        context_window: 32768,
        max_output_tokens: 32768,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: false,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "mistral/mistral-small",
        provider_id: "vercel_ai_gateway",
        context_window: 32000,
        max_output_tokens: 4000,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "mistral/mixtral-8x22b-instruct",
        provider_id: "vercel_ai_gateway",
        context_window: 65536,
        max_output_tokens: 2048,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "mistral/pixtral-12b",
        provider_id: "vercel_ai_gateway",
        context_window: 128000,
        max_output_tokens: 4000,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: true,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "mistral/pixtral-large",
        provider_id: "vercel_ai_gateway",
        context_window: 128000,
        max_output_tokens: 4000,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: true,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "moonshotai/kimi-k2",
        provider_id: "vercel_ai_gateway",
        context_window: 131072,
        max_output_tokens: 16384,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "morph/morph-v3-fast",
        provider_id: "vercel_ai_gateway",
        context_window: 32768,
        max_output_tokens: 16384,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: false,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "morph/morph-v3-large",
        provider_id: "vercel_ai_gateway",
        context_window: 32768,
        max_output_tokens: 16384,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: false,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "openai/gpt-3.5-turbo",
        provider_id: "vercel_ai_gateway",
        context_window: 16385,
        max_output_tokens: 4096,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "openai/gpt-3.5-turbo-instruct",
        provider_id: "vercel_ai_gateway",
        context_window: 8192,
        max_output_tokens: 4096,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: false,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "openai/gpt-4-turbo",
        provider_id: "vercel_ai_gateway",
        context_window: 128000,
        max_output_tokens: 4096,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: true,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "openai/gpt-4.1",
        provider_id: "vercel_ai_gateway",
        context_window: 1047576,
        max_output_tokens: 32768,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: true,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "openai/gpt-4.1-mini",
        provider_id: "vercel_ai_gateway",
        context_window: 1047576,
        max_output_tokens: 32768,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: true,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "openai/gpt-4.1-nano",
        provider_id: "vercel_ai_gateway",
        context_window: 1047576,
        max_output_tokens: 32768,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: true,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "openai/gpt-4o",
        provider_id: "vercel_ai_gateway",
        context_window: 128000,
        max_output_tokens: 16384,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: true,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "openai/gpt-4o-mini",
        provider_id: "vercel_ai_gateway",
        context_window: 128000,
        max_output_tokens: 16384,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: true,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "openai/o1",
        provider_id: "vercel_ai_gateway",
        context_window: 200000,
        max_output_tokens: 100000,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: true,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "openai/o3",
        provider_id: "vercel_ai_gateway",
        context_window: 200000,
        max_output_tokens: 100000,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: true,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "openai/o3-mini",
        provider_id: "vercel_ai_gateway",
        context_window: 200000,
        max_output_tokens: 100000,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "openai/o4-mini",
        provider_id: "vercel_ai_gateway",
        context_window: 200000,
        max_output_tokens: 100000,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: true,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "openai/text-embedding-3-large",
        provider_id: "vercel_ai_gateway",
        context_window: 0,
        max_output_tokens: 0,
        capabilities: ModelCapabilities {
            streaming: false,
            tool_use: false,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "openai/text-embedding-3-small",
        provider_id: "vercel_ai_gateway",
        context_window: 0,
        max_output_tokens: 0,
        capabilities: ModelCapabilities {
            streaming: false,
            tool_use: false,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "openai/text-embedding-ada-002",
        provider_id: "vercel_ai_gateway",
        context_window: 0,
        max_output_tokens: 0,
        capabilities: ModelCapabilities {
            streaming: false,
            tool_use: false,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "perplexity/sonar",
        provider_id: "vercel_ai_gateway",
        context_window: 127000,
        max_output_tokens: 8000,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: false,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "perplexity/sonar-pro",
        provider_id: "vercel_ai_gateway",
        context_window: 200000,
        max_output_tokens: 8000,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: false,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "perplexity/sonar-reasoning",
        provider_id: "vercel_ai_gateway",
        context_window: 127000,
        max_output_tokens: 8000,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: false,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "perplexity/sonar-reasoning-pro",
        provider_id: "vercel_ai_gateway",
        context_window: 127000,
        max_output_tokens: 8000,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: false,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "vercel/v0-1.0-md",
        provider_id: "vercel_ai_gateway",
        context_window: 128000,
        max_output_tokens: 32000,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: true,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "vercel/v0-1.5-md",
        provider_id: "vercel_ai_gateway",
        context_window: 128000,
        max_output_tokens: 32768,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: true,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "xai/grok-2",
        provider_id: "vercel_ai_gateway",
        context_window: 131072,
        max_output_tokens: 4000,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "xai/grok-2-vision",
        provider_id: "vercel_ai_gateway",
        context_window: 32768,
        max_output_tokens: 32768,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: true,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "xai/grok-3",
        provider_id: "vercel_ai_gateway",
        context_window: 131072,
        max_output_tokens: 131072,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "xai/grok-3-fast",
        provider_id: "vercel_ai_gateway",
        context_window: 131072,
        max_output_tokens: 131072,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "xai/grok-3-mini",
        provider_id: "vercel_ai_gateway",
        context_window: 131072,
        max_output_tokens: 131072,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "xai/grok-3-mini-fast",
        provider_id: "vercel_ai_gateway",
        context_window: 131072,
        max_output_tokens: 131072,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "xai/grok-4",
        provider_id: "vercel_ai_gateway",
        context_window: 256000,
        max_output_tokens: 256000,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "zai/glm-4.5",
        provider_id: "vercel_ai_gateway",
        context_window: 131072,
        max_output_tokens: 131072,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "zai/glm-4.5-air",
        provider_id: "vercel_ai_gateway",
        context_window: 128000,
        max_output_tokens: 96000,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "zai/glm-4.6",
        provider_id: "vercel_ai_gateway",
        context_window: 200000,
        max_output_tokens: 200000,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
];

pub const PROVIDER_VERTEX_AI: ProviderDef = ProviderDef {
    id: "vertex_ai",
    display_name: "Google Vertex AI",
    default_base_url: "https://us-central1-aiplatform.googleapis.com",
    protocol: ProviderProtocol::VertexAI,
    auth: AuthKind::GoogleApiKey,
    status: ProviderStatus::Implemented,
    env_vars: &[
        "GOOGLE_APPLICATION_CREDENTIALS",
        "VERTEX_PROJECT",
        "VERTEX_LOCATION",
        "GOOGLE_CLOUD_PROJECT",
        "GOOGLE_CLOUD_LOCATION",
        "VERTEX_API_KEY",
        "GOOGLE_ACCESS_TOKEN",
    ],
    litellm_prefix: "vertex_ai/",
    capabilities: ProviderCapabilities {
        chat_completions: true,
        streaming: true,
        tool_use: true,
        embeddings: true,
        vision: true,
        batch: true,
    },
};

pub const MODELS_VERTEX_AI: &[ModelDef] = &[
    ModelDef {
        id: "chirp",
        provider_id: "vertex_ai",
        context_window: 0,
        max_output_tokens: 0,
        capabilities: ModelCapabilities {
            streaming: false,
            tool_use: false,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "deepseek-ai/deepseek-ocr-maas",
        provider_id: "vertex_ai",
        context_window: 0,
        max_output_tokens: 0,
        capabilities: ModelCapabilities {
            streaming: false,
            tool_use: false,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "gemini-3-flash-preview",
        provider_id: "vertex_ai",
        context_window: 1048576,
        max_output_tokens: 65535,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: true,
            extended_thinking: true,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "gemini-3-pro-preview",
        provider_id: "vertex_ai",
        context_window: 1048576,
        max_output_tokens: 65535,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: true,
            extended_thinking: true,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "gemini-3.1-pro-preview",
        provider_id: "vertex_ai",
        context_window: 1048576,
        max_output_tokens: 65536,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: true,
            extended_thinking: true,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "gemini-3.1-pro-preview-customtools",
        provider_id: "vertex_ai",
        context_window: 1048576,
        max_output_tokens: 65536,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: true,
            extended_thinking: true,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "gemini-3.5-flash",
        provider_id: "vertex_ai",
        context_window: 1048576,
        max_output_tokens: 65535,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: true,
            extended_thinking: true,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "gemini-embedding-2",
        provider_id: "vertex_ai",
        context_window: 8192,
        max_output_tokens: 0,
        capabilities: ModelCapabilities {
            streaming: false,
            tool_use: false,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "gemini-embedding-2-preview",
        provider_id: "vertex_ai",
        context_window: 8192,
        max_output_tokens: 0,
        capabilities: ModelCapabilities {
            streaming: false,
            tool_use: false,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "mistral-ocr-2505",
        provider_id: "vertex_ai",
        context_window: 0,
        max_output_tokens: 0,
        capabilities: ModelCapabilities {
            streaming: false,
            tool_use: false,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "search_api",
        provider_id: "vertex_ai",
        context_window: 0,
        max_output_tokens: 0,
        capabilities: ModelCapabilities {
            streaming: false,
            tool_use: false,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "xai/grok-4.1-fast-non-reasoning",
        provider_id: "vertex_ai",
        context_window: 2000000,
        max_output_tokens: 2000000,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: true,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "xai/grok-4.1-fast-reasoning",
        provider_id: "vertex_ai",
        context_window: 2000000,
        max_output_tokens: 2000000,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: true,
            extended_thinking: true,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "xai/grok-4.20-non-reasoning",
        provider_id: "vertex_ai",
        context_window: 2000000,
        max_output_tokens: 2000000,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: true,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "xai/grok-4.20-reasoning",
        provider_id: "vertex_ai",
        context_window: 2000000,
        max_output_tokens: 2000000,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: true,
            extended_thinking: true,
        },
        status: ModelStatus::Available,
    },
];

pub const PROVIDER_VERTEX_AI_AI21_MODELS: ProviderDef = ProviderDef {
    id: "vertex_ai-ai21_models",
    display_name: "Google Vertex AI",
    default_base_url: "https://us-central1-aiplatform.googleapis.com",
    protocol: ProviderProtocol::VertexAI,
    auth: AuthKind::GoogleApiKey,
    status: ProviderStatus::Implemented,
    env_vars: &[
        "GOOGLE_APPLICATION_CREDENTIALS",
        "VERTEX_PROJECT",
        "VERTEX_LOCATION",
        "GOOGLE_CLOUD_PROJECT",
        "GOOGLE_CLOUD_LOCATION",
        "VERTEX_API_KEY",
        "GOOGLE_ACCESS_TOKEN",
    ],
    litellm_prefix: "vertex_ai-ai21_models/",
    capabilities: ProviderCapabilities {
        chat_completions: true,
        streaming: true,
        tool_use: true,
        embeddings: false,
        vision: false,
        batch: true,
    },
};

pub const MODELS_VERTEX_AI_AI21_MODELS: &[ModelDef] = &[
    ModelDef {
        id: "vertex_ai/jamba-1.5",
        provider_id: "vertex_ai-ai21_models",
        context_window: 256000,
        max_output_tokens: 256000,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "vertex_ai/jamba-1.5-large",
        provider_id: "vertex_ai-ai21_models",
        context_window: 256000,
        max_output_tokens: 256000,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "vertex_ai/jamba-1.5-large@001",
        provider_id: "vertex_ai-ai21_models",
        context_window: 256000,
        max_output_tokens: 256000,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "vertex_ai/jamba-1.5-mini",
        provider_id: "vertex_ai-ai21_models",
        context_window: 256000,
        max_output_tokens: 256000,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "vertex_ai/jamba-1.5-mini@001",
        provider_id: "vertex_ai-ai21_models",
        context_window: 256000,
        max_output_tokens: 256000,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
];

pub const PROVIDER_VERTEX_AI_ANTHROPIC_MODELS: ProviderDef = ProviderDef {
    id: "vertex_ai-anthropic_models",
    display_name: "Google Vertex AI",
    default_base_url: "https://us-central1-aiplatform.googleapis.com",
    protocol: ProviderProtocol::VertexAI,
    auth: AuthKind::GoogleApiKey,
    status: ProviderStatus::Implemented,
    env_vars: &[
        "GOOGLE_APPLICATION_CREDENTIALS",
        "VERTEX_PROJECT",
        "VERTEX_LOCATION",
        "GOOGLE_CLOUD_PROJECT",
        "GOOGLE_CLOUD_LOCATION",
        "VERTEX_API_KEY",
        "GOOGLE_ACCESS_TOKEN",
    ],
    litellm_prefix: "vertex_ai-anthropic_models/",
    capabilities: ProviderCapabilities {
        chat_completions: true,
        streaming: true,
        tool_use: true,
        embeddings: false,
        vision: true,
        batch: true,
    },
};

pub const MODELS_VERTEX_AI_ANTHROPIC_MODELS: &[ModelDef] = &[
    ModelDef {
        id: "vertex_ai/claude-3-5-haiku",
        provider_id: "vertex_ai-anthropic_models",
        context_window: 200000,
        max_output_tokens: 8192,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "vertex_ai/claude-3-5-haiku@20241022",
        provider_id: "vertex_ai-anthropic_models",
        context_window: 200000,
        max_output_tokens: 8192,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "vertex_ai/claude-3-5-sonnet",
        provider_id: "vertex_ai-anthropic_models",
        context_window: 200000,
        max_output_tokens: 8192,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: true,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "vertex_ai/claude-3-5-sonnet@20240620",
        provider_id: "vertex_ai-anthropic_models",
        context_window: 200000,
        max_output_tokens: 8192,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: true,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "vertex_ai/claude-3-7-sonnet@20250219",
        provider_id: "vertex_ai-anthropic_models",
        context_window: 200000,
        max_output_tokens: 8192,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: true,
            extended_thinking: true,
        },
        status: ModelStatus::Deprecated,
    },
    ModelDef {
        id: "vertex_ai/claude-3-haiku",
        provider_id: "vertex_ai-anthropic_models",
        context_window: 200000,
        max_output_tokens: 4096,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: true,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "vertex_ai/claude-3-haiku@20240307",
        provider_id: "vertex_ai-anthropic_models",
        context_window: 200000,
        max_output_tokens: 4096,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: true,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "vertex_ai/claude-3-opus",
        provider_id: "vertex_ai-anthropic_models",
        context_window: 200000,
        max_output_tokens: 4096,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: true,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "vertex_ai/claude-3-opus@20240229",
        provider_id: "vertex_ai-anthropic_models",
        context_window: 200000,
        max_output_tokens: 4096,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: true,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "vertex_ai/claude-3-sonnet",
        provider_id: "vertex_ai-anthropic_models",
        context_window: 200000,
        max_output_tokens: 4096,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: true,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "vertex_ai/claude-3-sonnet@20240229",
        provider_id: "vertex_ai-anthropic_models",
        context_window: 200000,
        max_output_tokens: 4096,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: true,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "vertex_ai/claude-haiku-4-5",
        provider_id: "vertex_ai-anthropic_models",
        context_window: 200000,
        max_output_tokens: 8192,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: true,
            extended_thinking: true,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "vertex_ai/claude-haiku-4-5@20251001",
        provider_id: "vertex_ai-anthropic_models",
        context_window: 200000,
        max_output_tokens: 8192,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: true,
            extended_thinking: true,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "vertex_ai/claude-opus-4",
        provider_id: "vertex_ai-anthropic_models",
        context_window: 200000,
        max_output_tokens: 32000,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: true,
            extended_thinking: true,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "vertex_ai/claude-opus-4-1",
        provider_id: "vertex_ai-anthropic_models",
        context_window: 200000,
        max_output_tokens: 32000,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: true,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "vertex_ai/claude-opus-4-1@20250805",
        provider_id: "vertex_ai-anthropic_models",
        context_window: 200000,
        max_output_tokens: 32000,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: true,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "vertex_ai/claude-opus-4-5",
        provider_id: "vertex_ai-anthropic_models",
        context_window: 200000,
        max_output_tokens: 64000,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: true,
            extended_thinking: true,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "vertex_ai/claude-opus-4-5@20251101",
        provider_id: "vertex_ai-anthropic_models",
        context_window: 200000,
        max_output_tokens: 64000,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: true,
            extended_thinking: true,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "vertex_ai/claude-opus-4-6",
        provider_id: "vertex_ai-anthropic_models",
        context_window: 1000000,
        max_output_tokens: 128000,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: true,
            extended_thinking: true,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "vertex_ai/claude-opus-4-6@default",
        provider_id: "vertex_ai-anthropic_models",
        context_window: 1000000,
        max_output_tokens: 128000,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: true,
            extended_thinking: true,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "vertex_ai/claude-opus-4-7",
        provider_id: "vertex_ai-anthropic_models",
        context_window: 1000000,
        max_output_tokens: 128000,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: true,
            extended_thinking: true,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "vertex_ai/claude-opus-4-7@default",
        provider_id: "vertex_ai-anthropic_models",
        context_window: 1000000,
        max_output_tokens: 128000,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: true,
            extended_thinking: true,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "vertex_ai/claude-opus-4@20250514",
        provider_id: "vertex_ai-anthropic_models",
        context_window: 200000,
        max_output_tokens: 32000,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: true,
            extended_thinking: true,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "vertex_ai/claude-sonnet-4",
        provider_id: "vertex_ai-anthropic_models",
        context_window: 1000000,
        max_output_tokens: 64000,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: true,
            extended_thinking: true,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "vertex_ai/claude-sonnet-4-5",
        provider_id: "vertex_ai-anthropic_models",
        context_window: 200000,
        max_output_tokens: 64000,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: true,
            extended_thinking: true,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "vertex_ai/claude-sonnet-4-5@20250929",
        provider_id: "vertex_ai-anthropic_models",
        context_window: 200000,
        max_output_tokens: 64000,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: true,
            extended_thinking: true,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "vertex_ai/claude-sonnet-4-6",
        provider_id: "vertex_ai-anthropic_models",
        context_window: 1000000,
        max_output_tokens: 64000,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: true,
            extended_thinking: true,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "vertex_ai/claude-sonnet-4-6@default",
        provider_id: "vertex_ai-anthropic_models",
        context_window: 1000000,
        max_output_tokens: 64000,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: true,
            extended_thinking: true,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "vertex_ai/claude-sonnet-4@20250514",
        provider_id: "vertex_ai-anthropic_models",
        context_window: 1000000,
        max_output_tokens: 64000,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: true,
            extended_thinking: true,
        },
        status: ModelStatus::Available,
    },
];

pub const PROVIDER_VERTEX_AI_DEEPSEEK_MODELS: ProviderDef = ProviderDef {
    id: "vertex_ai-deepseek_models",
    display_name: "Google Vertex AI",
    default_base_url: "https://us-central1-aiplatform.googleapis.com",
    protocol: ProviderProtocol::VertexAI,
    auth: AuthKind::GoogleApiKey,
    status: ProviderStatus::Implemented,
    env_vars: &[
        "GOOGLE_APPLICATION_CREDENTIALS",
        "VERTEX_PROJECT",
        "VERTEX_LOCATION",
        "GOOGLE_CLOUD_PROJECT",
        "GOOGLE_CLOUD_LOCATION",
        "VERTEX_API_KEY",
        "GOOGLE_ACCESS_TOKEN",
    ],
    litellm_prefix: "vertex_ai-deepseek_models/",
    capabilities: ProviderCapabilities {
        chat_completions: true,
        streaming: true,
        tool_use: true,
        embeddings: false,
        vision: false,
        batch: true,
    },
};

pub const MODELS_VERTEX_AI_DEEPSEEK_MODELS: &[ModelDef] = &[
    ModelDef {
        id: "vertex_ai/deepseek-ai/deepseek-r1-0528-maas",
        provider_id: "vertex_ai-deepseek_models",
        context_window: 65336,
        max_output_tokens: 8192,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: false,
            extended_thinking: true,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "vertex_ai/deepseek-ai/deepseek-v3.1-maas",
        provider_id: "vertex_ai-deepseek_models",
        context_window: 163840,
        max_output_tokens: 32768,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: false,
            extended_thinking: true,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "vertex_ai/deepseek-ai/deepseek-v3.2-maas",
        provider_id: "vertex_ai-deepseek_models",
        context_window: 163840,
        max_output_tokens: 32768,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: false,
            extended_thinking: true,
        },
        status: ModelStatus::Available,
    },
];

pub const PROVIDER_VERTEX_AI_EMBEDDING_MODELS: ProviderDef = ProviderDef {
    id: "vertex_ai-embedding-models",
    display_name: "Google Vertex AI",
    default_base_url: "https://us-central1-aiplatform.googleapis.com",
    protocol: ProviderProtocol::VertexAI,
    auth: AuthKind::GoogleApiKey,
    status: ProviderStatus::Implemented,
    env_vars: &[
        "GOOGLE_APPLICATION_CREDENTIALS",
        "VERTEX_PROJECT",
        "VERTEX_LOCATION",
        "GOOGLE_CLOUD_PROJECT",
        "GOOGLE_CLOUD_LOCATION",
        "VERTEX_API_KEY",
        "GOOGLE_ACCESS_TOKEN",
    ],
    litellm_prefix: "vertex_ai-embedding-models/",
    capabilities: ProviderCapabilities {
        chat_completions: false,
        streaming: false,
        tool_use: false,
        embeddings: true,
        vision: false,
        batch: true,
    },
};

pub const MODELS_VERTEX_AI_EMBEDDING_MODELS: &[ModelDef] = &[
    ModelDef {
        id: "gemini-embedding-001",
        provider_id: "vertex_ai-embedding-models",
        context_window: 2048,
        max_output_tokens: 0,
        capabilities: ModelCapabilities {
            streaming: false,
            tool_use: false,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "gemini-embedding-2",
        provider_id: "vertex_ai-embedding-models",
        context_window: 8192,
        max_output_tokens: 0,
        capabilities: ModelCapabilities {
            streaming: false,
            tool_use: false,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "gemini-embedding-2-preview",
        provider_id: "vertex_ai-embedding-models",
        context_window: 8192,
        max_output_tokens: 0,
        capabilities: ModelCapabilities {
            streaming: false,
            tool_use: false,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "multimodalembedding",
        provider_id: "vertex_ai-embedding-models",
        context_window: 2048,
        max_output_tokens: 0,
        capabilities: ModelCapabilities {
            streaming: false,
            tool_use: false,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "multimodalembedding@001",
        provider_id: "vertex_ai-embedding-models",
        context_window: 2048,
        max_output_tokens: 0,
        capabilities: ModelCapabilities {
            streaming: false,
            tool_use: false,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "text-embedding-004",
        provider_id: "vertex_ai-embedding-models",
        context_window: 2048,
        max_output_tokens: 0,
        capabilities: ModelCapabilities {
            streaming: false,
            tool_use: false,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Deprecated,
    },
    ModelDef {
        id: "text-embedding-005",
        provider_id: "vertex_ai-embedding-models",
        context_window: 2048,
        max_output_tokens: 0,
        capabilities: ModelCapabilities {
            streaming: false,
            tool_use: false,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "text-embedding-large-exp-03-07",
        provider_id: "vertex_ai-embedding-models",
        context_window: 8192,
        max_output_tokens: 0,
        capabilities: ModelCapabilities {
            streaming: false,
            tool_use: false,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "text-embedding-preview-0409",
        provider_id: "vertex_ai-embedding-models",
        context_window: 3072,
        max_output_tokens: 0,
        capabilities: ModelCapabilities {
            streaming: false,
            tool_use: false,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "text-multilingual-embedding-002",
        provider_id: "vertex_ai-embedding-models",
        context_window: 2048,
        max_output_tokens: 0,
        capabilities: ModelCapabilities {
            streaming: false,
            tool_use: false,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
];

pub const PROVIDER_VERTEX_AI_IMAGE_MODELS: ProviderDef = ProviderDef {
    id: "vertex_ai-image-models",
    display_name: "Google Vertex AI",
    default_base_url: "https://us-central1-aiplatform.googleapis.com",
    protocol: ProviderProtocol::VertexAI,
    auth: AuthKind::GoogleApiKey,
    status: ProviderStatus::Implemented,
    env_vars: &[
        "GOOGLE_APPLICATION_CREDENTIALS",
        "VERTEX_PROJECT",
        "VERTEX_LOCATION",
        "GOOGLE_CLOUD_PROJECT",
        "GOOGLE_CLOUD_LOCATION",
        "VERTEX_API_KEY",
        "GOOGLE_ACCESS_TOKEN",
    ],
    litellm_prefix: "vertex_ai-image-models/",
    capabilities: ProviderCapabilities {
        chat_completions: false,
        streaming: false,
        tool_use: false,
        embeddings: false,
        vision: false,
        batch: true,
    },
};

pub const MODELS_VERTEX_AI_IMAGE_MODELS: &[ModelDef] = &[
    ModelDef {
        id: "vertex_ai/imagegeneration@006",
        provider_id: "vertex_ai-image-models",
        context_window: 0,
        max_output_tokens: 0,
        capabilities: ModelCapabilities {
            streaming: false,
            tool_use: false,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "vertex_ai/imagen-3.0-capability-001",
        provider_id: "vertex_ai-image-models",
        context_window: 0,
        max_output_tokens: 0,
        capabilities: ModelCapabilities {
            streaming: false,
            tool_use: false,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "vertex_ai/imagen-3.0-fast-generate-001",
        provider_id: "vertex_ai-image-models",
        context_window: 0,
        max_output_tokens: 0,
        capabilities: ModelCapabilities {
            streaming: false,
            tool_use: false,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "vertex_ai/imagen-3.0-generate-001",
        provider_id: "vertex_ai-image-models",
        context_window: 0,
        max_output_tokens: 0,
        capabilities: ModelCapabilities {
            streaming: false,
            tool_use: false,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "vertex_ai/imagen-3.0-generate-002",
        provider_id: "vertex_ai-image-models",
        context_window: 0,
        max_output_tokens: 0,
        capabilities: ModelCapabilities {
            streaming: false,
            tool_use: false,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Deprecated,
    },
    ModelDef {
        id: "vertex_ai/imagen-4.0-fast-generate-001",
        provider_id: "vertex_ai-image-models",
        context_window: 0,
        max_output_tokens: 0,
        capabilities: ModelCapabilities {
            streaming: false,
            tool_use: false,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "vertex_ai/imagen-4.0-generate-001",
        provider_id: "vertex_ai-image-models",
        context_window: 0,
        max_output_tokens: 0,
        capabilities: ModelCapabilities {
            streaming: false,
            tool_use: false,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "vertex_ai/imagen-4.0-ultra-generate-001",
        provider_id: "vertex_ai-image-models",
        context_window: 0,
        max_output_tokens: 0,
        capabilities: ModelCapabilities {
            streaming: false,
            tool_use: false,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
];

pub const PROVIDER_VERTEX_AI_LANGUAGE_MODELS: ProviderDef = ProviderDef {
    id: "vertex_ai-language-models",
    display_name: "Google Vertex AI",
    default_base_url: "https://us-central1-aiplatform.googleapis.com",
    protocol: ProviderProtocol::VertexAI,
    auth: AuthKind::GoogleApiKey,
    status: ProviderStatus::Implemented,
    env_vars: &[
        "GOOGLE_APPLICATION_CREDENTIALS",
        "VERTEX_PROJECT",
        "VERTEX_LOCATION",
        "GOOGLE_CLOUD_PROJECT",
        "GOOGLE_CLOUD_LOCATION",
        "VERTEX_API_KEY",
        "GOOGLE_ACCESS_TOKEN",
    ],
    litellm_prefix: "vertex_ai-language-models/",
    capabilities: ProviderCapabilities {
        chat_completions: true,
        streaming: true,
        tool_use: true,
        embeddings: true,
        vision: true,
        batch: true,
    },
};

pub const MODELS_VERTEX_AI_LANGUAGE_MODELS: &[ModelDef] = &[
    ModelDef {
        id: "deep-research-pro-preview-12-2025",
        provider_id: "vertex_ai-language-models",
        context_window: 65536,
        max_output_tokens: 32768,
        capabilities: ModelCapabilities {
            streaming: false,
            tool_use: false,
            vision: true,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "gemini-2.0-flash",
        provider_id: "vertex_ai-language-models",
        context_window: 1048576,
        max_output_tokens: 8192,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: true,
            extended_thinking: false,
        },
        status: ModelStatus::Deprecated,
    },
    ModelDef {
        id: "gemini-2.0-flash-001",
        provider_id: "vertex_ai-language-models",
        context_window: 1048576,
        max_output_tokens: 8192,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: true,
            extended_thinking: false,
        },
        status: ModelStatus::Deprecated,
    },
    ModelDef {
        id: "gemini-2.0-flash-lite",
        provider_id: "vertex_ai-language-models",
        context_window: 1048576,
        max_output_tokens: 8192,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: true,
            extended_thinking: false,
        },
        status: ModelStatus::Deprecated,
    },
    ModelDef {
        id: "gemini-2.0-flash-lite-001",
        provider_id: "vertex_ai-language-models",
        context_window: 1048576,
        max_output_tokens: 8192,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: true,
            extended_thinking: false,
        },
        status: ModelStatus::Deprecated,
    },
    ModelDef {
        id: "gemini-2.5-computer-use-preview-10-2025",
        provider_id: "vertex_ai-language-models",
        context_window: 128000,
        max_output_tokens: 64000,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: true,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "gemini-2.5-flash",
        provider_id: "vertex_ai-language-models",
        context_window: 1048576,
        max_output_tokens: 65535,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: true,
            extended_thinking: true,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "gemini-2.5-flash-image",
        provider_id: "vertex_ai-language-models",
        context_window: 32768,
        max_output_tokens: 32768,
        capabilities: ModelCapabilities {
            streaming: false,
            tool_use: true,
            vision: true,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "gemini-2.5-flash-lite",
        provider_id: "vertex_ai-language-models",
        context_window: 1048576,
        max_output_tokens: 65535,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: true,
            extended_thinking: true,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "gemini-2.5-flash-lite-preview-06-17",
        provider_id: "vertex_ai-language-models",
        context_window: 1048576,
        max_output_tokens: 65535,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: true,
            extended_thinking: true,
        },
        status: ModelStatus::Deprecated,
    },
    ModelDef {
        id: "gemini-2.5-flash-lite-preview-09-2025",
        provider_id: "vertex_ai-language-models",
        context_window: 1048576,
        max_output_tokens: 65535,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: true,
            extended_thinking: true,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "gemini-2.5-flash-preview-09-2025",
        provider_id: "vertex_ai-language-models",
        context_window: 1048576,
        max_output_tokens: 65535,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: true,
            extended_thinking: true,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "gemini-2.5-pro",
        provider_id: "vertex_ai-language-models",
        context_window: 1048576,
        max_output_tokens: 65535,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: true,
            extended_thinking: true,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "gemini-2.5-pro-preview-tts",
        provider_id: "vertex_ai-language-models",
        context_window: 1048576,
        max_output_tokens: 65535,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: true,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "gemini-3-flash-preview",
        provider_id: "vertex_ai-language-models",
        context_window: 1048576,
        max_output_tokens: 65535,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: true,
            extended_thinking: true,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "gemini-3-pro-image-preview",
        provider_id: "vertex_ai-language-models",
        context_window: 65536,
        max_output_tokens: 32768,
        capabilities: ModelCapabilities {
            streaming: false,
            tool_use: false,
            vision: true,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "gemini-3-pro-preview",
        provider_id: "vertex_ai-language-models",
        context_window: 1048576,
        max_output_tokens: 65535,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: true,
            extended_thinking: true,
        },
        status: ModelStatus::Deprecated,
    },
    ModelDef {
        id: "gemini-3.1-flash-image-preview",
        provider_id: "vertex_ai-language-models",
        context_window: 65536,
        max_output_tokens: 32768,
        capabilities: ModelCapabilities {
            streaming: false,
            tool_use: false,
            vision: true,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "gemini-3.1-flash-lite",
        provider_id: "vertex_ai-language-models",
        context_window: 1048576,
        max_output_tokens: 65536,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: true,
            extended_thinking: true,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "gemini-3.1-flash-lite-preview",
        provider_id: "vertex_ai-language-models",
        context_window: 1048576,
        max_output_tokens: 65536,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: true,
            extended_thinking: true,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "gemini-3.1-pro-preview",
        provider_id: "vertex_ai-language-models",
        context_window: 1048576,
        max_output_tokens: 65536,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: true,
            extended_thinking: true,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "gemini-3.1-pro-preview-customtools",
        provider_id: "vertex_ai-language-models",
        context_window: 1048576,
        max_output_tokens: 65536,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: true,
            extended_thinking: true,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "gemini-3.5-flash",
        provider_id: "vertex_ai-language-models",
        context_window: 1048576,
        max_output_tokens: 65535,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: true,
            extended_thinking: true,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "gemini-flash-experimental",
        provider_id: "vertex_ai-language-models",
        context_window: 1000000,
        max_output_tokens: 8192,
        capabilities: ModelCapabilities {
            streaming: false,
            tool_use: false,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "gemini-live-2.5-flash-preview-native-audio-09-2025",
        provider_id: "vertex_ai-language-models",
        context_window: 1048576,
        max_output_tokens: 65535,
        capabilities: ModelCapabilities {
            streaming: false,
            tool_use: true,
            vision: true,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "gemini-robotics-er-1.5-preview",
        provider_id: "vertex_ai-language-models",
        context_window: 1048576,
        max_output_tokens: 65535,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: true,
            extended_thinking: true,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "medlm-large",
        provider_id: "vertex_ai-language-models",
        context_window: 8192,
        max_output_tokens: 1024,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "medlm-medium",
        provider_id: "vertex_ai-language-models",
        context_window: 32768,
        max_output_tokens: 8192,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "vertex_ai/deep-research-pro-preview-12-2025",
        provider_id: "vertex_ai-language-models",
        context_window: 65536,
        max_output_tokens: 32768,
        capabilities: ModelCapabilities {
            streaming: false,
            tool_use: false,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "vertex_ai/gemini-2.5-flash-image",
        provider_id: "vertex_ai-language-models",
        context_window: 32768,
        max_output_tokens: 32768,
        capabilities: ModelCapabilities {
            streaming: false,
            tool_use: true,
            vision: true,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "vertex_ai/gemini-3-pro-image-preview",
        provider_id: "vertex_ai-language-models",
        context_window: 65536,
        max_output_tokens: 32768,
        capabilities: ModelCapabilities {
            streaming: false,
            tool_use: false,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "vertex_ai/gemini-3.1-flash-image-preview",
        provider_id: "vertex_ai-language-models",
        context_window: 65536,
        max_output_tokens: 32768,
        capabilities: ModelCapabilities {
            streaming: false,
            tool_use: false,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "vertex_ai/gemini-3.1-flash-lite",
        provider_id: "vertex_ai-language-models",
        context_window: 1048576,
        max_output_tokens: 65536,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: true,
            extended_thinking: true,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "vertex_ai/gemini-3.1-flash-lite-preview",
        provider_id: "vertex_ai-language-models",
        context_window: 1048576,
        max_output_tokens: 65536,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: true,
            extended_thinking: true,
        },
        status: ModelStatus::Available,
    },
];

pub const PROVIDER_VERTEX_AI_LLAMA_MODELS: ProviderDef = ProviderDef {
    id: "vertex_ai-llama_models",
    display_name: "Google Vertex AI",
    default_base_url: "https://us-central1-aiplatform.googleapis.com",
    protocol: ProviderProtocol::VertexAI,
    auth: AuthKind::GoogleApiKey,
    status: ProviderStatus::Implemented,
    env_vars: &[
        "GOOGLE_APPLICATION_CREDENTIALS",
        "VERTEX_PROJECT",
        "VERTEX_LOCATION",
        "GOOGLE_CLOUD_PROJECT",
        "GOOGLE_CLOUD_LOCATION",
        "VERTEX_API_KEY",
        "GOOGLE_ACCESS_TOKEN",
    ],
    litellm_prefix: "vertex_ai-llama_models/",
    capabilities: ProviderCapabilities {
        chat_completions: true,
        streaming: true,
        tool_use: true,
        embeddings: false,
        vision: true,
        batch: true,
    },
};

pub const MODELS_VERTEX_AI_LLAMA_MODELS: &[ModelDef] = &[
    ModelDef {
        id: "vertex_ai/meta/llama-3.1-405b-instruct-maas",
        provider_id: "vertex_ai-llama_models",
        context_window: 128000,
        max_output_tokens: 2048,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: true,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "vertex_ai/meta/llama-3.1-70b-instruct-maas",
        provider_id: "vertex_ai-llama_models",
        context_window: 128000,
        max_output_tokens: 2048,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: true,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "vertex_ai/meta/llama-3.1-8b-instruct-maas",
        provider_id: "vertex_ai-llama_models",
        context_window: 128000,
        max_output_tokens: 2048,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: true,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "vertex_ai/meta/llama-3.2-90b-vision-instruct-maas",
        provider_id: "vertex_ai-llama_models",
        context_window: 128000,
        max_output_tokens: 2048,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: true,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "vertex_ai/meta/llama-4-maverick-17b-128e-instruct-maas",
        provider_id: "vertex_ai-llama_models",
        context_window: 1000000,
        max_output_tokens: 1000000,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "vertex_ai/meta/llama-4-maverick-17b-16e-instruct-maas",
        provider_id: "vertex_ai-llama_models",
        context_window: 1000000,
        max_output_tokens: 1000000,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "vertex_ai/meta/llama-4-scout-17b-128e-instruct-maas",
        provider_id: "vertex_ai-llama_models",
        context_window: 10000000,
        max_output_tokens: 10000000,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "vertex_ai/meta/llama-4-scout-17b-16e-instruct-maas",
        provider_id: "vertex_ai-llama_models",
        context_window: 10000000,
        max_output_tokens: 10000000,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "vertex_ai/meta/llama3-405b-instruct-maas",
        provider_id: "vertex_ai-llama_models",
        context_window: 32000,
        max_output_tokens: 32000,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "vertex_ai/meta/llama3-70b-instruct-maas",
        provider_id: "vertex_ai-llama_models",
        context_window: 32000,
        max_output_tokens: 32000,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "vertex_ai/meta/llama3-8b-instruct-maas",
        provider_id: "vertex_ai-llama_models",
        context_window: 32000,
        max_output_tokens: 32000,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
];

pub const PROVIDER_VERTEX_AI_MINIMAX_MODELS: ProviderDef = ProviderDef {
    id: "vertex_ai-minimax_models",
    display_name: "Google Vertex AI",
    default_base_url: "https://us-central1-aiplatform.googleapis.com",
    protocol: ProviderProtocol::VertexAI,
    auth: AuthKind::GoogleApiKey,
    status: ProviderStatus::Implemented,
    env_vars: &[
        "GOOGLE_APPLICATION_CREDENTIALS",
        "VERTEX_PROJECT",
        "VERTEX_LOCATION",
        "GOOGLE_CLOUD_PROJECT",
        "GOOGLE_CLOUD_LOCATION",
        "VERTEX_API_KEY",
        "GOOGLE_ACCESS_TOKEN",
    ],
    litellm_prefix: "vertex_ai-minimax_models/",
    capabilities: ProviderCapabilities {
        chat_completions: true,
        streaming: true,
        tool_use: true,
        embeddings: false,
        vision: false,
        batch: true,
    },
};

pub const MODELS_VERTEX_AI_MINIMAX_MODELS: &[ModelDef] = &[ModelDef {
    id: "vertex_ai/minimaxai/minimax-m2-maas",
    provider_id: "vertex_ai-minimax_models",
    context_window: 196608,
    max_output_tokens: 196608,
    capabilities: ModelCapabilities {
        streaming: true,
        tool_use: true,
        vision: false,
        extended_thinking: false,
    },
    status: ModelStatus::Available,
}];

pub const PROVIDER_VERTEX_AI_MISTRAL_MODELS: ProviderDef = ProviderDef {
    id: "vertex_ai-mistral_models",
    display_name: "Google Vertex AI",
    default_base_url: "https://us-central1-aiplatform.googleapis.com",
    protocol: ProviderProtocol::VertexAI,
    auth: AuthKind::GoogleApiKey,
    status: ProviderStatus::Implemented,
    env_vars: &[
        "GOOGLE_APPLICATION_CREDENTIALS",
        "VERTEX_PROJECT",
        "VERTEX_LOCATION",
        "GOOGLE_CLOUD_PROJECT",
        "GOOGLE_CLOUD_LOCATION",
        "VERTEX_API_KEY",
        "GOOGLE_ACCESS_TOKEN",
    ],
    litellm_prefix: "vertex_ai-mistral_models/",
    capabilities: ProviderCapabilities {
        chat_completions: true,
        streaming: true,
        tool_use: true,
        embeddings: false,
        vision: true,
        batch: true,
    },
};

pub const MODELS_VERTEX_AI_MISTRAL_MODELS: &[ModelDef] = &[
    ModelDef {
        id: "vertex_ai/codestral-2",
        provider_id: "vertex_ai-mistral_models",
        context_window: 128000,
        max_output_tokens: 128000,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "vertex_ai/codestral-2501",
        provider_id: "vertex_ai-mistral_models",
        context_window: 128000,
        max_output_tokens: 128000,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "vertex_ai/codestral-2@001",
        provider_id: "vertex_ai-mistral_models",
        context_window: 128000,
        max_output_tokens: 128000,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "vertex_ai/codestral@2405",
        provider_id: "vertex_ai-mistral_models",
        context_window: 128000,
        max_output_tokens: 128000,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "vertex_ai/codestral@latest",
        provider_id: "vertex_ai-mistral_models",
        context_window: 128000,
        max_output_tokens: 128000,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "vertex_ai/mistral-large-2411",
        provider_id: "vertex_ai-mistral_models",
        context_window: 128000,
        max_output_tokens: 8191,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "vertex_ai/mistral-large@2407",
        provider_id: "vertex_ai-mistral_models",
        context_window: 128000,
        max_output_tokens: 8191,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "vertex_ai/mistral-large@2411-001",
        provider_id: "vertex_ai-mistral_models",
        context_window: 128000,
        max_output_tokens: 8191,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "vertex_ai/mistral-large@latest",
        provider_id: "vertex_ai-mistral_models",
        context_window: 128000,
        max_output_tokens: 8191,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "vertex_ai/mistral-medium-3",
        provider_id: "vertex_ai-mistral_models",
        context_window: 128000,
        max_output_tokens: 8191,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "vertex_ai/mistral-medium-3@001",
        provider_id: "vertex_ai-mistral_models",
        context_window: 128000,
        max_output_tokens: 8191,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "vertex_ai/mistral-nemo@2407",
        provider_id: "vertex_ai-mistral_models",
        context_window: 128000,
        max_output_tokens: 128000,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "vertex_ai/mistral-nemo@latest",
        provider_id: "vertex_ai-mistral_models",
        context_window: 128000,
        max_output_tokens: 128000,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "vertex_ai/mistral-small-2503",
        provider_id: "vertex_ai-mistral_models",
        context_window: 128000,
        max_output_tokens: 128000,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: true,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "vertex_ai/mistral-small-2503@001",
        provider_id: "vertex_ai-mistral_models",
        context_window: 32000,
        max_output_tokens: 8191,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "vertex_ai/mistralai/codestral-2",
        provider_id: "vertex_ai-mistral_models",
        context_window: 128000,
        max_output_tokens: 128000,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "vertex_ai/mistralai/codestral-2@001",
        provider_id: "vertex_ai-mistral_models",
        context_window: 128000,
        max_output_tokens: 128000,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "vertex_ai/mistralai/mistral-medium-3",
        provider_id: "vertex_ai-mistral_models",
        context_window: 128000,
        max_output_tokens: 8191,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "vertex_ai/mistralai/mistral-medium-3@001",
        provider_id: "vertex_ai-mistral_models",
        context_window: 128000,
        max_output_tokens: 8191,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
];

pub const PROVIDER_VERTEX_AI_MOONSHOT_MODELS: ProviderDef = ProviderDef {
    id: "vertex_ai-moonshot_models",
    display_name: "Google Vertex AI",
    default_base_url: "https://us-central1-aiplatform.googleapis.com",
    protocol: ProviderProtocol::VertexAI,
    auth: AuthKind::GoogleApiKey,
    status: ProviderStatus::Implemented,
    env_vars: &[
        "GOOGLE_APPLICATION_CREDENTIALS",
        "VERTEX_PROJECT",
        "VERTEX_LOCATION",
        "GOOGLE_CLOUD_PROJECT",
        "GOOGLE_CLOUD_LOCATION",
        "VERTEX_API_KEY",
        "GOOGLE_ACCESS_TOKEN",
    ],
    litellm_prefix: "vertex_ai-moonshot_models/",
    capabilities: ProviderCapabilities {
        chat_completions: true,
        streaming: true,
        tool_use: true,
        embeddings: false,
        vision: false,
        batch: true,
    },
};

pub const MODELS_VERTEX_AI_MOONSHOT_MODELS: &[ModelDef] = &[ModelDef {
    id: "vertex_ai/moonshotai/kimi-k2-thinking-maas",
    provider_id: "vertex_ai-moonshot_models",
    context_window: 256000,
    max_output_tokens: 256000,
    capabilities: ModelCapabilities {
        streaming: true,
        tool_use: true,
        vision: false,
        extended_thinking: false,
    },
    status: ModelStatus::Available,
}];

pub const PROVIDER_VERTEX_AI_OPENAI_MODELS: ProviderDef = ProviderDef {
    id: "vertex_ai-openai_models",
    display_name: "Google Vertex AI",
    default_base_url: "https://us-central1-aiplatform.googleapis.com",
    protocol: ProviderProtocol::VertexAI,
    auth: AuthKind::GoogleApiKey,
    status: ProviderStatus::Implemented,
    env_vars: &[
        "GOOGLE_APPLICATION_CREDENTIALS",
        "VERTEX_PROJECT",
        "VERTEX_LOCATION",
        "GOOGLE_CLOUD_PROJECT",
        "GOOGLE_CLOUD_LOCATION",
        "VERTEX_API_KEY",
        "GOOGLE_ACCESS_TOKEN",
    ],
    litellm_prefix: "vertex_ai-openai_models/",
    capabilities: ProviderCapabilities {
        chat_completions: true,
        streaming: true,
        tool_use: false,
        embeddings: false,
        vision: false,
        batch: true,
    },
};

pub const MODELS_VERTEX_AI_OPENAI_MODELS: &[ModelDef] = &[
    ModelDef {
        id: "vertex_ai/openai/gpt-oss-120b-maas",
        provider_id: "vertex_ai-openai_models",
        context_window: 131072,
        max_output_tokens: 32768,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: false,
            vision: false,
            extended_thinking: true,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "vertex_ai/openai/gpt-oss-20b-maas",
        provider_id: "vertex_ai-openai_models",
        context_window: 131072,
        max_output_tokens: 32768,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: false,
            vision: false,
            extended_thinking: true,
        },
        status: ModelStatus::Available,
    },
];

pub const PROVIDER_VERTEX_AI_QWEN_MODELS: ProviderDef = ProviderDef {
    id: "vertex_ai-qwen_models",
    display_name: "Google Vertex AI",
    default_base_url: "https://us-central1-aiplatform.googleapis.com",
    protocol: ProviderProtocol::VertexAI,
    auth: AuthKind::GoogleApiKey,
    status: ProviderStatus::Implemented,
    env_vars: &[
        "GOOGLE_APPLICATION_CREDENTIALS",
        "VERTEX_PROJECT",
        "VERTEX_LOCATION",
        "GOOGLE_CLOUD_PROJECT",
        "GOOGLE_CLOUD_LOCATION",
        "VERTEX_API_KEY",
        "GOOGLE_ACCESS_TOKEN",
    ],
    litellm_prefix: "vertex_ai-qwen_models/",
    capabilities: ProviderCapabilities {
        chat_completions: true,
        streaming: true,
        tool_use: true,
        embeddings: false,
        vision: false,
        batch: true,
    },
};

pub const MODELS_VERTEX_AI_QWEN_MODELS: &[ModelDef] = &[
    ModelDef {
        id: "vertex_ai/qwen/qwen3-235b-a22b-instruct-2507-maas",
        provider_id: "vertex_ai-qwen_models",
        context_window: 262144,
        max_output_tokens: 16384,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "vertex_ai/qwen/qwen3-coder-480b-a35b-instruct-maas",
        provider_id: "vertex_ai-qwen_models",
        context_window: 262144,
        max_output_tokens: 32768,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "vertex_ai/qwen/qwen3-next-80b-a3b-instruct-maas",
        provider_id: "vertex_ai-qwen_models",
        context_window: 262144,
        max_output_tokens: 262144,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "vertex_ai/qwen/qwen3-next-80b-a3b-thinking-maas",
        provider_id: "vertex_ai-qwen_models",
        context_window: 262144,
        max_output_tokens: 262144,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
];

pub const PROVIDER_VERTEX_AI_TEXT_MODELS: ProviderDef = ProviderDef {
    id: "vertex_ai-text-models",
    display_name: "Google Vertex AI",
    default_base_url: "https://us-central1-aiplatform.googleapis.com",
    protocol: ProviderProtocol::VertexAI,
    auth: AuthKind::GoogleApiKey,
    status: ProviderStatus::Implemented,
    env_vars: &[
        "GOOGLE_APPLICATION_CREDENTIALS",
        "VERTEX_PROJECT",
        "VERTEX_LOCATION",
        "GOOGLE_CLOUD_PROJECT",
        "GOOGLE_CLOUD_LOCATION",
        "VERTEX_API_KEY",
        "GOOGLE_ACCESS_TOKEN",
    ],
    litellm_prefix: "vertex_ai-text-models/",
    capabilities: ProviderCapabilities {
        chat_completions: false,
        streaming: true,
        tool_use: false,
        embeddings: false,
        vision: false,
        batch: true,
    },
};

pub const MODELS_VERTEX_AI_TEXT_MODELS: &[ModelDef] = &[
    ModelDef {
        id: "text-unicorn",
        provider_id: "vertex_ai-text-models",
        context_window: 8192,
        max_output_tokens: 1024,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: false,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "text-unicorn@001",
        provider_id: "vertex_ai-text-models",
        context_window: 8192,
        max_output_tokens: 1024,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: false,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
];

pub const PROVIDER_VERTEX_AI_VIDEO_MODELS: ProviderDef = ProviderDef {
    id: "vertex_ai-video-models",
    display_name: "Google Vertex AI",
    default_base_url: "https://us-central1-aiplatform.googleapis.com",
    protocol: ProviderProtocol::VertexAI,
    auth: AuthKind::GoogleApiKey,
    status: ProviderStatus::Implemented,
    env_vars: &[
        "GOOGLE_APPLICATION_CREDENTIALS",
        "VERTEX_PROJECT",
        "VERTEX_LOCATION",
        "GOOGLE_CLOUD_PROJECT",
        "GOOGLE_CLOUD_LOCATION",
        "VERTEX_API_KEY",
        "GOOGLE_ACCESS_TOKEN",
    ],
    litellm_prefix: "vertex_ai-video-models/",
    capabilities: ProviderCapabilities {
        chat_completions: false,
        streaming: false,
        tool_use: false,
        embeddings: false,
        vision: false,
        batch: true,
    },
};

pub const MODELS_VERTEX_AI_VIDEO_MODELS: &[ModelDef] = &[
    ModelDef {
        id: "vertex_ai/veo-2.0-generate-001",
        provider_id: "vertex_ai-video-models",
        context_window: 1024,
        max_output_tokens: 0,
        capabilities: ModelCapabilities {
            streaming: false,
            tool_use: false,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "vertex_ai/veo-3.0-fast-generate-001",
        provider_id: "vertex_ai-video-models",
        context_window: 1024,
        max_output_tokens: 0,
        capabilities: ModelCapabilities {
            streaming: false,
            tool_use: false,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "vertex_ai/veo-3.0-generate-001",
        provider_id: "vertex_ai-video-models",
        context_window: 1024,
        max_output_tokens: 0,
        capabilities: ModelCapabilities {
            streaming: false,
            tool_use: false,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "vertex_ai/veo-3.1-fast-generate-001",
        provider_id: "vertex_ai-video-models",
        context_window: 1024,
        max_output_tokens: 0,
        capabilities: ModelCapabilities {
            streaming: false,
            tool_use: false,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "vertex_ai/veo-3.1-fast-generate-preview",
        provider_id: "vertex_ai-video-models",
        context_window: 1024,
        max_output_tokens: 0,
        capabilities: ModelCapabilities {
            streaming: false,
            tool_use: false,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "vertex_ai/veo-3.1-generate-001",
        provider_id: "vertex_ai-video-models",
        context_window: 1024,
        max_output_tokens: 0,
        capabilities: ModelCapabilities {
            streaming: false,
            tool_use: false,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "vertex_ai/veo-3.1-generate-preview",
        provider_id: "vertex_ai-video-models",
        context_window: 1024,
        max_output_tokens: 0,
        capabilities: ModelCapabilities {
            streaming: false,
            tool_use: false,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
];

pub const PROVIDER_VERTEX_AI_ZAI_MODELS: ProviderDef = ProviderDef {
    id: "vertex_ai-zai_models",
    display_name: "Google Vertex AI",
    default_base_url: "https://us-central1-aiplatform.googleapis.com",
    protocol: ProviderProtocol::VertexAI,
    auth: AuthKind::GoogleApiKey,
    status: ProviderStatus::Implemented,
    env_vars: &[
        "GOOGLE_APPLICATION_CREDENTIALS",
        "VERTEX_PROJECT",
        "VERTEX_LOCATION",
        "GOOGLE_CLOUD_PROJECT",
        "GOOGLE_CLOUD_LOCATION",
        "VERTEX_API_KEY",
        "GOOGLE_ACCESS_TOKEN",
    ],
    litellm_prefix: "vertex_ai-zai_models/",
    capabilities: ProviderCapabilities {
        chat_completions: true,
        streaming: true,
        tool_use: true,
        embeddings: false,
        vision: false,
        batch: true,
    },
};

pub const MODELS_VERTEX_AI_ZAI_MODELS: &[ModelDef] = &[
    ModelDef {
        id: "vertex_ai/zai-org/glm-4.7-maas",
        provider_id: "vertex_ai-zai_models",
        context_window: 200000,
        max_output_tokens: 128000,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: false,
            extended_thinking: true,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "vertex_ai/zai-org/glm-5-maas",
        provider_id: "vertex_ai-zai_models",
        context_window: 200000,
        max_output_tokens: 128000,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: false,
            extended_thinking: true,
        },
        status: ModelStatus::Available,
    },
];

pub const PROVIDER_VOLCENGINE: ProviderDef = ProviderDef {
    id: "volcengine",
    display_name: "Volcano Engine",
    default_base_url: "https://ark.cn-beijing.volces.com/api/v3",
    protocol: ProviderProtocol::OpenAICompat,
    auth: AuthKind::Bearer,
    status: ProviderStatus::Stub,
    env_vars: &["ARK_API_KEY", "VOLCENGINE_API_KEY"],
    litellm_prefix: "volcengine/",
    capabilities: ProviderCapabilities {
        chat_completions: true,
        streaming: true,
        tool_use: true,
        embeddings: true,
        vision: true,
        batch: false,
    },
};

pub const MODELS_VOLCENGINE: &[ModelDef] = &[
    ModelDef {
        id: "deepseek-v3-2-251201",
        provider_id: "volcengine",
        context_window: 98304,
        max_output_tokens: 32768,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: false,
            extended_thinking: true,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "doubao-embedding",
        provider_id: "volcengine",
        context_window: 4096,
        max_output_tokens: 0,
        capabilities: ModelCapabilities {
            streaming: false,
            tool_use: false,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "doubao-embedding-large",
        provider_id: "volcengine",
        context_window: 4096,
        max_output_tokens: 0,
        capabilities: ModelCapabilities {
            streaming: false,
            tool_use: false,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "doubao-embedding-large-text-240915",
        provider_id: "volcengine",
        context_window: 4096,
        max_output_tokens: 0,
        capabilities: ModelCapabilities {
            streaming: false,
            tool_use: false,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "doubao-embedding-large-text-250515",
        provider_id: "volcengine",
        context_window: 4096,
        max_output_tokens: 0,
        capabilities: ModelCapabilities {
            streaming: false,
            tool_use: false,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "doubao-embedding-text-240715",
        provider_id: "volcengine",
        context_window: 4096,
        max_output_tokens: 0,
        capabilities: ModelCapabilities {
            streaming: false,
            tool_use: false,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "doubao-seed-2-0-code-preview-260215",
        provider_id: "volcengine",
        context_window: 256000,
        max_output_tokens: 128000,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: true,
            extended_thinking: true,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "doubao-seed-2-0-lite-260215",
        provider_id: "volcengine",
        context_window: 256000,
        max_output_tokens: 128000,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: true,
            extended_thinking: true,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "doubao-seed-2-0-mini-260215",
        provider_id: "volcengine",
        context_window: 256000,
        max_output_tokens: 128000,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: true,
            extended_thinking: true,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "doubao-seed-2-0-pro-260215",
        provider_id: "volcengine",
        context_window: 256000,
        max_output_tokens: 128000,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: true,
            extended_thinking: true,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "glm-4-7-251222",
        provider_id: "volcengine",
        context_window: 204800,
        max_output_tokens: 131072,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: false,
            extended_thinking: true,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "kimi-k2-thinking-251104",
        provider_id: "volcengine",
        context_window: 229376,
        max_output_tokens: 32768,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: false,
            extended_thinking: true,
        },
        status: ModelStatus::Available,
    },
];

pub const PROVIDER_VOYAGE: ProviderDef = ProviderDef {
    id: "voyage",
    display_name: "Voyage AI",
    default_base_url: "https://api.voyageai.com/v1",
    protocol: ProviderProtocol::OpenAICompat,
    auth: AuthKind::Bearer,
    status: ProviderStatus::Stub,
    env_vars: &["VOYAGE_API_KEY"],
    litellm_prefix: "voyage/",
    capabilities: ProviderCapabilities {
        chat_completions: false,
        streaming: false,
        tool_use: false,
        embeddings: true,
        vision: false,
        batch: false,
    },
};

pub const MODELS_VOYAGE: &[ModelDef] = &[
    ModelDef {
        id: "rerank-2",
        provider_id: "voyage",
        context_window: 16000,
        max_output_tokens: 16000,
        capabilities: ModelCapabilities {
            streaming: false,
            tool_use: false,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "rerank-2-lite",
        provider_id: "voyage",
        context_window: 8000,
        max_output_tokens: 8000,
        capabilities: ModelCapabilities {
            streaming: false,
            tool_use: false,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "rerank-2.5",
        provider_id: "voyage",
        context_window: 32000,
        max_output_tokens: 32000,
        capabilities: ModelCapabilities {
            streaming: false,
            tool_use: false,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "rerank-2.5-lite",
        provider_id: "voyage",
        context_window: 32000,
        max_output_tokens: 32000,
        capabilities: ModelCapabilities {
            streaming: false,
            tool_use: false,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "voyage-2",
        provider_id: "voyage",
        context_window: 4000,
        max_output_tokens: 0,
        capabilities: ModelCapabilities {
            streaming: false,
            tool_use: false,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "voyage-3",
        provider_id: "voyage",
        context_window: 32000,
        max_output_tokens: 0,
        capabilities: ModelCapabilities {
            streaming: false,
            tool_use: false,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "voyage-3-large",
        provider_id: "voyage",
        context_window: 32000,
        max_output_tokens: 0,
        capabilities: ModelCapabilities {
            streaming: false,
            tool_use: false,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "voyage-3-lite",
        provider_id: "voyage",
        context_window: 32000,
        max_output_tokens: 0,
        capabilities: ModelCapabilities {
            streaming: false,
            tool_use: false,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "voyage-3.5",
        provider_id: "voyage",
        context_window: 32000,
        max_output_tokens: 0,
        capabilities: ModelCapabilities {
            streaming: false,
            tool_use: false,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "voyage-3.5-lite",
        provider_id: "voyage",
        context_window: 32000,
        max_output_tokens: 0,
        capabilities: ModelCapabilities {
            streaming: false,
            tool_use: false,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "voyage-code-2",
        provider_id: "voyage",
        context_window: 16000,
        max_output_tokens: 0,
        capabilities: ModelCapabilities {
            streaming: false,
            tool_use: false,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "voyage-code-3",
        provider_id: "voyage",
        context_window: 32000,
        max_output_tokens: 0,
        capabilities: ModelCapabilities {
            streaming: false,
            tool_use: false,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "voyage-context-3",
        provider_id: "voyage",
        context_window: 120000,
        max_output_tokens: 0,
        capabilities: ModelCapabilities {
            streaming: false,
            tool_use: false,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "voyage-finance-2",
        provider_id: "voyage",
        context_window: 32000,
        max_output_tokens: 0,
        capabilities: ModelCapabilities {
            streaming: false,
            tool_use: false,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "voyage-large-2",
        provider_id: "voyage",
        context_window: 16000,
        max_output_tokens: 0,
        capabilities: ModelCapabilities {
            streaming: false,
            tool_use: false,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "voyage-law-2",
        provider_id: "voyage",
        context_window: 16000,
        max_output_tokens: 0,
        capabilities: ModelCapabilities {
            streaming: false,
            tool_use: false,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "voyage-lite-01",
        provider_id: "voyage",
        context_window: 4096,
        max_output_tokens: 0,
        capabilities: ModelCapabilities {
            streaming: false,
            tool_use: false,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "voyage-lite-02-instruct",
        provider_id: "voyage",
        context_window: 4000,
        max_output_tokens: 0,
        capabilities: ModelCapabilities {
            streaming: false,
            tool_use: false,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "voyage-multimodal-3",
        provider_id: "voyage",
        context_window: 32000,
        max_output_tokens: 0,
        capabilities: ModelCapabilities {
            streaming: false,
            tool_use: false,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
];

pub const PROVIDER_WANDB: ProviderDef = ProviderDef {
    id: "wandb",
    display_name: "Weights & Biases Inference",
    default_base_url: "https://api.inference.wandb.ai/v1",
    protocol: ProviderProtocol::OpenAICompat,
    auth: AuthKind::Bearer,
    status: ProviderStatus::Stub,
    env_vars: &["WANDB_API_KEY"],
    litellm_prefix: "wandb/",
    capabilities: ProviderCapabilities {
        chat_completions: true,
        streaming: true,
        tool_use: true,
        embeddings: false,
        vision: true,
        batch: false,
    },
};

pub const MODELS_WANDB: &[ModelDef] = &[
    ModelDef {
        id: "MiniMaxAI/MiniMax-M2.5",
        provider_id: "wandb",
        context_window: 197000,
        max_output_tokens: 197000,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: false,
            extended_thinking: true,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "Qwen/Qwen3-235B-A22B-Instruct-2507",
        provider_id: "wandb",
        context_window: 262144,
        max_output_tokens: 262144,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: false,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "Qwen/Qwen3-235B-A22B-Thinking-2507",
        provider_id: "wandb",
        context_window: 262144,
        max_output_tokens: 262144,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: false,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "Qwen/Qwen3-Coder-480B-A35B-Instruct",
        provider_id: "wandb",
        context_window: 262144,
        max_output_tokens: 262144,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: false,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "deepseek-ai/DeepSeek-R1-0528",
        provider_id: "wandb",
        context_window: 161000,
        max_output_tokens: 161000,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: false,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "deepseek-ai/DeepSeek-V3-0324",
        provider_id: "wandb",
        context_window: 161000,
        max_output_tokens: 161000,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: false,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "deepseek-ai/DeepSeek-V3.1",
        provider_id: "wandb",
        context_window: 128000,
        max_output_tokens: 128000,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: false,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "meta-llama/Llama-3.1-8B-Instruct",
        provider_id: "wandb",
        context_window: 128000,
        max_output_tokens: 128000,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: false,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "meta-llama/Llama-3.3-70B-Instruct",
        provider_id: "wandb",
        context_window: 128000,
        max_output_tokens: 128000,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: false,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "meta-llama/Llama-4-Scout-17B-16E-Instruct",
        provider_id: "wandb",
        context_window: 64000,
        max_output_tokens: 64000,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: false,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "microsoft/Phi-4-mini-instruct",
        provider_id: "wandb",
        context_window: 128000,
        max_output_tokens: 128000,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: false,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "moonshotai/Kimi-K2-Instruct",
        provider_id: "wandb",
        context_window: 128000,
        max_output_tokens: 128000,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: false,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "moonshotai/Kimi-K2.5",
        provider_id: "wandb",
        context_window: 262144,
        max_output_tokens: 262144,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: true,
            extended_thinking: true,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "openai/gpt-oss-120b",
        provider_id: "wandb",
        context_window: 131072,
        max_output_tokens: 131072,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: false,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "openai/gpt-oss-20b",
        provider_id: "wandb",
        context_window: 131072,
        max_output_tokens: 131072,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: false,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "zai-org/GLM-4.5",
        provider_id: "wandb",
        context_window: 131072,
        max_output_tokens: 131072,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: false,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
];

pub const PROVIDER_WATSONX: ProviderDef = ProviderDef {
    id: "watsonx",
    display_name: "IBM watsonx.ai",
    default_base_url: "https://us-south.ml.cloud.ibm.com",
    protocol: ProviderProtocol::OpenAICompat,
    auth: AuthKind::Bearer,
    status: ProviderStatus::Stub,
    env_vars: &[
        "WATSONX_API_KEY",
        "WATSONX_APIKEY",
        "WATSONX_PROJECT_ID",
        "WATSONX_URL",
        "WATSONX_REGION",
        "WATSONX_SPACE_ID",
        "WATSONX_TOKEN",
    ],
    litellm_prefix: "watsonx/",
    capabilities: ProviderCapabilities {
        chat_completions: true,
        streaming: true,
        tool_use: true,
        embeddings: false,
        vision: true,
        batch: false,
    },
};

pub const MODELS_WATSONX: &[ModelDef] = &[
    ModelDef {
        id: "bigscience/mt0-xxl-13b",
        provider_id: "watsonx",
        context_window: 8192,
        max_output_tokens: 8192,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: false,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "core42/jais-13b-chat",
        provider_id: "watsonx",
        context_window: 8192,
        max_output_tokens: 8192,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: false,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "google/flan-t5-xl-3b",
        provider_id: "watsonx",
        context_window: 8192,
        max_output_tokens: 8192,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: false,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "ibm/granite-13b-chat-v2",
        provider_id: "watsonx",
        context_window: 8192,
        max_output_tokens: 8192,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: false,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "ibm/granite-13b-instruct-v2",
        provider_id: "watsonx",
        context_window: 8192,
        max_output_tokens: 8192,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: false,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "ibm/granite-3-3-8b-instruct",
        provider_id: "watsonx",
        context_window: 8192,
        max_output_tokens: 8192,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "ibm/granite-3-8b-instruct",
        provider_id: "watsonx",
        context_window: 8192,
        max_output_tokens: 1024,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "ibm/granite-4-h-small",
        provider_id: "watsonx",
        context_window: 20480,
        max_output_tokens: 20480,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "ibm/granite-guardian-3-2-2b",
        provider_id: "watsonx",
        context_window: 8192,
        max_output_tokens: 8192,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: false,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "ibm/granite-guardian-3-3-8b",
        provider_id: "watsonx",
        context_window: 8192,
        max_output_tokens: 8192,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: false,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "ibm/granite-ttm-1024-96-r2",
        provider_id: "watsonx",
        context_window: 512,
        max_output_tokens: 512,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: false,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "ibm/granite-ttm-1536-96-r2",
        provider_id: "watsonx",
        context_window: 512,
        max_output_tokens: 512,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: false,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "ibm/granite-ttm-512-96-r2",
        provider_id: "watsonx",
        context_window: 512,
        max_output_tokens: 512,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: false,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "ibm/granite-vision-3-2-2b",
        provider_id: "watsonx",
        context_window: 8192,
        max_output_tokens: 8192,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: false,
            vision: true,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "meta-llama/llama-3-2-11b-vision-instruct",
        provider_id: "watsonx",
        context_window: 128000,
        max_output_tokens: 128000,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: true,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "meta-llama/llama-3-2-1b-instruct",
        provider_id: "watsonx",
        context_window: 128000,
        max_output_tokens: 128000,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "meta-llama/llama-3-2-3b-instruct",
        provider_id: "watsonx",
        context_window: 128000,
        max_output_tokens: 128000,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "meta-llama/llama-3-2-90b-vision-instruct",
        provider_id: "watsonx",
        context_window: 128000,
        max_output_tokens: 128000,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: true,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "meta-llama/llama-3-3-70b-instruct",
        provider_id: "watsonx",
        context_window: 128000,
        max_output_tokens: 128000,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "meta-llama/llama-4-maverick-17b",
        provider_id: "watsonx",
        context_window: 128000,
        max_output_tokens: 128000,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "meta-llama/llama-guard-3-11b-vision",
        provider_id: "watsonx",
        context_window: 128000,
        max_output_tokens: 128000,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: false,
            vision: true,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "mistralai/mistral-large",
        provider_id: "watsonx",
        context_window: 131072,
        max_output_tokens: 16384,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "mistralai/mistral-medium-2505",
        provider_id: "watsonx",
        context_window: 128000,
        max_output_tokens: 128000,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "mistralai/mistral-small-2503",
        provider_id: "watsonx",
        context_window: 32000,
        max_output_tokens: 32000,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "mistralai/mistral-small-3-1-24b-instruct-2503",
        provider_id: "watsonx",
        context_window: 32000,
        max_output_tokens: 32000,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "mistralai/pixtral-12b-2409",
        provider_id: "watsonx",
        context_window: 128000,
        max_output_tokens: 128000,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: false,
            vision: true,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "openai/gpt-oss-120b",
        provider_id: "watsonx",
        context_window: 8192,
        max_output_tokens: 8192,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: false,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "sdaia/allam-1-13b-instruct",
        provider_id: "watsonx",
        context_window: 8192,
        max_output_tokens: 8192,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: false,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "whisper-large-v3-turbo",
        provider_id: "watsonx",
        context_window: 0,
        max_output_tokens: 0,
        capabilities: ModelCapabilities {
            streaming: false,
            tool_use: false,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
];

pub const PROVIDER_XAI: ProviderDef = ProviderDef {
    id: "xai",
    display_name: "xAI",
    default_base_url: "https://api.x.ai/v1",
    protocol: ProviderProtocol::OpenAICompat,
    auth: AuthKind::Bearer,
    status: ProviderStatus::Stub,
    env_vars: &["XAI_API_KEY"],
    litellm_prefix: "xai/",
    capabilities: ProviderCapabilities {
        chat_completions: true,
        streaming: true,
        tool_use: true,
        embeddings: false,
        vision: true,
        batch: false,
    },
};

pub const MODELS_XAI: &[ModelDef] = &[
    ModelDef {
        id: "grok-2",
        provider_id: "xai",
        context_window: 131072,
        max_output_tokens: 131072,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "grok-2-1212",
        provider_id: "xai",
        context_window: 131072,
        max_output_tokens: 131072,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "grok-2-latest",
        provider_id: "xai",
        context_window: 131072,
        max_output_tokens: 131072,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "grok-2-vision",
        provider_id: "xai",
        context_window: 32768,
        max_output_tokens: 32768,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: true,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "grok-2-vision-1212",
        provider_id: "xai",
        context_window: 32768,
        max_output_tokens: 32768,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: true,
            extended_thinking: false,
        },
        status: ModelStatus::Deprecated,
    },
    ModelDef {
        id: "grok-2-vision-latest",
        provider_id: "xai",
        context_window: 32768,
        max_output_tokens: 32768,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: true,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "grok-3",
        provider_id: "xai",
        context_window: 131072,
        max_output_tokens: 131072,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "grok-3-beta",
        provider_id: "xai",
        context_window: 131072,
        max_output_tokens: 131072,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "grok-3-fast-beta",
        provider_id: "xai",
        context_window: 131072,
        max_output_tokens: 131072,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "grok-3-fast-latest",
        provider_id: "xai",
        context_window: 131072,
        max_output_tokens: 131072,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "grok-3-latest",
        provider_id: "xai",
        context_window: 131072,
        max_output_tokens: 131072,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "grok-3-mini",
        provider_id: "xai",
        context_window: 131072,
        max_output_tokens: 131072,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: false,
            extended_thinking: true,
        },
        status: ModelStatus::Deprecated,
    },
    ModelDef {
        id: "grok-3-mini-beta",
        provider_id: "xai",
        context_window: 131072,
        max_output_tokens: 131072,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: false,
            extended_thinking: true,
        },
        status: ModelStatus::Deprecated,
    },
    ModelDef {
        id: "grok-3-mini-fast",
        provider_id: "xai",
        context_window: 131072,
        max_output_tokens: 131072,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: false,
            extended_thinking: true,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "grok-3-mini-fast-beta",
        provider_id: "xai",
        context_window: 131072,
        max_output_tokens: 131072,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: false,
            extended_thinking: true,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "grok-3-mini-fast-latest",
        provider_id: "xai",
        context_window: 131072,
        max_output_tokens: 131072,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: false,
            extended_thinking: true,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "grok-3-mini-latest",
        provider_id: "xai",
        context_window: 131072,
        max_output_tokens: 131072,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: false,
            extended_thinking: true,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "grok-4",
        provider_id: "xai",
        context_window: 256000,
        max_output_tokens: 256000,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "grok-4-0709",
        provider_id: "xai",
        context_window: 256000,
        max_output_tokens: 256000,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "grok-4-1-fast",
        provider_id: "xai",
        context_window: 2000000,
        max_output_tokens: 2000000,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: true,
            extended_thinking: true,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "grok-4-1-fast-non-reasoning",
        provider_id: "xai",
        context_window: 2000000,
        max_output_tokens: 2000000,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: true,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "grok-4-1-fast-non-reasoning-latest",
        provider_id: "xai",
        context_window: 2000000,
        max_output_tokens: 2000000,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: true,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "grok-4-1-fast-reasoning",
        provider_id: "xai",
        context_window: 2000000,
        max_output_tokens: 2000000,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: true,
            extended_thinking: true,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "grok-4-1-fast-reasoning-latest",
        provider_id: "xai",
        context_window: 2000000,
        max_output_tokens: 2000000,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: true,
            extended_thinking: true,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "grok-4-fast-non-reasoning",
        provider_id: "xai",
        context_window: 2000000,
        max_output_tokens: 2000000,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "grok-4-fast-reasoning",
        provider_id: "xai",
        context_window: 2000000,
        max_output_tokens: 2000000,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "grok-4-latest",
        provider_id: "xai",
        context_window: 256000,
        max_output_tokens: 256000,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "grok-4.20-0309-reasoning",
        provider_id: "xai",
        context_window: 2000000,
        max_output_tokens: 2000000,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: true,
            extended_thinking: true,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "grok-4.20-beta-0309-non-reasoning",
        provider_id: "xai",
        context_window: 2000000,
        max_output_tokens: 2000000,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: true,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "grok-4.20-beta-0309-reasoning",
        provider_id: "xai",
        context_window: 2000000,
        max_output_tokens: 2000000,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: true,
            extended_thinking: true,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "grok-4.20-multi-agent-beta-0309",
        provider_id: "xai",
        context_window: 2000000,
        max_output_tokens: 2000000,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: true,
            extended_thinking: true,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "grok-4.3",
        provider_id: "xai",
        context_window: 1000000,
        max_output_tokens: 1000000,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: true,
            extended_thinking: true,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "grok-4.3-latest",
        provider_id: "xai",
        context_window: 1000000,
        max_output_tokens: 1000000,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: true,
            extended_thinking: true,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "grok-beta",
        provider_id: "xai",
        context_window: 131072,
        max_output_tokens: 131072,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: true,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "grok-code-fast",
        provider_id: "xai",
        context_window: 256000,
        max_output_tokens: 256000,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: false,
            extended_thinking: true,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "grok-code-fast-1",
        provider_id: "xai",
        context_window: 256000,
        max_output_tokens: 256000,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: false,
            extended_thinking: true,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "grok-code-fast-1-0825",
        provider_id: "xai",
        context_window: 256000,
        max_output_tokens: 256000,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: false,
            extended_thinking: true,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "grok-vision-beta",
        provider_id: "xai",
        context_window: 8192,
        max_output_tokens: 8192,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: true,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
];

pub const PROVIDER_ZAI: ProviderDef = ProviderDef {
    id: "zai",
    display_name: "Zhipu AI (Z.AI)",
    default_base_url: "https://api.z.ai/api/paas/v4",
    protocol: ProviderProtocol::OpenAICompat,
    auth: AuthKind::Bearer,
    status: ProviderStatus::Stub,
    env_vars: &["ZHIPUAI_API_KEY", "ZAI_API_KEY"],
    litellm_prefix: "zai/",
    capabilities: ProviderCapabilities {
        chat_completions: true,
        streaming: true,
        tool_use: true,
        embeddings: false,
        vision: true,
        batch: false,
    },
};

pub const MODELS_ZAI: &[ModelDef] = &[
    ModelDef {
        id: "glm-4-32b-0414-128k",
        provider_id: "zai",
        context_window: 128000,
        max_output_tokens: 32000,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "glm-4.5",
        provider_id: "zai",
        context_window: 128000,
        max_output_tokens: 32000,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "glm-4.5-air",
        provider_id: "zai",
        context_window: 128000,
        max_output_tokens: 32000,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "glm-4.5-airx",
        provider_id: "zai",
        context_window: 128000,
        max_output_tokens: 32000,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "glm-4.5-flash",
        provider_id: "zai",
        context_window: 128000,
        max_output_tokens: 32000,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "glm-4.5-x",
        provider_id: "zai",
        context_window: 128000,
        max_output_tokens: 32000,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: false,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "glm-4.5v",
        provider_id: "zai",
        context_window: 128000,
        max_output_tokens: 32000,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: true,
            extended_thinking: false,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "glm-4.6",
        provider_id: "zai",
        context_window: 200000,
        max_output_tokens: 128000,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: false,
            extended_thinking: true,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "glm-4.7",
        provider_id: "zai",
        context_window: 200000,
        max_output_tokens: 128000,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: false,
            extended_thinking: true,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "glm-5",
        provider_id: "zai",
        context_window: 200000,
        max_output_tokens: 128000,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: false,
            extended_thinking: true,
        },
        status: ModelStatus::Available,
    },
    ModelDef {
        id: "glm-5-code",
        provider_id: "zai",
        context_window: 200000,
        max_output_tokens: 128000,
        capabilities: ModelCapabilities {
            streaming: true,
            tool_use: true,
            vision: false,
            extended_thinking: true,
        },
        status: ModelStatus::Available,
    },
];

pub static ALL_PROVIDERS: &[&ProviderDef] = &[
    &PROVIDER_AI21,
    &PROVIDER_AIML,
    &PROVIDER_AMAZON_NOVA,
    &PROVIDER_ANTHROPIC,
    &PROVIDER_ANYSCALE,
    &PROVIDER_ASSEMBLYAI,
    &PROVIDER_AWS_POLLY,
    &PROVIDER_AZURE,
    &PROVIDER_AZURE_AI,
    &PROVIDER_AZURE_TEXT,
    &PROVIDER_BASETEN,
    &PROVIDER_BEDROCK,
    &PROVIDER_BEDROCK_CONVERSE,
    &PROVIDER_BEDROCK_MANTLE,
    &PROVIDER_BLACK_FOREST_LABS,
    &PROVIDER_CEREBRAS,
    &PROVIDER_CHATGPT,
    &PROVIDER_CLOUDFLARE,
    &PROVIDER_CODESTRAL,
    &PROVIDER_COHERE,
    &PROVIDER_COHERE_CHAT,
    &PROVIDER_CRUSOE,
    &PROVIDER_DASHSCOPE,
    &PROVIDER_DATABRICKS,
    &PROVIDER_DATAFORSEO,
    &PROVIDER_DEEPGRAM,
    &PROVIDER_DEEPINFRA,
    &PROVIDER_DEEPSEEK,
    &PROVIDER_DUCKDUCKGO,
    &PROVIDER_ELEVENLABS,
    &PROVIDER_EXA_AI,
    &PROVIDER_FAL_AI,
    &PROVIDER_FEATHERLESS_AI,
    &PROVIDER_FIRECRAWL,
    &PROVIDER_FIREWORKS_AI,
    &PROVIDER_FIREWORKS_AI_EMBEDDING_MODELS,
    &PROVIDER_FRIENDLIAI,
    &PROVIDER_GEMINI,
    &PROVIDER_GIGACHAT,
    &PROVIDER_GITHUB_COPILOT,
    &PROVIDER_GMI,
    &PROVIDER_GOOGLE_PSE,
    &PROVIDER_GRADIENT_AI,
    &PROVIDER_GROQ,
    &PROVIDER_HEROKU,
    &PROVIDER_HYPERBOLIC,
    &PROVIDER_JINA_AI,
    &PROVIDER_LAMBDA_AI,
    &PROVIDER_LEMONADE,
    &PROVIDER_LINKUP,
    &PROVIDER_LLAMAGATE,
    &PROVIDER_META_LLAMA,
    &PROVIDER_MINIMAX,
    &PROVIDER_MISTRAL,
    &PROVIDER_MOONSHOT,
    &PROVIDER_MORPH,
    &PROVIDER_NEBIUS,
    &PROVIDER_NLP_CLOUD,
    &PROVIDER_NOVITA,
    &PROVIDER_NSCALE,
    &PROVIDER_NVIDIA_NIM,
    &PROVIDER_OCI,
    &PROVIDER_OLLAMA,
    &PROVIDER_OPENAI,
    &PROVIDER_OPENROUTER,
    &PROVIDER_OVHCLOUD,
    &PROVIDER_PALM,
    &PROVIDER_PARALLEL_AI,
    &PROVIDER_PERPLEXITY,
    &PROVIDER_PUBLICAI,
    &PROVIDER_RECRAFT,
    &PROVIDER_REDUCTO,
    &PROVIDER_REPLICATE,
    &PROVIDER_RUNWAYML,
    &PROVIDER_SAGEMAKER,
    &PROVIDER_SAMBANOVA,
    &PROVIDER_SARVAM,
    &PROVIDER_SEARXNG,
    &PROVIDER_SERPER,
    &PROVIDER_SNOWFLAKE,
    &PROVIDER_STABILITY,
    &PROVIDER_TAVILY,
    &PROVIDER_TEXT_COMPLETION_CODESTRAL,
    &PROVIDER_TEXT_COMPLETION_OPENAI,
    &PROVIDER_TOGETHER_AI,
    &PROVIDER_V0,
    &PROVIDER_VERCEL_AI_GATEWAY,
    &PROVIDER_VERTEX_AI,
    &PROVIDER_VERTEX_AI_AI21_MODELS,
    &PROVIDER_VERTEX_AI_ANTHROPIC_MODELS,
    &PROVIDER_VERTEX_AI_DEEPSEEK_MODELS,
    &PROVIDER_VERTEX_AI_EMBEDDING_MODELS,
    &PROVIDER_VERTEX_AI_IMAGE_MODELS,
    &PROVIDER_VERTEX_AI_LANGUAGE_MODELS,
    &PROVIDER_VERTEX_AI_LLAMA_MODELS,
    &PROVIDER_VERTEX_AI_MINIMAX_MODELS,
    &PROVIDER_VERTEX_AI_MISTRAL_MODELS,
    &PROVIDER_VERTEX_AI_MOONSHOT_MODELS,
    &PROVIDER_VERTEX_AI_OPENAI_MODELS,
    &PROVIDER_VERTEX_AI_QWEN_MODELS,
    &PROVIDER_VERTEX_AI_TEXT_MODELS,
    &PROVIDER_VERTEX_AI_VIDEO_MODELS,
    &PROVIDER_VERTEX_AI_ZAI_MODELS,
    &PROVIDER_VOLCENGINE,
    &PROVIDER_VOYAGE,
    &PROVIDER_WANDB,
    &PROVIDER_WATSONX,
    &PROVIDER_XAI,
    &PROVIDER_ZAI,
];

pub static ALL_MODELS: &[(&str, &[ModelDef])] = &[
    ("ai21", MODELS_AI21),
    ("aiml", MODELS_AIML),
    ("amazon_nova", MODELS_AMAZON_NOVA),
    ("anthropic", MODELS_ANTHROPIC),
    ("anyscale", MODELS_ANYSCALE),
    ("assemblyai", MODELS_ASSEMBLYAI),
    ("aws_polly", MODELS_AWS_POLLY),
    ("azure", MODELS_AZURE),
    ("azure_ai", MODELS_AZURE_AI),
    ("azure_text", MODELS_AZURE_TEXT),
    ("baseten", MODELS_BASETEN),
    ("bedrock", MODELS_BEDROCK),
    ("bedrock_converse", MODELS_BEDROCK_CONVERSE),
    ("bedrock_mantle", MODELS_BEDROCK_MANTLE),
    ("black_forest_labs", MODELS_BLACK_FOREST_LABS),
    ("cerebras", MODELS_CEREBRAS),
    ("chatgpt", MODELS_CHATGPT),
    ("cloudflare", MODELS_CLOUDFLARE),
    ("codestral", MODELS_CODESTRAL),
    ("cohere", MODELS_COHERE),
    ("cohere_chat", MODELS_COHERE_CHAT),
    ("crusoe", MODELS_CRUSOE),
    ("dashscope", MODELS_DASHSCOPE),
    ("databricks", MODELS_DATABRICKS),
    ("dataforseo", MODELS_DATAFORSEO),
    ("deepgram", MODELS_DEEPGRAM),
    ("deepinfra", MODELS_DEEPINFRA),
    ("deepseek", MODELS_DEEPSEEK),
    ("duckduckgo", MODELS_DUCKDUCKGO),
    ("elevenlabs", MODELS_ELEVENLABS),
    ("exa_ai", MODELS_EXA_AI),
    ("fal_ai", MODELS_FAL_AI),
    ("featherless_ai", MODELS_FEATHERLESS_AI),
    ("firecrawl", MODELS_FIRECRAWL),
    ("fireworks_ai", MODELS_FIREWORKS_AI),
    (
        "fireworks_ai-embedding-models",
        MODELS_FIREWORKS_AI_EMBEDDING_MODELS,
    ),
    ("friendliai", MODELS_FRIENDLIAI),
    ("gemini", MODELS_GEMINI),
    ("gigachat", MODELS_GIGACHAT),
    ("github_copilot", MODELS_GITHUB_COPILOT),
    ("gmi", MODELS_GMI),
    ("google_pse", MODELS_GOOGLE_PSE),
    ("gradient_ai", MODELS_GRADIENT_AI),
    ("groq", MODELS_GROQ),
    ("heroku", MODELS_HEROKU),
    ("hyperbolic", MODELS_HYPERBOLIC),
    ("jina_ai", MODELS_JINA_AI),
    ("lambda_ai", MODELS_LAMBDA_AI),
    ("lemonade", MODELS_LEMONADE),
    ("linkup", MODELS_LINKUP),
    ("llamagate", MODELS_LLAMAGATE),
    ("meta_llama", MODELS_META_LLAMA),
    ("minimax", MODELS_MINIMAX),
    ("mistral", MODELS_MISTRAL),
    ("moonshot", MODELS_MOONSHOT),
    ("morph", MODELS_MORPH),
    ("nebius", MODELS_NEBIUS),
    ("nlp_cloud", MODELS_NLP_CLOUD),
    ("novita", MODELS_NOVITA),
    ("nscale", MODELS_NSCALE),
    ("nvidia_nim", MODELS_NVIDIA_NIM),
    ("oci", MODELS_OCI),
    ("ollama", MODELS_OLLAMA),
    ("openai", MODELS_OPENAI),
    ("openrouter", MODELS_OPENROUTER),
    ("ovhcloud", MODELS_OVHCLOUD),
    ("palm", MODELS_PALM),
    ("parallel_ai", MODELS_PARALLEL_AI),
    ("perplexity", MODELS_PERPLEXITY),
    ("publicai", MODELS_PUBLICAI),
    ("recraft", MODELS_RECRAFT),
    ("reducto", MODELS_REDUCTO),
    ("replicate", MODELS_REPLICATE),
    ("runwayml", MODELS_RUNWAYML),
    ("sagemaker", MODELS_SAGEMAKER),
    ("sambanova", MODELS_SAMBANOVA),
    ("sarvam", MODELS_SARVAM),
    ("searxng", MODELS_SEARXNG),
    ("serper", MODELS_SERPER),
    ("snowflake", MODELS_SNOWFLAKE),
    ("stability", MODELS_STABILITY),
    ("tavily", MODELS_TAVILY),
    (
        "text-completion-codestral",
        MODELS_TEXT_COMPLETION_CODESTRAL,
    ),
    ("text-completion-openai", MODELS_TEXT_COMPLETION_OPENAI),
    ("together_ai", MODELS_TOGETHER_AI),
    ("v0", MODELS_V0),
    ("vercel_ai_gateway", MODELS_VERCEL_AI_GATEWAY),
    ("vertex_ai", MODELS_VERTEX_AI),
    ("vertex_ai-ai21_models", MODELS_VERTEX_AI_AI21_MODELS),
    (
        "vertex_ai-anthropic_models",
        MODELS_VERTEX_AI_ANTHROPIC_MODELS,
    ),
    (
        "vertex_ai-deepseek_models",
        MODELS_VERTEX_AI_DEEPSEEK_MODELS,
    ),
    (
        "vertex_ai-embedding-models",
        MODELS_VERTEX_AI_EMBEDDING_MODELS,
    ),
    ("vertex_ai-image-models", MODELS_VERTEX_AI_IMAGE_MODELS),
    (
        "vertex_ai-language-models",
        MODELS_VERTEX_AI_LANGUAGE_MODELS,
    ),
    ("vertex_ai-llama_models", MODELS_VERTEX_AI_LLAMA_MODELS),
    ("vertex_ai-minimax_models", MODELS_VERTEX_AI_MINIMAX_MODELS),
    ("vertex_ai-mistral_models", MODELS_VERTEX_AI_MISTRAL_MODELS),
    (
        "vertex_ai-moonshot_models",
        MODELS_VERTEX_AI_MOONSHOT_MODELS,
    ),
    ("vertex_ai-openai_models", MODELS_VERTEX_AI_OPENAI_MODELS),
    ("vertex_ai-qwen_models", MODELS_VERTEX_AI_QWEN_MODELS),
    ("vertex_ai-text-models", MODELS_VERTEX_AI_TEXT_MODELS),
    ("vertex_ai-video-models", MODELS_VERTEX_AI_VIDEO_MODELS),
    ("vertex_ai-zai_models", MODELS_VERTEX_AI_ZAI_MODELS),
    ("volcengine", MODELS_VOLCENGINE),
    ("voyage", MODELS_VOYAGE),
    ("wandb", MODELS_WANDB),
    ("watsonx", MODELS_WATSONX),
    ("xai", MODELS_XAI),
    ("zai", MODELS_ZAI),
];
