/** The actor queue: address clusters joined to the peer identities the * evidence links them to (fusion/actors.py). An actor's name is a handle for * that group; it never implies a person or an organisation. */ import { Link } from "react-router-dom"; import type { Actor } from "../api/types"; import { formatId } from "../lib/format"; import { Chip, RiskChip } from "./ui"; export const ACTOR_STATEMENT = "An actor is a group of addresses and network identities linked by evidence; it does not name or imply a person or an organisation."; export function ActorQueue({ actors }: { actors: Actor[] }) { return (
{actors.map((a) => ( ))}
Actor Risk Membership confidence Member clusters Linked peers Origin tiers
{a.name} {a.risk_score.toFixed(3)} {a.membership_confidence.toFixed(2)} {a.members.slice(0, 3).map((m) => ( {formatId(m)}{" "} ))} {a.members.length > 3 && +{a.members.length - 3}} {a.links.slice(0, 3).map((l) => ( {l.peer} · {l.basis} ·{" "} {l.confidence.toFixed(2)} {l.joins ? "" : " · attached, not joining"} ))} {a.links.length === 0 && none} {a.links.length > 3 && +{a.links.length - 3}} {a.origin_tiers.length ? a.origin_tiers.join(", ") : —}
); }