Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
7 changes: 4 additions & 3 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,10 +2,11 @@

## Unreleased

- Refresh model capabilities to `command-code@1.54.0`: add DeepSeek V4.1 Flash image input and `low`/`high`/`max` efforts, GPT-6 Astra capability metadata, Grok 4.6 image input, and MiniMax M3 efforts. Ling 3.0 Flash Sante is reasoning-capable with a 32K output limit but has no published selectable effort levels. Catalog metadata does not make models absent from the Provider API selectable.
- Replace manual Muse Spark efforts with upstream levels: remove `minimal` for all five models and add `max` for Muse Spark 1.3.
- Rebind a host's preselected built-in Command Code model to the extension's registered transport at session start, preserving configured endpoints and generate fallback on Oh My Pi.

- Make the daily catalog sync self-healing: it now drops manual effort overrides that upstream has published itself, instead of leaving the removal to a human. The scheduled workflow previously failed on its own guard test, which skipped the pull-request step, so it could never propose the fix. The sync pull request also carries `src/commandcode-catalog-overrides.ts` now.
- Fix the pi end-to-end suite against pi 0.85 and newer, which streams Anthropic Messages through the SDK and appends `?beta=true` to `/v1/messages`. The mock matched the exact URL and answered 404, so every pull request failed while CI installs pi unpinned.
- Make the daily catalog sync self-healing: it now removes manual effort overrides once upstream publishes its own levels and includes that change in the automated pull request.
- Fix the pi end-to-end mock against pi 0.85 and newer by matching Anthropic Messages paths independently of query parameters.

## 0.6.4 - 2026-09-03

Expand Down
2 changes: 1 addition & 1 deletion README.md
Original file line number Diff line number Diff line change
Expand Up @@ -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.44.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.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.

Expand Down
10 changes: 1 addition & 9 deletions src/commandcode-catalog-overrides.ts
Original file line number Diff line number Diff line change
Expand Up @@ -25,12 +25,4 @@ import type { CommandCodeReasoningEffort } from "./commandcode-catalog.ts"
*/
export const MODEL_EFFORT_OVERRIDES: Readonly<
Record<string, readonly CommandCodeReasoningEffort[]>
> = {
// Meta Muse Spark: the CLI ships no effort levels, but the endpoint accepts
// `reasoning_effort` for these models and other hosts expose the same set.
"meta/muse-spark-1.1": ["minimal", "low", "medium", "high", "xhigh"],
"meta/muse-spark-1.2": ["minimal", "low", "medium", "high", "xhigh"],
"meta/muse-spark-1.2-contributor": ["minimal", "low", "medium", "high", "xhigh"],
"meta/muse-spark-1.3": ["minimal", "low", "medium", "high", "xhigh"],
"meta/muse-spark-1.3-contributor": ["minimal", "low", "medium", "high", "xhigh"],
}
> = {}
19 changes: 17 additions & 2 deletions src/commandcode-catalog.ts
Original file line number Diff line number Diff line change
@@ -1,10 +1,10 @@
export const COMMAND_CODE_CLI_VERSION = "1.44.0"
export const COMMAND_CODE_CLI_VERSION = "1.54.0"

export type CommandCodeInputType = "text" | "image"
export type CommandCodeReasoningEffort = "minimal" | "low" | "medium" | "high" | "xhigh" | "max"

