UNPKG

anon-identity

Version:

Decentralized identity framework with DIDs, Verifiable Credentials, and privacy-preserving selective disclosure

154 lines 3.89 kB
/** * Provider Registry and Selection Logic for MCP * * Manages registration, discovery, and selection of LLM providers */ import { MCPProvider, ProviderConfig, LLMRequest, LLMCapabilities, LLMRequestType, ProviderStatus } from './types'; import { ProviderFactory } from './providers/base-provider'; /** * Provider selection criteria */ export interface ProviderSelectionCriteria { requestType: LLMRequestType; modelPreference?: string; capabilities?: string[]; maxCost?: number; maxLatency?: number; preferredProviders?: string[]; excludedProviders?: string[]; } /** * Provider selection result */ export interface ProviderSelectionResult { provider: MCPProvider; confidence: number; reason: string; alternatives: Array<{ provider: MCPProvider; confidence: number; reason: string; }>; } /** * Provider scoring weights */ interface ProviderScoringWeights { capability: number; cost: number; performance: number; reliability: number; preference: number; } /** * Provider Registry */ export declare class ProviderRegistry { private providers; private factories; private scoringWeights; constructor(); /** * Register built-in provider factories */ private registerBuiltInFactories; /** * Register a provider factory */ registerProviderFactory(type: string, factory: ProviderFactory): void; /** * Create and register provider from config */ createProvider(config: ProviderConfig): Promise<MCPProvider>; /** * Detect provider type from configuration */ private detectProviderType; /** * Register an existing provider instance */ registerProvider(provider: MCPProvider): void; /** * Unregister a provider */ unregisterProvider(providerId: string): void; /** * Get provider by ID */ getProvider(providerId: string): MCPProvider | undefined; /** * Get all registered providers */ getAllProviders(): MCPProvider[]; /** * Get available (enabled and healthy) providers */ getAvailableProviders(): MCPProvider[]; /** * Get providers by capability */ getProvidersByCapability(capability: keyof LLMCapabilities): MCPProvider[]; /** * Get providers supporting specific model */ getProvidersByModel(modelId: string): MCPProvider[]; /** * Select best provider for request */ selectProvider(criteria: ProviderSelectionCriteria, request?: LLMRequest): ProviderSelectionResult; /** * Filter providers by basic requirements */ private filterProviders; /** * Score a provider based on criteria */ private scoreProvider; /** * Calculate capability score */ private calculateCapabilityScore; /** * Check if provider has required capability for request type */ private checkRequiredCapability; /** * Calculate cost score */ private calculateCostScore; /** * Calculate performance score */ private calculatePerformanceScore; /** * Calculate reliability score */ private calculateReliabilityScore; /** * Calculate preference score */ private calculatePreferenceScore; /** * Get selection reason for provider */ private getSelectionReason; /** * Update scoring weights */ updateScoringWeights(weights: Partial<ProviderScoringWeights>): void; /** * Get provider statistics */ getProviderStats(): { total: number; available: number; byType: Record<string, number>; byStatus: Record<ProviderStatus, number>; }; /** * Clear all providers */ clear(): void; } export default ProviderRegistry; //# sourceMappingURL=provider-registry.d.ts.map