"""OpenAI model information.

This file is auto-generated by scripts/model_features/codegen_openai.py
Do not edit manually - run the codegen script to update."""

from typing import Literal

OpenAIKnownModels = Literal[
    "openai/chatgpt-4o-latest",
    "openai/chatgpt-4o-latest:completions",
    "openai/chatgpt-4o-latest:responses",
    "openai/codex-mini-latest",
    "openai/codex-mini-latest:responses",
    "openai/gpt-3.5-turbo",
    "openai/gpt-3.5-turbo:completions",
    "openai/gpt-3.5-turbo:responses",
    "openai/gpt-3.5-turbo-0125",
    "openai/gpt-3.5-turbo-0125:completions",
    "openai/gpt-3.5-turbo-0125:responses",
    "openai/gpt-3.5-turbo-1106",
    "openai/gpt-3.5-turbo-1106:completions",
    "openai/gpt-3.5-turbo-1106:responses",
    "openai/gpt-3.5-turbo-16k",
    "openai/gpt-3.5-turbo-16k:completions",
    "openai/gpt-4",
    "openai/gpt-4:completions",
    "openai/gpt-4:responses",
    "openai/gpt-4-0125-preview",
    "openai/gpt-4-0125-preview:completions",
    "openai/gpt-4-0125-preview:responses",
    "openai/gpt-4-0613",
    "openai/gpt-4-0613:completions",
    "openai/gpt-4-0613:responses",
    "openai/gpt-4-1106-preview",
    "openai/gpt-4-1106-preview:completions",
    "openai/gpt-4-1106-preview:responses",
    "openai/gpt-4-turbo",
    "openai/gpt-4-turbo:completions",
    "openai/gpt-4-turbo:responses",
    "openai/gpt-4-turbo-2024-04-09",
    "openai/gpt-4-turbo-2024-04-09:completions",
    "openai/gpt-4-turbo-2024-04-09:responses",
    "openai/gpt-4-turbo-preview",
    "openai/gpt-4-turbo-preview:completions",
    "openai/gpt-4-turbo-preview:responses",
    "openai/gpt-4.1",
    "openai/gpt-4.1:completions",
    "openai/gpt-4.1:responses",
    "openai/gpt-4.1-2025-04-14",
    "openai/gpt-4.1-2025-04-14:completions",
    "openai/gpt-4.1-2025-04-14:responses",
    "openai/gpt-4.1-mini",
    "openai/gpt-4.1-mini:completions",
    "openai/gpt-4.1-mini:responses",
    "openai/gpt-4.1-mini-2025-04-14",
    "openai/gpt-4.1-mini-2025-04-14:completions",
    "openai/gpt-4.1-mini-2025-04-14:responses",
    "openai/gpt-4.1-nano",
    "openai/gpt-4.1-nano:completions",
    "openai/gpt-4.1-nano:responses",
    "openai/gpt-4.1-nano-2025-04-14",
    "openai/gpt-4.1-nano-2025-04-14:completions",
    "openai/gpt-4.1-nano-2025-04-14:responses",
    "openai/gpt-4o",
    "openai/gpt-4o:completions",
    "openai/gpt-4o:responses",
    "openai/gpt-4o-2024-05-13",
    "openai/gpt-4o-2024-05-13:completions",
    "openai/gpt-4o-2024-05-13:responses",
    "openai/gpt-4o-2024-08-06",
    "openai/gpt-4o-2024-08-06:completions",
    "openai/gpt-4o-2024-08-06:responses",
    "openai/gpt-4o-2024-11-20",
    "openai/gpt-4o-2024-11-20:completions",
    "openai/gpt-4o-2024-11-20:responses",
    "openai/gpt-4o-mini",
    "openai/gpt-4o-mini:completions",
    "openai/gpt-4o-mini:responses",
    "openai/gpt-4o-mini-2024-07-18",
    "openai/gpt-4o-mini-2024-07-18:completions",
    "openai/gpt-4o-mini-2024-07-18:responses",
    "openai/gpt-4o-mini-search-preview",
    "openai/gpt-4o-mini-search-preview:completions",
    "openai/gpt-4o-mini-search-preview-2025-03-11",
    "openai/gpt-4o-mini-search-preview-2025-03-11:completions",
    "openai/gpt-4o-search-preview",
    "openai/gpt-4o-search-preview:completions",
    "openai/gpt-4o-search-preview-2025-03-11",
    "openai/gpt-4o-search-preview-2025-03-11:completions",
    "openai/gpt-5",
    "openai/gpt-5:completions",
    "openai/gpt-5:responses",
    "openai/gpt-5-2025-08-07",
    "openai/gpt-5-2025-08-07:completions",
    "openai/gpt-5-2025-08-07:responses",
    "openai/gpt-5-chat-latest",
    "openai/gpt-5-chat-latest:completions",
    "openai/gpt-5-chat-latest:responses",
    "openai/gpt-5-codex",
    "openai/gpt-5-codex:responses",
    "openai/gpt-5-mini",
    "openai/gpt-5-mini:completions",
    "openai/gpt-5-mini:responses",
    "openai/gpt-5-mini-2025-08-07",
    "openai/gpt-5-mini-2025-08-07:completions",
    "openai/gpt-5-mini-2025-08-07:responses",
    "openai/gpt-5-nano",
    "openai/gpt-5-nano:completions",
    "openai/gpt-5-nano:responses",
    "openai/gpt-5-nano-2025-08-07",
    "openai/gpt-5-nano-2025-08-07:completions",
    "openai/gpt-5-nano-2025-08-07:responses",
    "openai/gpt-5-pro",
    "openai/gpt-5-pro:responses",
    "openai/gpt-5-pro-2025-10-06",
    "openai/gpt-5-pro-2025-10-06:responses",
    "openai/gpt-5-search-api",
    "openai/gpt-5-search-api:completions",
    "openai/gpt-5-search-api-2025-10-14",
    "openai/gpt-5-search-api-2025-10-14:completions",
    "openai/gpt-5.1",
    "openai/gpt-5.1:responses",
    "openai/gpt-5.1-2025-11-13",
    "openai/gpt-5.1-2025-11-13:responses",
    "openai/gpt-5.1-chat-latest",
    "openai/gpt-5.1-chat-latest:completions",
    "openai/gpt-5.1-chat-latest:responses",
    "openai/gpt-5.1-codex",
    "openai/gpt-5.1-codex:responses",
    "openai/gpt-5.1-codex-max",
    "openai/gpt-5.1-codex-max:responses",
    "openai/gpt-5.1-codex-mini",
    "openai/gpt-5.1-codex-mini:responses",
    "openai/gpt-5.2",
    "openai/gpt-5.2:completions",
    "openai/gpt-5.2:responses",
    "openai/gpt-5.2-2025-12-11",
    "openai/gpt-5.2-2025-12-11:completions",
    "openai/gpt-5.2-2025-12-11:responses",
    "openai/gpt-5.2-chat-latest",
    "openai/gpt-5.2-chat-latest:completions",
    "openai/gpt-5.2-chat-latest:responses",
    "openai/gpt-5.2-pro",
    "openai/gpt-5.2-pro:responses",
    "openai/gpt-5.2-pro-2025-12-11",
    "openai/gpt-5.2-pro-2025-12-11:responses",
    "openai/o1",
    "openai/o1:completions",
    "openai/o1:responses",
    "openai/o1-2024-12-17",
    "openai/o1-2024-12-17:completions",
    "openai/o1-2024-12-17:responses",
    "openai/o1-pro",
    "openai/o1-pro:responses",
    "openai/o1-pro-2025-03-19",
    "openai/o1-pro-2025-03-19:responses",
    "openai/o3",
    "openai/o3:completions",
    "openai/o3:responses",
    "openai/o3-2025-04-16",
    "openai/o3-2025-04-16:completions",
    "openai/o3-2025-04-16:responses",
    "openai/o3-mini",
    "openai/o3-mini:completions",
    "openai/o3-mini:responses",
    "openai/o3-mini-2025-01-31",
    "openai/o3-mini-2025-01-31:completions",
    "openai/o3-mini-2025-01-31:responses",
    "openai/o3-pro",
    "openai/o3-pro:responses",
    "openai/o3-pro-2025-06-10",
    "openai/o3-pro-2025-06-10:responses",
    "openai/o4-mini",
    "openai/o4-mini:completions",
    "openai/o4-mini:responses",
    "openai/o4-mini-2025-04-16",
    "openai/o4-mini-2025-04-16:completions",
    "openai/o4-mini-2025-04-16:responses",
]
"""Valid OpenAI model IDs including API-specific variants."""


