foundation_ai 0.0.1

AI foundation crate for the eweplatform
// Auto-generated by `cargo run --bin ewe_platform gen_model_descriptors`.
// Do not edit manually.

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;

/// Returns a combined slice of all provider model descriptors.
///
/// Uses `LazyLock` to concatenate per-provider static slices once.
#[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
}