/*
* DESIGN: "Sovereign Terminal" — Left sidebar with stacked status panels
* Each panel has a 2px Bitcoin orange top border and monospace headers
*/
import { Activity, Bell, Zap, Users, ChevronRight } from "lucide-react";
import { Badge } from "@/components/ui/badge";
import {
AGENT_CATALOG, MOCK_HEALTH, MOCK_NOTIFICATIONS,
} from "@/lib/data";
interface StatusSidebarProps {
onSelectAgent: (id: string) => void;
selectedAgent: string | null;
}
export default function StatusSidebar({ onSelectAgent, selectedAgent }: StatusSidebarProps) {
return (
{/* System Health Panel */}
| Ollama |
{MOCK_HEALTH.ollama.toUpperCase()}
|
| Model |
{MOCK_HEALTH.model} |
| Swarm |
{MOCK_HEALTH.swarmRegistry.toUpperCase()}
|
| Uptime |
{MOCK_HEALTH.uptime} |
| Tasks |
{MOCK_HEALTH.completedTasks}
/
{MOCK_HEALTH.totalTasks}
|
{/* Agents Panel */}
// AGENTS
{AGENT_CATALOG.map((agent) => (
))}
{/* L402 Balance Panel */}
// L402 TREASURY
₿ {MOCK_HEALTH.l402Balance.toLocaleString()}
satoshis available
| Protocol |
L402 / Lightning |
| Macaroon |
Valid
|
| Network |
Testnet |
{/* Notifications Panel */}
// NOTIFICATIONS
{MOCK_NOTIFICATIONS.filter(n => !n.read).length} new
{MOCK_NOTIFICATIONS.slice(0, 4).map((notif) => (
{!notif.read && }
{notif.title}
{getCategoryIcon(notif.category)}
{notif.message}
))}
);
}
function getCategoryIcon(category: string): string {
switch (category) {
case "swarm": return "⚡";
case "task": return "📋";
case "agent": return "🤖";
case "system": return "⚙️";
case "payment": return "₿";
default: return "•";
}
}