
    {hcB              
          U d dl Z d dlmZ d dlmZmZ d dlZd dlm	Z	m
Z
 d dlmZmZm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mZmZ d d
lmZ  ej<                  dd      Z e j@                  d      Z! G d de      Z" G d de      Z# G d de      Z$ G d de      Z% G d de      Z&deejN                  ejP                  f   ejR                  z  e*z  ddfdZ+dedef   dejX                  dejZ                  ej\                  z  fdZ/dedef   dej`                  dejb                  ej\                  z  fd Z2dedef   dejf                  ej\                  z  fd!Z4dejj                  ddfd"Z6 eejP                  ej\                  z        Z7eejP                  ej\                  z     e8d#<    G d$ deejr                  ejt                  ejP                  ejN                  ejR                  f         Z;y)%    N)	timedelta)AnyProtocol)MemoryObjectReceiveStreamMemoryObjectSendStream)SchemaErrorValidationErrorvalidate)AnyUrlTypeAdapter)RequestContext)SessionMessage)BaseSessionProgressFnTRequestResponder)SUPPORTED_PROTOCOL_VERSIONSmcpz0.1.0)nameversionclientc                   l    e Zd Zdedef   dej                  dej                  ej                  z  fdZ	y)SamplingFnTcontextClientSessionparamsreturnc                    K   y wN selfr   r   s      S/var/www/html/hubwallet-dev/venv/lib/python3.12/site-packages/mcp/client/session.py__call__zSamplingFnT.__call__   s      7:   N)
__name__
__module____qualname__r   r   typesCreateMessageRequestParamsCreateMessageResult	ErrorDatar#   r       r"   r   r      sB    : 45: 00: 
	"	"U__	4	:r,   r   c                   l    e Zd Zdedef   dej                  dej                  ej                  z  fdZ	y)ElicitationFnTr   r   r   r   c                    K   y wr   r   r    s      r"   r#   zElicitationFnT.__call__   s      03r$   N)
r%   r&   r'   r   r   r(   ElicitRequestParamsElicitResultr+   r#   r   r,   r"   r.   r.      sB    3 453 ))3 
		eoo	-	3r,   r.   c                   T    e Zd Zdedef   dej                  ej                  z  fdZy)ListRootsFnTr   r   r   c                    K   y wr   r   )r!   r   s     r"   r#   zListRootsFnT.__call__&   s	     25r$   N)	r%   r&   r'   r   r   r(   ListRootsResultr+   r#   r   r,   r"   r3   r3   %   s0    6%os&:;6				06r,   r3   c                   0    e Zd Zdej                  ddfdZy)
LoggingFnTr   r   Nc                    K   y wr   r   )r!   r   s     r"   r#   zLoggingFnT.__call__,         r$   )r%   r&   r'   r(    LoggingMessageNotificationParamsr#   r   r,   r"   r7   r7   +   s    66 
r,   r7   c                   n    e Zd Zdeej
                  ej                  f   ej                  z  ez  ddfdZ	y)MessageHandlerFnTmessager   Nc                    K   y wr   r   )r!   r=   s     r"   r#   zMessageHandlerFnT.__call__3   r9   r$   )
