
    wiT                        d Z ddlZddlZddlmZ ddlmZ ddlmZ  eej                  j                  d ee
      j                  j                  dz              Zej                  dd	       ed
z  Zedz  Zedz  Zedz  Zej                  d       g dZg dZg dZg dZg dZg dZg dZg dZg dZd+dZd Zd Zd Zd Zd Z d Z!d Z"d  Z#d! Z$d" Z%d# Z&d,d$Z'ed%z  Z(d-d&Z)d.d'Z*ed(z  Z+d/d)Z,d.d*Z-y)0zd
Central state management for ghojualamanchu v3.
All structures read and write through this module.
    N)Path)datetime)deepcopyGHOJU_DATA_DIRdataT)parentsexist_okz
state.jsonzlifecycle.jsonzmemory.jsonsignals)r	   )decayed_memorydropped_signalunresolved_patternexpected_missingconvergence_abandonedsilence_prolonged)
curiousanxiousjoyful
frustratedcreativeurgentneutralpeacefulconfused
determined)questioncommandinformationsocialr   unknown)simplemoderatecomplex)positivenegativer   )calm	activatedoverload)safe	monitored	concernedcompromised)useragentcronsystem)lownormalhighcriticalc                    | dt        t        j                         j                         dz         t        j                         j	                         ||dddddddd	dg d
ddddg ddddg g dg g dddi dddddg dg ddg g g i ddS )z-Create a new signal with the formal contract.sig_i  r   inhaleg        )heartbeat_at_receiverespiratory_phaseautonomic_loadFr(   )threat_detectedthreat_levelterritory_statusr   r%   )salienceemotional_tagsvalencearousalN)should_encodeencoding_strengthretrieved_contextmatch_confidence	memory_idr    g      ?)intententitiestopics
complexity	questionspredicted_actionsuncertainty)planetary_phasecross_scale_biasintegration_complete)recordedquality)absence_categoriesdecay_appliedreleased_signals)responseactions_takenmemories_encodedsignals_releasedconflict_resolved)	raw_input	signal_idreceived_atsourceprioritymedullarcomplexamygdalahippocampuscortexcorpusakashiclethefinal_output)intr   now	timestamp	isoformat)rZ   r]   r^   s      0/home/workspace/ghojualamanchu-v3/brain/state.py
new_signalrm   2   s     C 8 8 :T ABCD||~//1 %&!)!
  % &
   	
 #!$!# #
 "!#
  $ "$)
 
 #%" "
  " "!#
{D D    c                      t         j                         r't        j                  t         j	                               S t               S N)
STATE_FILEexistsjsonloads	read_textdefault_state rn   rl   
load_staterx   ~   s.    zz*..011?rn   c                 X    t         j                  t        j                  | d             y N   indent)rq   
write_textrs   dumps)states    rl   
save_stater      s    $**U156rn   c                      ddd d ddddS )NFTgRQ@exhaler   )activetorpor	boot_timelast_signal_at
medulla_hzr8   current_beatrw   rw   rn   rl   rv   rv      s!    % rn   c                      t         j                         r't        j                  t         j	                               S t               S rp   )LIFECYCLE_FILErr   rs   rt   ru   default_lifecyclerw   rn   rl   load_lifecycler      s/    zz.22455rn   c                 X    t         j                  t        j                  | d             y rz   )r   r~   rs   r   )lcs    rl   save_lifecycler      s    djjA67rn   c            
      Z    dddt        j                         j                         dddg g d	S )N   neonater   g      ?)	
generationstagebiological_agebirth_timestampheartbeats_totalheartbeats_this_stage
plasticityaccumulated_wisdomlineage)r   ri   rk   rw   rn   rl   r   r      s6    #<<>335!" 
 
