| 109 | |
| 110 | |
| 111 | def complete_workflow_task(task_id: str, *, result: Any, registry: "RuntimeTaskRegistry") -> None: |
| 112 | def _complete(prev: TaskStateBase) -> TaskStateBase: |
| 113 | if not isinstance(prev, LocalWorkflowTaskState) or is_terminal_task_status(prev.status): |
| 114 | return prev |
| 115 | return _terminal_replace(prev, status="completed", result=result, summary=_safe_summary(prev.progress)) |
| 116 | |
| 117 | registry.update(task_id, _complete) |
| 118 | enqueue_workflow_notification(task_id, registry, status="completed") |
| 119 | |
| 120 | |
| 121 | def fail_workflow_task(task_id: str, *, error: str, registry: "RuntimeTaskRegistry") -> None: |