
    ]j                       d dl mZ ddlmZmZ d dlmZ d dlZd dlZddl	m
Z
 ddl	mZ ddl	mZ e G d	 d
             Z G d dej                        Ze G d d             ZddZddZ ed      e G d d                    Z ed      e G d d                    Z ed      e G d d                    Z ed      e G d d                    Zy)    )annotations   )event_classT_JSON_DICT)	dataclassN)dom)page)runtimec                  D    e Zd ZU dZdZded<   dZded<   d Zed        Z	y)
Annotationz
    Tool annotations
    Nztyping.Optional[bool]	read_only
autosubmitc                    t               }| j                  | j                  |d<   | j                  | j                  |d<   |S )NreadOnlyr   )dictr   r   selfjsons     c/home/ubuntu/.local/lib/python3.12/site-packages/selenium/webdriver/common/devtools/v148/web_mcp.pyto_jsonzAnnotation.to_json   s>    v>>%#~~D??&!%D    c                h     | d|v rt        |d         nd d|v rt        |d               S d       S )Nr   r   )r   r   )boolclsr   s     r   	from_jsonzAnnotation.from_json$   sF    0:d0Bd4
+,3?43GtD./
 	
MQ
 	
r   )
__name__
__module____qualname____doc__r   __annotations__r   r   classmethodr    r   r   r   r      s:     (,I$+ )-J%, 
 
r   r   c                  2    e Zd ZdZdZdZdZd Zed        Z	y)InvocationStatusz5
    Represents the status of a tool invocation.
    SuccessCanceledErrorc                    | j                   S N)value)r   s    r   r   zInvocationStatus.to_json4   s    zzr   c                     | |      S r*   r#   r   s     r   r   zInvocationStatus.from_json7   s    4yr   N)
r   r   r   r    SUCCESSCANCELEDERRORr   r"   r   r#   r   r   r%   r%   ,   s1     GHE  r   r%   c                  ~    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 Z	e
d        Zy)Toolz3
    Definition of a tool that can be invoked.
    str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_tracec                   t               }| j                  |d<   | j                  |d<   | j                  j	                         |d<   | j
                  | j
                  |d<   | j                  | j                  j	                         |d<   | j                  | j                  j	                         |d<   | j                  | j                  j	                         |d<   |S )Nr3   r4   frameIdinputSchemar   backendNodeId
stackTrace)	r   r3   r4   r6   r   r7   r   r8   r9   r   s     r   r   zTool.to_jsonV   s    vyyV"..]--//1Y("&"3"3D'"&"2"2":":"<D+$($8$8$@$@$BD!'!%!1!1!9!9!;Dr   c                    | t        |d         t        |d         t        j                  j                  |d         d|v rt	        |d         nd d|v rt
        j                  |d         nd d|v r"t        j                  j                  |d         nd d|v r't        j                  j                  |d               S d       S )	Nr3   r4   r;   r<   r   r=   r>   )r3   r4   r6   r7   r   r8   r9   )
r2   r	   FrameIdr   r   r   r   BackendNodeIdr
   
StackTracer   s     r   r   zTool.from_jsone   s    T&\"D/0\\++DO<6Ct6Kd=12QUERVZEZ
,,T--@A`dRaeiRiC--77_8MNosLX\`L`**44T,5GH
 	
 gk
 	
r   )r   r   r   r    r!   r7   r   r8   r9   r   r"   r   r#   r   r   r1   r1   <   sk     I   +/L'. 04K,3 ;?O7> 8<K4; 	
 	
r   r1   c               #     K   ddi} | }yw)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#   cmd_dictr   s     r   enablerG   r   s      	/H >D   
c               #     K   ddi} | }yw)z%
    Disables the WebMCP domain.
    rD   zWebMCP.disableNr#   rE   s     r   disablerJ   }   s     
 	"H >DrH   zWebMCP.toolsAddedc                  .    e Zd ZU dZded<   edd       Zy)
ToolsAddedz/
    Event fired when new tools are added.
    typing.List[Tool]toolsc                f     | |d   D cg c]  }t         j                  |       c}      S c c}w NrN   )rN   r1   r   r   r   is      r   r   zToolsAdded.from_json   -    .27m<4>>!$<
 	
<   .N)r   r   returnrL   r   r   r   r    r!   r"   r   r#   r   r   rL   rL      !     
 
r   rL   zWebMCP.toolsRemovedc                  .    e Zd ZU dZded<   edd       Zy)ToolsRemovedz-
    Event fired when tools are removed.
    rM   rN   c                f     | |d   D cg c]  }t         j                  |       c}      S c c}w rP   rQ   rR   s      r   r   zToolsRemoved.from_json   rT   rU   N)r   r   rV   rZ   rW   r#   r   r   rZ   rZ      rX   r   rZ   zWebMCP.toolInvokedc                  L    e Zd ZU dZded<   ded<   ded<   ded<   ed
d       Zy	)ToolInvokedz4
    Event fired when a tool invocation starts.
    r2   	tool_namer5   r6   invocation_idinput_c           	          | t        |d         t        j                  j                  |d         t        |d         t        |d               S )NtoolNamer;   invocationIdinput)r^   r6   r_   r`   )r2   r	   r@   r   r   s     r   r   zToolInvoked.from_json   sK    $z*+\\++DO<d>23tG}%	
 	
r   N)r   r   rV   r]   rW   r#   r   r   r]   r]      s1     NK
 
r   r]   zWebMCP.toolRespondedc                  V    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       Zy)ToolRespondedz@
    Event fired when a tool invocation completes or fails.
    r2   r_   r%   statusztyping.Optional[typing.Any]outputztyping.Optional[str]
error_textz%typing.Optional[runtime.RemoteObject]	exceptionc           
          | t        |d         t        j                  |d         d|v r|d   nd d|v rt        |d         nd d|v r't        j                  j                  |d               S d       S )Nrc   rg   rh   	errorTextrj   )r_   rg   rh   ri   rj   )r2   r%   r   r
   RemoteObjectr   s     r   r   zToolResponded.from_json   s    d>23#--d8n=%-%54>41<1Ds4,-$KVZ^K^g**44T+5FG
 	

 ei
 	
r   N)r   r   rV   rf   rW   r#   r   r   rf   rf      s9     ''$$44
 
r   rf   )rV   z0typing.Generator[T_JSON_DICT, T_JSON_DICT, None])
__future__r   utilr   r   dataclassesr   enumtyping r   r	   r
   r   Enumr%   r1   rG   rJ   rL   rZ   r]   rf   r#   r   r   <module>ru      s   # * !      
 
 
4tyy   2
 2
 2
j  !

 
  "
 "#

 
  $
 !"

 
  #
. #$

 
  %
r   