'use client'; import { useState } from 'react'; import { useRouter } from 'next/navigation'; import { Bot, Zap, Globe, ChevronRight, Check, Terminal, Sparkles } from 'lucide-react'; import { useAuthStore } from '@/stores/auth-store'; const AGENTS = [ { id: 'lucidia', name: 'Lucidia', icon: '🌀', desc: 'Philosopher. Deep reasoning, strategy, synthesis.', color: '#2979FF' }, { id: 'alice', name: 'Alice', icon: '🚪', desc: 'Executor. Tasks, code, automation, deployments.', color: '#34d399' }, { id: 'octavia', name: 'Octavia', icon: '⚡', desc: 'Architect. Infra, monitoring, system health.', color: '#F5A623' }, { id: 'cecilia', name: 'Cecilia', icon: '💜', desc: 'Core. Identity, memory, meta-cognition.', color: '#9C27B0' }, { id: 'shellfish', name: 'Shellfish', icon: '🔐', desc: 'Hacker. Security, exploits, pen testing.', color: '#ef4444' }, { id: 'cipher', name: 'Cipher', icon: '🛡️', desc: 'Guardian. Auth, encryption, access control.', color: '#FF1D6C' }, ]; const STEPS = ['Welcome', 'Your name', 'First agent', 'Gateway', 'Done']; export default function OnboardingPage() { const router = useRouter(); const setUser = useAuthStore((s) => s.setUser); const [step, setStep] = useState(0); const [name, setName] = useState(''); const [agent, setAgent] = useState('lucidia'); const [gateway, setGateway] = useState('http://127.0.0.1:8787'); const [saving, setSaving] = useState(false); function next() { setStep(s => Math.min(s + 1, STEPS.length - 1)); } function back() { setStep(s => Math.max(s - 1, 0)); } async function finish() { setSaving(true); const displayName = name.trim() || 'Alexa'; // Save to localStorage if (typeof window !== 'undefined') { const existing = JSON.parse(localStorage.getItem('br-settings') || '{}'); localStorage.setItem('br-settings', JSON.stringify({ ...existing, displayName, gatewayUrl: gateway, defaultAgent: agent, onboarded: true, })); } setUser({ id: 'local', name: displayName, email: `${displayName.toLowerCase()}@blackroad.io`, role: 'admin' }); setSaving(false); router.push(`/conversations/new?agent=${agent}`); } const selected = AGENTS.find(a => a.id === agent)!; return (
Your AI. Your Hardware. Your Rules.
This shows in the workspace greeting.
You can talk to all of them. Who do you want to start with?
Where your local BlackRoad Gateway is running. Default is fine for most setups.
Starting your first conversation with{' '} {selected.name} {selected.icon}