diff --git a/skyvern/forge/sdk/workflow/models/block.py b/skyvern/forge/sdk/workflow/models/block.py index f9ce8a58..07f74f94 100644 --- a/skyvern/forge/sdk/workflow/models/block.py +++ b/skyvern/forge/sdk/workflow/models/block.py @@ -83,6 +83,7 @@ class BlockType(StrEnum): LOGIN = "login" WAIT = "wait" FILE_DOWNLOAD = "file_download" + GOTO_URL = "goto_url" class BlockStatus(StrEnum): @@ -1801,6 +1802,11 @@ class FileDownloadBlock(BaseTaskBlock): block_type: Literal[BlockType.FILE_DOWNLOAD] = BlockType.FILE_DOWNLOAD +class UrlBlock(BaseTaskBlock): + block_type: Literal[BlockType.GOTO_URL] = BlockType.GOTO_URL + url: str + + BlockSubclasses = Union[ ForLoopBlock, TaskBlock, @@ -1817,5 +1823,6 @@ BlockSubclasses = Union[ LoginBlock, WaitBlock, FileDownloadBlock, + UrlBlock, ] BlockTypeVar = Annotated[BlockSubclasses, Field(discriminator="block_type")] diff --git a/skyvern/forge/sdk/workflow/models/yaml.py b/skyvern/forge/sdk/workflow/models/yaml.py index 365c3205..c89ba592 100644 --- a/skyvern/forge/sdk/workflow/models/yaml.py +++ b/skyvern/forge/sdk/workflow/models/yaml.py @@ -310,6 +310,11 @@ class FileDownloadBlockYAML(BlockYAML): cache_actions: bool = False +class UrlBlockYAML(BlockYAML): + block_type: Literal[BlockType.GOTO_URL] = BlockType.GOTO_URL # type: ignore + url: str + + PARAMETER_YAML_SUBCLASSES = ( AWSSecretParameterYAML | BitwardenLoginCredentialParameterYAML @@ -337,6 +342,7 @@ BLOCK_YAML_SUBCLASSES = ( | LoginBlockYAML | WaitBlockYAML | FileDownloadBlockYAML + | UrlBlockYAML ) BLOCK_YAML_TYPES = Annotated[BLOCK_YAML_SUBCLASSES, Field(discriminator="block_type")]