+
    iHàj  ã                  óš   € R t ^ RIHt ^ RIt^ RIHtHt ]P                  ! ]4      t	R R lt
RRR/R R	 llltR
 R ltR R ltR R ltR# )z®Memory-provider tool-schema plumbing: the gate that decides whether external memory-provider
tools are exposed on an agent's tool surface, and the injection of their schemas.)ÚannotationsN)ÚAnyÚOptionalc               ó    € V ^8„  d   QhRRRR/# )é   Úschemar   ÚreturnzOptional[dict[str, Any]]© )Úformats   "Ú?/home/ubuntu/.hermes/hermes-agent/agent/memory_manager_tools.pyÚ__annotate__r      s   € ÷ >ñ > #ð >Ð*Bñ >ó    c                ó"  € \        V \        4      '       g   R# V P                  R4      R8X  d/   \        V P                  R4      \        4      '       d
   V R,          p V P                  RR4      pV'       d   \        V\        4      '       d   V # R# )aP  Return a bare function-tool dict with a resolvable top-level ``name``, else None.

Providers should return ``{"name", "description", "parameters"}`` but some return the
wrapped OpenAI form; wrapping that twice yields a nameless ``function`` and strict
providers (DeepSeek) reject the ENTIRE request, so both shapes are normalized here.
NÚtypeÚfunctionÚnameÚ )Ú
isinstanceÚdictÚgetÚstr)r   r   s   & r   Únormalize_tool_schemar      sm   € ô �fœd×#Ò#ÙØ‡z�z�&Ó˜ZÔ'¬J°v·z±zÀ*Ó7MÌt×,TÒ,TØ˜
Õ#ˆØ�:‰:�f˜bÓ!€Dßœj¨¬s×3Ò3ˆ6Ð=¸Ð=r   Úmemory_tool_presentFc               ó(   € V ^8„  d   QhRRRRRRRR/# )r   Úenabled_toolsetszOptional[list[str]]Údisabled_toolsetsr   Úboolr   r	   )r
   s   "r   r   r      s,   € ÷ ñ Ð4Gð Ð\oð Ø:>ðØKOñr   c               ó<  a€ V'       d
   RV9   d   R# V'       g   V f   R# V '       g   R# RV 9   d   R#  ^ RI Ho \        ;QJ d    V3R lV  4       F  '       g   K   R# 	  R# ! V3R lV  4       4      #   \         d    \        P                  RRR7        R# i ; i)z@Return whether external memory-provider tools should be exposed.ÚmemoryFT)Úresolve_toolsetc              3  ó:   <"  € T F  pR S! V4      9   x € K  	  R# 5i©r   Nr	   )Ú.0r   r   s   & €r   Ú	<genexpr>Ú0memory_provider_tools_enabled.<locals>.<genexpr>)   s   øé € ÐRÑAQ¸�8™¨tÓ4Ö4ÓAQùs   ƒz<Failed to resolve enabled toolsets for memory-provider tools)Úexc_info)Útoolsetsr   ÚanyÚ	ExceptionÚloggerÚdebug)r   r   r   r   s   &&$@r   Úmemory_provider_tools_enabledr+      sˆ   ø€ ÷ ˜XÐ):Ô:ÙßÐ.Ò6ÙßÙØÐ#Ô#ÙðÝ,ç‹sÔRÑAQÓR�sŒsÐRŠsÐRˆsÔRÑAQÓRÓRÐRøÜô Ü�‰ÐSÐ^bˆÔcÚðús)   µA5 ÁA5 ÁA5 Á A5 Á$A5 Á5"BÂBc               ó    € V ^8„  d   QhRRRR/# )r   Útoolr   r   r	   )r
   s   "r   r   r   /   s   € ÷ Tñ T�Sð T˜Sñ Tr   c                ót   € \        V \        4      '       d"   V P                  R / 4      P                  R4      # R# )r   r   N)r   r   r   )r-   s   &r   Ú
_tool_namer/   /   s/   € Ü3=¸dÄD×3IÒ3Iˆ4�8‰8�J Ó#×'Ñ'¨Ó/ÐSÈtÐSr   c               ó    € V ^8„  d   QhRRRR/# )r   Úagentr   r   r   r	   )r
   s   "r   r   r   3   s   € ÷ 	Yñ 	Y¨ð 	Y°ñ 	Yr   c                ó  € \        V RR4      p\        V\        \        34      ;'       d5    \        ;QJ d    R V 4       F  '       g   K   RM	  RM! R V 4       4      p\        V RR4      \        V RR4      rC\        W4VR7      # )	zÏWhether external memory-provider tools are exposed on ``agent``.

