peer

package
v0.2.0 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Mar 12, 2026 License: MIT Imports: 6 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

This section is empty.

Types

type Manager

type Manager struct {
	// contains filtered or unexported fields
}

Manager manages connections to multiple peers and selects the best transport.

func NewManager

func NewManager(logger *slog.Logger) *Manager

NewManager creates a new peer manager.

func (*Manager) AddPeer

func (m *Manager) AddPeer(p *Peer)

AddPeer registers a peer with its transport.

func (*Manager) Close

func (m *Manager) Close() error

Close disconnects all peers.

func (*Manager) GetPeer

func (m *Manager) GetPeer(agentID string) (*Peer, bool)

GetPeer returns the peer for a given agent ID.

func (*Manager) ListPeers

func (m *Manager) ListPeers() []string

ListPeers returns the IDs of all connected peers.

func (*Manager) OnPeerAdded

func (m *Manager) OnPeerAdded(cb PeerCallback)

OnPeerAdded registers a callback invoked when a new peer is added.

func (*Manager) RemovePeer

func (m *Manager) RemovePeer(agentID string) error

RemovePeer disconnects and removes a peer.

func (*Manager) Send

func (m *Manager) Send(ctx context.Context, agentID string, env *envelope.Envelope) error

Send sends an envelope to a specific peer.

type Peer

type Peer struct {
	ID          string
	PublicKey   string
	Transport   transport.Transport
	InboxRelays []string // Nostr relay URLs for offline mailbox delivery
	NostrPubKey string   // Nostr secp256k1 public key (hex)
}

Peer represents a connected remote agent.

type PeerCallback

type PeerCallback func(p *Peer)

PeerCallback is called when a peer event occurs.

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL