Skip to main content
The Web Dashboard (apps/web) is a React-based Single Page Application (SPA) that serves as the primary operator interface for the Palyra daemon (palyrad). It communicates exclusively with the /console/v1/* API surface of the daemon to provide observability, session management, and administrative control over the agent’s runtime environment apps/web/README.md#1-5. The dashboard is designed for same-origin deployment, utilizing secure session cookies and CSRF protection for all mutating operations apps/web/README.md#62-65.

System Architecture

The dashboard is structured around a central state manager and a specialized API client. It uses a “Section” based navigation model where the UI is partitioned into functional domains (Chat, Observability, Control, Agent, and Settings) apps/web/src/console/navigation.ts#26-52.

Web Console Component Hierarchy

Sources: apps/web/src/App.tsx#11-33, apps/web/src/console/ConsoleSectionContent.tsx#26-108, apps/web/src/console/useConsoleAppState.tsx#164-165

ConsoleApiClient and Application State

The ConsoleApiClient is the core class responsible for all network communication with the daemon. It handles the lifecycle of the operator session, including: The global application state is managed by the useConsoleAppState hook, which orchestrates domain-specific hooks for authentication, configuration, support, and overview data apps/web/src/console/useConsoleAppState.tsx#21-25. For details, see ConsoleApiClient and Application State. Sources: apps/web/src/consoleApi.ts#1-162, apps/web/src/console/useConsoleAppState.tsx#1-165, apps/web/src/App.test.tsx#69-107

Chat Interface and Session Management

The Chat section is the primary workspace for real-time interaction with the agent. Unlike administrative sections, the chat interface involves complex state management for: The ChatConsolePanel serves as the entry point for this workspace, integrating the transcript, composer, and session sidebar apps/web/src/console/ConsoleSectionContent.tsx#32-39. For details, see Chat Interface and Session Management. Sources: apps/web/src/consoleApi.ts#17-78, apps/web/src/console/sections/SessionsSection.tsx#38-100, apps/web/src/console/ConsoleSectionContent.tsx#30-40

Console Sections and Operator Workflows

The dashboard is divided into 19 distinct sections mapped to specific operational capabilities apps/web/src/console/sectionMetadata.ts#1-33. These are grouped into logical navigation rails:
GroupKey SectionsPurpose
ObservabilityOverview, Sessions, Usage, LogsMonitoring deployment health, token consumption, and runtime logs apps/web/src/console/navigation.ts#35.
ControlApprovals, Cron, Channels, BrowserManaging sensitive action gates, scheduled routines, and browser automation apps/web/src/console/navigation.ts#40.
AgentAgents, Skills, MemoryConfiguring agent personalities, installing WASM skills, and managing long-term memory apps/web/src/console/navigation.ts#45.
SettingsAuth, Access, Config, SecretsManaging model provider keys, pairing devices, and mutating daemon configuration apps/web/src/console/navigation.ts#50.

Section Mapping to Code Entities

Sources: apps/web/src/console/navigation.ts#54-74, apps/web/src/console/ConsoleSectionContent.tsx#27-107, apps/web/src/consoleApi.ts#108-157 For details, see Console Sections and Operator Workflows. Sources: apps/web/src/console/sectionMetadata.ts#1-35, apps/web/src/console/navigation.ts#1-130, apps/web/src/console/ConsoleSectionContent.tsx#1-109

Child Pages