§
    öŽ’jÃ   ã                   óp  — d dl 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Zd dlZd dlmZ d dlmZ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  e j        e¦  «        Zdedefd„Z dededz  fd„Z!edddeddfdede"eef         dz  de#de#dedej$        dz  deegdf         dz  fd„¦   «         Z%dS )é    N)ÚCallable)Úasynccontextmanager)ÚAny)Úparse_qsÚurljoinÚurlparse)Ú
TaskStatus)ÚMemoryObjectReceiveStreamÚMemoryObjectSendStream)ÚSSEErrorÚaconnect_sse)ÚMcpHttpClientFactoryÚcreate_mcp_http_client)ÚSessionMessageÚurlÚreturnc                 óF   — t          | t          | ¦  «        j        ¦  «        S )N)r   r   Úpath)r   s    ú<C:\Projects\DSCons\.venv\Lib\site-packages\mcp\client\sse.pyÚremove_request_paramsr      s   € Ý�3� ™œÔ*Ñ+Ô+Ð+ó    Úendpoint_urlc                 ó¸   — t          t          | ¦  «        j        ¦  «        }|                     dd g¦  «        d         p|                     dd g¦  «        d         S )NÚ	sessionIdr   Ú
session_id)r   r   ÚqueryÚget)r   Úquery_paramss     r   Ú!_extract_session_id_from_endpointr      sV   € Ý�H \Ñ2Ô2Ô8Ñ9Ô9€LØ×Ò˜K¨$¨Ñ0Ô0°Ô3Ð`°|×7GÒ7GÈÐW[ÐV\Ñ7]Ô7]Ð^_Ô7`Ð`r   é   i,  ÚheadersÚtimeoutÚsse_read_timeoutÚhttpx_client_factoryÚauthÚon_session_createdc           	     ó&  ‡ ‡‡‡‡‡‡K  — t          j        d¦  «        \  Š}t          j        d¦  «        \  ŠŠt          j        ¦   «         4 ƒd{V —†}	 t                               dt          ‰ ¦  «        › �¦  «          |||t          j        ||¬¦  «        ¬¦  «        4 ƒd{V —†	 Št          ‰d‰ ¦  «        4 ƒd{V —†	 Š‰j	         
                    ¦   «          t                               d¦  «         t           j        fdt          t                   fˆˆˆˆ fd	„}	d
t          fˆˆˆfd„}
|                     |	¦  «        ƒ d{V —†}t                               d|› �¦  «         |                     |
|¦  «         	 |‰fW V — |j                             ¦   «          n# |j                             ¦   «          w xY w	 ddd¦  «        ƒd{V —† n# 1 ƒd{V —†swxY w Y   ddd¦  «        ƒd{V —† n# 1 ƒd{V —†swxY w Y   ‰                     ¦   «         ƒ d{V —† ‰                     ¦   «         ƒ d{V —† n9# ‰                     ¦   «         ƒ d{V —† ‰                     ¦   «         ƒ d{V —† w xY w	 ddd¦  «        ƒd{V —† dS # 1 ƒd{V —†swxY w Y   dS )a9  
    Client transport for SSE.

    `sse_read_timeout` determines how long (in seconds) the client will wait for a new
    event before disconnecting. All other HTTP operations are controlled by `timeout`.

    Args:
        url: The SSE endpoint URL.
        headers: Optional headers to include in requests.
        timeout: HTTP timeout for regular operations.
        sse_read_timeout: Timeout for SSE read operations.
        auth: Optional HTTPX authentication handler.
        on_session_created: Optional callback invoked with the session ID when received.
    r   NzConnecting to SSE endpoint: )Úread)r!   r%   r"   ÚGETzSSE connection establishedÚtask_statusc              “   ó†  •K  — 	 ‰                      ¦   «         2 3 d {V —†}t                               d|j        › �¦  «         |j        xdk    rÔ t	          ‰|j        ¦  «        }t                               d|› �¦  «         t          ‰¦  «        }t          |¦  «        }|j        |j        k    s|j        |j        k    r.d|› �}t           	                    |¦  «         t          |¦  «        ‚‰rt          |¦  «        }|r ‰|¦  «         |                      |¦  «         �Œ	dk    rÅ|j        s�Œ	 t          j                             |j        ¦  «        }t                               d|› �¦  «         nM# t           $ r@}t                               d¦  «         ‰                     |¦  «        ƒ d {V —† Y d }~�ŒŸd }~ww xY wt'          |¦  «        }	‰                     |	¦  «        ƒ d {V —† �ŒÓ	 t                               d|j        › �¦  «         �Œø6 nu# t*          $ r!}
t                               d	¦  «         |
‚d }
~
wt           $ r?}t                               d
¦  «         ‰                     |¦  «        ƒ d {V —† Y d }~nd }~ww xY w‰                     ¦   «         ƒ d {V —† d S # ‰                     ¦   «         ƒ d {V —† w xY w)NzReceived SSE event: ÚendpointzReceived endpoint URL: z2Endpoint origin does not match connection origin: ÚmessagezReceived server message: zError parsing server messagezUnknown SSE event: zEncountered SSE exceptionzError in sse_reader)Ú	aiter_sseÚloggerÚdebugÚeventr   Údatar   ÚnetlocÚschemeÚerrorÚ
ValueErrorr   ÚstartedÚtypesÚJSONRPCMessageÚmodel_validate_jsonÚ	ExceptionÚ	exceptionÚsendr   Úwarningr   Úaclose)r*   Ússer   Ú
url_parsedÚendpoint_parsedÚ	error_msgr   r-   ÚexcÚsession_messageÚsse_excÚevent_sourcer&   Úread_stream_writerr   s              €€€€r   Ú
sse_readerzsse_client.<locals>.sse_readerL   sm  øè è € ð4>Ø-9×-CÒ-CÑ-EÔ-Eð +Zð +Zð +Zð +Zð +Zð +Zð +Z cÝ &§¢Ð-OÀCÄIÐ-OÐ-OÑ PÔ PÐ PØ&)¤iØ)3¨ª¨¨Ý7>¸sÀCÄHÑ7MÔ7M¨Ý(.¯ªÐ5]È|Ð5]Ð5]Ñ(^Ô(^Ð(^å5=¸c±]´]¨
Ý:BÀ<Ñ:PÔ:P¨à,6Ô,=ÀÔAWÒ,WÐ,WØ/9Ô/@ÀOÔDZÒ/ZÐ/Zð 1tÐeqÐ0sÐ0sð -6õ -3¯LªL¸Ñ,CÔ,CÐ,CÝ2<¸YÑ2GÔ2GÐ,Gà+=ð )OÝ9ZÐ[gÑ9hÔ9h¨JØ/9ð -OØ0BÐ0BÀ:Ñ0NÔ0NÐ0Nà(3×(;Ò(;¸LÑ(IÔ(IÐ(IÑ(Ià)2ª¨à/2¬xð )5Ù,4ð)5Ý6;Ô6J×6^Ò6^Ø03´ñ7.ô 7.¨Gõ -3¯LªLÐ9^ÐU\Ð9^Ð9^Ñ,_Ô,_Ð,_Ð,_øÝ/8ð )5ð )5ð )5Ý,2×,<Ò,<Ð=[Ñ,\Ô,\Ð,\Ø2D×2IÒ2IÈ#Ñ2NÔ2NÐ,NÐ,NÐ,NÐ,NÐ,NÐ,NÐ,NØ,4¨H¨H¨H©Høøøøð)5øøøõ
 ;IÈÑ:QÔ:Q¨Ø.@×.EÒ.EÀoÑ.VÔ.VÐ(VÐ(VÐ(VÐ(VÐ(VÐ(VÐ(VÑ(VØ)*Ý(.¯ªÐ7XÈSÌYÐ7XÐ7XÑ(YÔ(YÐ(YÑ(YðW .FÐ-EøõX  (ð *ð *ð *Ý"×,Ò,Ð-HÑIÔIÐIØ")˜MøøøøÝ(ð ?ð ?ð ?Ý"×,Ò,Ð-BÑCÔCÐCØ"4×"9Ò"9¸#Ñ">Ô">Ð>Ð>Ð>Ð>Ð>Ð>Ð>Ð>Ð>Ð>Ð>Ð>øøøøð?øøøð #5×";Ò";Ñ"=Ô"=Ð=Ð=Ð=Ð=Ð=Ð=Ð=Ð=Ð=øÐ"4×";Ò";Ñ"=Ô"=Ð=Ð=Ð=Ð=Ð=Ð=Ð=Ð=øøøsr   …H ™HŸDH Ä1AE3Å2H Å3
F=Å=5F8Æ2H Æ8F=Æ=AH ÈJ$ È
JÈH9È9JÉ5J É;J$ Ê JÊJ$ Ê$K r   c           
   “   ó\  •K  — 	 ‰4 ƒd {V —† ‰2 3 d {V —†}t                                d|› �¦  «         ‰                     | |j                             ddd¬¦  «        ¬¦  «        ƒ d {V —†}|                     ¦   «          t                                d|j        › �¦  «         Œ“6 	 d d d ¦  «        ƒd {V —† n# 1 ƒd {V —†swxY w Y   n*# t          $ r t                                d¦  «         Y nw xY w‰ 	                    ¦   «         ƒ d {V —† d S # ‰ 	                    ¦   «         ƒ d {V —† w xY w)NzSending client message: TÚjson)Úby_aliasÚmodeÚexclude_none)rK   z"Client message sent successfully: zError in post_writer)
r/   r0   Úpostr-   Ú
model_dumpÚraise_for_statusÚstatus_coder;   r<   r?   )r   rE   ÚresponseÚclientÚwrite_streamÚwrite_stream_readers      €€€r   Úpost_writerzsse_client.<locals>.post_writer…   s_  øè è € ð8Ø':ð nð nð nð nð nð nð nð nØ=Pð !nð !nð !nð !nð !nð !nð !n¨/Ý$*§L¢LÐ1]ÈOÐ1]Ð1]Ñ$^Ô$^Ð$^Ø5;·[²[Ø(4Ø-<Ô-D×-OÒ-OØ59Ø17Ø9=ð .Pñ .*ô .*ð 6Añ 6&ô 6&ð 0&ð 0&ð 0&ð 0&ð 0&ð 0& Hð %-×$=Ò$=Ñ$?Ô$?Ð$?Ý$*§L¢LÐ1lÐV^ÔVjÐ1lÐ1lÑ$mÔ$mÐ$mÐ$mð >QÐ=Pðnð nð nñ nô nð nð nð nð nð nð nð nð nð nð nð nð nð nð nð nð nð nð nøøøð nð nð nð nøøõ  )ð Eð Eð EÝ"×,Ò,Ð-CÑDÔDÐDÐDÐDðEøøøð #/×"5Ò"5Ñ"7Ô"7Ð7Ð7Ð7Ð7Ð7Ð7Ð7Ð7Ð7ø ,×"5Ò"5Ñ"7Ô"7Ð7Ð7Ð7Ð7Ð7Ð7Ð7Ð7øøøsW   …C	 �B7�B#–BB7Â%C	 Â7
CÃC	 ÃCÃC	 ÃD Ã	$C0Ã-D Ã/C0Ã0D ÄD+z(Starting post writer with endpoint URL: )ÚanyioÚcreate_memory_object_streamÚcreate_task_groupr/   r0   r   ÚhttpxÚTimeoutr   rS   rQ   ÚTASK_STATUS_IGNOREDr	   ÚstrÚstartÚ
start_soonÚcancel_scopeÚcancelr?   )r   r!   r"   r#   r$   r%   r&   Úread_streamÚtgrI   rW   r   rT   rG   rH   rU   rV   s   `     `     @@@@@r   Ú
sse_clientre      s+  øøøøøøøè è € õ< ',Ô&GÈÑ&JÔ&JÑ#Ð˜Ý(-Ô(IÈ!Ñ(LÔ(LÑ%€LÐ%åÔ&Ñ(Ô(ð e(ð e(ð e(ð e(ð e(ð e(ð e(¨Bðd	(Ý�LŠLÐTÕ8MÈcÑ8RÔ8RÐTÐTÑUÔUÐUØ+Ð+Ø dµE´MÀ'ÐP`Ð4aÑ4aÔ4aðñ ô ð _1ð _1ð _1ð _1ð _1ð _1ð _1ð _1àÝ'ØØØñô ð \1ð \1ð \1ð \1ð \1ð \1ð \1ð \1ð "Ø Ô)×:Ò:Ñ<Ô<Ð<Ý—L’LÐ!=Ñ>Ô>Ð>õ 8=Ô7Pð7>ð 7>Ý%/µ¤_ð7>ð 7>ð 7>ð 7>ð 7>ð 7>ð 7>ð 7>ð 7>ðr8½ð 8ð 8ð 8ð 8ð 8ð 8ð 8ð 8ð( *,¯ª°*Ñ)=Ô)=Ð#=Ð#=Ð#=Ð#=Ð#=Ð#=�LÝ—L’LÐ!ZÈLÐ!ZÐ!ZÑ[Ô[Ð[Ø—M’M +¨|Ñ<Ô<Ð<ð1Ø)¨<Ð7Ð7Ð7Ð7Ð7àœ×.Ò.Ñ0Ô0Ð0Ð0ø˜œ×.Ò.Ñ0Ô0Ð0Ð0øøøÐ0ðy\1ð \1ð \1ñ \1ô \1ð \1ð \1ð \1ð \1ð \1ð \1ð \1ð \1ð \1ð \1ð \1ð \1ð \1ð \1ð \1ð \1ð \1ð \1øøøð \1ð \1ð \1ð \1ð_1ð _1ð _1ñ _1ô _1ð _1ð _1ð _1ð _1ð _1ð _1ð _1ð _1ð _1ð _1ð _1ð _1ð _1ð _1ð _1ð _1ð _1ð _1øøøð _1ð _1ð _1ð _1ðB %×+Ò+Ñ-Ô-Ð-Ð-Ð-Ð-Ð-Ð-Ð-Ø×%Ò%Ñ'Ô'Ð'Ð'Ð'Ð'Ð'Ð'Ð'Ð'øð %×+Ò+Ñ-Ô-Ð-Ð-Ð-Ð-Ð-Ð-Ð-Ø×%Ò%Ñ'Ô'Ð'Ð'Ð'Ð'Ð'Ð'Ð'Ð'øøøÐ'ðKe(ð e(ð e(ñ e(ô e(ð e(ð e(ð e(ð e(ð e(ð e(ð e(ð e(ð e(ð e(ð e(ð e(ð e(ð e(ð e(ð e(ð e(ð e(ð e(øøøð e(ð e(ð e(ð e(ð e(ð e(sŒ   ÁJ ÁAH3Â&G-Â?B8G
Å8FÅ?G
ÆF4	Æ4G
Æ8G-Ç

GÇG-ÇGÇG-ÇH3Ç-
G7	Ç7H3Ç:G7	Ç;H3Ç>5J È36I)É)J Ê 
J
ÊJ
)&ÚloggingÚcollections.abcr   Ú
contextlibr   Útypingr   Úurllib.parser   r   r   rX   r[   Ú	anyio.abcr	   Úanyio.streams.memoryr
   r   Ú	httpx_sser   r   Ú	mcp.typesr8   Úmcp.shared._httpx_utilsr   r   Úmcp.shared.messager   Ú	getLoggerÚ__name__r/   r^   r   r   ÚdictÚfloatÚAuthre   © r   r   ú<module>rw      s
  ðØ €€€Ø $Ð $Ð $Ð $Ð $Ð $Ø *Ð *Ð *Ð *Ð *Ð *Ø Ð Ð Ð Ð Ð Ø 4Ð 4Ð 4Ð 4Ð 4Ð 4Ð 4Ð 4Ð 4Ð 4à €€€Ø €€€Ø  Ð  Ð  Ð  Ð  Ð  Ø RÐ RÐ RÐ RÐ RÐ RÐ RÐ RØ ,Ð ,Ð ,Ð ,Ð ,Ð ,Ð ,Ð ,à Ð Ð Ð Ð Ð Ø PÐ PÐ PÐ PÐ PÐ PÐ PÐ PØ -Ð -Ð -Ð -Ð -Ð -à	ˆÔ	˜8Ñ	$Ô	$€ð,˜sð , sð ,ð ,ð ,ð ,ða°Cð a¸CÀ$¹Jð að að að að
 ð &*ØØ$Ø1GØ"Ø7;ðE(ð E(Ø	ðE(à�#�s�(Œ^˜dÑ"ðE(ð ðE(ð ð	E(ð
 /ðE(ð Œ*�tÑ
ðE(ð ! # ¨ Ô-°Ñ4ðE(ð E(ð E(ñ ÔðE(ð E(ð E(r   