Files
openclaw/extensions/kimi-coding/onboard.ts
Peter Steinberger 99ec30b44b feat(plugins): catch code-mode drift between catalogs shipping the same model (#115183)
* feat(plugins): catch code-mode drift between catalogs sharing one model

Adds a contract test that groups bundled catalog rows by shared upstream
model and requires every row in a group to declare compat.codeMode once any
sibling does. Rows sharing a model id group automatically; rows under
different ids opt in with the new manifest-only `upstreamModel` marker.

Moves the kimi catalog into its manifest so the scan can see it, and records
the tier reseller catalogs were silently missing as explicit "capable".

* docs: regenerate docs map for the shared-model code-mode section
2026-07-28 08:52:21 -04:00

42 lines
1.2 KiB
TypeScript

// Kimi Coding setup module handles plugin onboarding behavior.
import {
createDefaultModelPresetAppliers,
type OpenClawConfig,
} from "openclaw/plugin-sdk/provider-onboard";
import {
buildKimiCodingProvider,
KIMI_CODING_BASE_URL,
KIMI_CODING_DEFAULT_MODEL_ID,
} from "./provider-catalog.js";
export const KIMI_MODEL_REF = `kimi/${KIMI_CODING_DEFAULT_MODEL_ID}`;
export const KIMI_CODING_MODEL_REF = KIMI_MODEL_REF;
function resolveKimiCodingDefaultModel() {
return buildKimiCodingProvider().models.find(
(model) => model.id === KIMI_CODING_DEFAULT_MODEL_ID,
);
}
const kimiCodingPresetAppliers = createDefaultModelPresetAppliers({
primaryModelRef: KIMI_MODEL_REF,
resolveParams: (_cfg: OpenClawConfig) => {
const defaultModel = resolveKimiCodingDefaultModel();
if (!defaultModel) {
return null;
}
return {
providerId: "kimi",
api: "anthropic-messages",
baseUrl: KIMI_CODING_BASE_URL,
defaultModel,
defaultModelId: KIMI_CODING_DEFAULT_MODEL_ID,
aliases: [{ modelRef: KIMI_MODEL_REF, alias: "Kimi" }],
};
},
});
export function applyKimiCodeConfig(cfg: OpenClawConfig): OpenClawConfig {
return kimiCodingPresetAppliers.applyConfig(cfg);
}