From 876ed0603ed1d4caeeeee35c9d96339919c6ccce Mon Sep 17 00:00:00 2001 From: Pavlo Ivashchenko Date: Sun, 21 Dec 2025 17:57:22 +0200 Subject: [PATCH 1/3] Update browserstack credentials, add requirements.txt for dependencies, and minor test file modification --- browserstack.yml | 6 ++-- requirements.txt | 34 +++++++++++++++++++++ tests/utest/utilities/test_cost_tracking.py | 1 + 3 files changed, 38 insertions(+), 3 deletions(-) create mode 100644 requirements.txt diff --git a/browserstack.yml b/browserstack.yml index 393d023..205f896 100644 --- a/browserstack.yml +++ b/browserstack.yml @@ -1,6 +1,6 @@ -userName: abdelkader_V4xYMH -accessKey: tanzNWSELCnpVpEnHZA4 -app: bs://c029a7bcf778f5ad2e6e00538c80b6d052caed0a +userName: abdelkader_qxCd7Q +accessKey: TWnqsqht7fWKcaCB7ygB +app: bs://6431a3519466a5fa81f856f04a8c33d4f9bfabbd platforms: # - deviceName: Google Pixel 8 # platformVersion: 14.0 diff --git a/requirements.txt b/requirements.txt new file mode 100644 index 0000000..69a2a54 --- /dev/null +++ b/requirements.txt @@ -0,0 +1,34 @@ +# Robot Framework Agent - Production Dependencies +# Install: pip install -r requirements.txt + +# ============================================================================ +# Core Framework +# ============================================================================ +robotframework>=6.0 +robotframework-appiumlibrary>=3.0 +Appium-Python-Client>=5.0 +playwright>=1.40.0 + +# ============================================================================ +# LLM Providers (at least one required) +# ============================================================================ +# OpenAI (default provider) +openai>=1.0.0 + +# Uncomment if you use these providers: +anthropic>=0.20.0 # For Claude models +google-generativeai>=0.3.0 # For Gemini models + +# ============================================================================ +# Utilities +# ============================================================================ +Pillow>=10.0.0 # Image processing +tiktoken>=0.5.0 # Token counting for LLMs +python-dotenv>=1.0.0 # Environment variables +requests>=2.31.0 # HTTP requests (image upload) + +# ============================================================================ +# Vision Features (OmniParser) +# ============================================================================ +# Required for visual click tool (OmniParser integration) +gradio-client>=2.0.0 # Gradio client for HuggingFace spaces diff --git a/tests/utest/utilities/test_cost_tracking.py b/tests/utest/utilities/test_cost_tracking.py index 4836a71..92b170a 100644 --- a/tests/utest/utilities/test_cost_tracking.py +++ b/tests/utest/utilities/test_cost_tracking.py @@ -174,3 +174,4 @@ def test_calculate_cost_unknown_model(self, mock_config, mock_openai): if __name__ == '__main__': unittest.main() + From ead968e4baf339ae0e5efda217de477b503a8c64 Mon Sep 17 00:00:00 2001 From: Pavlo Ivashchenko Date: Sun, 21 Dec 2025 19:46:53 +0200 Subject: [PATCH 2/3] Add thinking feature to AnthropicClient with budget tokens support --- Agent/ai/llm/_anthropic.py | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/Agent/ai/llm/_anthropic.py b/Agent/ai/llm/_anthropic.py index 016b5ef..15c2236 100644 --- a/Agent/ai/llm/_anthropic.py +++ b/Agent/ai/llm/_anthropic.py @@ -38,6 +38,8 @@ def create_chat_completion( top_p: float = 1.0, tools: Optional[List[Dict]] = None, tool_choice: Optional[Union[str, Dict]] = None, + thinking: Optional[bool] = False, + thinking_budget_tokens: Optional[int] = 2048, **kwargs ): try: @@ -59,6 +61,11 @@ def create_chat_completion( "max_tokens": max_tokens, **kwargs, } + if thinking: + api_params["thinking"] = { + "type": "enabled", + "budget_tokens": thinking_budget_tokens + } if temperature != 1.0: api_params["temperature"] = temperature elif top_p != 1.0: @@ -66,6 +73,9 @@ def create_chat_completion( else: api_params["temperature"] = temperature + if api_params.get("thinking"): + api_params["temperature"] = 1 + if system_message: api_params["system"] = system_message From 274608d55e0c3c1eb2056ace5450d633eb63d346 Mon Sep 17 00:00:00 2001 From: Pavlo Ivashchenko Date: Sun, 21 Dec 2025 19:49:06 +0200 Subject: [PATCH 3/3] Revert "Update browserstack credentials, add requirements.txt for dependencies, and minor test file modification" This reverts commit 876ed0603ed1d4caeeeee35c9d96339919c6ccce. --- browserstack.yml | 6 ++-- requirements.txt | 34 --------------------- tests/utest/utilities/test_cost_tracking.py | 1 - 3 files changed, 3 insertions(+), 38 deletions(-) delete mode 100644 requirements.txt diff --git a/browserstack.yml b/browserstack.yml index 205f896..393d023 100644 --- a/browserstack.yml +++ b/browserstack.yml @@ -1,6 +1,6 @@ -userName: abdelkader_qxCd7Q -accessKey: TWnqsqht7fWKcaCB7ygB -app: bs://6431a3519466a5fa81f856f04a8c33d4f9bfabbd +userName: abdelkader_V4xYMH +accessKey: tanzNWSELCnpVpEnHZA4 +app: bs://c029a7bcf778f5ad2e6e00538c80b6d052caed0a platforms: # - deviceName: Google Pixel 8 # platformVersion: 14.0 diff --git a/requirements.txt b/requirements.txt deleted file mode 100644 index 69a2a54..0000000 --- a/requirements.txt +++ /dev/null @@ -1,34 +0,0 @@ -# Robot Framework Agent - Production Dependencies -# Install: pip install -r requirements.txt - -# ============================================================================ -# Core Framework -# ============================================================================ -robotframework>=6.0 -robotframework-appiumlibrary>=3.0 -Appium-Python-Client>=5.0 -playwright>=1.40.0 - -# ============================================================================ -# LLM Providers (at least one required) -# ============================================================================ -# OpenAI (default provider) -openai>=1.0.0 - -# Uncomment if you use these providers: -anthropic>=0.20.0 # For Claude models -google-generativeai>=0.3.0 # For Gemini models - -# ============================================================================ -# Utilities -# ============================================================================ -Pillow>=10.0.0 # Image processing -tiktoken>=0.5.0 # Token counting for LLMs -python-dotenv>=1.0.0 # Environment variables -requests>=2.31.0 # HTTP requests (image upload) - -# ============================================================================ -# Vision Features (OmniParser) -# ============================================================================ -# Required for visual click tool (OmniParser integration) -gradio-client>=2.0.0 # Gradio client for HuggingFace spaces diff --git a/tests/utest/utilities/test_cost_tracking.py b/tests/utest/utilities/test_cost_tracking.py index 92b170a..4836a71 100644 --- a/tests/utest/utilities/test_cost_tracking.py +++ b/tests/utest/utilities/test_cost_tracking.py @@ -174,4 +174,3 @@ def test_calculate_cost_unknown_model(self, mock_config, mock_openai): if __name__ == '__main__': unittest.main() -