MODELS_WITHOUT_AUDIO_SUPPORT: set[str] = {
    "chatgpt-4o-latest",
    "gpt-3.5-turbo",
    "gpt-3.5-turbo-0125",
    "gpt-3.5-turbo-1106",
    "gpt-3.5-turbo-16k",
    "gpt-4",
    "gpt-4-0125-preview",
    "gpt-4-0613",
    "gpt-4-1106-preview",
    "gpt-4-turbo",
    "gpt-4-turbo-2024-04-09",
    "gpt-4-turbo-preview",
    "gpt-4.1",
    "gpt-4.1-2025-04-14",
    "gpt-4.1-mini",
    "gpt-4.1-mini-2025-04-14",
    "gpt-4.1-nano",
    "gpt-4.1-nano-2025-04-14",
    "gpt-4o",
    "gpt-4o-2024-05-13",
    "gpt-4o-2024-08-06",
    "gpt-4o-2024-11-20",
    "gpt-4o-mini",
    "gpt-4o-mini-2024-07-18",
    "gpt-4o-mini-search-preview",
    "gpt-4o-mini-search-preview-2025-03-11",
    "gpt-4o-search-preview",
    "gpt-4o-search-preview-2025-03-11",
    "gpt-5",
    "gpt-5-2025-08-07",
    "gpt-5-chat-latest",
    "gpt-5-mini",
    "gpt-5-mini-2025-08-07",
    "gpt-5-nano",
    "gpt-5-nano-2025-08-07",
    "gpt-5-search-api",
    "gpt-5-search-api-2025-10-14",
    "gpt-5.1-chat-latest",
    "gpt-5.2",
    "gpt-5.2-2025-12-11",
    "gpt-5.2-chat-latest",
    "o1",
    "o1-2024-12-17",
    "o3",
    "o3-2025-04-16",
    "o3-mini",
    "o3-mini-2025-01-31",
    "o4-mini",
    "o4-mini-2025-04-16",
}
"""Models that do not support audio inputs.

Models not in this set are assumed to support audio (optimistic default).
"""

