Ë
    ïñþi  ã                   óÀ   — d Z ddlZddlmZ ddlmZ ddlZddlZddlm	Z	m
Z
 ddlmZ ddlmZ e	 	 d
dej                  e   dz  dej                  e   dz  fd	„«       Zy)aY  
Stdio Server Transport Module

This module provides functionality for creating an stdio-based transport layer
that can be used to communicate with an MCP client through standard input/output
streams.

Example usage:
```
    async def run_server():
        async with stdio_server() as (read_stream, write_stream):
            # read_stream contains incoming JSONRPCMessages from stdin
            # write_stream allows sending JSONRPCMessages to stdout
            server = await create_my_server()
            await server.run(read_stream, write_stream, init_options)

    anyio.run(run_server)
```
é    N)Úasynccontextmanager)ÚTextIOWrapper)ÚMemoryObjectReceiveStreamÚMemoryObjectSendStream)ÚSessionMessageÚstdinÚstdoutc                óT  ‡ ‡‡‡K  — ‰ s9t        j                  t        t        j                  j
                  dd¬«      «      Š ‰s8t        j                  t        t        j                  j
                  d¬«      «      Št        j                  d«      \  Š}t        j                  d«      \  }Šˆˆ fd„}ˆˆfd„}t        j                  «       4 ƒd{  –—† }|j                  |«       |j                  |«       ||f­–— ddd«      ƒd{  –—†  y7 Œ>7 Œ# 1 ƒd{  –—†7  sw Y   yxY w­w)	z�
    Server transport for stdio: this communicates with an MCP client by reading
    from the current process' stdin and writing to stdout.
    zutf-8Úreplace)ÚencodingÚerrors)r   r   c               “   ó   •K  — 	 ‰4 ƒd {  –—†  ‰2 3 d {  –—† } 	 t         j                  j                  | «      }t        |«      }‰j	                  |«      ƒ d {  –—†  ŒN7 ŒT7 ŒK# t        $ r$}‰j	                  |«      ƒ d {  –—†7   Y d }~Œzd }~ww xY w7 Œ96 d d d «      ƒd {  –—†7   y # 1 ƒd {  –—†7  sw Y   y xY w# t        j                  $ r* t        j                  j                  «       ƒ d {  –—†7   Y y w xY w­w)N)
ÚtypesÚJSONRPCMessageÚmodel_validate_jsonÚ	ExceptionÚsendr   ÚanyioÚClosedResourceErrorÚlowlevelÚ
checkpoint)ÚlineÚmessageÚexcÚsession_messageÚread_stream_writerr   s       €€úP/root/aria/mcps/aria-brain/venv/lib/python3.12/site-packages/mcp/server/stdio.pyÚstdin_readerz"stdio_server.<locals>.stdin_reader<   só   øè ø€ ð	.Ø)÷ 	Cñ 	CØ"'÷ Cð C˜$ð!Ü"'×"6Ñ"6×"JÑ"JÈ4Ó"P˜ô
 '5°WÓ&=�OØ,×1Ñ1°/ÓB×BÑBð	CøðCùô %ò !Ø0×5Ñ5°cÓ:×:Ñ:Ü ûð!úð
 Cøð #(÷	C÷ 	C÷ 	C÷ 	Có 	Cûô ×(Ñ(ò 	.Ü—.‘.×+Ñ+Ó-×-Ó-ð	.üsß   ƒC>…B> ‹A ŒB> �B)’B–A"—BšB)œA$»B)ÁBÁB)Á B> Á"BÁ$	BÁ-BÂB
ÂBÂB)ÂBÂB)ÂB)ÂB> Â"B%Â#B> Â(C>Â)B;Â/B2Â0B;Â7B> Â:C>Â;B> Â>4C;Ã2C5Ã3C;Ã8C>Ã:C;Ã;C>c               “   ó¾  •K  — 	 ‰4 ƒd {  –—†  ‰2 3 d {  –—† } | j                   j                  dd¬«      }‰j                  |dz   «      ƒ d {  –—†  ‰j                  «       ƒ d {  –—†  Œ[7 Œa7 ŒX7 Œ!7 Œ6 d d d «      ƒd {  –—†7   y # 1 ƒd {  –—†7  sw Y   y xY w# t        j
                  $ r* t        j                  j                  «       ƒ d {  –—†7   Y y w xY w­w)NT)Úby_aliasÚexclude_noneú
)r   Úmodel_dump_jsonÚwriteÚflushr   r   r   r   )r   Újsonr	   Úwrite_stream_readers     €€r   Ústdout_writerz#stdio_server.<locals>.stdout_writerK   sÈ   øè ø€ ð	.Ø*÷ )ñ )Ø-@÷ )ð )˜/Ø*×2Ñ2×BÑBÈDÐ_cÐBÓd�DØ Ÿ,™, t¨d¡{Ó3×3Ð3Ø Ÿ,™,›.×(Ñ(ð	)øð)øà3øØ(øð .A÷)÷ )÷ )÷ )ó )ûô
 ×(Ñ(ò 	.Ü—.‘.×+Ñ+Ó-×-Ó-ð	.üsÃ   ƒC…B ‹A-ŒB �B’A5–A/—A5š5BÁA1ÁBÁ'A3Á(BÁ-B Á/A5Á1BÁ3BÁ5BÁ6B ÂBÂB ÂCÂBÂBÂBÂB ÂCÂB Â4CÃCÃCÃCÃCÃCN)
r   Ú	wrap_filer   Úsysr   Úbufferr	   Úcreate_memory_object_streamÚcreate_task_groupÚ
start_soon)	r   r	   Úread_streamÚwrite_streamr   r(   Útgr   r'   s	   ``     @@r   Ústdio_serverr2   !   sê   ûè ø€ ñ Ü—‘¤¬c¯i©i×.>Ñ.>ÈÐYbÔ cÓdˆÙÜ—‘¤¬s¯z©z×/@Ñ/@È7Ô!SÓTˆô ',×&GÑ&GÈÓ&JÑ#Ð˜Ü(-×(IÑ(IÈ!Ó(LÑ%€LÐ%õ.õ.ô ×&Ñ&Ó(÷ (ð (¨BØ
�‰�lÔ#Ø
�‰�mÔ$Ø˜<Ð'Ó'÷(÷ (ñ (øð (ø÷ (÷ (ñ (üsH   †C
D(ÃDÃD(Ã*DÃ>D(Ä	DÄ
D(ÄD(ÄD%ÄDÄD%Ä!D()NN)Ú__doc__r*   Ú
contextlibr   Úior   r   Úanyio.lowlevelÚanyio.streams.memoryr   r   Ú	mcp.typesr   Úmcp.shared.messager   Ú	AsyncFileÚstrr2   © ó    r   ú<module>r>      sj   ðñó( Ý *Ý ã Û ß Rå Ý -ð à)-Ø*.ñ6(Ø�?‰?˜3Ñ $Ñ&ð6(à�O‰O˜CÑ  4Ñ'ò6(ó ñ6(r=   