mirror of
https://github.com/openswarm-ai/openswarm.git
synced 2026-09-11 12:17:45 +02:00
[Haik]: ckpt, pulled out the BrowserCommandFn also re implemented ws.has_global_connections
This commit is contained in:
@@ -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
|
||||
|
||||
+2
-3
@@ -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",
|
||||
|
||||
+2
-1
@@ -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"
|
||||
|
||||
|
||||
+1
-2
@@ -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
|
||||
|
||||
+1
-2
@@ -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
|
||||
|
||||
+2
-2
@@ -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(
|
||||
|
||||
+1
-2
@@ -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:
|
||||
|
||||
Reference in New Issue
Block a user