feat: surface L2 agent pool and escalations on supervisor screen

- routing-service: GET /escalations (list recent escalation attempts)
- supervisor UI: new panel showing the real agent pool (status, level,
  tenant, skills, calls handled) fed by GET /agents, with a form to add
  operators to the pool
- supervisor UI: new live escalation feed (AI->L2 handoffs, status,
  assigned operator), auto-refreshed every 5s alongside live calls
This commit is contained in:
Hermes Agent
2026-08-29 13:28:14 +05:00
parent 2243f305b8
commit 1ad4e1ec6e
4 changed files with 332 additions and 2 deletions
+63
View File
@@ -5987,3 +5987,66 @@ body.analytics-drilldown-open {
padding: 10px 16px 0;
}
}
.agent-pool-item,
.escalation-item {
display: flex;
flex-wrap: wrap;
align-items: center;
gap: 6px 10px;
padding: 12px 14px;
border: 1px solid var(--line);
border-radius: 12px;
margin-bottom: 8px;
background: #fff;
}
.agent-pool-item strong,
.escalation-item strong {
flex-basis: 100%;
}
.status-badge {
display: inline-flex;
align-items: center;
gap: 6px;
padding: 2px 10px;
border-radius: 999px;
font-size: 12px;
font-weight: 700;
white-space: nowrap;
}
.status-badge::before {
content: "";
width: 6px;
height: 6px;
border-radius: 50%;
background: currentColor;
}
.status-badge.is-success {
background: var(--success-soft);
color: var(--success);
}
.status-badge.is-warning {
background: var(--warning-soft);
color: var(--warning);
}
.status-badge.is-danger {
background: var(--danger-soft);
color: var(--danger);
}
.status-badge.is-muted {
background: #eef1f6;
color: #6b7280;
}
.agent-pool-meta,
.escalation-meta {
font-size: 12px;
color: #6b7280;
}