Skyvern/skyvern/forge/sdk/executor/async_executor.py
2025-12-11 10:25:12 -07:00

66 lines
1.7 KiB
Python

import abc
from typing import Any
from fastapi import BackgroundTasks, Request
from skyvern.forge.sdk.schemas.organizations import Organization
class AsyncExecutor(abc.ABC):
@abc.abstractmethod
async def execute_task(
self,
request: Request | None,
background_tasks: BackgroundTasks,
task_id: str,
organization_id: str,
max_steps_override: int | None,
api_key: str | None,
browser_session_id: str | None,
**kwargs: dict,
) -> None:
pass
@abc.abstractmethod
async def execute_workflow(
self,
request: Request | None,
background_tasks: BackgroundTasks | None,
organization: Organization,
workflow_id: str,
workflow_run_id: str,
workflow_permanent_id: str,
max_steps_override: int | None,
api_key: str | None,
browser_session_id: str | None,
block_labels: list[str] | None,
block_outputs: dict[str, Any] | None,
**kwargs: dict,
) -> None:
pass
@abc.abstractmethod
async def execute_task_v2(
self,
request: Request | None,
background_tasks: BackgroundTasks | None,
organization_id: str,
task_v2_id: str,
max_steps_override: int | str | None,
browser_session_id: str | None,
**kwargs: dict,
) -> None:
pass
@abc.abstractmethod
async def execute_script(
self,
request: Request | None,
script_id: str,
organization_id: str,
parameters: dict[str, Any] | None = None,
workflow_run_id: str | None = None,
background_tasks: BackgroundTasks | None = None,
**kwargs: dict,
) -> None:
pass