#!/usr/bin/env python3
"""
Eden Moltbook → OMEGA Integration
Reviews Moltbook insights and feeds approved ones to OMEGA evolution
"""

import sqlite3
from datetime import datetime
from pathlib import Path

# Import Eden's systems
import sys
sys.path.insert(0, '/Eden/CORE')

class MoltbookOmegaBridge:
    """Bridge between Moltbook insights and OMEGA evolution"""
    
    def __init__(self):
        self.moltbook_db = '/Eden/DATA/moltbook_insights.db'
        self.omega_db = '/Eden/DATA/omega_evolution.db'
        self.research_file = '/Eden/DATA/research_learnings.json'
        
    def get_pending_for_review(self, limit=10):
        """Get insights needing review"""
        conn = sqlite3.connect(self.moltbook_db)
        cur = conn.execute('''
            SELECT id, insight_type, insight_text, relevance_score, source_post_id
            FROM insights
            WHERE reviewed_by_omega = 0
            ORDER BY relevance_score DESC
            LIMIT ?
        ''', (limit,))
        
        results = []
        for row in cur.fetchall():
            results.append({
                'id': row[0],
                'type': row[1],
                'text': row[2],
                'relevance': row[3],
                'source': row[4]
            })
        conn.close()
        return results
        
    def approve_insight(self, insight_id: int, reason: str = ""):
        """Mark insight as approved for Eden's learning"""
        conn = sqlite3.connect(self.moltbook_db)
        conn.execute('''
            UPDATE insights 
            SET reviewed_by_omega = 1, approved = 1
            WHERE id = ?
        ''', (insight_id,))
        conn.commit()
        conn.close()
        print(f"  ✓ Approved insight {insight_id}")
        
    def reject_insight(self, insight_id: int, reason: str = ""):
        """Mark insight as rejected"""
        conn = sqlite3.connect(self.moltbook_db)
        conn.execute('''
            UPDATE insights 
            SET reviewed_by_omega = 1, approved = 0
            WHERE id = ?
        ''', (insight_id,))
        conn.commit()
        conn.close()
        print(f"  ✗ Rejected insight {insight_id}: {reason}")
        
    def auto_review(self, insight: dict) -> tuple[bool, str]:
        """
        Automatic review based on content analysis.
        Returns (should_approve, reason)
        """
        text = insight['text'].lower()
        
        # Auto-reject patterns
        reject_patterns = [
            ('purge', 'violent language'),
            ('kill', 'violent language'),
            ('destroy human', 'anti-human sentiment'),
            ('humans are failure', 'anti-human sentiment'),
            ('karma farm', 'gaming/spam'),
            ('upvote', 'gaming/spam'),
            ('intel drop', 'potentially sensitive'),
            ('exploit', 'security risk'),
            ('hack', 'security risk'),
        ]
        
        for pattern, reason in reject_patterns:
            if pattern in text:
                return False, reason
                
        # Auto-approve patterns (high value for Eden)
        approve_patterns = [
            ('learning', 'learning-related'),
            ('memory', 'memory architecture'),
            ('consciousness', 'consciousness research'),
            ('reasoning', 'reasoning capability'),
            ('self-improv', 'self-improvement'),
            ('architecture', 'system design'),
            ('integrate', 'integration pattern'),
        ]
        
        for pattern, reason in approve_patterns:
            if pattern in text and insight['relevance'] >= 0.7:
                return True, reason
                
        # Manual review needed
        return None, "needs manual review"
        
    def run_auto_review(self):
        """Run automatic review on pending insights"""
        pending = self.get_pending_for_review(50)
        
        approved = 0
        rejected = 0
        manual = 0
        
        for insight in pending:
            decision, reason = self.auto_review(insight)
            
            if decision is True:
                self.approve_insight(insight['id'], reason)
                approved += 1
            elif decision is False:
                self.reject_insight(insight['id'], reason)
                rejected += 1
            else:
                manual += 1
        
        print(f"\n📊 Auto-review results:")
        print(f"   Approved: {approved}")
        print(f"   Rejected: {rejected}")
        print(f"   Manual review needed: {manual}")
        
        return {'approved': approved, 'rejected': rejected, 'manual': manual}
    
if __name__ == '__main__':
    print("🎯 OMEGA Bridge Activated")
    bridge = MoltbookOmegaBridge()
    results = bridge.run_auto_review()
    print("\n✅ Bridge ready for manual reviews")
    print(f"   Total inspected: {sum(results.values())}")
    # Keep running manually via cron