MCPcopy Index your code
hub / github.com/ChrisFeldmeier/OpenCodeRust / bootstrap_registry

Function bootstrap_registry

crates/opencode-provider/src/bootstrap.rs:2576–2614  ·  view source on GitHub ↗
(
    config: &BootstrapConfig,
    auth_store: &HashMap<String, AuthInfo>,
)

Source from the content-addressed store, hash-verified

2574}
2575
2576fn bootstrap_registry(
2577 config: &BootstrapConfig,
2578 auth_store: &HashMap<String, AuthInfo>,
2579) -> ProviderRegistry {
2580 let mut registry = ProviderRegistry::new();
2581
2582 let models_dev = load_models_dev_cache();
2583 let state = ProviderBootstrapState::init(&models_dev, config, auth_store);
2584
2585 for (provider_id, provider_state) in &state.providers {
2586 if let Some(provider) = create_concrete_provider(provider_id, provider_state) {
2587 let provider = wrap_provider_for_state(provider_state, provider);
2588 let registered_id = provider.id().to_string();
2589 registry.register_arc(provider);
2590 if !provider_state.options.is_empty() {
2591 registry.merge_config(&registered_id, provider_state.options.clone());
2592 }
2593 tracing::debug!(
2594 provider = provider_id,
2595 concrete_provider = registered_id,
2596 "Registered provider from bootstrap state"
2597 );
2598 } else {
2599 tracing::debug!(
2600 provider = provider_id,
2601 "No concrete provider implementation for bootstrap provider"
2602 );
2603 }
2604 }
2605
2606 if registry.list().is_empty() {
2607 tracing::debug!(
2608 "No providers registered from bootstrap state, falling back to direct env registration"
2609 );
2610 register_fallback_env_providers(&mut registry);
2611 }
2612
2613 registry
2614}
2615
2616/// Build a `BootstrapConfig` from the raw config fields typically found in
2617/// `opencode_config::Config`. This bridges the gap between the config loader

Calls 12

newFunction · 0.85
load_models_dev_cacheFunction · 0.85
initFunction · 0.85
create_concrete_providerFunction · 0.85
wrap_provider_for_stateFunction · 0.85
register_arcMethod · 0.80
is_emptyMethod · 0.80
merge_configMethod · 0.80
idMethod · 0.45
cloneMethod · 0.45
listMethod · 0.45

Tested by

no test coverage detected