/**
* Agent Card System
*
* Comprehensive agent discovery and registration system for A2A communication.
* Provides agent registration, capability-based discovery, filtering, and metrics tracking.
*/
///
import { EventEmitter } from "events";
import { AgentCard, AgentId, AgentType, DiscoveryRequest, DiscoveryResponse, RegistrationResponse } from "../../../types/a2a.js";
/**
* Discovery metrics
*/
export interface DiscoveryMetrics {
totalDiscoveryRequests: number;
avgDiscoveryTime: number;
popularCapabilities: {
[capability: string]: number;
};
discoverySuccessRate: number;
filterUsageStats: {
[filter: string]: number;
};
}
/**
* System metrics
*/
export interface SystemMetrics {
totalRegisteredAgents: number;
agentsByType: {
[type in AgentType]?: number;
};
agentsByStatus: {
[status: string]: number;
};
averageLoad: number;
capabilityDistribution: {
[capability: string]: number;
};
trustLevelDistribution: {
[level: string]: number;
};
uptimeDistribution: {
[range: string]: number;
};
}
/**
* Agent Card System implementation
*/
export declare class AgentCardSystem extends EventEmitter {
private logger;
private agentRegistry;
private capabilityIndex;
private serviceIndex;
private typeIndex;
private isInitialized;
private metrics;
private defaultTTL;
private heartbeatInterval;
private cleanupInterval;
constructor();
/**
* Initialize the agent card system
*/
initialize(): Promise;
/**
* Shutdown the agent card system
*/
shutdown(): Promise;
/**
* Register an agent with optional TTL
*/
registerAgent(agentCard: AgentCard, ttl?: number): Promise;
/**
* Unregister an agent
*/
unregisterAgent(agentId: AgentId): Promise;
/**
* Update existing agent card
*/
updateAgentCard(agentCard: AgentCard): Promise;
/**
* Get agent card by ID
*/
getAgentCard(agentId: AgentId): Promise;
/**
* Discover agents based on criteria
*/
discoverAgents(request: DiscoveryRequest): Promise;
/**
* Find agents by capability
*/
findAgentsByCapability(capabilityName: string, version?: string): Promise;
/**
* Find agents by type
*/
findAgentsByType(agentType: AgentType): Promise;
/**
* Find agents by service
*/
findAgentsByService(serviceName: string): Promise;
/**
* Refresh agent status (heartbeat)
*/
refreshAgentStatus(agentId: AgentId): Promise;
/**
* Get registered agents map
*/
getRegisteredAgents(): Map;
/**
* Get system metrics
*/
getSystemMetrics(): Promise;
/**
* Get discovery metrics
*/
getDiscoveryMetrics(): DiscoveryMetrics;
/**
* Validate agent card
*/
private validateAgentCard;
/**
* Update search indexes
*/
private updateIndexes;
/**
* Filter agents by capabilities
*/
private filterByCapabilities;
/**
* Apply discovery filters
*/
private applyFilters;
/**
* Evaluate a single filter
*/
private evaluateFilter;
/**
* Filter agents by distance
*/
private filterByDistance;
/**
* Calculate distance to agent (simplified)
*/
private calculateDistance;
/**
* Check version compatibility
*/
private isVersionCompatible;
/**
* Parse version string
*/
private parseVersion;
/**
* Get nested value from object
*/
private getNestedValue;
/**
* Deep includes check for complex objects
*/
private deepIncludes;
/**
* Clean up expired agents
*/
private cleanupExpiredAgents;
}
//# sourceMappingURL=agent-card-system.d.ts.map