diff --git a/skyvern/forge/sdk/routes/agent_protocol.py b/skyvern/forge/sdk/routes/agent_protocol.py index a6b6b652..9a773907 100644 --- a/skyvern/forge/sdk/routes/agent_protocol.py +++ b/skyvern/forge/sdk/routes/agent_protocol.py @@ -720,12 +720,19 @@ async def get_workflow_run( current_org: Organization = Depends(org_auth_service.get_current_org), ) -> WorkflowRunStatusResponse: analytics.capture("skyvern-oss-agent-workflow-run-get") - return await app.WORKFLOW_SERVICE.build_workflow_run_status_response( + workflow_run_status_response = await app.WORKFLOW_SERVICE.build_workflow_run_status_response( workflow_permanent_id=workflow_id, workflow_run_id=workflow_run_id, organization_id=current_org.organization_id, include_cost=True, ) + observer_cruise = await app.DATABASE.get_observer_cruise_by_workflow_run_id( + workflow_run_id=workflow_run_id, + organization_id=current_org.organization_id, + ) + if observer_cruise: + workflow_run_status_response.observer_cruise = observer_cruise + return workflow_run_status_response @base_router.get( diff --git a/skyvern/forge/sdk/workflow/models/workflow.py b/skyvern/forge/sdk/workflow/models/workflow.py index b4dbee20..5ddd9435 100644 --- a/skyvern/forge/sdk/workflow/models/workflow.py +++ b/skyvern/forge/sdk/workflow/models/workflow.py @@ -5,6 +5,7 @@ from typing import Any, List from pydantic import BaseModel, field_validator from skyvern.forge.sdk.core.validators import validate_url +from skyvern.forge.sdk.schemas.observers import ObserverCruise from skyvern.forge.sdk.schemas.tasks import ProxyLocation from skyvern.forge.sdk.workflow.exceptions import WorkflowDefinitionHasDuplicateBlockLabels from skyvern.forge.sdk.workflow.models.block import BlockTypeVar @@ -136,3 +137,4 @@ class WorkflowRunStatusResponse(BaseModel): outputs: dict[str, Any] | None = None total_steps: int | None = None total_cost: float | None = None + observer_cruise: ObserverCruise | None = None