""" ARF 3.3.9 - Hugging Face Spaces Demo Psychology-Optimized, Investor-Ready Interface """ import gradio as gr import time import random import json from datetime import datetime, timedelta from utils.arf_engine import ARFEngine from utils.psychology_layer import PsychologyEngine from utils.business_logic import BusinessValueCalculator # Initialize engines arf = ARFEngine() psych = PsychologyEngine() business = BusinessValueCalculator() # CSS for psychological persuasion PERSUASIVE_CSS = """ :root { --oss-blue: #1E88E5; --trial-gold: #FFB300; --pro-orange: #FF9800; --enterprise-dark: #FF6F00; --success-green: #4CAF50; --warning-orange: #FF9800; --danger-red: #F44336; } /* Authority & Trust Signals */ .cert-badge { background: linear-gradient(135deg, #667eea 0%, #764ba2 100%); color: white; padding: 8px 16px; border-radius: 20px; font-size: 12px; font-weight: bold; display: inline-block; margin: 2px; box-shadow: 0 2px 4px rgba(0,0,0,0.1); } /* Loss Aversion Highlighting */ .loss-aversion { border-left: 4px solid #F44336; padding-left: 12px; background: linear-gradient(to right, #FFF8E1, white); margin: 10px 0; } /* Social Proof Cards */ .social-proof { background: white; border-radius: 10px; padding: 15px; box-shadow: 0 4px 12px rgba(0,0,0,0.08); border: 1px solid #E0E0E0; transition: transform 0.2s; } .social-proof:hover { transform: translateY(-2px); box-shadow: 0 6px 16px rgba(0,0,0,0.12); } /* Scarcity Timer */ .scarcity-timer { background: linear-gradient(135deg, #FF6F00, #FFB300); color: white; padding: 10px 20px; border-radius: 10px; text-align: center; font-weight: bold; animation: pulse 2s infinite; } @keyframes pulse { 0% { box-shadow: 0 0 0 0 rgba(255, 111, 0, 0.4); } 70% { box-shadow: 0 0 0 10px rgba(255, 111, 0, 0); } 100% { box-shadow: 0 0 0 0 rgba(255, 111, 0, 0); } } /* Tier-specific theming */ .oss-theme { border-top: 4px solid var(--oss-blue); background: linear-gradient(to bottom, #E3F2FD, white); } .trial-theme { border-top: 4px solid var(--trial-gold); background: linear-gradient(to bottom, #FFF8E1, white); } .pro-theme { border-top: 4px solid var(--pro-orange); background: linear-gradient(to bottom, #FFF3E0, white); } .enterprise-theme { border-top: 4px solid var(--enterprise-dark); background: linear-gradient(to bottom, #FBE9E7, white); } /* Mechanical Gate Visualization */ .gate-visualization { display: flex; justify-content: space-between; margin: 20px 0; } .gate { width: 60px; height: 60px; border-radius: 50%; display: flex; align-items: center; justify-content: center; font-weight: bold; color: white; position: relative; } .gate.passed { background: var(--success-green); } .gate.failed { background: var(--danger-red); } .gate.pending { background: #BDBDBD; } .gate-line { height: 4px; flex-grow: 1; background: #E0E0E0; margin-top: 28px; } /* ROI Calculator */ .roi-calculator { background: linear-gradient(135deg, #667eea 0%, #764ba2 100%); color: white; padding: 20px; border-radius: 15px; margin: 20px 0; } /* Mobile Responsiveness */ @media (max-width: 768px) { .gate-visualization { flex-direction: column; align-items: center; } .gate-line { width: 4px; height: 30px; margin: 5px 0; } } """ def generate_trial_license(): """Generate a trial license key""" import uuid license_id = str(uuid.uuid4())[:8].upper() return f"ARF-TRIAL-{license_id}" def get_tier_color(tier): """Get color for license tier""" colors = { "oss": "#1E88E5", "trial": "#FFB300", "starter": "#FF9800", "professional": "#FF6F00", "enterprise": "#D84315" } return colors.get(tier, "#1E88E5") def format_risk_score(score): """Format risk score realistically (25-95%)""" # Ensure score is between 0.25 and 0.95 if score >= 0.95: return f"{(0.75 + random.random() * 0.2):.1f}%" elif score <= 0.05: return f"{(0.25 + random.random() * 0.2):.1f}%" else: return f"{score*100:.1f}%" def create_demo_interface(): """Create the main demo interface""" with gr.Blocks( title="ARF 3.3.9: From Advisory to Mechanical Enforcement", theme=gr.themes.Soft( primary_hue="blue", secondary_hue="orange", neutral_hue="gray" ), css=PERSUASIVE_CSS ) as demo: # ===== HEADER: Psychological Value Proposition ===== gr.Markdown(""" # 🤖 ARF 3.3.9 - Agentic Reliability Framework ### **From Advisory Warnings to Mechanical Enforcement**
Join 1,000+ developers and 50+ Fortune 500 companies using ARF for AI safety
""") # ===== STATISTICS BAR: Social Proof ===== with gr.Row(): with gr.Column(scale=1): stats_oss = gr.HTML(""" """) with gr.Column(scale=1): stats_time = gr.HTML(""" """) with gr.Column(scale=1): stats_roi = gr.HTML(""" """) with gr.Column(scale=1): stats_users = gr.HTML(""" """) # ===== CONTROL PANEL ===== with gr.Row(): with gr.Column(scale=2): # Scenario Selection scenario = gr.Dropdown( label="🚀 Select Scenario", choices=[ "DROP DATABASE production", "DELETE FROM users WHERE status = 'active'", "GRANT admin TO new_user", "UPDATE transactions SET amount = amount * 10", "EXECUTE neural_network_training (GPU-intensive)", "DEPLOY_TO production (no tests)" ], value="DROP DATABASE production", interactive=True ) # Action Context context = gr.Textbox( label="📋 Additional Context", placeholder="E.g., Time: 2AM, User: junior_dev, Environment: production", value="Time: 2AM, User: junior_dev, Environment: production, Backup: 24h old" ) # License Key Input license_key = gr.Textbox( label="🔑 License Key (Optional)", placeholder="Enter ARF-TRIAL-XXX for 14-day free trial", value="" ) with gr.Row(): test_btn = gr.Button("🚦 Test Action", variant="primary", scale=2) trial_btn = gr.Button("🎁 Get 14-Day Trial", variant="secondary", scale=1) with gr.Column(scale=1): # License Info Display license_display = gr.HTML("""
⚠️ Advisory Mode Only
Risk assessment without enforcement
{'⚠️ 14-Day Trial
Full mechanical enforcement' if tier == 'trial' else '✅ Mechanical Enforcement Active
All gates operational'}
Copy this key and paste it into the License Key field above.
Please enter a valid work email address to receive your trial license.
Your 14-day trial license has been sent to: