+
    kHàjj  ã                   óð   € R t ^ RIt^ RIHt ^ RIHt ^ RIHt ^ RI	H
t
 ]P                  ! R4      tRtR],           tR R ltR	 R
 ltRR/R R llt ! R R]
4      t]! RRRRRRRRRR7	      t]! ]4       R# )z¶ZAI / GLM provider profile.

GLM-4.5+ defaults to thinking ON, so ``reasoning_config`` is translated to
``extra_body.thinking``; GLM-5.2/5.3 also take a native ``reasoning_effort``.
N)ÚAny)Úreasoning_effort)Úregister_provider)ÚProviderProfilez^glm-(\d+)(?:\.(\d+))?c                ó>   € V ^8„  d   QhR\         R,          R\        /# )é   ÚmodelNÚreturn)ÚstrÚbool)Úformats   "ÚI/home/ubuntu/.hermes/hermes-agent/plugins/model-providers/zai/__init__.pyÚ__annotate__r      s"   € ÷ Uñ U¤C¨$¥Jð U´4ñ Uó    c                ó   € \         P                  T ;'       g    RP                  4       P                  4       4      p\	        V4      ;'       dB    \        VP                  ^4      4      \        VP                  ^4      ;'       g    ^ 4      3R8¬  # )uH   GLM thinking-capable model families: glm-4.5 and later (4.5, 4.6, 5â€¦).Ú )é   é   )Ú_GLM_VERSION_REÚmatchÚstripÚlowerr   ÚintÚgroup)r   r   s   & r   Ú_model_supports_thinkingr      sh   € ä×!Ñ! 5§; ;¨B×"5Ñ"5Ó"7×"=Ñ"=Ó"?Ó@€EÜ�‹;×TÐTœC §¡¨A£Ó/´°U·[±[À³^×5HÐ5HÀqÓ1IÐJÈfÑTÐTr   c                ód   € V ^8„  d   QhR\         R,          R\        \         R3,          R\        /# )r   r   NÚtokens.r	   )r
   Útupler   )r   s   "r   r   r      s-   € ÷ /ñ /”c˜D•jð /¬%´°S°­/ð /¼dñ /r   c                 óÈ   a€ T ;'       g    R P                  4       P                  4       o\        ;QJ d    V3R lV 4       F  '       g   K   R# 	  R# ! V3R lV 4       4      # )r   c              3   ó,   <"  € T F	  qS9   x € K  	  R # 5i)N© )Ú.0ÚtokenÚms   & €r   Ú	<genexpr>Ú_has_token.<locals>.<genexpr>   s   øé € Ð.¡v˜e˜Žz£vùs   ƒTF)r   r   Úany)r   r   r#   s   &&@r   Ú
_has_tokenr'      sI   ø€ Ø	�ˆ�"×ÑÓ×#Ñ#Ó%€Aß‹3Ô.¡vÓ.�3Œ3Ð.Š3Ð.ˆ3Ô.¡vÓ.Ó.Ð.r   r   c                óf   € V ^8„  d   QhR\         R,          R\        R,          R\        R,          /# ©r   Úreasoning_configNr   r	   )Údictr
   )r   s   "r   r   r      s0   € ÷ 4ñ 4´°tµð 4ÄsÈTÅzð 4Ô]`ÐcgÕ]gñ 4r   c               ó<  € \         P                  ! V 4      pVe   VR8X  d   R# \        V\        4      '       d#   \         P                  \         P
                  RrTpM!\         P                  \         P                  RrTp\         P                  ! W#V4      pWc9   d   V# T# )z‘Hermes effort -> GLM vocabulary (5.2: high/max; 5.3: low..max). Below-floor
