(self, **kwargs)
| 220 | return Response(message=f"Task started: {task_uuid}", break_loop=break_loop) |
| 221 | |
| 222 | async def delete_task(self, **kwargs) -> Response: |
| 223 | task_uuid: str = kwargs.get("uuid", "") |
| 224 | if not task_uuid: |
| 225 | return Response(message="Task UUID is required", break_loop=False) |
| 226 | |
| 227 | task: ScheduledTask | AdHocTask | PlannedTask | None = TaskScheduler.get().get_task_by_uuid(task_uuid) |
| 228 | if not task: |
| 229 | return Response(message=f"Task not found: {task_uuid}", break_loop=False) |
| 230 | |
| 231 | context = None |
| 232 | if task.context_id: |
| 233 | context = AgentContext.get(task.context_id) |
| 234 | |
| 235 | if task.state == TaskState.RUNNING: |
| 236 | if context: |
| 237 | context.reset() |
| 238 | await TaskScheduler.get().update_task(task_uuid, state=TaskState.IDLE) |
| 239 | await TaskScheduler.get().save() |
| 240 | |
| 241 | if context and context.id == task.uuid: |
| 242 | AgentContext.remove(context.id) |
| 243 | persist_chat.remove_chat(context.id) |
| 244 | |
| 245 | await TaskScheduler.get().remove_task_by_uuid(task_uuid) |
| 246 | if TaskScheduler.get().get_task_by_uuid(task_uuid) is None: |
| 247 | return Response(message=f"Task deleted: {task_uuid}", break_loop=False) |
| 248 | else: |
| 249 | return Response(message=f"Task failed to delete: {task_uuid}", break_loop=False) |
| 250 | |
| 251 | async def update_task(self, **kwargs) -> Response: |
| 252 | task_uuid: str = kwargs.get("uuid", "") |
no test coverage detected