§
    ÎÐj?  ã                  ó`   — d dl mZ d dlZd dlZd dlZd dlmZmZmZ dd„Z	 G d	„ d
¦  «        Z
dS )é    )ÚannotationsN)ÚAnyÚCallableÚSequenceÚtoolsúSequence[dict[str, Any]]Ú	call_toolú/Callable[[str, dict[str, Any]], dict[str, Any]]c                óö  ‡‡
— ddl m}  |d¦  «        }| D �]a}t          |                     di ¦  «        pi ¦  «        }t	          |                     dd¦  «        pd¦  «                             ¦   «         }|sŒbt          |                     di ¦  «        pdi d	œ¦  «        }t          |                     d
i ¦  «        pi ¦  «        }t          |                     dg ¦  «        pg ¦  «        Š
|fˆfd„	}	||	_        t          j	        ˆ
fd„|D ¦   «         ¦  «        |	_
        |                     |	|t	          |                     dd¦  «        pd¦  «        ¬¦  «         ||j                             |¦  «        _        �Œc|S )Nr   )ÚFastMCPzWanGP Deepy PrimeÚfunctionÚnameÚ Ú
parametersÚobject)ÚtypeÚ
propertiesr   Úrequiredc                ó   •—  ‰| |¦  «        S )N© )Ú	tool_nameÚkwargsr	   s     €ú9C:\Users\johnn\OneDrive\Documents\AI\shared\mcp\bridge.pyÚproxyzbuild_tool_proxy.<locals>.proxy   s   ø€ Ø�9˜Y¨Ñ/Ô/Ð/ó    c                óî   •— g | ]q}t          |¦  «                             ¦   «         ¯#t          j        t          |¦  «        t          j        j        |‰v rt          j        j        nd t          ¬¦  «        ‘ŒrS )N)ÚdefaultÚ
annotation)ÚstrÚisidentifierÚinspectÚ	ParameterÚKEYWORD_ONLYÚemptyr   )Ú.0Úparameter_namer   s     €r   ú
<listcomp>z$build_tool_proxy.<locals>.<listcomp>   s    ø€ ð 1
ð 1
ð 1
àÝ�>Ñ"Ô"×/Ò/Ñ1Ô1ð1
ÝÔ�c .Ñ1Ô1µ7Ô3DÔ3Qð  wEð  IQð  wQð  wQÕ[bÔ[lÔ[rÐ[rð  W[õ  hkð  lñ  lô  lð1
ð 1
ð 1
r   Údescription)r   r(   )Úmcp.server.fastmcpr   ÚdictÚgetr   ÚstripÚsetÚ__name__r!   Ú	SignatureÚ__signature__Úadd_toolÚ_tool_managerÚget_toolr   )r   r	   r   ÚserverÚ
definitionr   r   Úschemar   r   r   s    `        @r   Úbuild_tool_proxyr7   
   s´  øø€ Ø*Ð*Ð*Ð*Ð*Ð*àˆWÐ(Ñ)Ô)€FØð @ñ @ˆ
Ý˜
Ÿš z°2Ñ6Ô6Ð<¸"Ñ=Ô=ˆÝ�8—<’< ¨Ñ+Ô+Ð1¨rÑ2Ô2×8Ò8Ñ:Ô:ˆØð 	ØÝ�h—l’l <°Ñ4Ô4Ð\ÀÐY[Ð8\Ð8\Ñ]Ô]ˆÝ˜&Ÿ*š* \°2Ñ6Ô6Ð<¸"Ñ=Ô=ˆ
Ý�v—z’z *¨bÑ1Ô1Ð7°RÑ8Ô8ˆà ð 	0ð 	0ð 	0ð 	0ð 	0ð 	0ð ˆŒÝ%Ô/ð 1
ð 1
ð 1
ð 1
à",ð1
ñ 1
ô 1
ñ ô ˆÔð
 	�Š˜ Dµc¸(¿,º,À}ÐVXÑ:YÔ:YÐ:_Ð]_Ñ6`Ô6`ˆÑaÔaÐaØ9?ˆÔ×%Ò% dÑ+Ô+Ô6Ñ6Ø€Mr   c                  ó&   — e Zd Zd
