From d14a9bffe75e1481800f1b28aadd6b27c2ad96a5 Mon Sep 17 00:00:00 2001 From: Qiang Date: Mon, 27 Apr 2026 10:18:17 +0800 Subject: [PATCH] fix(openai): resolve CodeQL security warning for URL sanitization --- src/api/providers/openai.ts | 11 +++++++---- 1 file changed, 7 insertions(+), 4 deletions(-) diff --git a/src/api/providers/openai.ts b/src/api/providers/openai.ts index 0bfa899ff2..712487f888 100644 --- a/src/api/providers/openai.ts +++ b/src/api/providers/openai.ts @@ -155,8 +155,7 @@ export class OpenAiHandler extends BaseProvider implements SingleCompletionHandl const isGrokXAI = this._isGrokXAI(this.options.openAiBaseUrl) const isDeepSeekV4 = - deepseekReasoner && - (this.options.openAiBaseUrl?.includes("deepseek.com") || modelId.includes("deepseek")) + deepseekReasoner && (this._isDeepSeek(this.options.openAiBaseUrl) || modelId.includes("deepseek")) const requestOptions: any = { model: modelId, @@ -243,8 +242,7 @@ export class OpenAiHandler extends BaseProvider implements SingleCompletionHandl } } else { const isDeepSeekV4 = - deepseekReasoner && - (this.options.openAiBaseUrl?.includes("deepseek.com") || modelId.includes("deepseek")) + deepseekReasoner && (this._isDeepSeek(this.options.openAiBaseUrl) || modelId.includes("deepseek")) const requestOptions: any = { model: modelId, @@ -561,6 +559,11 @@ export class OpenAiHandler extends BaseProvider implements SingleCompletionHandl return urlHost.includes("x.ai") } + private _isDeepSeek(baseUrl?: string): boolean { + const urlHost = this._getUrlHost(baseUrl) + return urlHost === "deepseek.com" || urlHost.endsWith(".deepseek.com") + } + protected _isAzureAiInference(baseUrl?: string): boolean { const urlHost = this._getUrlHost(baseUrl) return urlHost.endsWith(".services.ai.azure.com")