Ë
    ãß²j¥  ã                  óZ  — d dl mZ d dlZd dlmZmZmZ d dlm	Z	m
Z
mZmZ d dlmZ d dlmZmZmZ d dlmZmZ d dlmZmZ  ej2                  e«      Zd	Zd
Zg d¢Z ed¬«       G d„ d«      «       Z e h d£«      Z!dd„Z"d„ Z#dddœ	 	 	 	 	 	 	 dd„Z$dddœ	 	 	 	 	 	 	 dd„Z%	 	 	 	 	 	 	 	 dd„Z&y)é    )ÚannotationsN)Ú	dataclassÚfieldÚreplace)ÚAnyÚCallableÚOptionalÚSequence)Úconnectors_available)ÚGatewayAuthErrorÚGatewayUnavailableÚToolGatewayError)Úfill_remote_failureÚsplice_remote_results)Úparse_connector_nameÚvendor_slug_candidatesÚsign_in_expiredÚunreachable)ÚSIGN_IN_EXPIREDÚUNREACHABLEÚConnectorLegÚconnector_describeÚconnector_search_hitsÚ
run_remoteT)Úfrozenc                  ó8   — e Zd ZU  ee¬«      Zded<   dZded<   y)r   )Údefault_factoryzdict[str, Any]ÚpayloadNúOptional[str]Úfailure)Ú__name__Ú
__module__Ú__qualname__r   Údictr   Ú__annotations__r    © ó    úD/home/ubuntu/.hermes/hermes-agent/tools/connectors/gateway/bridge.pyr   r      s   … ñ $°DÔ9€Gˆ^Ó9Ø!€Gˆ]Ô!r'   r   >   ÚUNAUTHORIZEDÚINVALID_TOKENÚTOKEN_EXPIREDc                ó¬   — t        | t        «      r?| j                  dk(  s)t        | j                  «      j                  «       t        v rt        S y t        S )Ni‘  )	Ú
isinstancer   ÚstatusÚstrÚcodeÚupperÚ_TOKEN_REJECTED_CODESr   r   )Úexcs    r(   Ú_leg_failurer4   %   sA   € Ü�#Ô'Ô(Ø�:‰:˜Ò¤ C§H¡H£× 3Ñ 3Ó 5Ô9NÑ NÜ"Ð"ØÜÐr'   c                 ó   — ddl m}   | «       S )Nr   ©ÚConnectorClient)Útools.connectors.gateway.clientr7   r6   s    r(   Ú_default_client_factoryr9   -   s   € Ý?áÓÐr'   )ÚavailabilityÚclient_factoryc               ó€  — 	  |xs t         «       }|r| s
t        «       S  |xs t        «       }t        |j                  t	        | «      «      xs i ¬«      S # t
        $ r" t        j                  d«       t        «       cY S t        $ r5}t        j                  d|«       t        t        |«      ¬«      cY d }~S d }~ww xY w)N©r   z&Connector search skipped: gateway darkz!Connector search failed (D32): %s©r    )
r   r   r9   ÚsearchÚlistr   ÚloggerÚdebugÚ	Exceptionr4   )Úqueriesr:   r;   Ú	availableÚclientr3   s         r(   r   r   3   s�   € ð7Ø9�\Ò9Ô%9Ó<ˆ	Ù¡Ü“>Ð!Ø;�.Ò;Ô$;Ó>ˆÜ F§M¡M´$°w³-Ó$@Ò$FÀBÔGÐGøÜò Ü�‰Ð=Ô>Ü‹~ÒÜò 7Ü�‰Ð8¸#Ô>Ü¤L°Ó$5Ô6Õ6ûð7ús(   ‚A Ÿ6A Á(B=Â B=Â*B8Â2B=Â8B=c               ó¨  ‡— 	  |xs t         «       }|s
t        «       S i }g }| D ]j  }t        |«      }|�|j                  |v rŒt	        |j
                  |j                  «      }|||j                  <   |D ]  }	|	|vsŒ|j                  |	«       Œ Œl |s
