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

Function get_config_providers

crates/opencode-server/src/routes.rs:2447–2483  ·  view source on GitHub ↗
(
    State(state): State<Arc<ServerState>>,
)

Source from the content-addressed store, hash-verified

2445}
2446
2447async fn get_config_providers(
2448 State(state): State<Arc<ServerState>>,
2449) -> Json<ConfigProvidersResponse> {
2450 let variant_lookup = get_model_variant_lookup().await;
2451 let models = state.providers.list_models();
2452 let mut provider_map: HashMap<String, Vec<ModelInfo>> = HashMap::new();
2453 for m in models {
2454 let provider_id = m.provider.clone();
2455 let model_id = m.id.clone();
2456 let variants = variants_for_model(variant_lookup, &provider_id, &model_id);
2457 provider_map
2458 .entry(provider_id.clone())
2459 .or_default()
2460 .push(ModelInfo {
2461 id: model_id,
2462 name: m.name,
2463 provider: provider_id,
2464 variants,
2465 });
2466 }
2467 let providers: Vec<ProviderInfo> = provider_map
2468 .into_iter()
2469 .map(|(id, models)| ProviderInfo {
2470 id: id.clone(),
2471 name: id,
2472 models,
2473 })
2474 .collect();
2475 let default_model: HashMap<String, String> = providers
2476 .iter()
2477 .filter_map(|p| p.models.first().map(|m| (p.id.clone(), m.id.clone())))
2478 .collect();
2479 Json(ConfigProvidersResponse {
2480 providers,
2481 default_model,
2482 })
2483}
2484
2485fn mcp_routes() -> Router<Arc<ServerState>> {
2486 Router::new()

Callers

nothing calls this directly

Calls 5

get_model_variant_lookupFunction · 0.85
newFunction · 0.85
variants_for_modelFunction · 0.85
list_modelsMethod · 0.80
cloneMethod · 0.45

Tested by

no test coverage detected