starweaver-model 0.3.0

Provider-neutral model protocol and wire adapters for Starweaver
Documentation
//! Preset canonical names and aliases.

pub(super) fn model_settings_alias(name: &str) -> &str {
    MODEL_SETTINGS_ALIASES
        .iter()
        .find_map(|(alias, canonical)| (*alias == name).then_some(*canonical))
        .unwrap_or(name)
}

pub(super) fn model_config_alias(name: &str) -> &str {
    MODEL_CONFIG_ALIASES
        .iter()
        .find_map(|(alias, canonical)| (*alias == name).then_some(*canonical))
        .unwrap_or(name)
}

pub(super) const MODEL_SETTINGS_PRESETS: &[&str] = &[
    "anthropic_default",
    "anthropic_high",
    "anthropic_medium",
    "anthropic_low",
    "anthropic_off",
    "anthropic_adaptive_default",
    "anthropic_adaptive_xhigh",
    "anthropic_adaptive_high",
    "anthropic_adaptive_medium",
    "anthropic_adaptive_low",
    "anthropic_adaptive_1m_default",
    "anthropic_adaptive_1m_xhigh",
    "anthropic_adaptive_1m_high",
    "anthropic_adaptive_1m_medium",
    "anthropic_adaptive_1m_low",
    "anthropic_adaptive_cm_default",
    "anthropic_adaptive_cm_xhigh",
    "anthropic_adaptive_cm_high",
    "anthropic_adaptive_cm_medium",
    "anthropic_adaptive_cm_low",
    "anthropic_adaptive_1m_cm_default",
    "anthropic_adaptive_1m_cm_xhigh",
    "anthropic_adaptive_1m_cm_high",
    "anthropic_adaptive_1m_cm_medium",
    "anthropic_adaptive_1m_cm_low",
    "anthropic_default_interleaved_thinking",
    "anthropic_high_interleaved_thinking",
    "anthropic_medium_interleaved_thinking",
    "anthropic_low_interleaved_thinking",
    "anthropic_off_interleaved_thinking",
    "anthropic_1m_default",
    "anthropic_1m_high",
    "anthropic_1m_medium",
    "anthropic_1m_low",
    "anthropic_1m_off",
    "anthropic_1m_default_interleaved_thinking",
    "anthropic_1m_high_interleaved_thinking",
    "anthropic_1m_medium_interleaved_thinking",
    "anthropic_1m_low_interleaved_thinking",
    "anthropic_1m_off_interleaved_thinking",
    "anthropic_cm_default",
    "anthropic_cm_high",
    "anthropic_cm_medium",
    "anthropic_cm_low",
    "anthropic_cm_off",
    "anthropic_1m_cm_default",
    "anthropic_1m_cm_high",
    "anthropic_1m_cm_medium",
    "anthropic_1m_cm_low",
    "anthropic_1m_cm_off",
    "anthropic_cm_default_interleaved_thinking",
    "anthropic_cm_high_interleaved_thinking",
    "anthropic_cm_medium_interleaved_thinking",
    "anthropic_cm_low_interleaved_thinking",
    "anthropic_cm_off_interleaved_thinking",
    "anthropic_1m_cm_default_interleaved_thinking",
    "anthropic_1m_cm_high_interleaved_thinking",
    "anthropic_1m_cm_medium_interleaved_thinking",
    "anthropic_1m_cm_low_interleaved_thinking",
    "anthropic_1m_cm_off_interleaved_thinking",
    "openai_default",
    "openai_xhigh",
    "openai_high",
    "openai_medium",
    "openai_low",
    "openai_responses_default",
    "openai_responses_xhigh",
    "openai_responses_high",
    "openai_responses_medium",
    "openai_responses_low",
    "openai_responses_default_fast",
    "openai_responses_xhigh_fast",
    "openai_responses_high_fast",
    "openai_responses_medium_fast",
    "openai_responses_low_fast",
    "deepseek_v4_default",
    "deepseek_v4_high",
    "deepseek_v4_max",
    "deepseek_v4_off",
    "mimo_v2_5",
    "mimo_v2_5_pro",
    "gemini_thinking_budget_default",
    "gemini_thinking_budget_high",
    "gemini_thinking_budget_medium",
    "gemini_thinking_budget_low",
    "gemini_thinking_level_default",
    "gemini_thinking_level_high",
    "gemini_thinking_level_medium",
    "gemini_thinking_level_low",
    "gemini_thinking_level_minimal",
];

pub(super) const MODEL_SETTINGS_ALIASES: &[(&str, &str)] = &[
    ("anthropic", "anthropic_default"),
    ("anthropic_adaptive", "anthropic_adaptive_default"),
    ("anthropic_adaptive_1m", "anthropic_adaptive_1m_default"),
    ("anthropic_adaptive_cm", "anthropic_adaptive_cm_default"),
    (
        "anthropic_adaptive_1m_cm",
        "anthropic_adaptive_1m_cm_default",
    ),
    (
        "anthropic_interleaved",
        "anthropic_default_interleaved_thinking",
    ),
    ("anthropic_1m", "anthropic_1m_default"),
    (
        "anthropic_1m_interleaved",
        "anthropic_1m_default_interleaved_thinking",
    ),
    ("anthropic_cm", "anthropic_cm_default"),
    ("anthropic_1m_cm", "anthropic_1m_cm_default"),
    (
        "anthropic_cm_interleaved",
        "anthropic_cm_default_interleaved_thinking",
    ),
    (
        "anthropic_1m_cm_interleaved",
        "anthropic_1m_cm_default_interleaved_thinking",
    ),
    ("openai", "openai_default"),
    ("openai_responses", "openai_responses_default"),
    ("deepseek", "deepseek_v4_default"),
    ("deepseek_v4", "deepseek_v4_default"),
    ("mimo", "mimo_v2_5_pro"),
    ("mimo_v2.5", "mimo_v2_5"),
    ("mimo_v2.5_pro", "mimo_v2_5_pro"),
    ("gemini_2.5", "gemini_thinking_budget_default"),
    ("gemini_3", "gemini_thinking_level_default"),
    ("gemini", "gemini_thinking_level_default"),
    ("high", "anthropic_high"),
    ("medium", "anthropic_medium"),
    ("low", "anthropic_low"),
];

pub(super) const MODEL_CONFIG_PRESETS: &[&str] = &[
    "claude_200k",
    "claude_400k",
    "claude_1m",
    "gpt5_270k",
    "gpt5_1m",
    "deepseek_v4_400k",
    "deepseek_v4_1m",
    "mimo_v2_5_1m",
    "mimo_v2_5_pro_1m",
    "gemini_200k",
    "gemini_1m",
];

pub(super) const MODEL_CONFIG_ALIASES: &[(&str, &str)] = &[
    ("claude", "claude_1m"),
    ("anthropic", "claude_1m"),
    ("anthropic_400k", "claude_400k"),
    ("gpt5", "gpt5_270k"),
    ("openai", "gpt5_270k"),
    ("deepseek", "deepseek_v4_1m"),
    ("deepseek_400k", "deepseek_v4_400k"),
    ("deepseek_v4", "deepseek_v4_1m"),
    ("mimo", "mimo_v2_5_pro_1m"),
    ("mimo_v2.5", "mimo_v2_5_1m"),
    ("mimo_v2.5_pro", "mimo_v2_5_pro_1m"),
    ("mimo_v2_5", "mimo_v2_5_1m"),
    ("mimo_v2_5_pro", "mimo_v2_5_pro_1m"),
    ("gemini", "gemini_200k"),
];