Files
clawdbot/src/agents/model-compat.ts
2026-01-20 16:38:08 +00:00

21 lines
790 B
TypeScript

import type { Api, Model, OpenAICompat } 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");
if (!isZai || !isOpenAiCompletionsModel(model)) return model;
const openaiModel = model as Model<"openai-completions">;
const compat = openaiModel.compat as OpenAICompat | undefined;
if (compat?.supportsDeveloperRole === false) return model;
openaiModel.compat = compat
? { ...compat, supportsDeveloperRole: false }
: { supportsDeveloperRole: false };
return openaiModel;
}