modelSupportsThinking method
Check if a model supports extended thinking.
Implementation
bool modelSupportsThinking(String model) {
final supported3P = _config.get3PModelCapabilityOverride(model, 'thinking');
if (supported3P != null) return supported3P;
if (_config.getUserType() == 'ant') {
final antModel = _config.resolveAntModel(model.toLowerCase());
if (antModel != null) return true;
}
final canonical = _config.getCanonicalName(model);
final provider = _config.getApiProvider();
// 1P and Foundry: all Neomage 4+ models.
if (provider == 'foundry' || provider == 'firstParty') {
return !canonical.contains('claude-3-');
}
// 3P (Bedrock/Vertex): only Opus 4+ and Sonnet 4+.
return canonical.contains('sonnet-4') || canonical.contains('opus-4');
}