Add Checksums to downloaded files for Axis so they can validate it in the webhook (#1848)
This commit is contained in:
@@ -10,6 +10,7 @@ from pydantic import BaseModel, Field, field_validator
|
||||
from skyvern.exceptions import InvalidTaskStatusTransition, TaskAlreadyCanceled, TaskAlreadyTimeout
|
||||
from skyvern.forge.sdk.core.validators import validate_url
|
||||
from skyvern.forge.sdk.db.enums import TaskType
|
||||
from skyvern.forge.sdk.schemas.files import FileInfo
|
||||
|
||||
|
||||
class ProxyLocation(StrEnum):
|
||||
@@ -310,7 +311,7 @@ class Task(TaskBase):
|
||||
screenshot_url: str | None = None,
|
||||
recording_url: str | None = None,
|
||||
browser_console_log_url: str | None = None,
|
||||
downloaded_file_urls: list[str] | None = None,
|
||||
downloaded_files: list[FileInfo] | None = None,
|
||||
failure_reason: str | None = None,
|
||||
) -> TaskResponse:
|
||||
return TaskResponse(
|
||||
@@ -325,7 +326,8 @@ class Task(TaskBase):
|
||||
screenshot_url=screenshot_url,
|
||||
recording_url=recording_url,
|
||||
browser_console_log_url=browser_console_log_url,
|
||||
downloaded_file_urls=downloaded_file_urls,
|
||||
downloaded_files=downloaded_files,
|
||||
downloaded_file_urls=[file.url for file in downloaded_files] if downloaded_files else None,
|
||||
errors=self.errors,
|
||||
max_steps_per_run=self.max_steps_per_run,
|
||||
workflow_run_id=self.workflow_run_id,
|
||||
@@ -343,6 +345,7 @@ class TaskResponse(BaseModel):
|
||||
screenshot_url: str | None = None
|
||||
recording_url: str | None = None
|
||||
browser_console_log_url: str | None = None
|
||||
downloaded_files: list[FileInfo] | None = None
|
||||
downloaded_file_urls: list[str] | None = None
|
||||
failure_reason: str | None = None
|
||||
errors: list[dict[str, Any]] = []
|
||||
@@ -356,16 +359,21 @@ class TaskOutput(BaseModel):
|
||||
extracted_information: list | dict[str, Any] | str | None = None
|
||||
failure_reason: str | None = None
|
||||
errors: list[dict[str, Any]] = []
|
||||
downloaded_file_urls: list[str] | None = None
|
||||
downloaded_files: list[FileInfo] | None = None
|
||||
downloaded_file_urls: list[str] | None = None # For backward compatibility
|
||||
|
||||
@staticmethod
|
||||
def from_task(task: Task, downloaded_file_urls: list[str] | None = None) -> TaskOutput:
|
||||
def from_task(task: Task, downloaded_files: list[FileInfo] | None = None) -> TaskOutput:
|
||||
# For backward compatibility, extract just the URLs from FileInfo objects
|
||||
downloaded_file_urls = [file_info.url for file_info in downloaded_files] if downloaded_files else None
|
||||
|
||||
return TaskOutput(
|
||||
task_id=task.task_id,
|
||||
status=task.status,
|
||||
extracted_information=task.extracted_information,
|
||||
failure_reason=task.failure_reason,
|
||||
errors=task.errors,
|
||||
downloaded_files=downloaded_files,
|
||||
downloaded_file_urls=downloaded_file_urls,
|
||||
)
|
||||
|
||||
|
||||
Reference in New Issue
Block a user