UNPKG

anon-identity

Version:

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

211 lines 5.75 kB
/** * LLM-Assisted Delegation Engine for MCP * * Intelligent delegation decision making using large language models */ import { EventEmitter } from 'events'; import { MessageRouter } from '../routing/message-router'; import { AuthManager } from '../security/auth-manager'; import { AuditLogger } from '../security/audit-logger'; /** * Delegation request */ export interface DelegationRequest { requestId: string; parentAgentDID: string; targetAgentDID: string; requestedScopes: string[]; purpose: string; context: string; duration?: number; constraints?: Record<string, any>; urgency: 'low' | 'medium' | 'high' | 'critical'; requestedAt: Date; metadata?: Record<string, any>; } /** * Delegation decision */ export interface DelegationDecision { requestId: string; decision: 'approve' | 'deny' | 'approve_with_modifications' | 'request_more_info'; confidence: number; reasoning: string; suggestedScopes?: string[]; suggestedConstraints?: Record<string, any>; suggestedDuration?: number; warnings: string[]; riskAssessment: { level: 'low' | 'medium' | 'high' | 'critical'; factors: string[]; mitigations: string[]; }; decidedAt: Date; reviewRequired: boolean; additionalInfo?: { questions: string[]; expectedResponseTime: number; }; } /** * Policy interpretation */ export interface PolicyInterpretation { policyId: string; summary: string; applicableRules: Array<{ rule: string; description: string; impact: 'allow' | 'restrict' | 'modify'; severity: 'info' | 'warning' | 'error'; }>; requirements: string[]; restrictions: string[]; recommendations: string[]; exceptions: Array<{ condition: string; action: string; justification: string; }>; complianceLevel: number; } /** * Scope recommendation */ export interface ScopeRecommendation { requestedScopes: string[]; recommendedScopes: string[]; reasoning: string; alternatives: Array<{ scopes: string[]; rationale: string; tradeoffs: string[]; }>; minimumScopes: string[]; maximumScopes: string[]; riskLevel: 'low' | 'medium' | 'high'; } /** * Agent profile */ export interface AgentProfile { did: string; name: string; type: 'user' | 'service' | 'autonomous' | 'assistant'; trustLevel: number; capabilities: string[]; permissions: string[]; history: { totalDelegations: number; successfulDelegations: number; revokedDelegations: number; averageDelegationDuration: number; lastActivity: Date; }; riskFactors: string[]; } /** * Decision context */ export interface DecisionContext { parentAgent: AgentProfile; targetAgent?: AgentProfile; organizationalPolicies: any[]; systemPolicies: any[]; currentDelegations: Array<{ targetAgent: string; scopes: string[]; grantedAt: Date; expiresAt: Date; }>; systemLoad: { cpu: number; memory: number; activeAgents: number; }; securityLevel: 'normal' | 'elevated' | 'high' | 'maximum'; timeOfDay: string; workingHours: boolean; } /** * LLM Delegation Engine */ export declare class LLMDelegationEngine extends EventEmitter { private messageRouter; private authManager; private auditLogger; private config; private functionRegistry; constructor(messageRouter: MessageRouter, authManager: AuthManager, auditLogger: AuditLogger, config?: { defaultProvider: string; decisionTimeout: number; requireHumanApproval: boolean; minConfidenceThreshold: number; maxDelegationDepth: number; auditAllDecisions: boolean; }); /** * Make delegation decision using LLM */ makeDelegationDecision(request: DelegationRequest, context: DecisionContext): Promise<DelegationDecision>; /** * Interpret policy using LLM */ interpretPolicy(policyDocument: any, context: DecisionContext, specificScenario?: string): Promise<PolicyInterpretation>; /** * Generate scope recommendations */ recommendScopes(requestedScopes: string[], purpose: string, context: DecisionContext, availableScopes: string[]): Promise<ScopeRecommendation>; /** * Process natural language delegation request */ processNaturalLanguageRequest(naturalLanguageRequest: string, requestingAgentDID: string, context: DecisionContext): Promise<DelegationRequest>; /** * Build decision prompt */ private buildDecisionPrompt; /** * Build policy interpretation prompt */ private buildPolicyInterpretationPrompt; /** * Build scope recommendation prompt */ private buildScopeRecommendationPrompt; /** * Build natural language prompt */ private buildNaturalLanguagePrompt; /** * Process decision response from LLM */ private processDecisionResponse; /** * Audit decision */ private auditDecision; /** * Map urgency to priority */ private mapUrgencyToPriority; /** * Initialize delegation-specific functions */ private initializeDelegationFunctions; /** * Get delegation statistics */ getStatistics(): { totalDecisions: number; approvalRate: number; averageConfidence: number; riskDistribution: Record<string, number>; humanReviewRate: number; }; /** * Shutdown */ shutdown(): void; } export default LLMDelegationEngine; //# sourceMappingURL=llm-delegation-engine.d.ts.map