mirror of
https://github.com/openswarm-ai/openswarm.git
synced 2026-09-11 12:17:45 +02:00
[Haik]: ckpt, rremoved legacy ref to old create_browser_card. Now gonna revamp the run_browser_loop function to use the new browser actions toolkit
This commit is contained in:
+4
-7
@@ -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)
|
||||
|
||||
+2
-2
@@ -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
|
||||
|
||||
|
||||
|
||||
+2
-7
@@ -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:
|
||||
|
||||
+28
@@ -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
|
||||
Reference in New Issue
Block a user