add generate_script to the task v2 table (#3332)

This commit is contained in:
Shuchang Zheng
2025-08-31 15:08:01 +08:00
committed by GitHub
parent 494b009ef9
commit 687bf1e2c7
6 changed files with 51 additions and 0 deletions

View File

@@ -2639,6 +2639,7 @@ class AgentDB:
max_screenshot_scrolling_times: int | None = None,
extra_http_headers: dict[str, str] | None = None,
browser_address: str | None = None,
generate_script: bool = False,
) -> TaskV2:
async with self.Session() as session:
new_task_v2 = TaskV2Model(
@@ -2658,6 +2659,7 @@ class AgentDB:
max_screenshot_scrolling_times=max_screenshot_scrolling_times,
extra_http_headers=extra_http_headers,
browser_address=browser_address,
generate_script=generate_script,
)
session.add(new_task_v2)
await session.commit()

View File

@@ -664,6 +664,7 @@ class TaskV2Model(Base):
max_screenshot_scrolling_times = Column(Integer, nullable=True)
extra_http_headers = Column(JSON, nullable=True)
browser_address = Column(String, nullable=True)
generate_script = Column(Boolean, nullable=False, default=False)
queued_at = Column(DateTime, nullable=True)
started_at = Column(DateTime, nullable=True)

View File

@@ -52,6 +52,7 @@ class TaskV2(BaseModel):
max_screenshot_scrolls: int | None = Field(default=None, alias="max_screenshot_scrolling_times")
extra_http_headers: dict[str, str] | None = None
browser_address: str | None = None
generate_script: bool = False
created_at: datetime
modified_at: datetime
@@ -155,6 +156,7 @@ class TaskV2Request(BaseModel):
max_screenshot_scrolls: int | None = None
extra_http_headers: dict[str, str] | None = None
browser_address: str | None = None
generate_script: bool = False
@field_validator("url", "webhook_callback_url", "totp_verification_url")
@classmethod

View File

@@ -2273,6 +2273,7 @@ class WorkflowService:
proxy_location: ProxyLocation | None = None,
max_screenshot_scrolling_times: int | None = None,
extra_http_headers: dict[str, str] | None = None,
generate_script: bool = False,
status: WorkflowStatus = WorkflowStatus.published,
) -> Workflow:
"""
@@ -2289,6 +2290,7 @@ class WorkflowService:
status=status,
max_screenshot_scrolls=max_screenshot_scrolling_times,
extra_http_headers=extra_http_headers,
generate_script=generate_script,
)
return await app.WORKFLOW_SERVICE.create_workflow_from_request(
organization=organization,

View File

@@ -164,7 +164,11 @@ async def initialize_task_v2(
browser_session_id: str | None = None,
extra_http_headers: dict[str, str] | None = None,
browser_address: str | None = None,
generate_script: bool = False,
) -> TaskV2:
if generate_script:
publish_workflow = True
task_v2 = await app.DATABASE.create_task_v2(
prompt=user_prompt,
organization_id=organization.organization_id,
@@ -178,6 +182,7 @@ async def initialize_task_v2(
max_screenshot_scrolling_times=max_screenshot_scrolling_times,
extra_http_headers=extra_http_headers,
browser_address=browser_address,
generate_script=generate_script,
)
# set task_v2_id in context
context = skyvern_context.current()
@@ -224,6 +229,7 @@ async def initialize_task_v2(
status=workflow_status,
max_screenshot_scrolling_times=max_screenshot_scrolling_times,
extra_http_headers=extra_http_headers,
generate_script=generate_script,
)
workflow_run = await app.WORKFLOW_SERVICE.setup_workflow_run(
request_id=None,
@@ -886,6 +892,11 @@ async def run_task_v2_helper(
context=context,
screenshots=completion_screenshots,
)
if task_v2.generate_script:
await app.WORKFLOW_SERVICE.generate_script_if_needed(
workflow=workflow,
workflow_run=workflow_run,
)
break
# total step number validation