Files
openclaw/extensions/fireworks/provider-catalog.ts
Peter Steinberger be6ec97e11 refactor(providers): manifest-declared default models and unified onboarding presets (#113794)
* feat(model-catalog): declare provider default models

* refactor(providers): source onboarding defaults from manifests

* fix(cohere): remove unused model id export

* fix(chutes): preserve public default model id

* fix(model-catalog): accept provider default models
2026-07-25 12:54:53 -07:00

50 lines
1.8 KiB
TypeScript

import {
buildManifestModelProviderConfig,
readManifestProviderDefaultModelRef,
} from "openclaw/plugin-sdk/provider-catalog-shared";
import type {
ModelDefinitionConfig,
ModelProviderConfig,
} from "openclaw/plugin-sdk/provider-model-shared";
import manifest from "./openclaw.plugin.json" with { type: "json" };
const FIREWORKS_MANIFEST_PROVIDER = buildManifestModelProviderConfig({
providerId: "fireworks",
catalog: manifest.modelCatalog.providers.fireworks,
});
export const FIREWORKS_DEFAULT_MODEL_REF = readManifestProviderDefaultModelRef(
manifest,
"fireworks",
)!;
export const FIREWORKS_BASE_URL = FIREWORKS_MANIFEST_PROVIDER.baseUrl;
export const FIREWORKS_DEFAULT_MODEL_ID = FIREWORKS_DEFAULT_MODEL_REF.slice("fireworks/".length);
function requireFireworksManifestModel(id: string): ModelDefinitionConfig {
const model = FIREWORKS_MANIFEST_PROVIDER.models.find((entry) => entry.id === id);
if (!model) {
throw new Error(`Missing Fireworks modelCatalog row ${id}`);
}
return model;
}
const FIREWORKS_DEFAULT_MODEL = requireFireworksManifestModel(FIREWORKS_DEFAULT_MODEL_ID);
export const FIREWORKS_DEFAULT_CONTEXT_WINDOW = FIREWORKS_DEFAULT_MODEL.contextWindow;
export const FIREWORKS_DEFAULT_MAX_TOKENS = FIREWORKS_DEFAULT_MODEL.maxTokens;
export function isFireworksCatalogModelId(modelId: string): boolean {
return FIREWORKS_MANIFEST_PROVIDER.models.some((model) => model.id === modelId);
}
export function buildFireworksCatalogModels(): ModelDefinitionConfig[] {
return FIREWORKS_MANIFEST_PROVIDER.models.map((model) => structuredClone(model));
}
export function buildFireworksProvider(): ModelProviderConfig {
return buildManifestModelProviderConfig({
providerId: "fireworks",
catalog: manifest.modelCatalog.providers.fireworks,
});
}