efforts clamp to the floor; disabled/unset leaves the server default.NÚnoneÚlowÚhigh)	Úre_Úrequested_effortr'   Ú_GLM_5_3_TOKENSÚGLM53_EFFORTSÚGLM53_OVERRIDESÚGLM52_EFFORTSÚGLM52_OVERRIDESÚclamp_effort)r*   r   ÚeffortÚeffortsÚ	overridesÚfloorÚclampeds   &$     r   Ú_glm_5_2_reasoning_effortr=      sƒ   € ô ×!Ò!Ð"2Ó3€FØ‚~˜ 6Ô)ÙÜ�%œ×)Ò)Ü$'×$5Ñ$5´s×7JÑ7JÈE˜Eˆ˜Eä$'×$5Ñ$5´s×7JÑ7JÈF˜EˆÜ×Ò˜v°	Ó:€GØÔ(ˆ7Ð3¨eÐ3r   c                   óB   a € ] tR t^-t o RtRRRR/V 3R lR lltRtV tR# )Ú
ZaiProfileuE   Z.AI / GLM â€” extra_body.thinking on/off + GLM-5.2 reasoning_effort.r*   Nr   c          
      óŠ   <€ V ^8„  d   QhRS[ R,          RS[R,          RS[S[ S[S[3,          S[ S[S[3,          3,          /# r)   )r+   r
   r   r   )r   Ú__classdict__s   "€r   r   ÚZaiProfile.__annotate__0   sG   ø€ ÷ %ñ %Ù#'¨$¥;ð%Ù>AÀD½jð%á	‰t‘C™�H�~™t¡C© H�~Ð-Õ	.ñ%r   c               óf  € / p/ p\        V\        4      p\        V4      '       g   V'       g   WE3# \        V\        4      '       dN   VP                  R 4      RJpV'       g   \        V\        4      '       d   RpRVR&   V'       d   RR RR/MRR/VR&   V'       d   \        WR	7      pVe   W…R&   WE3# )
ÚenabledFTr.   r   ÚtypeÚclear_thinkingÚdisabledÚthinking)r   )r'   Ú_GLM_5_2_TOKENSr   Ú
isinstancer+   Úgetr2   r=   )	Úselfr*   r   ÚcontextÚ
extra_bodyÚ	top_levelÚis_5_2rD   r8   s	   &$$,     r   Úbuild_api_kwargs_extrasÚ"ZaiProfile.build_api_kwargs_extras0   s»   € ð &(ˆ
Ø$&ˆ	Ü˜E¤?Ó3ˆÜ'¨×.Ò.·vØÐ(Ð(äÐ&¬×-Ò-Ø&×*Ñ*¨9Ó5¸UÐBˆGßœz¨%´×AÒAà�Ø05�	Ð,Ñ-÷ V] f¨iÐ9IÈ5Ñ%QÐciÐkuÐbvˆJ�zÑ"ßÜ.Ð/?ÔMˆFØÒ!Ø06Ð,Ñ-ØÐ$Ð$r   r    )Ú__name__Ú
__module__Ú__qualname__Ú__firstlineno__Ú__doc__rQ   Ú__static_attributes__Ú__classdictcell__)rA   s   @r   r?   r?   -   s'   ø‡ € ÙOð%Ø15ð%ØKO÷%÷ %ð %r   r?   Úzaiz
Z.AI (GLM)u   Z.AI / GLM â€” Zhipu AI modelszhttps://z.ai/zhttps://api.z.ai/api/paas/v4zglm-4.5-flash)	ÚnameÚaliasesÚenv_varsÚdisplay_nameÚdescriptionÚ
signup_urlÚfallback_modelsÚbase_urlÚdefault_aux_model)zglm-5.3zglm-5-3zglm-5p3)úglm-5.2zglm-5-2zglm-5p2)Úglmzz-aizz.aiÚzhipu)ÚGLM_API_KEYÚZAI_API_KEYÚZ_AI_API_KEY)rd   zglm-5zglm-4-9b)rW   ÚreÚtypingr   Úagentr   r0   Ú	providersr   Úproviders.baser   Úcompiler   r2   rI   r   r'   r=   r?   rZ   r    r   r   Ú<module>rp      sŒ   ðñó 
Ý å )Ý 'Ý *à—*’*Ð6Ó7€à3€Ø3°oÕE€õUõ/ð
4ÐTX÷ 4ô%�ô %ñ8 Ø	Ð8Ø;È,Ø0¸_Ø4Ð?]Ø%ô€ñ �#Ö r   