@stackguide/mcp-server 2.4.0 → 3.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (42) hide show
  1. package/README.md +82 -16
  2. package/dist/config/healthWeights.d.ts +87 -0
  3. package/dist/config/healthWeights.d.ts.map +1 -0
  4. package/dist/config/healthWeights.js +238 -0
  5. package/dist/config/healthWeights.js.map +1 -0
  6. package/dist/config/types.d.ts +150 -0
  7. package/dist/config/types.d.ts.map +1 -1
  8. package/dist/config/types.js.map +1 -1
  9. package/dist/handlers/generate.d.ts +6 -0
  10. package/dist/handlers/generate.d.ts.map +1 -1
  11. package/dist/handlers/generate.js +81 -5
  12. package/dist/handlers/generate.js.map +1 -1
  13. package/dist/handlers/health.d.ts +7 -0
  14. package/dist/handlers/health.d.ts.map +1 -1
  15. package/dist/handlers/health.js +151 -69
  16. package/dist/handlers/health.js.map +1 -1
  17. package/dist/handlers/review.d.ts +12 -0
  18. package/dist/handlers/review.d.ts.map +1 -1
  19. package/dist/handlers/review.js +220 -21
  20. package/dist/handlers/review.js.map +1 -1
  21. package/dist/services/analysisCache.d.ts +110 -0
  22. package/dist/services/analysisCache.d.ts.map +1 -0
  23. package/dist/services/analysisCache.js +233 -0
  24. package/dist/services/analysisCache.js.map +1 -0
  25. package/dist/services/astAnalyzer.d.ts +21 -0
  26. package/dist/services/astAnalyzer.d.ts.map +1 -0
  27. package/dist/services/astAnalyzer.js +593 -0
  28. package/dist/services/astAnalyzer.js.map +1 -0
  29. package/dist/services/codeAnalyzer.d.ts +109 -30
  30. package/dist/services/codeAnalyzer.d.ts.map +1 -1
  31. package/dist/services/codeAnalyzer.js +519 -36
  32. package/dist/services/codeAnalyzer.js.map +1 -1
  33. package/dist/services/conventionDetector.d.ts +40 -0
  34. package/dist/services/conventionDetector.d.ts.map +1 -0
  35. package/dist/services/conventionDetector.js +465 -0
  36. package/dist/services/conventionDetector.js.map +1 -0
  37. package/dist/services/cursorDirectory.d.ts +29 -2
  38. package/dist/services/cursorDirectory.d.ts.map +1 -1
  39. package/dist/services/cursorDirectory.js +260 -9
  40. package/dist/services/cursorDirectory.js.map +1 -1
  41. package/dist/utils/validation.d.ts +2 -2
  42. package/package.json +2 -1
@@ -1,37 +1,110 @@
1
1
  /**
2
- * Code Analyzer Service
3
- * Analyzes code against rules and patterns to find issues
2
+ * Code Analyzer Service - v3.1.0
3
+ * Unified rule pipeline that supports builtin, user, and project rules
4
+ * Now with AST-based analysis using ts-morph
4
5
  */
