UNPKG

mcp-adr-analysis-server

Version:

MCP server for analyzing Architectural Decision Records and project architecture

652 lines 19.4 kB
/** * TypeScript interfaces for Reflexion Framework * Implements Actor-Evaluator-Self-Reflection pattern for continuous learning */ import { z } from 'zod'; export interface PromptObject { prompt: string; instructions: string; context: any; } export type MemoryType = 'episodic' | 'semantic' | 'procedural' | 'meta' | 'feedback'; export type EvaluationCriterion = 'task-success' | 'quality' | 'efficiency' | 'accuracy' | 'completeness' | 'relevance' | 'clarity' | 'innovation'; export type ReflectionDepth = 'basic' | 'detailed' | 'comprehensive'; export type LearningPhase = 'memory-retrieval' | 'task-execution' | 'performance-evaluation' | 'self-reflection' | 'memory-integration'; export interface ReflexionConfig { memoryEnabled: boolean; maxMemoryEntries: number; reflectionDepth: ReflectionDepth; evaluationCriteria: EvaluationCriterion[]; learningRate: number; memoryRetention: number; feedbackIntegration: boolean; autoCleanup: boolean; relevanceThreshold: number; confidenceThreshold: number; } export declare const ReflexionConfigSchema: z.ZodObject<{ memoryEnabled: z.ZodBoolean; maxMemoryEntries: z.ZodNumber; reflectionDepth: z.ZodEnum<["basic", "detailed", "comprehensive"]>; evaluationCriteria: z.ZodArray<z.ZodEnum<["task-success", "quality", "efficiency", "accuracy", "completeness", "relevance", "clarity", "innovation"]>, "many">; learningRate: z.ZodNumber; memoryRetention: z.ZodNumber; feedbackIntegration: z.ZodBoolean; autoCleanup: z.ZodBoolean; relevanceThreshold: z.ZodNumber; confidenceThreshold: z.ZodNumber; }, "strip", z.ZodTypeAny, { relevanceThreshold: number; evaluationCriteria: ("relevance" | "clarity" | "efficiency" | "task-success" | "quality" | "accuracy" | "completeness" | "innovation")[]; memoryEnabled: boolean; maxMemoryEntries: number; reflectionDepth: "basic" | "detailed" | "comprehensive"; learningRate: number; memoryRetention: number; feedbackIntegration: boolean; autoCleanup: boolean; confidenceThreshold: number; }, { relevanceThreshold: number; evaluationCriteria: ("relevance" | "clarity" | "efficiency" | "task-success" | "quality" | "accuracy" | "completeness" | "innovation")[]; memoryEnabled: boolean; maxMemoryEntries: number; reflectionDepth: "basic" | "detailed" | "comprehensive"; learningRate: number; memoryRetention: number; feedbackIntegration: boolean; autoCleanup: boolean; confidenceThreshold: number; }>; export interface ToolReflexionConfig { toolName: string; taskTypes: string[]; reflexionConfig: ReflexionConfig; customEvaluators?: CustomEvaluator[]; memoryCategories?: string[]; learningObjectives?: string[]; } export interface TaskAttempt { attemptId: string; taskType: string; context: any; action: string; outcome: TaskOutcome; evaluation: EvaluationResult; reflection: SelfReflection; timestamp: string; metadata: AttemptMetadata; relatedMemories: string[]; generatedMemories: string[]; } export interface TaskOutcome { success: boolean; result: any; errors: string[]; warnings: string[]; executionTime: number; resourcesUsed: ResourceUsage; qualityMetrics: QualityMetrics; userFeedback?: UserFeedback; } export interface ResourceUsage { memoryAccessed: number; memoryCreated: number; processingTime: number; promptTokens: number; cacheHits: number; cacheMisses: number; } export interface QualityMetrics { accuracy: number; completeness: number; relevance: number; clarity: number; innovation: number; efficiency: number; } export interface AttemptMetadata { attemptNumber: number; previousAttempts: string[]; improvementFromPrevious: number; strategiesUsed: string[]; lessonsApplied: string[]; challengesFaced: string[]; } export interface EvaluationResult { overallScore: number; criteriaScores: Record<EvaluationCriterion, number>; feedback: EvaluationFeedback[]; strengths: string[]; weaknesses: string[]; improvementAreas: string[]; confidence: number; evaluationTime: number; evaluatorVersion: string; metadata: EvaluationMetadata; } export interface EvaluationFeedback { criterion: EvaluationCriterion; score: number; reasoning: string; suggestions: string[]; examples?: string[]; severity: 'low' | 'medium' | 'high' | 'critical'; } export interface EvaluationMetadata { evaluatedAt: string; evaluationMethod: string; contextFactors: string[]; biasChecks: BiasCheck[]; reliability: number; comparativeAnalysis?: ComparativeAnalysis; } export interface BiasCheck { biasType: string; detected: boolean; severity: 'low' | 'medium' | 'high'; mitigation: string; } export interface ComparativeAnalysis { comparedTo: string[]; relativePerformance: number; improvementAreas: string[]; regressionAreas: string[]; } export interface CustomEvaluator { name: string; criterion: EvaluationCriterion; weight: number; evaluationPrompt: string; expectedOutputFormat: string; validationRules: ValidationRule[]; } export interface ValidationRule { type: 'range' | 'format' | 'content' | 'logic'; condition: string; errorMessage: string; severity: 'warning' | 'error'; } export interface SelfReflection { reflectionId: string; reflectionText: string; lessonsLearned: LessonLearned[]; actionableInsights: ActionableInsight[]; futureStrategies: Strategy[]; knowledgeGaps: KnowledgeGap[]; confidenceLevel: number; applicability: string[]; reflectionTime: number; metadata: ReflectionMetadata; } export interface LessonLearned { lesson: string; category: string; importance: 'low' | 'medium' | 'high' | 'critical'; evidence: string[]; applicableContexts: string[]; confidence: number; generalizability: number; } export interface ActionableInsight { insight: string; action: string; priority: 'low' | 'medium' | 'high' | 'critical'; timeframe: 'immediate' | 'short-term' | 'medium-term' | 'long-term'; resources: string[]; expectedImpact: number; riskLevel: 'low' | 'medium' | 'high'; } export interface Strategy { strategy: string; description: string; applicableScenarios: string[]; prerequisites: string[]; expectedOutcomes: string[]; riskFactors: string[]; successMetrics: string[]; } export interface KnowledgeGap { gap: string; category: string; impact: 'low' | 'medium' | 'high' | 'critical'; learningPriority: number; suggestedResources: string[]; estimatedLearningTime: string; } export interface ReflectionMetadata { reflectedAt: string; reflectionDepth: ReflectionDepth; triggerEvent: string; contextFactors: string[]; emotionalState?: string; cognitiveLoad: number; reflectionQuality: number; } export interface ReflexionMemory { memoryId: string; memoryType: MemoryType; content: MemoryContent; relevanceScore: number; accessCount: number; lastAccessed: string; createdAt: string; expiresAt?: string; tags: string[]; metadata: MemoryMetadata; relationships: MemoryRelationship[]; } export interface MemoryContent { summary: string; details: string; context: any; lessons: string[]; applicableScenarios: string[]; relatedMemories: string[]; evidence: string[]; outcomes: string[]; strategies: string[]; warnings: string[]; } export interface MemoryMetadata { source: string; quality: number; reliability: number; generalizability: number; updateCount: number; lastUpdated: string; category: string; subcategory?: string; importance: 'low' | 'medium' | 'high' | 'critical'; } export interface MemoryRelationship { relatedMemoryId: string; relationshipType: 'similar' | 'contradicts' | 'builds-on' | 'prerequisite' | 'outcome'; strength: number; description: string; } export interface MemoryQuery { taskType?: string; context?: any; keywords?: string[]; memoryTypes?: MemoryType[]; timeRange?: { start: string; end: string; }; relevanceThreshold?: number; maxResults?: number; includeExpired?: boolean; } export interface MemorySearchResult { memories: ReflexionMemory[]; totalFound: number; searchTime: number; relevanceScores: Record<string, number>; searchMetadata: SearchMetadata; } export interface SearchMetadata { searchQuery: MemoryQuery; searchStrategy: string; indexesUsed: string[]; cacheHits: number; searchQuality: number; } export interface LearningProgress { taskType: string; totalAttempts: number; successRate: number; averageScore: number; improvementTrend: number; lastImprovement: string; keyLessons: string[]; persistentIssues: string[]; nextFocusAreas: string[]; learningVelocity: number; plateauDetection: PlateauAnalysis; metadata: LearningMetadata; } export interface PlateauAnalysis { isOnPlateau: boolean; plateauDuration: number; plateauConfidence: number; suggestedInterventions: string[]; alternativeApproaches: string[]; } export interface LearningMetadata { trackingStarted: string; lastUpdated: string; dataQuality: number; sampleSize: number; confidenceInterval: number; statisticalSignificance: number; trendAnalysis: TrendAnalysis; } export interface TrendAnalysis { shortTermTrend: number; mediumTermTrend: number; longTermTrend: number; volatility: number; predictability: number; } export interface ReflexionResult { enhancedPrompt: PromptObject; taskAttempt: TaskAttempt; learningOutcome: LearningOutcome; memoryUpdates: MemoryUpdate[]; performanceMetrics: ReflexionPerformanceMetrics; recommendations: string[]; } export interface LearningOutcome { lessonsLearned: number; memoriesCreated: number; memoriesUpdated: number; improvementAchieved: number; knowledgeGapsIdentified: number; strategiesRefined: number; confidenceChange: number; } export interface MemoryUpdate { memoryId: string; updateType: 'create' | 'update' | 'strengthen' | 'weaken' | 'expire'; changes: string[]; reason: string; impact: number; } export interface ReflexionPerformanceMetrics { totalReflexionTime: number; memoryRetrievalTime: number; evaluationTime: number; reflectionTime: number; memoryIntegrationTime: number; memoriesAccessed: number; memoriesCreated: number; learningEfficiency: number; resourceUtilization: number; } export interface UserFeedback { rating: number; comments: string; categories: string[]; helpfulness: number; accuracy: number; suggestions: string[]; submittedAt: string; userId?: string; } export declare const TaskAttemptSchema: z.ZodObject<{ attemptId: z.ZodString; taskType: z.ZodString; context: z.ZodAny; action: z.ZodString; outcome: z.ZodObject<{ success: z.ZodBoolean; result: z.ZodAny; errors: z.ZodArray<z.ZodString, "many">; warnings: z.ZodArray<z.ZodString, "many">; executionTime: z.ZodNumber; resourcesUsed: z.ZodObject<{ memoryAccessed: z.ZodNumber; memoryCreated: z.ZodNumber; processingTime: z.ZodNumber; promptTokens: z.ZodNumber; cacheHits: z.ZodNumber; cacheMisses: z.ZodNumber; }, "strip", z.ZodTypeAny, { cacheHits: number; cacheMisses: number; memoryAccessed: number; memoryCreated: number; processingTime: number; promptTokens: number; }, { cacheHits: number; cacheMisses: number; memoryAccessed: number; memoryCreated: number; processingTime: number; promptTokens: number; }>; qualityMetrics: z.ZodObject<{ accuracy: z.ZodNumber; completeness: z.ZodNumber; relevance: z.ZodNumber; clarity: z.ZodNumber; innovation: z.ZodNumber; efficiency: z.ZodNumber; }, "strip", z.ZodTypeAny, { relevance: number; clarity: number; efficiency: number; accuracy: number; completeness: number; innovation: number; }, { relevance: number; clarity: number; efficiency: number; accuracy: number; completeness: number; innovation: number; }>; }, "strip", z.ZodTypeAny, { warnings: string[]; success: boolean; errors: string[]; executionTime: number; resourcesUsed: { cacheHits: number; cacheMisses: number; memoryAccessed: number; memoryCreated: number; processingTime: number; promptTokens: number; }; qualityMetrics: { relevance: number; clarity: number; efficiency: number; accuracy: number; completeness: number; innovation: number; }; result?: any; }, { warnings: string[]; success: boolean; errors: string[]; executionTime: number; resourcesUsed: { cacheHits: number; cacheMisses: number; memoryAccessed: number; memoryCreated: number; processingTime: number; promptTokens: number; }; qualityMetrics: { relevance: number; clarity: number; efficiency: number; accuracy: number; completeness: number; innovation: number; }; result?: any; }>; evaluation: z.ZodObject<{ overallScore: z.ZodNumber; criteriaScores: z.ZodRecord<z.ZodString, z.ZodNumber>; feedback: z.ZodArray<z.ZodAny, "many">; strengths: z.ZodArray<z.ZodString, "many">; weaknesses: z.ZodArray<z.ZodString, "many">; improvementAreas: z.ZodArray<z.ZodString, "many">; confidence: z.ZodNumber; evaluationTime: z.ZodNumber; evaluatorVersion: z.ZodString; }, "strip", z.ZodTypeAny, { confidence: number; evaluationTime: number; feedback: any[]; overallScore: number; criteriaScores: Record<string, number>; strengths: string[]; weaknesses: string[]; improvementAreas: string[]; evaluatorVersion: string; }, { confidence: number; evaluationTime: number; feedback: any[]; overallScore: number; criteriaScores: Record<string, number>; strengths: string[]; weaknesses: string[]; improvementAreas: string[]; evaluatorVersion: string; }>; reflection: z.ZodObject<{ reflectionId: z.ZodString; reflectionText: z.ZodString; lessonsLearned: z.ZodArray<z.ZodAny, "many">; actionableInsights: z.ZodArray<z.ZodAny, "many">; futureStrategies: z.ZodArray<z.ZodAny, "many">; knowledgeGaps: z.ZodArray<z.ZodAny, "many">; confidenceLevel: z.ZodNumber; applicability: z.ZodArray<z.ZodString, "many">; reflectionTime: z.ZodNumber; }, "strip", z.ZodTypeAny, { reflectionId: string; reflectionText: string; lessonsLearned: any[]; actionableInsights: any[]; futureStrategies: any[]; knowledgeGaps: any[]; confidenceLevel: number; applicability: string[]; reflectionTime: number; }, { reflectionId: string; reflectionText: string; lessonsLearned: any[]; actionableInsights: any[]; futureStrategies: any[]; knowledgeGaps: any[]; confidenceLevel: number; applicability: string[]; reflectionTime: number; }>; timestamp: z.ZodString; metadata: z.ZodAny; relatedMemories: z.ZodArray<z.ZodString, "many">; generatedMemories: z.ZodArray<z.ZodString, "many">; }, "strip", z.ZodTypeAny, { timestamp: string; evaluation: { confidence: number; evaluationTime: number; feedback: any[]; overallScore: number; criteriaScores: Record<string, number>; strengths: string[]; weaknesses: string[]; improvementAreas: string[]; evaluatorVersion: string; }; outcome: { warnings: string[]; success: boolean; errors: string[]; executionTime: number; resourcesUsed: { cacheHits: number; cacheMisses: number; memoryAccessed: number; memoryCreated: number; processingTime: number; promptTokens: number; }; qualityMetrics: { relevance: number; clarity: number; efficiency: number; accuracy: number; completeness: number; innovation: number; }; result?: any; }; attemptId: string; taskType: string; action: string; reflection: { reflectionId: string; reflectionText: string; lessonsLearned: any[]; actionableInsights: any[]; futureStrategies: any[]; knowledgeGaps: any[]; confidenceLevel: number; applicability: string[]; reflectionTime: number; }; relatedMemories: string[]; generatedMemories: string[]; metadata?: any; context?: any; }, { timestamp: string; evaluation: { confidence: number; evaluationTime: number; feedback: any[]; overallScore: number; criteriaScores: Record<string, number>; strengths: string[]; weaknesses: string[]; improvementAreas: string[]; evaluatorVersion: string; }; outcome: { warnings: string[]; success: boolean; errors: string[]; executionTime: number; resourcesUsed: { cacheHits: number; cacheMisses: number; memoryAccessed: number; memoryCreated: number; processingTime: number; promptTokens: number; }; qualityMetrics: { relevance: number; clarity: number; efficiency: number; accuracy: number; completeness: number; innovation: number; }; result?: any; }; attemptId: string; taskType: string; action: string; reflection: { reflectionId: string; reflectionText: string; lessonsLearned: any[]; actionableInsights: any[]; futureStrategies: any[]; knowledgeGaps: any[]; confidenceLevel: number; applicability: string[]; reflectionTime: number; }; relatedMemories: string[]; generatedMemories: string[]; metadata?: any; context?: any; }>; //# sourceMappingURL=reflexion-framework.d.ts.map