a
    $ñ»j¬  ã                   @  s  d dl mZ d dlZd dlZd dlmZ ddlmZmZ ddl	m
Z
 ddl	mZ ddl	mZ eG d	d
„ d
ƒƒZG dd„ dejƒZeG dd„ dƒƒZddœdd„Zddœdd„ZedƒeG dd„ dƒƒƒZedƒeG dd„ dƒƒƒZedƒeG dd„ dƒƒƒZedƒeG dd „ d ƒƒƒZdS )!é    )ÚannotationsN)Ú	dataclassé   )Úevent_classÚT_JSON_DICT)Údom)Úpage)Úruntimec                   @  sL   e Zd ZU dZdZded< dZded< ddœdd	„Zedd d
œdd„ƒZ	dS )Ú
AnnotationzTool annotationsNztyping.Optional[bool]Ú	read_onlyÚ
autosubmitr   ©Úreturnc                 C  s2   t ƒ }| jd ur| j|d< | jd ur.| j|d< |S )NÚreadOnlyr   )Údictr   r   ©ÚselfÚjson© r   ú3E:\soccer\ml_env\Lib\site-packages\mycdp/web_mcp.pyÚto_json   s    



zAnnotation.to_json©r   r   c                 C  sD   | |  dd ¡d urt|d ƒnd |  dd ¡d ur<t|d ƒnd d�S )Nr   r   )r   r   )ÚgetÚbool©Úclsr   r   r   r   Ú	from_json"   s    ÿÿúzAnnotation.from_json)
Ú__name__Ú
__module__Ú__qualname__Ú__doc__r   Ú__annotations__r   r   Úclassmethodr   r   r   r   r   r
      s   
r
   c                   @  s>   e Zd ZdZdZdZdZddœdd„Zedd d	œd
d„ƒZ	dS )ÚInvocationStatusz+Represents the status of a tool invocation.ZSuccessZCanceledÚErrorÚstrr   c                 C  s   | j S ©N)Úvalue)r   r   r   r   r   4   s    zInvocationStatus.to_jsonr   c                 C  s   | |ƒS r&   r   r   r   r   r   r   7   s    zInvocationStatus.from_jsonN)
r   r   r   r    ÚSUCCESSZCANCELEDÚERRORr   r"   r   r   r   r   r   r#   .   s   r#   c                   @  s|   e Zd ZU dZded< ded< ded< dZded	< dZd
ed< dZded< dZded< ddœdd„Z	e
dd dœdd„ƒZdS )ÚToolz)Definition of a tool that can be invoked.r%   ÚnameÚdescriptionúpage.FrameIdÚframe_idNztyping.Optional[dict]Úinput_schemaztyping.Optional[Annotation]r   z"typing.Optional[dom.BackendNodeId]Úbackend_node_idz#typing.Optional[runtime.StackTrace]Ústack_tracer   r   c                 C  sˆ   t ƒ }| j|d< | j|d< | j ¡ |d< | jd ur<| j|d< | jd urT| j ¡ |d< | jd url| j ¡ |d< | jd ur„| j ¡ |d< |S )Nr+   r,   ÚframeIdÚinputSchemar   ÚbackendNodeIdÚ
stackTrace)	r   r+   r,   r.   r   r/   r   r0   r1   r   r   r   r   r   N   s    






zTool.to_jsonr   c                 C  s¬   | t |d ƒt |d ƒtj |d ¡| dd ¡d ur@t|d ƒnd | dd ¡d ur`t |d ¡nd | dd ¡d ur‚tj |d ¡nd | dd ¡d ur¤t	j
 |d ¡nd d�S )	Nr+   r,   r2   r3   r   r4   r5   )r+   r,   r.   r/   r   r0   r1   )r%   r   ÚFrameIdr   r   r   r
   r   ZBackendNodeIdr	   Z
StackTracer   r   r   r   r   ]   s"    

ÿÿÿÿñzTool.from_json)r   r   r   r    r!   r/   r   r0   r1   r   r"   r   r   r   r   r   r*   <   s   
r*   z0typing.Generator[T_JSON_DICT, T_JSON_DICT, None]r   c                  c  s   ddi} | V }dS )z 
    Enables the WebMCP domain, allowing events to be sent.
    Enabling the domain will trigger a toolsAdded event for
    all currently registered tools.
    ÚmethodzWebMCP.enableNr   ©Zcmd_dictr   r   r   r   Úenabler   s    ÿr9   c                  c  s   ddi} | V }dS )zDisables the WebMCP domain.r7   zWebMCP.disableNr   r8   r   r   r   Údisable~   s    ÿr:   zWebMCP.toolsAddedc                   @  s.   e Zd ZU dZded< edd dœdd„ƒZdS )	Ú
ToolsAddedz%Event fired when new tools are added.útyping.List[Tool]Útoolsr   r   c                 C  s   | dd„ |d D ƒd�S )Nc                 S  s   g | ]}t  |¡‘qS r   ©r*   r   ©Ú.0Úir   r   r   Ú
<listcomp>�   ó    z(ToolsAdded.from_json.<locals>.<listcomp>r=   ©r=   r   r   r   r   r   r   �   s    zToolsAdded.from_jsonN©r   r   r   r    r!   r"   r   r   r   r   r   r;   †   s   
r;   zWebMCP.toolsRemovedc                   @  s.   e Zd ZU dZded< edd dœdd„ƒZdS )	ÚToolsRemovedz#Event fired when tools are removed.r<   r=   r   r   c                 C  s   | dd„ |d D ƒd�S )Nc                 S  s   g | ]}t  |¡‘qS r   r>   r?   r   r   r   rB   ›   rC   z*ToolsRemoved.from_json.<locals>.<listcomp>r=   rD   r   r   r   r   r   r   ™   s    zToolsRemoved.from_jsonNrE   r   r   r   r   rF   ’   s   
rF   zWebMCP.toolInvokedc                   @  sF   e Zd ZU dZded< ded< ded< ded< edd d	œd
d„ƒZdS )ÚToolInvokedz*Event fired when a tool invocation starts.r%   Ú	tool_namer-   r.   Úinvocation_idÚinput_r   r   c                 C  s4   | t |d ƒtj |d ¡t |d ƒt |d ƒd�S )NZtoolNamer2   ÚinvocationIdÚinput)rH   r.   rI   rJ   )r%   r   r6   r   r   r   r   r   r   «   s    


üzToolInvoked.from_jsonNrE   r   r   r   r   rG   ž   s   
rG   zWebMCP.toolRespondedc                   @  sN   e Zd ZU dZded< ded< ded< ded	< d
ed< edd dœdd„ƒZdS )ÚToolRespondedz6Event fired when a tool invocation completes or fails.r%   rI   r#   Ústatusztyping.Optional[typing.Any]Úoutputztyping.Optional[str]Ú
error_textz%typing.Optional[runtime.RemoteObject]Ú	exceptionr   r   c              	   C  sx   | t |d ƒt |d ¡| dd ¡d ur0|d nd | dd ¡d urNt |d ƒnd | dd ¡d urptj |d ¡nd d�S )NrK   rN   rO   Z	errorTextrQ   )rI   rN   rO   rP   rQ   )r%   r#   r   r   r	   ZRemoteObjectr   r   r   r   r   Å   s    
ÿ
ÿÿõzToolResponded.from_jsonNrE   r   r   r   r   rM   µ   s   
rM   )Ú
__future__r   ÚenumÚtypingÚdataclassesr   Úutilr   r   Ú r   r   r	   r
   ÚEnumr#   r*   r9   r:   r;   rF   rG   rM   r   r   r   r   Ú<module>   s4   5

