From 71ca9b2b925d7bde8d447c475617e83d62cfdca9 Mon Sep 17 00:00:00 2001 From: Armin Ronacher Date: Mon, 22 Jun 2026 13:45:44 +0200 Subject: [PATCH] fix(ai): expose OpenCode Go GLM-5.2 xhigh effort closes #5967 --- packages/ai/CHANGELOG.md | 4 ++++ packages/ai/scripts/generate-models.ts | 11 +++++++++++ packages/ai/src/models.generated.ts | 1 + 3 files changed, 16 insertions(+) diff --git a/packages/ai/CHANGELOG.md b/packages/ai/CHANGELOG.md index 93a85598..e61d93dc 100644 --- a/packages/ai/CHANGELOG.md +++ b/packages/ai/CHANGELOG.md @@ -2,6 +2,10 @@ ## [Unreleased] +### Fixed + +- Fixed OpenCode Go GLM-5.2 metadata to expose `xhigh` reasoning and send `reasoning_effort: "max"` ([#5967](https://github.com/earendil-works/pi/issues/5967)). + ## [0.79.10] - 2026-06-22 ### Fixed diff --git a/packages/ai/scripts/generate-models.ts b/packages/ai/scripts/generate-models.ts index 3e85db82..4f9cc78d 100644 --- a/packages/ai/scripts/generate-models.ts +++ b/packages/ai/scripts/generate-models.ts @@ -164,6 +164,14 @@ const ZAI_GLM52_THINKING_LEVEL_MAP = { high: "high", xhigh: "max", } as const; +const OPENCODE_GO_GLM52_THINKING_LEVEL_MAP = { + off: null, + minimal: null, + low: null, + medium: null, + high: "high", + xhigh: "max", +} as const; const EAGER_TOOL_INPUT_STREAMING_UNSUPPORTED_ANTHROPIC_MODELS = new Set([ "github-copilot:claude-haiku-4.5", "github-copilot:claude-sonnet-4", @@ -380,6 +388,9 @@ function applyThinkingLevelMetadata(model: Model): void { if (model.provider === "fireworks" && model.id === "accounts/fireworks/models/glm-5p2") { mergeThinkingLevelMap(model, { off: "none", minimal: null, low: "high", medium: "high", xhigh: "max" }); } + if (model.provider === "opencode-go" && model.id === "glm-5.2") { + mergeThinkingLevelMap(model, OPENCODE_GO_GLM52_THINKING_LEVEL_MAP); + } if (model.provider === "opencode-go" && model.id === "kimi-k2.6") { // OpenCode Go exposes Kimi K2.6 thinking as on/off, not distinct effort tiers. mergeThinkingLevelMap(model, { minimal: null, low: null, medium: null }); diff --git a/packages/ai/src/models.generated.ts b/packages/ai/src/models.generated.ts index cfc69879..64325817 100644 --- a/packages/ai/src/models.generated.ts +++ b/packages/ai/src/models.generated.ts @@ -8594,6 +8594,7 @@ export const MODELS = { baseUrl: "https://opencode.ai/zen/go/v1", compat: {"maxTokensField":"max_tokens"}, reasoning: true, + thinkingLevelMap: {"off":null,"minimal":null,"low":null,"medium":null,"high":"high","xhigh":"max"}, input: ["text"], cost: { input: 1.4,