
    Ch                         S r SSKrSSKJr  SSKJr  SSKrSSKrSSKJ	r	J
r
  SSKJr  SSKJr  \  S
S\R                  \   S-  S\R                  \   S-  4S	 jj5       rg)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                p  ^ ^^^#    T (       d6  [         R                  " [        [        R                  R
                  SS95      m T(       d6  [         R                  " [        [        R                  R
                  SS95      m[         R                  " S5      u  mn[         R                  " S5      u  nmUU 4S jnUU4S jn[         R                  " 5        ISh  vN nUR                  U5        UR                  U5        X#47v   SSS5      ISh  vN   g N= N! , ISh  vN  (       d  f       g= f7f)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)encodingr   c                    >#     T IS h  vN   T  S h  vN n  [         R                  R                  U 5      n[        U5      nTR	                  U5      I S h  vN   MO   NU NL! [         a%  nTR	                  U5      I S h  vN     S nAM}  S nAff = f N<
 S S S 5      IS h  vN    g ! , IS h  vN  (       d  f       g = f! [        R                   a*    [        R                  R                  5       I S h  vN     g f = f7f)N)
typesJSONRPCMessagemodel_validate_json	Exceptionsendr   anyioClosedResourceErrorlowlevel
checkpoint)linemessageexcsession_messageread_stream_writerr   s       J/home/james-whalen/.local/lib/python3.13/site-packages/mcp/server/stdio.pystdin_reader"stdio_server.<locals>.stdin_reader<   s     	.))"' C$!"'"6"6"J"J4"P
 '5W&=O,11/BBB *C % !055c::: !
 C #( *))))) (( 	...++---	.s   DC A!C B,BA#BB,A%B,BB,!C #B%
B/BB
B	B,BB,B,C %B(&C +D,C2B53C?C DC 5D;C><DDDDc                    >#     T IS h  vN   T  S h  vN n U R                   R                  SSS9nTR                  US-   5      I S h  vN   TR                  5       I S h  vN   MY   N_ NV N" N
 S S S 5      IS h  vN    g ! , IS h  vN  (       d  f       g = f! [        R
                   a*    [        R                  R                  5       I S h  vN     g f = f7f)NT)by_aliasexclude_none
)r   model_dump_jsonwriteflushr   r   r   r   )r   jsonr	   write_stream_readers     r   stdout_writer#stdio_server.<locals>.stdout_writerK   s     	.**-@ )/*22BBD_cBdD ,,td{333 ,,.((	 +)3( .A +*****
 (( 	...++---	.s   C!B  A+B  BA3A-A32BA/B$A1%B+B  -A3/B1B3B4B  ?B B  C!BBBB  C!B   5C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      cii.>.> QRszz/@/@7!ST ',&G&G&J#(-(I(I!(L%L%.. &&((B
l#
m$'' )(((((sH   CD6DD6)DD6DD6D6D3"D%#D3/D6)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(OOC 4'6( 6(r=   