resolveAppliedEffort method
Resolve the effort value that will actually be sent to the API. Follows the full precedence chain: env MAGE_EFFORT_LEVEL -> appState.effortValue -> model default
Implementation
EffortValue? resolveAppliedEffort(
String model,
EffortValue? appStateEffortValue,
) {
if (isEffortEnvUnset) return null;
final envOverride = getEffortEnvOverride();
final resolved =
envOverride ?? appStateEffortValue ?? getDefaultEffortForModel(model);
// API rejects 'max' on non-Opus-4.6 models -- downgrade to 'high'.
if (resolved is EffortLevelValue &&
resolved.level == EffortLevel.max &&
!modelSupportsMaxEffort(model)) {
return const EffortLevelValue(EffortLevel.high);
}
return resolved;
}