File size: 3,750 Bytes
c922f8b
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
"""
Minimal deployment verification script for GAIA Agent
"""

import os
import sys
from datetime import datetime
import traceback

def print_header(message):
    print("\n" + "=" * 50)
    print(message)
    print("=" * 50)

def check_file_structure():
    """Check if critical files are present."""
    print_header("Checking file structure")
    
    critical_files = [
        "app.py",
        "requirements.txt",
        "agent/config.py",
        "agent/agent.py"
    ]
    
    missing_files = []
    for file_path in critical_files:
        if not os.path.exists(file_path):
            missing_files.append(file_path)
            print(f"[FAIL] Missing critical file: {file_path}")
        else:
            print(f"[PASS] Found file: {file_path}")
    
    return len(missing_files) == 0, missing_files

def check_env_vars():
    """Check if critical environment variables are accessible."""
    print_header("Checking environment variables")
    
    critical_vars = [
        "OPENAI_API_KEY",
        "SUPABASE_URL",
        "SUPABASE_KEY"
    ]
    
    missing_vars = []
    for var_name in critical_vars:
        var_value = os.getenv(var_name, "")
        if not var_value:
            missing_vars.append(var_name)
            print(f"[FAIL] Missing environment variable: {var_name}")
        else:
            print(f"[PASS] Found environment variable: {var_name}")
    
    return len(missing_vars) == 0, missing_vars

def check_packages():
    """Check if requirements.txt contains critical packages."""
    print_header("Checking requirements.txt packages")
    
    critical_packages = [
        "openai",
        "gradio",
        "langchain"
    ]
    
    if not os.path.exists("requirements.txt"):
        print("[FAIL] requirements.txt file not found")
        return False, ["requirements.txt file not found"]
    
    try:
        with open("requirements.txt", "r") as f:
            content = f.read().lower()
        
        missing_packages = []
        for package in critical_packages:
            if package.lower() not in content:
                missing_packages.append(package)
                print(f"[FAIL] Missing package in requirements.txt: {package}")
            else:
                print(f"[PASS] Found package in requirements.txt: {package}")
        
        return len(missing_packages) == 0, missing_packages
    except Exception as e:
        print(f"[ERROR] Error reading requirements.txt: {str(e)}")
        return False, [f"Error reading requirements.txt: {str(e)}"]

def main():
    """Run minimal verification checks."""
    try:
        print_header(f"GAIA Agent Minimal Verification - {datetime.now()}")
        
        # Run checks
        file_check = check_file_structure()
        env_check = check_env_vars()
        pkg_check = check_packages()
        
        # Print summary
        print_header("Verification Summary")
        print(f"File structure check: {'[PASS]' if file_check[0] else '[FAIL]'}")
        print(f"Environment variables check: {'[PASS]' if env_check[0] else '[FAIL]'}")
        print(f"Package requirements check: {'[PASS]' if pkg_check[0] else '[FAIL]'}")
        
        # Overall status
        if file_check[0] and env_check[0] and pkg_check[0]:
            print("\n[SUCCESS] All checks passed. Basic deployment verification successful.")
            return 0
        else:
            print("\n[FAILURE] Some checks failed. Please address the issues before deployment.")
            return 1
            
    except Exception as e:
        print_header("ERROR OCCURRED")
        print(f"Error during verification: {str(e)}")
        print("\nTraceback:")
        traceback.print_exc()
        return 1

if __name__ == "__main__":
    sys.exit(main())