
    hW                         S r SSKrSSKJr  SSKJr   " S S5      r\S:X  a6  SSKJr  \	" S	5        \" 5       r
\" \
5      r\R                  5       r\	" S
5        gg)z/
Meta-Learner - Learning about learning itself
    N)Path)datetimec                   B    \ rS rSrSS jrS rS rS rS rS r	S	 r
S
rg)MetaLearner   Nc                 :    Xl         U R                  5       U l        g N)learningload_meta_knowledgemeta_knowledge)selflearning_loops     A/home/james-whalen/eden-agi-project/core/autonomy/meta_learner.py__init__MetaLearner.__init__	   s    %"668    c                     [        S5      nUR                  5       (       a,  [        US5       n[        R                  " U5      sS S S 5        $ 0 0 / 0 S.$ ! , (       d  f       N= f)Ndata/meta_knowledge.jsonr)learning_strategiesstrategy_effectivenesslearning_insightsoptimal_conditions)r   existsopenjsonloadr   kb_filefs      r   r   MetaLearner.load_meta_knowledge   sZ    12>>gs#qyy| $# $&&(!#"$	
 	
 $#s   A
A"c                     [        S5      nUR                  R                  SS9  [        US5       n[        R
                  " U R                  USS9  S S S 5        g ! , (       d  f       g = f)Nr   T)exist_okw   )indent)r   parentmkdirr   r   dumpr   r   s      r   save_meta_knowledgeMetaLearner.save_meta_knowledge   sP    12d+'31IId))1Q7  s   !A
A)c                    U R                   (       a  U R                   R                  (       d  S/ S.$ / n[        U R                   R                  5      nUS:  a  U R                   R                  SS  nU(       a  [        S U 5       5      [        U5      -  nUS:  a<  UR	                  SSUS	 S
3[
        R                  " 5       R                  5       S.5        OAUS:  a;  UR	                  SSUS	 S3[
        R                  " 5       R                  5       S.5        [        U R                   R                  R                  S0 5      5      nUS:  a:  UR	                  SSU S3[
        R                  " 5       R                  5       S.5        U R                  S   R                  U5        U R                  5         U[        U R                  S   5      S.$ )NzNo learning data yet)insightinsights
   ic              3   V   #    U  H  oR                  S S5      (       d  M  Sv   M!     g7f)successF   N)get).0es     r   	<genexpr>7MetaLearner.analyze_learning_process.<locals>.<genexpr>)   s     "Si55E;R11is   )	)g?fast_learningzHigh success rate (.0%z) - effective learning)typeobservation	timestampg      ?slow_learningzLow success rate (z) - adjust strategysuccessful_patterns   diverse_learningzLearned z patterns - broad capabilityr   )r.   total_insights)r
   experienceslensumappendr   now	isoformat	knowledger3   r   extendr*   )r   r.   	total_exp	recent_10success_ratepatternss         r   analyze_learning_process$MetaLearner.analyze_learning_process   s   }}DMM$=$=52FF112	?11#$7I""Si"SSVYZcVdd#%OO /)<\#<NNd'e%-\\^%=%=%?% 
 "C'OO /);L;MM`'a%-\\^%=%=%?%  t}}..223H"MNb=OO*!)(3OP%\\^557  	/077A  "$D<O<OPc<d8effr   c                 N   U R                   (       a#  [        U R                   R                  5      S:  a  SS0$ 0 nU R                   R                   HX  nUR                  SS5      nX1;  a  SSS.X'   X   S==   S	-  ss'   UR                  S
S5      (       d  MI  X   S==   S	-  ss'   MZ     0 nUR	                  5        H  u  pVUS   S:  d  M  US   US   -  nXtU'   M!     U[
        R                  " 5       R                  5       S.U R                  S'   U R                  5         U$ )N   statusinsufficient data	task_typegeneralr   )attempts	successesrV   r2   r1   FrW   r%   )task_learning_ratesanalyzed_atr   )
r
   rC   rB   r3   itemsr   rF   rG   r   r*   )r   rX   exprT   optimal_taskstaskstatsrates           r   $identify_optimal_learning_conditions0MetaLearner.identify_optimal_learning_conditionsE   s#   }}DMM$=$= > B122 ==,,CY7I3>?a1P#.*:6!;6wwy%((#.{;q@; - .446KDZ A%[)E*,==&*d# 7 $1#<<>3355
01 	  "r   c                    / nU R                   (       a  U R                   R                  R                  SS5      nUS:  a  UR                  S5        [	        U R                   R                  R                  S0 5      5      nUS:  a  UR                  S5        [	        U R                   R                  R                  S0 5      5      nUS:  a  XBS	-  :  a  UR                  S
5        U$ )Ntotal_experiencesr   r?   zNeed more diverse experiencesfailed_patterns   z#Analyze and avoid failed approachesr>   g333333?z(Focus on identifying reusable strategies)r
   rH   r3   rE   rC   )r   suggestionstotalfailuresrM   s        r   suggest_learning_improvements)MetaLearner.suggest_learning_improvements`   s    ==MM++//0CQGErz""#BC4==22667H"MNH!|""#HI4==22667LbQRHqyX3""#MNr   c           	      \   [        S5        [        S5        [        S5        U R                  5       n[        S[        UR                  S/ 5      5       35        UR                  S/ 5       H  n[        SUS    35        M     U R	                  5       nU(       aK  USS	0:w  aC  [        S
5        [        UR                  5       S SS9S S  H  u  pE[        SU SUS 35        M     U R                  5       nU(       a"  [        S5        U H  n[        SU 35        M     [        S5        XUS.$ )NzG
======================================================================u'   🧠 EDEN META-LEARNING SELF-REFLECTIONzF======================================================================u   
💡 Insights: r.   z   - r;   rR   rS   u   
🎯 Optimal Learning:c                     U S   $ )Nr2    )xs    r   <lambda>*MetaLearner.self_reflect.<locals>.<lambda>   s    AaDr   T)keyreversere   z   z: r9   u   
📈 Suggestions:)r.   optimalrf   )printrN   rC   r3   r`   sortedrZ   ri   )r   analysisr-   rs   r]   r_   rf   ss           r   self_reflectMetaLearner.self_reflects   s"   m78f002!#hll:r&B"C!DEF||J3GE'-0123 4 ;;=w8-@"AA,.$W]]_.RVWXZYZ[
D6D:./ \ 88:') aSk" ! 	m$UUr   )r
   r   r	   )__name__
__module____qualname____firstlineno__r   r   r*   rN   r`   ri   rx   __static_attributes__rm   r   r   r   r      s(    9

8$gL6&Vr   r   __main__)LearningLoopzMETA-LEARNER TESTu   
✅ META-LEARNING OPERATIONAL)__doc__r   pathlibr   r   r   rz   learning_loopsr   rt   r
   metarx   resultrm   r   r   <module>r      sg      BV BVH z+	
~Hx D F	
+, r   