add step count to webhooks and get run payload (#4410)
This commit is contained in:
@@ -70,6 +70,7 @@ async def get_run_response(run_id: str, organization_id: str | None = None) -> R
|
||||
max_screenshot_scrolls=task_v1_response.request.max_screenshot_scrolls,
|
||||
),
|
||||
errors=task_v1_response.errors,
|
||||
step_count=task_v1_response.step_count,
|
||||
)
|
||||
elif run.task_run_type == RunType.task_v2:
|
||||
task_v2 = await app.DATABASE.get_task_v2(run.run_id, organization_id=organization_id)
|
||||
|
||||
@@ -126,10 +126,13 @@ async def get_task_v1_response(task_id: str, organization_id: str | None = None)
|
||||
if not task_obj:
|
||||
raise TaskNotFound(task_id=task_id)
|
||||
|
||||
# get step count efficiently via COUNT query
|
||||
step_count = await app.DATABASE.get_task_step_count(task_id, organization_id)
|
||||
|
||||
# get latest step
|
||||
latest_step = await app.DATABASE.get_latest_step(task_id, organization_id=organization_id)
|
||||
if not latest_step:
|
||||
return await app.agent.build_task_response(task=task_obj)
|
||||
return await app.agent.build_task_response(task=task_obj, step_count=step_count)
|
||||
|
||||
failure_reason: str | None = None
|
||||
if task_obj.status == TaskStatus.failed and (latest_step.output or task_obj.failure_reason):
|
||||
@@ -148,5 +151,9 @@ async def get_task_v1_response(task_id: str, organization_id: str | None = None)
|
||||
if len(action_results_string) > 0:
|
||||
failure_reason += "(Exceptions: " + str(action_results_string) + ")"
|
||||
return await app.agent.build_task_response(
|
||||
task=task_obj, last_step=latest_step, failure_reason=failure_reason, need_browser_log=True
|
||||
task=task_obj,
|
||||
last_step=latest_step,
|
||||
failure_reason=failure_reason,
|
||||
need_browser_log=True,
|
||||
step_count=step_count,
|
||||
)
|
||||
|
||||
@@ -1799,6 +1799,7 @@ async def build_task_v2_run_response(task_v2: TaskV2) -> TaskRunResponse:
|
||||
error_code_mapping=task_v2.error_code_mapping,
|
||||
),
|
||||
errors=workflow_run_resp.errors if workflow_run_resp else None,
|
||||
step_count=workflow_run_resp.step_count if workflow_run_resp else None,
|
||||
)
|
||||
|
||||
|
||||
|
||||
@@ -113,6 +113,7 @@ async def get_workflow_run_response(
|
||||
workflow_run_resp = await app.WORKFLOW_SERVICE.build_workflow_run_status_response_by_workflow_id(
|
||||
workflow_run_id=workflow_run.workflow_run_id,
|
||||
organization_id=organization_id,
|
||||
include_step_count=True,
|
||||
)
|
||||
app_url = f"{settings.SKYVERN_APP_URL.rstrip('/')}/runs/{workflow_run.workflow_run_id}"
|
||||
return WorkflowRunResponse(
|
||||
@@ -145,4 +146,5 @@ async def get_workflow_run_response(
|
||||
# TODO: add browser session id
|
||||
),
|
||||
errors=workflow_run_resp.errors,
|
||||
step_count=workflow_run_resp.total_steps,
|
||||
)
|
||||
|
||||
Reference in New Issue
Block a user