
    P0j                        S SK Jr  S SKrS SKJr  S SKJrJr  SSKJ	r	  \ " S S5      5       r
 " S	 S
\5      r " S S5      r " S S5      rSS jrg)    )annotationsN)	dataclass)AnyProtocol   )utc_nowc                  .    \ rS rSr% S\S'   SrS\S'   Srg)	AgentResult
   zlist[dict[str, Any]]eventsspeakingstravatar_state N)__name__
__module____qualname____firstlineno____annotations__r   __static_attributes__r       ./mnt/DATA/WORK/agent-gui/agent_gui/adapters.pyr
   r
   
   s      "L#"r   r
   c                      \ rS rSrSS jrSrg)Adapter   c                    g Nr   selfmessageagent
session_ids       r   runAdapter.run   s    r   r   Nr    r   r!   dict[str, Any]r"   r   returnr
   r   r   r   r   r#   r   r   r   r   r   r      s    r   r   c                      \ rS rSrSS jrSrg)EchoAdapter   c           	     d    [        SUS   S[        5       S.SUS   SU 3SS0[        5       S	./S
9$ )Nstatusidu%   EchoAdapter actif, aucun LLM appelé.)typer!   content
created_atassistant_messagezEcho: adapterechor/   r!   r0   rawr1   r   )r
   r   r   s       r   r#   EchoAdapter.run   sU     %"4[F"))	 0"4[!'y1%v."))
 	
r   r   Nr%   r(   r   r   r   r*   r*      s    
r   r*   c                  6    \ rS rSrSS jr\SSS jj5       rSrg)	
CliAdapter*   c                F   UR                  S5      n[        U[        5      (       a  U(       d  [        SU R	                  US5      /S9$ U Vs/ s H.  n[        U5      R                  SU5      R                  SU5      PM0     nn[        UR                  SS5      5      nS	US
   SSR                  US S 5      -   [        U5      S:  a  SOS-   XgS.[        5       S.n [        R                  " USSUSS9n	U	R                  R!                  5       nU	R"                  R!                  5       nU	R$                  S:w  aG  [        SUU R	                  UU=(       d    U=(       d    SU	R$                   3U	R$                  XS.S9/S9$ [        USUS
   U=(       d    SU	R$                  US.[        5       S./S9$ s  snf ! [         a.  n
[        SXR	                  U[        U
5      5      /S9s S n
A
$ S n
A
f[        R                   a    [        SXR	                  US5      /S9s $ f = f)Ncommanderrorz!Commande CLI absente ou invalide.)r   r   z{prompt}z{session_id}timeout_secondsi,  r-   r.   zLancement commande:     z ... )argvr?   r5   TF)textcapture_outputtimeoutcheckzTimeout de l'agent CLI.r   u   Commande terminée avec code )
returncodestdoutstderr)r6   r2   u    [commande terminée sans sortie])rH   rJ   r7   )get
isinstancelistr
   _errorr   replaceintjoinlenr   
subprocessr#   FileNotFoundErrorTimeoutExpiredrI   striprJ   rH   )r   r    r!   r"   r=   partrC   rF   status_event	completedexcoutputrJ   s                r   r#   CliAdapter.run+   s9   ))I&'4(($E+NOP 
 hoogn_cD	!!*g6>>~zZgnoeii 1378 4[-bq0BBPSTXPY\]P]fcef =!)
	{"#I !!'')!!'')1$$ KKb&b.KIL`L`Ka,b+4+?+?6d   
 
 /"4[%K)K*3*>*>&Q"))	
 	
O p& ! 	jG\;;W\^abe^fKg<hii(( 	{G\;;W\^wKx<yzz	{s*   5F3F8 8
H #G+%H +2H H Nc                T    SU R                  SS5      UU=(       d    0 [        5       S.$ )Nr>   r.   unknownr5   )rK   r   )r!   r0   r6   s      r   rN   CliAdapter._errorg   s.     YYtY/9"!)
 	
r   r   r%   r   )r!   r&   r0   r   r6   zdict[str, Any] | Noner'   r&   )r   r   r   r   r#   staticmethodrN   r   r   r   r   r:   r:   *   s    :
x 
 
r   r:   c                    U R                  SS5      nUS:X  a
  [        5       $ US:X  a
  [        5       $ [        SU 35      e)Nr/   r4   cliu!   Type d'adaptateur non supporté: )rK   r*   r:   
ValueError)r!   kinds     r   adapter_forre   r   sC    99VV$Dv~}u}|
8?
@@r   )r!   r&   r'   r   )
__future__r   rS   dataclassesr   typingr   r   sessionsr   r
   r   r*   r:   re   r   r   r   <module>rj      sV    "  !    # # #
h 

 
*E
 E
PAr   