+
    P0j                       ^ RI Ht ^ RIt^ RIt^ RIt^ RIHtHt ^ RIH	t	 ^ RI
HtHt ^RIHt ^RIHtHt ^RIHtHt ^R	IHtHtHt ]	! ]4      P5                  4       P6                  P6                  t]R
,          t]R,          R,          t]R,          R,          t ! R R]4      t  ! R R]4      t!RR R llt"]#R8X  d
   ]"! 4        R# R# )    )annotationsN)BaseHTTPRequestHandlerThreadingHTTPServer)Path)parse_qsurlparse)adapter_for)available_states
get_avatar)
find_agentload_agents)SessionStorenew_session_idutc_nowstaticconfigszagents.jsondatasessionsc                  >   a  ] tR t^tR V 3R llt]R 4       tRtV ;t# )AgentGuiServerc                    V ^8  d   QhRRRR/# )   config_pathr   sessions_root )formats   ")/home/wildlama/agent-gui/agent_gui/app.py__annotate__AgentGuiServer.__annotate__   s     4 4 4^b 4    c                	R   < \         SV `  W4       W0n        \        V4      V n        R # N)super__init__r   r   r   )selfserver_addressRequestHandlerClassr   r   	__class__s   &&&&&r   r$   AgentGuiServer.__init__   s"    =&$]3r    c                	,    \        V P                  4      # r"   )r   r   r%   s   &r   agentsAgentGuiServer.agents   s    4++,,r    )r   r   )	__name__
__module____qualname____firstlineno__r$   propertyr,   __static_attributes____classcell__)r(   s   @r   r   r      s!    4 4
 - -r    r   c                  b    ] tR t^ t$ R]R&   R R ltR tR tR tR R	 lt	R
 t
RR R lltRtR# )Handlerr   serverc                   V ^8  d   QhRR/# )r   r   strr   )r   s   "r   r   Handler.__annotate__#   s     . .# .r    c                	6    \        R W,          ,           4       R# )z[agent-gui] N)print)r%   r   argss   &&*r   log_messageHandler.log_message#   s    nv},-r    c           	     	n   \        V P                  4      pVP                  R 8X  d    V P                  RRRRR\        4       /4      # VP                  R8X  d(   V P                  RV P                  P
                  /4      # VP                  R8X  dT   \        VP                  4      P                  R	R
.4      ^ ,          pV P                  R\        V4      R\        4       /4      # VP                  R8X  d6   V P                  RV P                  P                  P                  4       /4      # VP                  R8X  dd   \        VP                  4      P                  RR.4      ^ ,          pV P                  RV P                  P                  P                  V4      /4      # V P                  VP                  4      # )z/healthokTservicez	agent-guitimez/api/agentsr,   z/api/avatarstateidleavatarstatesz/api/sessionsr   z/api/history
session_id events)r   pathjson_responser   r7   r,   r   querygetr   r
   r   list_sessionsreadserve_static)r%   parsedrD   rH   s   &   r   do_GETHandler.do_GET&   s^   $))$;;)#%%tT9k6SZS\&]^^;;-'%%x1C1C&DEE;;-'V\\*..wA!DE%%xE1BHN^N`&abb;;/)%%z4;;3G3G3U3U3W&XYY;;.(!&,,/33L2$GJJ%%x1E1E1J1J:1V&WXX  --r    c                	    V P                   R 8X  d   V P                  R\        4       /4      # V P                   R8X  d   V P                  4       # V P                  RR/RR7      # )z/api/sessionrH   z	/api/chaterrorzEndpoint inconnu  status)rK   rL   r   handle_chatr+   s   &r   do_POSTHandler.do_POST6   s^    99&%%|^5E&FGG99###%%!!7,>"?!LLr    c                	:    V P                  4       p\        VP                  R R4      4      p\        VP                  RR4      4      P                  4       p\        VP                  R4      ;'       g    \	        4       4      pV'       g   V P                  RR/RR7      # \        V P                  P                  V4      pV P                  P                  P                  VR	R
