Summary
Discovered Requesty models are registered with pi as reasoning: true but without a thinkingLevelMap, so pi does not advertise the max (or xhigh) thinking levels — even for models that support them (e.g. DeepSeek V4 Flash).
Per pi's docs (docs/models.md → Thinking Level Map), a model with reasoning: true but no thinkingLevelMap exposes only the standard levels up to high; xhigh and max are treated as unsupported. So users of this extension can't select max for models that actually support it.
Where
discoverModels() in requesty.js maps each model from the /models response to a fixed field set:
{
id, name,
reasoning: model.supports_reasoning === true,
input, cost, contextWindow, maxTokens
}
It only reads the boolean supports_reasoning and never emits thinkingLevelMap. The same shape is written back in updateModelsJson and registered at startup via pi.registerProvider(...).
Repro
- Install pi-requesty.
- Have Requesty's
/models return a reasoning-capable model such as sference/deepseek-v4-flash-0731.
- In pi
/settings (or --thinking), only min / low / med / high appear — no max.
Workaround (manual, survives sync because modelOverrides is a separate key from models):
{
"providers": {
"requesty": {
"modelOverrides": {
"sference/deepseek-v4-flash-0731": {
"thinkingLevelMap": { "high": "high", "low": "low", "max": "max", "medium": "medium" }
}
}
}
}
}
Expected behavior
The extension should propagate per-model thinking-level metadata so pi exposes the correct levels automatically. Options:
- If Requesty's
/models response includes per-model level info, map it to thinkingLevelMap in discoverModels and persist it in updateModelsJson.
- Otherwise, fall back to a sensible default
thinkingLevelMap (e.g. expose high/max for reasoning: true models) unless the user overrides.
Environment
- pi 0.83.0
- pi-requesty v0.2.7
- Model:
sference/deepseek-v4-flash-0731 (requesty provider)
Summary
Discovered Requesty models are registered with pi as
reasoning: truebut without athinkingLevelMap, so pi does not advertise themax(orxhigh) thinking levels — even for models that support them (e.g. DeepSeek V4 Flash).Per pi's docs (
docs/models.md → Thinking Level Map), a model withreasoning: truebut nothinkingLevelMapexposes only the standard levels up tohigh;xhighandmaxare treated as unsupported. So users of this extension can't selectmaxfor models that actually support it.Where
discoverModels()inrequesty.jsmaps each model from the/modelsresponse to a fixed field set:It only reads the boolean
supports_reasoningand never emitsthinkingLevelMap. The same shape is written back inupdateModelsJsonand registered at startup viapi.registerProvider(...).Repro
/modelsreturn a reasoning-capable model such assference/deepseek-v4-flash-0731./settings(or--thinking), onlymin / low / med / highappear — nomax.Workaround (manual, survives sync because
modelOverridesis a separate key frommodels):{ "providers": { "requesty": { "modelOverrides": { "sference/deepseek-v4-flash-0731": { "thinkingLevelMap": { "high": "high", "low": "low", "max": "max", "medium": "medium" } } } } } }Expected behavior
The extension should propagate per-model thinking-level metadata so pi exposes the correct levels automatically. Options:
/modelsresponse includes per-model level info, map it tothinkingLevelMapindiscoverModelsand persist it inupdateModelsJson.thinkingLevelMap(e.g. exposehigh/maxforreasoning: truemodels) unless the user overrides.Environment
sference/deepseek-v4-flash-0731(requesty provider)