+
    lHàjÿ  ã                  óF  € R t ^ RIHt ^ RIHt ^ RIHtHtHtH	t	 ^ RI
Ht ^ RIHt ^ RIHt . R$Ot]! R	R
04      t]! RR7       ! R R4      4       t]! RR7       ! R R4      4       tR R ltR R ltR R ltR R ltRR/R R lltR R ltR R ltR R  ltR! R" ltR## )%zžPure partitioning, result splicing, and rendering for mixed tool-call batches.

Correlate all remote results by original call position, never wire ``index``.
)Úannotations)Ú	dataclass)ÚAnyÚMappingÚOptionalÚSequence)Úrender_connection_required)Úparse_connector_name)Úconnection_surfaceÚ	PartitionÚPlannedCallÚCONNECTION_REQUIREDÚCONNECTION_EXPIREDT)Úfrozenc                  óJ   € ] tR t^t$ R]R&   R]R&   R]R&   R]R&   R]R&   R	tR
# )r   ÚintÚpositionÚstrÚnameÚ	connectorÚtoolúdict[str, Any]Ú	arguments© N©Ú__name__Ú
__module__Ú__qualname__Ú__firstlineno__Ú__annotations__Ú__static_attributes__r   ó    ÚC/home/ubuntu/.hermes/hermes-agent/tools/connectors/gateway/merge.pyr   r      s   ‡ ð ƒMØ
ƒIØƒNØ
ƒIØ×r!   c                  ó6   € ] tR t^'t$ R]R&   R]R&   R]R&   RtR# )	r   z)tuple[tuple[int, Mapping[str, Any]], ...]Úlocalztuple[PlannedCall, ...]Úremoteztuple[dict[str, Any], ...]Úerrorsr   Nr   r   r!   r"   r   r   '   s   ‡ ð 5Ó4à#Ó#Ø&×&r!   c               ó    € V ^8„  d   QhRRRR/# )é   ÚcallsúSequence[Any]Úreturnr   r   )Úformats   "r"   Ú__annotate__r-   0   s   € ÷ "Uñ "U˜=ð "U¨Yñ "Ur!   c                óà  € . p. p. p\        \        V 4      4       EF'  w  rE\        V\        4      '       d   VP	                  R4      MRp\        V4      pVer   VP	                  R4      pTP                  \        TVP                  VP                  VP                  \        V\        4      '       d   \        V4      M/ R7      4       K¯  \        V\        4      '       d8   VP                  R4      '       d!   VP                  \        VVRRR7      4       Kü  TP                  T\        V\        4      '       d   TM/ 34       EK*  	  \        \!        V4      \!        V4      \!        V4      R	7      # )
zETreat malformed input as per-entry errors so sibling calls still run.r   Nr   )r   r   r   r   r   Úconnectors__ÚTOOL_NOT_FOUNDzHMalformed connector tool name; expected connectors__<connector>__{tool}.©ÚcodeÚmessage)r$   r%   r&   )Ú	enumerateÚ_as_sequenceÚ
isinstancer   Úgetr	   Úappendr   Úrawr   r   Údictr   Ú
startswithÚ_error_entryr   Útuple)	r)   r$   r%   r&   r   Úcallr   Úparsedr   s	   &        r"   Úpartition_callsr@   0   s(  € à13€EØ "€FØ#%€FÜ#¤L°Ó$7×8‰ˆÜ#-¨d´G×#<Ò#<ˆt�x‰x˜ÔÀ$ˆÜ% dÓ+ˆØÒØŸ™ Ó-ˆIØ�M‰MÜØ%ØŸ™Ø$×.Ñ.ØŸ™Ü1;¸IÄw×1OÒ1Oœd 9œoÐUWôôñ Ü�dœC× Ò  T§_¡_°^×%DÒ%DØ�M‰MÜØØØ)ð;ôô
ñ Ø�‰�h¬
°4¼×(AÒ(A¡ÀrÐJ×Kñ9 9ô: œ5 ›<´°f³ÄeÈFÃmÔTÐTr!   c               ó$   € V ^8„  d   QhRRRRRR/# )r(   Úplannedr   r%   zMapping[str, Any]r+   r   r   )r,   s   "r"   r-   r-   U   s'   € ÷ )gñ )g ð )gÐ6Gð )gÈNñ )gr!   c           
     ó$  € \        V\        4      '       d   VP                  R4      MRp\        V\        4      '       d   \        VP                  R4      4      MRp\        V\        4      '       g”   \        V\        4      '       d   VP                  R4      MRp\	        RV P
                  RV P                  RV/V4      p\        V\        4      '       d-   VP                  R4      '       d   \        VR,          4      VR&   V# \        VP                  R	4      ;'       g    R
4      p\        VP                  R4      ;'       g    R4      pV\        9   d�   \        \        VP                  R4      4      ;'       g    V P                  V\        VP                  R4      4      \        VP                  R4      4      \        4       VR7      p\        VP                  R4      4      p	V	'       d   W˜R&   MRR	VRV/p\        VP                  R4      4      p
V
'       d   W¨R&   \        VP                  R4      4      pV'       d   W¸R&   \        VP                  R4      4      pV'       d   WÈR&   \	        RV P
                  RV P                  RV/V4      # )zðUse the shared connection shape so links render consistently.

The model sees code, message, connector and the gateway's hint, plus ``family`` when the gateway
classified the failure. Transport details (status, request id) stay in the logs.ÚerrorNÚaccountÚdataÚindexr   ÚresponseÚdata_user2   ÚPROVIDER_ERRORr3   zThe gateway reported an error.r   Úconnect_urlÚhint)r   r3   rK   rL   Úsurfacer2   Úconnection_idÚfamily)r6   r   r7   Ú_opt_strÚ_with_accountr   r   Úlistr   Ú_CONNECTION_CODESr   r   r
   )rB   r%   rD   rE   rF   Úentryr2   r3   ÚpayloadrN   r   rL   rO   s   &&           r"   Úrender_remote_entryrV   U   s  € ô
 $.¨f´g×#>Ò#>ˆF�J‰J�wÔÀD€EÜ1;¸FÄG×1LÒ1LŒh�v—z‘z )Ó,Ô-ÐRV€GÜ�eœW×%Ò%Ü%/°¼×%@Ò%@ˆv�z‰z˜&Ô!ÀdˆÜ˜w¨×(8Ñ(8¸&À'Ç,Á,ÐPZÐ\`ÐaÐcjÓkˆä�fœg×&Ò&¨6¯:©:°j×+AÒ+AÜ $ V¨JÕ%7Ó 8ˆE�*ÑØˆäˆu�y‰y˜Ó ×4Ð4Ð$4Ó5€DÜ�%—)‘)˜IÓ&×JÐJÐ*JÓK€GØÔ Ô Ü,Ü˜uŸy™y¨Ó5Ó6×KÐK¸'×:KÑ:KØÜ  §¡¨=Ó!9Ó:Ü˜%Ÿ)™) FÓ+Ó,Ü&Ó(Øô
ˆô ! §¡¨?Ó!;Ó<ˆßØ'4�OÑ$øà˜4 ¨GÐ4ˆÜ˜UŸY™Y {Ó3Ó4ˆ	ßØ#,�KÑ Ü˜Ÿ	™	 &Ó)Ó*ˆßØ"�F‰OÜ�e—i‘i Ó)Ó*€FßØ"�ÑÜ˜' 7×#3Ñ#3°V¸W¿\¹\È7ÐT[Ð\Ð^eÓfÐfr!   c               ó$   € V ^8„  d   QhRRRRRR/# )r(   rT   r   rE   úOptional[str]r+   r   )r,   s   "r"   r-   r-   �   s!   € ÷ ñ ˜ð °-ð ÀNñ r!   c                ó   € V'       d   WR &   V # )rE   r   )rT   rE   s   &&r"   rQ   rQ   �   s   € ßØ"ˆiÑØ€Lr!   c               ó$   € V ^8„  d   QhRRRRRR/# )r(   rB   úSequence[PlannedCall]Úremote_resultszOptional[Sequence[Any]]r+   úlist[dict[str, Any]]r   )r,   s   "r"   r-   r-   ‡   s&   € ÷ ñ Ø"ðà+ðð ñr!   c           
     ó\  € \        V4      p. p\        \        V 4      4       F†  w  rEV\        V4      8  d@   \        W$,          \        4      '       d$   VP                  \        WRV,          4      4       KT  VP                  \        VP                  VP                  RRR7      4       Kˆ  	  V# )zICorrelate results by request slot; missing slots become per-entry errors.rJ   z-The gateway returned no result for this call.r1   )
r5   r4   Úlenr6   r   r8   rV   r<   r   r   )rB   r\   ÚresultsÚentriesÚslotÚplans   &&    r"   Úsplice_remote_resultsrd   ‡   sˆ   € ô
 ˜>Ó*€GØ$&€GÜ¤¨WÓ 5Ö6‰
