mirror of
https://github.com/openclaw/openclaw.git
synced 2026-08-26 04:15:48 -06:00
095f3e1a44
* feat(xai): add Grok 4.6 catalog and preserve OAuth xhigh Add first-class Grok 4.6 discovery, pricing, and reasoning metadata while keeping the existing Grok 4.3 API-key and server-tool defaults unchanged. Preserve xhigh only for Grok 4.6 so OAuth auto no longer inherits the Grok 4.5 high downgrade. Closes nothing; tracks #122734. * fix(xai): resolve the OAuth auto alias to its canonical model in the thinking policy The OAuth catalog row keeps id "auto" and records the provider-selected target in params.canonicalModelId; judging the raw alias collapsed the default OAuth route to an off-only thinking picker for every model. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com> * test(xai): refresh catalog-order assertions and restore stream deadlines for Grok 4.6 Exact-order catalog and onboarding arrays now include the new row with its metadata assertion; payload-capture timeouts return to their original values, Grok 4.5 off-clamp and Grok 4.3 modern-model coverage are restored, and the Grok 4.6 xhigh boundary test passes its id explicitly. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com> * feat(agents): add Grok 4.6 to the curated high-signal live matrix xai is a curated-only high-signal provider, so the new flagship was structurally excluded from default live sweeps; add it alongside Grok 4.5 with its test and docs mirrors, matching the 4.5 precedent. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com> * fix(xai): align Grok frontier metadata * fix(xai): align Grok 4.6 catalog contract Remove the unsupported moving alias, centralize OAuth auto target resolution, correct cached pricing, and keep live coverage on the stable xhigh completion path. Co-authored-by: Kiran Magic <262980978+kiranmagic7@users.noreply.github.com> --------- Co-authored-by: Kiran Magic <262980978+kiranmagic7@users.noreply.github.com> Co-authored-by: Kiran Magic <kiran@Alices-Laptop.local> Co-authored-by: Claude Fable 5 <noreply@anthropic.com> Co-authored-by: Kiran <kiranmagic7@users.noreply.github.com> Co-authored-by: Peter Steinberger <steipete@gmail.com>
45 lines
1.7 KiB
TypeScript
45 lines
1.7 KiB
TypeScript
// Xai API module exposes the plugin public contract.
|
|
import type {
|
|
ProviderDefaultThinkingPolicyContext,
|
|
ProviderThinkingProfile,
|
|
} from "openclaw/plugin-sdk/plugin-entry";
|
|
import { resolveXaiCatalogEntry } from "./model-definitions.js";
|
|
import {
|
|
isXaiFrontierModelId,
|
|
isXaiGrok46ModelId,
|
|
normalizeXaiModelId,
|
|
resolveXaiOAuthAutoModelId,
|
|
} from "./model-id.js";
|
|
import { isXaiProviderId } from "./provider-id.js";
|
|
|
|
export function resolveThinkingProfile(
|
|
ctx: ProviderDefaultThinkingPolicyContext,
|
|
): ProviderThinkingProfile {
|
|
// OAuth catalog rows keep the "auto" alias id and carry the provider-selected
|
|
// target in params.canonicalModelId. Judge that concrete target here too.
|
|
const rawModelId = resolveXaiOAuthAutoModelId(ctx.modelId, ctx.params);
|
|
const modelId = normalizeXaiModelId(rawModelId.trim().toLowerCase());
|
|
const reasoning = ctx.reasoning ?? resolveXaiCatalogEntry(modelId)?.reasoning;
|
|
if (!isXaiProviderId(ctx.provider) || !reasoning) {
|
|
return { levels: [{ id: "off" }], defaultLevel: "off" };
|
|
}
|
|
if (isXaiFrontierModelId(modelId)) {
|
|
const levels: ProviderThinkingProfile["levels"] = isXaiGrok46ModelId(modelId)
|
|
? [{ id: "low" }, { id: "medium" }, { id: "high" }, { id: "xhigh" }]
|
|
: [{ id: "low" }, { id: "medium" }, { id: "high" }];
|
|
return {
|
|
levels,
|
|
defaultLevel: "high",
|
|
};
|
|
}
|
|
const isGrok43 =
|
|
modelId === "grok-latest" || modelId === "grok-4.3" || modelId.startsWith("grok-4.3-");
|
|
if (!isGrok43) {
|
|
return { levels: [{ id: "off" }], defaultLevel: "off" };
|
|
}
|
|
return {
|
|
levels: [{ id: "off" }, { id: "minimal" }, { id: "low" }, { id: "medium" }, { id: "high" }],
|
|
defaultLevel: "low",
|
|
};
|
|
}
|