d„Zdd„Zdd„Zd	S )ÚMCPHttpBridgeÚfastmcp_serverr   ÚreturnÚNonec                óL   — || _         d | _        d | _        d | _        d| _        d S )Nr   )r:   Ú_socketÚ_serverÚ_threadÚurl)Úselfr:   s     r   Ú__init__zMCPHttpBridge.__init__&   s*   € Ø,ˆÔØ-1ˆŒØˆŒØ04ˆŒØˆŒˆˆr   r   c                óò  ‡ ‡— ‰ j         r‰ j         S 	 dd l}n"# t          $ r}t          d¦  «        |‚d }~ww xY w‰ j                             ¦   «         }t          j        t          j        t          j        ¦  «        Š‰ 	                    t          j
        t          j        d¦  «         ‰                     d¦  «         ‰                     d¦  «         t          ‰                     ¦   «         d         ¦  «        }‰‰ _        |                     |                     |dd¬¦  «        ¦  «        ‰ _        t)          j        ˆ ˆfd	„d
d¬¦  «        ‰ _        ‰ j                             ¦   «          d|› d�‰ _         ‰ j         S )Nr   z*OpenCode MCP integration requires uvicorn.é   )z	127.0.0.1r   é€   ÚwarningÚon)Ú	log_levelÚlifespanc                 ó<   •— ‰ j                              ‰g¬¦  «        S )N)Úsockets)r?   Úrun)rB   Úsocks   €€r   ú<lambda>z%MCPHttpBridge.start.<locals>.<lambda><   s   ø€ °t´|×7GÒ7GÐQUÐPVÐ7GÑ7WÔ7W€ r   zwangp-opencode-mcpT)Útargetr   Údaemonzhttp://127.0.0.1:z/mcp)rA   ÚuvicornÚImportErrorÚRuntimeErrorr:   Ústreamable_http_appÚsocketÚAF_INETÚSOCK_STREAMÚ
setsockoptÚ
SOL_SOCKETÚSO_REUSEADDRÚbindÚlistenÚintÚgetsocknamer>   ÚServerÚConfigr?   Ú	threadingÚThreadr@   Ústart)rB   rR   ÚexcÚappÚportrN   s   `    @r   rd   zMCPHttpBridge.start-   so  øø€ ØŒ8ð 	Ø”8ˆOð	VØˆNˆNˆNˆNøÝð 	Vð 	Vð 	VÝÐKÑLÔLÐRUÐUøøøøð	VøøøàÔ!×5Ò5Ñ7Ô7ˆÝŒ}�Vœ^­VÔ-?Ñ@Ô@ˆØ�Š�Ô)­6Ô+>ÀÑBÔBÐBØ�	Š	Ð"Ñ#Ô#Ð#Ø�Š�CÑÔÐÝ�4×#Ò#Ñ%Ô% aÔ(Ñ)Ô)ˆØˆŒØ—~’~ g§n¢n°SÀIÐX\ nÑ&]Ô&]Ñ^Ô^ˆŒÝ Ô'Ð/WÐ/WÐ/WÐ/WÐ/WÐ^rÐ{ð  Añ  Aô  AˆŒØŒ×ÒÑÔÐØ1 tÐ1Ð1Ð1ˆŒØŒxˆs   ’ —
6¡1±6c                ó  — | j         �d| j         _        | j        �| j                             d¬¦  «         | j        �+	 | j                             ¦   «          n# t          $ r Y nw xY wd | _        d | _        d | _         d| _        d S )NTé   )Útimeoutr   )r?   Úshould_exitr@   Újoinr>   ÚcloseÚOSErrorrA   )rB   s    r   rm   zMCPHttpBridge.closeA   s™   € ØŒ<Ð#Ø'+ˆDŒLÔ$ØŒ<Ð#ØŒL×Ò aÐÑ(Ô(Ð(ØŒ<Ð#ðØ”×"Ò"Ñ$Ô$Ð$Ð$øÝð ð ð Ø�ðøøøàˆŒØˆŒØˆŒØˆŒˆˆs   ¾A Á
A%Á$A%N)r:   r   r;   r<   )r;   r   )r;   r<   )r.   Ú
__module__Ú__qualname__rC   rd   rm   r   r   r   r9   r9   %   sP   € € € € € ðð ð ð ðð ð ð ð(ð ð ð ð ð r   r9   )r   r   r	   r
   )Ú
__future__r   rV   r!   rb   Útypingr   r   r   r7   r9   r   r   r   ú<module>rs      s™   ðà "Ð "Ð "Ð "Ð "Ð "à €€€Ø €€€Ø Ð Ð Ð Ø *Ð *Ð *Ð *Ð *Ð *Ð *Ð *Ð *Ð *ðð ð ð ð6)ð )ð )ð )ð )ñ )ô )ð )ð )ð )r   