From 8074e4cfc3f1cf4f3cec7167f96186c2040be95c Mon Sep 17 00:00:00 2001 From: Xiaonuo Date: Tue, 21 Apr 2026 11:27:12 +0800 Subject: [PATCH] fix: auxiliary switch reads provider from cfg registry MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Auxiliary model switching now looks up provider details from cfg registry (base_url, api_key) and adds custom: prefix automatically, matching the behavior of main provider switching. — 小糯 --- src/commands/models.ts | 22 ++++++++++++++++++++-- 1 file changed, 20 insertions(+), 2 deletions(-) diff --git a/src/commands/models.ts b/src/commands/models.ts index fabd950..de5c424 100644 --- a/src/commands/models.ts +++ b/src/commands/models.ts @@ -344,15 +344,33 @@ function switchConfig(opts: SwitchOptions) { // Switch auxiliary tasks if (!config.auxiliary) config.auxiliary = {} as Record; + // Look up provider from cfg registry to get base_url & api_key + const registryProvider = findProviderFromRegistry(opts.provider); + const providerValue = registryProvider ? `custom:${registryProvider.name}` : opts.provider; + + // Ensure custom_providers in config.yaml contains this provider + if (registryProvider) { + if (!config.custom_providers) config.custom_providers = []; + const existing = config.custom_providers.find((p) => p.name === registryProvider.name); + if (!existing) { + config.custom_providers.push(registryProvider); + } + } + for (const task of opts.auxTasks) { if (!config.auxiliary[task]) { config.auxiliary[task] = { provider: "", model: "", timeout: 30 }; } - config.auxiliary[task].provider = opts.provider; + config.auxiliary[task].provider = providerValue; + if (registryProvider) { + config.auxiliary[task].base_url = registryProvider.base_url; + const apiKey = getProviderApiKey(registryProvider); + if (apiKey) config.auxiliary[task].api_key = apiKey; + } if (opts.model) { config.auxiliary[task].model = opts.model; } - console.log(` auxiliary.${task} → provider=${opts.provider}${opts.model ? ` model=${opts.model}` : ""}`); + console.log(` auxiliary.${task} → provider=${providerValue}${opts.model ? ` model=${opts.model}` : ""}`); } } else { // Switch main provider — look up from cfg registry