From f2ee5d1973192b7daa20942c7af333baf01004b0 Mon Sep 17 00:00:00 2001 From: Melvyn Date: Thu, 13 Aug 2026 10:54:07 +0800 Subject: [PATCH] fix(cursor): expose Grok 4.6 xhigh thinking --- src/adapters/cursor/effort-map.ts | 7 +++---- tests/cursor-effort-suffix.test.ts | 7 +++++++ 2 files changed, 10 insertions(+), 4 deletions(-) diff --git a/src/adapters/cursor/effort-map.ts b/src/adapters/cursor/effort-map.ts index 1dc70a7935..e4b838a28b 100644 --- a/src/adapters/cursor/effort-map.ts +++ b/src/adapters/cursor/effort-map.ts @@ -35,10 +35,9 @@ const CURSOR_MODEL_EFFORT_TIERS: Record = { // cursor-grok-4.5-{low,medium,high}-fast. The bare Fast id returns not_found. "grok-4.5": ["low", "medium", "high"], "grok-4.5-fast": ["low", "medium", "high"], - // 260813 preemptive: grok-4.6 tiers mirrored from grok-4.5 ahead of Cursor's lineup update, - // so the suffix/wire handling is already correct the day the slugs appear. - "grok-4.6": ["low", "medium", "high"], - "grok-4.6-fast": ["low", "medium", "high"], + // Cursor Agent CLI lists low, medium, high, and xhigh for Grok 4.6. + "grok-4.6": ["low", "medium", "high", "xhigh"], + "grok-4.6-fast": ["low", "medium", "high", "xhigh"], "gpt-5.1": ["low", "high"], "gpt-5.1-codex-max": ["low", "medium", "high", "xhigh"], "gpt-5.1-codex-mini": ["low", "high"], diff --git a/tests/cursor-effort-suffix.test.ts b/tests/cursor-effort-suffix.test.ts index 2d4c627f0a..d81c8aa9f0 100644 --- a/tests/cursor-effort-suffix.test.ts +++ b/tests/cursor-effort-suffix.test.ts @@ -135,6 +135,13 @@ describe("Cursor per-model reasoning-effort suffix", () => { } }); + test("grok-4.6 exposes Cursor's xhigh tier", () => { + expect(modelIdFor("cursor/grok-4.6", "low")).toBe("cursor-grok-4.6-low"); + expect(modelIdFor("cursor/grok-4.6", "high")).toBe("cursor-grok-4.6-high"); + expect(modelIdFor("cursor/grok-4.6", "xhigh")).toBe("cursor-grok-4.6-xhigh"); + expect(cursorModelEffortLadder("grok-4.6")).toEqual(["low", "medium", "high", "xhigh"]); + }); + test("kimi-k3 maps to its live effort-suffixed variants", () => { expect(modelIdFor("cursor/kimi-k3", "low")).toBe("kimi-k3-low"); expect(modelIdFor("cursor/kimi-k3", "medium")).toBe("kimi-k3-high");