
    i#                     R   U d Z ddlmZmZ ddlmZmZmZmZm	Z	 ddl
mZ  G d de      Z G d de      Ze G d	 d
             Ze G d d             Ze G d d             Ze G d d             Ze G d d             Ze G d d             Zi Zeeef   ed<   i Zeeef   ed<   i Zeeef   ed<   dai Zeeef   ed<   i Zeeef   ed<   i Zeeef   ed<   deeef   deeef   dz  ddfd Zddd!d"ed#e	d$   d%edz  d&eeef   dz  def
d'Zdeeef   fd(Z d"edefd)Z!ddd!d"ed#e	d$   d%edz  d&eeef   dz  def
d*Z"deeef   fd+Z#d"edefd,Z$ddd!d"ed#e	d$   d%edz  d&eeef   dz  def
d-Z%deeef   fd.Z&d"edefd/Z'ddd!d"ed#e	d$   d%edz  d&eeef   dz  def
d0Z(deeef   fd1Z)d"edefd2Z*ddd!d"ed#e	d$   d%edz  d&eeef   dz  def
d3Z+deeef   fd4Z,d"edefd5Z-dddd6d"ed7edz  d%edz  d&eeef   dz  def
d8Z.deeef   fd9Z/d"edefd:Z0d<d;Z1y)=z9Schema registries for entity-layer configuration classes.    )	dataclassfield)AnyDictMappingMutableMappingType)
BaseConfigc                       e Zd ZdZy)SchemaLookupErrorz6Raised when a requested schema spec is not registered.N__name__
__module____qualname____doc__     E/Users/bowang/.openclaw/workspace/ChatDev/schema_registry/registry.pyr   r      s    @r   r   c                       e Zd ZdZy)SchemaRegistrationErrorz0Raised when schema registration is inconsistent.Nr   r   r   r   r   r      s    :r   r   c                   b    e Zd ZU eed<   ed   ed<   dZedz  ed<    ee      Z	e
eef   ed<   y)NodeSchemaSpecnamer
   
config_clsNsummarydefault_factorymetadatar   r   r   str__annotations__r	   r   r   dictr   r   r   r   r   r   r   r      7    
I\""GS4Z$T:Hd38n:r   r   c                   b    e Zd ZU eed<   ed   ed<   dZedz  ed<    ee      Z	e
eef   ed<   y)EdgeConditionSchemaSpecr   r
   r   Nr   r   r   r   r   r   r   r%   r%      r#   r   r%   c                   b    e Zd ZU eed<   ed   ed<   dZedz  ed<    ee      Z	e
eef   ed<   y)EdgeProcessorSchemaSpecr   r
   r   Nr   r   r   r   r   r   r   r'   r'       r#   r   r'   c                   b    e Zd ZU eed<   ed   ed<   dZedz  ed<    ee      Z	e
eef   ed<   y)MemoryStoreSchemaSpecr   r
   r   Nr   r   r   r   r   r   r   r)   r)   (   r#   r   r)   c                   b    e Zd ZU eed<   ed   ed<   dZedz  ed<    ee      Z	e
eef   ed<   y)ThinkingSchemaSpecr   r
   r   Nr   r   r   r   r   r   r   r+   r+   0   r#   r   r+   c                   f    e Zd ZU eed<   dZedz  ed<   dZedz  ed<    ee      Z	e
eef   ed<   y)ModelProviderSchemaSpecr   Nlabelr   r   r   )r   r   r   r    r!   r.   r   r   r"   r   r   r   r   r   r   r-   r-   8   s:    
IE3:GS4Z$T:Hd38n:r   r-   _node_schemas_edge_condition_schemas_edge_processor_schemasF_memory_store_schemas_thinking_schemas_model_provider_schemastarget	new_itemsNreturnc                     |sy | j                  |j                         D ci c]  \  }}|	|| c}}       y c c}}w N)updateitems)r5   r6   keyvalues       r   _update_metadatar>   I   s<    
MM	0AW0A*#uUEV3:0AWXWs   
;
;
)r   r   r   r   r
   r   r   c                
   t         j                  |       }|r>|j                  |urt        d|  d      |r||_        t        |j                  |       |S t        | ||      }t        |j                  |       |t         | <   |S )NNode schema '2' already registered with a different config classr   r   r   )r/   getr   r   r   r>   r   r   r   r   r   r   specs        r   register_node_schemarF   O   s     T"D??*,)v%WX  "DL1t
