Plugin SDK: route provider metadata through public models subpath

This commit is contained in:
Vincent Koc
2026-03-18 11:17:50 -07:00
parent 62edfdffbd
commit fa52d122c4
5 changed files with 45 additions and 130 deletions

View File

@@ -36,8 +36,10 @@ export { OPENCODE_ZEN_DEFAULT_MODEL } from "../plugins/provider-model-defaults.j
export { OPENCODE_ZEN_DEFAULT_MODEL_REF } from "../agents/opencode-zen-models.js";
export {
buildMinimaxApiModelDefinition,
buildMinimaxModelDefinition,
DEFAULT_MINIMAX_BASE_URL,
MINIMAX_API_BASE_URL,
MINIMAX_API_COST,
MINIMAX_CN_API_BASE_URL,
MINIMAX_HOSTED_COST,
MINIMAX_HOSTED_MODEL_ID,
@@ -47,6 +49,7 @@ export {
export {
buildMistralModelDefinition,
MISTRAL_BASE_URL,
MISTRAL_DEFAULT_COST,
MISTRAL_DEFAULT_MODEL_ID,
MISTRAL_DEFAULT_MODEL_REF,
} from "../../extensions/mistral/model-definitions.js";
@@ -54,15 +57,29 @@ export {
buildModelStudioDefaultModelDefinition,
buildModelStudioModelDefinition,
MODELSTUDIO_CN_BASE_URL,
MODELSTUDIO_DEFAULT_COST,
MODELSTUDIO_DEFAULT_MODEL_ID,
MODELSTUDIO_DEFAULT_MODEL_REF,
MODELSTUDIO_GLOBAL_BASE_URL,
} from "../../extensions/modelstudio/model-definitions.js";
export { MOONSHOT_BASE_URL } from "../../extensions/moonshot/provider-catalog.js";
export {
buildMoonshotProvider,
MOONSHOT_BASE_URL,
MOONSHOT_DEFAULT_MODEL_ID,
} from "../../extensions/moonshot/provider-catalog.js";
export { MOONSHOT_CN_BASE_URL } from "../../extensions/moonshot/onboard.js";
export {
KIMI_CODING_BASE_URL,
KIMI_CODING_DEFAULT_MODEL_ID,
} from "../../extensions/kimi-coding/provider-catalog.js";
export {
QIANFAN_BASE_URL,
QIANFAN_DEFAULT_MODEL_ID,
} from "../../extensions/qianfan/provider-catalog.js";
export {
buildXaiModelDefinition,
XAI_BASE_URL,
XAI_DEFAULT_COST,
XAI_DEFAULT_MODEL_ID,
XAI_DEFAULT_MODEL_REF,
} from "../../extensions/xai/model-definitions.js";
@@ -72,6 +89,7 @@ export {
ZAI_CODING_CN_BASE_URL,
ZAI_CODING_GLOBAL_BASE_URL,
ZAI_CN_BASE_URL,
ZAI_DEFAULT_COST,
ZAI_DEFAULT_MODEL_ID,
ZAI_DEFAULT_MODEL_REF,
ZAI_GLOBAL_BASE_URL,

View File

@@ -16,6 +16,7 @@ import * as lineCoreSdk from "openclaw/plugin-sdk/line-core";
import * as msteamsSdk from "openclaw/plugin-sdk/msteams";
import * as nostrSdk from "openclaw/plugin-sdk/nostr";
import * as ollamaSetupSdk from "openclaw/plugin-sdk/ollama-setup";
import * as providerModelsSdk from "openclaw/plugin-sdk/provider-models";
import * as providerSetupSdk from "openclaw/plugin-sdk/provider-setup";
import * as replyPayloadSdk from "openclaw/plugin-sdk/reply-payload";
import * as routingSdk from "openclaw/plugin-sdk/routing";
@@ -178,6 +179,14 @@ describe("plugin-sdk subpath exports", () => {
);
});
it("exports provider model helpers from the dedicated subpath", () => {
expect(typeof providerModelsSdk.buildMinimaxApiModelDefinition).toBe("function");
expect(typeof providerModelsSdk.buildMinimaxModelDefinition).toBe("function");
expect(typeof providerModelsSdk.buildMoonshotProvider).toBe("function");
expect(typeof providerModelsSdk.resolveZaiBaseUrl).toBe("function");
expect(providerModelsSdk.QIANFAN_BASE_URL).toBe("https://qianfan.baidubce.com/v2");
});
it("exports shared setup helpers from the dedicated subpath", () => {
expect(typeof setupSdk.DEFAULT_ACCOUNT_ID).toBe("string");
expect(typeof setupSdk.createAccountScopedAllowFromSection).toBe("function");

View File

@@ -1,9 +1,14 @@
import { KIMI_CODING_MODEL_REF } from "../../extensions/kimi-coding/onboard.js";
import {
KIMI_DEFAULT_MODEL_ID as KIMI_CODING_MODEL_ID,
KIMI_CODING_BASE_URL,
} from "../../extensions/kimi-coding/provider-catalog.js";
import {
KIMI_CODING_DEFAULT_MODEL_ID as KIMI_CODING_MODEL_ID,
buildMinimaxApiModelDefinition,
buildMinimaxModelDefinition,
buildMistralModelDefinition,
buildModelStudioDefaultModelDefinition,
buildModelStudioModelDefinition,
buildMoonshotProvider,
buildXaiModelDefinition,
buildZaiModelDefinition,
DEFAULT_MINIMAX_BASE_URL,
MINIMAX_API_BASE_URL,
MINIMAX_API_COST,
@@ -12,48 +17,24 @@ import {
MINIMAX_HOSTED_MODEL_ID,
MINIMAX_HOSTED_MODEL_REF,
MINIMAX_LM_STUDIO_COST,
buildMinimaxApiModelDefinition,
buildMinimaxModelDefinition,
} from "../../extensions/minimax/model-definitions.js";
import {
buildMistralModelDefinition,
MISTRAL_BASE_URL,
MISTRAL_DEFAULT_COST,
MISTRAL_DEFAULT_MODEL_ID,
MISTRAL_DEFAULT_MODEL_REF,
} from "../../extensions/mistral/model-definitions.js";
import {
MODELSTUDIO_CN_BASE_URL,
MODELSTUDIO_DEFAULT_COST,
MODELSTUDIO_DEFAULT_MODEL_ID,
MODELSTUDIO_DEFAULT_MODEL_REF,
MODELSTUDIO_GLOBAL_BASE_URL,
buildModelStudioDefaultModelDefinition,
buildModelStudioModelDefinition,
} from "../../extensions/modelstudio/model-definitions.js";
import {
MOONSHOT_CN_BASE_URL,
MOONSHOT_DEFAULT_MODEL_REF,
} from "../../extensions/moonshot/onboard.js";
import {
buildMoonshotProvider,
MOONSHOT_BASE_URL,
MOONSHOT_CN_BASE_URL,
MOONSHOT_DEFAULT_MODEL_ID,
} from "../../extensions/moonshot/provider-catalog.js";
import { QIANFAN_DEFAULT_MODEL_REF } from "../../extensions/qianfan/onboard.js";
import {
QIANFAN_BASE_URL,
QIANFAN_DEFAULT_MODEL_ID,
} from "../../extensions/qianfan/provider-catalog.js";
import {
XAI_BASE_URL,
XAI_DEFAULT_COST,
XAI_DEFAULT_MODEL_ID,
XAI_DEFAULT_MODEL_REF,
buildXaiModelDefinition,
} from "../../extensions/xai/model-definitions.js";
import {
buildZaiModelDefinition,
resolveZaiBaseUrl,
ZAI_CN_BASE_URL,
ZAI_CODING_CN_BASE_URL,
@@ -61,7 +42,7 @@ import {
ZAI_DEFAULT_COST,
ZAI_DEFAULT_MODEL_ID,
ZAI_GLOBAL_BASE_URL,
} from "../../extensions/zai/model-definitions.js";
} from "openclaw/plugin-sdk/provider-models";
import type { ModelDefinitionConfig } from "../config/types.models.js";
import {
KILOCODE_DEFAULT_CONTEXT_WINDOW,
@@ -71,6 +52,10 @@ import {
KILOCODE_DEFAULT_MODEL_NAME,
} from "../providers/kilocode-shared.js";
const KIMI_CODING_MODEL_REF = `kimi/${KIMI_CODING_MODEL_ID}`;
const MOONSHOT_DEFAULT_MODEL_REF = `moonshot/${MOONSHOT_DEFAULT_MODEL_ID}`;
const QIANFAN_DEFAULT_MODEL_REF = `qianfan/${QIANFAN_DEFAULT_MODEL_ID}`;
export {
DEFAULT_MINIMAX_BASE_URL,
MINIMAX_API_BASE_URL,

View File

@@ -3,7 +3,7 @@ import {
ZAI_CODING_CN_BASE_URL,
ZAI_CODING_GLOBAL_BASE_URL,
ZAI_GLOBAL_BASE_URL,
} from "../../extensions/zai/model-definitions.js";
} from "openclaw/plugin-sdk/provider-models";
import { fetchWithTimeout } from "../utils/fetch-timeout.js";
export type ZaiEndpointId = "global" | "cn" | "coding-global" | "coding-cn";

View File

@@ -1,98 +1 @@
[
{
"file": "src/plugins/provider-model-definitions.ts",
"line": 1,
"kind": "import",
"specifier": "../../extensions/kimi-coding/onboard.js",
"resolvedPath": "extensions/kimi-coding/onboard.js",
"reason": "imports extension-owned file from src/plugins"
},
{
"file": "src/plugins/provider-model-definitions.ts",
"line": 5,
"kind": "import",
"specifier": "../../extensions/kimi-coding/provider-catalog.js",
"resolvedPath": "extensions/kimi-coding/provider-catalog.js",
"reason": "imports extension-owned file from src/plugins"
},
{
"file": "src/plugins/provider-model-definitions.ts",
"line": 17,
"kind": "import",
"specifier": "../../extensions/minimax/model-definitions.js",
"resolvedPath": "extensions/minimax/model-definitions.js",
"reason": "imports extension-owned file from src/plugins"
},
{
"file": "src/plugins/provider-model-definitions.ts",
"line": 24,
"kind": "import",
"specifier": "../../extensions/mistral/model-definitions.js",
"resolvedPath": "extensions/mistral/model-definitions.js",
"reason": "imports extension-owned file from src/plugins"
},
{
"file": "src/plugins/provider-model-definitions.ts",
"line": 33,
"kind": "import",
"specifier": "../../extensions/modelstudio/model-definitions.js",
"resolvedPath": "extensions/modelstudio/model-definitions.js",
"reason": "imports extension-owned file from src/plugins"
},
{
"file": "src/plugins/provider-model-definitions.ts",
"line": 37,
"kind": "import",
"specifier": "../../extensions/moonshot/onboard.js",
"resolvedPath": "extensions/moonshot/onboard.js",
"reason": "imports extension-owned file from src/plugins"
},
{
"file": "src/plugins/provider-model-definitions.ts",
"line": 42,
"kind": "import",
"specifier": "../../extensions/moonshot/provider-catalog.js",
"resolvedPath": "extensions/moonshot/provider-catalog.js",
"reason": "imports extension-owned file from src/plugins"
},
{
"file": "src/plugins/provider-model-definitions.ts",
"line": 43,
"kind": "import",
"specifier": "../../extensions/qianfan/onboard.js",
"resolvedPath": "extensions/qianfan/onboard.js",
"reason": "imports extension-owned file from src/plugins"
},
{
"file": "src/plugins/provider-model-definitions.ts",
"line": 47,
"kind": "import",
"specifier": "../../extensions/qianfan/provider-catalog.js",
"resolvedPath": "extensions/qianfan/provider-catalog.js",
"reason": "imports extension-owned file from src/plugins"
},
{
"file": "src/plugins/provider-model-definitions.ts",
"line": 54,
"kind": "import",
"specifier": "../../extensions/xai/model-definitions.js",
"resolvedPath": "extensions/xai/model-definitions.js",
"reason": "imports extension-owned file from src/plugins"
},
{
"file": "src/plugins/provider-model-definitions.ts",
"line": 64,
"kind": "import",
"specifier": "../../extensions/zai/model-definitions.js",
"resolvedPath": "extensions/zai/model-definitions.js",
"reason": "imports extension-owned file from src/plugins"
},
{
"file": "src/plugins/provider-zai-endpoint.ts",
"line": 6,
"kind": "import",
"specifier": "../../extensions/zai/model-definitions.js",
"resolvedPath": "extensions/zai/model-definitions.js",
"reason": "imports extension-owned file from src/plugins"
}
]
[]