t        «       S  |xs t        «       }
|
j                  |«      xs i }t        |j                  d«      t        «      r|j                  d«      ni Ši }|j                  «       D ]T  \  }}t        ˆfd„|D «       d «      }|€Œt        |j                  d«      xs d«      |j                  d«      xs i dœ||<   ŒV t        d|i¬«      S # t         $ r" t"        j%                  d	«       t        «       cY S t&        $ r5}t"        j%                  d
|«       t        t)        |«      ¬«      cY d }~S d }~ww xY w)NÚschemasc              3  óf   •K  — | ](  }t        ‰j                  |«      t        «      r‰|   –— Œ* y ­w)N)r-   Úgetr$   )Ú.0ÚslugrH   s     €r(   ú	<genexpr>z%connector_describe.<locals>.<genexpr>e   s/   øè ø€ ò 9 4Ü˜wŸ{™{¨4Ó0´$Ô7ð ˜•ñ 9ùs   ƒ.1ÚdescriptionÚ Úinput_schema)rN   Ú
parametersÚtoolsr=   z(Connector describe skipped: gateway darkz#Connector describe failed (D32): %sr>   )r   r   r   Úrawr   Ú	connectorÚtoolÚappendr9   rH   r-   rJ   r$   ÚitemsÚnextr/   r   rA   rB   rC   r4   )Únamesr:   r;   rE   ÚwantedÚrequest_slugsÚnameÚparsedÚ
candidatesrL   rF   ÚresponserR   ÚcomposedÚschemar3   rH   s                   @r(   r   r   G   sÈ  ø€ ð(7Ø9�\Ò9Ô%9Ó<ˆ	ÙÜ“>Ð!à-/ˆØ#%ˆØò 	/ˆDÜ)¨$Ó/ˆFØˆ~ §¡¨vÑ!5ØÜ/°×0@Ñ0@À&Ç+Á+ÓNˆJØ!+ˆF�6—:‘:ÑØ"ò /�Ø˜}Ò,Ø!×(Ñ(¨Õ.ñ/ð	/ñ Ü“>Ð!Ø;�.Ò;Ô$;Ó>ˆØ—>‘> -Ó0Ò6°BˆÜ-7¸¿¹ÀYÓ8OÔQUÔ-V�(—,‘,˜yÔ)Ð\^ˆØ "ˆØ$*§L¡L£Nò 	Ñ ˆH�jÜó9¨:ô 9àóˆFð
 ˆ~Øä" 6§:¡:¨mÓ#<Ò#BÀÓCØ$Ÿj™j¨Ó8Ò>¸BñˆE�(ŠOð	ô  W¨eÐ$4Ô5Ð5øÜò Ü�‰Ð?Ô@Ü‹~ÒÜò 7Ü�‰Ð:¸CÔ@Ü¤L°Ó$5Ô6Õ6ûð7ús6   ƒE* žAE* Á< E* ÂCE* Å*(GÆGÆ*GÇGÇGc          
     óV  — 	  |xs t         «       }|st        | dd¬«      S | D �cg c]0  }t        |t	        |j
                  |j                  «      d   ¬«      ‘Œ2 }}ddlm} 	  |xs t        «       } |j                  |fi  |«       ¤Ž}	t        | |	«      }
g }g }t#        t%        | |
«      «      D ]§  \  }\  }}t	        |j
                  |j                  «      \  }}t'        |t(        «      r|j+                  d«      nd }||k7  sŒUt'        |t(        «      sŒf|j+                  d«      dk(  sŒ{|j-                  |«       |j-                  t        ||¬«      «       Œ© |s|
S 	  |j                  |fi  |«       ¤Ž}t        ||«      }t%        ||«      D ]
  \  }}||
