use crate::types::base_types::ModelProviderDescriptor;
pub mod amazon_bedrock;
pub mod anthropic;
pub mod azure_openai_responses;
pub mod google_antigravity;
pub mod google_gemini_cli;
pub mod google_vertex;
pub mod kimi_coding;
pub mod openai;
pub mod openai_codex;
pub mod opencode;
pub mod openrouter;
pub mod vercel_ai_gateway;
pub mod xai;
#[must_use]
pub fn model_descriptors() -> &'static [ModelProviderDescriptor] {
static ALL: std::sync::LazyLock<Vec<ModelProviderDescriptor>> =
std::sync::LazyLock::new(|| {
let mut all = Vec::new();
all.extend_from_slice(amazon_bedrock::MODELS);
all.extend_from_slice(anthropic::MODELS);
all.extend_from_slice(azure_openai_responses::MODELS);
all.extend_from_slice(google_antigravity::MODELS);
all.extend_from_slice(google_gemini_cli::MODELS);
all.extend_from_slice(google_vertex::MODELS);
all.extend_from_slice(kimi_coding::MODELS);
all.extend_from_slice(openai::MODELS);
all.extend_from_slice(openai_codex::MODELS);
all.extend_from_slice(opencode::MODELS);
all.extend_from_slice(openrouter::MODELS);
all.extend_from_slice(vercel_ai_gateway::MODELS);
all.extend_from_slice(xai::MODELS);
all
});
&ALL
}