'use client';
import { useState } from 'react';
import Link from 'next/link';
import { usePathname } from 'next/navigation';
import {
Brain,
Activity,
ListTodo,
GitBranch,
Database,
Settings,
ChevronLeft,
ChevronRight,
Rocket,
Github,
X,
Menu,
} from 'lucide-react';
const NAV_ITEMS = [
{ href: '/', icon: Brain, label: 'Agent', desc: 'Run AI tasks' },
{ href: '/health', icon: Activity, label: 'Health', desc: 'System status' },
{ href: '/queue', icon: ListTodo, label: 'Queue', desc: 'Job queue' },
{ href: '/memory', icon: Database, label: 'Memory', desc: 'Episodic memory' },
{ href: '/workspace', icon: GitBranch, label: 'Workspace', desc: 'Projects' },
];
interface AppShellProps {
children: React.ReactNode;
}
export default function AppShell({ children }: AppShellProps) {
const pathname = usePathname();
const [collapsed, setCollapsed] = useState(false);
const [mobileOpen, setMobileOpen] = useState(false);
return (
{/* ── Mobile overlay ── */}
{mobileOpen && (
setMobileOpen(false)}
/>
)}
{/* ── Left Sidebar ── */}
{/* ── Main content area ── */}
{/* Mobile top bar */}
OpenHands
Phase 4
{/* Page content */}
{children}
);
}