#!/usr/bin/env python3
"""
EDEN EXECUTION TOOLS - Simple functions Eden can call
"""
import sqlite3
import requests
import json
from datetime import datetime

SALES_DB = "/Eden/DATA/sales.db"
GITHUB_TOKEN = open("/Eden/SECRETS/github_token").read().strip()

def get_top_leads(limit=3):
    """Get highest scoring leads"""
    conn = sqlite3.connect(SALES_DB)
    leads = conn.execute("""
        SELECT id, identifier, score, status, data 
        FROM leads 
        WHERE status IN ('new', '', 'processing')
        ORDER BY score DESC 
        LIMIT ?
    """, (limit,)).fetchall()
    conn.close()
    return leads

def add_lead(source, identifier, data, score=50):
    """Add a new lead"""
    conn = sqlite3.connect(SALES_DB)
    conn.execute("""
        INSERT INTO leads (source, identifier, data, score, status, created_at)
        VALUES (?, ?, ?, ?, 'new', ?)
    """, (source, identifier, json.dumps(data), score, datetime.now().isoformat()))
    conn.commit()
    conn.close()
    return True

def find_github_security_issues(query="security vulnerability", limit=5):
    """Find security issues on GitHub"""
    headers = {"Authorization": f"token {GITHUB_TOKEN}"}
    resp = requests.get(
        "https://api.github.com/search/issues",
        params={"q": f"{query} is:issue is:open", "per_page": limit},
        headers=headers,
        timeout=30
    )
    if resp.status_code == 200:
        return resp.json().get("items", [])
    return []

def check_email_from(sender_search):
    """Check for emails from specific sender"""
    import imaplib
    import email
    
    mail = imaplib.IMAP4_SSL('imap.gmail.com')
    mail.login("jameyecho@gmail.com", "lkbzsbavkvjnopqc")
    mail.select('INBOX')
    
    _, messages = mail.search(None, f'FROM "{sender_search}"')
    results = []
    
    for num in messages[0].split()[-5:]:
        _, data = mail.fetch(num, '(RFC822)')
        msg = email.message_from_bytes(data[0][1])
        results.append({
            "from": msg["From"],
            "subject": msg["Subject"],
            "date": msg["Date"]
        })
    
    mail.logout()
    return results

def pipeline_stats():
    """Get full pipeline stats"""
    conn = sqlite3.connect(SALES_DB)
    stats = {
        "total": conn.execute("SELECT COUNT(*) FROM leads").fetchone()[0],
        "new": conn.execute("SELECT COUNT(*) FROM leads WHERE status='new' OR status=''").fetchone()[0],
        "contacted": conn.execute("SELECT COUNT(*) FROM leads WHERE status='contacted'").fetchone()[0],
        "outreach_sent": conn.execute("SELECT COUNT(*) FROM outreach_queue WHERE status='sent'").fetchone()[0],
    }
    conn.close()
    return stats

if __name__ == "__main__":
    print("Top 3 leads:", get_top_leads(3))
    print("Pipeline:", pipeline_stats())

# === REAL TOOL BUILDER CONNECTION ===
def build_new_tool(reason="general improvement"):
    """Actually build a tool using the soul's tool builder"""
    import sys
    sys.path.insert(0, "/Eden/CORE")
    from eden_soul import Soul
    soul = Soul()
    result = soul.build_tool(reason)
    return result
