diff --git a/core/inference/src/main/kotlin/com/correx/core/inference/DefaultInferenceRouter.kt b/core/inference/src/main/kotlin/com/correx/core/inference/DefaultInferenceRouter.kt index f4dde2d5..3fa819d1 100644 --- a/core/inference/src/main/kotlin/com/correx/core/inference/DefaultInferenceRouter.kt +++ b/core/inference/src/main/kotlin/com/correx/core/inference/DefaultInferenceRouter.kt @@ -69,7 +69,11 @@ class DefaultInferenceRouter( val all = registry.listAll() val healthy = all.filter { cachedHealth(it) !is ProviderHealth.Unavailable } - val matched = healthy.firstOrNull { it.id.value == modelId } + // Registry ids are adapter-prefixed ("llama-cpp:narrator") while the operator's TOML + // declares the bare id ("narrator") — accept either form. + val matched = healthy.firstOrNull { + it.id.value == modelId || it.id.value.substringAfter(':') == modelId + } if (matched == null) { log.warn( "narration model_id '{}' matched no healthy provider — falling back to capability routing",