diff --git a/extensions/arcee/openclaw.plugin.json b/extensions/arcee/openclaw.plugin.json index 03d1c4ec49bc..f625eb46a432 100644 --- a/extensions/arcee/openclaw.plugin.json +++ b/extensions/arcee/openclaw.plugin.json @@ -1,6 +1,7 @@ { "id": "arcee", "enabledByDefault": true, + "providerDiscoveryEntry": "./provider-discovery.ts", "providers": ["arcee"], "providerAuthEnvVars": { "arcee": ["ARCEEAI_API_KEY"] diff --git a/extensions/arcee/provider-discovery.ts b/extensions/arcee/provider-discovery.ts new file mode 100644 index 000000000000..4b0543d0d6b0 --- /dev/null +++ b/extensions/arcee/provider-discovery.ts @@ -0,0 +1,31 @@ +import type { ProviderPlugin } from "openclaw/plugin-sdk/provider-model-shared"; +import { buildArceeOpenRouterProvider, buildArceeProvider } from "./provider-catalog.js"; + +export const arceeProviderDiscovery: ProviderPlugin[] = [ + { + id: "arcee", + label: "Arcee AI", + docsPath: "/providers/models", + auth: [], + staticCatalog: { + order: "simple", + run: async () => ({ + provider: buildArceeProvider(), + }), + }, + }, + { + id: "arcee-openrouter", + label: "Arcee AI via OpenRouter", + docsPath: "/providers/models", + auth: [], + staticCatalog: { + order: "simple", + run: async () => ({ + provider: buildArceeOpenRouterProvider(), + }), + }, + }, +]; + +export default arceeProviderDiscovery; diff --git a/extensions/byteplus/openclaw.plugin.json b/extensions/byteplus/openclaw.plugin.json index 961c36e588ee..490fbf9b9419 100644 --- a/extensions/byteplus/openclaw.plugin.json +++ b/extensions/byteplus/openclaw.plugin.json @@ -1,6 +1,7 @@ { "id": "byteplus", "enabledByDefault": true, + "providerDiscoveryEntry": "./provider-discovery.ts", "providers": ["byteplus", "byteplus-plan"], "providerAuthEnvVars": { "byteplus": ["BYTEPLUS_API_KEY"] diff --git a/extensions/byteplus/provider-discovery.ts b/extensions/byteplus/provider-discovery.ts new file mode 100644 index 000000000000..c761f07d887c --- /dev/null +++ b/extensions/byteplus/provider-discovery.ts @@ -0,0 +1,31 @@ +import type { ProviderPlugin } from "openclaw/plugin-sdk/provider-model-shared"; +import { buildBytePlusCodingProvider, buildBytePlusProvider } from "./provider-catalog.js"; + +export const bytePlusProviderDiscovery: ProviderPlugin[] = [ + { + id: "byteplus", + label: "BytePlus", + docsPath: "/providers/models", + auth: [], + staticCatalog: { + order: "simple", + run: async () => ({ + provider: buildBytePlusProvider(), + }), + }, + }, + { + id: "byteplus-plan", + label: "BytePlus Plan", + docsPath: "/providers/models", + auth: [], + staticCatalog: { + order: "simple", + run: async () => ({ + provider: buildBytePlusCodingProvider(), + }), + }, + }, +]; + +export default bytePlusProviderDiscovery; diff --git a/extensions/chutes/openclaw.plugin.json b/extensions/chutes/openclaw.plugin.json index 26174f31b3a6..6d7775ed13e0 100644 --- a/extensions/chutes/openclaw.plugin.json +++ b/extensions/chutes/openclaw.plugin.json @@ -1,6 +1,7 @@ { "id": "chutes", "enabledByDefault": true, + "providerDiscoveryEntry": "./provider-discovery.ts", "providers": ["chutes"], "providerAuthEnvVars": { "chutes": ["CHUTES_API_KEY", "CHUTES_OAUTH_TOKEN"] diff --git a/extensions/chutes/provider-discovery.ts b/extensions/chutes/provider-discovery.ts new file mode 100644 index 000000000000..5587291343e4 --- /dev/null +++ b/extensions/chutes/provider-discovery.ts @@ -0,0 +1,17 @@ +import type { ProviderPlugin } from "openclaw/plugin-sdk/provider-model-shared"; +import { buildStaticChutesProvider } from "./provider-catalog.js"; + +export const chutesProviderDiscovery: ProviderPlugin = { + id: "chutes", + label: "Chutes", + docsPath: "/providers/models", + auth: [], + staticCatalog: { + order: "profile", + run: async () => ({ + provider: buildStaticChutesProvider(), + }), + }, +}; + +export default chutesProviderDiscovery; diff --git a/extensions/deepseek/openclaw.plugin.json b/extensions/deepseek/openclaw.plugin.json index 8981657c4e53..7acb4ae1c950 100644 --- a/extensions/deepseek/openclaw.plugin.json +++ b/extensions/deepseek/openclaw.plugin.json @@ -1,6 +1,7 @@ { "id": "deepseek", "enabledByDefault": true, + "providerDiscoveryEntry": "./provider-discovery.ts", "providers": ["deepseek"], "providerAuthEnvVars": { "deepseek": ["DEEPSEEK_API_KEY"] diff --git a/extensions/deepseek/provider-discovery.ts b/extensions/deepseek/provider-discovery.ts new file mode 100644 index 000000000000..27b172750891 --- /dev/null +++ b/extensions/deepseek/provider-discovery.ts @@ -0,0 +1,17 @@ +import type { ProviderPlugin } from "openclaw/plugin-sdk/provider-model-shared"; +import { buildDeepSeekProvider } from "./provider-catalog.js"; + +export const deepSeekProviderDiscovery: ProviderPlugin = { + id: "deepseek", + label: "DeepSeek", + docsPath: "/providers/deepseek", + auth: [], + staticCatalog: { + order: "simple", + run: async () => ({ + provider: buildDeepSeekProvider(), + }), + }, +}; + +export default deepSeekProviderDiscovery; diff --git a/extensions/kilocode/openclaw.plugin.json b/extensions/kilocode/openclaw.plugin.json index ef3d29a20df5..01f1a43b21df 100644 --- a/extensions/kilocode/openclaw.plugin.json +++ b/extensions/kilocode/openclaw.plugin.json @@ -1,6 +1,7 @@ { "id": "kilocode", "enabledByDefault": true, + "providerDiscoveryEntry": "./provider-discovery.ts", "providers": ["kilocode"], "providerAuthEnvVars": { "kilocode": ["KILOCODE_API_KEY"] diff --git a/extensions/kilocode/provider-discovery.ts b/extensions/kilocode/provider-discovery.ts new file mode 100644 index 000000000000..806200f73983 --- /dev/null +++ b/extensions/kilocode/provider-discovery.ts @@ -0,0 +1,17 @@ +import type { ProviderPlugin } from "openclaw/plugin-sdk/provider-model-shared"; +import { buildKilocodeProvider } from "./provider-catalog.js"; + +export const kilocodeProviderDiscovery: ProviderPlugin = { + id: "kilocode", + label: "Kilo Code", + docsPath: "/providers/models", + auth: [], + staticCatalog: { + order: "simple", + run: async () => ({ + provider: buildKilocodeProvider(), + }), + }, +}; + +export default kilocodeProviderDiscovery; diff --git a/extensions/moonshot/openclaw.plugin.json b/extensions/moonshot/openclaw.plugin.json index db2af85de0e8..71c7b1d149c8 100644 --- a/extensions/moonshot/openclaw.plugin.json +++ b/extensions/moonshot/openclaw.plugin.json @@ -1,6 +1,7 @@ { "id": "moonshot", "enabledByDefault": true, + "providerDiscoveryEntry": "./provider-discovery.ts", "providers": ["moonshot"], "providerAuthEnvVars": { "moonshot": ["MOONSHOT_API_KEY", "KIMI_API_KEY"] diff --git a/extensions/moonshot/provider-discovery.ts b/extensions/moonshot/provider-discovery.ts new file mode 100644 index 000000000000..c9590b131446 --- /dev/null +++ b/extensions/moonshot/provider-discovery.ts @@ -0,0 +1,17 @@ +import type { ProviderPlugin } from "openclaw/plugin-sdk/provider-model-shared"; +import { buildMoonshotProvider } from "./provider-catalog.js"; + +export const moonshotProviderDiscovery: ProviderPlugin = { + id: "moonshot", + label: "Moonshot", + docsPath: "/providers/moonshot", + auth: [], + staticCatalog: { + order: "simple", + run: async () => ({ + provider: buildMoonshotProvider(), + }), + }, +}; + +export default moonshotProviderDiscovery; diff --git a/extensions/tencent/openclaw.plugin.json b/extensions/tencent/openclaw.plugin.json index ddf0791250c8..197c209046db 100644 --- a/extensions/tencent/openclaw.plugin.json +++ b/extensions/tencent/openclaw.plugin.json @@ -1,6 +1,7 @@ { "id": "tencent", "enabledByDefault": true, + "providerDiscoveryEntry": "./provider-discovery.ts", "providers": ["tencent-tokenhub"], "providerAuthEnvVars": { "tencent-tokenhub": ["TOKENHUB_API_KEY"] diff --git a/extensions/tencent/provider-discovery.ts b/extensions/tencent/provider-discovery.ts new file mode 100644 index 000000000000..ae8689c3920d --- /dev/null +++ b/extensions/tencent/provider-discovery.ts @@ -0,0 +1,17 @@ +import type { ProviderPlugin } from "openclaw/plugin-sdk/provider-model-shared"; +import { buildTokenHubProvider } from "./provider-catalog.js"; + +export const tencentProviderDiscovery: ProviderPlugin = { + id: "tencent-tokenhub", + label: "Tencent TokenHub", + docsPath: "/providers/models", + auth: [], + staticCatalog: { + order: "simple", + run: async () => ({ + provider: buildTokenHubProvider(), + }), + }, +}; + +export default tencentProviderDiscovery; diff --git a/extensions/vercel-ai-gateway/openclaw.plugin.json b/extensions/vercel-ai-gateway/openclaw.plugin.json index 865c7d9765ca..a4b576ffba12 100644 --- a/extensions/vercel-ai-gateway/openclaw.plugin.json +++ b/extensions/vercel-ai-gateway/openclaw.plugin.json @@ -1,6 +1,7 @@ { "id": "vercel-ai-gateway", "enabledByDefault": true, + "providerDiscoveryEntry": "./provider-discovery.ts", "providers": ["vercel-ai-gateway"], "providerAuthEnvVars": { "vercel-ai-gateway": ["AI_GATEWAY_API_KEY"] diff --git a/extensions/vercel-ai-gateway/provider-discovery.ts b/extensions/vercel-ai-gateway/provider-discovery.ts new file mode 100644 index 000000000000..658646ae3bf6 --- /dev/null +++ b/extensions/vercel-ai-gateway/provider-discovery.ts @@ -0,0 +1,17 @@ +import type { ProviderPlugin } from "openclaw/plugin-sdk/provider-model-shared"; +import { buildStaticVercelAiGatewayProvider } from "./provider-catalog.js"; + +export const vercelAiGatewayProviderDiscovery: ProviderPlugin = { + id: "vercel-ai-gateway", + label: "Vercel AI Gateway", + docsPath: "/providers/models", + auth: [], + staticCatalog: { + order: "simple", + run: async () => ({ + provider: buildStaticVercelAiGatewayProvider(), + }), + }, +}; + +export default vercelAiGatewayProviderDiscovery; diff --git a/extensions/volcengine/openclaw.plugin.json b/extensions/volcengine/openclaw.plugin.json index 98ce4c256af3..e64f0a4048cd 100644 --- a/extensions/volcengine/openclaw.plugin.json +++ b/extensions/volcengine/openclaw.plugin.json @@ -1,6 +1,7 @@ { "id": "volcengine", "enabledByDefault": true, + "providerDiscoveryEntry": "./provider-discovery.ts", "providers": ["volcengine", "volcengine-plan"], "providerAuthEnvVars": { "volcengine": ["VOLCANO_ENGINE_API_KEY"] diff --git a/extensions/volcengine/provider-discovery.ts b/extensions/volcengine/provider-discovery.ts new file mode 100644 index 000000000000..14f878c4bd91 --- /dev/null +++ b/extensions/volcengine/provider-discovery.ts @@ -0,0 +1,31 @@ +import type { ProviderPlugin } from "openclaw/plugin-sdk/provider-model-shared"; +import { buildDoubaoCodingProvider, buildDoubaoProvider } from "./provider-catalog.js"; + +export const volcengineProviderDiscovery: ProviderPlugin[] = [ + { + id: "volcengine", + label: "Volcengine", + docsPath: "/providers/models", + auth: [], + staticCatalog: { + order: "simple", + run: async () => ({ + provider: buildDoubaoProvider(), + }), + }, + }, + { + id: "volcengine-plan", + label: "Volcengine Plan", + docsPath: "/providers/models", + auth: [], + staticCatalog: { + order: "simple", + run: async () => ({ + provider: buildDoubaoCodingProvider(), + }), + }, + }, +]; + +export default volcengineProviderDiscovery;