@entro314labs/ai-changelog-generator
Version:
AI-powered changelog generator with MCP server support - works with most providers, online and local models
242 lines (241 loc) • 7.04 kB
TypeScript
interface ChangeAnalysisSummary {
summary: string;
category: string;
impact: string;
userFacing: boolean;
[key: string]: any;
}
export declare class AnalysisEngine {
[key: string]: any;
constructor(gitService: any, aiAnalysisService: any, gitManager?: any);
_ensureGitAnalyzer(): Promise<any>;
analyze(type: any, config?: Record<string, any>): Promise<any>;
analyzeCurrentChanges(config?: Record<string, any>): Promise<{
changes: never[];
analysis: null;
summary?: undefined;
error?: undefined;
} | {
changes: any[];
analysis: ChangeAnalysisSummary | Record<string, any> | null;
summary: {
primaryChanges: string[];
impactLevel: string;
technicalScope: string;
businessRelevance: string;
frameworks: string[];
patterns: string[];
recommendations: string[];
riskFactors: string[];
};
error?: undefined;
} | {
summary?: undefined;
changes: any[];
analysis: {
summary: string;
category: string;
impact: string;
userFacing: boolean;
} | null;
error: any;
}>;
analyzeRecentCommits(limit?: number, config?: Record<string, any>): Promise<{
summary?: undefined;
commits: never[];
analysis: null;
error?: undefined;
} | {
commits: any[];
analysis: {
totalCommits: any;
commitTypes: Record<string, number>;
totalFiles: number;
totalLines: number;
breakingChanges: number;
highRiskCommits: number;
riskLevel: string;
complexity: string;
trends: {
dominantCategory: string;
frequency: number;
pattern: string;
};
};
summary: string;
error?: undefined;
} | {
summary?: undefined;
commits: never[];
analysis: null;
error: any;
}>;
enhanceCommitAnalysis(commitAnalysis: any): any;
analyzeChangesRuleBased(changes: any): {
categories: Record<string, any[]>;
complexity: string;
risk: string;
totalFiles: any;
primaryCategory: string;
impact: string;
userFacing: any;
};
categorizeChanges(changes: any): Record<string, any[]>;
assessOverallChangeComplexity(changes: any): "high" | "low" | "medium";
assessOverallChangeRisk(changes: any): "high" | "low" | "medium";
assessChangeImpact(changes: any): "high" | "low" | "medium";
hasUserFacingChanges(changes: any): any;
generateOverallCommitAnalysis(commits: any): {
totalCommits: any;
commitTypes: Record<string, number>;
totalFiles: number;
totalLines: number;
breakingChanges: number;
highRiskCommits: number;
riskLevel: string;
complexity: string;
trends: {
dominantCategory: string;
frequency: number;
pattern: string;
};
};
calculateOverallRisk(commits: any): "high" | "low" | "medium";
calculateOverallComplexity(commits: any): "high" | "low" | "medium";
analyzeTrends(commits: any): {
dominantCategory: string;
frequency: number;
pattern: string;
};
identifyPattern(categories: any): "diverse" | "focused" | "mixed";
combineAnalyses(aiAnalysis: any, ruleBasedAnalysis: any): any;
generateCommitsSummary(_commits: any, analysis: any): string;
analyzeBranches(config: any): Promise<any>;
analyzeComprehensive(config: any): Promise<any>;
assessRepositoryHealth(config: any): Promise<any>;
analyzeCommitPatterns(commits: any): {
patterns: never[];
compliance: number;
suggestions: string[];
conventionalCommits?: undefined;
semanticCommits?: undefined;
totalCommits?: undefined;
} | {
patterns: string[];
compliance: number;
conventionalCommits: number;
semanticCommits: number;
totalCommits: any;
suggestions: string[];
};
detectChangeTypes(changes: any): {
types: never[];
confidence: string;
details: string;
totalChanges?: undefined;
} | {
types: any[];
confidence: string;
totalChanges: any;
details: string;
};
assessCodeQuality(files: any): {
score: number;
issues: any[];
recommendations: any[];
filesAnalyzed: any;
} | {
filesAnalyzed?: undefined;
score: number;
issues: string[];
recommendations: string[];
};
identifyDependencies(changes: any): {
added: Array<{
name: string;
version: string;
file: string;
}>;
removed: Array<{
name: string;
version: string;
file: string;
}>;
updated: Array<{
name: string;
version: string;
file: string;
}>;
details: string[];
};
evaluatePerformanceImpact(changes: any): {
impact: string;
metrics: Record<string, number | string>;
concerns: string[];
improvements: string[];
} | {
impact: string;
metrics: {
error: any;
};
concerns: never[];
improvements: never[];
};
checkSecurityImplications(changes: any): {
issues: string[];
score: 'safe' | 'caution' | 'warning' | 'critical';
warnings: string[];
recommendations: string[];
} | {
issues: string[];
score: string;
warnings: never[];
recommendations: never[];
};
analyzeDocumentationChanges(changes: any): {
coverage: string;
changes: Array<{
file: string;
type: string;
status: string;
}>;
statistics: Record<string, number | string>;
recommendations: string[];
} | {
coverage: string;
changes: never[];
statistics: {
error: any;
};
recommendations: never[];
};
assessTestCoverage(changes: any): {
coverage: number;
missing: string[];
statistics: Record<string, number | string>;
recommendations: string[];
} | {
coverage: number;
missing: never[];
statistics: {
error: any;
};
recommendations: never[];
};
evaluateArchitecturalChanges(changes: any): {
impact: string;
changes: Array<{
file: string;
pattern: string;
type: string;
}>;
patterns: string[];
recommendations: string[];
};
getMetrics(): {
analysisCount: number;
averageTime: number;
successRate: number;
};
}
export {};