mirror of
https://github.com/openclaw/openclaw.git
synced 2026-08-24 11:25:50 -06:00
e30217d25c
* 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
29 lines
1.0 KiB
TypeScript
29 lines
1.0 KiB
TypeScript
/**
|
|
* Chutes provider builders for static and dynamically discovered catalogs.
|
|
*/
|
|
import type { ModelProviderConfig } from "openclaw/plugin-sdk/provider-model-shared";
|
|
import { CHUTES_BASE_URL, CHUTES_MODEL_CATALOG, discoverChutesModels } from "./models.js";
|
|
|
|
/** Builds the static Chutes provider catalog from bundled model metadata. */
|
|
export function buildStaticChutesProvider(): ModelProviderConfig {
|
|
return {
|
|
baseUrl: CHUTES_BASE_URL,
|
|
api: "openai-completions",
|
|
models: structuredClone(CHUTES_MODEL_CATALOG),
|
|
};
|
|
}
|
|
|
|
/**
|
|
* Build the Chutes provider with dynamic model discovery.
|
|
* Falls back to the static catalog on failure.
|
|
* Accepts an optional access token (API key or OAuth access token) for authenticated discovery.
|
|
*/
|
|
export async function buildChutesProvider(accessToken?: string): Promise<ModelProviderConfig> {
|
|
const models = await discoverChutesModels(accessToken);
|
|
return {
|
|
baseUrl: CHUTES_BASE_URL,
|
|
api: "openai-completions",
|
|
models: models.length > 0 ? models : structuredClone(CHUTES_MODEL_CATALOG),
|
|
};
|
|
}
|