From 7bc72915cb527ebc19205084a9d6ea06dda11ab6 Mon Sep 17 00:00:00 2001 From: Hannes Rudolph Date: Thu, 18 Sep 2025 13:39:09 -0600 Subject: [PATCH] feat(zai): consolidate to two coding entrypoints (International/China) and update tests/UI; default to 'international'; update endpoints to /api/coding/paas/v4 --- packages/types/src/provider-settings.ts | 2 +- packages/types/src/providers/zai.ts | 8 +++----- src/api/providers/__tests__/zai.spec.ts | 4 ++-- src/api/providers/zai.ts | 4 ++-- webview-ui/src/components/settings/providers/ZAi.tsx | 4 ++-- 5 files changed, 10 insertions(+), 12 deletions(-) diff --git a/packages/types/src/provider-settings.ts b/packages/types/src/provider-settings.ts index fd327657b6..558292eaf6 100644 --- a/packages/types/src/provider-settings.ts +++ b/packages/types/src/provider-settings.ts @@ -376,7 +376,7 @@ const sambaNovaSchema = apiModelIdProviderModelSchema.extend({ sambaNovaApiKey: z.string().optional(), }) -export const zaiApiLineSchema = z.enum(["international_coding", "international", "china_coding", "china"]) +export const zaiApiLineSchema = z.enum(["international", "china"]) export type ZaiApiLine = z.infer diff --git a/packages/types/src/providers/zai.ts b/packages/types/src/providers/zai.ts index b3838c1406..a32a21cad8 100644 --- a/packages/types/src/providers/zai.ts +++ b/packages/types/src/providers/zai.ts @@ -106,12 +106,10 @@ export const mainlandZAiModels = { export const ZAI_DEFAULT_TEMPERATURE = 0 export const zaiApiLineConfigs = { - international_coding: { - name: "International Coding Plan", + international: { + name: "International", baseUrl: "https://api.z.ai/api/coding/paas/v4", isChina: false, }, - international: { name: "International Standard", baseUrl: "https://api.z.ai/api/paas/v4", isChina: false }, - china_coding: { name: "China Coding Plan", baseUrl: "https://open.bigmodel.cn/api/coding/paas/v4", isChina: true }, - china: { name: "China Standard", baseUrl: "https://open.bigmodel.cn/api/paas/v4", isChina: true }, + china: { name: "China", baseUrl: "https://open.bigmodel.cn/api/coding/paas/v4", isChina: true }, } satisfies Record diff --git a/src/api/providers/__tests__/zai.spec.ts b/src/api/providers/__tests__/zai.spec.ts index 7928a4298d..20bf365f37 100644 --- a/src/api/providers/__tests__/zai.spec.ts +++ b/src/api/providers/__tests__/zai.spec.ts @@ -43,7 +43,7 @@ describe("ZAiHandler", () => { new ZAiHandler({ zaiApiKey: "test-zai-api-key", zaiApiLine: "international" }) expect(OpenAI).toHaveBeenCalledWith( expect.objectContaining({ - baseURL: "https://api.z.ai/api/paas/v4", + baseURL: "https://api.z.ai/api/coding/paas/v4", }), ) }) @@ -81,7 +81,7 @@ describe("ZAiHandler", () => { it("should use the correct China Z AI base URL", () => { new ZAiHandler({ zaiApiKey: "test-zai-api-key", zaiApiLine: "china" }) expect(OpenAI).toHaveBeenCalledWith( - expect.objectContaining({ baseURL: "https://open.bigmodel.cn/api/paas/v4" }), + expect.objectContaining({ baseURL: "https://open.bigmodel.cn/api/coding/paas/v4" }), ) }) diff --git a/src/api/providers/zai.ts b/src/api/providers/zai.ts index ce5aab9dd9..a4f110ea3f 100644 --- a/src/api/providers/zai.ts +++ b/src/api/providers/zai.ts @@ -15,14 +15,14 @@ import { BaseOpenAiCompatibleProvider } from "./base-openai-compatible-provider" export class ZAiHandler extends BaseOpenAiCompatibleProvider { constructor(options: ApiHandlerOptions) { - const isChina = zaiApiLineConfigs[options.zaiApiLine ?? "international_coding"].isChina + const isChina = zaiApiLineConfigs[options.zaiApiLine ?? "international"].isChina const models = isChina ? mainlandZAiModels : internationalZAiModels const defaultModelId = isChina ? mainlandZAiDefaultModelId : internationalZAiDefaultModelId super({ ...options, providerName: "Z AI", - baseURL: zaiApiLineConfigs[options.zaiApiLine ?? "international_coding"].baseUrl, + baseURL: zaiApiLineConfigs[options.zaiApiLine ?? "international"].baseUrl, apiKey: options.zaiApiKey ?? "not-provided", defaultProviderModelId: defaultModelId, providerModels: models, diff --git a/webview-ui/src/components/settings/providers/ZAi.tsx b/webview-ui/src/components/settings/providers/ZAi.tsx index c7f44510c1..1e76091945 100644 --- a/webview-ui/src/components/settings/providers/ZAi.tsx +++ b/webview-ui/src/components/settings/providers/ZAi.tsx @@ -33,7 +33,7 @@ export const ZAi = ({ apiConfiguration, setApiConfigurationField }: ZAiProps) =>
{zaiApiLineSchema.options.map((zaiApiLine) => { @@ -64,7 +64,7 @@ export const ZAi = ({ apiConfiguration, setApiConfigurationField }: ZAiProps) => {!apiConfiguration?.zaiApiKey && (