modelSupportsThinking method

bool modelSupportsThinking(
  1. String model
)

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');
}