
    Pmj                    f    d Z ddlmZ ddlZddlmZmZ  ej        e          Z	ddZ
ddZddZdS )z@Hermes lifecycle dispatch for first-party observers and plugins.    )annotationsN)AnyList	hook_namestrkwargsr   return	List[Any]c                    	 ddl m}  || fi | n,# t          $ r t                              dd           Y nw xY wddlm}  |j        | fi |S )zENotify first-party observers, then invoke compatibility plugin hooks.r   observe_lifecycle"Built-in observability hook failedTexc_infoplugins)hermes_cli.observabilityr   	Exceptionloggerwarning
hermes_clir   invoke_hook)r   r   r   r   s       :/home/thesage/.hermes/hermes-agent/hermes_cli/lifecycle.pyr   r      s    L>>>>>>)..v.... L L L;dKKKKKL #"""""7y33F333s    &;;boolc                    	 ddl m}  ||           rdS n,# t          $ r t                              dd           Y nw xY wddlm} |                    |           S )z@Return whether a first-party observer or plugin consumes a hook.r   )handles_hookTz.Unable to inspect built-in observability hooksr   r   )r   r   r   r   r   r   r   has_hook)r   r   r   s      r   r   r      s    X999999<	"" 	4	 X X XGRVWWWWWX #"""""I&&&s    &??c                    	 ddl m}  |di |  n,# t          $ r t                              dd           Y nw xY wt          |                     d          pd          }|rb	 dd	lm} |j	        
                    |                                |
           n,# t          $ r t                              dd           Y nw xY wddlm}  |j        di | S )zBNotify observers and hard-close one core-owned Relay conversation.r   r   on_session_finalizer   Tr   
session_id )relay_runtime)profile_keyr    z&Core Relay session finalization failedr   )r   )r   r   r   r   r   r   getagentr"   SESSION_COORDINATORfinalize_conversationcurrent_profile_keyr   r   r   )r   r   r    r"   r   s        r   finalize_sessionr)   (   sT   L>>>>>>::6:::: L L L;dKKKKKL VZZ--344J 	T	T++++++-CC)==??% D      	T 	T 	TNNCdNSSSSS	T #"""""7?????s    &::$4B &CC)r   r   r   r   r	   r
   )r   r   r	   r   )r   r   r	   r
   )__doc__
__future__r   loggingtypingr   r   	getLogger__name__r   r   r   r)        r   <module>r2      s    F F " " " " " "         		8	$	$4 4 4 4' ' ' '@ @ @ @ @ @r1   