mirror of
https://github.com/openclaw/openclaw.git
synced 2026-08-02 09:51:33 +00:00
* 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
42 lines
1.2 KiB
TypeScript
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);
|
|
}
|