GLDT]]H-M$Kr   c                       t        t              S r9   )r"   r/   r   r   r   iter_node_schemasrH   f   s    r   c                 X    	 t         |    S # t        $ r}t        d|  d      |d }~ww xY w)Nr@   ' is not registered)r/   KeyErrorr   r   excs     r   get_node_schemarN   j   s=    TT"" T-v5H IJPSST    	)$)c                
   t         j                  |       }|r>|j                  |urt        d|  d      |r||_        t        |j                  |       |S t        | ||      }t        |j                  |       |t         | <   |S )NEdge condition schema 'rA   rB   )r0   rC   r   r   r   r>   r   r%   rD   s        r   register_edge_condition_schemarR   q        #&&t,D??*,))$/ab  "DL1"WUDT]]H-$(D!Kr   c                       t        t              S r9   )r"   r0   r   r   r   iter_edge_condition_schemasrU          '((r   c                 X    	 t         |    S # t        $ r}t        d|  d      |d }~ww xY w)NrQ   rJ   )r0   rK   r   rL   s     r   get_edge_condition_schemarX      >    ^&t,, ^"9$?R STZ]]^rO   c                
   t         j                  |       }|r>|j                  |urt        d|  d      |r||_        t        |j                  |       |S t        | ||      }t        |j                  |       |t         | <   |S )NEdge processor schema 'rA   rB   )r1   rC   r   r   r   r>   r   r'   rD   s        r   register_edge_processor_schemar\      rS   r   c                  4    t                t        t              S r9   )&_ensure_edge_processor_builtins_loadedr"   r1   r   r   r   iter_edge_processor_schemasr_      s    *,'((r   c                 l    t                	 t        |    S # t        $ r}t        d|  d      |d }~ww xY w)Nr[   rJ   )r^   r1   rK   r   rL   s     r   get_edge_processor_schemara      sD    *,^&t,, ^"9$?R STZ]]^s    	3.3c                
   t         j                  |       }|r>|j                  |urt        d|  d      |r||_        t        |j                  |       |S t        | ||      }t        |j                  |       |t         | <   |S )NMemory store schema 'rA   rB   )r2   rC   r   r   r   r>   r   r)   rD   s        r   register_memory_store_schemard      s     !$$T*D??*,)'v-_`  "DL1 dz7SDT]]H-"&$Kr   c                       t        t              S r9   )r"   r2   r   r   r   iter_memory_store_schemasrf      s    %&&r   c                 X    	 t         |    S # t        $ r}t        d|  d      |d }~ww xY w)Nrc   rJ   )r2   rK   r   rL   s     r   get_memory_store_schemarh      s>    \$T** \"7v=P QRX[[\rO   c                
   t         j                  |       }|r>|j                  |urt        d|  d      |r||_        t        |j                  |       |S t        | ||      }t        |j                  |       |t         | <   |S )NThinking schema 'rA   rB   )r3   rC   r   r   r   r>   r   r+   rD   s        r   register_thinking_schemark      s       &D??*,)#D6)[\  "DL14JPDT]]H-"dKr   c                       t        t              S r9   )r"   r3   r   r   r   iter_thinking_schemasrm      s    !""r   c                 X    	 t         |    S # t        $ r}t        d|  d      |d }~ww xY w)Nrj   rJ   )r3   rK   r   rL   s     r   get_thinking_schemaro      s>    X && X"3D69L MNTWWXrO   )r.   r   r   r.   c                    t         j                  |       }|r*|r||_        |r||_        t	        |j
                  |       |S t        | ||      }t	        |j
                  |       |t         | <   |S )N)r   r.   r   )r4   rC   r.   r   r>   r   r-   )r   r.   r   r   rE   s        r   register_model_provider_schemarq      sj     #&&t,DDJ"DL1"E7KDT]]H-$(D!Kr   c                       t        t              S r9   )r"   r4   r   r   r   iter_model_provider_schemasrs     rV   r   c                 X    	 t         |    S # t        $ r}t        d|  d      |d }~ww xY w)NzModel provider schema 'rJ   )r4   rK   r   rL   s     r   get_model_provider_schemaru     rY   rO   c                  B    t         ry 	 dd l} da y # t        $ r Y da y w xY w)Nr   T)_edge_processor_builtins_loaded%runtime.edge.processors.builtin_types	Exception)runtimes    r   r^   r^     s2    &4 '+#  &*#s    	)r7   N)2r   dataclassesr   r   typingr   r   r   r   r	   entity.configs.baser
   RuntimeErrorr   r   r   r%   r'   r)   r+   r-   r/   r    r!   r0   r1   rw   r2   r3   r4   r>   rF   rH   rN   rR   rU   rX   r\   r_   ra   rd   rf   rh   rk   rm   ro   rq   rs   ru   r^   r   r   r   <module>r      s   ? ( ; ; *A A;l ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ,.tC'( ->@ c#::; @>@ c#::; @"' :< tC!667 <35 4//0 5>@ c#::; @Y^CH5 Y'#s(BSVZBZ Y_c Y )-
 \" 4Z	
 c3h$& .4^ 34 T# T. T )-
 \" 4Z	
 c3h$& .)T#/F*F%G )^C ^,C ^ )-
 \" 4Z	
 c3h$& .)T#/F*F%G )
^C ^,C ^ )-
 \" 4Z	
 c3h$& .'4-B(B#C '\# \*? \ )-
 \" 4Z	
 c3h$& .#tC);$;< #Xc X&8 X )-
 : 4Z	
 c3h$& *)T#/F*F%G )^C ^,C ^+r   