diff --git a/skyvern/forge/sdk/db/client.py b/skyvern/forge/sdk/db/client.py index c42064b3..83fe20c7 100644 --- a/skyvern/forge/sdk/db/client.py +++ b/skyvern/forge/sdk/db/client.py @@ -2526,6 +2526,30 @@ class AgentDB: LOG.error("UnexpectedError", exc_info=True) raise + async def get_persistent_browser_session_by_id(self, session_id: str) -> Optional[PersistentBrowserSession]: + """Get a specific persistent browser session.""" + try: + async with self.Session() as session: + persistent_browser_session = ( + await session.scalars( + select(PersistentBrowserSessionModel) + .filter_by(persistent_browser_session_id=session_id) + .filter_by(deleted_at=None) + ) + ).first() + if persistent_browser_session: + return PersistentBrowserSession.model_validate(persistent_browser_session) + raise NotFoundError(f"PersistentBrowserSession {session_id} not found") + except NotFoundError: + LOG.error("NotFoundError", exc_info=True) + raise + except SQLAlchemyError: + LOG.error("SQLAlchemyError", exc_info=True) + raise + except Exception: + LOG.error("UnexpectedError", exc_info=True) + raise + async def get_persistent_browser_session( self, session_id: str, organization_id: str ) -> Optional[PersistentBrowserSessionModel]: