support passing run_with for run_task endpoint (mostly for task v2) (#4576)

This commit is contained in:
Shuchang Zheng
2026-01-28 20:50:32 -08:00
committed by GitHub
parent 34aadb8c09
commit 69e1ea15cc
3 changed files with 12 additions and 4 deletions

View File

@@ -264,6 +264,7 @@ async def run_task(
extra_http_headers=run_request.extra_http_headers, extra_http_headers=run_request.extra_http_headers,
browser_session_id=run_request.browser_session_id, browser_session_id=run_request.browser_session_id,
browser_address=run_request.browser_address, browser_address=run_request.browser_address,
run_with=run_request.run_with,
) )
except MissingBrowserAddressError as e: except MissingBrowserAddressError as e:
raise HTTPException(status_code=400, detail=str(e)) from e raise HTTPException(status_code=400, detail=str(e)) from e

View File

@@ -437,6 +437,11 @@ class TaskRunRequest(BaseModel):
description="The CDP address for the task.", description="The CDP address for the task.",
examples=["http://127.0.0.1:9222", "ws://127.0.0.1:9222/devtools/browser/1234567890"], examples=["http://127.0.0.1:9222", "ws://127.0.0.1:9222/devtools/browser/1234567890"],
) )
run_with: str | None = Field(
default=None,
description="Whether to run the task with agent or code.",
examples=["agent", "code"],
)
@field_validator("url", "webhook_url", "totp_url") @field_validator("url", "webhook_url", "totp_url")
@classmethod @classmethod

View File

@@ -209,6 +209,7 @@ async def initialize_task_v2(
browser_session_id=browser_session_id, browser_session_id=browser_session_id,
extra_http_headers=extra_http_headers, extra_http_headers=extra_http_headers,
browser_address=browser_address, browser_address=browser_address,
run_with=run_with,
), ),
workflow_permanent_id=new_workflow.workflow_permanent_id, workflow_permanent_id=new_workflow.workflow_permanent_id,
organization=organization, organization=organization,
@@ -755,10 +756,11 @@ async def run_task_v2_helper(
context=context, context=context,
screenshots=scraped_page.screenshots, screenshots=scraped_page.screenshots,
) )
await app.WORKFLOW_SERVICE.generate_script_if_needed( if task_v2.run_with == "code":
workflow=workflow, await app.WORKFLOW_SERVICE.generate_script_if_needed(
workflow_run=workflow_run, workflow=workflow,
) workflow_run=workflow_run,
)
break break
if not plan: if not plan: