[Haik]: ckpt, pulled out the BrowserCommandFn also re implemented ws.has_global_connections

This commit is contained in:
haikdc
2026-04-02 19:09:07 -07:00
parent 70a60b861f
commit 498aa8aa0d
9 changed files with 18 additions and 18 deletions
+5 -5
View File
@@ -9,16 +9,12 @@ Three concerns, one module:
import asyncio
import json
import logging
from typing import Callable, Awaitable
from fastapi import WebSocket
from pydantic import BaseModel, Field
logger = logging.getLogger(__name__)
# ---------------------------------------------------------------------------
# 1. Connection pool
# ---------------------------------------------------------------------------
@@ -46,6 +42,10 @@ def disconnect_session(session_id: str, ws: WebSocket) -> None:
del P_SESSION_CONNECTIONS[session_id]
def has_global_connections() -> bool:
return len(P_GLOBAL_CONNECTIONS) > 0
def disconnect_global(ws: WebSocket) -> None:
P_GLOBAL_CONNECTIONS[:] = [c for c in P_GLOBAL_CONNECTIONS if c is not ws]
@@ -98,7 +98,7 @@ class FutureBridge(BaseModel):
try:
return await asyncio.wait_for(future, timeout=timeout)
except asyncio.TimeoutError:
logger.warning("FutureBridge request %s timed out after %ss", request_id, timeout)
print(f"[FutureBridge.request] Request {request_id} timed out after {timeout}s")
return {"error": "Timed out"}
finally:
self.p_pending.pop(request_id, None)
@@ -0,0 +1,3 @@
from typing import Any, Callable, Awaitable, Dict
BrowserCommandFn = Callable[[str, str, str, Dict[str, Any]], Awaitable[dict]]
@@ -4,7 +4,7 @@ from backend.core.tools.shared_structs.Toolkit import Toolkit
from backend.core.tools.make_builtin_toolkit.open_swarm_toolkits.agents_toolkit.make_agents_toolkit import make_agents_toolkit
from backend.core.tools.make_builtin_toolkit.open_swarm_toolkits.browser_toolkit.make_browser_delegation_toolkit.make_browser_delegation_toolkit import make_browser_delegation_toolkit
from backend.core.tools.make_builtin_toolkit.open_swarm_toolkits.browser_toolkit.make_browser_actions_toolkit.make_browser_actions_toolkit import make_browser_actions_toolkit
from backend.core.tools.make_builtin_toolkit.open_swarm_toolkits.browser_toolkit.make_browser_actions_toolkit.handlers.make_browser_action_handler import BrowserCommandFn
from backend.core.shared_structs.browser.BrowserCommandFn import BrowserCommandFn
from backend.core.tools.make_builtin_toolkit.pre_existing_toolkits.basic_toolkits.FILESYSTEM_TOOLKIT import FILESYSTEM_TOOLKIT
from backend.core.tools.make_builtin_toolkit.pre_existing_toolkits.meta_toolkits.INTERACTION_TOOLKIT import INTERACTION_TOOLKIT
@@ -1,10 +1,9 @@
import json
from typing import Dict, Any, Callable, Awaitable
from typing import Dict, Any
from typeguard import typechecked
from backend.core.shared_structs.agent.Message.agent_outputs import ToolResponse
BrowserCommandFn = Callable[[str, str, str, Dict[str, Any]], Awaitable[dict]]
from backend.core.shared_structs.browser.BrowserCommandFn import BrowserCommandFn
ACTION_MAP: Dict[str, str] = {
"BrowserScreenshot": "screenshot",
@@ -13,8 +13,9 @@ from backend.core.tools.make_builtin_toolkit.open_swarm_toolkits.browser_toolkit
BrowserWaitInput,
)
from backend.core.tools.make_builtin_toolkit.open_swarm_toolkits.browser_toolkit.make_browser_actions_toolkit.handlers.make_browser_action_handler import (
make_browser_action_handler, BrowserCommandFn,
make_browser_action_handler
)
from backend.core.shared_structs.browser.BrowserCommandFn import BrowserCommandFn
SERVER_NAME = "openswarm-browser-actions"
@@ -6,8 +6,7 @@ from backend.core.shared_structs.agent.Message.agent_outputs import ToolResponse
from backend.core.Agent.Agent import Agent
from backend.core.tools.make_builtin_toolkit.open_swarm_toolkits.browser_toolkit.make_browser_delegation_toolkit.handlers.utils.run_browser_agent import run_browser_agent
from backend.core.tools.make_builtin_toolkit.open_swarm_toolkits.browser_toolkit.make_browser_delegation_toolkit.handlers.utils.create_browser_card import create_browser_card
from backend.core.tools.make_builtin_toolkit.open_swarm_toolkits.browser_toolkit.make_browser_actions_toolkit.handlers.make_browser_action_handler import BrowserCommandFn
from backend.core.shared_structs.browser.BrowserCommandFn import BrowserCommandFn
class CreateBrowserAgentInput(TypedDict):
task: str
@@ -4,8 +4,7 @@ from typeguard import typechecked
from backend.core.shared_structs.agent.Message.agent_outputs import ToolResponse
from backend.core.Agent.Agent import Agent
from backend.core.tools.make_builtin_toolkit.open_swarm_toolkits.browser_toolkit.make_browser_delegation_toolkit.handlers.utils.run_browser_agent import run_browser_agent
from backend.core.tools.make_builtin_toolkit.open_swarm_toolkits.browser_toolkit.make_browser_actions_toolkit.handlers.make_browser_action_handler import BrowserCommandFn
from backend.core.shared_structs.browser.BrowserCommandFn import BrowserCommandFn
class InvokeBrowserAgentInput(TypedDict):
browser_id: str
@@ -10,9 +10,9 @@ from backend.core.shared_structs.agent.Message.Message import (
)
from backend.core.tools.shared_structs.MCP_Tool import SDK_MCP_Tool
from backend.core.tools.make_builtin_toolkit.open_swarm_toolkits.browser_toolkit.make_browser_actions_toolkit.make_browser_actions_toolkit import make_browser_actions_toolkit
from backend.core.tools.make_builtin_toolkit.open_swarm_toolkits.browser_toolkit.make_browser_actions_toolkit.handlers.make_browser_action_handler import BrowserCommandFn
from backend.core.tools.make_builtin_toolkit.open_swarm_toolkits.browser_toolkit.make_browser_delegation_toolkit.handlers.utils.constants import BROWSER_AGENT_SYSTEM_PROMPT
from backend.core.tools.make_builtin_toolkit.open_swarm_toolkits.browser_toolkit.make_browser_delegation_toolkit.handlers.utils.constants import BROWSER_AGENT_SYSTEM_PROMPT
from backend.core.shared_structs.browser.BrowserCommandFn import BrowserCommandFn
@typechecked
async def run_browser_agent(
@@ -8,8 +8,7 @@ from backend.core.tools.make_builtin_toolkit.open_swarm_toolkits.browser_toolkit
make_invoke_browser_agent_handler, InvokeBrowserAgentInput,
)
from backend.core.Agent.Agent import Agent
from backend.core.tools.make_builtin_toolkit.open_swarm_toolkits.browser_toolkit.make_browser_actions_toolkit.handlers.make_browser_action_handler import BrowserCommandFn
from backend.core.shared_structs.browser.BrowserCommandFn import BrowserCommandFn
@typechecked
def make_browser_delegation_toolkit(parent: Agent, send_command: BrowserCommandFn) -> Toolkit: