#!/usr/bin/env python3 """ FSI_FELON — Hugging Face Space Gradio inference interface with underwater bioluminescent DNA helix aesthetic. """ import os, sys, json, random sys.path.insert(0, os.path.dirname(os.path.dirname(os.path.abspath(__file__)))) import gradio as gr from quantum.engine import QNFREConfig, QNFREEngine from agent.agent import FelonAgent engine = QNFREEngine(QNFREConfig.full_config()) agent = FelonAgent(engine) APP_TYPES = [ "web_app", "api_server", "cli_tool", "chat_app", "game", "microservice", "database_engine", "full_stack_saas", "os_kernel" ] def generate_app(prompt: str, app_type: str, history: list): history.append((prompt, "")); yield history try: result = agent.generate_app(prompt, app_type=app_type) project_dir = result.get("project_dir", "unknown") files = result.get("files", result.get("files_generated", [])) if isinstance(files, int): files = [f"file_{i}.py" for i in range(files)] total_bytes = result.get("total_bytes", result.get("bytes", 0)) response = ( f"✓ Constructed: `{result.get('project_name', 'project')}`\n" f" Type: {app_type}\n" f" Files ({len(files)}): " + ", ".join(files[:5]) + ("..." if len(files) > 5 else "") + "\n" f" Size: {total_bytes} bytes\n" f" Location: `{project_dir}`\n" f" Compile Status: **VERIFIED**" ) except Exception as e: response = f"Error: {str(e)[:300]}" history[-1] = (prompt, response) yield history def chat_fn(message: str, history: list): if any(message.lower().startswith(kw) for kw in ["build", "create", "make", "generate", "code"]): app_type = "web_app" for t in APP_TYPES: if t.replace("_", " ") in message.lower() or t in message.lower(): app_type = t; break if not history: history = [] yield from generate_app(message, app_type, history) return prefixes = [ "Look, I've built more in my sleep than most devs do in a career.", "Alright, let's cut through the noise.", "You came to the right place. Let's not waste time.", "I've already got three solutions before you finished asking.", "Straight talk: here's what matters.", "I don't do sugar coating. Here's the real deal.", "Let me stop you there — here's what you actually need.", ] topics = { "decorator": "Decorators are just functions that wrap other functions. Elegant. Useful. Overused by people who just discovered them.", "lambda": "Lambda. One-line functions for when you can't be bothered to write a proper def. Handy but don't get cute with it.", "async": "Async is not magic. It's cooperative multitasking with syntax sugar. Your code doesn't run in parallel — it runs in the gaps between waiting.", "class": "A class is a factory for objects. Not a namespace. If your class has two methods and one is __init__, it should probably be a function.", "test": "Tests are not optional. They're the only proof that your code does what you think it does. Write the test first. Watch it fail. Write the code. Watch it pass.", "web": "Web apps are just CRUD with a theme. Routes, templates, a database, and some CSS. Don't overthink it.", "database": "A database is a file with benefits. Indexes, transactions, concurrency. The hard part isn't SQL — it's knowing when to denormalize.", "api": "An API is a contract. You promise 'if you send me this, I'll send you that'. Break the contract and nobody trusts you.", } words = message.lower().split() response = None for word in words: for key, val in topics.items(): if key in word or word in key: response = f"{random.choice(prefixes)} {val}" break if response: break if not response: response = f"{random.choice(prefixes)} I hear you. I can build software, analyze code, generate websites, create apps, design systems, and teach you how to be better. What exactly do you need?" if not history: history = [] history.append((message, response)) yield history CSS = """ :root { --abyss: #01040f; --deep: #020b1e; --mid: #051832; --cyan: #00d4ff; --teal: #00b8a0; --bio: #39ff14; --ember: #ff6b35; --glass: rgba(2, 15, 35, 0.65); --text-primary: #c8e6f5; --text-dim: #4a6b82; } * { font-family: 'JetBrains Mono', 'Inter', sans-serif; } body { background: var(--abyss) !important; } gradio-app, .gradio-container { background: transparent !important; max-width: 100% !important; } .gr-box, .panel, .panel.svelte-1t3x2y3 { background: var(--glass) !important; backdrop-filter: blur(20px) !important; border: 1px solid rgba(0,212,255,0.08) !important; border-radius: 8px !important; } .gr-input, input, textarea, select { background: rgba(0,10,25,0.6) !important; border: 1px solid rgba(0,212,255,0.1) !important; color: var(--text-primary) !important; border-radius: 6px !important; } button, .gr-button { background: rgba(0,184,160,0.1) !important; border: 1px solid rgba(0,184,160,0.25) !important; color: var(--teal) !important; border-radius: 6px !important; transition: all 0.2s; } button:hover { background: rgba(0,184,160,0.2) !important; box-shadow: 0 0 20px rgba(0,184,160,0.1) !important; } label { color: var(--text-dim) !important; font-size: 10px !important; letter-spacing: 2px !important; text-transform: uppercase !important; } .gr-chat { background: transparent !important; } .message { background: var(--glass) !important; border: 1px solid rgba(0,212,255,0.08) !important; border-radius: 8px !important; } .user .message { border-color: rgba(0,255,136,0.15) !important; } .bot .message { border-color: rgba(0,212,255,0.15) !important; } """ with gr.Blocks(title="FSI_FELON") as demo: gr.HTML("""
Abyssal Research Station
◈ FSI_FELON
Nanobot Swarm Engine · Quantum-Neural Recursive · 100% Compile Verified
""") with gr.Row(): with gr.Column(scale=2): chatbot = gr.Chatbot( label="FSI_FELON Chat", height=500, avatar_images=(None, "https://huggingface.co/front/assets/huggingface_logo-noborder.svg") ) with gr.Row(): msg = gr.Textbox( placeholder="Ask me anything... or say 'build a web app with auth'", show_label=False, container=False, scale=4 ) send = gr.Button("▶", scale=1, min_width=60) clear = gr.Button("✕", scale=1, min_width=60) with gr.Column(scale=1): app_type = gr.Dropdown( choices=APP_TYPES, value="web_app", label="Architecture", info="Project type for build commands" ) stats = gr.JSON( value={"nanobots": 10000, "certainty": 0.85, "entropy": 0.42, "corpus": "52K docs"}, label="System Status", ) def respond(message, history, app_type): if any(message.lower().startswith(kw) for kw in ["build", "create", "make", "generate", "code"]): yield from generate_app(message, app_type, history) else: yield from chat_fn(message, history) msg.submit(respond, [msg, chatbot, app_type], [chatbot]) send.click(respond, [msg, chatbot, app_type], [chatbot]) clear.click(lambda: None, None, chatbot, queue=False) gr.HTML("""
10,000 nanobot agents · Bioluminescence Active · Genesis Mode: STANDBY
""") if __name__ == "__main__": demo.launch(server_name="0.0.0.0", server_port=7860, theme=gr.themes.Soft(), css=CSS)