+
    iHàj*  ã                   óŽ   € R t ^ RIHt ^ RIt^ RIHtHtHt ^ RIH	t	 ^ RI
Ht ^ RIHt ^ RIHt ^ RIHt R	R/R
 R lltR tR tR# )zINormalize local bridge batches before persistence and per-tool execution.)ÚdeepcopyN)Úcoalesce_tool_call_idÚdeterministic_call_idÚuniquify_tool_call_ids)ÚToolCall©Úis_connector_name)ÚMAX_CALLS_PER_DISPATCH)ÚTOOL_CALL_NAME)Únormalize_tool_call_entriesÚprovider_datac                óJ   € V ^8„  d   QhR\         R\        R,          R\         /# )é   Ú
tool_callsr   NÚreturn)ÚlistÚdict)Úformats   "Ú</home/ubuntu/.hermes/hermes-agent/agent/tool_call_batches.pyÚ__annotate__r      s&   € ÷ 1ñ 1¬$ð 1Ä$ÈÅ+ð 1ÔY]ñ 1ó    c          	     óš  € . / r2V  EF¦  pVP                   P                  \        8w  d   VP                  V4       K6   VP                   P                  p\        \        V\        4      '       d   \        P                  ! V4      MT4      w  rgV'       gZ   ^\        V4      u;8  d   \        8:  d>   M M:\        ;QJ d    R V 4       F  '       d   K   RM	  RM! R V 4       4      '       d   VP                  V4       Kú  \!        V4      p. p	\#        V4       FŒ  w  r«\        P$                  ! RV./RR7      pV
^ 8X  d   \'        V4      pWÍP                   n        M'\)        \+        \        WŒ,           V
4      \        VR7      pVP                  V4       V	P                  V4       KŽ  	  W“V&   EK©  	  \-        V4       V'       db   V'       dZ   R\.        3R\0        33 FE  w  rïVP3                  V4      ;p'       g   K   V UUu. uF  pV! VV4       F  qÝNK  	  K  	  uppW&   KG  	  V#   \        \        \        3 d    . Rrv EL·i ; iu uppi )	aq  Give every local entry the ordinary agent execution and persistence path.

Registry-only batch dispatch loses the live agent's inline tools, guardrails,
and per-server concurrency policy. Split the *new* assistant turn instead,
before it is persisted; never rewrite an earlier conversation message.
Connector-only batches keep their existing dispatcher and wire shape.
Tc              3   óF   "  € T F  p\        VR ,          4      x € K  	  R# 5i)ÚnameNr   )Ú.0Úentrys   & r   Ú	<genexpr>Ú,expand_local_tool_batches.<locals>.<genexpr>!   s   é € ÐMÁW¸EÔ(¨¨v­×7Ð7ÃWùs   ‚!FÚcalls)Úensure_ascii)Úidr   Ú	argumentsÚanthropic_content_blocksÚbedrock_content_blocks)Úfunctionr   r
   Úappendr!   r   Ú
isinstanceÚstrÚjsonÚloadsÚ	TypeErrorÚ
ValueErrorÚAttributeErrorÚlenr	   Úallr   Ú	enumerateÚdumpsr   r   r   r   Ú_anthropic_childrenÚ_bedrock_childrenÚget)r   r   ÚexpandedÚreplacementsÚcallÚargsÚentriesÚerrorÚ	parent_idÚchildrenÚindexr   r!   ÚchildÚkeyÚreplaceÚblocksÚblocks   &$                r   Úexpand_local_tool_batchesrB      sî  € ð   ˆlÜˆØ�=‰=×Ñ¤Ô/Ø�O‰O˜DÔ!Ùð	&Ø—=‘=×*Ñ*ˆDÜ8ÌZÐX\Ô^a×MbÒMb¼¿ºÀDÔ9IÐhlÓm‰NˆG÷ ˜œS ›\ÖCÔ-C×Cß“3ÑMÁWÓM—3—3’3ÑMÁWÓM×MÒMà�O‰O˜DÔ!ÙÜ)¨$Ó/ˆ	ØˆÜ% gÖ.‰LˆEÜŸ
š
 G¨e¨WÐ#5ÀEÔJˆIØ˜ŒzÜ  ›�Ø+4—‘Õ(ô !Ü,¬^¸YÕ=RÐTYÓZÜ'°9ô�ð �O‰O˜EÔ"Ø�O‰O˜EÖ"ñ /ð #+�YÔñ= ô> ˜8Ô$÷ ŸØ8Ô:MÐNØ6Ô8IÐJóL‰LˆCà&×*Ñ*¨3Ó/Ð/ˆv×/Ð/Ù9?Ô%j¹°ÉWÐUZÐ\hÖMiÀE¢eÑMi¡e¹Ò%j�Ó"ñLð €OøôC œ:¤~Ð6ô 	&Ø “Uð	&üó@ &ks   ½AH'ÈIÈ'IÉIc           
      ó   € V P                  R 4      R8X  d!   VP                  V P                  R4      4      MRpVf   V .# V Uu. uF>  p/ V CR\        V4      R\        P                  ! VP                  P
                  4      /CNK@  	  up# u upi )ÚtypeÚtool_user    NÚinput)r3   r   r(   r)   r$   r!   )rA   r5   r;   r=   s   &&  r   r1   r1   B   s‘   € Ø49·I±I¸fÓ4EÈÔ4Sˆ|×Ñ §	¡	¨$£Ô0ÐY]€HØÒØˆwˆáIQóSÙIQÀð<ˆuð <�dÔ1°%Ó8Ø”d—j’j §¡×!9Ñ!9Ó:ô<ÙIQñSð Sùò Ss   ÁABc                 óN  € V P                  R 4      p\        V\        4      '       d!   VP                  VP                  R4      4      MRpVf   V .# V Uu. uFD  p/ V CR / VCR\        V4      R\        P
                  ! VP                  P                  4      /C/CNKF  	  up# u upi )ÚtoolUseÚ	toolUseIdNrF   )r3   r&   r   r   r(   r)   r$   r!   )rA   r5   Útoolr;   r=   s   &&   r   r2   r2   J   s¶   € Ø�9‰9�YÓ€DÜ:DÀTÌ4×:PÒ:Pˆ|×Ñ §¡¨Ó 5Ô6ÐVZ€HØÒØˆwˆá^fóhÙ^fÐUZðQˆuð Q�ið "P Dð "P¨+Ô7LÈUÓ7SØ!(¬$¯*ª*°U·^±^×5MÑ5MÓ*Nñ"Pô QÙ^fñhð hùò hs   ÁA
B")Ú__doc__Úcopyr   r(   Úagent.message_sanitizationr   r   r   Úagent.transports.typesr   Útools.connectorsr   Útools.connectors.gateway.configr	   Útools.tool_search_catalogr
   Útools.tool_search_validationr   rB   r1   r2   © r   r   Ú<module>rT      s=   ðÙ Oå Û ç kÑ kÝ +Ý .Ý BÝ 4Ý Dð1ÐPT÷ 1òhSôhr   