use crate::types::base_types::{
MessageType, ModelAPI, ModelProviderDescriptor, ModelProviders, ModelUsageCosting,
};
pub static MODELS: &[ModelProviderDescriptor] = &[
ModelProviderDescriptor {
id: "gpt-5.1",
name: "GPT-5.1",
reasoning: true,
api: ModelAPI::OpenaiCodexResponses,
provider: ModelProviders::OPENAICODEX,
base_url: Some("https://chatgpt.com/backend-api"),
inputs: MessageType::TextAndImages,
cost: ModelUsageCosting {
input: 1.25,
output: 10.0,
cache_read: 0.125,
cache_write: 0.0,
},
context_window: 272_000,
max_tokens: 128_000,
},
ModelProviderDescriptor {
id: "gpt-5.1-codex-max",
name: "GPT-5.1 Codex Max",
reasoning: true,
api: ModelAPI::OpenaiCodexResponses,
provider: ModelProviders::OPENAICODEX,
base_url: Some("https://chatgpt.com/backend-api"),
inputs: MessageType::TextAndImages,
cost: ModelUsageCosting {
input: 1.25,
output: 10.0,
cache_read: 0.125,
cache_write: 0.0,
},
context_window: 272_000,
max_tokens: 128_000,
},
ModelProviderDescriptor {
id: "gpt-5.1-codex-mini",
name: "GPT-5.1 Codex Mini",
reasoning: true,
api: ModelAPI::OpenaiCodexResponses,
provider: ModelProviders::OPENAICODEX,
base_url: Some("https://chatgpt.com/backend-api"),
inputs: MessageType::TextAndImages,
cost: ModelUsageCosting {
input: 0.25,
output: 2.0,
cache_read: 0.025,
cache_write: 0.0,
},
context_window: 272_000,
max_tokens: 128_000,
},
ModelProviderDescriptor {
id: "gpt-5.2",
name: "GPT-5.2",
reasoning: true,
api: ModelAPI::OpenaiCodexResponses,
provider: ModelProviders::OPENAICODEX,
base_url: Some("https://chatgpt.com/backend-api"),
inputs: MessageType::TextAndImages,
cost: ModelUsageCosting {
input: 1.75,
output: 14.0,
cache_read: 0.175,
cache_write: 0.0,
},
context_window: 272_000,
max_tokens: 128_000,
},
ModelProviderDescriptor {
id: "gpt-5.2-codex",
name: "GPT-5.2 Codex",
reasoning: true,
api: ModelAPI::OpenaiCodexResponses,
provider: ModelProviders::OPENAICODEX,
base_url: Some("https://chatgpt.com/backend-api"),
inputs: MessageType::TextAndImages,
cost: ModelUsageCosting {
input: 1.75,
output: 14.0,
cache_read: 0.175,
cache_write: 0.0,
},
context_window: 272_000,
max_tokens: 128_000,
},
ModelProviderDescriptor {
id: "gpt-5.3-codex",
name: "GPT-5.3 Codex",
reasoning: true,
api: ModelAPI::OpenaiCodexResponses,
provider: ModelProviders::OPENAICODEX,
base_url: Some("https://chatgpt.com/backend-api"),
inputs: MessageType::TextAndImages,
cost: ModelUsageCosting {
input: 1.75,
output: 14.0,
cache_read: 0.175,
cache_write: 0.0,
},
context_window: 272_000,
max_tokens: 128_000,
},
ModelProviderDescriptor {
id: "gpt-5.3-codex-spark",
name: "GPT-5.3 Codex Spark",
reasoning: true,
api: ModelAPI::OpenaiCodexResponses,
provider: ModelProviders::OPENAICODEX,
base_url: Some("https://chatgpt.com/backend-api"),
inputs: MessageType::Text,
cost: ModelUsageCosting {
input: 0.0,
output: 0.0,
cache_read: 0.0,
cache_write: 0.0,
},
context_window: 128_000,
max_tokens: 128_000,
},
];