+
    iHàj¾  ã                  óN   € R t ^ RIHt ^ RIt^ RIHt R R ltR	RR/R R llltR# )
z7Compatibility helper for explicit agent stop producers.)ÚannotationsN)ÚAnyc               ó$   € V ^8„  d   QhRRRRRR/# )é   Úcallable_objr   ÚnameÚstrÚreturnÚbool© )Úformats   "Ú;/home/ubuntu/.hermes/hermes-agent/agent/interrupt_compat.pyÚ__annotate__r   	   s!   € ÷ 
ñ 
 3ð 
¨cð 
°dñ 
ó    c                ó  a€  \         P                  ! V 4      P                  P                  4       p\        ;QJ d    T3R lT 4       F  '       g   K   R# 	  R# ! T3R lT 4       4      #   \        \
        3 d     R# i ; i)zAReturn whether a callable explicitly supports a keyword argument.Fc              3  óú   <"  € T Fp  pVP                   \        P                  P                  J ;'       g>    VP                  S8H  ;'       d'    VP                   \        P                  P
                  Jx € Kr  	  R # 5i©N)ÚkindÚinspectÚ	ParameterÚVAR_KEYWORDr   ÚPOSITIONAL_ONLY)Ú.0Úpr   s   & €r   Ú	<genexpr>Ú#_accepts_keyword.<locals>.<genexpr>   si   øé € ð ñ ˆAð 	
�‰”'×#Ñ#×/Ñ/Ð/÷ 	Pð 	PØ�F‰F�d‰N×NÐN˜qŸv™v¬W×->Ñ->×-NÑ-NÐNô	Pãùs   ƒ1A;µA;Á/A;T)r   Ú	signatureÚ
parametersÚvaluesÚ	TypeErrorÚ
ValueErrorÚany)r   r   r   s   &f r   Ú_accepts_keywordr"   	   s�   ø€ ðÜ×&Ò& |Ó4×?Ñ?×FÑFÓHˆ
÷ ‹3ô ñ ó�3Œ3ð Š3ð ˆ3ô ñ óó ð øô ”zÐ"ô Úðús   ƒ.A+ Á+B Á?B Útool_reasonc               ó(   € V ^8„  d   QhRRRRRRRR/# )r   Úagentr   Úmessagez
str | Noner#   r	   r
   r   )r   s   "r   r   r      s0   € ÷ !ñ !Øð!àð!ð ð	!ð
 
ñ!r   c               ó>  €  \         P                  ! V R4       \        V RR4      p\	        V4      '       g   \        V RR4      p\	        V4      '       g   R# / pVe   \        VR4      '       d   W$R&   Vf   V! R/ VB  R# V! V3/ VB  R#   \         d    Rp Lui ; i)aæ  Request an explicit stop, falling back to the legacy interrupt ABI.

New agents expose ``hard_interrupt(message=None)``; third-party agents and old test
doubles may only expose ``interrupt(message=None)`` and must not receive keyword
arguments they do not know. ``tool_reason`` is a trusted, fixed category that may be
exposed in model-visible tool cancellation output, forwarded only when the callable
explicitly supports it. Returns ``False`` only when neither callable is available.
Úhard_interruptNÚ	interruptFr#   Tr   )r   Úgetattr_staticÚgetattrÚAttributeErrorÚcallabler"   )r%   r&   r#   r)   Úkwargss   &&$  r   Úrequest_hard_interruptr/      s­   € ð ;Ü×Ò˜uÐ&6Ô7ô ˜EÐ#3°TÓ:ˆ	Ü�I×ÒÜ˜E ;°Ó5ˆ	Ü�I×ÒÙØ€FØÒÔ#3°I¸}×#MÒ#MØ +ˆ}ÑØ‚ÙÑ�FÒñ ñ 	�'Ñ$˜VÒ$Ùøô ô ØŠ	ðús   ‚B ÂBÂBr   )Ú__doc__Ú
__future__r   r   Útypingr   r"   r/   r   r   r   Ú<module>r3      s*   ðÙ =å "ã Ý õ
ñ!ð #÷	!ò !r   