fix(catalog): route main's grok-4.6 through first-party Responses
origin/main added grok-4.6 as Chat Completions on paid xai and as an uncurated SuperGrok row. Keep the Responses migration complete by allowlisting the id, seeding xai-oauth, and baking the same 4-tier effort map as grok-4.5.
This commit is contained in:
@@ -20,6 +20,7 @@
|
||||
- Removed unsupported `xhigh` (and `max`) thinking tiers from first-party Grok 4.5 / 4.3 / 3-mini Responses rows; leftover `xhigh`/`max` requests clamp to `high`. `grok-4.20-multi-agent*` still advertises unmapped `xhigh` (16-agent mode).
|
||||
- Stopped baking `reasoningEffortMap` on first-party xAI catalog rows that omit `reasoning.effort` (`omitReasoningEffort: true`).
|
||||
- Suppressed presence/frequency penalties on every first-party xAI Responses model, including non-reasoning ids such as `grok-2`; xAI's `/v1/responses` marks those fields unsupported.
|
||||
- Routed `grok-4.6` (added on main) through first-party xAI Responses with the same 4-tier effort allowlist as `grok-4.5`, instead of leaving the paid row on Chat Completions.
|
||||
|
||||
## [17.3.4] - 2026-08-14
|
||||
|
||||
|
||||
@@ -110,7 +110,13 @@ export const isGrokModelId = memo((modelId: string): boolean => {
|
||||
return /(?:^|[./_-])grok(?:[-.]|$)/i.test(modelId);
|
||||
});
|
||||
|
||||
const GROK_EFFORT_CAPABLE_PREFIXES = ["grok-3-mini", "grok-4.20-multi-agent", "grok-4.3", "grok-4.5"] as const;
|
||||
const GROK_EFFORT_CAPABLE_PREFIXES = [
|
||||
"grok-3-mini",
|
||||
"grok-4.20-multi-agent",
|
||||
"grok-4.3",
|
||||
"grok-4.5",
|
||||
"grok-4.6",
|
||||
] as const;
|
||||
|
||||
/**
|
||||
* Grok SKUs that expose the wire `reasoning.effort` dial. Other Grok reasoners
|
||||
|
||||
@@ -104446,7 +104446,7 @@
|
||||
"grok-4.6": {
|
||||
"id": "grok-4.6",
|
||||
"name": "Grok 4.6",
|
||||
"api": "openai-completions",
|
||||
"api": "openai-responses",
|
||||
"provider": "xai",
|
||||
"baseUrl": "https://api.x.ai/v1",
|
||||
"reasoning": true,
|
||||
@@ -104469,7 +104469,19 @@
|
||||
"low",
|
||||
"medium",
|
||||
"high"
|
||||
]
|
||||
],
|
||||
"effortMap": {
|
||||
"minimal": "low"
|
||||
}
|
||||
},
|
||||
"compat": {
|
||||
"reasoningEffortMap": {
|
||||
"minimal": "low",
|
||||
"xhigh": "high",
|
||||
"max": "high"
|
||||
},
|
||||
"supportsReasoningEffort": true,
|
||||
"omitReasoningEffort": false
|
||||
}
|
||||
},
|
||||
"grok-beta": {
|
||||
@@ -104781,13 +104793,31 @@
|
||||
},
|
||||
"contextWindow": 500000,
|
||||
"maxTokens": 500000,
|
||||
"thinking": {
|
||||
"mode": "effort",
|
||||
"efforts": [
|
||||
"minimal",
|
||||
"low",
|
||||
"medium",
|
||||
"high"
|
||||
],
|
||||
"effortMap": {
|
||||
"minimal": "low"
|
||||
}
|
||||
},
|
||||
"supportsComputerUse": false,
|
||||
"supportsComputerUseConfig": false,
|
||||
"compat": {
|
||||
"includeEncryptedReasoning": false,
|
||||
"filterReasoningHistory": true,
|
||||
"reasoningEffortMap": {
|
||||
"minimal": "low",
|
||||
"xhigh": "high",
|
||||
"max": "high"
|
||||
},
|
||||
"includeEncryptedReasoning": true,
|
||||
"filterReasoningHistory": false,
|
||||
"supportsImageDetailOriginal": false,
|
||||
"omitReasoningEffort": true
|
||||
"omitReasoningEffort": false,
|
||||
"supportsReasoningEffort": true
|
||||
}
|
||||
},
|
||||
"grok-build": {
|
||||
|
||||
@@ -1332,6 +1332,7 @@ export const XAI_OAUTH_CURATED_MODELS: readonly XAICuratedModel[] = [
|
||||
},
|
||||
{ id: "grok-4.3", contextWindow: 1_000_000, name: "Grok 4.3", input: ["text", "image"] },
|
||||
{ id: "grok-4.5", contextWindow: 500_000, name: "Grok 4.5", input: ["text", "image"] },
|
||||
{ id: "grok-4.6", contextWindow: 500_000, name: "Grok 4.6", input: ["text", "image"] },
|
||||
// grok-4.20-multi-agent-0309 is text-only per the bundled catalog; omit `input` for the default.
|
||||
{ id: "grok-4.20-multi-agent-0309", contextWindow: 2_000_000, name: "Grok 4.20 (Multi-Agent)" },
|
||||
{
|
||||
|
||||
@@ -340,6 +340,7 @@ describe("isGrokReasoningEffortCapable", () => {
|
||||
expect(isGrokReasoningEffortCapable("grok-4.20-multi-agent")).toBe(true);
|
||||
expect(isGrokReasoningEffortCapable("xai-oauth/grok-4.3")).toBe(true);
|
||||
expect(isGrokReasoningEffortCapable("xai-oauth/grok-4.5")).toBe(true);
|
||||
expect(isGrokReasoningEffortCapable("xai-oauth/grok-4.6")).toBe(true);
|
||||
expect(isGrokReasoningEffortCapable("openrouter/xai/grok-3-mini")).toBe(true);
|
||||
});
|
||||
|
||||
|
||||
Reference in New Issue
Block a user