§
    ÚŽ’j<  ã                   ó¢   — d Z ddlmZmZmZmZ ddlmZ ddlm	Z	m
Z
mZ ddlmZ ddlmZmZ dd	lmZ dd
lmZmZ ddlmZ  G d„ de¦  «        ZdS )úThe builtin skill viewer tool.é    )ÚAnyÚCallableÚ	AwaitableÚListé   )ÚDeveloperOrientedException)ÚPermissionContextÚPermissionDecisionÚPermissionBehavioré   )Ú	ToolChunk)ÚToolBaseÚToolMiddlewareBase)ÚSkill)Ú	TextBlockÚToolResultState)Ú
AgentStatec                   ó\  ‡ — e Zd ZU dZdZeed<   	 dZ	 ddddd	œidgd
œZe	ee
f         ed<   	 dZeed<   	 dZeed<   	 dZeed<   	 dZeed<   	 dZeed<   	 dZedz  ed<   	 	 ddedee	eef                  f         dee         dz  ddfˆ fd„Zde	ee
f         dedefd„Zdededefd„Zˆ xZS ) ÚSkillViewerr   r   Únamez¹Retrieve a skill within the conversation. When users asks you to perform tasks, check if any of the available skills match. Skills provide specialized capabilities and domain knowledge.ÚobjectÚskillÚstringz%The exact name of the skill to view. )ÚtypeÚdescription)r   Ú
propertiesÚrequiredÚinput_schemaTÚis_concurrency_safeFÚis_external_toolÚis_state_injectedÚis_read_onlyÚis_mcpNÚmcp_nameÚget_skills_method.ÚmiddlewaresÚreturnc                 óZ   •— t          ¦   «                              |¬¦  «         || _        dS )ab  Initialize the skill viewer with the list of skills.

        Args:
            get_skills_method (`Callable[..., dict[str, Skill]]`):
                An async method that returns the current skills of the agent.
            middlewares (`List[ToolMiddlewareBase] | None`, optional):
                Tool middlewares wrapping the tool execution.
        )r'   N)ÚsuperÚ__init__Ú_get_skills_method)Úselfr&   r'   Ú	__class__s      €úMC:\Projects\DSCons\.venv\Lib\site-packages\agentscope\tool\_builtin\_skill.pyr+   zSkillViewer.__init__?   s.   ø€ õ 	‰Œ×Ò [ÐÑ1Ô1Ð1Ø"3ˆÔÐÐó    Ú
tool_inputÚcontextc              ƒ   ó<   K  — t          t          j        d ¬¦  «        S )z0The skill viewer is always allowed to be called.)ÚbehaviorÚmessage)r   r   ÚALLOW)r-   r1   r2   s      r/   Úcheck_permissionszSkillViewer.check_permissionsO   s(   è è € õ "Ý'Ô-ØFð
ñ 
ô 
ð 	
r0   Ú_agent_statec              ƒ   óŒ  K  — t          |t          ¦  «        s t          dt          |¦  «        › d�¦  «        ‚|                      |j        j        ¦  «        ƒ d{V —†}|                     |¦  «        }|s.t          t          d|› d�¬¦  «        gt          j        ¬¦  «        S t          t          |j        ¬¦  «        g¬¦  «        S )	zîView the details of the skill with the given name.

        Args:
            skill (`str`):
                The name of the skill to be viewed.

        Returns:
            `ToolChunk`:
                The details of the skill.
        zExpected AgentState but got z# instead for the Skill viewer tool.NzSkillNotFoundError: Skill 'z' not found.)Útext)ÚcontentÚstate)r;   )Ú
isinstancer   r	   r   r,   Útool_contextÚactivated_groupsÚgetr   r   r   ÚERRORÚmarkdown)r-   r   r8   ÚskillsÚtarget_skills        r/   ÚcallzSkillViewer.callZ   s  è è € õ ˜,­
Ñ3Ô3ð 	Ý,ð5­t°LÑ/AÔ/Að 5ð 5ð 5ñô ð ð ×.Ò.ØÔ%Ô6ñ
ô 
ð 
ð 
ð 
ð 
ð 
ð 
ˆð —z’z %Ñ(Ô(ˆØð 		Ýåð&¸5ð &ð &ð &ðñ ô ðõ &Ô+ðñ ô ð õ ¥)°Ô1FÐ"GÑ"GÔ"GÐ!HÐIÑIÔIÐIr0   )N)Ú__name__Ú
__module__Ú__qualname__Ú__doc__r   ÚstrÚ__annotations__r   r   Údictr   r    Úboolr!   r"   r#   r$   r%   r   r   r   r   r   r+   r
   r   r7   r   r   rE   Ú__classcell__)r.   s   @r/   r   r      sð  ø€ € € € € € Ø(Ð(à€Dˆ#ÐÐÑØ9ð	Hð ð Fð àØ ØFðð ð
ð �Ið	$ð 	$€L�$�s˜C�x”.ð 	ð 	ñ 	ð 5à $Ð˜Ð$Ð$Ñ$Ø/à"Ð�dÐ"Ð"Ñ"Ø3à"Ð�tÐ"Ð"Ñ"ðð €L�$ÐÐÑØ(à€FˆDÐÐÑØ.à€Hˆc�D‰jÐÐÑØ=ð
 8<ð4ð 4à# C¨°4¸¸U¸
Ô3CÔ)DÐ$DÔEð4ð Ð,Ô-°Ñ4ð4ð 
ð	4ð 4ð 4ð 4ð 4ð 4ð 	
à˜˜c˜”Nð	
ð #ð	
ð 
ð		
ð 	
ð 	
ð 	
ð%Jàð%Jð !ð%Jð 
ð	%Jð %Jð %Jð %Jð %Jð %Jð %Jð %Jr0   r   N)rI   Útypingr   r   r   r   Ú	exceptionr	   Ú
permissionr
   r   r   Ú	_responser   Ú_baser   r   r   r   r5   r   r   r<   r   r   © r0   r/   ú<module>rU      s#  ðà $Ð $Ø 1Ð 1Ð 1Ð 1Ð 1Ð 1Ð 1Ð 1Ð 1Ð 1Ð 1Ð 1à 3Ð 3Ð 3Ð 3Ð 3Ð 3ðð ð ð ð ð ð ð ð ð ð
 "Ð !Ð !Ð !Ð !Ð !Ø 0Ð 0Ð 0Ð 0Ð 0Ð 0Ð 0Ð 0Ø Ð Ð Ð Ð Ð Ø 1Ð 1Ð 1Ð 1Ð 1Ð 1Ð 1Ð 1Ø Ð Ð Ð Ð Ð ðmJð mJð mJð mJð mJ�(ñ mJô mJð mJð mJð mJr0   