
    Lh<                        S r SSKrSSKrSSKrSSKJrJrJrJ	r	J
r
  SSKJr  SSKJr  SSKr\ " S S5      5       r\ " S S	5      5       r " S
 S5      r " S S5      r " S S5      r " S S5      r\S:X  aM  \" 5       rS r\R1                  SS\SS9r\" \R6                  " \SS95        \" S\R9                  5       -   5        gg)zw
Eden Core - Validation & Monitoring System
Addresses: Input validation, output verification, system health monitoring
    N)AnyDictListOptionalCallable)	dataclass)datetimec                   r    \ rS rSr% Sr\\S'   \\S'   \\S'   \\S'   \\S'   \\S'   S	\	\\4   S
\
4S jrSrg)HealthMetrics   zSystem health metricscpu_percentmemory_percent	timestampoperation_count
error_rateaverage_response_time
thresholdsreturnc                 $   U R                   UR                  SS5      :  =(       ak    U R                  UR                  SS5      :  =(       aE    U R                  UR                  SS5      :  =(       a    U R                  UR                  SS5      :  $ )	z,Check if system is within healthy parameterscpu      T@memory     @U@r   皙?response_time      @)r   getr   r   r   )selfr   s     A/home/james-whalen/eden-agi-project/eden_validation_monitoring.py
is_healthyHealthMetrics.is_healthy   s     z~~eT:: N*..4"@@NOOjnn\3??N &&)MM		
     N)__name__
__module____qualname____firstlineno____doc__float__annotations__strintr   boolr    __static_attributes__r#   r"   r   r   r      sD    N  
T#u*%5 
$ 
r"   r   c                   F    \ rS rSr% Sr\\S'   \\S'   \\S'   Sr\\S'   Sr	g	)
ValidationRule#   zValidation rule definitionname	validatorerror_messagemediumseverityr#   N)
r$   r%   r&   r'   r(   r+   r*   r   r6   r.   r#   r"   r   r0   r0   #   s     $
IHcr"   r0   c                   P    \ rS rSrSrS rS\S\4S jrS\S\	S\
\\	4   4S	 jrS
rg)InputValidator,   z%Comprehensive input validation systemc                      0 U l         / U l        g Nrulesvalidation_historyr   s    r   __init__InputValidator.__init__/   s    68
.0r"   
input_typerulec                 |    XR                   ;  a  / U R                   U'   U R                   U   R                  U5        g)z2Register a validation rule for specific input typeN)r=   append)r   rB   rC   s      r   register_ruleInputValidator.register_rule3   s1    ZZ'%'DJJz"

