
    љiu                         S SK r S SKJr  S SKJr  SSKJr  SSKJr  \ R                  " \
5      r " S S\5      r " S	 S
\5      r " S S\5      rg)    N)date)Tool   )CharacterService)MemoryClientBasec            	       d   ^  \ rS rSrSSSSSSS.S\S\S\S	\4U 4S
 jjjrSS\S\4S jjr	Sr
U =r$ )GetDiaryTool
   TNF)include_schedulenamespecinstruction
is_dynamicdebugcharacter_servicecharacter_idr   r   c                   > Xl         X l        X0l        Xl        [        T	U ]  U=(       d    SU=(       d    SU=(       d    SSSSSSS.0S	.S/S
.S.U R                  UUS9  g )N	get_diaryfunctionz+Retrieve a diary entry by specifying a dateobject
diary_datestringzDate in YYYY-MM-DD format)typedescriptionr   
properties)r   r   
parametersrequiredr   r   r   r   funcr   r   )r   r   r   r   super__init__r   )
selfr   r   r   r   r   r   r   r   	__class__s
            R/home/james-whalen/.local/lib/python3.13/site-packages/aiavatar/character/tools.pyr#   GetDiaryTool.__init__   s     "3( 0
$ " /K#P ((8Lg*h'# ".
 #!% 	 	
    r   metadatac                 .  #    U R                   R                  (       d"  U R                   R                  5       I S h  vN   0 n[        R                  " U5      nU R                   R                  R                  U R                  US9I S h  vN nU(       a  UR                  US'   U R                  (       aL  U R                   R                  R                  U R                  US9I S h  vN nU(       a  UR                  US'   U(       d  SUS'   U$  N N N,7f)N)r   r   diary)r   schedule_dateschedulezNo entries.message)
r   activityget_poolr   fromisoformatr   r   contentr   get_daily_schedule)r$   r   r)   contentsdiary_date_objr+   daily_schedules          r&   r   GetDiaryTool.get_diary0   s     %%..((11333++J7,,55??**% @ 
 
  %HW  #'#9#9#B#B#U#U!.., $V $ N '5'='=$"/HY1 4
s5   9DDAD	D
AD&D')DDD)r   r   r   r   N)__name__
__module____qualname____firstlineno__r   strboolr#   dictr   __static_attributes____classcell__r%   s   @r&   r	   r	   
   sb     "&#
 ,#
 	#

 #
 #
 #
J#   r(   r	   c                   ^   ^  \ rS rSrSSSSSS.S\S\S\4U 4S jjjrSS	\S
\4S jjr	Sr
U =r$ )MemorySearchToolM   NFr   r   r   r   r   memory_clientr   r   c          
         > Xl         X l        Xpl        [        TU ]  U=(       d    SU=(       d    SU=(       d    SSSSSS00S.S	.S
.U R
                  UUS9  g )Nsearch_memoryr   zjSearch long-term memory when you need to recall past events, conversations, or information about the user.r   queryr   r   r   r   r   r   r   r    )rG   r   r   r"   r#   rI   )	r$   rG   r   r   r   r   r   r   r%   s	           r&   r#   MemorySearchTool.__init__N   s{     +(
( " 3O $P (#fh%7'#	 ###!# 	 	
r(   rJ   r)   c                 2  #    U R                   (       a  [        R                  SU 35        U R                  R	                  U R
                  US   US9I S h  vN nU R                   (       a  [        R                  SU 35        UR                  5       $  N=7f)NzQuery for search_memory: user_id)r   rN   rJ   zResult from search_memory: )r   loggerinforG   searchr   
model_dump)r$   rJ   r)   results       r&   rI   MemorySearchTool.search_memoryp   s     ::KK3E7;<))00**Y' 1 
 
 ::KK5fX>?  ""
s   ABB>B)r   r   rG   r8   )r9   r:   r;   r<   r   r=   r>   r#   r?   rI   r@   rA   rB   s   @r&   rD   rD   M   sU      
 ( 
 	 
  
  
D# # # #r(   rD   c                   f   ^  \ rS rSrSSSSSS.S\S\S\S\S	\S
\4U 4S jjjrS\S\4S jr	Sr
U =r$ )UpdateUsernameTool   NFrF   r   r   r   r   r   r   c          
         > Xl         X`l        [        TU ]  U=(       d    SU=(       d    SU=(       d    SSSSSS00S/S.S	.S
.U R                  UU5        g )Nupdate_usernamer   zrUpdate username for the specific user. Use this tool when the user says 'Remember my name' or something like that.r   usernamer   r   )r   r   r   rK   r   )r   r   r"   r#   rY   )r$   r   r   r   r   r   r   r%   s          r&   r#   UpdateUsernameTool.__init__   sy     "3
%% " 5$5 $X (&(:' &0L#
   %	
r(   rZ   r)   c                 6  #     US   nU R                   R                  R                  X1S9I S h  vN   U R                  (       a  [        R                  SU SU 35        SU0$  N4! [         a&  n[        R                  SU 35        SS0s S nA$ S nAff = f7f)	NrN   )rN   r   zSet username 'z' for user_id: rZ   zError at updating username: rS   error)r   userupdater   rO   rP   	Exceptionr]   )r$   rZ   r)   rN   exs        r&   rY   "UpdateUsernameTool.update_username   s     	'y)G((--44W4TTTzznXJogYOP)) U  	'LL7t<=g&&	'sD   B+A& A$3A& #B$A& &
B0BBBBB)r   r   )r9   r:   r;   r<   r   r=   r>   r#   r?   rY   r@   rA   rB   s   @r&   rV   rV      ss    
   
 , 
 	 

  
  
  
  
  
D	'c 	'T 	' 	'r(   rV   )loggingdatetimer   aiavatar.sts.llmr   servicer   memoryr   	getLoggerr9   rO   r	   rD   rV    r(   r&   <module>rj      sL      ! % $			8	$@4 @F0#t 0#f,' ,'r(   