diff --git a/src/plugins/provider-wizard.ts b/src/plugins/provider-wizard.ts index 15eb082e615..07b78bc44fa 100644 --- a/src/plugins/provider-wizard.ts +++ b/src/plugins/provider-wizard.ts @@ -1,5 +1,4 @@ import { DEFAULT_PROVIDER } from "../agents/defaults.js"; -import { parseModelRef } from "../agents/model-selection.js"; import { normalizeProviderId } from "../agents/model-selection.js"; import type { OpenClawConfig } from "../config/config.js"; import type { WizardPrompter } from "../wizard/prompts.js"; @@ -333,8 +332,16 @@ export async function runProviderModelSelectedHook(params: { workspaceDir?: string; env?: NodeJS.ProcessEnv; }): Promise { - const parsed = parseModelRef(params.model, DEFAULT_PROVIDER); - if (!parsed) { + const rawModel = params.model.trim(); + if (!rawModel) { + return; + } + const slashIndex = rawModel.indexOf("/"); + const selectedProviderId = + slashIndex === -1 + ? DEFAULT_PROVIDER + : normalizeProviderId(rawModel.slice(0, slashIndex).trim()); + if (!selectedProviderId || (slashIndex !== -1 && !rawModel.slice(slashIndex + 1).trim())) { return; } @@ -343,9 +350,7 @@ export async function runProviderModelSelectedHook(params: { workspaceDir: params.workspaceDir, env: params.env, }); - const provider = providers.find( - (entry) => normalizeProviderId(entry.id) === normalizeProviderId(parsed.provider), - ); + const provider = providers.find((entry) => normalizeProviderId(entry.id) === selectedProviderId); if (!provider?.onModelSelected) { return; }