ˆØ”#�g“,Ô¤:¨g­m¼W×#EÒ#EØ�N‰NÔ.¨t¸Tµ]ÓCÖDà�N‰NÜØ—M‘MØ—I‘IØ)ØKô	öñ	 7ð €Nr!   r2   rJ   c               ó(   € V ^8„  d   QhRRRRRRRR/# )r(   rB   r[   r3   r   r2   r+   r]   r   )r,   s   "r"   r-   r-   �   s0   € ÷ 	ñ 	Ø"ð	àð	ð ð		ð
 ñ	r!   c          
     óp   € V  Uu. uF%  p\        VP                  VP                  W!R 7      NK'  	  up# u upi )r1   )r<   r   r   )rB   r3   r2   rc   s   &&$ r"   Úfill_remote_failurerg   �   s:   € ñ óáˆDô 	�T—]‘] D§I¡I°D×JÙñð ùò s   …+3c               ó$   € V ^8„  d   QhRRRRRR/# )r(   Útotalr   Úentry_groupszSequence[Mapping[str, Any]]r+   r   r   )r,   s   "r"   r-   r-   ©   s&   € ÷ !ñ !Øð!à.ð!ð ñ!r!   c           
     óz  €  \        ^ \        V 4      4      pR.V,          pV F�  p\	        V4       F{  p\        V\        4      '       g   K  VP                  R4      p\        V\        4      '       g   KD  ^ Tu;8:  d   \        V4      8  g   K^  M Kb  W6,          e   Kn  \        V4      W6&   K}  	  K�  	  . p\        V4       F)  w  r…Vf   \        VRRRR7      pVP                  V4       K+  	  \        R V 4       4      p	RVR	\        V4      V	,
          R
V	R\        V4      /#   \        \        3 d    ^ p EL"i ; i)zCPreserve call order and fill unclaimed slots with per-entry errors.NrG   Ú rJ   z%No result was produced for this call.r1   c              3  ó8   "  € T F  pR V9   g   K  ^x € K  	  R# 5i)rD   Nr   )Ú.0rT   s   & r"   Ú	<genexpr>Ú#assemble_results.<locals>.<genexpr>Ä   s   é € Ð@¡V˜E¨w¸%Ñ/?—a’a£Vùs   ‚	�
r`   Úsuccess_countÚerror_countÚtotal_count)Úmaxr   Ú	TypeErrorÚ
ValueErrorr5   r6   r   r7   r_   r:   r4   r<   r8   Úsum)
ri   rj   Ú
slot_countÚslotsÚgrouprT   rG   Úmergedr   rr   s
   &*        r"   Úassemble_resultsr|   ©   s'  € ð
Ü˜œC ›JÓ'ˆ
ð .2¨F°ZÕ,?€EÛˆÜ! %Ö(ˆEÜ˜e¤W×-Ò-ÙØ—I‘I˜gÓ&ˆEÜ˜%¤×%Ô%¨!¨uÖ*A´s¸5³z×*AÒ*AÀeÅlÔFZÜ# E›{�“ó )ñ ð $&€FÜ$ UÖ+‰ˆØŠ=Ü ØØØ%Ø?ô	ˆEð 	�‰�eÖñ ,ô Ñ@¡VÓ@Ó@€Kà�6Øœ˜V› {Õ2Ø�{Ø”s˜6“{ð	ð øô+ ”zÐ"ô Ø‹
ðús   ‚D# Ä#D:Ä9D:c          
     ó,   € V ^8„  d   QhRRRRRRRRRR/# )	r(   r   r   r   r   r2   r3   r+   r   r   )r,   s   "r"   r-   r-   Í   s/   € ÷ ñ ˜3ð  cð °Cð À#ð È.ñ r!   c          	     ó   € R V RVRRVRV//# )rG   r   rD   r2   r3   r   )r   r   r2   r3   s   &&$$r"   r<   r<   Í   s$   € à�Ø�Ø�&˜$ 	¨7Ð3ðð r!   c               ó    € V ^8„  d   QhRRRR/# )r(   Úvaluer   r+   r*   r   )r,   s   "r"   r-   r-   Õ   s   € ÷ ñ ˜ð  ñ r!   c                ón   € \        V \        4      '       d   \        V \        \        34      '       g   V # R# )zBReject strings so malformed calls do not become character entries.r   )r6   r   r   Úbytes©r€   s   &r"   r5   r5   Õ   s)   € ä�%œ×"Ò"¬:°e¼cÄ5¸\×+JÒ+JØˆØ€Ir!   c               ó    € V ^8„  d   QhRRRR/# )r(   r€   r   r+   rX   r   )r,   s   "r"   r-   r-   Ü   s   € ÷ ñ �Cð ˜Mñ r!   c                óF   € \        V \        4      '       d   V '       d   V # R # )N)r6   r   rƒ   s   &r"   rP   rP   Ü   s   € Ü�%œ×Ò§%ØˆÙr!   N)r   r   r|   rg   r@   rV   rd   )Ú__doc__Ú
__future__r   Údataclassesr   Útypingr   r   r   r   Útools.connectors.gateway.errorsr   Útools.connectors.gateway.namesr	   Útools.connectors.turnr
   Ú__all__Ú	frozensetrS   r   r   r@   rV   rQ   rd   rg   r|   r<   r5   rP   r   r!   r"   Ú<module>r�      s´   ðñõ
 #å !ß 3Ó 3å FÝ ?Ý 4ò€ñ Ð4Ð6JÐKÓLÐ ñ �$Ô÷ð ó ðñ �$Ô÷'ð 'ó ð'õ"UõJ)gõXõð,	ð !÷		õ!õHõ÷r!   