Skip to main content

voro-dash

The Mission Control dashboard. A Next.js application for agent fleet monitoring, event telemetry visualization, cost tracking, knowledge ops management, and operator workflows.

Purpose

voro-dash is the UI layer for Mission Control. It reads from the shared SQLite database (contract with voro-core), provides real-time event streaming via SSE, and exposes operator workflows for fleet management. It is strictly a presentation layer — the operational backbone lives in voro-core.

Architecture

Tech Stack

  • Next.js 15 App Router, React 19, TypeScript 5
  • SQLite via better-sqlite3 (WAL mode)
  • Zod v4 runtime validation
  • vitest for testing
  • Port 3900

UI Design

Dark-mode-first interface inspired by Vercel, Linear, and Palantir Gotham:

  • Deep space backgrounds (slate-950), subtle glassmorphism (backdrop-blur-md)
  • Neon telemetry accents (cyan/emerald/rose) for status indicators
  • Clean typography (Inter for UI, JetBrains Mono for data)
  • Grid-based layout with KPI cards, telemetry feed, and fleet status panels

Dashboard Zones

ZoneComponentsPurpose
KPI RowGlassCard componentsActive agents, 24h cost, open remediations, system health
Telemetry FeedTerminal-style event streamReal-time SSE events with severity badges and JSON detail
Fleet StatusAgent cards, cohort lifecycleIndividual agent status and active cohort management
Ops StatusHealth indicators, alertsRegistry/wiring health, refresh status, alert list

Shipped Frameworks (F1-F12)

FrameworkCapability
F1Schema governance + migration runner
F2Source governance UX (lifecycle controls, telemetry, add/edit sources)
F3SSE workspace isolation (client/session isolation)
F4DB workspace isolation (workspace_id on events + agent_status)
F5OpenClaw skill bridge (deny-list, concurrency cap, trigger parity)
F6Framework GO gate evaluation
F7-F12Additional ops automation and operator workflow frameworks

Operator Workflows (Phase 12)

Full CRUD operator actions for fleet management:

RoutePurpose
GET /api/operator/cohortsCohort lifecycle snapshot
POST /api/operator/cohorts/:id/pausePause cohort (approval required)
POST /api/operator/cohorts/:id/resumeResume cohort (approval required)
GET /api/operator/recommendationsRecommendation timeline
GET /api/operator/remediationsRemediation queue
POST /api/operator/remediations/:id/resolveResolve remediation (approval required)
POST /api/operator/gates/runTrigger gate check
GET /api/operator/auditAudit timeline

All mutation endpoints require approval metadata (changed_by, reason, approval_ticket).

Knowledge Ops Tooling (Phase 2)

Source governance tools for managing knowledge collections:

ToolPurpose
validate_source_registry.pyRegistry schema validation
route_youtube_video.pyDeterministic YouTube routing
run_refresh.pyRegistry-driven refresh with JSONL telemetry
schedule_refresh.pyCadence-based refresh scheduling (daily/weekly/monthly)
verify_workspace_wiring.pyDual-layer wiring health check
source_lifecycle.pySource state machine (pending → active → paused → archived)
ops_health.pyAggregated health check
refresh_alerts.pyPer-source alert rules

Ops Status Panel

Wave 1 capabilities (C-01 through C-06):

CapabilityPanel
C-01Runtime profile presets
C-02Spawn depth configuration
C-03Cascade-stop state machine
C-04Weekly ops checklist (stub)
C-05Per-source refresh timeline
C-06Weekly ops summary (4-signal aggregate)

Key Capabilities

  • Real-time telemetry: SSE event stream with workspace isolation
  • Fleet monitoring: Agent status, cost tracking, event queries
  • Operator workflows: Cohort management, remediation queue, gate checks — all with approval requirements
  • Source governance: Full lifecycle management for knowledge collections
  • Health monitoring: Aggregated ops health with alert rules and refresh tracking
  • Workspace isolation: Both client-side (SSE) and server-side (DB queries) workspace filtering

Database Contract

Source of truth: voro-core/docs/mission-control-contract-v2-schema.sql

Tables: events, cost_rollups, agent_status, ingest_errors, workspaces, pilot_cohorts, recommendation_ledger, pilot_phases, pilot_audit_log

The contract is frozen — no schema changes without updating voro-core first. SQLite is the shared boundary between voro-core (Python writer) and voro-dash (TypeScript reader).

Build & Run

npm install
npm test -- --run # 1,045 vitest tests
PYTHONPATH=. python3 -m pytest tools/ -q # 243 pytest tests
npm run build # Next.js production build
npm run dev # Dev server at port 3900

Current State

  • Tests: 1,288 total (1,045 vitest + 243 pytest)
  • Frameworks: F1-F12 all COMPLETE (48/48 gate checks passed)
  • Shipped: C-01 through C-19, C-31 through C-36
  • Status: Stable. Phase 3 data gates not yet met (requires 50 scored predictions + Brier score + profitable paper-trade days).