fix: normalize raw manifest provider catalogs

This commit is contained in:
Shakker
2026-04-28 03:49:12 +01:00
parent a047144660
commit 2d8ee0452e
2 changed files with 13 additions and 9 deletions

View File

@@ -21,5 +21,5 @@ export function buildCerebrasModelDefinition(
providerId: "cerebras",
catalog: { ...CEREBRAS_MANIFEST_CATALOG, models: [model] },
});
return providerConfig.models[0]!;
return providerConfig.models[0];
}

View File

@@ -7,10 +7,10 @@ import { resolveProviderRequestCapabilities } from "../agents/provider-attributi
import { findNormalizedProviderKey } from "../agents/provider-id.js";
import type { ModelDefinitionConfig } from "../config/types.models.js";
import type { OpenClawConfig } from "../config/types.openclaw.js";
import { normalizeModelCatalog } from "../model-catalog/normalize.js";
import type {
ModelCatalogCost,
ModelCatalogModel,
ModelCatalogProvider,
ModelCatalogTieredCost,
} from "../model-catalog/types.js";
import type { ModelProviderConfig } from "./provider-model-shared.js";
@@ -90,19 +90,23 @@ function buildManifestCatalogModel(model: ModelCatalogModel): ModelDefinitionCon
export function buildManifestModelProviderConfig(params: {
providerId: string;
catalog: ModelCatalogProvider | undefined;
catalog: unknown;
}): ModelProviderConfig {
if (!params.catalog) {
const catalog = normalizeModelCatalog(
{ providers: { [params.providerId]: params.catalog } },
{ ownedProviders: new Set([params.providerId]) },
)?.providers?.[params.providerId];
if (!catalog) {
throw new Error(`Missing modelCatalog.providers.${params.providerId}`);
}
if (!params.catalog.baseUrl) {
if (!catalog.baseUrl) {
throw new Error(`Missing modelCatalog.providers.${params.providerId}.baseUrl`);
}
return {
baseUrl: params.catalog.baseUrl,
...(params.catalog.api ? { api: params.catalog.api } : {}),
...(params.catalog.headers ? { headers: { ...params.catalog.headers } } : {}),
models: params.catalog.models.map(buildManifestCatalogModel),
baseUrl: catalog.baseUrl,
...(catalog.api ? { api: catalog.api } : {}),
...(catalog.headers ? { headers: { ...catalog.headers } } : {}),
models: catalog.models.map(buildManifestCatalogModel),
};
}