(request: WorkflowRequest)
| 13 | |
| 14 | @router.post("/api/workflow/execute") |
| 15 | async def execute_workflow(request: WorkflowRequest): |
| 16 | try: |
| 17 | manager = ensure_known_session(request.session_id, require_connection=True) |
| 18 | # log_level = LogLevel(request.log_level) if request.log_level else None |
| 19 | log_level = None |
| 20 | except ValueError: |
| 21 | raise HTTPException(status_code=400, detail="log_level must be either DEBUG or INFO") |
| 22 | try: |
| 23 | asyncio.create_task( |
| 24 | manager.workflow_run_service.start_workflow( |
| 25 | request.session_id, |
| 26 | request.yaml_file, |
| 27 | request.task_prompt, |
| 28 | manager, |
| 29 | attachments=request.attachments, |
| 30 | log_level=log_level, |
| 31 | ) |
| 32 | ) |
| 33 | |
| 34 | logger = get_server_logger() |
| 35 | logger.info( |
| 36 | "Workflow execution started", |
| 37 | log_type=LogType.WORKFLOW, |
| 38 | session_id=request.session_id, |
| 39 | yaml_file=request.yaml_file, |
| 40 | task_prompt_length=len(request.task_prompt or ""), |
| 41 | ) |
| 42 | |
| 43 | return { |
| 44 | "status": "started", |
| 45 | "session_id": request.session_id, |
| 46 | "message": "Workflow execution started", |
| 47 | } |
| 48 | except ValidationError as exc: |
| 49 | raise HTTPException(status_code=400, detail=str(exc)) |
| 50 | except Exception as exc: |
| 51 | logger = get_server_logger() |
| 52 | logger.log_exception(exc, "Failed to start workflow execution") |
| 53 | raise WorkflowExecutionError(f"Failed to start workflow: {exc}") |
nothing calls this directly
no test coverage detected