R VRV/4       V P                  P                  P                  VR	RR VRR/4       \        V4      P                  W5V4      pVP                   Uu. uF'  qpP                  P                  P                  WG4      NK)  	  ppV P                  RVR VRVR\        VP                  4      /4      # u upi   \          d4   p	T P                  R\        T	4      R\        R4      /RR7      u Rp	?	# Rp	?	i\"         d4   p	T P                  R\        T	4      R\        R4      /RR7      u Rp	?	# Rp	?	ii ; i)agentechomessagerI   rH   rV   zMessage videi  rX   typeuser_messagecontentrY   u   Agent en réflexion...rJ   rF   rW   Ni  )	read_jsonr9   rN   stripr   rL   r   r7   r,   r   appendr	   runrJ   r   avatar_stateKeyError	Exception)
r%   payloadagent_idr`   rH   r^   resulteventstored_eventsexcs
   &         r   rZ   Handler.handle_chat=   s   	fnn&G7;;w78H'++i45;;=GW[[6JJ.:JKJ))7N*CC)PPt{{118<EKK  ''
V^WV^`ikr4stKK  ''
VXwPXZce}4~ '++GJGFY_YfYfgYfPU[[1188KYfMg%% *Xmj)<)<=	  h  	f%%wC(JwDW&Xad%ee 	f%%wC(JwDW&Xad%ee	fsU   BF  
F  B!F   -F--F  F   H+(GHH&H'(HHHc                   V ^8  d   QhRR/# )r   request_pathr9   r   )r   s   "r   r   r:   Y   s       r    c                	   VR9   d   RMVP                  R 4      p\        V,          P                  4       p\        P                  4       VP                  9  d/   V\        P                  4       8w  d   V P	                  RR/RR7      # VP                  4       '       d   VP                  4       '       g   V P	                  RR/RR7      # \        P                  ! \        V4      4      ^ ,          ;'       g    RpVP                  4       pV P                  ^4       V P                  R	V4       V P                  R
\        \        V4      4      4       V P                  4        V P                  P!                  V4       R# )/z
index.htmlrV   zChemin interditi  rX   zFichier introuvablerW   zapplication/octet-streamContent-TypeContent-LengthN)ru   rI   )lstripSTATIC_ROOTresolveparentsrL   existsis_file	mimetypes
guess_typer9   
read_bytessend_responsesend_headerlenend_headerswfilewrite)r%   rs   relativerK   content_typebodys   &&    r   rQ   Handler.serve_staticY   s$   #/9#<<,BUBUVYBZh&//1 4ATATAV9V%%w0A&B3%OO{{}}DLLNN%%w0E&Fs%SS ++CI6q9WW=W 36)3s4y>:

r    c                	    \        V P                  P                  R R4      4      pV'       d+   V P                  P	                  V4      P                  R4      MRp\        P                  ! V4      # )rw   0utf-8z{})intheadersrN   rfilerP   decodejsonloads)r%   lengthr   s   &  r   rd   Handler.read_jsonh   sN    T\\%%&6<=:@tzzv&--g6dzz$r    c                   V ^8  d   QhRR/# )r   rY   r   r   )r   s   "r   r   r:   m   s      S r    c                	:   \         P                  ! VR ^R7      P                  R4      pV P                  V4       V P	                  RR4       V P	                  R\        \        V4      4      4       V P                  4        V P                  P                  V4       R# )F)ensure_asciiindentr   rv   zapplication/json; charset=utf-8rw   N)
r   dumpsencoder   r   r9   r   r   r   r   )r%   rk   rY   r   s   &&& r   rL   Handler.json_responsem   su    zz'a@GGP6")JK)3s4y>:

r    r   N)   )r.   r/   r0   r1   __annotations__r>   rS   r[   rZ   rQ   rd   rL   r3   r   r    r   r6   r6       s2    .. Mf8 
 r    r6   c                   V ^8  d   QhRR/# )r   argvzlist[str] | Noner   )r   s   "r   r   r   v   s       r    c                D   \         P                  ! R R7      pVP                  RRR7       VP                  R\        RR7       VP                  R\        \
        R7       VP                  R	\        \        R7       VP                  V 4      p\        VP                  VP                  3\        VP                  VP                  4      p\        R
VP                   RVP                   24       \        RVP                   24       \        R4       VP                  4        R# )zAgent GUI local)descriptionz--hostz	127.0.0.1)defaultz--porti="  )ra   r   z--configz
--sessionsu   Agent GUI lancé: http://:zConfig agents: u   Ctrl+C pour arrêter.N)argparseArgumentParseradd_argumentr   r   DEFAULT_CONFIGDEFAULT_SESSIONS
parse_argsr   hostportr6   configr   r<   serve_forever)r   parserr=   r7   s   &   r   mainr   v   s    $$1BCF
+6
sD9

~F
49IJT"DTYY		2GT[[$--XF	%dii[$))
=>	ODKK=
)*	
!"
r    __main__r"   )$
__future__r   r   r   r~   http.serverr   r   pathlibr   urllib.parser   r   adaptersr	   rF   r
   r   r   r   r   r   r   r   r   __file__rz   parentPROJECT_ROOTry   r   r   r   r6   r   r.   r   r    r   <module>r      s    "    C  + ! 0 + ; ;H~%%'..55X%	)M9&(:5 -( -S$ Sl zF r    