Ë
    ïñþi¢	  ã                   ó|   — d dl Z d dlmZ d dlmZmZmZ  ed«      Z ed«      Zdedef   de	e   d	eegef   fd
„Z
y)é    N)ÚCallable)ÚAnyÚTypeVarÚget_type_hintsÚTÚRÚfunc.Úrequest_typeÚreturnc                 óV  ‡ — 	 t        j                  ‰ «      }t        ‰ «      }|j                  j                  «       D ]w  \  }}|j                  t         j                  j                  k(  sŒ.|j                  |«      }||k(  sŒE|j                  t         j                  j                  urˆ fd„c S ˆ fd„c S  |j                  j                  «       D ]³  \  }}|j                  t         j                  j                  t         j                  j                  fv sŒG|j                  |«      }||k(  sŒ^|j                  t         j                  j                  urˆ fd„c S dt         dt"        t$        gt$        f   fˆ fd„} ||«      c S  ˆ fd„S # t        t        t
        f$ r ˆ fd„cY S w xY w)	aÍ  
    Create a wrapper function that knows how to call func with the request object.

    Returns a wrapper function that takes the request and calls func appropriately.

    The wrapper handles three calling patterns:
    1. Positional-only parameter typed as request_type (no default): func(req)
    2. Positional/keyword parameter typed as request_type (no default): func(**{param_name: req})
    3. No request parameter or parameter with default: func()
    c                 ó   •—  ‰«       S ©N© ©Ú_r	   s    €úc/root/aria/mcps/aria-brain/venv/lib/python3.12/site-packages/mcp/server/lowlevel/func_inspection.pyú<lambda>z%create_call_wrapper.<locals>.<lambda>   s	   ø€ ™›€ ó    c                 ó   •—  ‰«       S r   r   r   s    €r   r   z%create_call_wrapper.<locals>.<lambda>!   ó	   ø€ ¡T£V€ r   c                 ó   •—  ‰| «      S r   r   )Úreqr	   s    €r   r   z%create_call_wrapper.<locals>.<lambda>#   s   ø€ ¡4¨£9€ r   c                 ó   •—  ‰«       S r   r   r   s    €r   r   z%create_call_wrapper.<locals>.<lambda>,   r   r   Únamer   c                 ó   •‡ — ˆˆ fd„S )Nc                 ó   •—  ‰di ‰| i¤ŽS )Nr   r   )r   r	   r   s    €€r   r   zCcreate_call_wrapper.<locals>.make_keyword_wrapper.<locals>.<lambda>1   s   ø€ ¡tÑ':¨t°S¨kÑ':€ r   r   )r   r	   s   `€r   Úmake_keyword_wrapperz1create_call_wrapper.<locals>.make_keyword_wrapper0   s	   ù€ Ü:Ð:r   c                 ó   •—  ‰«       S r   r   r   s    €r   r   z%create_call_wrapper.<locals>.<lambda>6   s	   ø€ ‘T“V€ r   )ÚinspectÚ	signaturer   Ú
ValueErrorÚ	TypeErrorÚ	NameErrorÚ
parametersÚitemsÚkindÚ	ParameterÚPOSITIONAL_ONLYÚgetÚdefaultÚemptyÚPOSITIONAL_OR_KEYWORDÚKEYWORD_ONLYÚstrr   r   )r	   r
   ÚsigÚ
type_hintsÚ
param_nameÚparamÚ
param_typer   s   `       r   Úcreate_call_wrapperr4   	   sh  ø€ ð Ü×Ñ Ó%ˆÜ# DÓ)ˆ
ð
 !Ÿ^™^×1Ñ1Ó3ò -Ñˆ
�EØ�:‰:œ×*Ñ*×:Ñ:Ó:Ø#Ÿ™¨
Ó3ˆJØ˜\Ó)à—=‘=¬×(9Ñ(9×(?Ñ(?Ñ?Û+Ò+ã,Ò,ð-ð !Ÿ^™^×1Ñ1Ó3ò 8Ñˆ
�EØ�:‰:œ'×+Ñ+×AÑAÄ7×CTÑCT×CaÑCaÐbÒbØ#Ÿ™¨
Ó3ˆJØ˜\Ó)à—=‘=¬×(9Ñ(9×(?Ñ(?Ñ?Û+Ò+ð;¬sð ;´xÄÀÄsÀ
Ñ7Kõ ;ñ ,¨JÓ7Ò7ð8ó  Ðøô? œ	¤9Ð-ò  ÛÒð ús   ƒ F ÆF(Æ'F()r   Úcollections.abcr   Útypingr   r   r   r   r   Útyper4   r   r   r   ú<module>r8      sY   ðÛ Ý $ß /Ñ /áˆCƒL€ÙˆCƒL€ð-˜h s¨A vÑ.ð -¸dÀ1¹gð -È(ÐTUÐSVÐXYÐSYÑJZô -r   