


















@@ -7,10 +7,10 @@ import { resolveProviderRequestCapabilities } from "../agents/provider-attributi
77import { findNormalizedProviderKey } from "../agents/provider-id.js";
88import type { ModelDefinitionConfig } from "../config/types.models.js";
99import type { OpenClawConfig } from "../config/types.openclaw.js";
10+import { normalizeModelCatalog } from "../model-catalog/normalize.js";
1011import type {
1112ModelCatalogCost,
1213ModelCatalogModel,
13-ModelCatalogProvider,
1414ModelCatalogTieredCost,
1515} from "../model-catalog/types.js";
1616import type { ModelProviderConfig } from "./provider-model-shared.js";
@@ -90,19 +90,23 @@ function buildManifestCatalogModel(model: ModelCatalogModel): ModelDefinitionCon
90909191export function buildManifestModelProviderConfig(params: {
9292providerId: string;
93-catalog: ModelCatalogProvider | undefined;
93+catalog: unknown;
9494}): ModelProviderConfig {
95-if (!params.catalog) {
95+const catalog = normalizeModelCatalog(
96+{ providers: { [params.providerId]: params.catalog } },
97+{ ownedProviders: new Set([params.providerId]) },
98+)?.providers?.[params.providerId];
99+if (!catalog) {
96100throw new Error(`Missing modelCatalog.providers.${params.providerId}`);
97101}
98-if (!params.catalog.baseUrl) {
102+if (!catalog.baseUrl) {
99103throw new Error(`Missing modelCatalog.providers.${params.providerId}.baseUrl`);
100104}
101105return {
102-baseUrl: params.catalog.baseUrl,
103- ...(params.catalog.api ? { api: params.catalog.api } : {}),
104- ...(params.catalog.headers ? { headers: { ...params.catalog.headers } } : {}),
105-models: params.catalog.models.map(buildManifestCatalogModel),
106+baseUrl: catalog.baseUrl,
107+ ...(catalog.api ? { api: catalog.api } : {}),
108+ ...(catalog.headers ? { headers: { ...catalog.headers } } : {}),
109+models: catalog.models.map(buildManifestCatalogModel),
106110};
107111}
108112此内容由惯性聚合(RSS阅读器)自动聚合整理,仅供阅读参考。 原文来自 — 版权归原作者所有。