SDK: Support AI act feature (#3888)

This commit is contained in:
Stanislav Novosad
2025-11-04 11:28:43 -07:00
committed by GitHub
parent bdbabd5153
commit ba99e9ea2c
10 changed files with 246 additions and 5 deletions

View File

@@ -7,6 +7,7 @@ from importlib import import_module
if typing.TYPE_CHECKING:
from .types import (
ActAction,
Action,
ActionBlock,
ActionBlockDataSchema,
@@ -271,6 +272,7 @@ if typing.TYPE_CHECKING:
ScriptFileCreate,
ScriptRunResponse,
SdkAction,
SdkAction_AiAct,
SdkAction_AiClick,
SdkAction_AiInputText,
SdkAction_AiSelectOption,
@@ -466,6 +468,7 @@ if typing.TYPE_CHECKING:
from .environment import SkyvernEnvironment
from .version import __version__
_dynamic_imports: typing.Dict[str, str] = {
"ActAction": ".types",
"Action": ".types",
"ActionBlock": ".types",
"ActionBlockDataSchema": ".types",
@@ -734,6 +737,7 @@ _dynamic_imports: typing.Dict[str, str] = {
"ScriptFileCreate": ".types",
"ScriptRunResponse": ".types",
"SdkAction": ".types",
"SdkAction_AiAct": ".types",
"SdkAction_AiClick": ".types",
"SdkAction_AiInputText": ".types",
"SdkAction_AiSelectOption": ".types",
@@ -952,6 +956,7 @@ def __dir__():
__all__ = [
"ActAction",
"Action",
"ActionBlock",
"ActionBlockDataSchema",
@@ -1220,6 +1225,7 @@ __all__ = [
"ScriptFileCreate",
"ScriptRunResponse",
"SdkAction",
"SdkAction_AiAct",
"SdkAction_AiClick",
"SdkAction_AiInputText",
"SdkAction_AiSelectOption",

View File

@@ -6,6 +6,7 @@ import typing
from importlib import import_module
if typing.TYPE_CHECKING:
from .act_action import ActAction
from .action import Action
from .action_block import ActionBlock
from .action_block_data_schema import ActionBlockDataSchema
@@ -297,6 +298,7 @@ if typing.TYPE_CHECKING:
from .script_run_response import ScriptRunResponse
from .sdk_action import (
SdkAction,
SdkAction_AiAct,
SdkAction_AiClick,
SdkAction_AiInputText,
SdkAction_AiSelectOption,
@@ -505,6 +507,7 @@ if typing.TYPE_CHECKING:
from .workflow_run_timeline_type import WorkflowRunTimelineType
from .workflow_status import WorkflowStatus
_dynamic_imports: typing.Dict[str, str] = {
"ActAction": ".act_action",
"Action": ".action",
"ActionBlock": ".action_block",
"ActionBlockDataSchema": ".action_block_data_schema",
@@ -769,6 +772,7 @@ _dynamic_imports: typing.Dict[str, str] = {
"ScriptFileCreate": ".script_file_create",
"ScriptRunResponse": ".script_run_response",
"SdkAction": ".sdk_action",
"SdkAction_AiAct": ".sdk_action",
"SdkAction_AiClick": ".sdk_action",
"SdkAction_AiInputText": ".sdk_action",
"SdkAction_AiSelectOption": ".sdk_action",
@@ -982,6 +986,7 @@ def __dir__():
__all__ = [
"ActAction",
"Action",
"ActionBlock",
"ActionBlockDataSchema",
@@ -1246,6 +1251,7 @@ __all__ = [
"ScriptFileCreate",
"ScriptRunResponse",
"SdkAction",
"SdkAction_AiAct",
"SdkAction_AiClick",
"SdkAction_AiInputText",
"SdkAction_AiSelectOption",

View File

@@ -68,6 +68,20 @@ class SdkAction_AiSelectOption(UniversalBaseModel):
extra = pydantic.Extra.allow
class SdkAction_AiAct(UniversalBaseModel):
type: typing.Literal["ai_act"] = "ai_act"
intention: typing.Optional[str] = None
if IS_PYDANTIC_V2:
model_config: typing.ClassVar[pydantic.ConfigDict] = pydantic.ConfigDict(extra="allow", frozen=True) # type: ignore # Pydantic v2
else:
class Config:
frozen = True
smart_union = True
extra = pydantic.Extra.allow
class SdkAction_Extract(UniversalBaseModel):
type: typing.Literal["extract"] = "extract"
prompt: typing.Optional[str] = None
@@ -86,4 +100,6 @@ class SdkAction_Extract(UniversalBaseModel):
extra = pydantic.Extra.allow
SdkAction = typing.Union[SdkAction_AiClick, SdkAction_AiInputText, SdkAction_AiSelectOption, SdkAction_Extract]
SdkAction = typing.Union[
SdkAction_AiClick, SdkAction_AiInputText, SdkAction_AiSelectOption, SdkAction_AiAct, SdkAction_Extract
]