:%%d+r"   datar   c           	         XR                   ;  a  S/ S/S.$ / n/ nU R                   U    H  n UR                  U5      (       dh  UR                  S:X  a,  UR                  UR                   SUR
                   35        MV  UR                  UR                   SUR
                   35        M  M     [        U5      S:H  UU[        R                  " 5       R                  5       S	.nU R                  R                  UUS
.5        U$ ! [         a5  nUR                  UR                   S[        U5       35         SnAGM  SnAff = f)z`
Validate input data against registered rules

Returns: Dict with keys: valid, errors, warnings
TzNo validation rules defined)validerrorswarningscriticalz: z!: Validation failed with error - Nr   )rJ   rK   rL   r   )rB   result)r=   r3   r6   rE   r2   r4   	Exceptionr+   lenr	   now	isoformatr>   )r   rB   rH   rK   rL   rC   erN   s           r   validateInputValidator.validate9   s3    ZZ'!R>[=\]]JJz*DW~~d++}}
22d6H6H5I&JK 499+R8J8J7K(LM	 , + [A% !113	
 	&&$(
 	
   W+LSQRVHUVVWs   AD *D
E)D>>Er<   N)r$   r%   r&   r'   r(   r@   r+   r0   rF   r   r   rT   r.   r#   r"   r   r8   r8   ,   s?    /1, ,> ,"3 "c "d38n "r"   r8   c                   b    \ rS rSrSrS rS\S\4S jrS\S\	4S	 jr
S\S
\S\\\4   4S jrSrg)OutputVerifier^   z)Output verification and quality assurancec                      0 U l         0 U l        g r;   )verification_rulesquality_thresholdsr?   s    r   r@   OutputVerifier.__init__a   s    =?46r"   output_typeverifierc                 |    XR                   ;  a  / U R                   U'   U R                   U   R                  U5        g)z(Register an output verification functionN)rZ   rE   )r   r]   r^   s      r   register_verifier OutputVerifier.register_verifiere   s7    55535D##K0,33H=r"   metric	thresholdc                      X R                   U'   g)z(Set quality threshold for output metricsN)r[   )r   rb   rc   s      r   set_quality_threshold$OutputVerifier.set_quality_thresholdk   s    *3'r"   rH   r   c                 .   XR                   ;  a  SS/ S.$ / n/ nU R                   U    H  n U" U5      n[        U[        5      (       a?  UR                  UR	                  SS5      5        SU;   a  UR                  US   5        M^  M`  [        U[        5      (       a  UR                  U(       a  SOS5        M  UR                  [        U5      5        M     U(       a  [        R                  " U5      OSnXR                  R	                  S	S
5      :  =(       a    [        U5      S:H  UU[        R                  " 5       R!                  5       S.$ ! [         a:  nUR                  S[        U5       35        UR                  S5         SnAGMf  SnAff = f)za
Verify output meets quality standards

Returns: Dict with keys: verified, quality_score, issues
T      ?)verifiedquality_scoreissuesscorerk           zVerification error: Noverallffffff?r   )ri   rj   rk   r   )rZ   
isinstancedictrE   r   extendr-   r)   rO   r+   npmeanr[   rP   r	   rQ   rR   )	r   r]   rH   rk   quality_scoresr^   rN   rS   avg_qualitys	            r   verifyOutputVerifier.verifyo   s^    555 $sbII//<H+!$fd++"))&**Wc*BC6)fX&67 *--"))#SA"))%-8 = 2@bggn-S $'>'>'B'B9c'RRgWZ[aWbfgWg(!113	
 	
  + 4SVH=>%%c**+s$   AE	/E:E
F.FF)r[   rZ   N)r$   r%   r&   r'   r(   r@   r+   r   r`   r)   re   r   r   rw   r.   r#   r"   r   rW   rW   ^   sR    37>S >H >4C 4E 4"
# "
S "
T#s(^ "
r"   rW   c                       \ rS rSrSrSS\4S jjrSS\S\4S jjr	S\
4S	 jrS
\
4S jrS\\\4   4S jrS\\   S\4S jrS\\\4   4S jrSrg)SystemMonitor   z1Comprehensive system monitoring and health checkscheck_intervalc                 n    Xl         / U l        / U l        SU l        SU l        / U l        SSSSS.U l        g )Nr   r   r   r   r   r   r   r   r   )r|   metrics_historyoperation_timeserror_countr   alertshealth_thresholds)r   r|   s     r   r@   SystemMonitor.__init__   sE    ,46,. "$ 	"
r"   durationsuccessc                    U R                   R                  U5        U =R                  S-  sl        U(       d  U =R                  S-  sl        [	        U R                   5      S:  a  U R                   R                  S5        gg)z"Record an operation for monitoring     r   N)r   rE   r   r   rP   pop)r   r   r   s      r   record_operationSystemMonitor.record_operation   si    ##H-!! t##$t+  $$Q' ,r"   r   c           	         [         R                  " SS9n[         R                  " 5       nU R                  (       a#  [        R
                  " U R                  SS 5      OSnU R                  [        U R                  S5      -  n[        UUR                  [        R                  " 5       R                  5       U R                  UUS9nU R                  R                  U5        [!        U R                  5      S:  a  U R                  R#                  S5        UR%                  U R&                  5      (       d  U R)                  U5        U$ )	z%Collect current system health metricsr   )intervaliNrm   )r   r   r   r   r   r   r   r   )psutilr   virtual_memoryr   rs   rt   r   maxr   r   percentr	   rQ   rR   r   rE   rP   r   r    r   _create_alert)r   r   r   avg_response_timer   metricss         r   collect_metricsSystemMonitor.collect_metrics   s   ((!4&&(DHDXDXBGGD$8$8$?@^a%%D,@,@!(DD
#!>>lln..0 00!"3
 	##G, t##$t+  $$Q' !!$"8"899w'r"   r   c                     UR                   SUR                  UR                  UR                  UR                  S.S.nU R
                  R                  U5        g)z%Create alert for unhealthy conditionshealth_warningr~   )r   typedetailsN)r   r   r   r   r   r   rE   )r   r   alerts      r   r   SystemMonitor._create_alert   sT     !**$**!00%00!(!>!>		
 	5!r"   c           
         U R                   (       d  U R                  5       nOU R                   S   n[        U R                   5      S:  a  U R                   SS OU R                   nUR                  UR                  UR
                  UR                  S.UR                  U R                  5      U R                  U Vs/ s H  o3R                  PM     sn5      U R                  U Vs/ s H  o3R                  PM     sn5      U R                  U Vs/ s H  o3R
                  PM     sn5      S.[        U R                  5      U R                  S.$ s  snf s  snf s  snf )z!Get current health status summary
   Nr~   )	cpu_trendmemory_trenderror_trend)currenthealthytrendsr   
operations)r   r   rP   r   r   r   r   r    r   _calculate_trendr   r   )r   r   recent_metricsms       r   get_health_statusSystemMonitor.get_health_status   s,   ##**,G**2.G7:4;O;O7PTV7V--cd3\`\p\p **!00%00!(!>!>	 ))$*@*@A!22>3Z>aMM>3Z[ $ 5 5Q_6`Q_A7G7GQ_6` a#44N5[NqllN5[\
 $++&..
 	
 4[6`5[s   =E'EEvaluesc                     [        U5      S:  a  g[        R                  " USS 5      n[        U5      S:  a  [        R                  " USS 5      OUS   nX#-
  n[        U5      SU-  :  a  gUS:  a  gg	)
z%Calculate trend direction from values   stableN   r   皙?
increasing
decreasing)rP   rs   rt   abs)r   r   
recent_avg	older_avgdiffs        r   r   SystemMonitor._calculate_trend   sq    v;?WWVBC[)
,/K!OBGGF3BK(	%t9ti''AXr"   c                    [         R                  " 5       [         R                  " 5       R                  S-  [         R                  " 5       R                  S-  S.U R
                  U R                  U R                  [        U R
                  S5      -  U R                  (       a   [        R                  " U R                  5      OSS.U R                  SS U R                  5       S.$ )	z#Get detailed diagnostic informationi   @)	cpu_counttotal_memory_gbavailable_memory_gbr   r   )total_operationstotal_errorsr   r   r   N)system_infoperformancer   health_status)r   r   r   total	availabler   r   r   r   rs   rt   r   r   r?   s    r   get_diagnosticsSystemMonitor.get_diagnostics  s     $--/#)#8#8#:#@#@G#L'-'<'<'>'H'HG'T %)$8$8 $ 0 0"..T5I5I11MMFJFZFZRWWT-A-A%B`a	 kk#$'!335
 	
r"   )r   r|   r   r   r   r   r   N)<   )T)r$   r%   r&   r'   r(   r,   r@   r)   r-   r   r   r   r   r   r+   r   r   r   r   r   r.   r#   r"   r   rz   rz      s{    ;
s 
	( 	( 	( :"] "
4S> 
4 tE{  s  "
c3h 
r"   rz   c                   Z    \ rS rSrSrS rS rS\S\S\	S\S	\
\\4   4
S
 jrS	\4S jrSrg)RobustSystemManageri  zGUnified system management with validation, verification, and monitoringc                 ~    [        5       U l        [        5       U l        [	        5       U l        U R                  5         g r;   )r8   input_validatorrW   output_verifierrz   system_monitor_setup_default_rulesr?   s    r   r@   RobustSystemManager.__init__  s0    -/-/+o 	!!#r"   c           
         U R                   R                  S[        SS SSS95        U R                   R                  S[        SS	 S
SS95        U R                  R	                  SS5        U R                  R	                  SS5        g)z/Setup default validation and verification rulesqueryquery_lengthc                 l    [        [        U 5      5      S:  =(       a    [        [        U 5      5      S:  $ )Nr   i'  )rP   r+   xs    r   <lambda>:RobustSystemManager._setup_default_rules.<locals>.<lambda>+  s%    CAK!O$KCFe8K$Kr"   z,Query must be between 1 and 10000 charactersrM   )r2   r3   r4   r6   confidence_scorescore_rangec                 ,    SU s=:*  =(       a    S:*  $ s  $ )Nrm   rh   r#   r   s    r   r   r   5  s    C1OOOr"   z(Confidence score must be between 0 and 1rn   ro   	coherenceg?N)r   rF   r0   r   re   r?   s    r   r   (RobustSystemManager._setup_default_rules$  s     	**#KL#		
 	**"3H#		
 	229cB22;Dr"   rB   rH   	operationr]   r   c                    [         R                   " 5       nU R                  R                  X5      nUS   (       d6  U R                  R	                  [         R                   " 5       U-
  SS9  SSUS.$  U" U5      nU R                  R                  XG5      n	[         R                   " 5       U-
  n
U R                  R	                  XS   S9  U	S   UUU	U
[        R                  " 5       R                  5       S.S	.$ ! [
         aI  nU R                  R	                  [         R                   " 5       U-
  SS9  S[        U5      US.s SnA$ SnAff = f)
z
Process data with full validation, monitoring, and verification

Returns: Dict with keys: success, result, validation, verification, metrics
rJ   F)r   zInput validation failed)r   error
validationNri   )r   r   )r   rN   r   verificationr   )timer   rT   r   r   rO   r+   r   rw   r	   rQ   rR   )r   rB   rH   r   r]   
start_timevalidation_resultrN   rS   verification_resultr   s              r   process_with_validation+RobustSystemManager.process_with_validation?  sC    YY[
 !0099*K )00z1ISX0Y 2/ 	t_F #2299+N 99;+,,XS]?^,_ +:6+/$%\\^557	
 		
  	00z1ISX0Y Q/ 	s   2C8 8
E>E EEc                    U R                   R                  5       nU R                   R                  5       nSR                  / SPS PSP[        R
                  " 5       R                  5        PSPUS   (       a  SOS PS	PS
 PSPUS   S   S PSPUS   S   S PSPUS   S   S PSPUS   S   S PSPUS   S    PSPUS   S    PSPUS   S    PSPS
 PSPUS    S!    PS"PUS    S#    PS$PUS    S   S PS%PUS    S&   S PS'P[        US(   5       PS)PS
 PS	P5      nUS   S   S*:  a  US+-  nUS   S   S,:  a  US--  nUS   S   S.:  a  US/-  nUS   S   S0:  a  US1-  nUS   (       a  US2-  nU$ )3z$Generate comprehensive system report z&
Eden Core - System Robustness Report
z2==================================================z
Generated: z

HEALTH STATUS: r   HEALTHY	UNHEALTHY
z2--------------------------------------------------z
Current Metrics:
  CPU Usage: r   r   z.1fz%
  Memory Usage: r   z%
  Error Rate: r   z.2%z
  Avg Response Time: r   z.3fzs

Trends:
  CPU: r   r   z
  Memory: r   z
  Errors: r   z

PERFORMANCE SUMMARY:
z
Total Operations: r   r   z
Total Errors: r   z
Overall Error Rate: z
Average Response Time: r   zs

ALERTS: r   z! recent alerts

RECOMMENDATIONS:
F   uF   ⚠ High CPU usage - Consider optimizing compute-intensive operations
K   uH   ⚠ High memory usage - Review memory management and caching strategies
r   uG   ⚠ Elevated error rate - Review error logs and improve error handling
g      @u<   ⚠ Slow response times - Optimize critical path operations
u3   ✓ All systems operating within normal parameters
)r   r   r   joinr	   rQ   rR   rP   )r   healthdiagnosticsreports       r   get_system_report%RobustSystemManager.get_system_reporto  s	   $$668))99;   	 LLN$$&'(
 $I.	K@
A 	 Y&s+, 	"8,S12 i .s34 Y'8=> 	x%&' (N+
,-  (M*
+! ,!& '&	'( }-.@AB)(C)* =).9:+*;+, !/=cB-,C-. $M23FGL/.M	/2 
["	#$32%38 98	9@ )U#b(__F)X&+aaF)\*T1``F)_-3UUF)LLFr"   )r   r   r   N)r$   r%   r&   r'   r(   r@   r   r+   r   r   r   r   r   r.   r#   r"   r   r   r     sQ    Q$E6.
# .
S .
*2.
AD.
IMcSVh.
`13 1r"   r   __main__c                     U SS.$ )Ngffffff?)	processed
confidencer#   )rH   s    r   example_operationr     s    !66r"   r   z(What is artificial general intelligence?reasoning_result)rB   rH   r   r]   r   )indentr   )r(   r   r   numpyrs   typingr   r   r   r   r   dataclassesr   r	   jsonr   r0   r8   rW   rz   r   r$   managerr   r   rN   printdumpsr   r#   r"   r   <module>r     s   
    6 6 !   
 
 
&   / /d3
 3
lB
 B
JG GV z!#G7 ,,7#&	 - F 
$**VA
&'	$**,
,-! r"   