Commit Graph

346 Commits

Author SHA1 Message Date
Magnus Müller
84d7504c5e Add error handling for action execution in service.py
- Wrapped the action execution call in a try-except block to catch exceptions and return an ActionResult with the error message.
- Ensured that Laminar's output is set only if it is not None, improving the robustness of the function.
2025-07-07 15:21:26 +02:00
Magnus Müller
ab36dd8feb Comment out error handling and logging in Registry class to reduce verbosity during action retries. 2025-07-07 13:39:21 +02:00
Magnus Müller
569944eecb Merge remote-tracking branch 'origin/main' into include-lmnr 2025-07-07 12:22:05 +02:00
Magnus Müller
d03196c09c Merge remote-tracking branch 'origin/main' into include-lmnr 2025-07-06 23:42:14 +02:00
AI Christianson
a5e3634900 Fix linter errors. 2025-07-06 17:32:04 -04:00
AI Christianson
8430f21cf6 Fix linter errors. 2025-07-06 17:28:41 -04:00
AI Christianson
051054decd Fix bug where schema optimizer was stripping the title field from our output schema. 2025-07-06 17:28:41 -04:00
Magnus Müller
d4576bb128 Update browser_use/controller/service.py
Co-authored-by: cubic-dev-ai[bot] <191113872+cubic-dev-ai[bot]@users.noreply.github.com>
2025-07-06 21:18:46 +02:00
Magnus Müller
78be7f9a8e update extract_structured_data description 2025-07-06 21:14:45 +02:00
Magnus Müller
ef36632ccf Refactor observability imports to maintain consistency across modules 2025-07-05 23:12:05 +02:00
Magnus Müller
a4c9b992ba Add observability module for browser-use with optional lmnr integration and debug mode support 2025-07-05 23:08:00 +02:00
Magnus Müller
ba11502ac5 Fix import 2025-07-05 18:13:14 +02:00
Magnus Müller
05eeaf877a Raise errors instead of actionResult to track with laminar 2025-07-05 18:01:10 +02:00
Magnus Müller
af0487ee38 Observe execute_action with lmnr 2025-07-05 17:35:47 +02:00
Magnus Müller
09d336556f Update error logging to not confuese agent when site is not available 2025-07-05 16:03:27 +02:00
Magnus Müller
99ef62748f Add lmnr tracing 2025-07-05 15:23:38 +02:00
Magnus Müller
face6a599b Enhance observability in browser and agent services
- Added `@observe` decorators to various methods in `service.py`, `session.py`, and `controller.py` to improve tracking of actions and state changes.
- Updated method signatures to include observability features for better debugging and monitoring.
- Adjusted retry logic for certain actions to enhance reliability and performance.
2025-07-05 14:44:43 +02:00
mertunsall
550a2a2552 feat: enhance file handling capabilities with JSON and CSV support
- Added new file types: JsonFile and CsvFile to the file system.
- Updated read_file method to handle external files with .json and .csv extensions.
- Modified write_file action to allow .json and .csv file extensions in addition to .md and .txt.
- Introduced pypdf dependency for PDF file handling.