/**
* Generated from command-code@1.44.0 by `npm run sync:commandcode-catalog`.
* Generated from command-code@1.54.0 by `npm run sync:commandcode-catalog`.
* Do not edit manually.
*/
export const MODEL_INPUT_MODALITIES: Readonly<Record<string, readonly CommandCodeInputType[]>> = {
Expand All @@ -17,6 +17,7 @@ export const MODEL_INPUT_MODALITIES: Readonly<Record<string, readonly CommandCod
"claude-sonnet-4-6": ["text", "image"],
"claude-sonnet-5": ["text", "image"],
"deepseek/deepseek-v4-flash-vision-exp": ["text", "image"],
"deepseek/deepseek-v4.1-flash": ["text", "image"],
"google/gemini-3.1-flash-lite": ["text", "image"],
"google/gemini-3.5-flash": ["text", "image"],
"google/gemini-3.5-flash-lite": ["text", "image"],
Expand All @@ -30,6 +31,7 @@ export const MODEL_INPUT_MODALITIES: Readonly<Record<string, readonly CommandCod
"gpt-5.6-luna": ["text", "image"],
"gpt-5.6-sol": ["text", "image"],
"gpt-5.6-terra": ["text", "image"],
"gpt-6-astra": ["text", "image"],
"meta/muse-spark-1.1": ["text", "image"],
"meta/muse-spark-1.2": ["text", "image"],
"meta/muse-spark-1.2-contributor": ["text", "image"],
Expand All @@ -53,6 +55,7 @@ export const MODEL_INPUT_MODALITIES: Readonly<Record<string, readonly CommandCod
"thinkingmachines/inkling": ["text", "image"],
"thinkingmachines/inkling-small": ["text", "image"],
"xai/grok-4.5": ["text", "image"],
"xai/grok-4.6": ["text", "image"],
"xiaomi/mimo-v2.5": ["text", "image"],
"z-ai/glm-5.3-flash": ["text", "image"],
}
Expand All @@ -69,6 +72,7 @@ export const MODEL_REASONING: Readonly<Record<string, true>> = {
"deepseek/deepseek-v4-flash-fast": true,
"deepseek/deepseek-v4-flash-vision-exp": true,
"deepseek/deepseek-v4-pro": true,
"deepseek/deepseek-v4.1-flash": true,
"google/gemini-3.1-flash-lite": true,
"google/gemini-3.5-flash": true,
"google/gemini-3.5-flash-lite": true,
Expand All @@ -82,6 +86,8 @@ export const MODEL_REASONING: Readonly<Record<string, true>> = {
"gpt-5.6-luna": true,
"gpt-5.6-sol": true,
"gpt-5.6-terra": true,
"gpt-6-astra": true,
"inclusionai/ling-3.0-flash-sante:free": true,
"meituan/LongCat-2.0:free": true,
"meta/muse-spark-1.1": true,
"meta/muse-spark-1.2": true,
Expand Down Expand Up @@ -129,6 +135,7 @@ export const MODEL_EFFORTS: Readonly<Record<string, readonly CommandCodeReasonin
"deepseek/deepseek-v4-flash-fast": ["low", "high", "max"],
"deepseek/deepseek-v4-flash-vision-exp": ["high", "max"],
"deepseek/deepseek-v4-pro": ["high", "max"],
"deepseek/deepseek-v4.1-flash": ["low", "high", "max"],
"google/gemini-3.1-flash-lite": ["low", "medium", "high"],
"google/gemini-3.5-flash": ["low", "medium", "high"],
"google/gemini-3.5-flash-lite": ["low", "medium", "high"],
Expand All @@ -142,6 +149,13 @@ export const MODEL_EFFORTS: Readonly<Record<string, readonly CommandCodeReasonin
"gpt-5.6-luna": ["low", "medium", "high", "xhigh", "max"],
"gpt-5.6-sol": ["low", "medium", "high", "xhigh", "max"],
"gpt-5.6-terra": ["low", "medium", "high", "xhigh", "max"],
"gpt-6-astra": ["low", "medium", "high", "xhigh", "max"],
"meta/muse-spark-1.1": ["low", "medium", "high", "xhigh"],
"meta/muse-spark-1.2": ["low", "medium", "high", "xhigh"],
"meta/muse-spark-1.2-contributor": ["low", "medium", "high", "xhigh"],
"meta/muse-spark-1.3": ["low", "medium", "high", "xhigh", "max"],
"meta/muse-spark-1.3-contributor": ["low", "medium", "high", "xhigh"],
"MiniMaxAI/MiniMax-M3": ["low", "medium", "high"],
"moonshotai/Kimi-K3": ["low", "high", "max"],
"Qwen/Qwen3.8-27B": ["low", "medium", "xhigh"],
"Qwen/Qwen3.8-Flash": ["low", "medium", "xhigh"],
Expand All @@ -157,6 +171,7 @@ export const MODEL_EFFORTS: Readonly<Record<string, readonly CommandCodeReasonin
}

export const MODEL_MAX_OUTPUT_TOKENS: Readonly<Record<string, number>> = {
"inclusionai/ling-3.0-flash-sante:free": 32_768,
"poolside/laguna-s-2.1-free": 32_768,
"Qwen/Qwen3.8-27B": 32_768,
"z-ai/glm-5.3-flash": 131_072,
Expand Down
Loading