From 48a4974fcfcebf92c9f1731a1b2075ed6f6df3e8 Mon Sep 17 00:00:00 2001 From: haikdc Date: Thu, 2 Apr 2026 19:15:06 -0700 Subject: [PATCH] [Haik]: swapped from a hardcoded browser ACTION_MAP to one thats dynamically generated from the toolkit --- .../handlers/make_browser_action_handler.py | 26 ++++--------------- .../make_browser_actions_toolkit.py | 18 ++++++------- 2 files changed, 14 insertions(+), 30 deletions(-) diff --git a/backend/core/tools/make_builtin_toolkit/open_swarm_toolkits/browser_toolkit/make_browser_actions_toolkit/handlers/make_browser_action_handler.py b/backend/core/tools/make_builtin_toolkit/open_swarm_toolkits/browser_toolkit/make_browser_actions_toolkit/handlers/make_browser_action_handler.py index 27dfa0f8..f00b33df 100644 --- a/backend/core/tools/make_builtin_toolkit/open_swarm_toolkits/browser_toolkit/make_browser_actions_toolkit/handlers/make_browser_action_handler.py +++ b/backend/core/tools/make_builtin_toolkit/open_swarm_toolkits/browser_toolkit/make_browser_actions_toolkit/handlers/make_browser_action_handler.py @@ -5,23 +5,12 @@ from typeguard import typechecked from backend.core.shared_structs.agent.Message.agent_outputs import ToolResponse from backend.core.shared_structs.browser.BrowserCommandFn import BrowserCommandFn -ACTION_MAP: Dict[str, str] = { - "BrowserScreenshot": "screenshot", - "BrowserGetText": "get_text", - "BrowserNavigate": "navigate", - "BrowserClick": "click", - "BrowserType": "type", - "BrowserEvaluate": "evaluate", - "BrowserGetElements": "get_elements", - "BrowserScroll": "scroll", - "BrowserWait": "wait", -} - -def _format_tool_result(result: dict, tool_name: str) -> list[dict]: +@typechecked +def p_format_tool_result(result: dict, action: str) -> list[dict]: if "error" in result: return [{"type": "text", "text": f"Error: {result['error']}"}] - if tool_name == "BrowserScreenshot" and result.get("image"): + if action == "screenshot" and result.get("image"): return [ { "type": "image", @@ -35,21 +24,16 @@ def _format_tool_result(result: dict, tool_name: str) -> list[dict]: @typechecked def make_browser_action_handler( - tool_name: str, + action: str, browser_id: str, tab_id: str, send_command: BrowserCommandFn, ): - action = ACTION_MAP.get(tool_name) - async def handler(args: Dict[str, Any]) -> ToolResponse: - if not action: - return {"content": [{"type": "text", "text": f"Unknown browser tool: {tool_name}"}], "is_error": True} - result = await send_command(action, browser_id, tab_id, args) if "error" in result: return {"content": [{"type": "text", "text": f"Error: {result['error']}"}], "is_error": True} - return {"content": _format_tool_result(result, tool_name)} + return {"content": p_format_tool_result(result, action)} return handler diff --git a/backend/core/tools/make_builtin_toolkit/open_swarm_toolkits/browser_toolkit/make_browser_actions_toolkit/make_browser_actions_toolkit.py b/backend/core/tools/make_builtin_toolkit/open_swarm_toolkits/browser_toolkit/make_browser_actions_toolkit/make_browser_actions_toolkit.py index f8a51192..89ba604c 100644 --- a/backend/core/tools/make_builtin_toolkit/open_swarm_toolkits/browser_toolkit/make_browser_actions_toolkit/make_browser_actions_toolkit.py +++ b/backend/core/tools/make_builtin_toolkit/open_swarm_toolkits/browser_toolkit/make_browser_actions_toolkit/make_browser_actions_toolkit.py @@ -35,7 +35,7 @@ def make_browser_actions_toolkit(browser_id: str, send_command: BrowserCommandFn permission="allow", server_name=SERVER_NAME, input_schema=BrowserScreenshotInput, - handler=make_browser_action_handler("BrowserScreenshot", browser_id, tab_id, send_command), + handler=make_browser_action_handler("screenshot", browser_id, tab_id, send_command), ), SDK_MCP_Tool( name="BrowserGetText", @@ -44,7 +44,7 @@ def make_browser_actions_toolkit(browser_id: str, send_command: BrowserCommandFn permission="allow", server_name=SERVER_NAME, input_schema=BrowserGetTextInput, - handler=make_browser_action_handler("BrowserGetText", browser_id, tab_id, send_command), + handler=make_browser_action_handler("get_text", browser_id, tab_id, send_command), ), SDK_MCP_Tool( name="BrowserNavigate", @@ -53,7 +53,7 @@ def make_browser_actions_toolkit(browser_id: str, send_command: BrowserCommandFn permission="allow", server_name=SERVER_NAME, input_schema=BrowserNavigateInput, - handler=make_browser_action_handler("BrowserNavigate", browser_id, tab_id, send_command), + handler=make_browser_action_handler("navigate", browser_id, tab_id, send_command), ), SDK_MCP_Tool( name="BrowserClick", @@ -65,7 +65,7 @@ def make_browser_actions_toolkit(browser_id: str, send_command: BrowserCommandFn permission="allow", server_name=SERVER_NAME, input_schema=BrowserClickInput, - handler=make_browser_action_handler("BrowserClick", browser_id, tab_id, send_command), + handler=make_browser_action_handler("click", browser_id, tab_id, send_command), ), SDK_MCP_Tool( name="BrowserType", @@ -74,7 +74,7 @@ def make_browser_actions_toolkit(browser_id: str, send_command: BrowserCommandFn permission="allow", server_name=SERVER_NAME, input_schema=BrowserTypeInput, - handler=make_browser_action_handler("BrowserType", browser_id, tab_id, send_command), + handler=make_browser_action_handler("type", browser_id, tab_id, send_command), ), SDK_MCP_Tool( name="BrowserEvaluate", @@ -83,7 +83,7 @@ def make_browser_actions_toolkit(browser_id: str, send_command: BrowserCommandFn permission="allow", server_name=SERVER_NAME, input_schema=BrowserEvaluateInput, - handler=make_browser_action_handler("BrowserEvaluate", browser_id, tab_id, send_command), + handler=make_browser_action_handler("evaluate", browser_id, tab_id, send_command), ), SDK_MCP_Tool( name="BrowserGetElements", @@ -95,7 +95,7 @@ def make_browser_actions_toolkit(browser_id: str, send_command: BrowserCommandFn permission="allow", server_name=SERVER_NAME, input_schema=BrowserGetElementsInput, - handler=make_browser_action_handler("BrowserGetElements", browser_id, tab_id, send_command), + handler=make_browser_action_handler("get_elements", browser_id, tab_id, send_command), ), SDK_MCP_Tool( name="BrowserScroll", @@ -107,7 +107,7 @@ def make_browser_actions_toolkit(browser_id: str, send_command: BrowserCommandFn permission="allow", server_name=SERVER_NAME, input_schema=BrowserScrollInput, - handler=make_browser_action_handler("BrowserScroll", browser_id, tab_id, send_command), + handler=make_browser_action_handler("scroll", browser_id, tab_id, send_command), ), SDK_MCP_Tool( name="BrowserWait", @@ -119,7 +119,7 @@ def make_browser_actions_toolkit(browser_id: str, send_command: BrowserCommandFn permission="allow", server_name=SERVER_NAME, input_schema=BrowserWaitInput, - handler=make_browser_action_handler("BrowserWait", browser_id, tab_id, send_command), + handler=make_browser_action_handler("wait", browser_id, tab_id, send_command), ), ], ) \ No newline at end of file