Refresh Profile
diff --git a/components/pandora/AskPandoraHero.tsx b/components/pandora/AskPandoraHero.tsx
index 0f43a97..a10f8cb 100644
--- a/components/pandora/AskPandoraHero.tsx
+++ b/components/pandora/AskPandoraHero.tsx
@@ -1,18 +1,17 @@
-import { profileSnapshot } from "./mock-data";
-
-export function AskPandoraHero() {
+export function AskPandoraHero({ hero, evidence, warnings }: { hero: { title: string; description: string; primaryAction: string; secondaryAction: string }; evidence: string; warnings: string[] }) {
return (
Ask Pandora
-
Pandora dashboard is an authenticated mock shell.
-
This route is for layout review only. It does not present live memory health, retrieval scores, profile state, or queue activity until those claims are backed by implemented routes, database policy, and tests.
+
{hero.title}
+
{hero.description}
- Context pack backend pending
- Retrieval eval backend pending
+ {hero.primaryAction}
+ {hero.secondaryAction}
- {profileSnapshot.evidence}
+ {evidence}
+ {warnings.length ? Loader warnings {warnings.join(" ")}
: null}
);
}
diff --git a/components/pandora/DiagnosticsCard.tsx b/components/pandora/DiagnosticsCard.tsx
index de4d0cd..c6e2533 100644
--- a/components/pandora/DiagnosticsCard.tsx
+++ b/components/pandora/DiagnosticsCard.tsx
@@ -1,8 +1,7 @@
-import { coreSystems, gatedSystems } from "./mock-data";
-import type { SystemRow } from "./types";
+import type { PandoraDashboardData, SystemRow } from "./types";
function SystemStatusRow({ row }: { row: SystemRow }) { return
{row.label} {row.value}
; }
-export function DiagnosticsCard({ loading }: { loading: boolean }) {
- return
Diagnostics
Authenticated mock shell only. {loading ?
: <>{coreSystems.map((row) => )}
{gatedSystems.map((row) => )}
Action Envelope Pending backend proof. Do not treat this UI as live engine evidence.
Run Smoke Test >};
+export function DiagnosticsCard({ diagnostics, loading = false }: { diagnostics: PandoraDashboardData["diagnostics"]; loading?: boolean }) {
+ return
{loading ?
: <>{diagnostics.coreSystems.map((row) => )}
{diagnostics.gatedSystems.map((row) => )}
{diagnostics.envelope.title} {diagnostics.envelope.description}
Run Smoke Test >} ;
}
diff --git a/components/pandora/MemorySpacesCard.tsx b/components/pandora/MemorySpacesCard.tsx
index cafc478..13368bc 100644
--- a/components/pandora/MemorySpacesCard.tsx
+++ b/components/pandora/MemorySpacesCard.tsx
@@ -1,7 +1,7 @@
import { LockKeyhole } from "lucide-react";
-import { memorySpaces } from "./mock-data";
+import type { MemorySpace } from "./types";
import { COLORS, cn } from "./theme";
-export function MemorySpacesCard() {
- return
Memory Spaces
Namespace separation enforced {memorySpaces.map((space) => { const color = COLORS[space.color]; return
{space.status}
{space.label} {space.type} {space.description}
{space.memories.toLocaleString()}memories {space.people}people {space.projects}projects
; })}
;
+export function MemorySpacesCard({ spaces }: { spaces: MemorySpace[] }) {
+ return
Memory Spaces
Namespace separation enforced {spaces.map((space) => { const color = COLORS[space.color]; return
{space.status}
{space.label} {space.type} {space.description}
{space.memories.toLocaleString()}memories {space.people}people {space.projects}projects
; })}
;
}
diff --git a/components/pandora/PandoraDashboard.tsx b/components/pandora/PandoraDashboard.tsx
index 05b6fd2..0b7b8b6 100644
--- a/components/pandora/PandoraDashboard.tsx
+++ b/components/pandora/PandoraDashboard.tsx
@@ -1,16 +1,24 @@
"use client";
-import { Package } from "lucide-react";
+import { Archive, ClipboardList, GitBranch, History, Package, ShieldCheck } from "lucide-react";
+import { AdaptiveProfileCard } from "./AdaptiveProfileCard";
+import { AskPandoraHero } from "./AskPandoraHero";
+import { DiagnosticsCard } from "./DiagnosticsCard";
+import { MemorySpacesCard } from "./MemorySpacesCard";
import { MobileBottomNav } from "./MobileBottomNav";
+import { RecentEventsTimeline } from "./RecentEventsTimeline";
import { Sidebar } from "./Sidebar";
import { StatCard } from "./StatCard";
import { TopBar } from "./TopBar";
+import { WorkQueueCard } from "./WorkQueueCard";
import type { PandoraDashboardData, StatItem } from "./types";
import { useState } from "react";
+const statIcons = [History, Package, ShieldCheck, GitBranch, Archive, ClipboardList];
+
export function PandoraDashboard({ dashboardData }: { dashboardData: PandoraDashboardData }) {
const [activeNav, setActiveNav] = useState("Dashboard");
- const stats: StatItem[] = dashboardData.stats.map((stat) => ({ ...stat, icon: Package }));
+ const stats: StatItem[] = dashboardData.stats.map((stat, index) => ({ ...stat, icon: statIcons[index] ?? Package }));
return (
@@ -29,26 +37,24 @@ export function PandoraDashboard({ dashboardData }: { dashboardData: PandoraDash
Semantic Gated
-