+
    P0j1                    v    ^ RI Ht ^ RIt^ RIt^ RIHtHt ^ RIHt ^ RIH	t	 R R lt
R R	 lt ! R
 R4      tR# )    )annotationsN)datetimetimezone)Path)Anyc                   V ^8  d   QhRR/#    returnstr )formats   "./home/wildlama/agent-gui/agent_gui/sessions.py__annotate__r   
   s     2 2 2    c                 f    \         P                  ! \        P                  4      P	                  4       # N)r   nowr   utc	isoformatr   r   r   utc_nowr   
   s    <<%//11r   c                   V ^8  d   QhRR/# r	   r   )r   s   "r   r   r      s     ! ! !r   c                 N    \         P                  ! 4       P                  R ,          # ):N   N)uuiduuid4hexr   r   r   new_session_idr      s    ::<C  r   c                  R    ] tR t^tR R ltR R ltR R ltR R ltR	 R
 ltRt	R# )SessionStorec                   V ^8  d   QhRR/# )r
   rootz
str | Pathr   )r   s   "r   r   SessionStore.__annotate__   s     5 5Z 5r   c                	`    \        V4      V n        V P                  P                  R R R7       R# )T)parentsexist_okN)r   r"   mkdir)selfr"   s   &&r   __init__SessionStore.__init__   s!    J			t4r   c                    V ^8  d   QhRRRR/# )r
   
session_idr   r   r   r   )r   s   "r   r   r#      s     + + + +r   c                	    R P                  R V 4       4      pV'       g   \        R4      hV P                  V R2,          # ) c              3  b   "   T F%  qP                  4       '       g
   VR 9   g   K!  Vx  K'  	  R# 5i)z-_N)isalnum).0chs   & r   	<genexpr>%SessionStore._path.<locals>.<genexpr>   s      MJb**,,"*rrJs   /
/zsession_id invalidez.jsonl)join
ValueErrorr"   )r(   r,   safes   && r   _pathSessionStore._path   s:    wwMJMM233yydV6?**r   c               $    V ^8  d   QhRRRRRR/# )r
   r,   r   eventzdict[str, Any]r   r   )r   s   "r   r   r#      s!       ^  r   c           	     	   R \        4       RV/VCpV P                  V4      pVP                  RRR7      ;_uu_ 4       pVP                  \        P
                  ! VRR7      R,           4       RRR4       V#   + '       g   i     T# ; i)	
created_atr,   autf-8encodingF)ensure_ascii
N)r   r8   openwritejsondumps)r(   r,   r;   enrichedpathhandles   &&&   r   appendSessionStore.append   sn     ')\:OOzz*%YYsWY--LLH5ADHI . .-s   /A66B	c                    V ^8  d   QhRRRR/# )r
   r,   r   r   list[dict[str, Any]]r   )r   s   "r   r   r#   $   s     
 
s 
'; 
r   c                	\   V P                  V4      pVP                  4       '       g   . # . pVP                  R RR7      ;_uu_ 4       pV FB  pVP                  4       pV'       g   K  VP	                  \
        P                  ! V4      4       KD  	  RRR4       V#   + '       g   i     T# ; i)rr?   r@   N)r8   existsrD   striprK   rF   loads)r(   r,   rI   eventsrJ   lines   &&    r   readSessionStore.read$   s    zz*%{{}}I')YYsWY--zz|4MM$**T"23  .
  .-
 s   B')BB+	c                   V ^8  d   QhRR/# )r
   r   rN   r   )r   s   "r   r   r#   0   s      3 r   c                	   . p\        V P                  P                  R 4      R RR7       F  pV P                  VP                  4      pVP                  RVP                  R\        V4      R\        P                  ! VP                  4       P                  \        P                  4      P                  4       R\        R \        V4       4       R	4      /4       K  	  V# )
z*.jsonlc                6    V P                  4       P                  # r   )statst_mtime)ps   &r   <lambda>,SessionStore.list_sessions.<locals>.<lambda>2   s    AFFHDUDUr   T)keyreverser,   rT   
updated_atpreviewc              3  v   "   T F/  qP                  R 4      '       g   K  VP                  R R4      x  K1  	  R# 5i)contentr.   N)get)r1   es   & r   r3   -SessionStore.list_sessions.<locals>.<genexpr>9   s/     $hCSaW\W\]fWg%9QUU9b%9%9CSs   99r.   )sortedr"   globrV   stemrK   lenr   fromtimestampr[   r\   r   r   r   nextreversed)r(   sessionsrI   rT   s   &   r   list_sessionsSessionStore.list_sessions0   s    )+499>>)4:U_cdDYYtyy)FOO $))c&k ("8"89M9Mx||"\"f"f"ht$h8FCS$hjlm	 e r   )r"   N)
__name__
__module____qualname____firstlineno__r)   r8   rK   rV   rq   __static_attributes__r   r   r   r    r       s     5+
 r   r    )
__future__r   rF   r   r   r   pathlibr   typingr   r   r   r    r   r   r   <module>r{      s+    "   '  2!* *r   