
    [ǻio                    (   d 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
 ddlZddlmZmZ ddlmZ dd	lmZmZmZmZmZmZ dd
lmZ ddlmZ ddlmZ eeeez     ee   f   Z edd       Z!e	 	 	 	 	 	 	 	 d	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 dd       Z"y)z
In-memory transports
    )annotations)AsyncGenerator)asynccontextmanager)	timedelta)AnyN)MemoryObjectReceiveStreamMemoryObjectSendStream)ClientSessionElicitationFnTListRootsFnT
LoggingFnTMessageHandlerFnTSamplingFnT)Server)FastMCP)SessionMessagec            
    b  K   t        j                  t        t        z     d      \  } }t        j                  t        t        z     d      \  }}||f}|| f}|4 d{    |4 d{    |4 d{    | 4 d{    ||f ddd      d{    ddd      d{    ddd      d{    ddd      d{    y7 m7 d7 [7 R7 =# 1 d{  7  sw Y   MxY w7 D# 1 d{  7  sw Y   TxY w7 K# 1 d{  7  sw Y   [xY w7 R# 1 d{  7  sw Y   yxY ww)z
    Creates a pair of bidirectional memory streams for client-server communication.

    Returns:
        A tuple of (client_streams, server_streams) where each is a tuple of
        (read_stream, write_stream)
       N)anyiocreate_memory_object_streamr   	Exception)server_to_client_sendserver_to_client_receiveclient_to_server_sendclient_to_server_receiveclient_streamsserver_streamss         O/opt/lhia/marcimex/agent/venv/lib/python3.12/site-packages/mcp/shared/memory.py#create_client_server_memory_streamsr      sD     7<6W6WXfirXr6stu6v336;6W6WXfirXr6stu6v33.0EFN.0EFN 	!- -- - 	!- - 		- - n,,- - - - - - - - - - - - - - - - - - - - - - - - - - - -s   AD/CD/!D(C)D,D3C
4D7C,>C?C,C	
C,C
C,D%C*&D*D5D6D:D/DD/DDC,C,C'CC'#C,*D,C>2C53C>:DDD		D
D	DD/D, D#!D,(D/c	                  K   t         t              r j                   t               4 d{   \  }	}
|	\  }}|
\  t	        j
                         4 d{   }|j                   fd       	 t        |||||||||	      4 d{   }|j                          d{    | ddd      d{    |j                  j                          ddd      d{    ddd      d{    y7 7 7 p7 Z7 G# 1 d{  7  sw Y   WxY w# |j                  j                          w xY w7 S# 1 d{  7  sw Y   cxY w7 Z# 1 d{  7  sw Y   yxY ww)zBCreates a ClientSession that is connected to a running MCP server.Nc                 J    j                  j                                S )N)raise_exceptions)runcreate_initialization_options)r"   serverserver_readserver_writes   r   <lambda>z<create_connected_server_and_client_session.<locals>.<lambda>K   s*    

 88:%5	 #      )	read_streamwrite_streamread_timeout_secondssampling_callbacklist_roots_callbacklogging_callbackmessage_handlerclient_infoelicitation_callback)
isinstancer   _mcp_serverr   r   create_task_group
start_soonr
   
initializecancel_scopecancel)r%   r,   r-   r.   r/   r0   r1   r"   r2   r   r   client_readclient_writetgclient_sessionr&   r'   s   `      `       @@r   *create_connected_server_and_client_sessionr>   1   s_      &'"##24 ) )8X$2!\$2!\ **, 	) 	)MM)( +!-)=&7(;%5$3 +)=
 ) ) $(33555(() ) &&(3	) 	)) ) )
	)) 6) ) ) ) &&(3	) 	) 	) 	)) ) ) )s   +E)C=E)&EC?ED=8DD
DD(D
)	D2D=D>DD=E'D;(E,E)7E8E)?EDDDDDDDD88D=;E=E	EE	EE)E&EE&"E))returnz9AsyncGenerator[tuple[MessageStream, MessageStream], None])NNNNNNFN)r%   zServer[Any] | FastMCPr,   ztimedelta | Noner-   zSamplingFnT | Noner.   zListRootsFnT | Noner/   zLoggingFnT | Noner0   zMessageHandlerFnT | Noner1   ztypes.Implementation | Noner"   boolr2   zElicitationFnT | Noner?   z#AsyncGenerator[ClientSession, None])#__doc__
__future__r   collections.abcr   
contextlibr   datetimer   typingr   r   anyio.streams.memoryr   r	   	mcp.typestypesmcp.client.sessionr
   r   r   r   r   r   
mcp.serverr   mcp.server.fastmcpr   mcp.shared.messager   tupler   MessageStreamr   r>    r)   r   <module>rQ      s    # * *    R  v v  & -/0JKMcdrMsst - -0  .2,0/3*.04/3"260)!0)*0) *0) -	0)
 (0) .0) -0) 0) 00) )0) 0)r)   