/** * A2A Protocol Manager * * Core component for Agent-to-Agent communication using JSON-RPC 2.0 protocol. * Provides comprehensive message handling, routing, security, and error management. */ /// import { EventEmitter } from "events"; import { A2AMessage, A2AResponse, A2ANotification, A2AErrorType, A2AProtocolConfig, AgentCard } from "../../../types/a2a.js"; /** * Message handler function type */ export type MessageHandler = (message: A2AMessage) => Promise; /** * Protocol manager metrics */ export interface ProtocolManagerMetrics { messagesProcessed: number; messagesSucceeded: number; messagesFailed: number; avgResponseTime: number; p95ResponseTime: number; p99ResponseTime: number; successRate: number; errorRate: number; throughput: number; concurrentConnections: number; activeHandlers: number; errorsByType: { [key in A2AErrorType]?: number; }; } /** * A2A Protocol Manager - Core JSON-RPC 2.0 implementation */ export declare class A2AProtocolManager extends EventEmitter { private config; private logger; private isInitialized; private isShuttingDown; private messageHandlers; private messageQueue; private processingQueue; private activeMessages; private metrics; private trustedAgents; private messageValidationEnabled; constructor(config: A2AProtocolConfig); /** * Initialize the protocol manager */ initialize(): Promise; /** * Gracefully shutdown the protocol manager */ shutdown(): Promise; /** * Send a message and wait for response */ sendMessage(message: A2AMessage): Promise; /** * Send a notification (no response expected) */ sendNotification(notification: A2ANotification): Promise; /** * Register a message handler for a specific method */ registerMessageHandler(method: string, handler: MessageHandler): Promise; /** * Unregister a message handler */ unregisterMessageHandler(method: string): Promise; /** * Get the agent card for this protocol manager */ getAgentCard(): AgentCard; /** * Get performance metrics */ getMetrics(): ProtocolManagerMetrics; /** * Validate configuration */ private validateConfiguration; /** * Validate JSON-RPC 2.0 message format */ private validateMessage; /** * Validate notification format */ private validateNotification; /** * Validate security constraints */ private validateSecurity; /** * Validate message signature (mock implementation) */ private validateSignature; /** * Queue message for processing with priority handling */ private queueMessage; /** * Insert message into queue based on priority */ private insertByPriority; /** * Remove message from queue */ private removeFromQueue; /** * Start message processing loop */ private startMessageProcessing; /** * Process message queue */ private processMessageQueue; /** * Process individual message */ private processMessage; /** * Handle message processing errors with retry logic */ private handleMessageError; /** * Check if error is retryable */ private isRetryableError; /** * Calculate backoff delay for retries */ private calculateBackoffDelay; /** * Get error type from error object */ private getErrorType; /** * Track error statistics */ private trackError; /** * Create A2A error object */ private createError; /** * Process notification (mock implementation) */ private processNotification; /** * Initialize transport layers (mock implementation) */ private initializeTransports; /** * Shutdown transport layers (mock implementation) */ private shutdownTransports; /** * Register default message handlers */ private registerDefaultHandlers; /** * Wait for active messages to complete */ private waitForActiveMessages; } //# sourceMappingURL=a2a-protocol-manager.d.ts.map