""" š ARF Ultimate Investor Demo v3.8.0 - ENTERPRISE EDITION Main entry point - Complex, comprehensive demo using actual OSS components """ import logging import sys import traceback from pathlib import Path # Add parent directory to path for OSS imports sys.path.insert(0, str(Path(__file__).parent.parent)) # Configure logging first logging.basicConfig( level=logging.INFO, format='%(asctime)s - %(name)s - %(levelname)s - %(message)s', handlers=[ logging.StreamHandler(), logging.FileHandler('arf_demo.log') ] ) logger = logging.getLogger(__name__) try: # Import demo modules from demo.core.data_models import ( IncidentSeverity, Incident, AuditEntry, EnterpriseLicense, MCPServerConfig ) from demo.core.audit_trail import AuditTrailManager from demo.business.logic import EnhancedBusinessLogic from demo.business.roi_calculator import ROICalculator from demo.visualization.engine import EnhancedVisualizationEngine from demo.ui.components import create_all_tabs from demo.ui.event_handlers import register_all_handlers from demo.integration.oss_integration import OSSIntegrationManager # Try to import actual OSS components try: from agentic_reliability_framework.arf_core.models.healing_intent import ( HealingIntent, create_scale_out_intent, create_rollback_intent ) from agentic_reliability_framework.arf_core.engine.simple_mcp_client import OSSMCPClient from agentic_reliability_framework.engine.mcp_server import MCPServer, MCPMode ARF_OSS_AVAILABLE = True OSS_VERSION = "3.3.6" logger.info(f"ā Successfully imported ARF OSS v{OSS_VERSION}") except ImportError as e: logger.warning(f"Failed to import ARF OSS: {e}") ARF_OSS_AVAILABLE = False OSS_VERSION = "Mock 3.3.6" # Mock classes for demo class HealingIntent: def __init__(self, action, component, parameters, **kwargs): self.action = action self.component = component self.parameters = parameters self.justification = kwargs.get('justification', '') self.confidence = kwargs.get('confidence', 0.85) self.similar_incidents = kwargs.get('similar_incidents', []) self.rag_similarity_score = kwargs.get('rag_similarity_score') def to_enterprise_request(self): return { 'action': self.action, 'component': self.component, 'parameters': self.parameters, 'justification': self.justification, 'confidence': self.confidence, 'requires_enterprise': True, 'oss_metadata': { 'similar_incidents_count': len(self.similar_incidents), 'rag_used': self.rag_similarity_score is not None } } def mark_as_oss_advisory(self): return self class OSSMCPClient: def __init__(self): self.mode = "advisory" async def analyze_and_recommend(self, tool_name, component, parameters, context=None): return HealingIntent( action=tool_name, component=component, parameters=parameters, justification=f"OSS Analysis: {tool_name} recommended for {component}", confidence=0.85, similar_incidents=[ {"id": "inc_001", "similarity": 0.78, "resolution": "scaled_out"}, {"id": "inc_045", "similarity": 0.65, "resolution": "restarted"} ], rag_similarity_score=0.72 ) class MCPServer: def __init__(self, mode="advisory"): self.mode = mode async def execute_tool(self, request_dict): return { 'status': 'advisory_completed', 'message': 'Mock OSS analysis complete', 'executed': False, 'requires_enterprise': True } MCPMode = type('MCPMode', (), {'ADVISORY': 'advisory', 'APPROVAL': 'approval', 'AUTONOMOUS': 'autonomous'}) # Import Gradio import gradio as gr import plotly.graph_objects as go def create_demo_interface(): """Create the comprehensive demo interface""" logger.info("Initializing ARF Demo Interface...") # Initialize components audit_manager = AuditTrailManager() oss_integration = OSSIntegrationManager( oss_available=ARF_OSS_AVAILABLE, oss_version=OSS_VERSION ) business_logic = EnhancedBusinessLogic( audit_manager=audit_manager, oss_integration=oss_integration ) roi_calculator = ROICalculator() viz_engine = EnhancedVisualizationEngine() # Create Gradio interface with gr.Blocks( title=f"š ARF Investor Demo v3.8.0", theme=gr.themes.Soft( primary_hue="blue", secondary_hue="teal", font=[gr.themes.GoogleFont("Inter"), "Arial", "sans-serif"] ), css=""" .gradio-container { max-width: 1800px !important; margin: auto !important; font-family: 'Inter', sans-serif !important; } h1 { background: linear-gradient(90deg, #1a365d 0%, #2d3748 100%); -webkit-background-clip: text; -webkit-text-fill-color: transparent; background-clip: text; font-weight: 800 !important; font-size: 2.5rem !important; margin-bottom: 0.5rem !important; } .critical { color: #FF6B6B !important; font-weight: 900 !important; text-shadow: 0 1px 2px rgba(0,0,0,0.1); } .success { color: #4ECDC4 !important; font-weight: 900 !important; } .plot-container { background: white !important; border-radius: 12px !important; padding: 20px !important; box-shadow: 0 4px 12px rgba(0,0,0,0.08) !important; border: 1px solid #e2e8f0 !important; } .tab-nav { background: linear-gradient(90deg, #f8fafc 0%, #ffffff 100%) !important; border-radius: 10px !important; padding: 5px !important; margin-bottom: 20px !important; } .metric-card { background: white !important; border-radius: 10px !important; padding: 20px !important; box-shadow: 0 2px 8px rgba(0,0,0,0.06) !important; border-left: 4px solid #4ECDC4 !important; margin-bottom: 15px !important; } .enterprise-badge { background: linear-gradient(135deg, #667eea 0%, #764ba2 100%) !important; color: white !important; padding: 8px 16px !important; border-radius: 20px !important; font-weight: 700 !important; font-size: 0.85rem !important; display: inline-block !important; margin: 5px 0 !important; } .oss-badge { background: linear-gradient(135deg, #4299e1 0%, #38b2ac 100%) !important; color: white !important; padding: 8px 16px !important; border-radius: 20px !important; font-weight: 700 !important; font-size: 0.85rem !important; display: inline-block !important; margin: 5px 0 !important; } """ ) as demo: # ============ COMPLEX HEADER ============ gr.Markdown(f"""
Ā© 2024 Agentic Reliability Framework. Demo v3.8.0 Enterprise Edition.
This is a demonstration of capabilities. Actual results may vary based on implementation.