/** * Swarm connection snapshot and disk-level peer introspection. * Pair with {@link BareOsSwarmPeerPolicyEngine} / {@link BareOsSwarmConnectionManager} for scoring. */ import { BareOsSwarmPeerPolicyEngine } from './bare-os-swarm-peer-policy.js' /** * @param {{ peers?: Set | Map }} disk * @param {BareOsSwarmPeerPolicyEngine | null} [policyEngine] * @returns {{ * schema: number, * peerCount: number, * policySnapshot: ReturnType | null, * note: string * }} */ export function bareOsSwarmConnectionSnapshot(disk, policyEngine = null) { const peers = disk?.peers const n = peers instanceof Map ? peers.size : peers instanceof Set ? peers.size : 0 const policySnapshot = policyEngine instanceof BareOsSwarmPeerPolicyEngine ? policyEngine.snapshot() : null return { schema: 2, peerCount: n, policySnapshot, note: 'Live Hyperswarm peer count with optional BareOsSwarmPeerPolicyEngine snapshot (EWMA latency, ban windows, reconnect budgets).' } }