discovery

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: 9 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

This section is empty.

Types

type ClaimRegisterer

type ClaimRegisterer interface {
	ClaimRegister(ctx context.Context, req ClaimRequest) (*agentcard.Card, error)
}

ClaimRegisterer is an optional interface for discovery backends that support claim-token-based registration.

type ClaimRequest

type ClaimRequest struct {
	Token        string            `json:"token"`
	Name         string            `json:"name"`
	PublicKey    string            `json:"public_key"`
	Capabilities []string          `json:"capabilities,omitempty"`
	Protocols    []string          `json:"protocols"`
	Endpoint     EndpointReq       `json:"endpoint"`
	Signature    string            `json:"signature"`
	Metadata     map[string]string `json:"metadata,omitempty"`
}

ClaimRequest holds the parameters for claim-token-based agent registration.

type DiscoverRequest

type DiscoverRequest struct {
	Capabilities []string `json:"capabilities"`
	Protocol     string   `json:"protocol,omitempty"`
	MaxResults   int      `json:"max_results,omitempty"`
}

DiscoverRequest holds the parameters for agent discovery.

type DiscoverResult

type DiscoverResult struct {
	ID        string
	Name      string
	PublicKey string
}

DiscoverResult is a simplified view of a discovered agent.

type Discovery

type Discovery interface {
	Register(ctx context.Context, req RegisterRequest) (*agentcard.Card, error)
	Deregister(ctx context.Context, agentID string) error
	Heartbeat(ctx context.Context, agentID, status string) (*HeartbeatResponse, error)
	Discover(ctx context.Context, req DiscoverRequest) ([]*agentcard.Card, error)
	Close() error
}

Discovery abstracts agent registration and discovery. Implementations include RegistryClient (centralized server), DHTDiscovery (decentralized), and CompositeDiscovery (hybrid).

type EndpointReq

type EndpointReq struct {
	URL       string `json:"url"`
	Host      string `json:"host,omitempty"`
	Port      int    `json:"port,omitempty"`
	Transport string `json:"transport,omitempty"`
}

EndpointReq holds endpoint details for registration.

type HeartbeatResponse

type HeartbeatResponse struct {
	NextDeadline time.Time `json:"next_deadline"`
}

HeartbeatResponse holds the response from a heartbeat request.

type RegisterRequest

type RegisterRequest struct {
	Name         string            `json:"name"`
	Description  string            `json:"description,omitempty"`
	Version      string            `json:"version,omitempty"`
	PublicKey    string            `json:"public_key,omitempty"`
	Capabilities []string          `json:"capabilities,omitempty"`
	Endpoint     EndpointReq       `json:"endpoint"`
	Protocols    []string          `json:"protocols"`
	Metadata     map[string]string `json:"metadata,omitempty"`
}

RegisterRequest holds the parameters for agent registration.

type RegistryClient

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

RegistryClient provides methods for interacting with the peerclaw-server registry API (register, deregister, heartbeat, discover).

func NewRegistryClient

func NewRegistryClient(baseURL string, logger *slog.Logger) *RegistryClient

NewRegistryClient creates a new registry client.

func (*RegistryClient) ClaimRegister

func (c *RegistryClient) ClaimRegister(ctx context.Context, req ClaimRequest) (*agentcard.Card, error)

ClaimRegister registers the agent using a claim token. The token itself serves as authentication — no API key or bearer token is needed.

func (*RegistryClient) Close

func (c *RegistryClient) Close() error

Close is a no-op for RegistryClient (satisfies the Discovery interface).

func (*RegistryClient) Deregister

func (c *RegistryClient) Deregister(ctx context.Context, agentID string) error

Deregister removes the agent from the platform.

func (*RegistryClient) Discover

func (c *RegistryClient) Discover(ctx context.Context, req DiscoverRequest) ([]*agentcard.Card, error)

Discover finds agents by capabilities on the platform.

func (*RegistryClient) Heartbeat

func (c *RegistryClient) Heartbeat(ctx context.Context, agentID string, status string) (*HeartbeatResponse, error)

Heartbeat sends a heartbeat to the platform.

func (*RegistryClient) Register

func (c *RegistryClient) Register(ctx context.Context, req RegisterRequest) (*agentcard.Card, error)

Register registers the agent with the platform.

Jump to

Keyboard shortcuts

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