From e6848686aa33f854d675c724e9bf62af8bab9950 Mon Sep 17 00:00:00 2001 From: haikdc Date: Sun, 5 Apr 2026 11:29:35 -0700 Subject: [PATCH] [Haik]: removed lingering OLDapps dependancy from create_browser_card, also made mods to shared_structs because of this --- backend/apps/dashboards/Dashboard.py | 55 ------------------- backend/apps/dashboards/dashboards.py | 6 +- .../browser/BrowserCardPosition.py | 12 ++-- .../core/shared_structs/card/CardPosition.py | 9 +++ .../shared_structs/dashboard/Dashboard.py | 14 +++++ .../dashboard/DashboardLayout.py | 10 ++++ .../handlers/utils/create_browser_card.py | 13 +++-- 7 files changed, 47 insertions(+), 72 deletions(-) delete mode 100644 backend/apps/dashboards/Dashboard.py create mode 100644 backend/core/shared_structs/card/CardPosition.py create mode 100644 backend/core/shared_structs/dashboard/Dashboard.py create mode 100644 backend/core/shared_structs/dashboard/DashboardLayout.py diff --git a/backend/apps/dashboards/Dashboard.py b/backend/apps/dashboards/Dashboard.py deleted file mode 100644 index f292891f..00000000 --- a/backend/apps/dashboards/Dashboard.py +++ /dev/null @@ -1,55 +0,0 @@ -from pydantic import BaseModel, Field -from typing import Optional, List, Dict -from datetime import datetime -from uuid import uuid4 - - -class CardPosition(BaseModel): - session_id: str - x: float = 0 - y: float = 0 - width: float = 420 - height: float = 280 - - -class ViewCardPosition(BaseModel): - output_id: str - x: float = 0 - y: float = 0 - width: float = 480 - height: float = 360 - - -class BrowserTab(BaseModel): - id: str - url: str = "" - title: str = "" - favicon: Optional[str] = None - - -class BrowserCardPosition(BaseModel): - browser_id: str - url: str = "" - tabs: List[BrowserTab] = Field(default_factory=list) - activeTabId: str = "" - x: float = 0 - y: float = 0 - width: float = 1280 - height: float = 800 - - -class DashboardLayout(BaseModel): - cards: Dict[str, CardPosition] = Field(default_factory=dict) - view_cards: Dict[str, ViewCardPosition] = Field(default_factory=dict) - browser_cards: Dict[str, BrowserCardPosition] = Field(default_factory=dict) - expanded_session_ids: list[str] = Field(default_factory=list) - - -class Dashboard(BaseModel): - id: str = Field(default_factory=lambda: uuid4().hex) - name: str = "Untitled Dashboard" - auto_named: bool = False - created_at: datetime = Field(default_factory=datetime.now) - updated_at: datetime = Field(default_factory=datetime.now) - layout: DashboardLayout = Field(default_factory=DashboardLayout) - thumbnail: Optional[str] = None \ No newline at end of file diff --git a/backend/apps/dashboards/dashboards.py b/backend/apps/dashboards/dashboards.py index 5b7fca64..44d8a21b 100644 --- a/backend/apps/dashboards/dashboards.py +++ b/backend/apps/dashboards/dashboards.py @@ -7,10 +7,8 @@ from pydantic import BaseModel from backend.config.Apps import SubApp from backend.core.db.PydanticStore import PydanticStore -from backend.apps.dashboards.Dashboard import ( - Dashboard, - DashboardLayout, -) +from backend.core.shared_structs.dashboard.Dashboard import Dashboard +from backend.core.shared_structs.dashboard.DashboardLayout import DashboardLayout from backend.apps.agents.agents import list_sessions, delete_session from backend.apps.settings.settings import load_settings from backend.apps.dashboards.generate_dashboard_name import generate_dashboard_name diff --git a/backend/core/shared_structs/browser/BrowserCardPosition.py b/backend/core/shared_structs/browser/BrowserCardPosition.py index 995b30f3..96408431 100644 --- a/backend/core/shared_structs/browser/BrowserCardPosition.py +++ b/backend/core/shared_structs/browser/BrowserCardPosition.py @@ -1,14 +1,10 @@ -from pydantic import BaseModel, Field +from pydantic import Field from typing import List from backend.core.shared_structs.browser.BrowserTab import BrowserTab +from backend.core.shared_structs.card.CardPosition import CardPosition -class BrowserCardPosition(BaseModel): - browser_id: str +class BrowserCardPosition(CardPosition): url: str = "" tabs: List[BrowserTab] = Field(default_factory=list) - activeTabId: str = "" - x: float = 0 - y: float = 0 - width: float = 1280 - height: float = 800 + activeTabId: str = "" \ No newline at end of file diff --git a/backend/core/shared_structs/card/CardPosition.py b/backend/core/shared_structs/card/CardPosition.py new file mode 100644 index 00000000..e3163af3 --- /dev/null +++ b/backend/core/shared_structs/card/CardPosition.py @@ -0,0 +1,9 @@ +from pydantic import BaseModel + + +class CardPosition(BaseModel): + id: str + x: float = 0 + y: float = 0 + width: float = 420 + height: float = 280 \ No newline at end of file diff --git a/backend/core/shared_structs/dashboard/Dashboard.py b/backend/core/shared_structs/dashboard/Dashboard.py new file mode 100644 index 00000000..3478da25 --- /dev/null +++ b/backend/core/shared_structs/dashboard/Dashboard.py @@ -0,0 +1,14 @@ +from pydantic import BaseModel, Field +from typing import Optional +from datetime import datetime +from backend.core.shared_structs.dashboard.DashboardLayout import DashboardLayout +from uuid import uuid4 + +class Dashboard(BaseModel): + id: str = Field(default_factory=lambda: uuid4().hex) + name: str = "Untitled Dashboard" + auto_named: bool = False + created_at: datetime = Field(default_factory=datetime.now) + updated_at: datetime = Field(default_factory=datetime.now) + layout: DashboardLayout = Field(default_factory=DashboardLayout) + thumbnail: Optional[str] = None \ No newline at end of file diff --git a/backend/core/shared_structs/dashboard/DashboardLayout.py b/backend/core/shared_structs/dashboard/DashboardLayout.py new file mode 100644 index 00000000..a2f4164d --- /dev/null +++ b/backend/core/shared_structs/dashboard/DashboardLayout.py @@ -0,0 +1,10 @@ +from pydantic import BaseModel, Field +from typing import Dict +from backend.core.shared_structs.browser.BrowserCardPosition import BrowserCardPosition +from backend.core.shared_structs.card.CardPosition import CardPosition + +class DashboardLayout(BaseModel): + cards: Dict[str, CardPosition] = Field(default_factory=dict) + app_cards: Dict[str, CardPosition] = Field(default_factory=dict) + browser_cards: Dict[str, BrowserCardPosition] = Field(default_factory=dict) + expanded_card_ids: list[str] = Field(default_factory=list) \ No newline at end of file diff --git a/backend/core/tools/make_builtin_toolkit/open_swarm_toolkits/browser_toolkit/make_browser_delegation_toolkit/handlers/utils/create_browser_card.py b/backend/core/tools/make_builtin_toolkit/open_swarm_toolkits/browser_toolkit/make_browser_delegation_toolkit/handlers/utils/create_browser_card.py index 488d04b4..67fec0f1 100644 --- a/backend/core/tools/make_builtin_toolkit/open_swarm_toolkits/browser_toolkit/make_browser_delegation_toolkit/handlers/utils/create_browser_card.py +++ b/backend/core/tools/make_builtin_toolkit/open_swarm_toolkits/browser_toolkit/make_browser_delegation_toolkit/handlers/utils/create_browser_card.py @@ -1,20 +1,23 @@ from datetime import datetime from uuid import uuid4 +from typing import Optional, Callable from typeguard import typechecked -from typing import Optional -from backend.OLDapps.dashboards.dashboards import _load, _save from backend.core.events.events import EventCallback, BrowserCardAddedEvent from backend.core.shared_structs.browser.BrowserCardPosition import BrowserCardPosition from backend.core.shared_structs.browser.BrowserTab import BrowserTab +from backend.core.shared_structs.dashboard.Dashboard import Dashboard + @typechecked async def create_browser_card( dashboard_id: str, + load_dashboard: Callable[[str], Dashboard], + save_dashboard: Callable[[Dashboard], None], emit: Optional[EventCallback] = None, ) -> str: - dashboard = _load(dashboard_id) + dashboard = load_dashboard(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="") @@ -24,10 +27,10 @@ async def create_browser_card( ) dashboard.layout.browser_cards[browser_id] = card dashboard.updated_at = datetime.now() - _save(dashboard) + save_dashboard(dashboard) if emit: await emit(BrowserCardAddedEvent( dashboard_id=dashboard_id, browser_card=card, )) - return browser_id + return browser_id \ No newline at end of file