/** * Pattern Promotion Manager * ADR-023: Quality Feedback Loop System * * Manages pattern lifecycle through promotion and demotion tiers. */ import type { PatternTier, PromotionCriteria, PatternPromotionEvent, PatternDemotionEvent, FeedbackConfig } from './types.js'; import type { RealQEReasoningBank } from '../learning/real-qe-reasoning-bank.js'; import type { QEPattern } from '../learning/qe-patterns.js'; /** * Pattern metrics for promotion evaluation */ export interface PatternMetrics { patternId: string; successCount: number; failureCount: number; successRate: number; qualityScore: number; ageDays: number; recentSuccessRate: number; recentFailureCount: number; } /** * Manages pattern promotion and demotion */ export declare class PatternPromotionManager { private criteria; private promotionHistory; private demotionHistory; private reasoningBank; private config; constructor(config?: Partial); /** * Connect to ReasoningBank */ connectReasoningBank(bank: RealQEReasoningBank): void; /** * Evaluate if a pattern should be promoted */ evaluatePromotion(pattern: QEPattern, metrics: PatternMetrics): PatternPromotionEvent | null; /** * Evaluate if a pattern should be demoted */ evaluateDemotion(pattern: QEPattern, metrics: PatternMetrics): PatternDemotionEvent | null; /** * Process promotion or demotion */ processPatternChange(pattern: QEPattern, metrics: PatternMetrics): Promise<{ action: 'promoted' | 'demoted' | 'unchanged'; event?: PatternPromotionEvent | PatternDemotionEvent; }>; /** * Check if metrics meet promotion criteria */ private meetsPromotionCriteria; /** * Get next tier for promotion */ private getNextTier; /** * Get previous tier for demotion */ private getPreviousTier; /** * Generate promotion reason */ private generatePromotionReason; /** * Generate demotion reason */ private generateDemotionReason; /** * Update promotion criteria */ updateCriteria(tier: PatternTier, criteria: Partial): void; /** * Get promotion criteria for a tier */ getCriteria(tier: PatternTier): PromotionCriteria; /** * Get all criteria */ getAllCriteria(): Record; /** * Get promotion history */ getPromotionHistory(limit?: number): PatternPromotionEvent[]; /** * Get demotion history */ getDemotionHistory(limit?: number): PatternDemotionEvent[]; /** * Get statistics */ getStats(): { totalPromotions: number; totalDemotions: number; promotionsByTier: Record; demotionsByTier: Record; recentPromotions: number; recentDemotions: number; }; /** * Export history for persistence */ exportHistory(): { promotions: PatternPromotionEvent[]; demotions: PatternDemotionEvent[]; }; /** * Import history from persistence */ importHistory(history: { promotions?: PatternPromotionEvent[]; demotions?: PatternDemotionEvent[]; }): void; /** * Clear history */ clearHistory(): void; } /** * Create a new pattern promotion manager */ export declare function createPatternPromotionManager(config?: Partial): PatternPromotionManager; //# sourceMappingURL=pattern-promotion.d.ts.map