openclaw
Version:
Multi-channel AI gateway with extensible messaging integrations
32 lines (31 loc) • 1.24 kB
JavaScript
import { a as normalizeLowercaseStringOrEmpty } from "./string-coerce-mnp54Vah.js";
import "./string-coerce-runtime-CEGJWkQ_.js";
//#region extensions/openrouter/models.ts
const OPENROUTER_MISTRAL_MODEL_PREFIXES = [
"mistralai/",
"mistral/",
"mistral-",
"codestral-",
"devstral-",
"ministral-",
"mixtral-",
"pixtral-",
"voxtral-"
];
function normalizeOpenRouterModelId(modelId) {
if (typeof modelId !== "string") return;
const normalized = normalizeLowercaseStringOrEmpty(modelId);
return normalized.startsWith("openrouter/") ? normalized.slice(11) : normalized;
}
function isOpenRouterMistralModelId(modelId) {
const normalized = normalizeOpenRouterModelId(modelId);
return Boolean(normalized && OPENROUTER_MISTRAL_MODEL_PREFIXES.some((prefix) => normalized.startsWith(prefix)));
}
function isOpenRouterDeepSeekV4ModelId(modelId) {
const normalized = normalizeOpenRouterModelId(modelId);
if (!normalized?.startsWith("deepseek/")) return false;
const deepSeekModelId = normalized.slice(9).split(":", 1)[0];
return deepSeekModelId === "deepseek-v4-flash" || deepSeekModelId === "deepseek-v4-pro";
}
//#endregion
export { isOpenRouterMistralModelId as n, normalizeOpenRouterModelId as r, isOpenRouterDeepSeekV4ModelId as t };