/** * VectorCortexLedgerCard.tsx — VC1B occurrence ledger card. * * Extracted from VectorCortexTab.tsx to keep the parent tab under the 400-line * extension soft limit (delegate-shell + impl-card pattern). */ import type { VectorCortexLedgerView } from "../api/vector-cortex"; import { Card, CardContent, CardHeader, CardTitle } from "../components/ui/card"; import { Metric } from "./VectorCortexMetric"; import { VcStatusBadge } from "./VcStatusBadge"; export function VectorCortexLedgerCard({ ledger, }: { ledger: VectorCortexLedgerView | null; }): React.ReactElement { return (
Occurrence Ledger (VC1B)
{!ledger?.enabled ? (
Ledger disabled (VC1B off).
) : ( <>
{ledger.occurrences.length === 0 ? (
No occurrences recorded.
) : (
{ledger.occurrences.map((o) => ( ))}
seq eventId kind toolCall digest
{o.seq} {o.eventId} {o.kind} {o.toolCallId ?? "—"} {o.digest}
)} {ledger?.status === "awaiting_data" && (
Awaiting first event. Data will appear after the next pipeline run.
)} {ledger?.status === "deferred" && ledger?.deferredReason && (
Deferred: {ledger.deferredReason.replace(/_/g, " ")}
)} )}
); }