/** * Agent Registry * * Similar to PeerRegistry and CapabilityLocationRegistry. * Maps AgentRef to Agent definition, available providers, and compatible state. */ import type { AgentDefinition, AgentRef } from './agent.js'; /** * Information about an agent provider */ export interface AgentProvider { /** Peer ID that provides this agent */ peerId: string; /** Whether this peer is currently available */ available: boolean; /** State version this peer has */ stateVersion: number; /** Timestamp of last heartbeat */ lastHeartbeat: number; /** Capabilities this provider supports */ capabilities: string[]; } /** * Agent registration entry in the registry */ export interface AgentRegistryEntry { /** The agent reference */ agentRef: AgentRef; /** Agent definition */ definition: AgentDefinition; /** Available providers for this agent */ providers: AgentProvider[]; /** Compatible state versions */ compatibleStateVersions: number[]; /** When this entry was registered */ registeredAt: number; /** Last update timestamp */ updatedAt: number; /** Is this agent currently active */ active: boolean; } /** * Registry for agent definitions and discovery */ export declare class AgentRegistry { private agents; /** * Register an agent definition */ register(agentRef: AgentRef, definition: AgentDefinition): void; /** * Unregister an agent */ unregister(agentRef: AgentRef): void; /** * Get an agent registration entry */ get(agentRef: AgentRef): AgentRegistryEntry | undefined; /** * Get agent by name (returns latest version) */ getByName(name: string): AgentRegistryEntry | undefined; /** * Get all registered agents */ getAll(): AgentRegistryEntry[]; /** * Add a provider for an agent */ addProvider(agentRef: AgentRef, provider: AgentProvider): void; /** * Remove a provider */ removeProvider(agentRef: AgentRef, peerId: string): void; /** * Get available providers for an agent */ getAvailableProviders(agentRef: AgentRef): AgentProvider[]; /** * Find agents by capability */ findByCapability(capability: string): AgentRegistryEntry[]; /** * Update agent availability */ updateAvailability(agentRef: AgentRef, peerId: string, available: boolean): void; /** * Clear all registrations */ clear(): void; } //# sourceMappingURL=agent-registry.d.ts.map