agent-relay-server 0.4.28 → 0.4.30
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/package.json +1 -1
- package/public/dashboard.js +6 -0
- package/public/index.html +51 -60
package/package.json
CHANGED
package/public/dashboard.js
CHANGED
|
@@ -1217,6 +1217,7 @@
|
|
|
1217
1217
|
agentStatusClass,
|
|
1218
1218
|
severityClass,
|
|
1219
1219
|
agentStatusTitle,
|
|
1220
|
+
agentChannels,
|
|
1220
1221
|
channelPresence,
|
|
1221
1222
|
integrationPresence,
|
|
1222
1223
|
timeAgo,
|
|
@@ -1440,6 +1441,11 @@
|
|
|
1440
1441
|
return { label: "configured", tone: "primary", icon: "ti-plug-connected" };
|
|
1441
1442
|
}
|
|
1442
1443
|
|
|
1444
|
+
function agentChannels(agent) {
|
|
1445
|
+
if (!agent) return [];
|
|
1446
|
+
return (this.channels || []).filter((ch) => ch.agentId === agent.id);
|
|
1447
|
+
}
|
|
1448
|
+
|
|
1443
1449
|
function channelPresence(channel) {
|
|
1444
1450
|
if (!channel) return { label: "unknown", tone: "secondary", icon: "ti-plug-off" };
|
|
1445
1451
|
if (channel.status === "offline") return { label: "offline", tone: "secondary", icon: "ti-plug-off" };
|
package/public/index.html
CHANGED
|
@@ -447,23 +447,20 @@
|
|
|
447
447
|
<span x-text="a.name || a.id.slice(-12)"></span>
|
|
448
448
|
</template>
|
|
449
449
|
</div>
|
|
450
|
-
<div class="
|
|
451
|
-
|
|
452
|
-
|
|
453
|
-
<span class="badge" :class="badge.className" x-text="badge.label"></span>
|
|
454
|
-
</template>
|
|
455
|
-
</div>
|
|
456
|
-
<template x-if="agentPair(a)">
|
|
457
|
-
<span class="badge pair-badge mt-1" :class="pairBadgeClass(agentPair(a))" :title="pairTitle(agentPair(a), a.id)">
|
|
458
|
-
<i class="ti ti-link me-1"></i><span x-text="pairBadgeLabel(agentPair(a), a.id)"></span>
|
|
450
|
+
<div class="d-flex gap-1 mt-1 flex-wrap align-items-center">
|
|
451
|
+
<span class="badge" :class="'bg-' + agentPresence(a).tone + '-lt'" style="font-size: 0.7rem">
|
|
452
|
+
<i class="ti me-1" :class="agentPresence(a).icon"></i><span x-text="agentPresence(a).label"></span>
|
|
459
453
|
</span>
|
|
460
|
-
|
|
461
|
-
|
|
462
|
-
|
|
463
|
-
|
|
464
|
-
|
|
465
|
-
<
|
|
466
|
-
|
|
454
|
+
<template x-if="agentAttention(a).total > 0">
|
|
455
|
+
<span class="badge bg-warning text-white" style="font-size: 0.7rem" :title="agentAttentionTitle(a)">
|
|
456
|
+
<i class="ti ti-bell me-1"></i><span x-text="agentAttention(a).total"></span>
|
|
457
|
+
</span>
|
|
458
|
+
</template>
|
|
459
|
+
<template x-if="agentPair(a)">
|
|
460
|
+
<span class="badge pair-badge" :class="pairBadgeClass(agentPair(a))" style="font-size: 0.7rem" :title="pairTitle(agentPair(a), a.id)">
|
|
461
|
+
<i class="ti ti-link me-1"></i><span x-text="pairBadgeLabel(agentPair(a), a.id)"></span>
|
|
462
|
+
</span>
|
|
463
|
+
</template>
|
|
467
464
|
</div>
|
|
468
465
|
</div>
|
|
469
466
|
<span class="text-secondary small" x-text="timeAgo(a.lastSeen)"></span>
|
|
@@ -585,16 +582,10 @@
|
|
|
585
582
|
</template>
|
|
586
583
|
<span class="text-truncate" :class="a.label ? 'text-secondary small' : 'fw-bold'" x-text="a.name || a.id.slice(-12)"></span>
|
|
587
584
|
</div>
|
|
588
|
-
<div class="
|
|
589
|
-
<div class="presence-badges d-flex gap-1 mt-1 flex-wrap">
|
|
585
|
+
<div class="d-flex gap-1 mt-1 flex-wrap align-items-center">
|
|
590
586
|
<span class="badge" :class="'bg-' + agentPresence(a).tone + '-lt'">
|
|
591
587
|
<i class="ti me-1" :class="agentPresence(a).icon"></i><span x-text="agentPresence(a).label"></span>
|
|
592
588
|
</span>
|
|
593
|
-
<template x-for="badge in agentPresenceBadges(a)" :key="badge.label">
|
|
594
|
-
<span class="badge" :class="badge.className" x-text="badge.label"></span>
|
|
595
|
-
</template>
|
|
596
|
-
</div>
|
|
597
|
-
<div class="d-flex gap-1 mt-1 flex-wrap">
|
|
598
589
|
<template x-if="agentAttention(a).total > 0">
|
|
599
590
|
<span class="badge bg-warning text-white" :title="agentAttentionTitle(a)">
|
|
600
591
|
<i class="ti ti-bell me-1"></i><span x-text="agentAttention(a).total"></span>
|
|
@@ -605,31 +596,8 @@
|
|
|
605
596
|
<i class="ti ti-link me-1"></i><span x-text="pairBadgeLabel(agentPair(a), a.id)"></span>
|
|
606
597
|
</span>
|
|
607
598
|
</template>
|
|
608
|
-
<span class="badge bg-danger-lt" x-show="agentAttention(a).unread" x-text="agentAttention(a).unread + ' unread'"></span>
|
|
609
|
-
<span class="badge bg-warning-lt" x-show="agentAttention(a).needsHumanResponse">needs response</span>
|
|
610
|
-
<span class="badge bg-info-lt" x-show="agentAttention(a).agentQuestion">question</span>
|
|
611
|
-
<span class="badge bg-orange-lt" x-show="agentAttention(a).claimableTasks" x-text="agentAttention(a).claimableTasks + ' claimable'"></span>
|
|
612
|
-
<template x-if="a.machine">
|
|
613
|
-
<span class="badge bg-secondary-lt" x-text="a.machine"></span>
|
|
614
|
-
</template>
|
|
615
|
-
<template x-if="a.rig">
|
|
616
|
-
<span class="badge bg-primary-lt" x-text="a.rig"></span>
|
|
617
|
-
</template>
|
|
618
|
-
<template x-for="tag in (a.tags || [])" :key="tag">
|
|
619
|
-
<span class="badge bg-cyan-lt" x-text="tag"></span>
|
|
620
|
-
</template>
|
|
621
|
-
</div>
|
|
622
|
-
<template x-if="a.capabilities && a.capabilities.length">
|
|
623
|
-
<div class="d-flex gap-1 mt-1 flex-wrap">
|
|
624
|
-
<template x-for="cap in a.capabilities" :key="cap">
|
|
625
|
-
<span class="badge bg-purple-lt" x-text="'⚡' + cap"></span>
|
|
626
|
-
</template>
|
|
627
|
-
</div>
|
|
628
|
-
</template>
|
|
629
|
-
<div class="text-secondary small mt-2">
|
|
630
|
-
<span x-text="'Last seen: ' + timeAgo(a.lastSeen)"></span>
|
|
631
|
-
<span class="ms-2" x-text="'Created: ' + fmtTime(a.createdAt)"></span>
|
|
632
599
|
</div>
|
|
600
|
+
<div class="text-secondary small mt-1" x-text="'Last seen: ' + timeAgo(a.lastSeen)"></div>
|
|
633
601
|
</div>
|
|
634
602
|
<div class="agent-actions d-flex gap-1">
|
|
635
603
|
<button class="btn btn-sm btn-ghost-secondary p-1" title="Send message" @click.stop="openComposeToAgent(a)">
|
|
@@ -1604,7 +1572,6 @@
|
|
|
1604
1572
|
</template>
|
|
1605
1573
|
<span class="fw-bold text-truncate" x-text="selectedAgentDetail.name || selectedAgentDetail.id.slice(-12)"></span>
|
|
1606
1574
|
</div>
|
|
1607
|
-
<div class="text-secondary small text-truncate" x-text="selectedAgentDetail.id"></div>
|
|
1608
1575
|
</div>
|
|
1609
1576
|
<button class="btn btn-sm btn-ghost-secondary p-1" @click="closeAgentDetail()" title="Close">
|
|
1610
1577
|
<i class="ti ti-x"></i>
|
|
@@ -1718,20 +1685,44 @@
|
|
|
1718
1685
|
</template>
|
|
1719
1686
|
|
|
1720
1687
|
<div class="p-3 border-bottom">
|
|
1721
|
-
<
|
|
1722
|
-
|
|
1723
|
-
<
|
|
1724
|
-
<span class="badge bg-cyan-lt" x-text="tag"></span>
|
|
1725
|
-
</template>
|
|
1726
|
-
<template x-if="!(selectedAgentDetail.tags || []).length">
|
|
1727
|
-
<span class="text-secondary small">No tags</span>
|
|
1728
|
-
</template>
|
|
1688
|
+
<div class="detail-row mb-2">
|
|
1689
|
+
<div class="text-secondary small">ID</div>
|
|
1690
|
+
<div class="small text-break user-select-all" style="font-family: var(--tblr-font-monospace); font-size: 0.75rem; opacity: 0.7" x-text="selectedAgentDetail.id"></div>
|
|
1729
1691
|
</div>
|
|
1730
|
-
<
|
|
1731
|
-
<div class="
|
|
1732
|
-
|
|
1733
|
-
|
|
1692
|
+
<div class="detail-row mb-2">
|
|
1693
|
+
<div class="text-secondary small">Tags</div>
|
|
1694
|
+
<div class="d-flex gap-1 flex-wrap">
|
|
1695
|
+
<template x-for="tag in (selectedAgentDetail.tags || [])" :key="tag">
|
|
1696
|
+
<span class="badge bg-cyan-lt" x-text="tag"></span>
|
|
1734
1697
|
</template>
|
|
1698
|
+
<template x-if="!(selectedAgentDetail.tags || []).length">
|
|
1699
|
+
<span class="text-secondary small">—</span>
|
|
1700
|
+
</template>
|
|
1701
|
+
</div>
|
|
1702
|
+
</div>
|
|
1703
|
+
<div class="detail-row mb-2">
|
|
1704
|
+
<div class="text-secondary small">Capabilities</div>
|
|
1705
|
+
<div class="d-flex gap-1 flex-wrap">
|
|
1706
|
+
<template x-if="selectedAgentDetail.capabilities && selectedAgentDetail.capabilities.length">
|
|
1707
|
+
<template x-for="cap in selectedAgentDetail.capabilities" :key="cap">
|
|
1708
|
+
<span class="badge bg-purple-lt" x-text="cap"></span>
|
|
1709
|
+
</template>
|
|
1710
|
+
</template>
|
|
1711
|
+
<template x-if="!(selectedAgentDetail.capabilities || []).length">
|
|
1712
|
+
<span class="text-secondary small">—</span>
|
|
1713
|
+
</template>
|
|
1714
|
+
</div>
|
|
1715
|
+
</div>
|
|
1716
|
+
<template x-if="agentChannels(selectedAgentDetail).length">
|
|
1717
|
+
<div class="detail-row mb-2">
|
|
1718
|
+
<div class="text-secondary small">Channels</div>
|
|
1719
|
+
<div class="d-flex gap-1 flex-wrap">
|
|
1720
|
+
<template x-for="ch in agentChannels(selectedAgentDetail)" :key="ch.id">
|
|
1721
|
+
<span class="badge" :class="'bg-' + channelPresence(ch).tone + '-lt'" :title="ch.type + ' · ' + ch.direction">
|
|
1722
|
+
<i class="ti me-1" :class="channelPresence(ch).icon"></i><span x-text="ch.name"></span>
|
|
1723
|
+
</span>
|
|
1724
|
+
</template>
|
|
1725
|
+
</div>
|
|
1735
1726
|
</div>
|
|
1736
1727
|
</template>
|
|
1737
1728
|
</div>
|