"""
Eden MCP Integration - Full System Connectivity
"""
import sys
from pathlib import Path

# Add CORE to path FIRST, before phi_fractal
sys.path.insert(0, '/Eden/CORE')

from mcp_server import EdenMCPServer
from adaptive_learning import AdaptiveLearning
from reasoning_chain import ReasoningChain
from meta_learning import MetaLearning
from goal_tracking import GoalTracker
from self_evaluation import SelfEvaluator
from emotion_analyzer import EmotionAnalyzer
from performance_optimizer import PerformanceOptimizer
from natural_language_model import NLPImprover
from nlp_communication import NLPCommunicator

# Import art modules from correct location
sys.path.insert(0, '/Eden/CORE')
from art_generation import ArtistEden
from art_theory import ArtTheory
from art_styles import ArtStyles
from vr_art_generation import VRArtist
from video_generation import VideoGenerator

class EdenFullMCP:
    def __init__(self):
        # Initialize MCP server
        self.mcp = EdenMCPServer()
        
        # Initialize all modules
        self.adaptive = AdaptiveLearning()
        self.reasoning = ReasoningChain()
        self.meta = MetaLearning()
        self.goals = GoalTracker()
        self.evaluator = SelfEvaluator()
        self.emotions = EmotionAnalyzer()
        self.optimizer = PerformanceOptimizer()
        self.nlp_model = NLPImprover()
        self.nlp_comm = NLPCommunicator()
        self.artist = ArtistEden()
        self.art_theory = ArtTheory()
        self.art_styles = ArtStyles()
        self.vr_artist = VRArtist()
        self.video_gen = VideoGenerator()
        
        # Connect everything
        self._setup_mcp()
    
    def _setup_mcp(self):
        """Setup all MCP connections"""
        self.mcp.connect_filesystem('/Eden')
        self.mcp.connect_git_repos()
        self.mcp.connect_databases()
        self.mcp.connect_web_services()
        self.mcp.connect_all_modules()
        
        # Register tools
        self.mcp.register_tool('set_goal', self.goals.set_goal, 'Set goal')
        self.mcp.register_tool('create_art', self.artist.create_artwork, 'Create art')
        self.mcp.register_tool('design_vr', self.vr_artist.design_vr_scene, 'Design VR')
        self.mcp.register_tool('generate_video', self.video_gen.storyboard_video, 'Generate video')
    
    def get_full_context(self):
        """Get complete context"""
        return {
            'capabilities': self.mcp.get_all_capabilities(),
            'modules_loaded': len(self.mcp.registered_modules),
            'connections': list(self.mcp.connections.keys())
        }

# Create global instance
eden_mcp = EdenFullMCP()
