Files
openclaw/src/agents/model-compat.ts
Peter Steinberger 3640484e28 fix(agents): map Moonshot developer role compatibility
Co-authored-by: Sheng-Fu Chuang <sedernet@gmail.com>

# Conflicts:
#	CHANGELOG.md
2026-02-23 12:44:23 +00:00

29 lines
901 B
TypeScript

import type { Api, Model } from "@mariozechner/pi-ai";
function isOpenAiCompletionsModel(model: Model<Api>): model is Model<"openai-completions"> {
return model.api === "openai-completions";
}
export function normalizeModelCompat(model: Model<Api>): Model<Api> {
const baseUrl = model.baseUrl ?? "";
const isZai = model.provider === "zai" || baseUrl.includes("api.z.ai");
const isMoonshot =
model.provider === "moonshot" ||
baseUrl.includes("moonshot.ai") ||
baseUrl.includes("moonshot.cn");
if ((!isZai && !isMoonshot) || !isOpenAiCompletionsModel(model)) {
return model;
}
const openaiModel = model;
const compat = openaiModel.compat ?? undefined;
if (compat?.supportsDeveloperRole === false) {
return model;
}
openaiModel.compat = compat
? { ...compat, supportsDeveloperRole: false }
: { supportsDeveloperRole: false };
return openaiModel;
}