fix(ai): disable Moonshot thinking when requested

closes #5531
This commit is contained in:
Mario Zechner
2026-06-09 12:23:41 +02:00
parent c6bdfa1971
commit 2326d5cb4a
3 changed files with 47 additions and 25 deletions

View File

@@ -2,6 +2,10 @@
## [Unreleased] ## [Unreleased]
### Fixed
- Fixed Moonshot Kimi thinking-off requests to send the provider's `thinking: { type: "disabled" }` compatibility parameter ([#5531](https://github.com/earendil-works/pi/issues/5531)).
## [0.79.0] - 2026-06-08 ## [0.79.0] - 2026-06-08
### Fixed ### Fixed

View File

@@ -1215,6 +1215,7 @@ async function loadModelsDevData(): Promise<Model<any>[]> {
supportsReasoningEffort: false, supportsReasoningEffort: false,
maxTokensField: "max_tokens", maxTokensField: "max_tokens",
supportsStrictMode: false, supportsStrictMode: false,
thinkingFormat: "deepseek",
}; };
for (const { key, provider, baseUrl } of moonshotVariants) { for (const { key, provider, baseUrl } of moonshotVariants) {

View File

@@ -11,7 +11,7 @@ export const MODELS = {
api: "bedrock-converse-stream", api: "bedrock-converse-stream",
provider: "amazon-bedrock", provider: "amazon-bedrock",
baseUrl: "https://bedrock-runtime.us-east-1.amazonaws.com", baseUrl: "https://bedrock-runtime.us-east-1.amazonaws.com",
reasoning: false, reasoning: true,
input: ["text", "image"], input: ["text", "image"],
cost: { cost: {
input: 0.33, input: 0.33,
@@ -1131,7 +1131,7 @@ export const MODELS = {
api: "bedrock-converse-stream", api: "bedrock-converse-stream",
provider: "amazon-bedrock", provider: "amazon-bedrock",
baseUrl: "https://bedrock-runtime.us-east-1.amazonaws.com", baseUrl: "https://bedrock-runtime.us-east-1.amazonaws.com",
reasoning: false, reasoning: true,
input: ["text"], input: ["text"],
cost: { cost: {
input: 0.15, input: 0.15,
@@ -1148,7 +1148,7 @@ export const MODELS = {
api: "bedrock-converse-stream", api: "bedrock-converse-stream",
provider: "amazon-bedrock", provider: "amazon-bedrock",
baseUrl: "https://bedrock-runtime.us-east-1.amazonaws.com", baseUrl: "https://bedrock-runtime.us-east-1.amazonaws.com",
reasoning: false, reasoning: true,
input: ["text"], input: ["text"],
cost: { cost: {
input: 0.15, input: 0.15,
@@ -1165,7 +1165,7 @@ export const MODELS = {
api: "bedrock-converse-stream", api: "bedrock-converse-stream",
provider: "amazon-bedrock", provider: "amazon-bedrock",
baseUrl: "https://bedrock-runtime.us-east-1.amazonaws.com", baseUrl: "https://bedrock-runtime.us-east-1.amazonaws.com",
reasoning: false, reasoning: true,
input: ["text"], input: ["text"],
cost: { cost: {
input: 0.07, input: 0.07,
@@ -1182,7 +1182,7 @@ export const MODELS = {
api: "bedrock-converse-stream", api: "bedrock-converse-stream",
provider: "amazon-bedrock", provider: "amazon-bedrock",
baseUrl: "https://bedrock-runtime.us-east-1.amazonaws.com", baseUrl: "https://bedrock-runtime.us-east-1.amazonaws.com",
reasoning: false, reasoning: true,
input: ["text"], input: ["text"],
cost: { cost: {
input: 0.07, input: 0.07,
@@ -6299,7 +6299,7 @@ export const MODELS = {
api: "openai-completions", api: "openai-completions",
provider: "moonshotai", provider: "moonshotai",
baseUrl: "https://api.moonshot.ai/v1", baseUrl: "https://api.moonshot.ai/v1",
compat: {"supportsStore":false,"supportsDeveloperRole":false,"supportsReasoningEffort":false,"maxTokensField":"max_tokens","supportsStrictMode":false}, compat: {"supportsStore":false,"supportsDeveloperRole":false,"supportsReasoningEffort":false,"maxTokensField":"max_tokens","supportsStrictMode":false,"thinkingFormat":"deepseek"},
reasoning: false, reasoning: false,
input: ["text"], input: ["text"],
cost: { cost: {
@@ -6317,7 +6317,7 @@ export const MODELS = {
api: "openai-completions", api: "openai-completions",
provider: "moonshotai", provider: "moonshotai",
baseUrl: "https://api.moonshot.ai/v1", baseUrl: "https://api.moonshot.ai/v1",
compat: {"supportsStore":false,"supportsDeveloperRole":false,"supportsReasoningEffort":false,"maxTokensField":"max_tokens","supportsStrictMode":false}, compat: {"supportsStore":false,"supportsDeveloperRole":false,"supportsReasoningEffort":false,"maxTokensField":"max_tokens","supportsStrictMode":false,"thinkingFormat":"deepseek"},
reasoning: false, reasoning: false,
input: ["text"], input: ["text"],
cost: { cost: {
@@ -6335,7 +6335,7 @@ export const MODELS = {
api: "openai-completions", api: "openai-completions",
provider: "moonshotai", provider: "moonshotai",
baseUrl: "https://api.moonshot.ai/v1", baseUrl: "https://api.moonshot.ai/v1",
compat: {"supportsStore":false,"supportsDeveloperRole":false,"supportsReasoningEffort":false,"maxTokensField":"max_tokens","supportsStrictMode":false}, compat: {"supportsStore":false,"supportsDeveloperRole":false,"supportsReasoningEffort":false,"maxTokensField":"max_tokens","supportsStrictMode":false,"thinkingFormat":"deepseek"},
reasoning: true, reasoning: true,
input: ["text"], input: ["text"],
cost: { cost: {
@@ -6353,7 +6353,7 @@ export const MODELS = {
api: "openai-completions", api: "openai-completions",
provider: "moonshotai", provider: "moonshotai",
baseUrl: "https://api.moonshot.ai/v1", baseUrl: "https://api.moonshot.ai/v1",
compat: {"supportsStore":false,"supportsDeveloperRole":false,"supportsReasoningEffort":false,"maxTokensField":"max_tokens","supportsStrictMode":false}, compat: {"supportsStore":false,"supportsDeveloperRole":false,"supportsReasoningEffort":false,"maxTokensField":"max_tokens","supportsStrictMode":false,"thinkingFormat":"deepseek"},
reasoning: true, reasoning: true,
input: ["text"], input: ["text"],
cost: { cost: {
@@ -6371,7 +6371,7 @@ export const MODELS = {
api: "openai-completions", api: "openai-completions",
provider: "moonshotai", provider: "moonshotai",
baseUrl: "https://api.moonshot.ai/v1", baseUrl: "https://api.moonshot.ai/v1",
compat: {"supportsStore":false,"supportsDeveloperRole":false,"supportsReasoningEffort":false,"maxTokensField":"max_tokens","supportsStrictMode":false}, compat: {"supportsStore":false,"supportsDeveloperRole":false,"supportsReasoningEffort":false,"maxTokensField":"max_tokens","supportsStrictMode":false,"thinkingFormat":"deepseek"},
reasoning: false, reasoning: false,
input: ["text"], input: ["text"],
cost: { cost: {
@@ -6389,7 +6389,7 @@ export const MODELS = {
api: "openai-completions", api: "openai-completions",
provider: "moonshotai", provider: "moonshotai",
baseUrl: "https://api.moonshot.ai/v1", baseUrl: "https://api.moonshot.ai/v1",
compat: {"supportsStore":false,"supportsDeveloperRole":false,"supportsReasoningEffort":false,"maxTokensField":"max_tokens","supportsStrictMode":false}, compat: {"supportsStore":false,"supportsDeveloperRole":false,"supportsReasoningEffort":false,"maxTokensField":"max_tokens","supportsStrictMode":false,"thinkingFormat":"deepseek"},
reasoning: true, reasoning: true,
input: ["text", "image"], input: ["text", "image"],
cost: { cost: {
@@ -6407,7 +6407,7 @@ export const MODELS = {
api: "openai-completions", api: "openai-completions",
provider: "moonshotai", provider: "moonshotai",
baseUrl: "https://api.moonshot.ai/v1", baseUrl: "https://api.moonshot.ai/v1",
compat: {"supportsStore":false,"supportsDeveloperRole":false,"supportsReasoningEffort":false,"maxTokensField":"max_tokens","supportsStrictMode":false}, compat: {"supportsStore":false,"supportsDeveloperRole":false,"supportsReasoningEffort":false,"maxTokensField":"max_tokens","supportsStrictMode":false,"thinkingFormat":"deepseek"},
reasoning: true, reasoning: true,
input: ["text", "image"], input: ["text", "image"],
cost: { cost: {
@@ -6427,7 +6427,7 @@ export const MODELS = {
api: "openai-completions", api: "openai-completions",
provider: "moonshotai-cn", provider: "moonshotai-cn",
baseUrl: "https://api.moonshot.cn/v1", baseUrl: "https://api.moonshot.cn/v1",
compat: {"supportsStore":false,"supportsDeveloperRole":false,"supportsReasoningEffort":false,"maxTokensField":"max_tokens","supportsStrictMode":false}, compat: {"supportsStore":false,"supportsDeveloperRole":false,"supportsReasoningEffort":false,"maxTokensField":"max_tokens","supportsStrictMode":false,"thinkingFormat":"deepseek"},
reasoning: false, reasoning: false,
input: ["text"], input: ["text"],
cost: { cost: {
@@ -6445,7 +6445,7 @@ export const MODELS = {
api: "openai-completions", api: "openai-completions",
provider: "moonshotai-cn", provider: "moonshotai-cn",
baseUrl: "https://api.moonshot.cn/v1", baseUrl: "https://api.moonshot.cn/v1",
compat: {"supportsStore":false,"supportsDeveloperRole":false,"supportsReasoningEffort":false,"maxTokensField":"max_tokens","supportsStrictMode":false}, compat: {"supportsStore":false,"supportsDeveloperRole":false,"supportsReasoningEffort":false,"maxTokensField":"max_tokens","supportsStrictMode":false,"thinkingFormat":"deepseek"},
reasoning: false, reasoning: false,
input: ["text"], input: ["text"],
cost: { cost: {
@@ -6463,7 +6463,7 @@ export const MODELS = {
api: "openai-completions", api: "openai-completions",
provider: "moonshotai-cn", provider: "moonshotai-cn",
baseUrl: "https://api.moonshot.cn/v1", baseUrl: "https://api.moonshot.cn/v1",
compat: {"supportsStore":false,"supportsDeveloperRole":false,"supportsReasoningEffort":false,"maxTokensField":"max_tokens","supportsStrictMode":false}, compat: {"supportsStore":false,"supportsDeveloperRole":false,"supportsReasoningEffort":false,"maxTokensField":"max_tokens","supportsStrictMode":false,"thinkingFormat":"deepseek"},
reasoning: true, reasoning: true,
input: ["text"], input: ["text"],
cost: { cost: {
@@ -6481,7 +6481,7 @@ export const MODELS = {
api: "openai-completions", api: "openai-completions",
provider: "moonshotai-cn", provider: "moonshotai-cn",
baseUrl: "https://api.moonshot.cn/v1", baseUrl: "https://api.moonshot.cn/v1",
compat: {"supportsStore":false,"supportsDeveloperRole":false,"supportsReasoningEffort":false,"maxTokensField":"max_tokens","supportsStrictMode":false}, compat: {"supportsStore":false,"supportsDeveloperRole":false,"supportsReasoningEffort":false,"maxTokensField":"max_tokens","supportsStrictMode":false,"thinkingFormat":"deepseek"},
reasoning: true, reasoning: true,
input: ["text"], input: ["text"],
cost: { cost: {
@@ -6499,7 +6499,7 @@ export const MODELS = {
api: "openai-completions", api: "openai-completions",
provider: "moonshotai-cn", provider: "moonshotai-cn",
baseUrl: "https://api.moonshot.cn/v1", baseUrl: "https://api.moonshot.cn/v1",
compat: {"supportsStore":false,"supportsDeveloperRole":false,"supportsReasoningEffort":false,"maxTokensField":"max_tokens","supportsStrictMode":false}, compat: {"supportsStore":false,"supportsDeveloperRole":false,"supportsReasoningEffort":false,"maxTokensField":"max_tokens","supportsStrictMode":false,"thinkingFormat":"deepseek"},
reasoning: false, reasoning: false,
input: ["text"], input: ["text"],
cost: { cost: {
@@ -6517,7 +6517,7 @@ export const MODELS = {
api: "openai-completions", api: "openai-completions",
provider: "moonshotai-cn", provider: "moonshotai-cn",
baseUrl: "https://api.moonshot.cn/v1", baseUrl: "https://api.moonshot.cn/v1",
compat: {"supportsStore":false,"supportsDeveloperRole":false,"supportsReasoningEffort":false,"maxTokensField":"max_tokens","supportsStrictMode":false}, compat: {"supportsStore":false,"supportsDeveloperRole":false,"supportsReasoningEffort":false,"maxTokensField":"max_tokens","supportsStrictMode":false,"thinkingFormat":"deepseek"},
reasoning: true, reasoning: true,
input: ["text", "image"], input: ["text", "image"],
cost: { cost: {
@@ -6535,7 +6535,7 @@ export const MODELS = {
api: "openai-completions", api: "openai-completions",
provider: "moonshotai-cn", provider: "moonshotai-cn",
baseUrl: "https://api.moonshot.cn/v1", baseUrl: "https://api.moonshot.cn/v1",
compat: {"supportsStore":false,"supportsDeveloperRole":false,"supportsReasoningEffort":false,"maxTokensField":"max_tokens","supportsStrictMode":false}, compat: {"supportsStore":false,"supportsDeveloperRole":false,"supportsReasoningEffort":false,"maxTokensField":"max_tokens","supportsStrictMode":false,"thinkingFormat":"deepseek"},
reasoning: true, reasoning: true,
input: ["text", "image"], input: ["text", "image"],
cost: { cost: {
@@ -10490,6 +10490,23 @@ export const MODELS = {
contextWindow: 262144, contextWindow: 262144,
maxTokens: 4096, maxTokens: 4096,
} satisfies Model<"openai-completions">, } satisfies Model<"openai-completions">,
"nex-agi/nex-n2-pro:free": {
id: "nex-agi/nex-n2-pro:free",
name: "Nex AGI: Nex-N2-Pro (free)",
api: "openai-completions",
provider: "openrouter",
baseUrl: "https://openrouter.ai/api/v1",
reasoning: true,
input: ["text", "image"],
cost: {
input: 0,
output: 0,
cacheRead: 0,
cacheWrite: 0,
},
contextWindow: 262144,
maxTokens: 262144,
} satisfies Model<"openai-completions">,
"nvidia/llama-3.3-nemotron-super-49b-v1.5": { "nvidia/llama-3.3-nemotron-super-49b-v1.5": {
id: "nvidia/llama-3.3-nemotron-super-49b-v1.5", id: "nvidia/llama-3.3-nemotron-super-49b-v1.5",
name: "NVIDIA: Llama 3.3 Nemotron Super 49B V1.5", name: "NVIDIA: Llama 3.3 Nemotron Super 49B V1.5",
@@ -13111,9 +13128,9 @@ export const MODELS = {
api: "openai-completions", api: "openai-completions",
provider: "together", provider: "together",
baseUrl: "https://api.together.ai/v1", baseUrl: "https://api.together.ai/v1",
compat: {"supportsStore":false,"supportsDeveloperRole":false,"supportsReasoningEffort":false,"maxTokensField":"max_tokens","supportsStrictMode":false,"supportsLongCacheRetention":false}, compat: {"supportsStore":false,"supportsDeveloperRole":false,"supportsReasoningEffort":false,"maxTokensField":"max_tokens","supportsStrictMode":false,"supportsLongCacheRetention":false,"thinkingFormat":"together"},
reasoning: true, reasoning: true,
thinkingLevelMap: {"off":null,"minimal":null,"low":null,"medium":null}, thinkingLevelMap: {"minimal":null,"low":null,"medium":null},
input: ["text"], input: ["text"],
cost: { cost: {
input: 0.3, input: 0.3,
@@ -13508,8 +13525,8 @@ export const MODELS = {
reasoning: true, reasoning: true,
input: ["text"], input: ["text"],
cost: { cost: {
input: 0.08, input: 0.12,
output: 0.29, output: 0.5,
cacheRead: 0, cacheRead: 0,
cacheWrite: 0, cacheWrite: 0,
}, },
@@ -16373,7 +16390,7 @@ export const MODELS = {
cacheRead: 0.2, cacheRead: 0.2,
cacheWrite: 0, cacheWrite: 0,
}, },
contextWindow: 2000000, contextWindow: 1000000,
maxTokens: 30000, maxTokens: 30000,
} satisfies Model<"openai-completions">, } satisfies Model<"openai-completions">,
"grok-4.20-0309-reasoning": { "grok-4.20-0309-reasoning": {
@@ -16390,7 +16407,7 @@ export const MODELS = {
cacheRead: 0.2, cacheRead: 0.2,
cacheWrite: 0, cacheWrite: 0,
}, },
contextWindow: 2000000, contextWindow: 1000000,
maxTokens: 30000, maxTokens: 30000,
} satisfies Model<"openai-completions">, } satisfies Model<"openai-completions">,
"grok-4.3": { "grok-4.3": {