fix: switch alibaba-coding-plan to OpenAI-compat endpoint with proper compat flags (#1003)

The alibaba-coding-plan provider was using the Anthropic-compatible
endpoint (/apps/anthropic) with anthropic-messages API, which caused
issues with thinking mode on several models (MiniMax-M2.5 thinking
loop, missing thinkingFormat for Qwen/GLM models).

Changes for all 8 models:
- API: anthropic-messages → openai-completions
- Endpoint: /apps/anthropic → /v1 (OpenAI-compatible)
- Added per-model compat flags:
  - Qwen models: thinkingFormat: 'qwen', supportsDeveloperRole: false
  - GLM models: thinkingFormat: 'qwen', supportsDeveloperRole: false
  - MiniMax-M2.5: supportsReasoningEffort: true, maxTokensField: 'max_tokens'
  - Kimi K2.5: thinkingFormat: 'zai', supportsDeveloperRole: false
- Enabled reasoning for qwen3-max (was incorrectly false)
- Fixed context windows to match tested values
- Fixed MiniMax-M2.5 maxTokens: 24576 → 65536
This commit is contained in:
Tom Boucher 2026-03-17 21:11:18 -04:00
parent 7377a08d8e
commit d252168de5

View file

@ -13388,27 +13388,28 @@ export const MODELS = {
"qwen3.5-plus": {
id: "qwen3.5-plus",
name: "Qwen3.5 Plus",
api: "anthropic-messages",
api: "openai-completions",
provider: "alibaba-coding-plan",
baseUrl: "https://coding-intl.dashscope.aliyuncs.com/apps/anthropic",
baseUrl: "https://coding-intl.dashscope.aliyuncs.com/v1",
reasoning: true,
input: ["text", "image"],
input: ["text"],
cost: {
input: 0,
output: 0,
cacheRead: 0,
cacheWrite: 0,
},
contextWindow: 1000000,
contextWindow: 983616,
maxTokens: 65536,
} satisfies Model<"anthropic-messages">,
compat: { thinkingFormat: "qwen", supportsDeveloperRole: false },
} satisfies Model<"openai-completions">,
"qwen3-max-2026-01-23": {
id: "qwen3-max-2026-01-23",
name: "Qwen3 Max 2026-01-23",
api: "anthropic-messages",
api: "openai-completions",
provider: "alibaba-coding-plan",
baseUrl: "https://coding-intl.dashscope.aliyuncs.com/apps/anthropic",
reasoning: false,
baseUrl: "https://coding-intl.dashscope.aliyuncs.com/v1",
reasoning: true,
input: ["text"],
cost: {
input: 0,
@ -13416,15 +13417,16 @@ export const MODELS = {
cacheRead: 0,
cacheWrite: 0,
},
contextWindow: 262144,
contextWindow: 258048,
maxTokens: 32768,
} satisfies Model<"anthropic-messages">,
compat: { thinkingFormat: "qwen", supportsDeveloperRole: false },
} satisfies Model<"openai-completions">,
"qwen3-coder-next": {
id: "qwen3-coder-next",
name: "Qwen3 Coder Next",
api: "anthropic-messages",
api: "openai-completions",
provider: "alibaba-coding-plan",
baseUrl: "https://coding-intl.dashscope.aliyuncs.com/apps/anthropic",
baseUrl: "https://coding-intl.dashscope.aliyuncs.com/v1",
reasoning: false,
input: ["text"],
cost: {
@ -13433,15 +13435,16 @@ export const MODELS = {
cacheRead: 0,
cacheWrite: 0,
},
contextWindow: 262144,
contextWindow: 204800,
maxTokens: 65536,
} satisfies Model<"anthropic-messages">,
compat: { supportsDeveloperRole: false },
} satisfies Model<"openai-completions">,
"qwen3-coder-plus": {
id: "qwen3-coder-plus",
name: "Qwen3 Coder Plus",
api: "anthropic-messages",
api: "openai-completions",
provider: "alibaba-coding-plan",
baseUrl: "https://coding-intl.dashscope.aliyuncs.com/apps/anthropic",
baseUrl: "https://coding-intl.dashscope.aliyuncs.com/v1",
reasoning: false,
input: ["text"],
cost: {
@ -13450,15 +13453,16 @@ export const MODELS = {
cacheRead: 0,
cacheWrite: 0,
},
contextWindow: 1000000,
contextWindow: 997952,
maxTokens: 65536,
} satisfies Model<"anthropic-messages">,
compat: { supportsDeveloperRole: false },
} satisfies Model<"openai-completions">,
"MiniMax-M2.5": {
id: "MiniMax-M2.5",
name: "MiniMax M2.5",
api: "anthropic-messages",
api: "openai-completions",
provider: "alibaba-coding-plan",
baseUrl: "https://coding-intl.dashscope.aliyuncs.com/apps/anthropic",
baseUrl: "https://coding-intl.dashscope.aliyuncs.com/v1",
reasoning: true,
input: ["text"],
cost: {
@ -13468,14 +13472,15 @@ export const MODELS = {
cacheWrite: 0,
},
contextWindow: 196608,
maxTokens: 24576,
} satisfies Model<"anthropic-messages">,
maxTokens: 65536,
compat: { supportsStore: false, supportsDeveloperRole: false, supportsReasoningEffort: true, maxTokensField: "max_tokens" },
} satisfies Model<"openai-completions">,
"glm-5": {
id: "glm-5",
name: "GLM-5",
api: "anthropic-messages",
api: "openai-completions",
provider: "alibaba-coding-plan",
baseUrl: "https://coding-intl.dashscope.aliyuncs.com/apps/anthropic",
baseUrl: "https://coding-intl.dashscope.aliyuncs.com/v1",
reasoning: true,
input: ["text"],
cost: {
@ -13486,13 +13491,14 @@ export const MODELS = {
},
contextWindow: 202752,
maxTokens: 16384,
} satisfies Model<"anthropic-messages">,
compat: { thinkingFormat: "qwen", supportsDeveloperRole: false },
} satisfies Model<"openai-completions">,
"glm-4.7": {
id: "glm-4.7",
name: "GLM-4.7",
api: "anthropic-messages",
api: "openai-completions",
provider: "alibaba-coding-plan",
baseUrl: "https://coding-intl.dashscope.aliyuncs.com/apps/anthropic",
baseUrl: "https://coding-intl.dashscope.aliyuncs.com/v1",
reasoning: true,
input: ["text"],
cost: {
@ -13501,26 +13507,28 @@ export const MODELS = {
cacheRead: 0,
cacheWrite: 0,
},
contextWindow: 202752,
contextWindow: 169984,
maxTokens: 16384,
} satisfies Model<"anthropic-messages">,
compat: { thinkingFormat: "qwen", supportsDeveloperRole: false },
} satisfies Model<"openai-completions">,
"kimi-k2.5": {
id: "kimi-k2.5",
name: "Kimi K2.5",
api: "anthropic-messages",
api: "openai-completions",
provider: "alibaba-coding-plan",
baseUrl: "https://coding-intl.dashscope.aliyuncs.com/apps/anthropic",
baseUrl: "https://coding-intl.dashscope.aliyuncs.com/v1",
reasoning: true,
input: ["text", "image"],
input: ["text"],
cost: {
input: 0,
output: 0,
cacheRead: 0,
cacheWrite: 0,
},
contextWindow: 262144,
contextWindow: 258048,
maxTokens: 32768,
} satisfies Model<"anthropic-messages">,
compat: { thinkingFormat: "zai", supportsDeveloperRole: false },
} satisfies Model<"openai-completions">,
},
"ollama-cloud": {
"cogito-2.1:671b": {