The in-flight start() promise, set by the Reticulum constructor when
discovery is auto-started. Await this to ensure the listener is attached.
Deletes a record via the storage adapter.
Hydrates the in-memory store from the storage adapter (if any).
Returns the adapter only if it implements the KV interface (#16).
Handles a transport "announce" event: aspect-filters, parses, persists,
and dispatches "discovered". Processing is serialized through
InterfaceDiscovery#_chain so concurrent announces for the same
interface can't lose heard_count increments (Python's discovery_lock).
Persists a record via the storage adapter.
The actual (async) announce processing, run one at a time per instance.
Upserts a discovery into the store (and storage adapter), bumping
heard_count on repeats and refreshing last_heard. Mirrors Python's
interface_discovered persistence flow.
The addEventListener() method of the EventTarget interface sets up a function that will be called whenever the specified event is delivered to the target.
Optionaloptions: boolean | AddEventListenerOptionsThe dispatchEvent() method of the EventTarget sends an Event to the object, (synchronously) invoking the affected event listeners in the appropriate order. The normal event processing rules (including the capturing and optional bubbling phase) also apply to events dispatched manually with dispatchEvent().
Returns the persisted discovered-interface list, mirroring Python's
list_discovered_interfaces.
Records past THRESHOLD_REMOVE, or whose type/reachable_on is no
longer valid, are pruned (from memory and the storage adapter). Remaining
records get a computed status/status_code and are sorted by freshness,
stamp value, then last-heard.
Optionalfilter: { onlyAvailable?: boolean; onlyTransport?: boolean } = {}
OptionalonlyAvailable?: booleanOnly available records.
OptionalonlyTransport?: booleanOnly records where transport is true.
The removeEventListener() method of the EventTarget interface removes an event listener previously registered with EventTarget.addEventListener() from the target. The event listener to be removed is identified using a combination of the event type, the event listener function itself, and various optional options that may affect the matching process; see Matching event listeners for removal.
Optionaloptions: boolean | EventListenerOptionsPrecomputes the aspect name-hash, hydrates the store from the storage
adapter, and attaches the transport "announce" listener. Idempotent.
Detaches the announce listener (no-op if not started). Persisted records already written through are retained.
Consumer-side orchestrator for on-network interface discovery (Python
InterfaceDiscovery). Subscribes to the transport"announce"event, aspect-filters to ASPECT, stamp-validates each candidate, and dispatches a"discovered"event for every fresh/repeated discovery.Persists discoveries across restarts when a storage adapter with the KV interface (#16) is supplied; otherwise keeps them in memory. v1 is surface-only — it does not auto-connect discovered interfaces.