
    FdF'                     \   d Z ddlZddlZddlZddlZddlZddlmZ ddlmZ ddl	m
Z
mZ ddlmZ ddlmZmZ ddlmZ dd	lmZ  G d
 de          Z	  G d dej                  Z G d dej                  Z G d dej                  ZdedefdZ e            ZdedededdfdZdS )zLogging module for Auto-GPT.    N)	LogRecord)Any)ForeStyle)Config)JsonFileHandlerJsonFormatter)	Singleton)say_textc                       e Zd ZdZd Zddddej        fdZ	 	 ddZ	 	 ddZ		 	 ddZ
dd	Zdddej        fd
ededefdZd ZddZdededdfdZd ZdS )Loggerz
    Logger that handle titles in different colors.
    Outputs logs in console, activity.log, and errors.log
    For console handler: simulates typing
    c                    t           j                            t                    }t           j                            |d          }t           j                            |          st          j        |           d}d}t          d          }t                      | _	        | j	        
                    t          j                   | j	                            |           t                      | _        | j        
                    t          j                   | j                            |           t          j        t           j                            ||          dd          | _        | j        
                    t          j                   t          d          }| j                            |           t          j        t           j                            ||          dd          }|
                    t          j                   t          d          }|                    |           t          j        d	          | _        | j                            | j	                   | j                            | j                   | j                            |           | j        
                    t          j                   t          j        d
          | _        | j                            | j                   | j                            | j                   | j                            |           | j        
                    t          j                   t          j        d          | _        | j                            | j                   | j                            |           | j        
                    t          j                   d| _        g | _        d S )N../logszactivity.logz	error.logz%(title_color)s %(message)sazutf-8z8%(asctime)s %(levelname)s %(title)s %(message_no_color)sz[%(asctime)s %(levelname)s %(module)s:%(funcName)s:%(lineno)d %(title)s %(message_no_color)sTYPERLOGGERJSON_LOGGERF)ospathdirname__file__joinexistsmakedirsAutoGptFormatterTypingConsoleHandlertyping_console_handlersetLevelloggingINFOsetFormatterConsoleHandlerconsole_handlerDEBUGFileHandlerfile_handlerERROR	getLoggertyping_logger
addHandlerloggerjson_logger
speak_modechat_plugins)	selfthis_files_dir_pathlog_dirlog_file
error_fileconsole_formatterinfo_formattererror_handlererror_formatters	            @C:\Users\Administrator\Downloads\Auto-GPT-master\autogpt\logs.py__init__zLogger.__init__   s)    gooh77',,2I>>w~~g&& 	!K   ! 
,-JKK ';&<&<##,,W\:::#001BCCC  .//%%gm444))*;<<< $/GLL(++S'
 
 	""7=111)F
 
 	&&~666  +GLL*--sG
 
 	w}---*$
 
 	""?333$.w77%%d&ABBB%%d&7888%%m444##GM222'11t3444t0111}---W]+++",];;##D$5666##M222!!'-000     Fc                 &   |r| j         rt          | d|            | j        D ]}|                    | d|            |r+t	          |t
                    rd                    |          }nd}| j                            ||||d           d S )Nz.  r;   titlecolorextra)	r-   r   r.   report
isinstancelistr   r)   log)r/   r?   title_colorcontent
speak_textlevelplugins          r8   typewriter_logzLogger.typewriter_logX   s      	,$/ 	,****+++' 	1 	1FMMU//g//0000 	'4(( ,((7++G7EK"H"H 	 	
 	
 	
 	
 	
r:   c                 J    |                      |||t          j                   d S N)_logr   r$   r/   messager?   rG   s       r8   debugzLogger.debugk   s$     			%gw}=====r:   c                 J    |                      |||t          j                   d S rN   )rO   r   r    rP   s       r8   infozLogger.infos   $     			%gw|<<<<<r:   c                 J    |                      |||t          j                   d S rN   )rO   r   WARNrP   s       r8   warnzLogger.warn{   rU   r:   c                 ^    |                      |t          j        |t          j                   d S rN   )rO   r   REDr   r'   )r/   r?   rQ   s      r8   errorzLogger.error   s$    		%7GM:::::r:   r?   rG   rQ   c                     |r*t          |t                    rd                    |          }| j                            ||t          |          t          |          d           d S )Nr=   r>   rA   )rD   rE   r   r+   rF   str)r/   r?   rG   rQ   rJ   s        r8   rO   zLogger._log   ss      	,'4(( ,((7++7CJJ[AQAQ"R"R 	 	
 	
 	
 	
 	
r:   c                 n    | j                             |           | j                            |           d S rN   )r+   r   r)   )r/   rJ   s     r8   	set_levelzLogger.set_level   s5    U#####E*****r:   Nc                 P    |sd}|                      dt          j        |           d S )NzPlease ensure you've setup and configured everything correctly. Read https://github.com/Torantulino/Auto-GPT#readme to double check. You can also create a github issue or join the discord and ask there!zDOUBLE CHECK CONFIGURATION)rL   r   YELLOW)r/   additionalTexts     r8   double_checkzLogger.double_check   s7     	"  	8$+~VVVVVr:   data	file_namereturnc                    t           j                            t                    }t           j                            |d          }t           j                            ||          }t          |          }|                    t                                 | j        	                    |           | j        
                    |           | j                            |           d S Nr   )r   r   r   r   r   r   r!   r	   r,   r*   rR   removeHandler)r/   rd   re   r0   r1   json_file_pathjson_data_handlers          r8   log_jsonzLogger.log_json   s     gooh77',,2I>> gy99+N;;&&}777 	##$5666t$$$&&'899999r:   c                     t           j                            t                    }t           j                            |d          }t           j                            |          S rh   )r   r   r   r   r   abspath)r/   r0   r1   s      r8   get_log_directoryzLogger.get_log_directory   s@     gooh77',,2I>>ww'''r:   )r;   r;   )r;   rN   )__name__
