From 744ea68ac8454c1ba0af13917e0a13e36056f327 Mon Sep 17 00:00:00 2001 From: Will Chen Date: Tue, 6 May 2025 22:12:59 -0700 Subject: [PATCH] fix auto model logic so that dyad pro key doesn't error --- src/ipc/utils/get_model_client.ts | 19 ++++++++++--------- 1 file changed, 10 insertions(+), 9 deletions(-) diff --git a/src/ipc/utils/get_model_client.ts b/src/ipc/utils/get_model_client.ts index d4030f6..ff08d78 100644 --- a/src/ipc/utils/get_model_client.ts +++ b/src/ipc/utils/get_model_client.ts @@ -19,11 +19,13 @@ export function getModelClient( model: LargeLanguageModel, settings: UserSettings ) { + const dyadApiKey = settings.providerSettings?.auto?.apiKey?.value; // Handle 'auto' provider by trying each model in AUTO_MODELS until one works if (model.provider === "auto") { // Try each model in AUTO_MODELS in order until finding one with an API key for (const autoModel of AUTO_MODELS) { const apiKey = + dyadApiKey || settings.providerSettings?.[autoModel.provider]?.apiKey || getEnvVar(PROVIDER_TO_ENV_VAR[autoModel.provider]); @@ -46,7 +48,6 @@ export function getModelClient( throw new Error("No API keys available for any model in AUTO_MODELS"); } - const dyadApiKey = settings.providerSettings?.auto?.apiKey?.value; if (dyadApiKey && settings.enableDyadPro) { const provider = createOpenAI({ apiKey: dyadApiKey, @@ -82,14 +83,14 @@ export function getModelClient( case "ollama": { const provider = createOllama(); return provider(model.name); - } - case "lmstudio": { - // Using LM Studio's OpenAI compatible API - const baseURL = "http://localhost:1234/v1"; // Default LM Studio OpenAI API URL - const provider = createOpenAICompatible({ name: "lmstudio", baseURL }); - return provider(model.name); - } - default: { + } + case "lmstudio": { + // Using LM Studio's OpenAI compatible API + const baseURL = "http://localhost:1234/v1"; // Default LM Studio OpenAI API URL + const provider = createOpenAICompatible({ name: "lmstudio", baseURL }); + return provider(model.name); + } + default: { // Ensure exhaustive check if more providers are added const _exhaustiveCheck: never = model.provider; throw new Error(`Unsupported model provider: ${model.provider}`);