From 48a8f919b52c9a4c80a92f1e224b75a8bf0fe934 Mon Sep 17 00:00:00 2001 From: randoentity <137087500+randoentity@users.noreply.github.com> Date: Thu, 8 May 2025 22:59:58 +0200 Subject: [PATCH] fixup: setting validation --- aider/commands.py | 2 +- aider/models.py | 9 +++++++-- 2 files changed, 8 insertions(+), 3 deletions(-) diff --git a/aider/commands.py b/aider/commands.py index 19f3b7c74..cda8c6f7c 100644 --- a/aider/commands.py +++ b/aider/commands.py @@ -1601,7 +1601,7 @@ class Commands: return value = args.strip() - model.set_enable_thinking(value) + model.set_enable_thinking(value, self.io) thinking_value = model.get_enable_thinking() self.io.tool_output(f"Set enable thinking to {thinking_value}") self.io.tool_output() diff --git a/aider/models.py b/aider/models.py index 1b95f0283..e1acc562e 100644 --- a/aider/models.py +++ b/aider/models.py @@ -14,6 +14,7 @@ from typing import Optional, Union import json5 import yaml from PIL import Image +from pydantic import TypeAdapter, ValidationError from aider.dump import dump # noqa: F401 from aider.llm import litellm @@ -755,14 +756,18 @@ class Model(ModelSettings): self.extra_params["extra_body"] = {} self.extra_params["extra_body"]["reasoning_effort"] = effort - def set_enable_thinking(self, setting): + def set_enable_thinking(self, setting, io): """Set the enable thinking parameter for models that support it""" if setting is not None: if not self.extra_params: self.extra_params = {} if "extra_body" not in self.extra_params: self.extra_params["extra_body"] = {} - self.extra_params["extra_body"]["enable_thinking"] = setting + try: + setting = TypeAdapter(bool).validate_python(setting) + self.extra_params["extra_body"]["enable_thinking"] = setting + except ValidationError: + io.tool_warning("Warning: the enable-thinking command expects true or false") def parse_token_value(self, value): """