UNPKG

mcp-adr-analysis-server

Version:

MCP server for analyzing Architectural Decision Records and project architecture

566 lines 19.3 kB
/** * TypeScript interfaces for Automatic Prompt Engineer (APE) Framework * Implements automatic prompt generation, evaluation, and optimization */ import { z } from 'zod'; export interface PromptObject { prompt: string; instructions: string; context: any; } export type GenerationStrategy = 'template-variation' | 'semantic-variation' | 'style-variation' | 'length-variation' | 'structure-variation' | 'hybrid-approach'; export type EvaluationCriterion = 'task-completion' | 'clarity' | 'specificity' | 'robustness' | 'efficiency' | 'context-awareness'; export type SelectionStrategy = 'highest-score' | 'multi-criteria' | 'ensemble' | 'context-aware' | 'balanced'; export type OptimizationPhase = 'candidate-generation' | 'evaluation' | 'selection' | 'refinement' | 'validation'; export interface APEConfig { candidateCount: number; evaluationCriteria: EvaluationCriterion[]; optimizationRounds: number; selectionStrategy: SelectionStrategy; cacheEnabled: boolean; performanceTracking: boolean; maxOptimizationTime: number; qualityThreshold: number; diversityWeight: number; } export declare const APEConfigSchema: z.ZodObject<{ candidateCount: z.ZodNumber; evaluationCriteria: z.ZodArray<z.ZodEnum<["task-completion", "clarity", "specificity", "robustness", "efficiency", "context-awareness"]>, "many">; optimizationRounds: z.ZodNumber; selectionStrategy: z.ZodEnum<["highest-score", "multi-criteria", "ensemble", "context-aware", "balanced"]>; cacheEnabled: z.ZodBoolean; performanceTracking: z.ZodBoolean; maxOptimizationTime: z.ZodNumber; qualityThreshold: z.ZodNumber; diversityWeight: z.ZodNumber; }, "strip", z.ZodTypeAny, { cacheEnabled: boolean; candidateCount: number; evaluationCriteria: ("task-completion" | "clarity" | "specificity" | "robustness" | "efficiency" | "context-awareness")[]; optimizationRounds: number; selectionStrategy: "highest-score" | "multi-criteria" | "ensemble" | "context-aware" | "balanced"; performanceTracking: boolean; maxOptimizationTime: number; qualityThreshold: number; diversityWeight: number; }, { cacheEnabled: boolean; candidateCount: number; evaluationCriteria: ("task-completion" | "clarity" | "specificity" | "robustness" | "efficiency" | "context-awareness")[]; optimizationRounds: number; selectionStrategy: "highest-score" | "multi-criteria" | "ensemble" | "context-aware" | "balanced"; performanceTracking: boolean; maxOptimizationTime: number; qualityThreshold: number; diversityWeight: number; }>; export interface ToolOptimizationConfig { toolName: string; taskType: string; apeConfig: APEConfig; contextRequirements: string[]; successCriteria: string[]; customEvaluators?: CustomEvaluator[]; } export interface PromptCandidate { id: string; prompt: string; instructions: string; context: any; generationStrategy: GenerationStrategy; metadata: CandidateMetadata; parentId?: string; generation: number; } export interface CandidateMetadata { generatedAt: string; generationTime: number; strategy: GenerationStrategy; templateUsed?: string; variationApplied?: string[]; complexity: number; estimatedQuality: number; tokens: number; } export interface GenerationRequest { basePrompt: PromptObject; strategies: GenerationStrategy[]; candidateCount: number; context: GenerationContext; constraints: GenerationConstraints; } export interface GenerationContext { taskType: string; domain: string; targetAudience: string; complexity: 'simple' | 'moderate' | 'complex'; style: 'formal' | 'conversational' | 'technical'; length: 'short' | 'medium' | 'long'; } export interface GenerationConstraints { maxLength: number; minLength: number; requiredKeywords: string[]; forbiddenTerms: string[]; styleRequirements: string[]; formatRequirements: string[]; } export interface EvaluationResult { candidateId: string; scores: Record<EvaluationCriterion, number>; overallScore: number; feedback: EvaluationFeedback[]; evaluationTime: number; evaluatorVersion: string; metadata: EvaluationMetadata; } export interface EvaluationFeedback { criterion: EvaluationCriterion; score: number; reasoning: string; suggestions: string[]; examples?: string[]; } export interface EvaluationMetadata { evaluatedAt: string; evaluationMethod: string; confidence: number; reliability: number; contextMatch: number; biasScore: number; } export interface CustomEvaluator { name: string; criterion: EvaluationCriterion; weight: number; evaluationPrompt: string; expectedOutputFormat: string; validationRules: ValidationRule[]; } export interface ValidationRule { type: 'length' | 'keyword' | 'format' | 'score'; condition: string; errorMessage: string; } export interface SelectionResult { selectedCandidates: PromptCandidate[]; selectionReasoning: string; diversityScore: number; qualityScore: number; selectionTime: number; metadata: SelectionMetadata; } export interface SelectionMetadata { strategy: SelectionStrategy; candidatesConsidered: number; selectionCriteria: EvaluationCriterion[]; weights: Record<EvaluationCriterion, number>; diversityWeight: number; qualityThreshold: number; } export interface OptimizationResult { optimizedPrompt: PromptObject; originalPrompt: PromptObject; improvementScore: number; optimizationRounds: number; candidatesEvaluated: number; totalOptimizationTime: number; cacheKey: string; metadata: OptimizationMetadata; performanceMetrics: PerformanceMetrics; } export interface OptimizationMetadata { optimizedAt: string; apeVersion: string; configUsed: APEConfig; strategiesApplied: GenerationStrategy[]; evaluationCriteria: EvaluationCriterion[]; selectionStrategy: SelectionStrategy; qualityImprovement: number; convergenceRound: number; } export interface PerformanceMetrics { generationTime: number; evaluationTime: number; selectionTime: number; totalTime: number; candidatesGenerated: number; candidatesEvaluated: number; cacheHits: number; cacheMisses: number; memoryUsage: number; successRate: number; } export interface OptimizationHistory { optimizationId: string; timestamp: string; toolName: string; taskType: string; originalPrompt: PromptObject; optimizedPrompt: PromptObject; improvementScore: number; config: APEConfig; metrics: PerformanceMetrics; userFeedback?: UserFeedback; } export interface UserFeedback { rating: number; comments: string; usefulnessScore: number; clarityScore: number; effectivenessScore: number; wouldRecommend: boolean; submittedAt: string; } export interface APECacheEntry { key: string; type: 'candidate' | 'evaluation' | 'optimization' | 'performance'; data: any; timestamp: string; ttl: number; accessCount: number; lastAccessed: string; metadata: CacheEntryMetadata; } export interface CacheEntryMetadata { version: string; compressed: boolean; size: number; tags: string[]; priority: 'low' | 'medium' | 'high'; context: string; } export interface APEError { code: string; message: string; phase: OptimizationPhase; candidateId?: string; timestamp: string; recoverable: boolean; context?: any; } export interface OptimizationStatus { status: 'pending' | 'generating' | 'evaluating' | 'selecting' | 'optimizing' | 'completed' | 'failed'; progress: number; currentPhase: OptimizationPhase; candidatesGenerated: number; candidatesEvaluated: number; estimatedTimeRemaining: number; errors: APEError[]; warnings: string[]; } export declare const PromptCandidateSchema: z.ZodObject<{ id: z.ZodString; prompt: z.ZodString; instructions: z.ZodString; context: z.ZodAny; generationStrategy: z.ZodEnum<["template-variation", "semantic-variation", "style-variation", "length-variation", "structure-variation", "hybrid-approach"]>; metadata: z.ZodObject<{ generatedAt: z.ZodString; generationTime: z.ZodNumber; strategy: z.ZodString; templateUsed: z.ZodOptional<z.ZodString>; variationApplied: z.ZodOptional<z.ZodArray<z.ZodString, "many">>; complexity: z.ZodNumber; estimatedQuality: z.ZodNumber; tokens: z.ZodNumber; }, "strip", z.ZodTypeAny, { generatedAt: string; generationTime: number; strategy: string; complexity: number; estimatedQuality: number; tokens: number; templateUsed?: string | undefined; variationApplied?: string[] | undefined; }, { generatedAt: string; generationTime: number; strategy: string; complexity: number; estimatedQuality: number; tokens: number; templateUsed?: string | undefined; variationApplied?: string[] | undefined; }>; parentId: z.ZodOptional<z.ZodString>; generation: z.ZodNumber; }, "strip", z.ZodTypeAny, { metadata: { generatedAt: string; generationTime: number; strategy: string; complexity: number; estimatedQuality: number; tokens: number; templateUsed?: string | undefined; variationApplied?: string[] | undefined; }; prompt: string; instructions: string; id: string; generationStrategy: "template-variation" | "semantic-variation" | "style-variation" | "length-variation" | "structure-variation" | "hybrid-approach"; generation: number; context?: any; parentId?: string | undefined; }, { metadata: { generatedAt: string; generationTime: number; strategy: string; complexity: number; estimatedQuality: number; tokens: number; templateUsed?: string | undefined; variationApplied?: string[] | undefined; }; prompt: string; instructions: string; id: string; generationStrategy: "template-variation" | "semantic-variation" | "style-variation" | "length-variation" | "structure-variation" | "hybrid-approach"; generation: number; context?: any; parentId?: string | undefined; }>; export declare const OptimizationResultSchema: z.ZodObject<{ optimizedPrompt: z.ZodObject<{ prompt: z.ZodString; instructions: z.ZodString; context: z.ZodAny; }, "strip", z.ZodTypeAny, { prompt: string; instructions: string; context?: any; }, { prompt: string; instructions: string; context?: any; }>; originalPrompt: z.ZodObject<{ prompt: z.ZodString; instructions: z.ZodString; context: z.ZodAny; }, "strip", z.ZodTypeAny, { prompt: string; instructions: string; context?: any; }, { prompt: string; instructions: string; context?: any; }>; improvementScore: z.ZodNumber; optimizationRounds: z.ZodNumber; candidatesEvaluated: z.ZodNumber; totalOptimizationTime: z.ZodNumber; cacheKey: z.ZodString; metadata: z.ZodObject<{ optimizedAt: z.ZodString; apeVersion: z.ZodString; configUsed: z.ZodObject<{ candidateCount: z.ZodNumber; evaluationCriteria: z.ZodArray<z.ZodEnum<["task-completion", "clarity", "specificity", "robustness", "efficiency", "context-awareness"]>, "many">; optimizationRounds: z.ZodNumber; selectionStrategy: z.ZodEnum<["highest-score", "multi-criteria", "ensemble", "context-aware", "balanced"]>; cacheEnabled: z.ZodBoolean; performanceTracking: z.ZodBoolean; maxOptimizationTime: z.ZodNumber; qualityThreshold: z.ZodNumber; diversityWeight: z.ZodNumber; }, "strip", z.ZodTypeAny, { cacheEnabled: boolean; candidateCount: number; evaluationCriteria: ("task-completion" | "clarity" | "specificity" | "robustness" | "efficiency" | "context-awareness")[]; optimizationRounds: number; selectionStrategy: "highest-score" | "multi-criteria" | "ensemble" | "context-aware" | "balanced"; performanceTracking: boolean; maxOptimizationTime: number; qualityThreshold: number; diversityWeight: number; }, { cacheEnabled: boolean; candidateCount: number; evaluationCriteria: ("task-completion" | "clarity" | "specificity" | "robustness" | "efficiency" | "context-awareness")[]; optimizationRounds: number; selectionStrategy: "highest-score" | "multi-criteria" | "ensemble" | "context-aware" | "balanced"; performanceTracking: boolean; maxOptimizationTime: number; qualityThreshold: number; diversityWeight: number; }>; strategiesApplied: z.ZodArray<z.ZodString, "many">; evaluationCriteria: z.ZodArray<z.ZodString, "many">; selectionStrategy: z.ZodString; qualityImprovement: z.ZodNumber; convergenceRound: z.ZodNumber; }, "strip", z.ZodTypeAny, { evaluationCriteria: string[]; selectionStrategy: string; optimizedAt: string; apeVersion: string; configUsed: { cacheEnabled: boolean; candidateCount: number; evaluationCriteria: ("task-completion" | "clarity" | "specificity" | "robustness" | "efficiency" | "context-awareness")[]; optimizationRounds: number; selectionStrategy: "highest-score" | "multi-criteria" | "ensemble" | "context-aware" | "balanced"; performanceTracking: boolean; maxOptimizationTime: number; qualityThreshold: number; diversityWeight: number; }; strategiesApplied: string[]; qualityImprovement: number; convergenceRound: number; }, { evaluationCriteria: string[]; selectionStrategy: string; optimizedAt: string; apeVersion: string; configUsed: { cacheEnabled: boolean; candidateCount: number; evaluationCriteria: ("task-completion" | "clarity" | "specificity" | "robustness" | "efficiency" | "context-awareness")[]; optimizationRounds: number; selectionStrategy: "highest-score" | "multi-criteria" | "ensemble" | "context-aware" | "balanced"; performanceTracking: boolean; maxOptimizationTime: number; qualityThreshold: number; diversityWeight: number; }; strategiesApplied: string[]; qualityImprovement: number; convergenceRound: number; }>; performanceMetrics: z.ZodObject<{ generationTime: z.ZodNumber; evaluationTime: z.ZodNumber; selectionTime: z.ZodNumber; totalTime: z.ZodNumber; candidatesGenerated: z.ZodNumber; candidatesEvaluated: z.ZodNumber; cacheHits: z.ZodNumber; cacheMisses: z.ZodNumber; memoryUsage: z.ZodNumber; successRate: z.ZodNumber; }, "strip", z.ZodTypeAny, { generationTime: number; cacheHits: number; cacheMisses: number; candidatesEvaluated: number; evaluationTime: number; selectionTime: number; totalTime: number; candidatesGenerated: number; memoryUsage: number; successRate: number; }, { generationTime: number; cacheHits: number; cacheMisses: number; candidatesEvaluated: number; evaluationTime: number; selectionTime: number; totalTime: number; candidatesGenerated: number; memoryUsage: number; successRate: number; }>; }, "strip", z.ZodTypeAny, { metadata: { evaluationCriteria: string[]; selectionStrategy: string; optimizedAt: string; apeVersion: string; configUsed: { cacheEnabled: boolean; candidateCount: number; evaluationCriteria: ("task-completion" | "clarity" | "specificity" | "robustness" | "efficiency" | "context-awareness")[]; optimizationRounds: number; selectionStrategy: "highest-score" | "multi-criteria" | "ensemble" | "context-aware" | "balanced"; performanceTracking: boolean; maxOptimizationTime: number; qualityThreshold: number; diversityWeight: number; }; strategiesApplied: string[]; qualityImprovement: number; convergenceRound: number; }; cacheKey: string; optimizationRounds: number; optimizedPrompt: { prompt: string; instructions: string; context?: any; }; originalPrompt: { prompt: string; instructions: string; context?: any; }; improvementScore: number; candidatesEvaluated: number; totalOptimizationTime: number; performanceMetrics: { generationTime: number; cacheHits: number; cacheMisses: number; candidatesEvaluated: number; evaluationTime: number; selectionTime: number; totalTime: number; candidatesGenerated: number; memoryUsage: number; successRate: number; }; }, { metadata: { evaluationCriteria: string[]; selectionStrategy: string; optimizedAt: string; apeVersion: string; configUsed: { cacheEnabled: boolean; candidateCount: number; evaluationCriteria: ("task-completion" | "clarity" | "specificity" | "robustness" | "efficiency" | "context-awareness")[]; optimizationRounds: number; selectionStrategy: "highest-score" | "multi-criteria" | "ensemble" | "context-aware" | "balanced"; performanceTracking: boolean; maxOptimizationTime: number; qualityThreshold: number; diversityWeight: number; }; strategiesApplied: string[]; qualityImprovement: number; convergenceRound: number; }; cacheKey: string; optimizationRounds: number; optimizedPrompt: { prompt: string; instructions: string; context?: any; }; originalPrompt: { prompt: string; instructions: string; context?: any; }; improvementScore: number; candidatesEvaluated: number; totalOptimizationTime: number; performanceMetrics: { generationTime: number; cacheHits: number; cacheMisses: number; candidatesEvaluated: number; evaluationTime: number; selectionTime: number; totalTime: number; candidatesGenerated: number; memoryUsage: number; successRate: number; }; }>; //# sourceMappingURL=ape-framework.d.ts.map