§
    ÚŽ’j'  ã                   ó’   — d Z ddlmZmZ ddlmZ ddlmZ ddlm	Z	 dd	l
mZ dd
lmZmZ  G d„ de¦  «        Z G d„ de¦  «        ZdS )zThe get task tool class.é    )Ú	BaseModelÚFieldé   )Ú_TaskToolBaseé   )Ú	ToolChunké   )Ú
AgentState)ÚDeveloperOrientedException)Ú	TextBlockÚToolResultStatec                   ó6   — e Zd ZU dZ ed¬¦  «        Zeed<   dS )Ú_TaskGetParamszThe params of the get task.zThe ID of the task to retrieve)ÚdescriptionÚtask_idN)Ú__name__Ú
__module__Ú__qualname__Ú__doc__r   r   ÚstrÚ__annotations__© ó    úMC:\Projects\DSCons\.venv\Lib\site-packages\agentscope\tool\_task\_get_task.pyr   r      s6   € € € € € € Ø%Ð%à�5Ð%EÐFÑFÔF€GˆSÐFÐFÑFÐFÐFr   r   c                   óv   — e Zd ZU dZd Zeed<   dZeed<   e 	                    ¦   «         Z
eed<   dededefd	„Zd
S )ÚTaskGetz-Retrieve a task by its ID from the task list.ÚnameaÛ  Use this tool to retrieve a task by its ID from the task list.

## When to Use This Tool

- When you need the full description and context before starting work on a task
- To understand task dependencies (what it blocks, what blocks it)
- After being assigned a task, to get complete requirements

## Output

Returns full task details:
- **subject**: Task title
- **description**: Detailed requirements and context
- **status**: 'pending', 'in_progress', or 'completed'
- **blocks**: Tasks waiting on this one to complete
- **blockedBy**: Tasks that must complete before this one can start

## Tips

- After fetching a task, verify its blockedBy list is empty before beginning work.
- Use TaskList to see all tasks in summary form.r   Úinput_schemar   Ú_agent_stateÚreturnc              ƒ   ó8  K  — t          |t          ¦  «        st          d|› d�¦  «        ‚d}|j        j        D ]}|j        |k    r|} nŒ|€*t          t          d¬¦  «        gt          j	        ¬¦  «        S d|j        › d|j
        › �d	|j        › �d
|j        › �g}|j        r|                     d|j        › �¦  «         |j        r<d                     d„ |j        D ¦   «         ¦  «        }|                     d|› �¦  «         |j        r<d                     d„ |j        D ¦   «         ¦  «        }|                     d|› �¦  «         |j        r|                     d|j        › �¦  «         t          t          d                     |¦  «        ¬¦  «        g¬¦  «        S )zRetrieve a task by its ID.z7Error: TaskGet requires AgentState to be provided, got z	 instead.NzTask not found)Útext)ÚcontentÚstatez	Task (id=z): zStatus: zDescription: zOwner: z, c                 ó   — g | ]}d |› �‘ŒS ©ú#r   ©Ú.0Úbids     r   ú
<listcomp>z TaskGet.call.<locals>.<listcomp>V   s   € Ð'MÐ'MÐ'M°c¨	¨C¨	¨	Ð'MÐ'MÐ'Mr   zBlocked by: c                 ó   — g | ]}d |› �‘ŒS r&   r   r(   s     r   r+   z TaskGet.call.<locals>.<listcomp>Z   s   € Ð#EÐ#EÐ#E°# I¨ I IÐ#EÐ#EÐ#Er   zBlocks: z
Metadata: ú
)r#   )Ú
isinstancer
   r   Útasks_contextÚtasksÚidr   r   r   ÚERRORÚsubjectr$   r   ÚownerÚappendÚ
blocked_byÚjoinÚblocksÚmetadata)Úselfr   r   ÚtaskÚtÚlinesÚblocked_by_strÚ
blocks_strs           r   ÚcallzTaskGet.call/   s  è è € õ ˜,­
Ñ3Ô3ð 	å,ð+Øð+ð +ð +ñô ð ð ˆØÔ+Ô1ð 	ð 	ˆAØŒt�wŠˆØ�Ø�ð ð ˆ<ÝåÐ#3Ð4Ñ4Ô4ðõ &Ô+ð	ñ ô ð ð 3˜œÐ2Ð2 D¤LÐ2Ð2Ø#�t”zÐ#Ð#Ø.˜DÔ,Ð.Ð.ð
ˆð Œ:ð 	1Ø�LŠLÐ/ 4¤:Ð/Ð/Ñ0Ô0Ð0àŒ?ð 	:Ø!ŸYšYÐ'MÐ'M¸T¼_Ð'MÑ'MÔ'MÑNÔNˆNØ�LŠLÐ8¨Ð8Ð8Ñ9Ô9Ð9àŒ;ð 	2ØŸšÐ#EÐ#E¸¼Ð#EÑ#EÔ#EÑFÔFˆJØ�LŠLÐ0 JÐ0Ð0Ñ1Ô1Ð1àŒ=ð 	7Ø�LŠLÐ5 d¤mÐ5Ð5Ñ6Ô6Ð6åå˜tŸyšy¨Ñ/Ô/Ð0Ñ0Ô0ðð
ñ 
ô 
ð 	
r   N)r   r   r   r   r   r   r   r   r   Úmodel_json_schemar   Údictr
   r   r@   r   r   r   r   r      s’   € € € € € € Ø7Ð7à€Dˆ#ÐÐÑð4€K�ð 4ð 4ñ 4ð, (×9Ò9Ñ;Ô;€L�$Ð;Ð;Ñ;ð5
àð5
ð !ð5
ð 
ð	5
ð 5
ð 5
ð 5
ð 5
ð 5
r   r   N)r   Úpydanticr   r   Ú_task_tool_baser   Ú	_responser   r$   r
   Ú	exceptionr   Úmessager   r   r   r   r   r   r   ú<module>rH      só   ðà Ð Ø %Ð %Ð %Ð %Ð %Ð %Ð %Ð %à *Ð *Ð *Ð *Ð *Ð *Ø !Ð !Ð !Ð !Ð !Ð !Ø Ð Ð Ð Ð Ð Ø 3Ð 3Ð 3Ð 3Ð 3Ð 3Ø 1Ð 1Ð 1Ð 1Ð 1Ð 1Ð 1Ð 1ðGð Gð Gð Gð G�Yñ Gô Gð GðR
ð R
ð R
ð R
ð R
ˆmñ R
ô R
ð R
ð R
ð R
r   