mcp-adr-analysis-server
Version:
MCP server for analyzing Architectural Decision Records and project architecture
566 lines • 19.3 kB
TypeScript
/**
* 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