#[derive(Clone, Copy, Debug, PartialEq, Eq)]
pub(crate) struct ClaudeModelAlias {
pub(crate) name: &'static str,
pub(crate) detail: &'static str,
}
pub(crate) const CLAUDE_MODEL_ALIASES: &[ClaudeModelAlias] = &[
ClaudeModelAlias {
name: "fable",
detail: "Latest Claude Fable. Subscription plans differ in which families they include.",
},
ClaudeModelAlias {
name: "opus",
detail: "Latest Claude Opus. Subscription plans differ in which families they include.",
},
ClaudeModelAlias {
name: "sonnet",
detail: "Latest Claude Sonnet. Subscription plans differ in which families they include.",
},
ClaudeModelAlias {
name: "haiku",
detail: "Latest Claude Haiku. Subscription plans differ in which families they include.",
},
];
pub(crate) fn is_offered_alias(model: &str) -> bool {
CLAUDE_MODEL_ALIASES.iter().any(|alias| alias.name == model)
}
pub(crate) const CLAUDE_CODE_SOURCE_LABEL: &str = "claude-code";
pub(crate) const CLAUDE_DEFAULT_MODEL_LABEL: &str = "Claude Code default";
pub(crate) const CLAUDE_DEFAULT_MODEL_DETAIL: &str =
"Omit --model and use whichever model Claude Code selects.";
pub(crate) const CLAUDE_DEFAULT_MODEL_BADGE: &str = "default";