From 182c06107f8c68ef628ad05056d9e4d9a6f1d467 Mon Sep 17 00:00:00 2001 From: "Paul Gauthier (aider)" Date: Tue, 18 Mar 2025 12:13:55 -0700 Subject: [PATCH] fix: move model setting warnings after settings are resolved --- aider/main.py | 19 +++++++++++-------- 1 file changed, 11 insertions(+), 8 deletions(-) diff --git a/aider/main.py b/aider/main.py index a4db7a478..ce7db0833 100644 --- a/aider/main.py +++ b/aider/main.py @@ -787,27 +787,30 @@ def main(argv=None, input=None, output=None, force_git_root=None, return_coder=F "Model setting 'remove_reasoning' is deprecated, please use 'reasoning_tag' instead." ) - # Set reasoning effort if specified + # Set reasoning effort and thinking tokens if specified if args.reasoning_effort is not None: - if args.check_model_accepts_settings and ( + main_model.set_reasoning_effort(args.reasoning_effort) + + if args.thinking_tokens is not None: + main_model.set_thinking_tokens(args.thinking_tokens) + + # Show warnings about unsupported settings after all model settings are fully resolved + if args.check_model_accepts_settings: + if args.reasoning_effort is not None and ( not main_model.accepts_settings or "reasoning_effort" not in main_model.accepts_settings ): io.tool_warning( f"Warning: The model {main_model.name} may not support the 'reasoning_effort'" " setting." ) - main_model.set_reasoning_effort(args.reasoning_effort) - - # Set thinking tokens if specified - if args.thinking_tokens is not None: - if args.check_model_accepts_settings and ( + + if args.thinking_tokens is not None and ( not main_model.accepts_settings or "thinking_tokens" not in main_model.accepts_settings ): io.tool_warning( f"Warning: The model {main_model.name} may not support the 'thinking_tokens'" " setting." ) - main_model.set_thinking_tokens(args.thinking_tokens) if args.copy_paste and args.edit_format is None: if main_model.edit_format in ("diff", "whole"):