diff --git a/skyvern/forge/sdk/routes/streaming/channels/execution.py b/skyvern/forge/sdk/routes/streaming/channels/execution.py index 90882b33..0c44d7e3 100644 --- a/skyvern/forge/sdk/routes/streaming/channels/execution.py +++ b/skyvern/forge/sdk/routes/streaming/channels/execution.py @@ -16,6 +16,7 @@ import typing as t from contextlib import asynccontextmanager import structlog +from playwright.async_api import Browser, BrowserContext, Page, Playwright from skyvern.forge.sdk.routes.streaming.channels.cdp import CdpChannel @@ -26,6 +27,11 @@ LOG = structlog.get_logger() class ExecutionChannel(CdpChannel): + # Explicitly declare inherited attributes for mypy when follow_imports = skip + browser: Browser | None + browser_context: BrowserContext | None + page: Page | None + pw: Playwright | None """ ExecutionChannel. """ @@ -44,7 +50,7 @@ class ExecutionChannel(CdpChannel): } """ - selected_text = await self.evaluate_js(js_expression, self.page) + selected_text = await self.evaluate_js(js_expression) if isinstance(selected_text, str) or selected_text is None: LOG.info( diff --git a/skyvern/forge/sdk/routes/streaming/channels/message.py b/skyvern/forge/sdk/routes/streaming/channels/message.py index 51defda0..5e12dfaf 100644 --- a/skyvern/forge/sdk/routes/streaming/channels/message.py +++ b/skyvern/forge/sdk/routes/streaming/channels/message.py @@ -121,7 +121,7 @@ class MessageChannel: return base | {"browser_session_id": self.browser_session.persistent_browser_session_id} if self.workflow_run: - return base | {"workflow_run_id": self.workflow_run.id} + return base | {"workflow_run_id": self.workflow_run.workflow_run_id} return base @@ -174,8 +174,8 @@ class MessageChannel: datums.append(data) except asyncio.TimeoutError: break - except RuntimeError: - if "not connected" in str(RuntimeError).lower(): + except RuntimeError as ex: + if "not connected" in str(ex).lower(): break except Exception: LOG.exception(f"{self.class_name} Failed to receive message from message channel", **self.identity) diff --git a/skyvern/forge/sdk/routes/streaming/messages.py b/skyvern/forge/sdk/routes/streaming/messages.py index 775167ff..db99d7bb 100644 --- a/skyvern/forge/sdk/routes/streaming/messages.py +++ b/skyvern/forge/sdk/routes/streaming/messages.py @@ -82,6 +82,7 @@ async def messages( browser_session_id=browser_session_id, workflow_run_id=workflow_run_id, ) + await websocket.close(code=1002) return message_channel: MessageChannel