mirror of
https://github.com/openswarm-ai/openswarm.git
synced 2026-09-11 12:17:45 +02:00
[Haik]: swapped from a hardcoded browser ACTION_MAP to one thats dynamically generated from the toolkit
This commit is contained in:
+5
-21
@@ -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
|
||||
|
||||
+9
-9
@@ -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),
|
||||
),
|
||||
],
|
||||
)
|
||||
Reference in New Issue
Block a user