From 7562c8b3f08a0d549b9f4d8abb08cee4b64f76b3 Mon Sep 17 00:00:00 2001 From: codex Date: Wed, 10 Jun 2026 04:30:13 +0000 Subject: [PATCH] fix: narrow pi numeric settings types --- bot_bottle/contrib/pi/agent_provider.py | 21 ++++++++++++++++----- 1 file changed, 16 insertions(+), 5 deletions(-) diff --git a/bot_bottle/contrib/pi/agent_provider.py b/bot_bottle/contrib/pi/agent_provider.py index dfc9120..874e82f 100644 --- a/bot_bottle/contrib/pi/agent_provider.py +++ b/bot_bottle/contrib/pi/agent_provider.py @@ -77,6 +77,19 @@ def _settings_value( return default if value is None else value +def _settings_int( + settings: dict[str, object], + key: str, + default: int, +) -> int: + value = _settings_value(settings, key, default) + if isinstance(value, bool): + return default + if isinstance(value, (int, str)): + return int(value) + return default + + def _pi_models_json( settings: dict[str, object], ) -> tuple[dict[str, object], str, str, list[str], str]: @@ -98,12 +111,10 @@ def _pi_models_json( max_tokens_field = str( _settings_value(settings, "max_tokens_field", "max_tokens") ) - context_window = int(_settings_value( + context_window = _settings_int( settings, "context_window", _DEFAULT_CONTEXT_WINDOW, - )) - max_tokens = int(_settings_value( - settings, "max_tokens", _DEFAULT_MAX_TOKENS, - )) + ) + max_tokens = _settings_int(settings, "max_tokens", _DEFAULT_MAX_TOKENS) input_context_window = max(1, context_window - max_tokens) provider: dict[str, object] = { "baseUrl": base_url,