diff --git a/backend/apps/agents/HaikFix/tools/make_builtin_toolkit/open_swarm_toolkits/browser_toolkit/make_browser_delegation_toolkit/handlers/make_create_browser_agent_handler.py b/backend/apps/agents/HaikFix/tools/make_builtin_toolkit/open_swarm_toolkits/browser_toolkit/make_browser_delegation_toolkit/handlers/make_create_browser_agent_handler.py index 83b7538d..92ab24b0 100644 --- a/backend/apps/agents/HaikFix/tools/make_builtin_toolkit/open_swarm_toolkits/browser_toolkit/make_browser_delegation_toolkit/handlers/make_create_browser_agent_handler.py +++ b/backend/apps/agents/HaikFix/tools/make_builtin_toolkit/open_swarm_toolkits/browser_toolkit/make_browser_delegation_toolkit/handlers/make_create_browser_agent_handler.py @@ -8,7 +8,7 @@ from backend.apps.agents.HaikFix.tools.make_builtin_toolkit.open_swarm_toolkits. from backend.apps.agents.HaikFix.Agent.Agent import Agent # NOTE: Legacy dependancy. TODO: fix this shit cuh -from backend.apps.agents.browser.runner import _create_browser_card +from backend.apps.agents.HaikFix.tools.make_builtin_toolkit.open_swarm_toolkits.browser_toolkit.make_browser_delegation_toolkit.handlers.utils.temp_sub_utils.create_browser_card import create_browser_card class CreateBrowserAgentInput(TypedDict): task: str @@ -16,15 +16,13 @@ class CreateBrowserAgentInput(TypedDict): @typechecked def make_create_browser_agent_handler( parent: Agent, + dashboard_id: str, ): async def handler(args: CreateBrowserAgentInput) -> ToolResponse: task = args["task"] - url = args.get("url", "") - browser_id = await _create_browser_card( - dashboard_id=parent.config.session_id or "", - url=url, - parent_session_id=parent.session_id, + browser_id = await create_browser_card( + dashboard_id=dashboard_id, ) if not browser_id: return { @@ -43,7 +41,6 @@ def make_create_browser_agent_handler( task=task, browser_id=browser_id, model=parent.model, - initial_url=url, ) return format_browser_result(result, browser_id) diff --git a/backend/apps/agents/HaikFix/tools/make_builtin_toolkit/open_swarm_toolkits/browser_toolkit/make_browser_delegation_toolkit/handlers/make_invoke_browser_agent_handler.py b/backend/apps/agents/HaikFix/tools/make_builtin_toolkit/open_swarm_toolkits/browser_toolkit/make_browser_delegation_toolkit/handlers/make_invoke_browser_agent_handler.py index 5c422c26..83bc1eeb 100644 --- a/backend/apps/agents/HaikFix/tools/make_builtin_toolkit/open_swarm_toolkits/browser_toolkit/make_browser_delegation_toolkit/handlers/make_invoke_browser_agent_handler.py +++ b/backend/apps/agents/HaikFix/tools/make_builtin_toolkit/open_swarm_toolkits/browser_toolkit/make_browser_delegation_toolkit/handlers/make_invoke_browser_agent_handler.py @@ -2,8 +2,8 @@ from typing import TypedDict from typeguard import typechecked from backend.apps.agents.HaikFix.Agent.shared_structs.Message.agent_outputs import ToolResponse -from backend.apps.agents.HaikFix.tools.make_builtin_toolkit.open_swarm_toolkits.browser_toolkit.handlers.utils.run_browser_loop import run_browser_loop -from backend.apps.agents.HaikFix.tools.make_builtin_toolkit.open_swarm_toolkits.browser_toolkit.handlers.utils.format_browser_result import format_browser_result +from backend.apps.agents.HaikFix.tools.make_builtin_toolkit.open_swarm_toolkits.browser_toolkit.make_browser_delegation_toolkit.handlers.utils.run_browser_loop import run_browser_loop +from backend.apps.agents.HaikFix.tools.make_builtin_toolkit.open_swarm_toolkits.browser_toolkit.make_browser_delegation_toolkit.handlers.utils.format_browser_result import format_browser_result from backend.apps.agents.HaikFix.Agent.Agent import Agent diff --git a/backend/apps/agents/HaikFix/tools/make_builtin_toolkit/open_swarm_toolkits/browser_toolkit/make_browser_delegation_toolkit/handlers/utils/run_browser_loop.py b/backend/apps/agents/HaikFix/tools/make_builtin_toolkit/open_swarm_toolkits/browser_toolkit/make_browser_delegation_toolkit/handlers/utils/run_browser_loop.py index 8824846b..cd4f9b36 100644 --- a/backend/apps/agents/HaikFix/tools/make_builtin_toolkit/open_swarm_toolkits/browser_toolkit/make_browser_delegation_toolkit/handlers/utils/run_browser_loop.py +++ b/backend/apps/agents/HaikFix/tools/make_builtin_toolkit/open_swarm_toolkits/browser_toolkit/make_browser_delegation_toolkit/handlers/utils/run_browser_loop.py @@ -13,14 +13,9 @@ async def run_browser_loop( task: str, browser_id: str, model_id: str, - initial_url: str | None = None, - tab_id: str = "", ) -> Dict[str, Any]: """Run the browser agent tool loop against the Anthropic API directly.""" - if initial_url: - await execute_browser_tool("BrowserNavigate", {"url": initial_url}, browser_id, tab_id) - if not is_valid_model_id(model_id): raise ValueError(f"Invalid model ID: {model_id}") @@ -63,7 +58,7 @@ async def run_browser_loop( tool_results = [] for tu in tool_uses: start = time.time() - result = await execute_browser_tool(tu.name, tu.input, browser_id, tab_id) + result = await execute_browser_tool(tu.name, tu.input, browser_id,) elapsed_ms = int((time.time() - start) * 1000) action_log.append({ "tool": tu.name, @@ -83,7 +78,7 @@ async def run_browser_loop( if not final_screenshot: try: - ss = await execute_browser_tool("BrowserScreenshot", {}, browser_id, tab_id) + ss = await execute_browser_tool("BrowserScreenshot", {}, browser_id) if ss.get("image"): final_screenshot = ss["image"] except Exception: diff --git a/backend/apps/agents/HaikFix/tools/make_builtin_toolkit/open_swarm_toolkits/browser_toolkit/make_browser_delegation_toolkit/handlers/utils/temp_sub_utils/create_browser_card.py b/backend/apps/agents/HaikFix/tools/make_builtin_toolkit/open_swarm_toolkits/browser_toolkit/make_browser_delegation_toolkit/handlers/utils/temp_sub_utils/create_browser_card.py new file mode 100644 index 00000000..c242536f --- /dev/null +++ b/backend/apps/agents/HaikFix/tools/make_builtin_toolkit/open_swarm_toolkits/browser_toolkit/make_browser_delegation_toolkit/handlers/utils/temp_sub_utils/create_browser_card.py @@ -0,0 +1,28 @@ +from datetime import datetime +from uuid import uuid4 + +from typeguard import typechecked + +# NOTE: Legacy dependancy. TODO: fix this shit cuh +from backend.apps.agents.manager.ws_manager import ws_manager +from backend.apps.dashboards.dashboards import _load, _save +from backend.apps.dashboards.models import BrowserCardPosition, BrowserTab + +@typechecked +async def create_browser_card(dashboard_id: str) -> str: + dashboard = _load(dashboard_id) + browser_id = f"browser-{uuid4().hex[:8]}" + tab_id = f"tab-{uuid4().hex[:8]}" + tab = BrowserTab(id=tab_id, url="https://www.google.com", title="") + card = BrowserCardPosition( + browser_id=browser_id, url="https://www.google.com", + tabs=[tab], activeTabId=tab_id, x=40, y=100, width=1280, height=800, + ) + dashboard.layout.browser_cards[browser_id] = card + dashboard.updated_at = datetime.now() + _save(dashboard) + await ws_manager.broadcast_global("dashboard:browser_card_added", { + "dashboard_id": dashboard_id, + "browser_card": card.model_dump(mode="json"), + }) + return browser_id