Versions in this module Expand all Collapse all v1 v1.8.0 May 23, 2026 Changes in this version + const AgentStateDeferred + const AgentStateIdle + const AgentStatePaused + const AgentStateRunning + const DefaultHeartbeatTTL + const ToolSourceBuiltin + const ToolSourceMCP + const ToolSourceOther + const ToolSourceSkill + var ErrAmbiguousSession = errors.New(...) + var ErrPeerEndpointRequired = errors.New("attach: peer Endpoint is required") + var ErrPeerNameRequired = errors.New("attach: peer Name is required") + var ErrPeerNotFound = errors.New("attach: peer registration not found") + var ErrSessionExists = errors.New("attach: session already registered") + var ErrSessionNotFound = errors.New("attach: session not found") + type AgentInfo struct + ID string + LastReport string + Name string + ParentSessionID string + StartedAt time.Time + Status string + type AgentRegistrarAdapter struct + func NewAgentRegistrarAdapter(reg *SessionRegistry) *AgentRegistrarAdapter + func (a *AgentRegistrarAdapter) Register(ag any) (any, error) + func (a *AgentRegistrarAdapter) Unregister(appName, userID, sessionID string) + type AgentsProvider interface + AttachAgents func() []AgentInfo + type AuthConfig struct + BearerToken string + ClientCAFile string + ReadOnly bool + TLSCertFile string + TLSKeyFile string + func (a AuthConfig) LoadTLSConfig() (*tls.Config, error) + func (a AuthConfig) Middleware(next http.Handler) http.Handler + type Broadcaster struct + func NewBroadcaster(entry *Entry) (*Broadcaster, error) + func (b *Broadcaster) Close() + func (b *Broadcaster) Subscribe(ctx context.Context, since int64) <-chan Frame + type BroadcasterPool struct + func NewBroadcasterPool() *BroadcasterPool + func (p *BroadcasterPool) Close() + func (p *BroadcasterPool) For(entry *Entry) (*Broadcaster, error) + type Entry struct + Agent Registrant + AppName string + SessionID string + UserID string + type ErrNotRegistrant struct + Got any + func (e *ErrNotRegistrant) Error() string + type Frame struct + Event *session.Event + Seq int64 + type Options struct + Addr string + Auth AuthConfig + PeerRegistry *PeerRegistry + Registry *SessionRegistry + ShutdownTimeout time.Duration + UnixSocket string + type Peer struct + Endpoint string + Labels map[string]string + LastHeartbeat time.Time + LeaseExpiresAt time.Time + Name string + RegisteredAt time.Time + RegistrationID string + type PeerClient struct + func NewPeerClient(hubURL string, opts ...PeerClientOption) *PeerClient + func (c *PeerClient) Deregister(ctx context.Context, registrationID string) error + func (c *PeerClient) Heartbeat(ctx context.Context, registrationID string) (*Peer, error) + func (c *PeerClient) Register(ctx context.Context, req RegisterRequest) (*Peer, error) + func (c *PeerClient) RegisterAndHeartbeat(ctx context.Context, req RegisterRequest) (cancel func(), err error) + type PeerClientOption func(*PeerClient) + func WithPeerBearerToken(token string) PeerClientOption + func WithPeerHTTPClient(client *http.Client) PeerClientOption + type PeerRegistry struct + func NewPeerRegistry(opts ...PeerRegistryOption) *PeerRegistry + func (r *PeerRegistry) Close() error + func (r *PeerRegistry) Deregister(id string) + func (r *PeerRegistry) Heartbeat(id string) (*Peer, error) + func (r *PeerRegistry) Len() int + func (r *PeerRegistry) List(labelMatch map[string]string) []*Peer + func (r *PeerRegistry) Prune() int + func (r *PeerRegistry) Register(req RegisterRequest) (*Peer, error) + type PeerRegistryOption func(*PeerRegistry) + func WithMaxTTL(d time.Duration) PeerRegistryOption + type RegisterRequest struct + Endpoint string + HeartbeatTTLSec int + Labels map[string]string + Name string + type Registrant interface + AppName func() string + EventLog func() *eventlog.Handle + Inject func(message string) error + RequestWake func() + SessionID func() string + UserID func() string + type Server struct + func NewServer(opts Options) (*Server, error) + func (s *Server) Addr() string + func (s *Server) Close() error + func (s *Server) ListenAndServe() error + func (s *Server) TLSEnabled() bool + type SessionRegistry struct + func NewSessionRegistry() *SessionRegistry + func (r *SessionRegistry) Len() int + func (r *SessionRegistry) List() []*Entry + func (r *SessionRegistry) Lookup(appName, sessionID string) (*Entry, error) + func (r *SessionRegistry) LookupSingle(sessionID string) (*Entry, error) + func (r *SessionRegistry) Register(ag Registrant) (*Entry, error) + func (r *SessionRegistry) Unregister(appName, userID, sessionID string) + type StatusInfo struct + CurrentTool string + ModelName string + NextWakeAt time.Time + State string + type StatusProvider interface + AttachStatus func() StatusInfo + type ToolInfo struct + Description string + GateState string + Name string + Server string + Source string + type ToolsProvider interface + AttachTools func() []ToolInfo