__module____qualname____doc__r9   r   r    rL   rR   rT   rX   r[   r]   rO   r_   rc   r   rl   ro    r:   r8   r   r      s]        = = =@ BuGL
 
 
 
, 	> > > > 	= = = = 	= = = =; ; ; ;
 l
 

 
 	
 
 
 
+ + +	W 	W 	W 	W:S :S :T : : : :( ( ( ( (r:   r   )	metaclassc                       e Zd Zd ZdS )r   c                    d}d}|                      |          }	 |                                }t          |          D ]r\  }}t          |dd           |t	          |          dz
  k     rt          ddd           t          j        ||          }t          j        |           |dz  }|dz  }st                       d S # t          $ r | 
                    |           Y d S w xY w)	Ng?g{Gz?r;   T)endflush   r=   gffffff?)formatsplit	enumerateprintlenrandomuniformtimesleep	ExceptionhandleError)	r/   recordmin_typing_speedmax_typing_speedmsgwordsiwordtyping_speeds	            r8   emitzTypingConsoleHandler.emit   s   kk&!!	%IIKKE$U++ ; ;4d$////s5zzA~%%#2T2222%~.>@PQQ
<(((#3d#: #3d#:  GGGGG 	% 	% 	%V$$$$$$	%s   B$C C$#C$Nrp   rq   rr   r   rt   r:   r8   r   r      s#        % % % % %r:   r   c                       e Zd ZddZdS )r"   rf   Nc                     |                      |          }	 t          |           d S # t          $ r |                     |           Y d S w xY wrN   )r{   r~   r   r   )r/   r   r   s      r8   r   zConsoleHandler.emit   s_    kk&!!	%#JJJJJ 	% 	% 	%V$$$$$$	%s   ( A
A)rf   Nr   rt   r:   r8   r"   r"      s(        % % % % % %r:   r"   c                   ,     e Zd ZdZdedef fdZ xZS )r   z
    Allows to handle custom placeholders 'title_color' and 'message_no_color'.
    To use this formatter, make sure to pass 'color', 'title' as log extras.
    r   rf   c                    t          |d          r8t          |d          t          |dd          z   dz   t          j        z   |_        nt          |dd          |_        t          |dd          |_        t          |d          r#t          t          |d                    |_        nd|_        t                      	                    |          S )Nr@   r?   r;   r=   r   )
hasattrgetattrr   	RESET_ALLrG   r?   remove_color_codesmessage_no_colorsuperr{   )r/   r   	__class__s     r8   r{   zAutoGptFormatter.format   s    67## 	>((&'2../ /"  ")"!=!=F vw3365!! 	)&89O9O&P&PF##&(F#ww~~f%%%r:   )rp   rq   rr   rs   r   r]   r{   __classcell__)r   s   @r8   r   r      sU         
&Y &3 & & & & & & & & & &r:   r   srf   c                 V    t          j        d          }|                    d|           S )Nz%\x1B(?:[@-Z\\-_]|\[[0-?]*[ -/]*[@-~])r;   )recompilesub)r   ansi_escapes     r8   r   r      s&    *EFFK??2q!!!r:   ai_nameassistant_reply_json_validconfigc                 p   d }d }d }d }|                     di           }|                     d          }|rT|                     d          }|                     d          }|                     d          }|                     d          }t                              |                                  dt          j        |            t                              dt          j        |            |rt                              d	t          j        d
           t          |t                    rd                    |          }n$t          |t                    rt          |          }|                    d          }	|	D ]O}
|
                    d          }
t                              dt          j        |
                                           Pt                              dt          j        |            |rB|j        rt!          ||           d S t                              dt          j        |            d S d S )Nthoughtstext	reasoningplan	criticismspeakz
 THOUGHTS:z
REASONING:zPLAN:r;   
z- z
CRITICISM:zSPEAK:)getr+   rL   upperr   ra   rD   rE   r   dictr]   r|   lstripGREENstripr-   r   )r   r   r   assistant_thoughts_reasoningassistant_thoughts_planassistant_thoughts_speakassistant_thoughts_criticismassistant_thoughtsassistant_thoughts_textlineslines              r8   print_assistant_thoughtsr      s;   
 $( "##' 377
BGG044V<< C'9'='=k'J'J$"4"8"8"@"@'9'='=k'J'J$#5#9#9'#B#B 
==??&&&8O5Q   ,8T5VWWW Bgt{B777-t44 	C&*ii0G&H&H##/66 	C&)*A&B&B# (--d33 	B 	BD;;t$$D!!$
DJJLLAAAA
,8T5VWWW X 	X-v66666!!(DK<T9VWWWWW	X Xr:   ) rs   r   r   r   r   r   r   typingr   coloramar   r   autogpt.configr   autogpt.log_cycle.json_handlerr   r	   autogpt.singletonr
   autogpt.speechr   r   StreamHandlerr   r"   	Formatterr   r]   r   r+   objectr   rt   r:   r8   <module>r      s   " "  				  				                              ! ! ! ! ! ! I I I I I I I I ' ' ' ' ' ' # # # # # #c( c( c( c( c(y c( c( c( c(L
% % % % %70 % % %,% % % % %W* % % %& & & & &w( & & &6"# "# " " " "
 
(X(X &(X (X 
	(X (X (X (X (X (Xr:   