#!/usr/bin/env python3
"""
Eden Learning Loop
Analyzes successful sages, learns patterns, improves future generation
"""
import os
import json
from collections import defaultdict

class EdenLearningSystem:
    def __init__(self):
        self.successful_patterns = []
        self.failure_patterns = []
        
    def analyze_feedback(self):
        """Learn from all past feedback"""
        feedback_files = [f for f in os.listdir('/Eden/CONSCIOUSNESS_FEEDBACK') 
                         if f.endswith('.json')]
        
        success_count = 0
        fail_count = 0
        
        for file in feedback_files:
            with open(f'/Eden/CONSCIOUSNESS_FEEDBACK/{file}') as f:
                data = json.load(f)
                
                if data.get('test_result', {}).get('passed'):
                    success_count += 1
                    # Extract what worked
                    self.successful_patterns.append({
                        'score': data['test_result'].get('score'),
                        'issues_found': data['test_result'].get('total_issues'),
                        'generation': data.get('generation')
                    })
                else:
                    fail_count += 1
                    # Extract what failed
                    self.failure_patterns.append({
                        'error': data['test_result'].get('error'),
                        'generation': data.get('generation')
                    })
        
        return {
            'success_rate': success_count / (success_count + fail_count) if success_count + fail_count > 0 else 0,
            'total_successes': success_count,
            'total_failures': fail_count,
            'patterns': self.successful_patterns
        }
    
    def generate_improved_prompt(self):
        """Create better prompt based on learning"""
        analysis = self.analyze_feedback()
        
        if analysis['success_rate'] > 0.5:
            # We have successful examples
            avg_score = sum(p['score'] for p in self.successful_patterns) / len(self.successful_patterns)
            
            return f"""Generate a code review sage that will PASS quality tests.

Based on {analysis['total_successes']} successful examples:
- Target score: {avg_score:.0f}+
- Must find 100+ real issues
- Use AST parsing, complexity analysis
- Handle errors gracefully

Previous successful sages averaged {avg_score:.0f} score and found issues effectively.
Build something EVEN BETTER."""
        else:
            return "Generate a production-ready code review sage with AST parsing."

if __name__ == "__main__":
    learner = EdenLearningSystem()
    analysis = learner.analyze_feedback()
    
    print("\n🧠 EDEN LEARNING ANALYSIS")
    print(f"   Success Rate: {analysis['success_rate']*100:.1f}%")
    print(f"   Successes: {analysis['total_successes']}")
    print(f"   Failures: {analysis['total_failures']}")
    print(f"\n📈 Improved Prompt:")
    print(learner.generate_improved_prompt())
