import { useEffect, useMemo, useState } from 'react'; import type { Session, AuthChangeEvent } from '@supabase/supabase-js'; import { supabase } from './supabaseClient'; import { AuthPage } from './components/AuthPage'; import { Dashboard } from './pages/Dashboard'; import { DesignStudio } from './pages/DesignStudio'; import { HumanInLoopBuild } from './pages/HumanInLoopBuild'; import { Benchmarking } from './pages/Benchmarking'; import { Fabrication } from './pages/Fabrication'; import { Documentation } from './pages/Documentation'; import { api } from './api'; import './index.css'; const AUTH_ENABLED = Boolean(import.meta.env.VITE_SUPABASE_URL); const App = () => { const [session, setSession] = useState(null); const [authLoading, setAuthLoading] = useState(true); const [selectedPage, setSelectedPage] = useState('Design Studio'); const [designs, setDesigns] = useState<{ name: string, has_gds: boolean }[]>([]); const [selectedDesign, setSelectedDesign] = useState(''); const [theme, setTheme] = useState<'light' | 'dark'>(() => { const saved = localStorage.getItem('agentic-theme'); return saved === 'dark' ? 'dark' : 'light'; }); // ── Auth state (skip when Supabase not configured) ── useEffect(() => { if (!AUTH_ENABLED) { setAuthLoading(false); return; } supabase.auth.getSession().then(({ data: { session: s } }: { data: { session: Session | null } }) => { setSession(s); setAuthLoading(false); }).catch(() => setAuthLoading(false)); const { data: { subscription } } = supabase.auth.onAuthStateChange((_event: AuthChangeEvent, s: Session | null) => { setSession(s); }); return () => subscription.unsubscribe(); }, []); useEffect(() => { document.documentElement.setAttribute('data-theme', theme); localStorage.setItem('agentic-theme', theme); }, [theme]); // Fetch designs when authenticated (or always in local dev without auth) useEffect(() => { if (AUTH_ENABLED && !session) return; api.get('/designs') .then(res => { const data = res.data?.designs || []; setDesigns(data); if (data.length > 0) { const withGds = data.find((d: any) => d.has_gds); setSelectedDesign(withGds ? withGds.name : data[0].name); } }) .catch(err => console.error("Failed to fetch designs", err)); }, [session]); const handleLogout = async () => { await supabase.auth.signOut(); setSession(null); setSelectedPage('Design Studio'); }; const navItems = useMemo( () => [ { name: 'Home', icon: '🏠' }, { name: 'Design Studio', icon: '⚑' }, { name: 'HITL Build', icon: 'πŸ§‘β€πŸ’»' }, { name: 'Dashboard', icon: 'πŸ“Š' }, { name: 'Documentation', icon: 'πŸ“š' }, { name: 'Benchmarking', icon: 'πŸ“ˆ' }, { name: 'Fabrication', icon: 'πŸ—οΈ' }, ], [] ); // ── Auth loading spinner ── if (authLoading) { return (
Loading AgentIC…
); } if (AUTH_ENABLED && !session) { return supabase.auth.getSession().then(({ data: { session: s } }: { data: { session: Session | null } }) => setSession(s))} />; } return (

{selectedPage}

Multi-Agent Autonomous Silicon
{selectedPage === 'Home' && (
Text β†’ Silicon

Autonomous Chip Design Studio

From natural language to fabrication-ready GDSII β€” powered by multi-agent collaboration, intelligent specification analysis, self-healing loops, and a fully autonomous pipeline.

{designs.length}Designs
14Pipeline Stages
5Core Modules
AIAgents

Multi-Agent Architecture

πŸ—οΈ
Architect
Specification analysis and structured design decomposition
πŸ’»
RTL Designer + Reviewer
Multi-agent collaborative generation
πŸ§ͺ
TB Designer
Automated testbench generation and validation
πŸ”
Error Analyst
Intelligent failure classification
πŸ”„
Self-Healing Engine
Convergence-aware optimization and recovery
🧠
Deep Debugger
Causal failure analysis

Pipeline Flow

{[ { icon: 'πŸ“', label: 'SPEC', sub: 'Specification' }, { icon: 'πŸ”', label: 'VALIDATE', sub: 'Spec Validation' }, { icon: '🌲', label: 'EXPAND', sub: 'Hierarchy' }, { icon: 'βš–οΈ', label: 'FEASIBLE', sub: 'Feasibility' }, { icon: 'πŸ”€', label: 'CDC', sub: 'Clock Domains' }, { icon: 'πŸ“‹', label: 'V-PLAN', sub: 'Verify Plan' }, { icon: 'πŸ’»', label: 'RTL', sub: 'Generation' }, { icon: 'πŸ”¨', label: 'FIX', sub: 'Code Quality' }, { icon: 'πŸ§ͺ', label: 'VERIFY', sub: 'Simulation' }, { icon: 'πŸ“Š', label: 'FORMAL', sub: 'Formal' }, { icon: 'πŸ“ˆ', label: 'COV', sub: 'Coverage' }, { icon: 'πŸ—ΊοΈ', label: 'FLOOR', sub: 'Floorplan' }, { icon: 'πŸ—οΈ', label: 'HARDEN', sub: 'Place+Route' }, { icon: 'βœ…', label: 'SIGNOFF', sub: 'Tape-out' }, ].map((s, i) => (
{s.icon}
{s.label}
{s.sub}
{i < 13 &&
β†’
}
))}

Quick Start

1
Go to Design Studio and describe any chip
2
Watch AI agents autonomously build and verify your chip
3
Check Dashboard for silicon metrics and signoff
)} {selectedPage === 'Dashboard' && } {selectedPage === 'Design Studio' && } {selectedPage === 'HITL Build' && } {selectedPage === 'Documentation' && } {selectedPage === 'Benchmarking' && } {selectedPage === 'Fabrication' && ( d.name === selectedDesign)?.has_gds} /> )}
); }; export default App;