AI reasoning effort. Pass one of the canonical levels for portable, autocomplete-friendly usage, or
a raw provider-native string when a model exposes a level outside the canonical set.
exact match with the model's capability -> used as-is (1:1);
canonical level the model lacks -> clamped to the nearest supported level (ties resolve downward);
unknown string the model cannot place on the axis -> dropped, so the model's own default applies,
with a warning;
model without a reasoning knob -> ignored, with a warning.
A model served through an openai_compatible integration is the exception: the value is sent to
that endpoint exactly as written, with none of the resolution above, since the endpoint's model is
the app's own choice and this registry cannot describe it. That is also how to reach a level the
canonical set has no name for.
AI reasoning effort. Pass one of the canonical levels for portable, autocomplete-friendly usage, or a raw provider-native string when a model exposes a level outside the canonical set.
Resolution against the selected model (see ReasoningCapability):
A model served through an
openai_compatibleintegration is the exception: the value is sent to that endpoint exactly as written, with none of the resolution above, since the endpoint's model is the app's own choice and this registry cannot describe it. That is also how to reach a level the canonical set has no name for.