Files
openclaw/extensions/volcengine/index.ts
T
Peter Steinberger 5b29a1e278 refactor(providers): consolidate sibling adapters (#117822)
* refactor(providers): consolidate sibling adapters

* fix(providers): preserve concrete plugin entry type
2026-08-01 22:10:06 -07:00

43 lines
1.8 KiB
TypeScript

// Volcengine plugin entrypoint registers its OpenClaw integration.
import { buildOpenAICompatibleProviderFamilyCatalog } from "openclaw/plugin-sdk/provider-catalog-live-runtime";
import { readManifestProviderDefaultModelRef } from "openclaw/plugin-sdk/provider-catalog-shared";
import { defineSingleProviderPluginEntry } from "openclaw/plugin-sdk/provider-entry";
import { ensureModelAllowlistEntry } from "openclaw/plugin-sdk/provider-onboard";
import { applyVolcengineToolSchemaCompat } from "./api.js";
import { VOLCENGINE_PROVIDER_CATALOG } from "./models.js";
import manifest from "./openclaw.plugin.json" with { type: "json" };
import { buildVolcengineSpeechProvider } from "./speech-provider.js";
const PROVIDER_ID = "volcengine";
const VOLCENGINE_DEFAULT_MODEL_REF = readManifestProviderDefaultModelRef(
manifest,
"volcengine-plan",
)!;
export default defineSingleProviderPluginEntry({
id: PROVIDER_ID,
name: "Volcengine Provider",
description: "Bundled Volcengine provider plugin",
manifest,
provider: {
label: "Volcengine",
docsPath: "/concepts/model-providers#volcano-engine-doubao",
hookAliases: ["volcengine-plan"],
manifestAuth: {
defaultModel: VOLCENGINE_DEFAULT_MODEL_REF,
applyConfig: (cfg) =>
ensureModelAllowlistEntry({ cfg, modelRef: VOLCENGINE_DEFAULT_MODEL_REF }),
},
...buildOpenAICompatibleProviderFamilyCatalog({
credentialProviderId: PROVIDER_ID,
entries: VOLCENGINE_PROVIDER_CATALOG.entries,
staticCatalog: VOLCENGINE_PROVIDER_CATALOG.staticCatalog,
augmentModelCatalog: VOLCENGINE_PROVIDER_CATALOG.augmentModelCatalog,
}),
normalizeResolvedModel: ({ model }) => applyVolcengineToolSchemaCompat(model),
},
register(api) {
api.registerSpeechProvider(buildVolcengineSpeechProvider());
},
});