NON_REASONING_MODELS: set[str] = {
    "chatgpt-4o-latest",
    "gpt-3.5-turbo",
    "gpt-3.5-turbo-0125",
    "gpt-3.5-turbo-1106",
    "gpt-4",
    "gpt-4-0125-preview",
    "gpt-4-0613",
    "gpt-4-1106-preview",
    "gpt-4-turbo",
    "gpt-4-turbo-2024-04-09",
    "gpt-4-turbo-preview",
    "gpt-4.1",
    "gpt-4.1-2025-04-14",
    "gpt-4.1-mini",
    "gpt-4.1-mini-2025-04-14",
    "gpt-4.1-nano",
    "gpt-4.1-nano-2025-04-14",
    "gpt-4o",
    "gpt-4o-2024-05-13",
    "gpt-4o-2024-08-06",
    "gpt-4o-2024-11-20",
    "gpt-4o-mini",
    "gpt-4o-mini-2024-07-18",
    "gpt-5-chat-latest",
}
"""Models that do not support the reasoning parameter.

Models not in this set are assumed to support reasoning (optimistic default).
"""

MODELS_WITHOUT_JSON_SCHEMA_SUPPORT: set[str] = {
    "chatgpt-4o-latest",
    "gpt-3.5-turbo",
    "gpt-3.5-turbo-0125",
    "gpt-3.5-turbo-1106",
    "gpt-3.5-turbo-16k",
    "gpt-4",
    "gpt-4-0125-preview",
    "gpt-4-0613",
    "gpt-4-1106-preview",
    "gpt-4-turbo",
    "gpt-4-turbo-2024-04-09",
    "gpt-4-turbo-preview",
    "gpt-4o-2024-05-13",
}
"""Models that do not support JSON schema (structured outputs).

Models not in this set are assumed to support JSON schema (optimistic default).
"""

MODELS_WITHOUT_JSON_OBJECT_SUPPORT: set[str] = {
    "gpt-4",
    "gpt-4-0613",
    "gpt-4o-mini-search-preview",
    "gpt-4o-mini-search-preview-2025-03-11",
    "gpt-4o-search-preview",
    "gpt-4o-search-preview-2025-03-11",
    "gpt-5-search-api",
    "gpt-5-search-api-2025-10-14",
}
"""Models that do not support JSON object mode.

Models not in this set are assumed to support JSON object mode (optimistic default).
"""
