From b1edaa557372468421b93acbf82c2a8aa3a649d0 Mon Sep 17 00:00:00 2001 From: patlux <4481570+patlux@users.noreply.github.com> Date: Thu, 17 Sep 2026 11:40:56 +0000 Subject: [PATCH 1/2] chore(models): sync Command Code catalog --- README.md | 2 +- src/commandcode-catalog.ts | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/README.md b/README.md index ec04fca..3f69d03 100644 --- a/README.md +++ b/README.md @@ -139,7 +139,7 @@ The following environment variables are intended for tests, local mocks, and com ## Image input -The provider advertises image input only for models marked with the `image` input modality in the official Command Code CLI model catalog. The capability snapshot currently follows `command-code@1.54.0`; unknown models default to text-only until their upstream metadata is reviewed. A daily GitHub Actions job synchronizes the CLI version, image capabilities, reasoning flags, reasoning efforts, and model-specific output limits with the latest published CLI package, also dropping manual effort overrides that upstream has published itself, and opens or updates a reviewable pull request when they change. Pricing remains manually reviewed because temporary promotions and long-context tiers require explicit review. +The provider advertises image input only for models marked with the `image` input modality in the official Command Code CLI model catalog. The capability snapshot currently follows `command-code@1.54.2`; unknown models default to text-only until their upstream metadata is reviewed. A daily GitHub Actions job synchronizes the CLI version, image capabilities, reasoning flags, reasoning efforts, and model-specific output limits with the latest published CLI package, also dropping manual effort overrides that upstream has published itself, and opens or updates a reviewable pull request when they change. Pricing remains manually reviewed because temporary promotions and long-context tiers require explicit review. For vision-capable models, Pi's native provider adapters forward image blocks from user messages and tool results using the documented OpenAI or Anthropic message schema. Unknown and text-only models remain marked text-only in Pi. diff --git a/src/commandcode-catalog.ts b/src/commandcode-catalog.ts index 59eccbf..9efe6af 100644 --- a/src/commandcode-catalog.ts +++ b/src/commandcode-catalog.ts @@ -1,10 +1,10 @@ -export const COMMAND_CODE_CLI_VERSION = "1.54.0" +export const COMMAND_CODE_CLI_VERSION = "1.54.2" export type CommandCodeInputType = "text" | "image" export type CommandCodeReasoningEffort = "minimal" | "low" | "medium" | "high" | "xhigh" | "max" /** - * Generated from command-code@1.54.0 by `npm run sync:commandcode-catalog`. + * Generated from command-code@1.54.2 by `npm run sync:commandcode-catalog`. * Do not edit manually. */ export const MODEL_INPUT_MODALITIES: Readonly> = { From 9d84323e80333d520b4cfb11c1d1f1a31cf97f74 Mon Sep 17 00:00:00 2001 From: Patrick Wozniak Date: Fri, 18 Sep 2026 10:23:02 +0200 Subject: [PATCH 2/2] chore(models): refresh catalog and reviewed Qwen Omni pricing --- CHANGELOG.md | 2 ++ README.md | 2 +- src/commandcode-catalog.ts | 8 ++++++-- src/pricing.ts | 3 ++- tests/fixtures/commandcode-model-ids.json | 3 ++- tests/fixtures/commandcode-pricing.json | 3 ++- tests/test-models.ts | 13 +++++++++++++ tests/test-pricing.ts | 10 ++++++++-- 8 files changed, 36 insertions(+), 8 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index c34c53a..b5fe7b0 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -2,6 +2,8 @@ ## Unreleased +- Refresh the Command Code CLI catalog to `1.56.0`, adding image input, reasoning effort levels, a 131,072-token output limit, and reviewed display pricing for `Qwen/Qwen3.8-Omni-Flash`. + - Normalize nullable type arrays for `google/gemini-*` tools on the generate transport to avoid the gateway's `any_of` validation error (#99), preserving required fields, literal data, and schemas for unrelated models. ## 0.7.0 - 2026-09-15 diff --git a/README.md b/README.md index 3f69d03..bd149ae 100644 --- a/README.md +++ b/README.md @@ -139,7 +139,7 @@ The following environment variables are intended for tests, local mocks, and com ## Image input -The provider advertises image input only for models marked with the `image` input modality in the official Command Code CLI model catalog. The capability snapshot currently follows `command-code@1.54.2`; unknown models default to text-only until their upstream metadata is reviewed. A daily GitHub Actions job synchronizes the CLI version, image capabilities, reasoning flags, reasoning efforts, and model-specific output limits with the latest published CLI package, also dropping manual effort overrides that upstream has published itself, and opens or updates a reviewable pull request when they change. Pricing remains manually reviewed because temporary promotions and long-context tiers require explicit review. +The provider advertises image input only for models marked with the `image` input modality in the official Command Code CLI model catalog. The capability snapshot currently follows `command-code@1.56.0`; unknown models default to text-only until their upstream metadata is reviewed. A daily GitHub Actions job synchronizes the CLI version, image capabilities, reasoning flags, reasoning efforts, and model-specific output limits with the latest published CLI package, also dropping manual effort overrides that upstream has published itself, and opens or updates a reviewable pull request when they change. Pricing remains manually reviewed because temporary promotions and long-context tiers require explicit review. For vision-capable models, Pi's native provider adapters forward image blocks from user messages and tool results using the documented OpenAI or Anthropic message schema. Unknown and text-only models remain marked text-only in Pi. diff --git a/src/commandcode-catalog.ts b/src/commandcode-catalog.ts index 9efe6af..9a80bd2 100644 --- a/src/commandcode-catalog.ts +++ b/src/commandcode-catalog.ts @@ -1,10 +1,10 @@ -export const COMMAND_CODE_CLI_VERSION = "1.54.2" +export const COMMAND_CODE_CLI_VERSION = "1.56.0" export type CommandCodeInputType = "text" | "image" export type CommandCodeReasoningEffort = "minimal" | "low" | "medium" | "high" | "xhigh" | "max" /** - * Generated from command-code@1.54.2 by `npm run sync:commandcode-catalog`. + * Generated from command-code@1.56.0 by `npm run sync:commandcode-catalog`. * Do not edit manually. */ export const MODEL_INPUT_MODALITIES: Readonly> = { @@ -50,6 +50,7 @@ export const MODEL_INPUT_MODALITIES: Readonly> = { "Qwen/Qwen3.8-Flash": true, "Qwen/Qwen3.8-Max": true, "Qwen/Qwen3.8-Max-0902": true, + "Qwen/Qwen3.8-Omni-Flash": true, "sakana/fugu-ultra": true, "stepfun/Step-3.5-Flash": true, "stepfun/Step-3.7-Flash": true, @@ -161,6 +163,7 @@ export const MODEL_EFFORTS: Readonly> = { "inclusionai/ling-3.0-flash-sante:free": 32_768, "poolside/laguna-s-2.1-free": 32_768, "Qwen/Qwen3.8-27B": 32_768, + "Qwen/Qwen3.8-Omni-Flash": 131_072, "z-ai/glm-5.3-flash": 131_072, } diff --git a/src/pricing.ts b/src/pricing.ts index d593437..2d178fa 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-09-15" +export const PRICING_LAST_VERIFIED = "2026-09-18" export const ZERO_MODEL_COST: CommandCodeModelCost = { input: 0, @@ -101,6 +101,7 @@ export const MODEL_COSTS: Readonly> = { "Qwen/Qwen3.8-Max-0902": { input: 2, output: 6, cacheRead: 0.25, cacheWrite: 0 }, "Qwen/Qwen3.8-27B": { input: 0.4, output: 3, cacheRead: 0.04, cacheWrite: 0 }, "Qwen/Qwen3.8-Flash": { input: 0.16, output: 0.47, cacheRead: 0.016, cacheWrite: 0 }, + "Qwen/Qwen3.8-Omni-Flash": { input: 0.15, output: 0.47, cacheRead: 0.016, cacheWrite: 0 }, "Qwen/Qwen3.7-Max": { input: 2.5, output: 7.5, cacheRead: 0.5, cacheWrite: 3.13 }, "Qwen/Qwen3.7-Plus": { input: 0.4, diff --git a/tests/fixtures/commandcode-model-ids.json b/tests/fixtures/commandcode-model-ids.json index 4281615..7ae6381 100644 --- a/tests/fixtures/commandcode-model-ids.json +++ b/tests/fixtures/commandcode-model-ids.json @@ -1,5 +1,5 @@ { - "fetchedAt": "2026-09-15T00:04:32.535Z", + "fetchedAt": "2026-09-18T08:21:28.827Z", "source": "https://api.commandcode.ai/provider/v1/models", "modelIds": [ "claude-sonnet-5", @@ -38,6 +38,7 @@ "MiniMaxAI/MiniMax-M2.5", "xiaomi/mimo-v2.5-pro", "xiaomi/mimo-v2.5", + "Qwen/Qwen3.8-Omni-Flash", "Qwen/Qwen3.8-Max-0902", "Qwen/Qwen3.8-Max", "Qwen/Qwen3.8-27B", diff --git a/tests/fixtures/commandcode-pricing.json b/tests/fixtures/commandcode-pricing.json index 09827d7..231080b 100644 --- a/tests/fixtures/commandcode-pricing.json +++ b/tests/fixtures/commandcode-pricing.json @@ -1,5 +1,5 @@ { - "verifiedAt": "2026-09-15", + "verifiedAt": "2026-09-18", "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": { @@ -39,6 +39,7 @@ "Qwen/Qwen3.8-Max-0902": [2, 6, 0.25, 0], "Qwen/Qwen3.8-27B": [0.4, 3, 0.04, 0], "Qwen/Qwen3.8-Flash": [0.16, 0.47, 0.016, 0], + "Qwen/Qwen3.8-Omni-Flash": [0.15, 0.47, 0.016, 0], "Qwen/Qwen3.7-Max": [2.5, 7.5, 0.5, 3.13], "Qwen/Qwen3.7-Plus": [0.4, 1.6, 0.08, 0.5], "Qwen/Qwen3.7-Flash": [0.03, 0.13, 0.006, 0.038], diff --git a/tests/test-models.ts b/tests/test-models.ts index 6dc1f80..7e3d1bf 100644 --- a/tests/test-models.ts +++ b/tests/test-models.ts @@ -126,6 +126,19 @@ describe("commandCodeModelsFromApiResponse()", () => { assert.equal(modelSupportsImageInput("unknown-new-model"), false) }) + it("advertises Qwen 3.8 Omni Flash capabilities from the CLI catalog", () => { + const id = "Qwen/Qwen3.8-Omni-Flash" + assert.deepEqual(inputModalitiesForModel(id), ["text", "image"]) + assert.equal(MODEL_REASONING[id], true) + assert.deepEqual(thinkingMetadataForModel(id)?.thinking?.efforts, ["low", "medium", "xhigh"]) + const models = commandCodeModelsFromApiResponse({ + object: "list", + data: [{ ...API_RESPONSE.data[0], id }], + }) + assert.equal(models[0]?.reasoning, true) + assert.equal(models[0]?.maxTokens, 131_072) + }) + it("prefers host-resolved input modalities over the catalog snapshot", () => { // A model published upstream after the pinned CLI release is absent from the // generated catalog, so the host's resolved modalities must win. diff --git a/tests/test-pricing.ts b/tests/test-pricing.ts index ca7a915..bc1a0fd 100644 --- a/tests/test-pricing.ts +++ b/tests/test-pricing.ts @@ -54,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-09-15T/) + assert.match(fixture.fetchedAt, /^2026-09-18T/) const catalogIds = [...fixture.modelIds].sort() const pricedIds = Object.keys(MODEL_COSTS).sort() @@ -235,6 +235,12 @@ describe("MODEL_COSTS pricing overlay", () => { }) it("uses reviewed rates for the September catalog additions", () => { + assertCost("Qwen/Qwen3.8-Omni-Flash", { + input: 0.15, + output: 0.47, + cacheRead: 0.016, + cacheWrite: 0, + }) assertCost("Qwen/Qwen3.8-Max-0902", { input: 2, output: 6, cacheRead: 0.25, cacheWrite: 0 }) assertCost("google/gemini-3.8-flash", { input: 1.5, @@ -259,7 +265,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-09-15") + assert.equal(PRICING_LAST_VERIFIED, "2026-09-18") }) it("fails once temporary pricing needs review", () => {