§
    öŽ’jt  ã                   óÀ   — 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dS )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                ó6  ‡ ‡‡‡K  — ‰ s3t          j        t          t          j        j        dd¬¦  «        ¦  «        Š ‰s2t          j        t          t          j        j        d¬¦  «        ¦  «        Št          j        d¦  «        \  Š}t          j        d¦  «        \  }Šˆˆ fd„}ˆˆfd„}t          j        ¦   «         4 ƒd{V —†}| 	                    |¦  «         | 	                    |¦  «         ||fW V — ddd¦  «        ƒd{V —† dS # 1 ƒd{V —†swxY w Y   dS )	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 {V —† ‰2 3 d {V —†} 	 t           j                             | ¦  «        }n2# t          $ r%}‰                     |¦  «        ƒ d {V —† Y d }~ŒRd }~ww xY wt          |¦  «        }‰                     |¦  «        ƒ d {V —† Œ…6 	 d d d ¦  «        ƒd {V —† d S # 1 ƒd {V —†swxY w Y   d S # t          j        $ r( t          j         	                    ¦   «         ƒ d {V —† Y d S w xY w)N)
ÚtypesÚJSONRPCMessageÚmodel_validate_jsonÚ	ExceptionÚsendr   ÚanyioÚClosedResourceErrorÚlowlevelÚ
checkpoint)ÚlineÚmessageÚexcÚsession_messageÚread_stream_writerr   s       €€ú>C:\Projects\DSCons\.venv\Lib\site-packages\mcp\server\stdio.pyÚstdin_readerz"stdio_server.<locals>.stdin_reader<   s   øè è € ð	.Ø)ð 	Cð 	Cð 	Cð 	Cð 	Cð 	Cð 	Cð 	CØ"'ð Cð Cð Cð Cð Cð Cð C˜$ð!Ý"'Ô"6×"JÒ"JÈ4Ñ"PÔ"P˜˜øÝ$ð !ð !ð !Ø0×5Ò5°cÑ:Ô:Ð:Ð:Ð:Ð:Ð:Ð:Ð:Ø ˜˜˜˜øøøøð!øøøõ '5°WÑ&=Ô&=�OØ,×1Ò1°/ÑBÔBÐBÐBÐBÐBÐBÐBÐBÐBð #( %ð	Cð 	Cð 	Cñ 	Cô 	Cð 	Cð 	Cð 	Cð 	Cð 	Cð 	Cð 	Cð 	Cð 	Cð 	Cð 	Cð 	Cð 	Cð 	Cð 	Cð 	Cð 	Cð 	Cð 	Cøøøð 	Cð 	Cð 	Cð 	Cð 	Cð 	Cøõ Ô(ð 	.ð 	.ð 	.Ý”.×+Ò+Ñ-Ô-Ð-Ð-Ð-Ð-Ð-Ð-Ð-Ð-Ð-Ð-ð	.øøøsd   …B= �B*�B–B*˜8·B*¸
A'ÁA"ÁB*Á"A'Á'/B*ÂB= Â*
B4Â4B= Â7B4Â8B= Â=3C4Ã3C4c               “   óœ  •K  — 	 ‰4 ƒd {V —† ‰2 3 d {V —†} | j                              dd¬¦  «        }‰                     |dz   ¦  «        ƒ d {V —† ‰                     ¦   «         ƒ d {V —† Œ\6 	 d d d ¦  «        ƒd {V —† d S # 1 ƒd {V —†swxY w Y   d S # t          j        $ r( t          j                             ¦   «         ƒ d {V —† Y d S w xY 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×BÒBÈDÐ_cÐBÑdÔd�DØ Ÿ,š, t¨d¡{Ñ3Ô3Ð3Ð3Ð3Ð3Ð3Ð3Ð3Ø Ÿ,š,™.œ.Ð(Ð(Ð(Ð(Ð(Ð(Ð(Ð(ð .AÐ-@ð)ð )ð )ñ )ô )ð )ð )ð )ð )ð )ð )ð )ð )ð )ð )ð )ð )ð )ð )ð )ð )ð )ð )ð )øøøð )ð )ð )ð )ð )ð )øõ
 Ô(ð 	.ð 	.ð 	.Ý”.×+Ò+Ñ-Ô-Ð-Ð-Ð-Ð-Ð-Ð-Ð-Ð-Ð-Ð-ð	.øøøs?   …B �B�A,–ABÁ.B Â
BÂB ÂBÂB Â3CÃ
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Ñ  øøøøè è € ð ð eÝ”¥­c¬iÔ.>ÈÐYbÐ cÑ cÔ cÑdÔdˆØð UÝ”¥­s¬zÔ/@È7Ð!SÑ!SÔ!SÑTÔTˆõ ',Ô&GÈÑ&JÔ&JÑ#Ð˜Ý(-Ô(IÈ!Ñ(LÔ(LÑ%€LÐ%ð.ð .ð .ð .ð .ð .ð.ð .ð .ð .ð .ð .õ Ô&Ñ(Ô(ð (ð (ð (ð (ð (ð (ð (¨BØ
�Š�lÑ#Ô#Ð#Ø
�Š�mÑ$Ô$Ð$Ø˜<Ð'Ð'Ð'Ð'Ð'ð(ð (ð (ñ (ô (ð (ð (ð (ð (ð (ð (ð (ð (ð (ð (ð (ð (ð (ð (ð (ð (ð (ð (ð (øøøð (ð (ð (ð (ð (ð (s   Ã2DÄ
DÄD)NN)Ú__doc__r*   Ú
contextlibr   Úior   r   Úanyio.lowlevelÚanyio.streams.memoryr   r   Ú	mcp.typesr   Úmcp.shared.messager   Ú	AsyncFileÚstrr2   © ó    r   ú<module>r>      sí   ððð ð( €
€
€
Ø *Ð *Ð *Ð *Ð *Ð *Ø Ð Ð Ð Ð Ð à €€€Ø Ð Ð Ð Ø RÐ RÐ RÐ RÐ RÐ RÐ RÐ Rà Ð Ð Ð Ð Ð Ø -Ð -Ð -Ð -Ð -Ð -ð à)-Ø*.ð6(ð 6(ØŒ?˜3Ô $Ñ&ð6(àŒO˜CÔ  4Ñ'ð6(ð 6(ð 6(ñ Ôð6(ð 6(ð 6(r=   