
    i                     ~    d Z ddlmZmZ ddlmZ ddlmZmZm	Z	m
Z
 ddlmZ ddlmZmZmZmZ e G d d             Zy	)
zAGraphConfig wraps parsed graph definitions with runtime metadata.    )	dataclassfield)Path)AnyDictListOptional)LogLevel)GraphDefinitionMemoryStoreConfigNode
EdgeConfigc                      e Zd ZU eed<   eed<   eed<   eed<    ee	      Z
eeef   ed<   dZee   ed<    ee	      Zeeef   ed	<   eddd
deeef   dedeez  dedz  d	eeef   dz  dd fd       Zeddd
dededeez  dedz  d	eeef   dz  dd fd       Zdee   fdZdee   fdZdee   dz  fdZdefdZdefdZdefdZedefd       Zdeeef   fdZ y)GraphConfig
definitionnameoutput_root	log_level)default_factorymetadataNsource_pathvars)r   r   configreturnc                    t        j                  |d      } | |||rt        |      n
t        d      |j                  i |t	        |xs i             S )Ngraph)path	WareHouser   r   r   r   r   r   r   )r   	from_dictr   r   dict)clsr   r   r   r   r   r   s          @/Users/bowang/.openclaw/workspace/ChatDev/entity/graph_config.pyr    zGraphConfig.from_dict   sU     %..vGD
!-8[)d;>O **#djb!
 	
    c                z     | |||rt        |      n
t        d      |j                  i |t        |xs i             S )Nr   r   )r   r   r!   )r"   r   r   r   r   r   s         r#   from_definitionzGraphConfig.from_definition*   sC     !-8[)d;>O **#djb!
 	
r$   c                 .    | j                   j                  S N)r   nodesselfs    r#   get_node_definitionsz GraphConfig.get_node_definitions>       $$$r$   c                 .    | j                   j                  S r(   )r   edgesr*   s    r#   get_edge_definitionsz GraphConfig.get_edge_definitionsA   r-   r$   c                 .    | j                   j                  S r(   )r   memoryr*   s    r#   get_memory_configzGraphConfig.get_memory_configD   s    %%%r$   c                 6    | j                   j                  xs dS )N
DefaultOrg)r   organizationr*   s    r#   get_organizationzGraphConfig.get_organizationG   s    ++;|;r$   c                 f    | j                   r| j                   S | j                  j                  xs dS )Nzconfig.yaml)r   r   idr*   s    r#   get_source_pathzGraphConfig.get_source_pathJ   s,    ###!!2]2r$   c                 6    | j                   j                  xs dS )N )r   initial_instructionr*   s    r#   get_initial_instructionz#GraphConfig.get_initial_instructionO   s    228b8r$   c                 .    | j                   j                  S r(   )r   is_majority_votingr*   s    r#   r@   zGraphConfig.is_majority_votingR   s    111r$   c                     | j                   t        | j                        | j                  j                  | j
                  | j                  | j                  dS )N)r   r   r   r   r   r   )r   strr   r   valuer   r   r   r*   s    r#   to_dictzGraphConfig.to_dictV   sC    IIt//0--__II
 	
r$   )!__name__
__module____qualname__r   __annotations__rB   r   r
   r   r!   r   r   r   r   r	   r   classmethodr    r&   r   r   r,   r   r0   r   r3   r7   r:   r>   propertyboolr@   rD    r$   r#   r   r      s   
I$T:Hd38n:!%K#% 6D$sCx.6 #'&*
S#X
 
 CZ	
 4Z
 38nt#
 

 
(  #'&*
#
 
 CZ	
 4Z
 38nt#
 

 
&%d4j %%d:&6 %&4(9#:T#A &<# <3 3
9 9 2D 2 2
c3h 
r$   r   N)__doc__dataclassesr   r   pathlibr   typingr   r   r   r	   entity.enumsr
   entity.configsr   r   r   r   r   rL   r$   r#   <module>rS      s9    G (  , , ! O O R
 R
 R
r$   