This update improves the flexibility of file operations within the application.
2025-07-05 01:36:04 +02:00
Magnus Müller
680b7e7346 refactor: enhance error handling in action execution
- Updated retry logic to handle page errors more effectively by capturing the current page context before retrying the action.
- Improved error messaging to provide clearer feedback when actions fail due to page navigation or closure.
2025-07-04 17:10:59 +02:00
Magnus Müller
22f89efae4 refactor: reduce timeouts for various operations to improve responsiveness
- Updated timeouts for action execution, step processing, and screenshot operations to more aggressive values (e.g., reduced from 60s to 20s for actions, 30s to 10s for DOM processing).
- Adjusted retry logic and timeout settings for screenshot and iframe content extraction to enhance performance and reduce potential hangs.
- Improved logging for timeout events to provide clearer feedback on operation failures.
2025-07-04 14:30:54 +02:00
Magnus Müller
2045ad747c Improve logging 2025-07-04 13:22:38 +02:00
Magnus Müller
b40402e162 Improved timeout for extract data 2025-07-04 13:03:10 +02:00
Magnus Müller
3dc6b44e03 Implement timeout protection for content extraction and LLM calls
- Added timeout handling for page content extraction with a 30-second limit, returning an error message on timeout.
- Introduced timeout protection for iframe content extraction with a 10-second limit, logging a warning on timeout.
- Implemented a 60-second timeout for LLM calls, logging a warning if the call exceeds this duration.
- Enhanced error handling to provide clearer feedback on extraction failures.
2025-07-04 11:14:49 +02:00
Magnus Müller
db67c1e4ff Refactor error handling in Registry class
- Commented out retry logic for page errors to simplify error handling.
- Maintained the raise of the original exception for clarity in error reporting.
2025-07-04 00:18:04 +02:00
Magnus Müller
c53cc4d2d1 Refactor error handling in ActionResult
- Simplified the return statement for site unavailable errors by removing redundant parameters while maintaining functionality.
- Improved code readability and consistency in error handling.
2025-07-03 23:22:34 +02:00
Magnus Müller
6d28b23f6a Enhance error handling in action execution
- Reintroduced action retry mechanism to handle transient errors during action execution.
- Added logging for failures and implemented a retry attempt with context preservation for better resilience.
2025-07-03 22:12:27 +02:00
Magnus Müller
f20022b6c7 Remove action retry 2025-07-03 21:05:38 +02:00
Cursor Agent
ee2c1d2ad0 Remove optional xpath from ClickElementAction model
Co-authored-by: mailmertunsal <mailmertunsal@gmail.com>
2025-07-02 07:43:21 +00:00
Cursor Agent
c24d5b4320 Remove optional xpath parameter from InputTextAction model
Co-authored-by: mamagnus00 <mamagnus00@gmail.com>
2025-07-01 21:51:05 +00:00
mertunsall
ef30980fe9 add extract_links to structured data 2025-07-01 10:34:23 +02:00
mertunsall
649b2d5277 Refactor URL navigation and scrolling actions
- Updated GoToUrlAction to include a new_tab parameter for opening URLs in a new tab or navigating in the current tab.
- Removed the OpenTabAction as its functionality is now integrated into GoToUrlAction.
- Enhanced scroll action to allow scrolling up or down based on a boolean parameter.
- Cleaned up commented-out code related to accessibility tree retrieval for better readability.
2025-06-29 22:48:40 +02:00
mertunsall
dd0f65b956 Merge branch 'main' into mert/remove_save_pdf 2025-06-29 21:57:41 +02:00
mertunsall
e9b8cfb9f7 remove the default save_pdf option 2025-06-29 21:51:56 +02:00
mertunsall
640d1a15fe Add upload file action 2025-06-29 21:36:15 +02:00
Gregor Žunič
184fa8efb7 tests for schema generator 2025-06-29 18:09:25 +02:00
Gregor Žunič
48ae2d19cf much better structured output + utils for generating pydantic schema 2025-06-29 17:42:19 +02:00
Gregor Žunič
0691500c6a wip 2025-06-29 16:22:19 +02:00
Magnus Müller
37cdaa0fee Clarify purpose of model_rebuild() in ExtendedOutputModel for eval service 2025-06-28 22:45:18 +02:00
Cursor Agent
bf9ca5baad Fix ExtendedOutputModel schema validation by adding model_rebuild()
Co-authored-by: mamagnus00 <mamagnus00@gmail.com>
2025-06-28 19:52:57 +00:00
Gregor Žunič
5d9fca7c4b optimized schema for all models 2025-06-28 09:28:54 +02:00
Gregor Žunič
8635ccbdec implemented proper functions for reducing token count in json schema 2025-06-27 23:40:59 +02:00
Gregor Žunič
ea00a9ebee removed drag and drop from default controller, moved to example 2025-06-27 23:20:34 +02:00
Gregor Žunič
11cef6eb1c wip 2025-06-27 23:02:21 +02:00
mertunsall
7f8d935000 Files are displayed by default in done text 2025-06-27 14:01:33 +02:00
Magnus Müller
03893b8adf Update comment to 40000 in service.py 2025-06-26 17:16:43 +02:00
Magnus Müller
4844bd048f Set default parameter - no memory, actions per step 10, and extraction input size 2025-06-26 17:08:15 +02:00
Magnus Müller
54736224eb Remove unused controller telemetry functionality
- Remove ControllerRegisteredFunctionsTelemetryEvent and RegisteredFunction classes
- Remove telemetry capture call from controller registry service
- Clean up unused imports in telemetry module
- Simplify telemetry __all__ exports

This removes dead code that was capturing registered function telemetry
data but wasn't being used anywhere in the application.
2025-06-26 15:06:17 +02:00
mertunsall
47b2b7f2fa fix more 2025-06-26 01:02:50 +02:00
mertunsall
6b4953e922 rewrite file system 2025-06-26 00:41:56 +02:00
Gregor Žunič
1e93ca5a9f fixed UnionType type error 2025-06-25 11:13:42 +02:00