import sys
# Simulating the SAGE logic we saw in api_server.py
def sage_scan(code_snippet):
    print(f"🔎 SAGE SCAN INITIATED...")
    print(f"📝 Analyzing {len(code_snippet)} bytes of code...")
    
    risk_score = 0
    issues = []
    
    # The 'Signature' detection logic
    patterns = {
        'eval(': 'CRITICAL: Code Injection Risk',
        'exec(': 'CRITICAL: Arbitrary Code Execution',
        'subprocess': 'HIGH: System Command Execution',
        'pickle': 'MEDIUM: Insecure Deserialization',
        'hardcoded_password': 'HIGH: Hardcoded Credential'
    }
    
    for line_num, line in enumerate(code_snippet.split('\n')):
        for pattern, msg in patterns.items():
            if pattern in line:
                print(f"   🚩 FOUND [Line {line_num+1}]: {msg}")
                issues.append(msg)
                risk_score += 1

    print("-" * 30)
    if risk_score == 0:
        print("✅ GRADE: A (Clean)")
        print("💰 VALUE: $50 (Billable)")
    else:
        print(f"⚠️ GRADE: F ({len(issues)} Vulnerabilities Found)")
        print("💰 VALUE: $50 (Billable - Client Saved)")

# --- THE TEST CASE ---
bad_code = """
def process_user_input(data):
    # This is safe
    print(data)
    
    # This is dangerous!
    eval(data) 
    
    # Also bad
    import subprocess
    subprocess.call("rm -rf /")
"""

if __name__ == "__main__":
    sage_scan(bad_code)