5
- export interface QuickFix {
6
- description: string;
7
- before: string;
8
- after: string;
9
- isRegex?: boolean;
10
- }
11
- export interface CodeIssue {
12
- severity: 'error' | 'warning' | 'info' | 'suggestion';
13
- rule: string;
14
- category: string;
15
- message: string;
16
- line?: number;
17
- column?: number;
18
- code?: string;
19
- suggestion?: string;
20
- quickFix?: QuickFix;
21
- }
22
- export interface AnalysisResult {
23
- file: string;
24
- language: string;
25
- issues: CodeIssue[];
26
- score: number;
27
- summary: {
28
- errors: number;
29
- warnings: number;
30
- info: number;
31
- suggestions: number;
6
+ import { PatternRule, ASTRule, CodeIssue, AnalysisResult, QuickFix } from '../config/types.js';
7
+ import { clearASTCache } from './astAnalyzer.js';
8
+ export type { QuickFix, CodeIssue, AnalysisResult };
9
+ export { clearASTCache };
10
+ /**
11
+ * In-memory registry of all active rules (Pattern + AST)
12
+ */
13
+ declare class RuleRegistry {
14
+ private builtinPatternRules;
15
+ private builtinASTRules;
16
+ private userPatternRules;
17
+ private userASTRules;
18
+ private projectPatternRules;
19
+ private projectASTRules;
20
+ private get builtinRules();
21
+ private get userRules();
22
+ private set userRules(value);
23
+ private get projectRules();
24
+ private set projectRules(value);
25
+ /**
26
+ * Get all builtin pattern rules
27
+ */
28
+ getBuiltinRules(): PatternRule[];
29
+ /**
30
+ * Get all builtin AST rules
31
+ */
32
+ getBuiltinASTRules(): ASTRule[];
33
+ /**
34
+ * Get all user-defined pattern rules
35
+ */
36
+ getUserRules(): PatternRule[];
37
+ /**
38
+ * Get all user-defined AST rules
39
+ */
40
+ getUserASTRules(): ASTRule[];
41
+ /**
42
+ * Get all project-specific pattern rules
43
+ */
44
+ getProjectRules(): PatternRule[];
45
+ /**
46
+ * Get all project-specific AST rules
47
+ */
48
+ getProjectASTRules(): ASTRule[];
49
+ /**
50
+ * Get all active pattern rules, sorted by priority (highest first)
51
+ */
52
+ getAllRules(): PatternRule[];
53
+ /**
54
+ * Get all active AST rules, sorted by priority (highest first)
55
+ */
56
+ getAllASTRules(): ASTRule[];
57
+ /**
58
+ * Register a user-defined pattern rule
59
+ */
60
+ registerUserRule(rule: Omit<PatternRule, 'source' | 'type'>): void;
61
+ /**
62
+ * Register a project-specific pattern rule
63
+ */
64
+ registerProjectRule(rule: Omit<PatternRule, 'source' | 'type'>): void;
65
+ /**
66
+ * Register multiple project rules at once
67
+ */
68
+ registerProjectRules(rules: Array<Omit<PatternRule, 'source' | 'type'>>): void;
69
+ /**
70
+ * Register a user-defined AST rule
71
+ */
72
+ registerUserASTRule(rule: Omit<ASTRule, 'source' | 'type'>): void;
73
+ /**
74
+ * Register a project-specific AST rule
75
+ */
76
+ registerProjectASTRule(rule: Omit<ASTRule, 'source' | 'type'>): void;
77
+ /**
78
+ * Clear all user rules (pattern + AST)
79
+ */
80
+ clearUserRules(): void;
81
+ /**
82
+ * Clear all project rules (pattern + AST)
83
+ */
84
+ clearProjectRules(): void;
85
+ /**
86
+ * Disable a builtin rule by ID (pattern or AST)
87
+ */
88
+ disableBuiltinRule(ruleId: string): boolean;
89
+ /**
90
+ * Enable a builtin rule by ID (pattern or AST)
91
+ */
92
+ enableBuiltinRule(ruleId: string): boolean;
93
+ /**
94
+ * Get statistics about registered rules
95
+ */
96
+ getStats(): {
97
+ builtin: number;
98
+ user: number;
99
+ project: number;
100
+ total: number;
101
+ ast: number;
32
102
  };
33
- quickFixes?: QuickFix[];
34
103
  }
104
+ export declare const ruleRegistry: RuleRegistry;
105
+ /**
106
+ * Analyze code using the unified rule pipeline
107
+ */
35
108
  export declare function analyzeCode(file: string, content: string, focus?: 'all' | 'security' | 'performance' | 'architecture' | 'coding-standards'): AnalysisResult;
36
109
  export declare function analyzeMultipleFiles(files: Array<{
37
110
  path: string;
@@ -43,7 +116,13 @@ export declare function analyzeMultipleFiles(files: Array<{
43
116
  totalIssues: number;
44
117
  averageScore: number;
45
118
  summary: AnalysisResult['summary'];
119
+ rulesApplied: AnalysisResult['rulesApplied'];
46
120
  };
47
121
  };
48
122
  export declare function formatAnalysisReport(result: AnalysisResult): string;
123
+ /**
124
+ * Parse a user-defined rule content to extract pattern rules
125
+ * This bridges the gap between RuleManager's documentation rules and analysis rules
126
+ */
127
+ export declare function parseUserRuleToPatternRule(ruleId: string, content: string, category: string): PatternRule | null;
49
128
  //# sourceMappingURL=codeAnalyzer.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"codeAnalyzer.d.ts","sourceRoot":"","sources":["../../src/services/codeAnalyzer.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAIH,MAAM,WAAW,QAAQ;IACvB,WAAW,EAAE,MAAM,CAAC;IACpB,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,CAAC,EAAE,OAAO,CAAC;CACnB;AAED,MAAM,WAAW,SAAS;IACxB,QAAQ,EAAE,OAAO,GAAG,SAAS,GAAG,MAAM,GAAG,YAAY,CAAC;IACtD,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE,MAAM,CAAC;IACjB,OAAO,EAAE,MAAM,CAAC;IAChB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,EAAE,QAAQ,CAAC;CACrB;AAED,MAAM,WAAW,cAAc;IAC7B,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE,MAAM,CAAC;IACjB,MAAM,EAAE,SAAS,EAAE,CAAC;IACpB,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,EAAE;QACP,MAAM,EAAE,MAAM,CAAC;QACf,QAAQ,EAAE,MAAM,CAAC;QACjB,IAAI,EAAE,MAAM,CAAC;QACb,WAAW,EAAE,MAAM,CAAC;KACrB,CAAC;IACF,UAAU,CAAC,EAAE,QAAQ,EAAE,CAAC;CACzB;AAqYD,wBAAgB,WAAW,CACzB,IAAI,EAAE,MAAM,EACZ,OAAO,EAAE,MAAM,EACf,KAAK,GAAE,KAAK,GAAG,UAAU,GAAG,aAAa,GAAG,cAAc,GAAG,kBAA0B,GACtF,cAAc,CAoFhB;AAED,wBAAgB,oBAAoB,CAClC,KAAK,EAAE,KAAK,CAAC;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,MAAM,CAAA;CAAE,CAAC,EAC/C,KAAK,GAAE,KAAK,GAAG,UAAU,GAAG,aAAa,GAAG,cAAc,GAAG,kBAA0B,GACtF;IACD,KAAK,EAAE,cAAc,EAAE,CAAC;IACxB,OAAO,EAAE;QACP,UAAU,EAAE,MAAM,CAAC;QACnB,WAAW,EAAE,MAAM,CAAC;QACpB,YAAY,EAAE,MAAM,CAAC;QACrB,OAAO,EAAE,cAAc,CAAC,SAAS,CAAC,CAAC;KACpC,CAAC;CACH,CAwBA;AAED,wBAAgB,oBAAoB,CAAC,MAAM,EAAE,cAAc,GAAG,MAAM,CAgDnE"}
1
+ {"version":3,"file":"codeAnalyzer.d.ts","sourceRoot":"","sources":["../../src/services/codeAnalyzer.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAGH,OAAO,EACL,WAAW,EACX,OAAO,EACP,SAAS,EACT,cAAc,EACd,QAAQ,EAGT,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EAAqC,aAAa,EAAE,MAAM,kBAAkB,CAAC;AAGpF,YAAY,EAAE,QAAQ,EAAE,SAAS,EAAE,cAAc,EAAE,CAAC;AAGpD,OAAO,EAAE,aAAa,EAAE,CAAC;AAifzB;;GAEG;AACH,cAAM,YAAY;IAChB,OAAO,CAAC,mBAAmB,CAA6C;IACxE,OAAO,CAAC,eAAe,CAAqC;IAC5D,OAAO,CAAC,gBAAgB,CAAqB;IAC7C,OAAO,CAAC,YAAY,CAAiB;IACrC,OAAO,CAAC,mBAAmB,CAAqB;IAChD,OAAO,CAAC,eAAe,CAAiB;IAGxC,OAAO,KAAK,YAAY,GAEvB;IACD,OAAO,KAAK,SAAS,GAEpB;IACD,OAAO,KAAK,SAAS,QAEpB;IACD,OAAO,KAAK,YAAY,GAEvB;IACD,OAAO,KAAK,YAAY,QAEvB;IAED;;OAEG;IACH,eAAe,IAAI,WAAW,EAAE;IAIhC;;OAEG;IACH,kBAAkB,IAAI,OAAO,EAAE;IAI/B;;OAEG;IACH,YAAY,IAAI,WAAW,EAAE;IAI7B;;OAEG;IACH,eAAe,IAAI,OAAO,EAAE;IAI5B;;OAEG;IACH,eAAe,IAAI,WAAW,EAAE;IAIhC;;OAEG;IACH,kBAAkB,IAAI,OAAO,EAAE;IAI/B;;OAEG;IACH,WAAW,IAAI,WAAW,EAAE;IAW5B;;OAEG;IACH,cAAc,IAAI,OAAO,EAAE;IAU3B;;OAEG;IACH,gBAAgB,CAAC,IAAI,EAAE,IAAI,CAAC,WAAW,EAAE,QAAQ,GAAG,MAAM,CAAC,GAAG,IAAI;IAclE;;OAEG;IACH,mBAAmB,CAAC,IAAI,EAAE,IAAI,CAAC,WAAW,EAAE,QAAQ,GAAG,MAAM,CAAC,GAAG,IAAI;IAcrE;;OAEG;IACH,oBAAoB,CAAC,KAAK,EAAE,KAAK,CAAC,IAAI,CAAC,WAAW,EAAE,QAAQ,GAAG,MAAM,CAAC,CAAC,GAAG,IAAI;IAM9E;;OAEG;IACH,mBAAmB,CAAC,IAAI,EAAE,IAAI,CAAC,OAAO,EAAE,QAAQ,GAAG,MAAM,CAAC,GAAG,IAAI;IAajE;;OAEG;IACH,sBAAsB,CAAC,IAAI,EAAE,IAAI,CAAC,OAAO,EAAE,QAAQ,GAAG,MAAM,CAAC,GAAG,IAAI;IAapE;;OAEG;IACH,cAAc,IAAI,IAAI;IAMtB;;OAEG;IACH,iBAAiB,IAAI,IAAI;IAMzB;;OAEG;IACH,kBAAkB,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO;IAoB3C;;OAEG;IACH,iBAAiB,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO;IAoB1C;;OAEG;IACH,QAAQ,IAAI;QAAE,OAAO,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAC;QAAC,GAAG,EAAE,MAAM,CAAA;KAAE;CAe3F;AAGD,eAAO,MAAM,YAAY,cAAqB,CAAC;AA8B/C;;GAEG;AACH,wBAAgB,WAAW,CACzB,IAAI,EAAE,MAAM,EACZ,OAAO,EAAE,MAAM,EACf,KAAK,GAAE,KAAK,GAAG,UAAU,GAAG,aAAa,GAAG,cAAc,GAAG,kBAA0B,GACtF,cAAc,CAiJhB;AAED,wBAAgB,oBAAoB,CAClC,KAAK,EAAE,KAAK,CAAC;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,MAAM,CAAA;CAAE,CAAC,EAC/C,KAAK,GAAE,KAAK,GAAG,UAAU,GAAG,aAAa,GAAG,cAAc,GAAG,kBAA0B,GACtF;IACD,KAAK,EAAE,cAAc,EAAE,CAAC;IACxB,OAAO,EAAE;QACP,UAAU,EAAE,MAAM,CAAC;QACnB,WAAW,EAAE,MAAM,CAAC;QACpB,YAAY,EAAE,MAAM,CAAC;QACrB,OAAO,EAAE,cAAc,CAAC,SAAS,CAAC,CAAC;QACnC,YAAY,EAAE,cAAc,CAAC,cAAc,CAAC,CAAC;KAC9C,CAAC;CACH,CA+BA;AAED,wBAAgB,oBAAoB,CAAC,MAAM,EAAE,cAAc,GAAG,MAAM,CAmDnE;AAMD;;;GAGG;AACH,wBAAgB,0BAA0B,CACxC,MAAM,EAAE,MAAM,EACd,OAAO,EAAE,MAAM,EACf,QAAQ,EAAE,MAAM,GACf,WAAW,GAAG,IAAI,CA6CpB"}