xjjddlZddlmZddlmZddlmZddlmZm Z m Z ddl Z ddl Z ddl ZddlmZddl mZddlmZdd lmZdd lmZmZdd lmZej6eZd ed efdZded edzfdZ edddeddfd ede!eefdzde"de"dede jFdzdeegdfdzfdZ$y)N)Callable)asynccontextmanager)Any)parse_qsurljoinurlparse) TaskStatus)SSEError) resync_tracer)create_context_streams)McpHttpClientFactorycreate_mcp_http_client)SessionMessageurlreturnc@t|t|jS)N)rrpath)rs b/mnt/ssd/data/Dropbox/adrian/sandbox/mcp-query/venv/lib/python3.12/site-packages/mcp/client/sse.pyremove_request_paramsrs 3 ** ++ endpoint_urlctt|j}|jddgdxs|jddgdS)N sessionIdr session_id)rrqueryget)r query_paramss r!_extract_session_id_from_endpointrsMH\2889L   K$ 0 3 `|7G7G W[V\7]^_7``rg@gr@headerstimeoutsse_read_timeouthttpx_client_factoryauthon_session_createdc  Ktjdt|||tj||4d{ j 4d{ j jtjdtttzd\}ttd\tjfdttf fd }d tf fd } 4d{|4d{4d{4d{tj4d{} | j!|d{ } tjd | | j#| | |f| j$j'dddd{dddd{dddd{dddd{dddd{t)d{dddd{dddd{y77707(7 7777#1d{ 7swYxYw7#1d{7swYxYw7#1d{7swYxYw7#1d{7swYxYw7#1d{7swYxYw77#1d{7swYxYw7#1d{7swYyxYww) aClient 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 (in seconds). sse_read_timeout: Timeout for SSE read operations (in seconds). httpx_client_factory: Factory function for creating the httpx2 client. auth: Optional httpx2 authentication handler. on_session_created: Optional callback invoked with the session ID when received. zConnecting to SSE endpoint: )read)rr#r NzSSE connection establishedr task_statusc0K 23d{}tjd|j|jxdk(rt|j}tjd|t }t |}|j |j k7s|j|jk7r%d|}tj|t| rt|}|r ||j|dk(rx|js tjj|jd}tjd|t%|} j#| d{} tj'd |j7#t$r:}tj!d  j#|d{7Yd}~d}~wwxYw7t6nh#t($r} tj!d | d} ~ wt$r9}tj!d  j#|d{7Yd}~nd}~wwxYw j+d{7y# j+d{7wxYww) NzReceived SSE event: endpointzReceived endpoint URL: z2Endpoint origin does not match connection origin: messageF)by_namezReceived server message: zError parsing server messagezUnknown SSE event: zEncountered SSE exceptionzError in sse_reader)loggerdebugeventrdatarnetlocschemeerror ValueErrorrstartedtypesjsonrpc_message_adapter validate_json Exception exceptionsendrwarningr aclose)r'sser url_parsedendpoint_parsed error_msgrr*excsession_messagesse_exc event_sourcer$read_stream_writerrs r sse_readerzsse_client..sse_readerAs>26%1)R)Rc ';CII;%GH!ii!+/6sCHH/E & /F|n-U V-5c] 2:<2H$.$5$59O9O$O'1'8'8O+G6)G4, G/5)G*G!G*$G6*G//G64G65I86 I?H I")I I II8II8J1I42J8J J JJrc lK 4d{4d{dtddffd }23d{}j}|Ktj4d{}|j |j ||dddd{b||d{s777r7I7#1d{7swYxYw7$6dddd{7n#1d{7swYnxYwdddd{7y#1d{7swYyxYw#t $rtjdYywxYww)NrBrcKtjd|j|jj dddd{}|j tjd|j y77w)NzSending client message: Tjson)by_aliasmode exclude_unset)rIz"Client message sent successfully: )r,r-postr* model_dumpraise_for_status status_code)rBresponseclientrs r _send_messagez6sse_client..post_writer.._send_messagezs"LL+COCT)UV-3[[ ,%4%<%<%G%G-1)/26&H&".9.(H%557"LL+MhNbNbMc)de(sA BB8BzError in post_writer) r last_contextanyiocreate_task_grouprun start_soonr8r,r9)rrSrB sender_ctxtgrR write_streamwrite_stream_readers` r post_writerzsse_client..post_writervsU=2EELEE f fTX f6IEE/)<)I)IJ)5+0+B+B+D!b!b$.NN2==-Q`$a!b!b!b'4O&D D D+EEE!b!b!b!b!b!E 6IEEEEEEEEEE,!=$$%;<=s&D4DB DC;B"C;CCB$ C'CB& C B* > C B( CB? C D"C;$C&C(C*B< 0B31B< 8CC C; CC;C& CC& "C;) D4C75D:D4;D D D  D D4 DD1.D40D11D4z(Starting post writer with endpoint URL: )r,r-rhttpx2Timeoutr=rQrOr rr8rUTASK_STATUS_IGNOREDr strrVstartrX cancel_scopecancelr )rrr r!r"r#r$ read_streamrFr]rZrrRrDrEr[r\s` ` @@@@@r sse_clientrfs0 LL/0Ec0J/KLM#dFNN7IY,Zj"j" ::c?g "g "l  ! ! 2 2 4 LL5 6.D^V_E_.`ab.c +  0F~0VWX0Y -L-@E@Y@Y3 6jo3 63 6j = =># ) ) ) ) ) )$ ) ) '') ) ) .0%'XXj%99  G ~VW k<8!<//&&( ) ) ) ) ) ) ) ) ) ) / ! !Og "g "j"j"j"g "t ) ) ) ) ) : ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) "Og "g "g "g "j"j"j"j"sAK+H2K+K)H5*K-BJ?H8 J? J&H; J&J H>J "I8 )I*I8 -I! II! I I AI / I! :I;I! ? I8 I I8  J I6 J  J&*J +J&/ J?:J$;J? J; J? KJ=K! K+,K-K+5K8J?;J&>J I8 I! I I! IIII! I8 !I3'I*(I3/I8 6J 8J >J?J J J&J! JJ! J&$J?&J8 ,J/-J8 4J?=K?K KK KK+K(K K($K+)%loggingcollections.abcr contextlibrtypingr urllib.parserrrrUr^ mcp_typesr5 anyio.abcr r mcp.shared._compatr mcp.shared._context_streamsr mcp.shared._httpx_utilsr rmcp.shared.messager getLogger__name__r,rarrdictfloatAuthrfrrrxs $*44  ,>P-   8 $,s,s,aCaC$Ja &*#1G#7;B" B" #s(^d "B"B" B" / B" ++  B"!#-4B"B"r