import { AgentIdentity, DelegationCredential } from '../types'; /** * Message types for inter-agent communication */ export declare enum AgentMessageType { DELEGATION_REQUEST = "delegation.request", DELEGATION_GRANT = "delegation.grant", DELEGATION_DENY = "delegation.deny", DELEGATION_REVOKE = "delegation.revoke", QUERY_STATUS = "query.status", QUERY_CAPABILITIES = "query.capabilities", QUERY_CHAIN = "query.chain", RESPONSE_STATUS = "response.status", RESPONSE_CAPABILITIES = "response.capabilities", RESPONSE_CHAIN = "response.chain", NOTIFY_REVOCATION = "notify.revocation", NOTIFY_EXPIRATION = "notify.expiration", NOTIFY_POLICY_CHANGE = "notify.policy_change", PING = "system.ping", PONG = "system.pong", ERROR = "system.error", ACK = "system.ack" } /** * Base message structure for all inter-agent communications */ export interface AgentMessage { id: string; type: AgentMessageType; from: string; to: string; timestamp: Date; version: string; signature?: string; replyTo?: string; expiresAt?: Date; metadata?: Record; payload: any; } /** * Delegation request message */ export interface DelegationRequestMessage extends AgentMessage { type: AgentMessageType.DELEGATION_REQUEST; payload: { requestedScopes: string[]; serviceDID?: string; duration?: number; purpose?: string; constraints?: Record; }; } /** * Delegation grant message */ export interface DelegationGrantMessage extends AgentMessage { type: AgentMessageType.DELEGATION_GRANT; payload: { credential: DelegationCredential; grantedScopes: string[]; expiresAt: Date; limitations?: string[]; }; } /** * Delegation deny message */ export interface DelegationDenyMessage extends AgentMessage { type: AgentMessageType.DELEGATION_DENY; payload: { reason: string; violations?: string[]; suggestedScopes?: string[]; retryAfter?: Date; }; } /** * Status query message */ export interface StatusQueryMessage extends AgentMessage { type: AgentMessageType.QUERY_STATUS; payload: { includeChain?: boolean; includeScopes?: boolean; includeMetrics?: boolean; }; } /** * Status response message */ export interface StatusResponseMessage extends AgentMessage { type: AgentMessageType.RESPONSE_STATUS; payload: { status: 'active' | 'suspended' | 'revoked'; delegationDepth: number; remainingDepth: number; scopes?: string[]; metrics?: { subAgentsCreated: number; delegationsGranted: number; delegationsDenied: number; lastActivity: Date; }; }; } /** * Message envelope for transport */ export interface MessageEnvelope { message: AgentMessage; routingInfo?: { path: string[]; ttl: number; }; encryption?: { algorithm: string; recipientKey: string; encryptedContent?: string; }; } /** * Message handler function type */ export type MessageHandler = (message: T, context: MessageHandlerContext) => Promise; /** * Context provided to message handlers */ export interface MessageHandlerContext { agentIdentity: AgentIdentity; sendMessage: (message: AgentMessage) => Promise; getAgent: (did: string) => AgentIdentity | undefined; validateCredential: (credential: DelegationCredential) => Promise; } /** * Communication channel interface */ export interface CommunicationChannel { id: string; type: 'direct' | 'queue' | 'websocket' | 'http'; isConnected: boolean; connect(): Promise; disconnect(): Promise; send(envelope: MessageEnvelope): Promise; onMessage(handler: (envelope: MessageEnvelope) => void): void; } /** * Message validation result */ export interface MessageValidationResult { valid: boolean; errors?: string[]; warnings?: string[]; } /** * Communication statistics */ export interface CommunicationStats { messagesSent: number; messagesReceived: number; messagesDropped: number; averageResponseTime: number; lastMessageTime?: Date; errorRate: number; } //# sourceMappingURL=types.d.ts.map