func (lh *linkHandler) Request(l *charm.Link) bool {
	lh.request <- linkRequest{l.RequestPubKey, l.RequestAddr}
	return <-lh.response
}
Request handles link approvals. The remote machine sends an approval request,
which we send to the Tea UI as a message. The Tea application then sends a
response to the link handler's response channel with a command.
package linkgen
import (
	"errors"
	"github.com/charmbracelet/charm"
)
type linkRequest struct {
	pubKey      string
	requestAddr string
}
type linkHandler struct {
	err      chan error
	token    chan string
	request  chan linkRequest
	response chan bool
	success  chan bool
	timeout  chan struct{}
}
func (lh *linkHandler) TokenCreated(l *charm.Link) {
	lh.token <- l.Token
}
func (lh *linkHandler) TokenSent(l *charm.Link) {}
func (lh *linkHandler) ValidToken(l *charm.Link) {}
func (lh *linkHandler) InvalidToken(l *charm.Link) {}