Files
openclaw/extensions/qianfan/onboard.ts
Peter Steinberger 430c293ee0 refactor: remove duplicate provider and runtime code (#115529)
* refactor: remove duplicated runtime and provider code

* refactor: exclude unrelated browser test cleanup

* refactor: preserve canonical subagent cleanup ordering
2026-07-29 00:04:52 -04:00

55 lines
1.6 KiB
TypeScript

// Qianfan setup module handles plugin onboarding behavior.
import {
createDefaultModelsPresetAppliers,
type ModelApi,
type OpenClawConfig,
} from "openclaw/plugin-sdk/provider-onboard";
import {
buildQianfanProvider,
QIANFAN_BASE_URL,
QIANFAN_DEFAULT_MODEL_ID,
} from "./provider-catalog.js";
export const QIANFAN_DEFAULT_MODEL_REF = `qianfan/${QIANFAN_DEFAULT_MODEL_ID}`;
function resolveQianfanPreset(cfg: OpenClawConfig): {
api: ModelApi;
baseUrl: string;
defaultModels: NonNullable<ReturnType<typeof buildQianfanProvider>["models"]>;
} {
const defaultProvider = buildQianfanProvider();
const existingProvider = cfg.models?.providers?.qianfan as
| {
baseUrl?: unknown;
api?: unknown;
}
| undefined;
const existingBaseUrl =
typeof existingProvider?.baseUrl === "string" ? existingProvider.baseUrl.trim() : "";
const api =
typeof existingProvider?.api === "string"
? (existingProvider.api as ModelApi)
: "openai-completions";
return {
api,
baseUrl: existingBaseUrl || QIANFAN_BASE_URL,
defaultModels: defaultProvider.models ?? [],
};
}
export const { applyConfig: applyQianfanConfig } = createDefaultModelsPresetAppliers<[]>({
primaryModelRef: QIANFAN_DEFAULT_MODEL_REF,
resolveParams: (cfg: OpenClawConfig) => {
const preset = resolveQianfanPreset(cfg);
return {
providerId: "qianfan",
api: preset.api,
baseUrl: preset.baseUrl,
defaultModels: preset.defaultModels,
defaultModelId: QIANFAN_DEFAULT_MODEL_ID,
aliases: [{ modelRef: QIANFAN_DEFAULT_MODEL_REF, alias: "QIANFAN" }],
};
},
});