MCPcopy Create free account
hub / github.com/ChrisFeldmeier/OpenCodeRust / parse_model_ref_selection

Function parse_model_ref_selection

crates/opencode-tui/src/app/app.rs:3775–3807  ·  view source on GitHub ↗
(
    model_ref: &str,
    available_models: &HashSet<String>,
    model_variants: &HashMap<String, Vec<String>>,
)

Source from the content-addressed store, hash-verified

3773}
3774
3775fn parse_model_ref_selection(
3776 model_ref: &str,
3777 available_models: &HashSet<String>,
3778 model_variants: &HashMap<String, Vec<String>>,
3779) -> (String, Option<String>) {
3780 let trimmed = model_ref.trim();
3781 if trimmed.is_empty() {
3782 return (String::new(), None);
3783 }
3784 if available_models.contains(trimmed) {
3785 return (trimmed.to_string(), None);
3786 }
3787
3788 let Some((candidate_base, candidate_variant)) = trimmed.rsplit_once('/') else {
3789 return (trimmed.to_string(), None);
3790 };
3791 if candidate_variant.is_empty() || !available_models.contains(candidate_base) {
3792 return (trimmed.to_string(), None);
3793 }
3794 let Some(known_variants) = model_variants.get(candidate_base) else {
3795 return (trimmed.to_string(), None);
3796 };
3797 if !known_variants
3798 .iter()
3799 .any(|value| value == candidate_variant)
3800 {
3801 return (trimmed.to_string(), None);
3802 }
3803 (
3804 candidate_base.to_string(),
3805 Some(candidate_variant.to_string()),
3806 )
3807}
3808
3809fn selected_agent(context: &Arc<AppContext>) -> Option<String> {
3810 let agent = context.current_agent.read().clone();

Callers 5

cycle_model_variantMethod · 0.85
current_model_labelMethod · 0.85

Calls 4

newFunction · 0.85
is_emptyMethod · 0.80
containsMethod · 0.80
getMethod · 0.45

Tested by

no test coverage detected