feat: Agent Health page with progressive filtering and GroupCard component

Add URL-driven Agent Health page (/agents, /agents/:appId,
/agents/:appId/:instanceId) that progressively narrows from all
applications to a single instance with trend charts. Create
generic GroupCard composite for grouping instances by application.
Expand mock data to 8 instances across 4 apps with varied states.
Split sidebar Agents header into navigable link + collapse chevron.
Update agent tree paths to /agents/:appId/:instanceId. Add EventFeed
with lifecycle events. Change SidebarAgent.tps from string to number.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
This commit is contained in:
hsiegeln
2026-03-18 18:22:14 +01:00
parent e69e5ab5fe
commit 8f93ea41ed
18 changed files with 990 additions and 380 deletions

View File

@@ -35,8 +35,8 @@ const SAMPLE_APPS: SidebarApp[] = [
{ id: 'r2', name: 'payment-validate', exchangeCount: 3102 },
],
agents: [
{ id: 'ag1', name: 'agent-prod-1', status: 'live' as const, tps: '42 tps' },
{ id: 'ag2', name: 'agent-prod-2', status: 'live' as const, tps: '38 tps' },
{ id: 'ag1', name: 'agent-prod-1', status: 'live' as const, tps: 42 },
{ id: 'ag2', name: 'agent-prod-2', status: 'live' as const, tps: 38 },
],
},
{
@@ -48,7 +48,7 @@ const SAMPLE_APPS: SidebarApp[] = [
{ id: 'r3', name: 'notify-customer', exchangeCount: 2201 },
],
agents: [
{ id: 'ag3', name: 'agent-staging-1', status: 'stale' as const, tps: '5 tps' },
{ id: 'ag3', name: 'agent-staging-1', status: 'stale' as const, tps: 5 },
],
},
{