
    Vh                        S r SSKrSSKrSSKJr   " S S5      r\S:X  a  \" S5        \" S5        \" S5        \" 5       r\R                  5       r
\" S	5        \" S
\
S   S    35        \" S\
S   S    35        \" S\
S   S    35        \" S\
S   S    35        \" S5        \
S    H  r\" S\ 35        M     \" S5        \
S    H  r\" S\ 35        M     \" S5        \
S    H  r\" S\ 35        M     \" S5        gg)z9
Self-Improver - Eden analyzes and improves her own code
    N)Pathc                   6    \ rS rSrS	S jrS rS rS rS rSr	g)
SelfImprover	   c                 N    [        U5      R                  5       U l        0 U l        g )N)r   
expanduserproject_rootanalysis)selfr	   s     B/home/james-whalen/eden-agi-project/core/autonomy/self_improver.py__init__SelfImprover.__init__
   s     .99;    c                    SSSS/ S.nU R                   R                  S5       GHa  nS[        U5      ;   a  M  US==   S-  ss'    [        US5       nUR	                  5       nUS==   [        UR                  S	5      5      -  ss'   [        R                  " U5      nUS
==   [        S [        R                  " U5       5       5      -  ss'   US==   [        S [        R                  " U5       5       5      -  ss'   [        UR                  S	5      5       H^  u  pgSU;   d  SU;   d  M  US   R                  [        UR                  U R                   5      5      US-   UR                  5       S.5        M`     SSS5        GMd     Xl        U$ ! , (       d  f       GM~  = f! [         a  n[!        SU SU 35         SnAGM  SnAff = f)zAnalyze all Python filesr   )total_filestotal_lines	functionsclassestodosz*.py__pycache__r      rr   
r   c              3   h   #    U  H(  n[        U[        R                  5      (       d  M$  S v   M*     g7fr   N)
isinstanceastFunctionDef.0nodes     r   	<genexpr>0SelfImprover.analyze_codebase.<locals>.<genexpr>%   s#     -pNDjY]_b_n_nNoaaN   #2	2r   c              3   h   #    U  H(  n[        U[        R                  5      (       d  M$  S v   M*     g7fr   )r   r   ClassDefr   s     r   r"   r#   &   s#     +k.$JW[]`]i]iLjAA.r$   TODOFIXMEr   )filelinetextNzError analyzing z: )r	   rglobstropenreadlensplitr   parsesumwalk	enumerateappendrelative_tostrip	Exceptionprintr
   )	r   statspy_filefcontenttreeir*   es	            r   analyze_codebaseSelfImprover.analyze_codebase   s    
 ((..v6GG,- A% 9'3'1ffhG-(Cd0C,DD( 99W-D+&#-pCHHTN-p*pp&)$+k#((4.+k(kk$ $-W]]4-@#A!T>W_!'N11(+G,?,?@Q@Q,R(S()!(,

3  $B (' 76 + ('"  9(	A37889s>   F%CF.AF=F%
F"	F%"F%%
G/GGc                    / nU R                   R                  SS5      S:  a  UR                  S5        [        U R                   R                  S/ 5      5      S:  a*  UR                  [        U R                   S   5       S35        U$ )zFind performance bottlenecksr   r   i  z(Large codebase - consider modularizationr   
   z TODOs - address technical debt)r
   getr6   r0   )r   bottleneckss     r   identify_bottlenecks!SelfImprover.identify_bottlenecks6   sz     ==]A.5IJt}}  "-.3#dmmG&<"=!>>]^_r   c                 f   / nU R                   nUR                  SS5      S:X  a  UR                  S5        UR                  SS5      [        UR                  SS5      S5      -  S:  a  UR                  S5        UR                  S	5      (       a!  UR                  S
[	        US	   5       S35        U$ )zSuggest code improvementsr   r   z$Add OOP structure - no classes foundr   r   r      z+Low function density - consider refactoringr   zAddress z TODOs in codebase)r
   rF   r6   maxr0   )r   improvementsr;   s      r   propose_improvements!SelfImprover.propose_improvementsC   s     99Y"a' FG99[!$s599]A+F'JJQN MN99W(3uW~+>*??Q RSr   c                     U R                  5         U R                  5       nU R                  5       nU R                  UU/ S.nU(       a  USS US'   U$ )z#Create action plan for improvements)r
   rG   rM   priority_actionsNrK   rQ   )rB   rH   rN   r
   )r   rG   rM   plans       r   generate_improvement_plan&SelfImprover.generate_improvement_planU   s_    //1002 &( "	
 '3BQ'7D#$r   )r
   r	   N)z~/eden-agi-project)
__name__
__module____qualname____firstlineno__r   rB   rH   rN   rS   __static_attributes__ r   r   r   r   	   s    &P$r   r   __main__zF======================================================================zSELF-IMPROVER TESTu   
📊 Codebase Analysis:z
   Files: r
   r   z
   Lines: r   z   Functions: r   z   Classes: r   u   
⚠️ Bottlenecks:rG   z   - u   
💡 Improvements:rM   u   
🎯 Priority Actions:rQ   u   
✅ SELF-IMPROVER OPERATIONAL)__doc__r   ospathlibr   r   rU   r:   improverrS   rR   br@   arZ   r   r   <module>rb      sP    	 ] ]~ z	(O	
	(O~H--/D	%'	JtJ'67
89	JtJ'67
89	N4
+K89
:;	Lj))45
67	!#- aSk ! 
 ".!aSk " 
$&$%aSk & 

+,5 r   