import asyncio
from mcp_use import MCPAgent, MCPClient
from langchain_google_genai import ChatGoogleGenerativeAI
import os
from dotenv import load_dotenv

load_dotenv()

async def genesis_architect_e_drive():
    print("🧬 GENESIS SYSTEM ARCHITECT (E DRIVE)")
    print("=" * 40)
    
    config = {
        "mcpServers": {
            "filesystem": {
                "command": "npx",
                "args": ["-y", "@modelcontextprotocol/server-filesystem", "/mnt/e/genesis-system"]
            }
        }
    }
    
    llm = ChatGoogleGenerativeAI(
        model="gemini-1.5-flash",
        temperature=0.1,
        google_api_key=os.getenv("GOOGLE_API_KEY")
    )
    
    client = MCPClient.from_dict(config)
    agent = MCPAgent(llm=llm, client=client, max_steps=20)
    
    print("✅ Genesis Architect Ready on E Drive!")
    
    while True:
        user_input = input("\n🏗️ E-Drive Architect: ")
        if user_input.lower() == 'exit':
            break
        
        try:
            result = await agent.run(user_input)
            print(f"\n📐 Blueprint:\n{result}")
        except Exception as e:
            print(f"❌ Error: {e}")
    
    await client.close_all_sessions()

if __name__ == "__main__":
    asyncio.run(genesis_architect_e_drive())
