#!/usr/bin/env python3 # -*- coding: utf-8 -*- """ Code Review Agent - Main Entry Point This module serves as the entry point for the Code Review Agent application. It initializes the Gradio interface and starts the web server. """ import os import sys import logging from dotenv import load_dotenv # Add the project root to the Python path sys.path.insert(0, os.path.abspath(os.path.join(os.path.dirname(__file__), '..'))) # Import application modules from src.ui.gradio_app import create_gradio_app from src.core.agent_manager import AgentManager # Configure logging # Create logs directory if it doesn't exist logs_dir = os.path.join(os.path.dirname(__file__), '..', 'logs') os.makedirs(logs_dir, exist_ok=True) logging.basicConfig( level=logging.INFO, format='%(asctime)s - %(name)s - %(levelname)s - %(message)s', handlers=[ logging.StreamHandler(), logging.FileHandler(os.path.join(logs_dir, 'app.log'), mode='a') ] ) logger = logging.getLogger(__name__) def main(): """Main function to start the Code Review Agent application.""" # Load environment variables load_dotenv() # Create logs directory if it doesn't exist logs_dir = os.path.join(os.path.dirname(__file__), '..', 'logs') os.makedirs(logs_dir, exist_ok=True) # Initialize the agent manager agent_manager = AgentManager() # Create and launch the Gradio app app = create_gradio_app(agent_manager) # Start the Gradio server app.launch(server_name="0.0.0.0", server_port=7860) if __name__ == "__main__": try: logger.info("Starting Code Review Agent application") main() except Exception as e: logger.exception(f"Error starting application: {e}") sys.exit(1)