/** * A2A Capability Manager * * Manages the exposure, registration, and discovery of A2A capabilities. * Provides patterns for dynamic capability composition, aggregation, and versioning. * Handles capability matching, dependency resolution, and security policy enforcement. */ /// import { EventEmitter } from "events"; import { A2ACapability, A2AToolContext, A2AToolWrapper } from "./a2a-tool-wrapper.js"; export interface CapabilityRegistration { id: string; capability: A2ACapability; wrapper: A2AToolWrapper; registeredAt: Date; lastUsed?: Date; usage: { invocations: number; successRate: number; avgLatency: number; }; status: "active" | "deprecated" | "disabled" | "maintenance"; metadata: Record; } export interface CapabilityQuery { name?: string; version?: string; category?: string; minTrustLevel?: string; requiredCapabilities?: string[]; resourceConstraints?: { maxLatency?: number; maxResourceUsage?: "low" | "medium" | "high"; }; tags?: string[]; } export interface CapabilityComposition { id: string; name: string; description: string; capabilities: string[]; dependencies: Record; executionStrategy: "sequential" | "parallel" | "conditional" | "pipeline"; errorHandling: "fail-fast" | "continue" | "retry"; timeout: number; securityPolicy: { minTrustLevel: string; aggregatedCapabilities: string[]; elevatedPrivileges: boolean; }; } export interface CapabilityAggregation { id: string; name: string; aggregatedCapabilities: A2ACapability[]; compositeParameters: any; outputSchema: any; performance: { estimatedLatency: number; resourceUsage: "low" | "medium" | "high"; cacheable: boolean; }; security: { effectiveTrustLevel: string; combinedCapabilities: string[]; }; } export interface CapabilityDiscovery { categories: string[]; versions: Record; dependencies: Record; recommendations: { popular: string[]; trending: string[]; related: Record; }; metadata: { totalCapabilities: number; lastUpdated: Date; compatibility: Record; }; } /** * Main capability manager for A2A system */ export declare class CapabilityManager extends EventEmitter { private logger; private cache; private registrations; private compositions; private aggregations; private categoryIndex; private dependencyGraph; constructor(); /** * Register a new capability */ registerCapability(id: string, capability: A2ACapability, wrapper: A2AToolWrapper, metadata?: Record): Promise; /** * Unregister a capability */ unregisterCapability(id: string): Promise; /** * Query capabilities based on criteria */ queryCapabilities(query: CapabilityQuery): Promise; /** * Get capability by ID */ getCapability(id: string): CapabilityRegistration | undefined; /** * List all registered capabilities */ listCapabilities(status?: CapabilityRegistration["status"]): CapabilityRegistration[]; /** * Create a capability composition */ createComposition(composition: CapabilityComposition): Promise; /** * Execute a capability composition */ executeComposition(compositionId: string, parameters: Record, context: A2AToolContext): Promise; /** * Create capability aggregation */ createAggregation(capabilityIds: string[], name: string, aggregationStrategy?: "merge" | "compose" | "overlay"): Promise; /** * Get capability discovery information */ getDiscoveryInfo(): Promise; /** * Update capability usage statistics */ updateUsageStats(capabilityId: string, success: boolean, latency: number): void; /** * Private helper methods */ private validateCapability; private extractCategory; private updateDependencyGraph; private hasCircularDependencies; private validateCompositionSecurity; private executeSequential; private executeParallel; private executeConditional; private executePipeline; private executeSingleCapability; private handleCompositionErrors; private aggregateResults; private aggregateParameters; private aggregateOutputSchema; private aggregatePerformance; private aggregateSecurity; private generateRecommendations; private generateCompatibilityMatrix; } //# sourceMappingURL=capability-manager.d.ts.map