diff --git a/src/core/webview/ClineProvider.ts b/src/core/webview/ClineProvider.ts index 1702f1f..8cc878b 100644 --- a/src/core/webview/ClineProvider.ts +++ b/src/core/webview/ClineProvider.ts @@ -522,9 +522,10 @@ export class ClineProvider implements vscode.WebviewViewProvider { await this.refreshOpenRouterModels() break case "refreshOpenAiModels": - const { apiConfiguration } = await this.getState() - const openAiModels = await this.getOpenAiModels(apiConfiguration.openAiBaseUrl, apiConfiguration.openAiApiKey) - this.postMessageToWebview({ type: "openAiModels", openAiModels }) + if (message?.values?.baseUrl && message?.values?.apiKey) { + const openAiModels = await this.getOpenAiModels(message?.values?.baseUrl, message?.values?.apiKey) + this.postMessageToWebview({ type: "openAiModels", openAiModels }) + } break case "openImage": openImage(message.text!) diff --git a/src/shared/WebviewMessage.ts b/src/shared/WebviewMessage.ts index c0b7b1d..7df4cb6 100644 --- a/src/shared/WebviewMessage.ts +++ b/src/shared/WebviewMessage.ts @@ -59,6 +59,7 @@ export interface WebviewMessage { toolName?: string alwaysAllow?: boolean dataUrls?: string[] + values?: Record } export type ClineAskResponse = "yesButtonClicked" | "noButtonClicked" | "messageResponse" diff --git a/webview-ui/src/components/settings/OpenAiModelPicker.tsx b/webview-ui/src/components/settings/OpenAiModelPicker.tsx index 7e2a38f..31cbddc 100644 --- a/webview-ui/src/components/settings/OpenAiModelPicker.tsx +++ b/webview-ui/src/components/settings/OpenAiModelPicker.tsx @@ -26,7 +26,16 @@ const OpenAiModelPicker: React.FC = () => { } useEffect(() => { - vscode.postMessage({ type: "refreshOpenAiModels" }) + if (!apiConfiguration?.openAiBaseUrl || !apiConfiguration?.openAiApiKey) { + return + } + + vscode.postMessage({ + type: "refreshOpenAiModels", values: { + baseUrl: apiConfiguration?.openAiBaseUrl, + apiKey: apiConfiguration?.openAiApiKey + } + }) }, [apiConfiguration?.openAiBaseUrl, apiConfiguration?.openAiApiKey]) useEffect(() => {