Files
Peter Steinberger e30217d25c refactor(providers): shared manifest row builder and fleet default-model adoption (#113879)
* feat(plugin-sdk): add manifest model row builder

* refactor(providers): share manifest model row building

* refactor(providers): source defaults from manifests

* refactor(providers): drop unconsumed builder aliases

* fix(providers): keep Cohere catalog internal
2026-07-25 15:00:02 -07:00

59 lines
2.0 KiB
TypeScript

import { readManifestProviderDefaultModelRef } from "openclaw/plugin-sdk/provider-catalog-shared";
import {
applyAgentDefaultModelPrimary,
createModelCatalogPresetAppliers,
type OpenClawConfig,
} from "openclaw/plugin-sdk/provider-onboard";
import { CHUTES_BASE_URL, CHUTES_MODEL_CATALOG } from "./models.js";
import manifest from "./openclaw.plugin.json" with { type: "json" };
export const CHUTES_DEFAULT_MODEL_ID = manifest.modelCatalog.providers.chutes.defaultModel;
export const CHUTES_DEFAULT_MODEL_REF = readManifestProviderDefaultModelRef(manifest, "chutes")!;
const chutesPresetAppliers = createModelCatalogPresetAppliers({
primaryModelRef: CHUTES_DEFAULT_MODEL_REF,
resolveParams: (_cfg: OpenClawConfig) => ({
providerId: "chutes",
api: "openai-completions",
baseUrl: CHUTES_BASE_URL,
catalogModels: structuredClone(CHUTES_MODEL_CATALOG),
aliases: [
...CHUTES_MODEL_CATALOG.map((model) => `chutes/${model.id}`),
{
modelRef: "chutes-vision",
alias: "chutes/moonshotai/Kimi-K2.6-TEE",
},
{ modelRef: "chutes-pro", alias: "chutes/deepseek-ai/DeepSeek-V3.2-TEE" },
],
}),
});
export function applyChutesProviderConfig(cfg: OpenClawConfig): OpenClawConfig {
return chutesPresetAppliers.applyProviderConfig(cfg);
}
export function applyChutesConfig(cfg: OpenClawConfig): OpenClawConfig {
const next = applyChutesProviderConfig(cfg);
return {
...next,
agents: {
...next.agents,
defaults: {
...next.agents?.defaults,
model: {
primary: CHUTES_DEFAULT_MODEL_REF,
fallbacks: ["chutes/deepseek-ai/DeepSeek-V3.2-TEE", "chutes/moonshotai/Kimi-K2.6-TEE"],
},
imageModel: {
primary: "chutes/moonshotai/Kimi-K2.6-TEE",
fallbacks: ["chutes/Qwen/Qwen3.6-27B-TEE"],
},
},
},
};
}
export function applyChutesApiKeyConfig(cfg: OpenClawConfig): OpenClawConfig {
return applyAgentDefaultModelPrimary(applyChutesProviderConfig(cfg), CHUTES_DEFAULT_MODEL_REF);
}