@versatil/sdlc-framework
Version:
🚀 AI-Native SDLC framework with 11-MCP ecosystem, RAG memory, OPERA orchestration, and 6 specialized agents achieving ZERO CONTEXT LOSS. Features complete CI/CD pipeline with 7 GitHub workflows (MCP testing, security scanning, performance benchmarking),
152 lines (151 loc) • 4.34 kB
TypeScript
/**
* VERSATIL SDLC Framework - Usage Analytics & User Behavior Tracking
*
* Collects real-time usage data from Enhanced OPERA agents to enable
* continuous learning and improvement based on actual user interactions.
*/
import { EventEmitter } from 'events';
export interface AgentUsageEvent {
id: string;
timestamp: number;
agentId: string;
eventType: 'activated' | 'suggestion_shown' | 'suggestion_accepted' | 'suggestion_dismissed' | 'issue_reported' | 'false_positive';
context: {
filePath?: string;
fileExtension?: string;
projectType?: string;
codebase?: {
size: 'small' | 'medium' | 'large';
language: string;
framework?: string;
};
user?: {
role?: 'junior' | 'mid' | 'senior' | 'lead';
experience?: number;
preferences?: Record<string, any>;
};
};
data: {
issuesDetected?: number;
suggestionsProvided?: number;
executionTime?: number;
qualityScore?: number;
userFeedback?: {
helpful: boolean;
accurate: boolean;
rating: number;
comments?: string;
};
};
}
export interface UsagePattern {
id: string;
agentId: string;
pattern: {
fileTypes: string[];
projectTypes: string[];
userTypes: string[];
timePatterns: string[];
};
metrics: {
frequency: number;
successRate: number;
userSatisfaction: number;
averageExecutionTime: number;
};
insights: {
mostEffectiveContext: string;
commonUserFeedback: string[];
improvementAreas: string[];
};
}
export declare class UsageAnalytics extends EventEmitter {
private logger;
private events;
private patterns;
private isTracking;
private analysisInterval;
constructor();
/**
* Start usage tracking
*/
startTracking(): void;
/**
* Stop usage tracking
*/
stopTracking(): void;
/**
* Track agent usage event
*/
trackEvent(event: AgentUsageEvent): void;
/**
* Track agent activation with context
*/
trackAgentActivation(agentId: string, filePath?: string, context?: Record<string, any>): string;
/**
* Track suggestion interaction
*/
trackSuggestion(agentId: string, suggestionType: string, wasAccepted: boolean, userFeedback?: {
helpful: boolean;
accurate: boolean;
rating: number;
comments?: string;
}): void;
/**
* Track agent performance
*/
trackPerformance(agentId: string, executionTime: number, issuesDetected: number, qualityScore: number): void;
/**
* Track false positive reports
*/
trackFalsePositive(agentId: string, issueType: string, filePath?: string, userComments?: string): void;
/**
* Analyze usage patterns to discover insights
*/
private analyzeUsagePatterns;
/**
* Generate usage pattern from events
*/
private generateUsagePattern;
/**
* Convert usage event to adaptive learning interaction
*/
private convertToLearningInteraction;
/**
* Get usage analytics dashboard data
*/
getAnalyticsDashboard(): {
totalEvents: number;
agentUsage: Array<{
agentId: string;
activations: number;
successRate: number;
}>;
topFileTypes: Array<{
fileType: string;
usage: number;
}>;
userSatisfaction: number;
commonIssues: string[];
improvementOpportunities: string[];
};
private extractFileExtension;
private detectProjectType;
private analyzeCodebase;
private extractUserInfo;
private extractUniqueValues;
private getNestedValue;
private calculateAverage;
private extractTimePatterns;
private findMostEffectiveContext;
private extractCommonFeedback;
private identifyImprovementAreas;
private generateImprovementInsights;
private getCommonIssues;
private getImprovementOpportunities;
private buildEventContext;
private buildSimpleContext;
private buildInteractionContext;
}
export declare const usageAnalytics: UsageAnalytics;
export default usageAnalytics;