/**
* 统计与进度可视化:StatCard / ProgressBar / AgentWeightsBar。
* 原位于 admin/components.tsx。
*/
export function StatCard({
label,
value,
hint,
}: {
label: string
value: string | number
hint?: string
}) {
return (
{label}
{value}
{hint &&
{hint}
}
)
}
/** 进度条:同前台置信度细线 */
export function ProgressBar({ value, className = '' }: { value: number; className?: string }) {
const clamped = Math.max(0, Math.min(100, value))
return (
)
}
/** Agent 权重条形图 */
export function AgentWeightsBar({ weights, okCount }: { weights: Record; okCount: number }) {
const entries = Object.entries(weights).filter(([, w]) => w > 0)
if (entries.length === 0) return null
const total = entries.reduce((s, [, w]) => s + w, 0) || 1
const colors = ['bg-ink-900', 'bg-ink-700', 'bg-ink-500', 'bg-press', 'bg-ink-300']
return (
终裁专家权重
{entries.map(([k, w], i) => (
{Math.round((w / total) * 100)}%
{k}
))}
有效专家:{okCount}/{entries.length}
)
}