Same gate as ``inject_memory_provider_tools`` so a provider's ``system_prompt_block()``
never advertises tools absent from the tool surface.
ÚtoolsNc              3  ó>   "  € T F  p\        V4      R 8H  x € K  	  R# 5ir!   )r/   )r"   Úts   & r   r#   Ú0memory_provider_tools_exposed.<locals>.<genexpr>:   s   é € Ð6`ÑZ_ÐUV´zÀ!³}ÈÖ7PÓZ_ùs   ‚TFr   r   )r   )Úgetattrr   ÚlistÚtupler'   r+   )r1   r3   ÚpresentÚenabledÚdisableds   &    r   Úmemory_provider_tools_exposedr=   3   sq   € ô �E˜7 DÓ)€EÜ˜¤¤u Ó.×`Ð`·3³3Ñ6`ÑZ_Ó6`·3·3²3Ñ6`ÑZ_Ó6`Ó3`€GÜ Ð'9¸4Ó@Ä'È%ÐQdÐfjÓBkˆXÜ(¨ÐPWÔXÐXr   c               ó    € V ^8„  d   QhRRRR/# )r   r1   r   r   Úintr	   )r
   s   "r   r   r   ?   s   € ÷ +ñ +¨ð +°ñ +r   c                óÄ  € \        V RR4      p\        V RR4      pV'       d   Vf   ^ # \        V 4      '       g‰   \        VRR4      ;'       g    .  Uu. uF  p\        VRR4      R8w  g   K  VNK  	  ppV'       dE   \        P                  RV Uu. uF#  p\        VR\	        V4      P
                  4      NK%  	  up4       ^ # \        VR	R4      p\        V4      '       g   ^ # \        V R
R4      f   \        4       V n        V Uu0 uF&  p\        V\        4      '       g   K  \        V4      kK(  	  pp^ pV! 4        F’  p	\        V	4      p
V
f   \        P                  RV	4       K*  V
R,          V9  g   K:  VP                  RRRV
/4       V P                  P                  V
R,          4       VP                  V
R,          4       V^,          pK”  	  V# u upi u upi u upi )zZAppend external memory-provider tool schemas to an agent tool surface; return count added.Ú_memory_managerNr3   Ú	providersr   r   ÚbuiltinuÃ   Memory provider(s) %s configured but the 'memory' toolset is gated off for this session (platform_toolsets / agent.disabled_toolsets) â€” provider tools and system-prompt block are both withheld.Úget_all_tool_schemasÚvalid_tool_nameszlMemory provider returned a tool schema with no resolvable name; skipping to avoid poisoning the request (%r)r   r   )r7   r=   r)   Úinfor   Ú__name__ÚcallableÚsetrE   r   r   r/   r   ÚwarningÚappendÚadd)r1   Úmemory_managerr3   ÚpÚ
_providersÚget_schemasr-   Úexisting_tool_namesÚaddedÚ
raw_schemar   s   &          r   Úinject_memory_provider_toolsrT   ?   s¿  € ä˜UÐ$5°tÓ<€NÜ�E˜7 DÓ)€Eß˜Uš]Ùä(¨×/Ò/ô ")¨¸ÀdÓ!K×!QÐ!QÈrÐ!Qó >Ñ!Q˜AÜ   F¨BÓ/°9Ñ<÷ �aÑ!Qˆ
ð >çÜ�K‰Kð+ñ @JÓJ¹z¸!”˜˜F¤D¨£G×$4Ñ$4Ö5¹zÑJôñ ä˜.Ð*@À$ÓG€KÜ�K× Ò ÙäˆuÐ(¨$Ó/Ò7Ü!$£ˆÔÙ8=ÓX¹°ÄÈDÔRV×AWÔ+œ: dÖ+¹ÐÐXØ€EÙ!–mˆ
Ü& zÓ2ˆØŠ>Ü�N‰NðEØFPöð �F�^Ð#6Ö6Ø�L‰L˜& *¨j¸&ÐAÔBØ×"Ñ"×&Ñ& v¨f¥~Ô6Ø×#Ñ# F¨6¥NÔ3Ø�Q�JŠEñ $ð €LùòA>ùò Kùò Ys   ÁGÁ,GÂ)G
ÄGÄ!G)N)Ú__doc__Ú
__future__r   ÚloggingÚtypingr   r   Ú	getLoggerrG   r)   r   r+   r/   r=   rT   r	   r   r   Ú<module>rZ      sN   ðñUõ #ã ß  à	×	Ò	˜8Ó	$€õ>ñØAF÷ð õ(Tõ	Y÷+r   