
    љi5                         S SK JrJr  S SKrS SKJr  S SKrS SKJr  S SKrS SK	J
r
Jr  SSKJr  \R                  " \5      r " S S	\5      r " S
 S\5      rg)    )ABCabstractmethodN)datetime)Tuple)
STSRequestSTSResponse   )MemorySearchResultc                       \ rS rSr\SSS.S\S\S\S\S\S	\4S
 jj5       r\S\S\S\	4S j5       r
\S\S\S\4S j5       rSrg)MemoryClientBase   Nsinceuntilcharacter_iduser_idqueryr   r   returnc                   #    g 7fN )selfr   r   r   r   r   s         S/home/james-whalen/.local/lib/python3.13/site-packages/aiavatar/character/memory.pysearchMemoryClientBase.search   s
      	   requestresponsec                   #    g 7fr   r   r   r   r   r   s       r   add_messagesMemoryClientBase.add_messages   
      	r   content
diary_datec                   #    g 7fr   r   )r   r   r$   r%   s       r   upsert_diaryMemoryClientBase.upsert_diary$   r#   r   r   )__name__
__module____qualname____firstlineno__r   strr
   r   r   r   r!   r   r'   __static_attributes__r       r   r   r      s     	 	 		
 	 	 	 
	 	   	
     	
  r/   r   c                       \ rS rSr S#SSSSSSSS.S\S	\S
\S\S\S\S\S\4S jjjrSSS.S\S\S\S\S\S\	4S jjr
S\S\S\4S jrS rS\S\S\4S  jrS! rS"rg)$MemoryClient/      Fd      g      N@)top_ksearch_contentinclude_retrieved_datamax_connectionsmax_keepalive_connectionstimeoutdebugbase_urlr6   r7   r8   r9   r:   r;   r<   c          	         Xl         X l        X0l        X@l        [        R
                  " S[        R                  " U5      [        R                  " UUS9S9U l        Xl	        [        R                  " 5       U l        S U l        g )NF)r9   r:   )follow_redirectsr;   limits)r=   r6   r7   r8   httpxAsyncClientTimeoutLimitshttp_clientr<   asyncioQueue_queue_worker_task)	r   r=   r6   r7   r8   r9   r:   r;   r<   s	            r   __init__MemoryClient.__init__0   sj     !
,&<# ,,"MM'*<< /*C
 
EL]]_*.r/   Nr   r   r   r   r   r   r   c                  #    U(       a  U(       a  U(       d
  [        S S S9$ U R                  (       a!  [        R                  SU SU SU SU 35         U R                  R                  U R                   S3US-   U-   UU R                  U R                  U R                  UUS.S	9I S h  vN nUR                  5         UR                  5       nU R                  (       a  [        R                  S
U S35        [        US   S   US   S   S9$  Nd! [         a  n[        R                  SU 35        UeS nAff = f7f)N)answerretrieved_datazChatMemory.search: user_id=z	 / query=z	 / since=z	 / until=z/search_)r   r   r6   r7   r8   r   r   urljsonzChatMemory.search: result= resultrM   rN   zError at search ChatMemory: )r
   r<   loggerinforE   postr=   r6   r7   r8   raise_for_statusrR   	Exception	exception)	r   r   r   r   r   r   resp	resp_jsonexs	            r   r   MemoryClient.searchM   sB     l%%T$GG::KK5gYiwiX]W^^ghmgnop	))..}}oW-&}|;"!ZZ&*&9&9.2.I.I"" /  D !!#		Izz81EF% *84(23CD %.  	;B4@AH	s>   AD>AD +D,A#D D>D 
D;D66D;;D>r   r   c                   #    U R                   c)  [        R                  " U R                  5       5      U l         U R                  R                  X#U45      I S h  vN   g  N7fr   )rI   rF   create_task_process_queuerH   putr    s       r   r!   MemoryClient.add_messagesy   sJ      $ ' 3 3D4G4G4I JDkkoow,?@@@s   AA!AA!c           	        #     U R                   R                  5       I S h  vN u  pn UR                  (       a:  UR                  (       a)  UR                  (       a  UR
                  (       a  U(       d   U R                   R                  5         M  U R                  R                  U R                   S3UR                  S-   U-   UR                  SUR                  S.SUR
                  S./S.S9I S h  vN nUR                  5         U R                   R                  5         GM$   GN N4! [         a"  n[        R                  SU 35         S nANIS nAff = f! U R                   R                  5         f = f7f)	Nz/historyrO   user)roler$   	assistant)r   
session_idmessagesrP   z"Error processing queued messages: )rH   getr   
context_idtext
voice_text	task_donerE   rW   r=   rX   rY   rU   rZ   )r   r   r   r   r[   r]   s         r   ra   MemoryClient._process_queue   s9    48KKOO4E.E+G|(g.@.@\d\o\o  xD  %%' "--22==/2#*??S#8<#G&-&8&8%+E%0X=P=PQ% 3 
 
 %%' %%') .E
  L  #EbT!JKKL %%'sd   E;D(E;AD- 6E;A$D- 6D+7D- E;+D- -
E7EE EE E88E;r$   r%   c                   #    U R                   R                  U R                   S3UUUR                  S5      S.S9I S h  vN nUR	                  5       $  N7f)Nz/diaryz%Y-%m-%d)r   r$   r%   rP   )rE   rW   r=   strftimerR   )r   r   r$   r%   r[   s        r   r'   MemoryClient.upsert_diary   sa      %%**==/('"(11*= + 
 
 yy{
s   >A AAc                   #    U R                   b/  U R                   R                  5          U R                   I S h  vN   U R                  R                  5       I S h  vN   g  N'! [        R                   a     N;f = f N!7fr   )rI   cancelrF   CancelledErrorrE   aclose)r   s    r   closeMemoryClient.close   sq     ($$&'''' %%''' ()) 'sC   (B A$ A"A$ B A>B "A$ $A;8B :A;;B )rH   rI   r=   r<   rE   r8   r7   r6   )zhttp://localhost:8000)r)   r*   r+   r,   r-   intboolfloatrJ   r
   r   r   r   r!   ra   r   r'   rw   r.   r   r/   r   r1   r1   /   s    0/ $',")+// 	/
 / !%/ / $'/ / /F ) ) 	)
 ) ) ) 
)X	A 	A 		A
 	A(0  	
 "(r/   r1   )abcr   r   rF   r   loggingtypingr   rA   aiavatar.sts.modelsr   r   modelsr
   	getLoggerr)   rU   r   r1   r   r/   r   <module>r      sI    #      7 &			8	$s DE(# E(r/   