mirror of
https://github.com/openswarm-ai/openswarm.git
synced 2026-09-17 23:27:41 +02:00
26 lines
991 B
Python
26 lines
991 B
Python
from typeguard import typechecked
|
|
from backend.apps.agents.utils.comms.ws import has_global_connections, broadcast_global
|
|
from backend.apps.agents.utils.comms.FutureBridge import BROWSER_BRIDGE
|
|
from uuid import uuid4
|
|
|
|
|
|
# TODO: add better type specing for the output of this function
|
|
@typechecked
|
|
async def send_browser_command(
|
|
action: str, browser_id: str, tab_id: str, params: dict,
|
|
) -> dict:
|
|
"""BrowserCommandFn implementation that routes through the browser FutureBridge."""
|
|
request_id: str = uuid4().hex
|
|
if not has_global_connections():
|
|
return {"error": "No dashboard connected. Open the dashboard to use browser tools."}
|
|
return await BROWSER_BRIDGE.request(
|
|
request_id=request_id,
|
|
send_fn=lambda: broadcast_global("browser:command", {
|
|
"request_id": request_id,
|
|
"action": action,
|
|
"browser_id": browser_id,
|
|
"tab_id": tab_id,
|
|
"params": params,
|
|
}),
|
|
timeout=30.0,
|
|
) |