mcp-adr-analysis-server
Version:
MCP server for analyzing Architectural Decision Records and project architecture
467 lines • 14.2 kB
TypeScript
/**
* TypeScript interfaces for Reflexion Framework
* Implements Actor-Evaluator-Self-Reflection pattern for continuous learning
*/
import { z } from 'zod';
/**
* Base prompt object for reflexion framework
*/
export interface PromptObject {
/** The main prompt text */
prompt: string;
/** Instructions for using the prompt */
instructions: string;
/** Additional context data */
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';
/**
* Configuration for the Reflexion learning framework
*/
export interface ReflexionConfig {
/** Whether memory system is enabled */
memoryEnabled: boolean;
/** Maximum memories per type */
maxMemoryEntries: number;
/** Depth of reflection analysis */
reflectionDepth: ReflectionDepth;
/** Criteria used for evaluating performance */
evaluationCriteria: EvaluationCriterion[];
/** How quickly to adapt from experiences (0-1) */
learningRate: number;
/** How long to keep memories (days) */
memoryRetention: number;
/** Enable external feedback integration */
feedbackIntegration: boolean;
/** Automatic memory cleanup */
autoCleanup: boolean;
/** Minimum relevance for memory retrieval (0-1) */
relevanceThreshold: number;
/** Minimum confidence for lesson application (0-1) */
confidenceThreshold: number;
}
export declare const ReflexionConfigSchema: z.ZodObject<{
memoryEnabled: z.ZodBoolean;
maxMemoryEntries: z.ZodNumber;
reflectionDepth: z.ZodEnum<{
basic: "basic";
detailed: "detailed";
comprehensive: "comprehensive";
}>;
evaluationCriteria: z.ZodArray<z.ZodEnum<{
relevance: "relevance";
clarity: "clarity";
efficiency: "efficiency";
"task-success": "task-success";
quality: "quality";
accuracy: "accuracy";
completeness: "completeness";
innovation: "innovation";
}>>;
learningRate: z.ZodNumber;
memoryRetention: z.ZodNumber;
feedbackIntegration: z.ZodBoolean;
autoCleanup: z.ZodBoolean;
relevanceThreshold: z.ZodNumber;
confidenceThreshold: z.ZodNumber;
}, z.core.$strip>;
export interface ToolReflexionConfig {
toolName: string;
taskTypes: string[];
reflexionConfig: ReflexionConfig;
customEvaluators?: CustomEvaluator[];
memoryCategories?: string[];
learningObjectives?: string[];
}
/**
* Represents a single task execution attempt in the Reflexion framework
*/
export interface TaskAttempt {
/** Unique identifier for this attempt */
attemptId: string;
/** Type of task being attempted */
taskType: string;
/** Context information for the task */
context: any;
/** Action taken during the attempt */
action: string;
/** Outcome of the task execution */
outcome: TaskOutcome;
/** Evaluation of the attempt's performance */
evaluation: EvaluationResult;
/** Self-reflection analysis */
reflection: SelfReflection;
/** Timestamp when attempt was made */
timestamp: string;
/** Additional metadata about the attempt */
metadata: AttemptMetadata;
/** IDs of memories used during execution */
relatedMemories: string[];
/** IDs of memories created from this attempt */
generatedMemories: string[];
}
/**
* Outcome of a task execution attempt
*/
export interface TaskOutcome {
/** Whether the task was successful */
success: boolean;
/** Result data from the task execution */
result: any;
/** Errors encountered during execution */
errors: string[];
/** Warnings generated during execution */
warnings: string[];
/** Time taken to execute (milliseconds) */
executionTime: number;
/** Resources consumed during execution */
resourcesUsed: ResourceUsage;
/** Quality metrics for the outcome */
qualityMetrics: QualityMetrics;
/** Optional user feedback on the outcome */
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>;
warnings: z.ZodArray<z.ZodString>;
executionTime: z.ZodNumber;
resourcesUsed: z.ZodObject<{
memoryAccessed: z.ZodNumber;
memoryCreated: z.ZodNumber;
processingTime: z.ZodNumber;
promptTokens: z.ZodNumber;
cacheHits: z.ZodNumber;
cacheMisses: z.ZodNumber;
}, z.core.$strip>;
qualityMetrics: z.ZodObject<{
accuracy: z.ZodNumber;
completeness: z.ZodNumber;
relevance: z.ZodNumber;
clarity: z.ZodNumber;
innovation: z.ZodNumber;
efficiency: z.ZodNumber;
}, z.core.$strip>;
}, z.core.$strip>;
evaluation: z.ZodObject<{
overallScore: z.ZodNumber;
criteriaScores: z.ZodRecord<z.ZodString, z.ZodNumber>;
feedback: z.ZodArray<z.ZodAny>;
strengths: z.ZodArray<z.ZodString>;
weaknesses: z.ZodArray<z.ZodString>;
improvementAreas: z.ZodArray<z.ZodString>;
confidence: z.ZodNumber;
evaluationTime: z.ZodNumber;
evaluatorVersion: z.ZodString;
}, z.core.$strip>;
reflection: z.ZodObject<{
reflectionId: z.ZodString;
reflectionText: z.ZodString;
lessonsLearned: z.ZodArray<z.ZodAny>;
actionableInsights: z.ZodArray<z.ZodAny>;
futureStrategies: z.ZodArray<z.ZodAny>;
knowledgeGaps: z.ZodArray<z.ZodAny>;
confidenceLevel: z.ZodNumber;
applicability: z.ZodArray<z.ZodString>;
reflectionTime: z.ZodNumber;
}, z.core.$strip>;
timestamp: z.ZodString;
metadata: z.ZodAny;
relatedMemories: z.ZodArray<z.ZodString>;
generatedMemories: z.ZodArray<z.ZodString>;
}, z.core.$strip>;
//# sourceMappingURL=reflexion-framework.d.ts.map