From d5dacd9918f5f01671b716da1420b97ddb926854 Mon Sep 17 00:00:00 2001 From: Shuchang Zheng Date: Mon, 30 Dec 2024 12:20:47 -0800 Subject: [PATCH] get observer cruise API (#1447) --- skyvern/forge/sdk/routes/agent_protocol.py | 12 ++++++++++++ skyvern/forge/sdk/services/observer_service.py | 4 ++++ 2 files changed, 16 insertions(+) diff --git a/skyvern/forge/sdk/routes/agent_protocol.py b/skyvern/forge/sdk/routes/agent_protocol.py index 4485691b..b66a3e9b 100644 --- a/skyvern/forge/sdk/routes/agent_protocol.py +++ b/skyvern/forge/sdk/routes/agent_protocol.py @@ -1097,3 +1097,15 @@ async def observer_cruise( max_iterations_override=x_max_iterations_override, ) return observer_cruise + + +@base_router.get("/cruise/{observer_cruise_id}") +@base_router.get("/cruise/{observer_cruise_id}/", include_in_schema=False) +async def get_observer_cruise( + observer_cruise_id: str, + organization: Organization = Depends(org_auth_service.get_current_org), +) -> ObserverCruise: + observer_cruise = await observer_service.get_observer_cruise(observer_cruise_id, organization.organization_id) + if not observer_cruise: + raise HTTPException(status_code=404, detail=f"Observer cruise {observer_cruise_id} not found") + return observer_cruise diff --git a/skyvern/forge/sdk/services/observer_service.py b/skyvern/forge/sdk/services/observer_service.py index 2bba5d57..992683cc 100644 --- a/skyvern/forge/sdk/services/observer_service.py +++ b/skyvern/forge/sdk/services/observer_service.py @@ -919,3 +919,7 @@ async def _record_thought_screenshot(observer_thought: ObserverThought, workflow artifact_type=ArtifactType.SCREENSHOT_LLM, data=screenshot, ) + + +async def get_observer_cruise(observer_cruise_id: str, organization_id: str | None = None) -> ObserverCruise | None: + return await app.DATABASE.get_observer_cruise(observer_cruise_id, organization_id=organization_id)