From 21a2c0518525b2c42ded0c3527e6f6aabc7d4429 Mon Sep 17 00:00:00 2001 From: Thomas Byr Date: Fri, 28 Aug 2026 16:41:15 +0200 Subject: [PATCH] feat(pricing): refresh catalog pricing snapshot Add the free minimax/minimax-m3-free and minimax/minimax-m2.7-free promotional variants (free through September 5, 2026) and tencent/hy4-preview, drop the retired stealth/ox-alpha, and refresh the model-id and pricing snapshots to the current 62-model catalog verified on 2026-08-28. --- src/pricing.ts | 11 +++++++++-- tests/fixtures/commandcode-model-ids.json | 6 ++++-- tests/fixtures/commandcode-pricing.json | 6 ++++-- tests/test-pricing.ts | 16 +++++++++++++--- 4 files changed, 30 insertions(+), 9 deletions(-) diff --git a/src/pricing.ts b/src/pricing.ts index 71ba138..e62fbe3 100644 --- a/src/pricing.ts +++ b/src/pricing.ts @@ -20,7 +20,7 @@ export interface TemporaryPricing { } export const PRICING_SOURCE_URL = "https://commandcode.ai/docs/resources/pricing-limits" -export const PRICING_LAST_VERIFIED = "2026-08-25" +export const PRICING_LAST_VERIFIED = "2026-08-28" export const ZERO_MODEL_COST: CommandCodeModelCost = { input: 0, @@ -40,10 +40,12 @@ export const ZERO_MODEL_COST: CommandCodeModelCost = { export const MODEL_COSTS: Readonly> = { // Free models "poolside/laguna-s-2.1-free": { input: 0, output: 0, cacheRead: 0, cacheWrite: 0 }, - "stealth/ox-alpha": { input: 0, output: 0, cacheRead: 0, cacheWrite: 0 }, + "minimax/minimax-m3-free": { input: 0, output: 0, cacheRead: 0, cacheWrite: 0 }, + "minimax/minimax-m2.7-free": { input: 0, output: 0, cacheRead: 0, cacheWrite: 0 }, // Open and open-weight models "tencent/hy3-paid": { input: 0.14, output: 0.58, cacheRead: 0.035, cacheWrite: 0 }, + "tencent/hy4-preview": { input: 0.834, output: 2.501, cacheRead: 0.042, cacheWrite: 0 }, "moonshotai/Kimi-K3": { input: 3, output: 15, cacheRead: 0.3, cacheWrite: 0 }, "moonshotai/Kimi-K2.7-Code": { input: 0.95, output: 4, cacheRead: 0.19, cacheWrite: 0 }, "moonshotai/Kimi-K2.7-Code-Highspeed": { @@ -233,4 +235,9 @@ export const TEMPORARY_PRICING: readonly TemporaryPricing[] = [ expiresOn: "2026-12-31", description: "50% promotional pricing", }, + { + models: ["minimax/minimax-m3-free", "minimax/minimax-m2.7-free"], + expiresOn: "2026-09-05", + description: "free promotional pricing", + }, ] diff --git a/tests/fixtures/commandcode-model-ids.json b/tests/fixtures/commandcode-model-ids.json index 15c677c..bced74b 100644 --- a/tests/fixtures/commandcode-model-ids.json +++ b/tests/fixtures/commandcode-model-ids.json @@ -1,5 +1,5 @@ { - "fetchedAt": "2026-08-25T13:32:11.631Z", + "fetchedAt": "2026-08-28T09:27:52.554Z", "source": "https://api.commandcode.ai/provider/v1/models", "modelIds": [ "claude-sonnet-5", @@ -32,6 +32,8 @@ "zai-org/GLM-5", "MiniMaxAI/MiniMax-M3", "MiniMaxAI/MiniMax-M2.7", + "minimax/minimax-m3-free", + "minimax/minimax-m2.7-free", "MiniMaxAI/MiniMax-M2.5", "xiaomi/mimo-v2.5-pro", "xiaomi/mimo-v2.5", @@ -46,6 +48,7 @@ "stepfun/Step-3.7-Flash", "stepfun/Step-3.5-Flash", "tencent/hy3-paid", + "tencent/hy4-preview", "google/gemini-3.7-flash", "google/gemini-3.6-flash", "google/gemini-3.5-flash", @@ -55,7 +58,6 @@ "nvidia/nemotron-3-ultra-550b-a55b", "thinkingmachines/inkling", "thinkingmachines/inkling-small", - "stealth/ox-alpha", "poolside/laguna-s-2.1-free", "meta/muse-spark-1.1", "meta/muse-spark-1.2", diff --git a/tests/fixtures/commandcode-pricing.json b/tests/fixtures/commandcode-pricing.json index e8a45bb..0d2d453 100644 --- a/tests/fixtures/commandcode-pricing.json +++ b/tests/fixtures/commandcode-pricing.json @@ -1,5 +1,5 @@ { - "verifiedAt": "2026-08-25", + "verifiedAt": "2026-08-28", "source": "https://commandcode.ai/docs/resources/pricing-limits", "tierPolicy": "Use request-wide input tiers; the highest threshold exceeded by input plus cache tokens applies to the full request.", "tiers": { @@ -40,12 +40,14 @@ "Qwen/Qwen3.6-Plus": [0.5, 3, 0.1, 0], "stepfun/Step-3.7-Flash": [0.2, 1.15, 0.04, 0], "stepfun/Step-3.5-Flash": [0.1, 0.3, 0.02, 0], + "minimax/minimax-m3-free": [0, 0, 0, 0], + "minimax/minimax-m2.7-free": [0, 0, 0, 0], "tencent/hy3-paid": [0.14, 0.58, 0.035, 0], + "tencent/hy4-preview": [0.834, 2.501, 0.042, 0], "nvidia/nemotron-3-ultra-550b-a55b": [0.6, 2.4, 0.12, 0], "thinkingmachines/inkling": [1, 4.05, 0.17, 0], "thinkingmachines/inkling-small": [0.5, 1.2, 0.1, 0], "poolside/laguna-s-2.1-free": [0, 0, 0, 0], - "stealth/ox-alpha": [0, 0, 0, 0], "claude-sonnet-5": [2, 10, 0.2, 2.5], "claude-sonnet-4-6": [3, 15, 0.3, 3.75], "claude-fable-5": [10, 50, 1, 12.5], diff --git a/tests/test-pricing.ts b/tests/test-pricing.ts index 1cdc3c8..0ec3341 100644 --- a/tests/test-pricing.ts +++ b/tests/test-pricing.ts @@ -27,7 +27,11 @@ const fixtureUrl = new URL("./fixtures/commandcode-model-ids.json", import.meta. const fixture = JSON.parse(await readFile(fixtureUrl, "utf-8")) as ModelCatalogSnapshot const pricingFixtureUrl = new URL("./fixtures/commandcode-pricing.json", import.meta.url) const pricingFixture = JSON.parse(await readFile(pricingFixtureUrl, "utf-8")) as PricingSnapshot -const freeModels = new Set(["poolside/laguna-s-2.1-free", "stealth/ox-alpha"]) +const freeModels = new Set([ + "poolside/laguna-s-2.1-free", + "minimax/minimax-m3-free", + "minimax/minimax-m2.7-free", +]) function assertCost( modelId: string, @@ -50,7 +54,7 @@ function assertCost( describe("MODEL_COSTS pricing overlay", () => { it("covers the current Command Code model catalog snapshot", () => { assert.equal(fixture.source, "https://api.commandcode.ai/provider/v1/models") - assert.match(fixture.fetchedAt, /^2026-08-25T/) + assert.match(fixture.fetchedAt, /^2026-08-28T/) const catalogIds = [...fixture.modelIds].sort() const pricedIds = Object.keys(MODEL_COSTS).sort() @@ -156,6 +160,12 @@ describe("MODEL_COSTS pricing overlay", () => { cacheRead: 0.03, cacheWrite: 0, }) + assertCost("tencent/hy4-preview", { + input: 0.834, + output: 2.501, + cacheRead: 0.042, + cacheWrite: 0, + }) assertCost("google/gemini-3.7-flash", { input: 0.75, output: 3.75, @@ -208,7 +218,7 @@ describe("MODEL_COSTS pricing overlay", () => { it("tracks pricing provenance", () => { assert.equal(PRICING_SOURCE_URL, "https://commandcode.ai/docs/resources/pricing-limits") - assert.equal(PRICING_LAST_VERIFIED, "2026-08-25") + assert.equal(PRICING_LAST_VERIFIED, "2026-08-28") }) it("fails once temporary pricing needs review", () => {