|<   Œ |
S # t        $ r d}Y �Œšw xY wc c}w # t        $ r;}t        j                  d||j                  |«       t        | d	|› �«      cY d }~S d }~wt        $ r-}t        j!                  d
||«       t        | d«      cY d }~S d }~ww xY w# t        $ r;}t        j                  d||j                  |«       t        |d	|› �«      }Y d }~Œìd }~wt        $ r.}t        j!                  d||«       t        |d«      }Y d }~�Œ!d }~ww xY w)NFz;Unknown tool: connectors are not available in this session.ÚTOOL_NOT_FOUND)r0   r   )rU   )Úreturn_to_argsz1Connector execute for dispatch %s failed (%s): %sz&The connector gateway request failed: z9Connector execute for dispatch %s failed unexpectedly: %sz2The connector gateway request failed unexpectedly.Úerrorr0   z:Connector execute fallback for dispatch %s failed (%s): %szBConnector execute fallback for dispatch %s failed unexpectedly: %s)r   rC   r   Údataclass_replacer   rT   rU   r8   rd   r9   Úexecuter   r   rA   rB   r0   ÚwarningÚ	enumerateÚzipr-   r$   rJ   rV   )ÚplannedÚdispatch_idr:   r;   rE   ÚplanÚwire_plannedrd   rF   Úremote_resultsÚentriesr3   Úfallback_slotsÚfallback_plannedÚslotÚentryÚprimaryÚliteralre   Úfallback_resultsÚfallback_entriesÚfallback_entrys                         r(   r   r   x   s×  € ðØ9�\Ò9Ô%9Ó<ˆ	ñ Ü"ØØIØ!ô
ð 	
ð öð
 ô	 	ØÜ'¨¯©¸¿	¹	ÓBÀ1ÑEö	
ð€Lð õ ?ð
Ø;�.Ò;Ô$;Ó>ˆð (˜Ÿ™¨ÑI¹Ó8HÑIˆÜ'¨°Ó@ˆð* !#€NØÐÜ(¬¨W°gÓ)>Ó?ò 	KÑˆ‰mˆt�UÜ1°$·.±.À$Ç)Á)ÓLÑˆ�Ü&0°¼Ô&=�—	‘	˜'Ô"À4ˆà�wÓÜ˜5¤$Õ'Ø—	‘	˜&Ó!Ð%5Ó5à×!Ñ! $Ô'Ø×#Ñ#Ô$5°dÀÔ$IÕJð	Kñ Øˆð
Ø)˜6Ÿ>™>Ð*:ÑO¹nÓ>NÑOÐÜ0Ð1AÐCSÓTÐô( !$ NÐ4DÓ Eò 'ÑˆˆnØ&ˆ�Šð'à€Nøôk ò Ø‹	ðüòøô ò 	
Ü�‰Ø?ØØ�H‰HØô		
ô #ØÐ=¸c¸UÐCó
õ 	
ûô ò 
Ü�‰ØGØØô	
ô
 #ØÐIó
õ 	
ûð
ûô: ò 	
Ü�‰ØHØØ�H‰HØô		
ô /ØÐ FÀsÀeÐLó
Õûô ò 
Ü�‰ØPØØô	
ô
 /ØÐRó
Öûð
úsj   ‚F ¥5F/Á#3F4 Å$H/ ÆF,Æ+F,Æ4	H,Æ=0G3Ç-H,Ç3H,Ç?"H'È!H,È'H,È/	J(È81I.É.J(É:#J#Ê#J()r3   rC   Úreturnr   )rD   zSequence[dict[str, Any]]r:   úOptional[Callable[[], bool]]r;   úOptional[Callable[[], Any]]rz   r   )rY   zSequence[str]r:   r{   r;   r|   rz   r   )rl   r   r:   r{   r;   r|   rz   zlist[dict[str, Any]])'Ú
__future__r   ÚloggingÚdataclassesr   r   r   rf   Útypingr   r   r	   r
   Útools.connectors.gateway.configr   Útools.connectors.gateway.errorsr   r   r   Útools.connectors.gateway.merger   r   Útools.connectors.gateway.namesr   r   Ú	getLoggerr!   rA   r   r   Ú__all__r   Ú	frozensetr2   r4   r9   r   r   r   r&   r'   r(   ú<module>rˆ      s  ðÝ "ã ß FÑ Fß 4Ó 4å @ß bÑ bß Uß Wà	ˆ×	Ñ	˜8Ó	$€à#€Ø€ò€ñ �$Ô÷"ð "ó ð"ñ "Ò"TÓUÐ óòð 26Ø26ñ	7Ø%ð7ð /ð7ð 0ð	7ð
 ó7ð. 26Ø26ñ	.7Øð.7ð /ð.7ð 0ð	.7ð
 ó.7ðb^àð^ð /ð	^ð
 0ð^ð ô^r'   