From 2d7ec1b641fd6f004e970fdf674e7545435ac525 Mon Sep 17 00:00:00 2001 From: Peter Steinberger Date: Sun, 5 Apr 2026 11:18:26 +0100 Subject: [PATCH] refactor: split zai config sdk seam --- extensions/zai/config-api.ts | 12 +++++++++ extensions/zai/index.ts | 2 +- src/plugin-sdk/zai.ts | 38 ++++++++++------------------ src/plugins/provider-zai-endpoint.ts | 2 +- 4 files changed, 27 insertions(+), 27 deletions(-) create mode 100644 extensions/zai/config-api.ts diff --git a/extensions/zai/config-api.ts b/extensions/zai/config-api.ts new file mode 100644 index 00000000000..52b6b43d8bf --- /dev/null +++ b/extensions/zai/config-api.ts @@ -0,0 +1,12 @@ +// Narrow config barrel for core/test consumers. +// Keep this separate from provider registration/runtime imports. + +export { applyZaiConfig, applyZaiProviderConfig, ZAI_DEFAULT_MODEL_REF } from "./onboard.js"; +export { + ZAI_CN_BASE_URL, + ZAI_CODING_CN_BASE_URL, + ZAI_CODING_GLOBAL_BASE_URL, + ZAI_DEFAULT_COST, + ZAI_DEFAULT_MODEL_ID, + ZAI_GLOBAL_BASE_URL, +} from "./model-definitions.js"; diff --git a/extensions/zai/index.ts b/extensions/zai/index.ts index 9521afae385..c802578c3ed 100644 --- a/extensions/zai/index.ts +++ b/extensions/zai/index.ts @@ -20,7 +20,7 @@ import { buildProviderReplayFamilyHooks, normalizeModelCompat, } from "openclaw/plugin-sdk/provider-model-shared"; -import { buildProviderStreamFamilyHooks } from "openclaw/plugin-sdk/provider-stream"; +import { buildProviderStreamFamilyHooks } from "openclaw/plugin-sdk/provider-stream-family"; import { fetchZaiUsage, resolveLegacyPiAgentAccessToken } from "openclaw/plugin-sdk/provider-usage"; import { detectZaiEndpoint, type ZaiEndpointId } from "./detect.js"; import { zaiMediaUnderstandingProvider } from "./media-understanding-provider.js"; diff --git a/src/plugin-sdk/zai.ts b/src/plugin-sdk/zai.ts index d0fee784a19..f4b4aea4837 100644 --- a/src/plugin-sdk/zai.ts +++ b/src/plugin-sdk/zai.ts @@ -1,26 +1,14 @@ -// Manual facade. Keep loader boundary explicit. -type FacadeModule = typeof import("@openclaw/zai/api.js"); -import { loadBundledPluginPublicSurfaceModuleSync } from "./facade-runtime.js"; +// Internal Z.AI config seam. +// Keep load cheap for config/doctor/test code; do not route through the plugin facade. -function loadFacadeModule(): FacadeModule { - return loadBundledPluginPublicSurfaceModuleSync({ - dirName: "zai", - artifactBasename: "api.js", - }); -} -export const applyZaiConfig: FacadeModule["applyZaiConfig"] = ((...args) => - loadFacadeModule()["applyZaiConfig"](...args)) as FacadeModule["applyZaiConfig"]; -export const applyZaiProviderConfig: FacadeModule["applyZaiProviderConfig"] = ((...args) => - loadFacadeModule()["applyZaiProviderConfig"](...args)) as FacadeModule["applyZaiProviderConfig"]; -export const ZAI_CN_BASE_URL: FacadeModule["ZAI_CN_BASE_URL"] = - loadFacadeModule()["ZAI_CN_BASE_URL"]; -export const ZAI_CODING_CN_BASE_URL: FacadeModule["ZAI_CODING_CN_BASE_URL"] = - loadFacadeModule()["ZAI_CODING_CN_BASE_URL"]; -export const ZAI_CODING_GLOBAL_BASE_URL: FacadeModule["ZAI_CODING_GLOBAL_BASE_URL"] = - loadFacadeModule()["ZAI_CODING_GLOBAL_BASE_URL"]; -export const ZAI_DEFAULT_MODEL_ID: FacadeModule["ZAI_DEFAULT_MODEL_ID"] = - loadFacadeModule()["ZAI_DEFAULT_MODEL_ID"]; -export const ZAI_DEFAULT_MODEL_REF: FacadeModule["ZAI_DEFAULT_MODEL_REF"] = - loadFacadeModule()["ZAI_DEFAULT_MODEL_REF"]; -export const ZAI_GLOBAL_BASE_URL: FacadeModule["ZAI_GLOBAL_BASE_URL"] = - loadFacadeModule()["ZAI_GLOBAL_BASE_URL"]; +export { + applyZaiConfig, + applyZaiProviderConfig, + ZAI_CN_BASE_URL, + ZAI_CODING_CN_BASE_URL, + ZAI_CODING_GLOBAL_BASE_URL, + ZAI_DEFAULT_COST, + ZAI_DEFAULT_MODEL_ID, + ZAI_DEFAULT_MODEL_REF, + ZAI_GLOBAL_BASE_URL, +} from "../../extensions/zai/config-api.js"; diff --git a/src/plugins/provider-zai-endpoint.ts b/src/plugins/provider-zai-endpoint.ts index 39b1e4eaf49..4426b1065fe 100644 --- a/src/plugins/provider-zai-endpoint.ts +++ b/src/plugins/provider-zai-endpoint.ts @@ -3,7 +3,7 @@ import { ZAI_CODING_CN_BASE_URL, ZAI_CODING_GLOBAL_BASE_URL, ZAI_GLOBAL_BASE_URL, -} from "../plugin-sdk/zai.js"; +} from "../../extensions/zai/model-definitions.js"; import { fetchWithTimeout } from "../utils/fetch-timeout.js"; export type ZaiEndpointId = "global" | "cn" | "coding-global" | "coding-cn";