rn   c                      t         j                         r't        j                  t         j	                               S t               S rp   )MEMORY_FILErr   rs   rt   ru   default_memoryrw   rn   rl   load_memoryr      s/    zz+//122rn   c                 X    t         j                  t        j                  | d             y rz   )r   r~   rs   r   )memorys    rl   save_memoryr      s    4::fQ78rn   c                      g i g g i dS )N)episodicsemantic
proceduralassociationsindexrw   rw   rn   rl   r   r      s     rn   c                 v    t         | d    dz  }|j                  t        j                  | d             | d   S )z$Save signal to disk for persistence.r[   .jsonr{   r|   )	QUEUE_DIRr~   rs   r   )signalpaths     rl   enqueue_signalr      s;    &-.e44DOODJJva01+rn   c                     t         |  dz  }|j                         r#t        j                  |j	                               S y )Nr   )r   rr   rs   rt   ru   )r[   r   s     rl   dequeue_signalr      s5    )E**D{{}zz$..*++rn   c           	      8   t        t        j                  d      d d      }g }|d |  D ]m  }t        j                  |j                               }|j                  |d   |d   t        |d         dkD  r|d   d d d	z   n|d   |d
   d   |d   d   d       o |S )Nz
sig_*.jsonc                 6    | j                         j                  S rp   )statst_mtime)ps    rl   <lambda>zlist_signals.<locals>.<lambda>   s    ARAR rn   T)keyreverser[   r\   rZ   <   ...ra   r=   rc   rF   )r[   r\   rZ   amygdala_saliencecortex_intent)sortedr   globrs   rt   ru   appendlen)limitr
   resultr   r   s        rl   list_signalsr      s    Y^^L17R\`aGFVe_ zz!++-(k*.;>tK?P;QTV;Vk*3B/%7\`al\m!%j!1*!=!(^H5
 	 Mrn   z	lethe.logc                    | t         vrt        d|        | ||t        j                         j	                         |d}t        t        d      5 }|j                  t        j                  |      dz          ddd       |S # 1 sw Y   |S xY w)zRecord an absence in Lethe.zInvalid absence category: )categoryr[   expected_atnoted_atreasona
N)
ABSENCE_CATEGORIES
ValueErrorr   ri   rk   openLETeth_FILEwriters   r   )r   r[   r   r   entryfs         rl   log_absencer      s    ))5hZ@AA "LLN,,.E 
k3	 *1	

5!D()* L* Ls   (BBc                     t         j                         sg S t         j                         j                         j	                  d      }|D cg c]  }|st        j                  |       }}||  d  S c c}w Nr   )r   rr   ru   stripsplitrs   rt   nlineslentriess       rl   recent_absencesr      se    	!!#))+11$7E&+1qtzz!}1G1A23< 2   A3A3zakashic.logc                    | t        |      dkD  r|d d dz   n||t        j                         j                         d}t	        t
        d      5 }|j                  t        j                  |      dz          d d d        |S # 1 sw Y   |S xY w)NP   r   )r[   content_previewrQ   recorded_atr   r   )	r   r   ri   rk   r   AKASHIC_FILEr   rs   r   )r[   r   rQ   r   r   s        rl   log_presencer      s    ;>;ORT;T?3B/%7Zi||~//1	E 
lC	  *A	

5!D()*L*Ls   (B  B
c                     t         j                         sg S t         j                         j                         j	                  d      }|D cg c]  }|st        j                  |       }}||  d  S c c}w r   )r   rr   ru   r   r   rs   rt   r   s       rl   recent_presencer     se     	""$**,2248E&+1qtzz!}1G1A23< 2r   )r,   r1   )2   )NN)   )standard).__doc__rs   ospathlibr   r   copyr   environget__file__parentBASE_DIRmkdirrq   r   r   r   r   EMOTIONAL_TAGSINTENTSCOMPLEXITIESVALENCESAROUSAL_STATESTERRITORY_STATUSESSOURCES
PRIORITIESrm   rx   r   rv   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   rw   rn   rl   <module>r      s?    	    

N  6)  	td +$
,,&y 	 	  
 R0.2F 
-2
FX
7	
8
9$ $$ -'	rn   