feat(ai): add Moonshot AI provider model support

This commit is contained in:
Armin Ronacher
2026-04-30 16:12:03 +02:00
parent ebdf3cf451
commit 7dc1bed478
8 changed files with 338 additions and 13 deletions

View File

@@ -1027,6 +1027,7 @@ function detectCompat(model: Model<"openai-completions">): ResolvedOpenAIComplet
const baseUrl = model.baseUrl;
const isZai = provider === "zai" || baseUrl.includes("api.z.ai");
const isMoonshot = provider === "moonshotai" || provider === "moonshotai-cn" || baseUrl.includes("api.moonshot.");
const isCloudflareWorkersAI = provider === "cloudflare-workers-ai" || baseUrl.includes("api.cloudflare.com");
const isNonStandard =
@@ -1037,11 +1038,12 @@ function detectCompat(model: Model<"openai-completions">): ResolvedOpenAIComplet
baseUrl.includes("chutes.ai") ||
baseUrl.includes("deepseek.com") ||
isZai ||
isMoonshot ||
provider === "opencode" ||
baseUrl.includes("opencode.ai") ||
isCloudflareWorkersAI;
const useMaxTokens = baseUrl.includes("chutes.ai");
const useMaxTokens = baseUrl.includes("chutes.ai") || isMoonshot;
const isGrok = provider === "xai" || baseUrl.includes("api.x.ai");
const isGroq = provider === "groq" || baseUrl.includes("groq.com");
@@ -1068,7 +1070,7 @@ function detectCompat(model: Model<"openai-completions">): ResolvedOpenAIComplet
return {
supportsStore: !isNonStandard,
supportsDeveloperRole: !isNonStandard,
supportsReasoningEffort: !isGrok && !isZai,
supportsReasoningEffort: !isGrok && !isZai && !isMoonshot,
reasoningEffortMap,
supportsUsageInStreaming: true,
maxTokensField: useMaxTokens ? "max_tokens" : "max_completion_tokens",
@@ -1086,7 +1088,7 @@ function detectCompat(model: Model<"openai-completions">): ResolvedOpenAIComplet
openRouterRouting: {},
vercelGatewayRouting: {},
zaiToolStream: false,
supportsStrictMode: true,
supportsStrictMode: !isMoonshot,
cacheControlFormat,
sendSessionAffinityHeaders: false,
supportsLongCacheRetention: true,