Files
stack/apps/web/src/app/(authenticated)/page.tsx
Jason Woltje 4500f80e4c feat(web): Phase 3 — Dashboard page with reference design layout (MS15-DASH-001 through DASH-005)
- DashboardMetrics: 6-cell MetricsStrip (agents, tasks, response time, tokens, errors, projects)
- OrchestratorSessions: Orch cards with agent nodes, status dots, badges
- QuickActions: 2x2 grid (New Project, Spawn Agent, View Telemetry, Review Tasks)
- ActivityFeed: 7-item feed with icons, timestamps, warn/error badges
- TokenBudget: 4-model progress bars (claude-3-5-sonnet, haiku, gpt-4o, llama-3.3)
- Dashboard page: full-width metrics strip + 2-column grid (main + 320px sidebar)

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-22 15:17:32 -06:00

33 lines
1.0 KiB
TypeScript

"use client";
import type { ReactElement } from "react";
import { DashboardMetrics } from "@/components/dashboard/DashboardMetrics";
import { OrchestratorSessions } from "@/components/dashboard/OrchestratorSessions";
import { QuickActions } from "@/components/dashboard/QuickActions";
import { ActivityFeed } from "@/components/dashboard/ActivityFeed";
import { TokenBudget } from "@/components/dashboard/TokenBudget";
export default function DashboardPage(): ReactElement {
return (
<div style={{ display: "flex", flexDirection: "column", gap: 16 }}>
<DashboardMetrics />
<div
style={{
display: "grid",
gridTemplateColumns: "1fr 320px",
gap: 16,
}}
>
<div style={{ display: "flex", flexDirection: "column", gap: 16, minWidth: 0 }}>
<OrchestratorSessions />
<QuickActions />
</div>
<div style={{ display: "flex", flexDirection: "column", gap: 16 }}>
<ActivityFeed />
<TokenBudget />
</div>
</div>
</div>
);
}