
    Fd}                     t    d dl Z d dlZd dlmZmZmZ d dlmZ dZdZ	dZ
dZdZd	Zd
ZdZdZ G d d          ZdS )    N)AnyDictUnion)loggeragentzfull_message_history.jsonzcurrent_context.jsonznext_action.jsonzprompt_summary.jsonzsummary.txtzsupervisor_feedback.txtzprompt_supervisor_feedback.jsonzuser_input.txtc                       e Zd ZdZd Zededdfd            Zdededefd	Zd
 Z	dede
defdZdedede
defdZdedede
deeeef         ef         deddfdZdS )LogCycleHandlerz)
    A class for logging cycle data.
    c                     d| _         d S )Nr   )log_count_within_cycle)selfs    OC:\Users\Administrator\Downloads\Auto-GPT-master\autogpt\log_cycle\log_cycle.py__init__zLogCycleHandler.__init__   s    &'###    directory_pathreturnNc                 t    t           j                            |           st          j        | d           d S d S )NT)exist_ok)ospathexistsmakedirs)r   s    r   create_directory_if_not_existsz.LogCycleHandler.create_directory_if_not_exists   s=    w~~n-- 	7K666666	7 	7r   ai_name
created_atc                    t          j                    }t          j                            d          dk    rd}n|                     |          }| d| }t          j                            |d|          }|                     |           |S )NOVERWRITE_DEBUG1auto_gpt_DEBUG)	r   get_log_directoryr   environgetget_agent_short_namer   joinr   )r   r   r   log_directoryouter_folder_nameai_name_shortouter_folder_paths          r   create_outer_directoryz&LogCycleHandler.create_outer_directory   s    022:>>+,,33 * 55g>>M#- ? ? ? ?GLLARSS++,=>>>  r   c                 L    |r|d d                                          nt          S )N   )rstripDEFAULT_PREFIX)r   r   s     r   r$   z$LogCycleHandler.get_agent_short_name-   s&    (/Cwss|""$$$^Cr   r)   cycle_countc                     t          |                              d          }t          j                            ||          }|                     |           |S )N   )strzfillr   r   r%   r   )r   r)   r/   nested_folder_namenested_folder_paths        r   create_inner_directoryz&LogCycleHandler.create_inner_directory0   sQ     --33A66W\\*;=OPP++,>???!!r   c                 ^    |                      ||          }|                     ||          }|S )N)r*   r6   )r   r   r   r/   r)   r5   s         r   create_nested_directoryz'LogCycleHandler.create_nested_directory7   s7     !77LL!889JKXX!!r   data	file_namec                     |                      |||          }t          j        |dd          }t          j                            || j         d|           }t          j        ||           | xj        dz  c_        dS )z
        Log cycle data to a JSON file.

        Args:
            data (Any): The data to be logged.
            file_name (str): The name of the file to save the logged data.
        F   )ensure_asciiindentr      N)	r8   jsondumpsr   r   r%   r   r   log_json)	r   r   r   r/   r9   r:   r5   	json_datalog_file_paths	            r   	log_cyclezLogCycleHandler.log_cycle?   s     "99Z
 
 Jt%BBB	4#> L L L L
 
 		=111##q(####r   )__name__
__module____qualname____doc__r   staticmethodr2   r   r*   r$   intr6   r8   r   r   r   rE    r   r   r	   r	      sT        ( ( ( 7s 7t 7 7 7 \7!c !s !s ! ! ! !D D D" "# "RU " " " """(+":="	" " " ")) ) 	)
 DcNC'() ) 
) ) ) ) ) )r   r	   )r@   r   typingr   r   r   autogpt.logsr   r.   FULL_MESSAGE_HISTORY_FILE_NAMECURRENT_CONTEXT_FILE_NAMENEXT_ACTION_FILE_NAMEPROMPT_SUMMARY_FILE_NAMESUMMARY_FILE_NAMESUPERVISOR_FEEDBACK_FILE_NAME$PROMPT_SUPERVISOR_FEEDBACK_FILE_NAMEUSER_INPUT_FILE_NAMEr	   rL   r   r   <module>rW      s     				 # # # # # # # # # #      !< 2 * 0 !  9 'H $' F) F) F) F) F) F) F) F) F) F)r   