File size: 929 Bytes
b8e5043
a7c4301
b8e5043
a7c4301
 
b8e5043
 
a7c4301
 
b8e5043
 
 
 
a7c4301
 
b8e5043
 
 
 
a7c4301
 
b8e5043
 
a7c4301
b8e5043
 
 
a7c4301
b8e5043
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
"""Browser tool - web automation interface for the agent."""

from browser.client import BrowserClient


# Global browser client (set during initialization)
_browser_client: BrowserClient | None = None


def set_browser_client(client: BrowserClient):
    """Set the global browser client instance."""
    global _browser_client
    _browser_client = client


def _get_client() -> BrowserClient:
    if _browser_client is None:
        raise RuntimeError("Browser client not initialized. Call set_browser_client() first.")
    return _browser_client


async def run_browser(action: str, **kwargs) -> str:
    """Execute a browser action.

    Args:
        action: One of "navigate", "click", "type", "screenshot", "extract".
        **kwargs: Action-specific parameters (url, selector, text).

    Returns:
        Action result string.
    """
    client = _get_client()
    return await client.execute_action(action, **kwargs)