Model capability detection and pricing lookup now strip a gateway vendor prefix before matching.
A model addressed as openai/gpt-5.6-luna or z-ai/glm-5.2 previously failed every anchored rule, so it was classified as a standard model, reasoningEffort was silently deleted from the request, and the pricing lookup returned nothing. Setting an effort level had no effect and produced no warning.
Fixed
- One shared vendor-prefix strip now normalizes the model id for both capability detection and pricing, in TypeScript and Python alike. Pricing previously enumerated three vendor prefixes and lost every other vendor.
Changed
- Capability rules are read from
model-capabilities.jsoninstead of the hardcoded regexes that duplicated it. The file already shipped in both packages and described itself as the source of parity; nothing read it. Python now carries a byte-identical copy. fixedTemperatureis no longer an alias forisReasoningModel. The temperature restriction belongs to the OpenAI families and has its own list, so a reasoning model from another vendor keeps its temperature.- GLM is recognised as a reasoning model.
Added
- Pricing for
gpt-5.6-luna,glm-5.2anddeepseek-v4-flash-0731; refresheddeepseek-v4-flash.
TypeScript and Python return byte-identical capability output for the same inputs.