Skip to main content
The Web Dashboard is a React-based operator interface that provides a high-level control plane for the Palyra daemon. It is designed to be the primary surface for human operators to manage agent sessions, configure system-wide settings, audit security events, and monitor infrastructure health. The dashboard is structured as a single-page application (SPA) using react-router-dom for navigation apps/web/src/App.tsx#2-49. It transitions between a Boot Screen (initialization), an Auth Screen (identity verification), and the Console Routed Shell (the main operator interface) apps/web/src/App.tsx#11-33.

System Architecture Overview

The following diagram illustrates the relationship between the React frontend, the API client, and the backend daemon. Console UI Architecture Sources: apps/web/src/App.tsx#11-33, apps/web/src/console/useConsoleAppState.tsx#170-215, apps/web/src/consoleApi.ts#1-30.

Core State and API Client

The dashboard’s logic is centered around two primary entities:
  1. ConsoleApiClient: A specialized fetch wrapper that handles CSRF token management, session persistence, and NDJSON streaming for chat responses apps/web/src/consoleApi.ts#1-23. It enforces “fail-closed” security by requiring a CSRF token for all mutating requests apps/web/src/consoleApi.test.ts#92-106.
  2. useConsoleAppState: The root state hook that manages the application lifecycle, including the bootstrap sequence, desktop handoff (automatic login when launched from the Palyra Desktop app), and a TTL-based auto-refresh strategy for different dashboard sections apps/web/src/console/useConsoleAppState.tsx#43-168.
For details, see ConsoleApiClient and Application State.

Chat and Session Management

The Chat Interface is the primary interaction point for agent orchestration. It supports multi-session management, session branching (lineage tracking), and real-time streaming of agent runs. The UI provides deep visibility into the agent’s “thought process” through the transcript, including tool calls, memory recalls, and A2UI (Agent-to-UI) protocol updates. For details, see Chat Interface and Session Management.

Console Sections and Navigation

The dashboard is divided into specialized sections, each catering to a specific operational domain:
SectionPurposeKey Code Entities
OverviewHigh-level system health and active sessions.useOverviewDomain
UsageToken volume, latency, and cost tracking.UsageSection, useUsageDomain
AccessDevice pairing, mTLS trust, and inventory.AccessSection, useInventoryDomain
MemoryRAG management, workspace notes, and learning.MemorySection
OperationsDiagnostics, audit logs, and self-healing status.OperationsSection
BrowserBrowser automation debug and profile management.BrowserSection, useBrowserDomain
For details, see Console Sections and Navigation.

A2UI: Agent-to-UI Protocol

A2UI is a specialized protocol that allows agents to update the dashboard UI dynamically during a run. Instead of just sending text, agents can send PatchDocument payloads to render rich components, charts, or interactive forms apps/web/src/consoleApi.ts#1-30. The web dashboard includes a dedicated renderer that applies these JSON patches securely to the local state. For details, see A2UI: Agent-to-UI Protocol.

Code Mapping: Logic to Entity

The following diagram maps high-level dashboard features to their corresponding implementation files and hooks. Dashboard Code Entity Map Sources: apps/web/src/App.tsx#4-9, apps/web/src/console/useConsoleAppState.tsx#1-16, apps/web/src/console/sections/UsageSection.tsx#27-33, apps/web/src/console/sections/OperationsSection.tsx#28-47.

Child Pages