Files
openclaw/extensions/xiaomi/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

92 lines
2.8 KiB
TypeScript

// Xiaomi setup module handles plugin onboarding behavior.
import {
createDefaultModelsPresetAppliers,
type OpenClawConfig,
} from "openclaw/plugin-sdk/provider-onboard";
import {
buildXiaomiProvider,
buildXiaomiTokenPlanProvider,
resolveXiaomiTokenPlanBaseUrl,
XIAOMI_DEFAULT_MODEL_ID,
XIAOMI_PROVIDER_ID,
XIAOMI_TOKEN_PLAN_DEFAULT_MODEL_ID,
XIAOMI_TOKEN_PLAN_PROVIDER_ID,
type XiaomiTokenPlanRegion,
} from "./provider-catalog.js";
export const XIAOMI_DEFAULT_MODEL_REF = `${XIAOMI_PROVIDER_ID}/${XIAOMI_DEFAULT_MODEL_ID}`;
export const XIAOMI_TOKEN_PLAN_DEFAULT_MODEL_REF = `${XIAOMI_TOKEN_PLAN_PROVIDER_ID}/${XIAOMI_TOKEN_PLAN_DEFAULT_MODEL_ID}`;
export const { applyConfig: applyXiaomiConfig, applyProviderConfig: applyXiaomiProviderConfig } =
createDefaultModelsPresetAppliers<[]>({
primaryModelRef: XIAOMI_DEFAULT_MODEL_REF,
resolveParams: () => {
const defaultProvider = buildXiaomiProvider();
return {
providerId: XIAOMI_PROVIDER_ID,
api: defaultProvider.api ?? "openai-completions",
baseUrl: defaultProvider.baseUrl,
defaultModels: defaultProvider.models ?? [],
defaultModelId: XIAOMI_DEFAULT_MODEL_ID,
aliases: [{ modelRef: XIAOMI_DEFAULT_MODEL_REF, alias: "Xiaomi" }],
};
},
});
const xiaomiTokenPlanPresetAppliers = createDefaultModelsPresetAppliers<[]>({
primaryModelRef: XIAOMI_TOKEN_PLAN_DEFAULT_MODEL_REF,
resolveParams: () => {
const defaultProvider = buildXiaomiTokenPlanProvider();
return {
providerId: XIAOMI_TOKEN_PLAN_PROVIDER_ID,
api: defaultProvider.api ?? "openai-completions",
baseUrl: defaultProvider.baseUrl,
defaultModels: defaultProvider.models ?? [],
defaultModelId: XIAOMI_TOKEN_PLAN_DEFAULT_MODEL_ID,
aliases: (() => {
const defaultModel = defaultProvider.models?.find(
(m) => m.id === XIAOMI_TOKEN_PLAN_DEFAULT_MODEL_ID,
);
return [
{
modelRef: XIAOMI_TOKEN_PLAN_DEFAULT_MODEL_REF,
alias: defaultModel?.name ?? "MiMo V2.5 Pro",
},
];
})(),
};
},
});
function withProviderBaseUrl(
cfg: OpenClawConfig,
providerId: string,
baseUrl: string,
): OpenClawConfig {
const providers: Record<string, unknown> = {
...cfg.models?.providers,
[providerId]: {
...cfg.models?.providers?.[providerId],
baseUrl,
},
};
return {
...cfg,
models: {
...cfg.models,
providers,
},
} as OpenClawConfig;
}
export function applyXiaomiTokenPlanConfig(
cfg: OpenClawConfig,
region: XiaomiTokenPlanRegion,
): OpenClawConfig {
return withProviderBaseUrl(
xiaomiTokenPlanPresetAppliers.applyConfig(cfg),
XIAOMI_TOKEN_PLAN_PROVIDER_ID,
resolveXiaomiTokenPlanBaseUrl(region),
);
}