UNPKG

@boundless-oss/atlas

Version:

Atlas - MCP Server for comprehensive startup project management

271 lines (243 loc) 5.73 kB
export interface CodeMetrics { complexity: ComplexityMetrics; maintainability: MaintainabilityMetrics; duplication: DuplicationMetrics; quality: QualityMetrics; } export interface ComplexityMetrics { cyclomatic: number; cognitive: number; halstead: { difficulty: number; volume: number; effort: number; }; functions: FunctionComplexity[]; average: number; max: number; total: number; } export interface FunctionComplexity { name: string; complexity: number; lines: number; parameters: number; location: CodeLocation; } export interface MaintainabilityMetrics { index: number; // 0-100 rating: 'A' | 'B' | 'C' | 'D' | 'F'; factors: { complexity: number; lineCount: number; commentRatio: number; testCoverage?: number; }; average: number; min: number; distribution: Record<string, number>; } export interface DuplicationMetrics { percentage: number; duplicateBlocks: DuplicateBlock[]; totalLines: number; duplicatedLines: number; blocks: number; } export interface DuplicateBlock { locations: CodeLocation[]; lines: number; tokens: number; hash: string; } export interface QualityMetrics { issues: { total: number; high: number; medium: number; low: number; }; codeSmells: number; technicalDebt: number; score: number; // 0-100 grade: 'A' | 'B' | 'C' | 'D' | 'F'; trends?: QualityTrend; } export interface CodeIssue { type: 'error' | 'warning' | 'info' | 'style'; severity: 'critical' | 'high' | 'medium' | 'low'; rule: string; message: string; location: CodeLocation; fixable: boolean; category: IssueCategory; suggestion?: string; } export type IssueCategory = | 'security' | 'performance' | 'maintainability' | 'reliability' | 'style' | 'complexity' | 'duplication'; export interface CodeLocation { file: string; line: number; column: number; endLine?: number; endColumn?: number; } export interface CodeReview { id: string; fileHash?: string; fileName?: string; file: string; timestamp: string; findings: Finding[]; suggestions: Suggestion[]; metrics?: CodeMetrics; overallScore?: number; approved?: boolean; score: number; summary: string; comparison?: any; } export interface Finding { type: 'bug' | 'improvement' | 'style'; severity: 'critical' | 'high' | 'medium' | 'low'; title: string; description: string; location: CodeLocation; suggestedFix?: string; } export interface Suggestion { title: string; description: string; priority?: 'high' | 'medium' | 'low'; type?: string; } export interface ReviewFinding { type: 'bug' | 'vulnerability' | 'code-smell' | 'performance' | 'style'; severity: 'critical' | 'high' | 'medium' | 'low'; title: string; description: string; location: CodeLocation; suggestedFix?: string; references?: string[]; } export interface ReviewSuggestion { category: 'refactoring' | 'optimization' | 'simplification' | 'documentation'; title: string; description: string; impact: 'high' | 'medium' | 'low'; effort: 'high' | 'medium' | 'low'; location?: CodeLocation; example?: string; } export interface Trend { metric: string; direction: 'improving' | 'stable' | 'degrading'; change: number; percentage: number; } export interface MetricsTrend { metric: string; values: TimeSeriesData[]; trend: 'improving' | 'stable' | 'degrading'; changePercentage: number; } export interface TimeSeriesData { timestamp: string; value: number; label?: string; } export interface QualityTrend { period: string; // e.g., "last-30-days" complexityTrend: 'increasing' | 'stable' | 'decreasing'; maintainabilityTrend: 'improving' | 'stable' | 'degrading'; issuesTrend: 'increasing' | 'stable' | 'decreasing'; coverageTrend?: 'increasing' | 'stable' | 'decreasing'; } export interface AnalysisOptions { files?: string[]; directories?: string[]; includeHistory?: boolean; compareWithBaseline?: boolean; maxIssues?: number; excludePatterns?: string[]; customRules?: CustomRule[]; } export interface CustomRule { name: string; description: string; pattern: string; severity: 'error' | 'warning' | 'info'; category: IssueCategory; message: string; } export interface AnalysisResult { id: string; timestamp: string; files: FileAnalysis[]; summary: AnalysisSummary; trends?: MetricsTrend[]; recommendations: string[]; } export interface FileAnalysis { path: string; metrics: CodeMetrics; issues: CodeIssue[]; size: number; language: string; lastModified: string; } export interface AnalysisSummary { totalFiles: number; totalLines: number; averageComplexity: number; averageMaintainability: number; totalIssues: number; criticalIssues: number; duplicatePercentage: number; overallScore: number; overallGrade: 'A' | 'B' | 'C' | 'D' | 'F'; } export interface BaselineComparison { current: AnalysisSummary; baseline: AnalysisSummary; improvements: string[]; regressions: string[]; unchanged: string[]; } export interface ReviewOptions { file?: string; content?: string; language?: string; compareWith?: string; includeHistory?: boolean; securityScan?: boolean; performanceScan?: boolean; styleScan?: boolean; } export interface TrackingOptions { projectId?: string; branch?: string; commit?: string; tags?: string[]; } export interface MetricsHistory { projectId: string; entries: HistoryEntry[]; baseline?: HistoryEntry; trends: Trend[]; } export interface HistoryEntry { id?: string; timestamp: string; commit?: string; branch?: string; metrics: CodeMetrics; summary?: AnalysisSummary; tags?: string[]; }