1+ import asyncio
12from typing import Any
2- from ....infra .db import AsyncSession
3+ from ....infra .async_mq import MQ_CLIENT
34from ..base import Tool , ToolPool
45from ....schema .llm import ToolSchema
56from ....schema .utils import asUUID
67from ....schema .result import Result
78from ....schema .orm import Task
9+ from ....schema .mq .space import NewTaskComplete
10+ from ....schema .session .task import TaskStatus
811from ....service .data import task as TD
912from ....env import LOG
13+ from ....service .constants import EX , RK
1014from .ctx import TaskCtx
1115
1216
17+ async def send_complete_new_task (body : NewTaskComplete ):
18+ await MQ_CLIENT .publish (
19+ exchange_name = EX .space_task ,
20+ routing_key = RK .space_task_new_complete ,
21+ body = body .model_dump_json (),
22+ )
23+
24+
1325async def update_task_handler (
1426 ctx : TaskCtx ,
1527 llm_arguments : dict ,
@@ -24,23 +36,33 @@ async def update_task_handler(
2436 f"Task order { task_order } is out of range, updating failed."
2537 )
2638 actually_task_id = ctx .task_ids_index [task_order - 1 ]
27- status = llm_arguments .get ("task_status" , None )
28- description = llm_arguments .get ("task_description" , None )
39+ task_status = llm_arguments .get ("task_status" , None )
40+ task_description = llm_arguments .get ("task_description" , None )
2941 r = await TD .update_task (
3042 ctx .db_session ,
3143 actually_task_id ,
32- status = status ,
44+ status = task_status ,
3345 patch_data = (
3446 {
35- "task_description" : description ,
47+ "task_description" : task_description ,
3648 }
37- if description
49+ if task_description
3850 else None
3951 ),
4052 )
4153 t , eil = r .unpack ()
4254 if eil :
4355 return r
56+ if task_status is not None and task_status == TaskStatus .SUCCESS .value :
57+ asyncio .create_task (
58+ send_complete_new_task (
59+ NewTaskComplete (
60+ project_id = ctx .project_id ,
61+ session_id = ctx .session_id ,
62+ task_id = actually_task_id ,
63+ )
64+ )
65+ )
4466 return Result .resolve (f"Task { t .task_order } updated" )
4567
4668
0 commit comments