r%   r&   r'   r   r(   ServerRequestClientResultServerNotification	Exceptionr#   r   r,   r"   r<   r<   2   s@    !%"5"5u7I7I"IJUMeMeehqq 
r,   r<   r=   r   c                 \   K   t         j                  j                          d {    y 7 wr   )anyiolowlevel
checkpoint)r=   s    r"   _default_message_handlerrG   9   s      ..
#
#
%%%s   ",*,r   r   r   c                 T   K   t        j                  t         j                  d      S w)NzSampling not supportedcoder=   r(   r+   INVALID_REQUESTr   r   s     r"   _default_sampling_callbackrN   ?   s%      ??""(    &(c                 T   K   t        j                  t         j                  d      S w)NzElicitation not supportedrI   rK   rM   s     r"   _default_elicitation_callbackrQ   I   s%      ??""+ rO   c                 T   K   t        j                  t         j                  d      S w)NzList roots not supportedrI   rK   )r   s    r"   _default_list_roots_callbackrS   S   s%      ??""* rO   c                    K   y wr   r   r   s    r"   _default_logging_callbackrV   \   s      	r$   ClientResponsec                   n    e Zd Z	 	 	 	 	 	 	 d1deeez     dee   dedz  dedz  de	dz  de
dz  dedz  d	edz  d
ej                  dz  ddf fdZdej                   fdZdej$                  fdZ	 	 d2deez  dededz  dedz  ddf
dZdej0                  dej$                  fdZd3dedz  dej4                  fdZd3dedz  dej8                  fdZdedej>                  fdZ dedej$                  fdZ!dedej$                  fdZ"	 	 	 d4dede#ee$f   dz  dedz  de%dz  dejL                  f
d Z'ded!ejL                  ddfd"Z(d3dedz  dejR                  fd#Z*d3dede#eef   dz  dejV                  fd$Z,	 d3d%ejZ                  ej\                  z  d&e#eef   d'e#eef   dz  dej^                  fd(Z0d3dedz  dejb                  fd)Z2d5d*Z3d+e4ejj                  ejl                  f   ddfd,Z7d-e4ejj                  ejl                  f   ejp                  z  ez  ddfd.Z9d/ejp                  ddfd0Z: xZ;S )6r   Nread_streamwrite_streamread_timeout_secondssampling_callbackelicitation_callbacklist_roots_callbacklogging_callbackmessage_handlerclient_infor   c
                 (   t         
|   ||t        j                  t        j                  |       |	xs t
        | _        |xs t        | _        |xs t        | _
        |xs t        | _        |xs t        | _        |xs t        | _        i | _        y )N)r[   )super__init__r(   r?   rA   DEFAULT_CLIENT_INFO_client_inforN   _sampling_callbackrQ   _elicitation_callbackrS   _list_roots_callbackrV   _logging_callbackrG   _message_handler_tool_output_schemas)r!   rY   rZ   r[   r\   r]   r^   r_   r`   ra   	__class__s             r"   rd   zClientSession.__init__n   s     	$$!5 	 	
 (>+>"3"Q7Q%9%Z=Z"$7$W;W!!1!N5N / K3KFH!r,   c                   K   | j                   t        urt        j                         nd }| j                  t
        urt        j                         nd }| j                  t        urt        j                  d      nd }| j                  t        j                  t        j                  dt        j                  t        j                  t        j                  ||d |      | j                                     t        j"                         d {   }|j$                  t&        vrt)        d|j$                         | j+                  t        j,                  t        j.                  d	                   d {    |S 7 p7 w)
NT)listChanged
initialize)samplingelicitationexperimentalroots)protocolVersioncapabilities
clientInfomethodr   z.Unsupported protocol version from the server: znotifications/initializedry   )rg   rN   r(   SamplingCapabilityrh   rQ   ElicitationCapabilityri   rS   RootsCapabilitysend_requestClientRequestInitializeRequestInitializeRequestParamsLATEST_PROTOCOL_VERSIONClientCapabilitiesrf   InitializeResultru   r   RuntimeErrorsend_notificationClientNotificationInitializedNotification)r!   rq   rr   rt   results        r"   rp   zClientSession.initialize   s]    151H1HPj1j5++-pt-1-G-GOl-lE'')rv 	 ((0LL !!d3 	 ((''' 88(-(E(E%*%=%=%-(3)-"'	& $(#4#4	 ""!
 
& !!)DD!OPVPfPfOghii$$$$U%B%BJe%fg
 	
 	
 5
,	
s%   DFE>A)F7F 8F Fc                    K   | j                  t        j                  t        j                  d            t        j                         d{   S 7 w)zSend a ping request.pingrz   N)r~   r(   r   PingRequestEmptyResultr!   s    r"   	send_pingzClientSession.send_ping   sM     &&!!!
 
 
 	
 
s   AAAAprogress_tokenprogresstotalr=   c                    K   | j                  t        j                  t        j                  dt        j                  ||||                         d{    y7 w)zSend a progress notification.znotifications/progress)progressTokenr   r   r=   rx   N)r   r(   r   ProgressNotificationProgressNotificationParams)r!   r   r   r   r=   s        r"   send_progress_notificationz(ClientSession.send_progress_notification   sY      $$$$**3 ;;&4!)# '	

 	
 	
s   AAAAlevelc           
         K   | j                  t        j                  t        j                  dt        j                  |                  t        j
                         d{   S 7 w)z Send a logging/setLevel request.zlogging/setLevel)r   rx   N)r~   r(   r   SetLevelRequestSetLevelRequestParamsr   )r!   r   s     r"   set_logging_levelzClientSession.set_logging_level   s[     &&%%- 66UC 
 
 	
 
   A A)"A'#A)cursorc           
         K   | j                  t        j                  t        j                  d|t        j                  |      nd            t        j
                         d{   S 7 w)zSend a resources/list request.zresources/listNr   rx   )r~   r(   r   ListResourcesRequestPaginatedRequestParamsListResourcesResultr!   r   s     r"   list_resourceszClientSession.list_resources   sc     &&**+JPJ\577vFbf %%
 
 	
 
   A$A-&A+'A-c           
         K   | j                  t        j                  t        j                  d|t        j                  |      nd            t        j
                         d{   S 7 w)z(Send a resources/templates/list request.zresources/templates/listNr   rx   )r~   r(   r   ListResourceTemplatesRequestr   ListResourceTemplatesResultr   s     r"   list_resource_templatesz%ClientSession.list_resource_templates   sc     &&225JPJ\577vFbf --
 
 	
 
r   uric           
         K   | j                  t        j                  t        j                  dt        j                  |                  t        j
                         d{   S 7 w)zSend a resources/read request.zresources/readr   rx   N)r~   r(   r   ReadResourceRequestReadResourceRequestParamsReadResourceResultr!   r   s     r"   read_resourcezClientSession.read_resource   s[     &&))+ ::sC $$
 
 	
 
r   c           
         K   | j                  t        j                  t        j                  dt        j                  |                  t        j
                         d{   S 7 w)z#Send a resources/subscribe request.zresources/subscriber   rx   N)r~   r(   r   SubscribeRequestSubscribeRequestParamsr   r   s     r"   subscribe_resourcez ClientSession.subscribe_resource  s[     &&&&0 77C@ 
 
 	
 
r   c           
         K   | j                  t        j                  t        j                  dt        j                  |                  t        j
                         d{   S 7 w)z%Send a resources/unsubscribe request.zresources/unsubscriber   rx   N)r~   r(   r   UnsubscribeRequestUnsubscribeRequestParamsr   r   s     r"   unsubscribe_resourcez"ClientSession.unsubscribe_resource  s[     &&((2 99cB 
 
 	
 
r   r   	argumentsprogress_callbackc                 2  K   | j                  t        j                  t        j                  dt        j                  ||                  t        j
                  ||       d{   }|j                  s| j                  ||       d{    |S 7 ,7 w)zBSend a tools/call request with optional progress callback support.z
tools/callr   r   rx   )request_read_timeout_secondsr   N)r~   r(   r   CallToolRequestCallToolRequestParamsCallToolResultisError_validate_tool_result)r!   r   r   r[   r   r   s         r"   	call_toolzClientSession.call_tool  s      ((%%' 66!"+   )=/ ) 
 
 ~~,,T6:::%
  ;s$   A$B&B'%BBBBr   c                   K   || j                   vr| j                          d{    d}|| j                   v r| j                   j                  |      }nt        j	                  d| d       |3|j
                  t        d| d      	 t        |j
                  |       yy7 # t        $ r}t        d| d|       d}~wt        $ r}t        d| d|       d}~ww xY ww)zKValidate the structured content of a tool result against its output schema.NzTool z= not listed by server, cannot validate any structured contentz; has an output schema but did not return structured contentz,Invalid structured content returned by tool z: zInvalid schema for tool )
rl   
list_toolsgetloggerwarningstructuredContentr   r
   r	   r   )r!   r   r   output_schemaes        r"   r   z#ClientSession._validate_tool_result9  s     t000//###4,,, 5599$?MNNU4&(efg$''/"U4&0k#lmmK11=A	 % $ # _"%QRVQWWYZ[Y\#]^^ K"%=dV2aS#IJJKs@   "C%B$A&C%B& "C%&	C"/C  C"CC""C%c           
         K   | j                  t        j                  t        j                  d|t        j                  |      nd            t        j
                         d{   S 7 w)zSend a prompts/list request.zprompts/listNr   rx   )r~   r(   r   ListPromptsRequestr   ListPromptsResultr   s     r"   list_promptszClientSession.list_promptsO  sc     &&(()JPJ\577vFbf ##
 
 	
 
r   c                    K   | j                  t        j                  t        j                  dt        j                  ||                  t        j
                         d{   S 7 w)zSend a prompts/get request.zprompts/getr   rx   N)r~   r(   r   GetPromptRequestGetPromptRequestParamsGetPromptResult)r!   r   r   s      r"   
get_promptzClientSession.get_prompt[  s]     &&&&( 77TYW !!
 
 	
 
s   A!A*#A($A*refargumentcontext_argumentsc                 4  K   d}|t        j                  |      }| j                  t        j                  t        j                  dt        j
                  |t        j                  di ||                  t         j                         d{   S 7 w)z#Send a completion/complete request.N)r   zcompletion/complete)r   r   r   rx   r   )r(   CompletionContextr~   r   CompleteRequestCompleteRequestParamsCompletionArgumentCompleteResult)r!   r   r   r   r   s        r"   completezClientSession.completeg  s      (--8IJG&&%%0 66!&!9!9!EH!E '	   
 
 	
 
s   BBBBc           
      J  K   | j                  t        j                  t        j                  d|t        j                  |      nd            t        j
                         d{   }|j                  D ]%  }|j                  | j                  |j                  <   ' |S 7 :w)zSend a tools/list request.z
tools/listNr   rx   )
r~   r(   r   ListToolsRequestr   ListToolsResulttoolsoutputSchemarl   r   )r!   r   r   tools       r"   r   zClientSession.list_tools  s     ((&&'JPJ\577vFbf !!
 
 LL 	ED373D3DD%%dii0	E 
s   A$B#&B!';B#c                    K   | j                  t        j                  t        j                  d                   d{    y7 w)z'Send a roots/list_changed notification.z notifications/roots/list_changedrz   N)r   r(   r   RootsListChangedNotificationr   s    r"   send_roots_list_changedz%ClientSession.send_roots_list_changed  s=     $$$$22=
 	
 	
s   <AAA	responderc                 d  K   t        t        t        f   |j                  |j                  | d       }|j
                  j                  xt        j                  d xX\  } |5  | j                  ||       d {   }t        j                  |      }|j                  |       d {    d d d        y  xt        j                  d xX\  } |5  | j                  ||       d {   }t        j                  |      }|j                  |       d {    d d d        y  xt        j                  d xV\    |5  | j!                  |       d {   }t        j                  |      }|j                  |       d {    d d d        y  t        j"                  d xM\   |5  |j                  t        j$                  t        j&                                      d {   cd d d        S  y 7 w7 L# 1 sw Y   y xY w7 7 # 1 sw Y   y xY w7 7 # 1 sw Y   y xY w7 B# 1 sw Y   y xY ww)N)
request_idmetasessionlifespan_contextrU   r   )root)r   r   r   r   request_metarequestr   r(   CreateMessageRequestrg   rW   validate_pythonrespondElicitRequestrh   ListRootsRequestri   r   r@   r   )r!   r   ctxr   responseclient_responses         r"   _received_requestzClientSession._received_request  s    ]C/0 ++''!	
 $$:++: =%)%<%<S&%IIH&4&D&DX&NO#++O<<<= = ; 4$$3 =%)%?%?V%LLH&4&D&DX&NO#++O<<<= = 4 *'') =%)%>%>s%CCH&4&D&DX&NO#++O<<<= = * ""$ a!*!2!253E3E5K\K\K^3_!``a a %!  J<= =  M<= =  D<= = aa as   A H0"G58G/9-G5&G2'G5+$H0H%H&-HHH#H0;HH-H>H?H!H0$;H$H" H$#H0/G52G55G>:H0HHHH0HHHH0"H$$H-)H0reqc                 B   K   | j                  |       d{    y7 w)z>Handle incoming messages by forwarding to the message handler.N)rk   )r!   r   s     r"   _handle_incomingzClientSession._handle_incoming  s     
 ##C(((s   notificationc                    K   |j                   t        j                  d x\  }| j                  |       d{    y 	 y7 w)z%Handle notifications from the server.rU   N)r   r(   LoggingMessageNotificationrj   )r!   r   r   s      r"   _received_notificationz$ClientSession._received_notification  sB      11@,,V444 A 5s   6AA	A)NNNNNNN)NNr   )NNN)r   N)<r%   r&   r'   r   r   rB   r   r   r   r.   r3   r7   r<   r(   Implementationrd   r   rp   r   r   strintfloatr   LoggingLevelr   r   r   r   r   r   r   r   r   r   dictr   r   r   r   r   r   r   r   r   ResourceTemplateReferencePromptReferencer   r   r   r   r   r   r?   r@   r   rA   r   r  __classcell__)rm   s   @r"   r   r   e   s    26046:37.24837I.~	/IJI -^<I ($.	I
 '-I -t3I *D0I %t+I +T1I ))D0I 
I6(%"8"8 (T	
!2!2 	
 #"
c	
 
 t|	

 t
 

,

U-?-? 

EDUDU 



3: 

AZAZ 



C$J 

%JkJk 



v 

%2J2J 



F 

u7H7H 



f 

9J9J 

 ,01504 S>D( ($.	
 '- 
		:K KU=Q=Q KVZ K,

t 

u?V?V 



S 

T#s(^d5J 

V[VkVk 

  48	
,,u/D/DD
 sCx.
  S>D0	

 
		
2sTz U=R=R &
a1A%BUBUW\WiWiBi1j aos a>)e1153E3EEFIaIaadmm) 
)9Q9Q VZ r,   )<loggingdatetimer   typingr   r   anyio.lowlevelrD   anyio.streams.memoryr   r   
jsonschemar   r	   r
   pydanticr   r   	mcp.typesr(   mcp.shared.contextr   mcp.shared.messager   mcp.shared.sessionr   r   r   mcp.shared.versionr   r  re   	getLoggerr   r   r.   r3   r7   r<   r?   r@   rA   rB   rG   r)   r*   r+   rN   r0   r1   rQ   r5   rS   r:   rV   rW   __annotations__r   r   r   r   r,   r"   <module>r     s        R = = (  - - I I :*e**wG 			8	$:( :3X 368 6  &e1153E3EEFIaIaadmm&	&OS01,, 0OS01%% %//)OS01
U__,	22			 EPPUPbPbejetetPtDuE..@A ue    		"er,   