
    xi              
           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dz  Zddd	d
dddddddZ	d Z
d Zd Zd Zd Zy)u   
The R-Complex — Territory, Threat Detection & Reflexes
Scans the environment for threats and monitors system territory.
Provides threat_level to amygdala and territory_status to thalamus.
    N)datetime)Path)BASE_DIRzterritory.jsonghojualamanchu_v3zGhojualamanchu v3 TerritoryTsafe        system_loadmemory_available_mbdisk_free_gbuptime_hours)idnameclaimedstatus	last_scan
conditionsc                  Z   	 t        d      j                         r't        d      j                         j                         ng d} t        d      j                         rt        d      j                         nd}t        d      j                         r*t        d      j                         j                         d   nd}| rt	        | d         nd}d}d}|j                  d	      D ]d  }|j                  d
      r t        |j                         d         dz  }4|j                  d      sFt        |j                         d         dz  }f 	 ddl}|j                  d      j                  dz  }t	        |      dz  }	dddt        j                         j                         t        |d      t        |d      t        |d      t        |	d      dd}
|dkD  rd|
d<   n|dk  rd|
d<   n
|dk  rd|
d<   t        |
       |
S #  d}Y xY w# t        $ r}dt!        |      dcY d}~S d}~ww xY w)zc
    Scan system territory: CPU load, memory, disk, uptime.
    Returns territory status dict.
    z/proc/loadavg)0r   r   z/proc/meminfo z/proc/uptimer   r   r   
z	MemTotal:   i   zMemAvailable:N/i   @i  r   Tr      r	   )r   r   r   r   r   g      @	concernedr   d   compromisedunknown)r   error)r   exists	read_textsplitfloat
startswithintshutil
disk_usagefreer   now	isoformatroundsave_territory	Exceptionstr)loadavgmeminfouptimer
   	mem_totalmem_freeliner&   	disk_freer   	territoryes               3/home/workspace/ghojualamanchu-v3/brain/rcomplex.pyscan_territoryr9      s   
36?CO?T?[?[?]$'11399;cr7;O7L7S7S7U$'113[]@D^@T@[@[@]n%//1779!<cf+2eGAJ' 	MM$' 	7D{+

Q047	1tzz|A/$6		7	))#.33w?I V}t+ &!113$[!4',Xq'9 %i 3 %lA 6	
	 "-Ih^"-Ih]"/Ihy!7	I8  6#c!f556s=   D)H	 ,!H	 "H  0BH	  HH	 		H*H%H*%H*c                 X    t         j                  t        j                  | d             y )Nr   )indent)TERRITORY_FILE
write_textjsondumps)r6   s    r8   r,   r,   W   s    djj1=>    c                      t         j                         r't        j                  t         j	                               S t
        j                         S )N)r<   r    r>   loadsr!   DEFAULT_TERRITORYcopy r@   r8   load_territoryrF   Z   s5    zz.22455!!##r@   c                 X    | j                  dd      }|dk(  ry|dk(  ry|dk(  ry|dk(  ry	y)
uG   
    Convert territory status to numeric threat level (0.0–1.0).
    r   r   r   	monitoredg?r   333333?r   g?)get)r6   r   s     r8   assess_threatrK   _   sC     ]]8V,F	;		;		=	 r@   c                     t               }t        |      }|dk\  t        |d      |j                  dd      |j                  di       | j                  di       j                  dd      d	| d<   | S )
z
    Process signal through rcomplex.
    Reads: signal (for k_index if present)
    Writes: signal['rcomplex'] block
    Returns: modified signal
    rI      r   r   r   rcomplexk_indexr   )threat_detectedthreat_levelterritory_statusterritory_conditionsrO   )r9   rK   r+   rJ   )signalr6   rQ   s      r8   processrU   n   st      I +L (3.lA.%MM(F; )lB ?::j"-11)Q?F: Mr@   )__doc__r>   randomr   pathlibr   brain.stater   r<   rC   r9   r,   rF   rK   rU   rE   r@   r8   <module>rZ      sj   
      ,, ) 	 86t?$
r@   