[Haik]: removed lingering OLDapps dependancy from create_browser_card, also made mods to shared_structs because of this

This commit is contained in:
haikdc
2026-04-05 11:29:35 -07:00
parent c71e25d37b
commit e6848686aa
7 changed files with 47 additions and 72 deletions
-55
View File
@@ -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
+2 -4
View File
@@ -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
@@ -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 = ""
@@ -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
@@ -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
@@ -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)
@@ -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