Skip to content

fix(models): refresh model metadata so newer models expose thinking levels - #98

Merged
patlux merged 2 commits into
patlux:mainfrom
SamYue1:fix/refresh-model-metadata
Sep 15, 2026
Merged

patlux merged 2 commits into
patlux:mainfrom
SamYue1:fix/refresh-model-metadata

Conversation

@SamYue1

@SamYue1 SamYue1 commented Sep 14, 2026

Copy link
Copy Markdown
Contributor

Problem

The model metadata shipped with the provider predates several model ids, so those ids fall back to the unknown-model defaults (reasoning: false, no thinkingLevelMap). pi returns ["off"] for non-reasoning models, so deepseek/deepseek-v4.1-flash exposed no selectable thinking level and dropped reasoning_effort from requests.

Change

Refreshed the shipped metadata with the repository's own catalog sync script:

  • deepseek/deepseek-v4.1-flash — image + reasoning, efforts low/high/max
  • gpt-6-astra — image + reasoning, efforts lowmax
  • inclusionai/ling-3.0-flash-sante:free — reasoning + output limit
  • MiniMaxAI/MiniMax-M3 and the Muse Spark models — effort levels
  • dropped the now-redundant manual effort overrides

Verification

  • bun test ./tests/test-models.ts ./tests/test-model-metadata-check.ts → 30 pass / 0 fail
  • pi --list-models commandcode → 69 models; deepseek/deepseek-v4.1-flash reports thinking: yes
  • thinking levels resolve to off/low/high/max, matching the public model reference

@SamYue1
SamYue1 force-pushed the fix/refresh-model-metadata branch from 2e257a9 to 2e90bfd Compare September 14, 2026 06:15
…ng levels

The capability metadata that ships with the provider predated several model ids,
so anything published after the last refresh fell back to the unknown-model
defaults: reasoning: false and no thinkingLevelMap. pi hides every thinking
level for non-reasoning models, so deepseek/deepseek-v4.1-flash offered only
"off" and dropped reasoning_effort from the request.

Refreshed the metadata with the repository's own catalog sync script. The newer
ids now report their image, reasoning, effort, and output-limit support, and
deepseek/deepseek-v4.1-flash exposes low/high/max, which matches the public
model reference. The obsolete manual effort overrides are dropped because the
refreshed catalog carries those levels itself.
@SamYue1
SamYue1 force-pushed the fix/refresh-model-metadata branch from 2e90bfd to baf7015 Compare September 14, 2026 08:18
@Alice39s

Copy link
Copy Markdown

I reproduced this refresh against the live Provider API and pi's model runtime.

Command Code's gateway rejects minimal for every model I probed, Muse Spark included:

POST /provider/v1/chat/completions  {"model":"meta/muse-spark-1.3", …, "reasoning_effort":"minimal"}
→ 400 {"error":{"message":"Invalid option: expected one of \"low\"|\"medium\"|\"high\"|\"xhigh\"|\"max\""}}

low, medium, high and xhigh return 200. max is validated again upstream and depends on the model. While the override kept minimal selectable, pi offered a level whose request always failed, and tests/test-models.ts refuses to let the sync finish until that override is gone, which is what kept the scheduled job red.

rashidrazak/opencode-cmd-provider builds its MODEL_EFFORTS from the same upstream models.md, and its entries line up with this catalog: deepseek/deepseek-v4.1-flash = low|high|max, MiniMaxAI/MiniMax-M3 = low|medium|high, gpt-6-astra = low…max, and no levels for moonshotai/Kimi-K2.7-Code, Qwen/Qwen3.7-*, thinkingmachines/inkling*, stepfun/*, tencent/hy3-paid, meituan/LongCat-2.0:free, poolside/laguna-s-2.1-free and nvidia/nemotron-3-ultra-550b-a55b. That project calls those "reasoning-capable without published efforts", so ids that still resolve to ["off"] after this PR are expected.

Through pi --mode rpc (set_model, then get_available_thinking_levels):

commandcode/deepseek/deepseek-v4.1-flash   ["off"]                                        → ["off","low","high","max"]
commandcode/MiniMaxAI/MiniMax-M3           ["off"]                                        → ["off","low","medium","high"]
commandcode/meta/muse-spark-1.3            ["off","minimal","low","medium","high","xhigh"] → ["off","low","medium","high","xhigh","max"]
commandcode/meta/muse-spark-1.1            ["off","minimal","low","medium","high","xhigh"] → ["off","low","medium","high","xhigh"]

43 of the 69 live catalog models expose at least one selectable level, and every remaining ["off"] id is one upstream publishes without efforts or marks non-reasoning.

@patlux

patlux commented Sep 15, 2026

Copy link
Copy Markdown
Owner

Integrated current main (including repaired CI and sync), regenerated with command-code@1.54.0, and corrected the changelog: Ling has reasoning support but no published effort levels; API-absent IDs are not made selectable by metadata. Documented Muse Spark minimal removal and max addition. Full npm test passes locally with real Pi and OMP 18.1.22, plus formatting and diff checks. Waiting for CI before merge.

@patlux

patlux commented Sep 15, 2026

Copy link
Copy Markdown
Owner

Shipped in pi-commandcode-provider@0.7.0: https://github.com/patlux/pi-commandcode-provider/releases/tag/v0.7.0 . Public npm package model discovery and GOAT live smoke verified.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants