import os import streamlit as st from datetime import datetime from agent_manager import AgentManager from shopify_client import create_shopify_product from dashboard.logs import show_logs from stripe_checkout import create_stripe_session import requests # if you’re also firing webhooks/Zapier # ──────────────────────────────────────────────────────────────────────────────── # 1. GLOBAL PAGE CONFIG # ──────────────────────────────────────────────────────────────────────────────── st.set_page_config( page_title="AutoExec AI", page_icon="🚀", layout="wide", initial_sidebar_state="expanded", ) # ──────────────────────────────────────────────────────────────────────────────── # 2. NAVIGATION # ──────────────────────────────────────────────────────────────────────────────── PAGES = { "Home": "🏠 Home", "Launch": "🚀 Launch", "Logs": "📊 Logs", "Settings": "⚙️ Settings" } if "page" not in st.session_state: st.session_state.page = "Home" st.sidebar.title("AutoExec AI") selection = st.sidebar.radio( "Navigate:", list(PAGES.values()), index=list(PAGES.values()).index(PAGES[st.session_state.page]), key="nav_radio" ) # map back to key st.session_state.page = next(k for k, v in PAGES.items() if v == selection) # ──────────────────────────────────────────────────────────────────────────────── # 3. PAGE DISPATCHER # ──────────────────────────────────────────────────────────────────────────────── def main(): page = st.session_state.page if page == "Home": render_home() elif page == "Launch": render_launch() elif page == "Logs": render_logs() elif page == "Settings": render_settings() else: st.error("Page not found") # ──────────────────────────────────────────────────────────────────────────────── # 4. PAGE RENDERERS # ──────────────────────────────────────────────────────────────────────────────── def render_home(): st.markdown( """

🚀 AutoExec AI

Your Autonomous AI Business Builder
Generate, deploy, and optimize startups in one click.

""", unsafe_allow_html=True ) cols = st.columns(3) features = [ ("🤖 LLM-Powered", "Gemini Pro + GPT‑4 fallback"), ("🔄 LoopAgent", "Daily autonomous optimizations"), ("📊 Dashboard", "Real-time logs & analytics") ] for col, (title, desc) in zip(cols, features): col.subheader(title) col.write(desc) st.markdown("---") if st.button("👉 Try the Demo"): st.session_state.page = "Launch" st.experimental_rerun() def render_launch(): st.markdown("## 🚀 Launch a New AI Business") with st.form("launch_form"): niche = st.text_input("🎯 Niche", placeholder="e.g., fitness wear") business_type = st.selectbox( "📦 Business Type", ["Dropshipping", "Print‑on‑Demand", "Newsletter", "Course"] ) submit = st.form_submit_button("Generate & Deploy") if submit: if not niche.strip(): st.warning("Please enter a niche to continue.") return # Run agents with st.spinner("🤖 Running AI agents…"): manager = AgentManager(niche.strip(), business_type) results = manager.run_all() st.success("✅ Business Launched Successfully!") st.json(results) # Publish product to Shopify try: title = f"{business_type} in {niche}" description = results["copy"] price = "49.00" image_url = None # or provide a default URL storefront_url = create_shopify_product( title=title, description=description, price=price, image_url=image_url ) st.markdown(f"**🛍️ Product live on Shopify:** [View Product]({storefront_url})") except Exception as e: st.error(f"❌ Shopify publish failed: {e}") def render_logs(): st.markdown("## 📊 Agent Memory Log Dashboard") show_logs() def render_settings(): st.markdown("## ⚙️ Settings & Billing") st.markdown( """ **Configure these secrets in Settings → Secrets** • `API_KEY` • `OPENAI_API_KEY` • `GEMINI_API_KEY` • `STRIPE_API_KEY` """ ) if st.button("💳 Subscribe via Stripe"): checkout_url = create_stripe_session() st.markdown(f"[Proceed to Payment →]({checkout_url})", unsafe_allow_html=True) # ──────────────────────────────────────────────────────────────────────────────── # 5. FOOTER # ──────────────────────────────────────────────────────────────────────────────── def render_footer(): st.markdown("---") st.markdown( "
" "Powered by Streamlit • FastAPI • Celery • Redis • Hugging Face Spaces" "
", unsafe_allow_html=True, ) # ──────────────────────────────────────────────────────────────────────────────── # 6. ENTRY POINT # ──────────────────────────────────────────────────────────────────────────────── if __name__ == "__main__": main() render_footer()