fix(ai): prevent removed xAI models regenerating, closes #6736
This commit is contained in:
@@ -262,7 +262,7 @@ describe("Context overflow error handling", () => {
|
||||
// =============================================================================
|
||||
|
||||
describe.skipIf(!process.env.XAI_API_KEY)("xAI", () => {
|
||||
it("grok-3-fast - should detect overflow via isContextOverflow", async () => {
|
||||
it("grok-4.3 - should detect overflow via isContextOverflow", async () => {
|
||||
const model = getModel("xai", "grok-4.3");
|
||||
const result = await testContextOverflow(model, process.env.XAI_API_KEY!);
|
||||
logResult(result);
|
||||
|
||||
@@ -79,7 +79,7 @@ const PROVIDER_MODEL_PAIRS: ProviderModelPair[] = [
|
||||
label: "bedrock-claude-sonnet-4-5",
|
||||
},
|
||||
// xAI
|
||||
{ provider: "xai", model: "grok-code-fast-1", label: "xai-grok-code-fast-1" },
|
||||
{ provider: "xai", model: "grok-4.3", label: "xai-grok-4.3" },
|
||||
// Cerebras
|
||||
{ provider: "cerebras", model: "zai-glm-4.7", label: "cerebras-zai-glm-4.7" },
|
||||
// Cloudflare Workers AI
|
||||
|
||||
@@ -542,7 +542,7 @@ describe("Generate E2E Tests", () => {
|
||||
});
|
||||
});
|
||||
|
||||
describe.skipIf(!process.env.XAI_API_KEY)("xAI Provider (grok-code-fast-1 via OpenAI Completions)", () => {
|
||||
describe.skipIf(!process.env.XAI_API_KEY)("xAI Provider (grok-4.3 via OpenAI Completions)", () => {
|
||||
const llm = getModel("xai", "grok-4.3");
|
||||
|
||||
it("should complete basic text generation", { retry: 3 }, async () => {
|
||||
|
||||
@@ -244,22 +244,18 @@ describe("totalTokens field", () => {
|
||||
// =========================================================================
|
||||
|
||||
describe.skipIf(!process.env.XAI_API_KEY)("xAI", () => {
|
||||
it(
|
||||
"grok-3-fast - should return totalTokens equal to sum of components",
|
||||
{ retry: 3, timeout: 60000 },
|
||||
async () => {
|
||||
const llm = getModel("xai", "grok-4.3");
|
||||
it("grok-4.3 - should return totalTokens equal to sum of components", { retry: 3, timeout: 60000 }, async () => {
|
||||
const llm = getModel("xai", "grok-4.3");
|
||||
|
||||
console.log(`\nxAI / ${llm.id}:`);
|
||||
const { first, second } = await testTotalTokensWithCache(llm, { apiKey: process.env.XAI_API_KEY });
|
||||
console.log(`\nxAI / ${llm.id}:`);
|
||||
const { first, second } = await testTotalTokensWithCache(llm, { apiKey: process.env.XAI_API_KEY });
|
||||
|
||||
logUsage("First request", first);
|
||||
logUsage("Second request", second);
|
||||
logUsage("First request", first);
|
||||
logUsage("Second request", second);
|
||||
|
||||
assertTotalTokensEqualsComponents(first);
|
||||
assertTotalTokensEqualsComponents(second);
|
||||
},
|
||||
);
|
||||
assertTotalTokensEqualsComponents(first);
|
||||
assertTotalTokensEqualsComponents(second);
|
||||
});
|
||||
});
|
||||
|
||||
// =========================================================================
|
||||
|
||||
@@ -60,6 +60,18 @@ describe("xAI Responses provider", () => {
|
||||
vi.restoreAllMocks();
|
||||
});
|
||||
|
||||
it("excludes retired and redundant models from the built-in catalog", () => {
|
||||
for (const modelId of [
|
||||
"grok-3",
|
||||
"grok-3-fast",
|
||||
"grok-4.20-0309-non-reasoning",
|
||||
"grok-4.20-0309-reasoning",
|
||||
"grok-code-fast-1",
|
||||
]) {
|
||||
expect(Object.keys(XAI_MODELS)).not.toContain(modelId);
|
||||
}
|
||||
});
|
||||
|
||||
it("uses Responses with low/medium/high efforts only for Grok 4.5", () => {
|
||||
expect(XAI_MODELS["grok-4.5"].api).toBe("openai-responses");
|
||||
expect(getSupportedThinkingLevels(XAI_MODELS["grok-4.5"])).toEqual(["low", "medium", "high"]);
|
||||
|
||||
Reference in New Issue
Block a user