@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.
- package/README.md +82 -16
- package/dist/config/healthWeights.d.ts +87 -0
- package/dist/config/healthWeights.d.ts.map +1 -0
- package/dist/config/healthWeights.js +238 -0
- package/dist/config/healthWeights.js.map +1 -0
- package/dist/config/types.d.ts +150 -0
- package/dist/config/types.d.ts.map +1 -1
- package/dist/config/types.js.map +1 -1
- package/dist/handlers/generate.d.ts +6 -0
- package/dist/handlers/generate.d.ts.map +1 -1
- package/dist/handlers/generate.js +81 -5
- package/dist/handlers/generate.js.map +1 -1
- package/dist/handlers/health.d.ts +7 -0
- package/dist/handlers/health.d.ts.map +1 -1
- package/dist/handlers/health.js +151 -69
- package/dist/handlers/health.js.map +1 -1
- package/dist/handlers/review.d.ts +12 -0
- package/dist/handlers/review.d.ts.map +1 -1
- package/dist/handlers/review.js +220 -21
- package/dist/handlers/review.js.map +1 -1
- package/dist/services/analysisCache.d.ts +110 -0
- package/dist/services/analysisCache.d.ts.map +1 -0
- package/dist/services/analysisCache.js +233 -0
- package/dist/services/analysisCache.js.map +1 -0
- package/dist/services/astAnalyzer.d.ts +21 -0
- package/dist/services/astAnalyzer.d.ts.map +1 -0
- package/dist/services/astAnalyzer.js +593 -0
- package/dist/services/astAnalyzer.js.map +1 -0
- package/dist/services/codeAnalyzer.d.ts +109 -30
- package/dist/services/codeAnalyzer.d.ts.map +1 -1
- package/dist/services/codeAnalyzer.js +519 -36
- package/dist/services/codeAnalyzer.js.map +1 -1
- package/dist/services/conventionDetector.d.ts +40 -0
- package/dist/services/conventionDetector.d.ts.map +1 -0
- package/dist/services/conventionDetector.js +465 -0
- package/dist/services/conventionDetector.js.map +1 -0
- package/dist/services/cursorDirectory.d.ts +29 -2
- package/dist/services/cursorDirectory.d.ts.map +1 -1
- package/dist/services/cursorDirectory.js +260 -9
- package/dist/services/cursorDirectory.js.map +1 -1
- package/dist/utils/validation.d.ts +2 -2
- package/package.json +2 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"generate.d.ts","sourceRoot":"","sources":["../../src/handlers/generate.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"generate.d.ts","sourceRoot":"","sources":["../../src/handlers/generate.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,EAAE,WAAW,EAAE,YAAY,EAA8B,MAAM,YAAY,CAAC;AAInF,UAAU,YAAY;IACpB,IAAI,EAAE,WAAW,GAAG,MAAM,GAAG,SAAS,GAAG,MAAM,GAAG,KAAK,GAAG,OAAO,GAAG,MAAM,CAAC;IAC3E,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,CAAC,EAAE;QACR,UAAU,CAAC,EAAE,OAAO,CAAC;QACrB,SAAS,CAAC,EAAE,OAAO,CAAC;QACpB,UAAU,CAAC,EAAE,OAAO,CAAC;QACrB,SAAS,CAAC,EAAE,MAAM,CAAC;QACnB,WAAW,CAAC,EAAE,OAAO,CAAC;KACvB,CAAC;CACH;AA8xBD,wBAAsB,cAAc,CAClC,IAAI,EAAE,YAAY,EAClB,KAAK,EAAE,WAAW,GACjB,OAAO,CAAC,YAAY,CAAC,CA0EvB"}
|
|
@@ -1,9 +1,61 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* Generate handler - Generate boilerplate code from templates
|
|
3
3
|
* Phase 6: Advanced Features
|
|
4
|
+
*
|
|
5
|
+
* Improvements:
|
|
6
|
+
* - Detects project conventions (quotes, semicolons, indentation)
|
|
7
|
+
* - Adapts templates based on state management in use
|
|
8
|
+
* - Respects existing code patterns
|
|
4
9
|
*/
|
|
5
10
|
import { jsonResponse } from './types.js';
|
|
6
11
|
import { logger } from '../utils/logger.js';
|
|
12
|
+
import { detectConventions } from '../services/conventionDetector.js';
|
|
13
|
+
// Cached conventions
|
|
14
|
+
let cachedConventions = null;
|
|
15
|
+
let cachedProjectPath = null;
|
|
16
|
+
/**
|
|
17
|
+
* Get conventions for current project (with caching)
|
|
18
|
+
*/
|
|
19
|
+
function getProjectConventions() {
|
|
20
|
+
const projectPath = process.cwd();
|
|
21
|
+
if (cachedConventions && cachedProjectPath === projectPath) {
|
|
22
|
+
return cachedConventions;
|
|
23
|
+
}
|
|
24
|
+
cachedConventions = detectConventions(projectPath);
|
|
25
|
+
cachedProjectPath = projectPath;
|
|
26
|
+
return cachedConventions;
|
|
27
|
+
}
|
|
28
|
+
/**
|
|
29
|
+
* Apply conventions to generated code
|
|
30
|
+
*/
|
|
31
|
+
function applyConventions(code, conventions) {
|
|
32
|
+
let result = code;
|
|
33
|
+
// Apply indentation
|
|
34
|
+
if (conventions.indentation === 'tabs') {
|
|
35
|
+
result = result.replace(/^( {2})/gm, '\t');
|
|
36
|
+
result = result.replace(/^( {4})/gm, '\t\t');
|
|
37
|
+
result = result.replace(/^( {6})/gm, '\t\t\t');
|
|
38
|
+
result = result.replace(/^( {8})/gm, '\t\t\t\t');
|
|
39
|
+
}
|
|
40
|
+
else if (conventions.indentSize !== 2) {
|
|
41
|
+
const spaces = ' '.repeat(conventions.indentSize);
|
|
42
|
+
result = result.replace(/^ /gm, spaces);
|
|
43
|
+
result = result.replace(/^ /gm, spaces + spaces);
|
|
44
|
+
result = result.replace(/^ /gm, spaces + spaces + spaces);
|
|
45
|
+
}
|
|
46
|
+
// Apply quote style (careful with JSX)
|
|
47
|
+
if (conventions.quotes === 'double') {
|
|
48
|
+
// Only change quotes outside of JSX attributes
|
|
49
|
+
result = result.replace(/(?<!=)'([^']*)'(?!>)/g, '"$1"');
|
|
50
|
+
}
|
|
51
|
+
// Apply semicolons
|
|
52
|
+
if (!conventions.semicolons) {
|
|
53
|
+
// Remove trailing semicolons (simple cases)
|
|
54
|
+
result = result.replace(/;(\s*\n)/g, '$1');
|
|
55
|
+
result = result.replace(/;(\s*$)/g, '$1');
|
|
56
|
+
}
|
|
57
|
+
return result;
|
|
58
|
+
}
|
|
7
59
|
// Template generators by type
|
|
8
60
|
const templates = {
|
|
9
61
|
// React Component
|
|
@@ -733,9 +785,22 @@ export async function handleGenerate(args, state) {
|
|
|
733
785
|
example: 'generate type:"component" name:"UserCard"'
|
|
734
786
|
});
|
|
735
787
|
}
|
|
736
|
-
//
|
|
737
|
-
|
|
738
|
-
|
|
788
|
+
// Detect project conventions
|
|
789
|
+
const conventions = options.scanProject !== false ? getProjectConventions() : null;
|
|
790
|
+
// Infer TypeScript from project type or conventions
|
|
791
|
+
if (options.typescript === undefined) {
|
|
792
|
+
if (state.activeProjectType?.includes('typescript')) {
|
|
793
|
+
options.typescript = true;
|
|
794
|
+
}
|
|
795
|
+
else if (conventions?.strictMode) {
|
|
796
|
+
options.typescript = true;
|
|
797
|
+
}
|
|
798
|
+
}
|
|
799
|
+
// Infer framework from conventions
|
|
800
|
+
if (!options.framework && conventions) {
|
|
801
|
+
if (conventions.stateManagement === 'zustand') {
|
|
802
|
+
options.framework = 'zustand';
|
|
803
|
+
}
|
|
739
804
|
}
|
|
740
805
|
const generator = templates[type];
|
|
741
806
|
if (!generator) {
|
|
@@ -744,8 +809,12 @@ export async function handleGenerate(args, state) {
|
|
|
744
809
|
availableTypes: Object.keys(templates)
|
|
745
810
|
});
|
|
746
811
|
}
|
|
747
|
-
logger.info('Generating template', { type, name, options });
|
|
748
|
-
|
|
812
|
+
logger.info('Generating template', { type, name, options, conventions: conventions?.sources });
|
|
813
|
+
let code = generator(name, options);
|
|
814
|
+
// Apply detected conventions to generated code
|
|
815
|
+
if (conventions && conventions.confidence !== 'low') {
|
|
816
|
+
code = applyConventions(code, conventions);
|
|
817
|
+
}
|
|
749
818
|
const ext = options.typescript !== false ? 'ts' : 'js';
|
|
750
819
|
const filename = type === 'test'
|
|
751
820
|
? `${name}.test.${ext}`
|
|
@@ -758,6 +827,13 @@ export async function handleGenerate(args, state) {
|
|
|
758
827
|
name,
|
|
759
828
|
filename,
|
|
760
829
|
code,
|
|
830
|
+
conventions: conventions ? {
|
|
831
|
+
applied: conventions.confidence !== 'low',
|
|
832
|
+
sources: conventions.sources,
|
|
833
|
+
indentation: conventions.indentation,
|
|
834
|
+
quotes: conventions.quotes,
|
|
835
|
+
semicolons: conventions.semicolons
|
|
836
|
+
} : null,
|
|
761
837
|
instructions: [
|
|
762
838
|
`1. Create file: ${filename}`,
|
|
763
839
|
'2. Paste the generated code',
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"generate.js","sourceRoot":"","sources":["../../src/handlers/generate.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"generate.js","sourceRoot":"","sources":["../../src/handlers/generate.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,11 +1,18 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* Health handler - Project Health Score Analysis
|
|
3
3
|
* Phase 6: Advanced Features
|
|
4
|
+
*
|
|
5
|
+
* Improvements:
|
|
6
|
+
* - Configurable weights via stackguide.config.json
|
|
7
|
+
* - Historical tracking of health scores
|
|
8
|
+
* - Project-specific benchmarking
|
|
4
9
|
*/
|
|
5
10
|
import { ServerState, ToolResponse } from './types.js';
|
|
6
11
|
interface HealthArgs {
|
|
7
12
|
projectPath?: string;
|
|
8
13
|
detailed?: boolean;
|
|
14
|
+
showWeights?: boolean;
|
|
15
|
+
saveHistory?: boolean;
|
|
9
16
|
}
|
|
10
17
|
export declare function handleHealth(args: HealthArgs, state: ServerState): Promise<ToolResponse>;
|
|
11
18
|
export {};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"health.d.ts","sourceRoot":"","sources":["../../src/handlers/health.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"health.d.ts","sourceRoot":"","sources":["../../src/handlers/health.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAIH,OAAO,EAAE,WAAW,EAAE,YAAY,EAAgB,MAAM,YAAY,CAAC;AAWrE,UAAU,UAAU;IAClB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,WAAW,CAAC,EAAE,OAAO,CAAC;CACvB;AAkUD,wBAAsB,YAAY,CAChC,IAAI,EAAE,UAAU,EAChB,KAAK,EAAE,WAAW,GACjB,OAAO,CAAC,YAAY,CAAC,CA+GvB"}
|
package/dist/handlers/health.js
CHANGED
|
@@ -1,29 +1,20 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* Health handler - Project Health Score Analysis
|
|
3
3
|
* Phase 6: Advanced Features
|
|
4
|
+
*
|
|
5
|
+
* Improvements:
|
|
6
|
+
* - Configurable weights via stackguide.config.json
|
|
7
|
+
* - Historical tracking of health scores
|
|
8
|
+
* - Project-specific benchmarking
|
|
4
9
|
*/
|
|
10
|
+
import * as fs from 'fs';
|
|
11
|
+
import * as path from 'path';
|
|
5
12
|
import { jsonResponse } from './types.js';
|
|
6
13
|
import { logger } from '../utils/logger.js';
|
|
7
14
|
import { analyzeCode } from '../services/codeAnalyzer.js';
|
|
8
|
-
|
|
9
|
-
const
|
|
10
|
-
|
|
11
|
-
B: 80,
|
|
12
|
-
C: 70,
|
|
13
|
-
D: 60,
|
|
14
|
-
F: 0,
|
|
15
|
-
};
|
|
16
|
-
function getGrade(score) {
|
|
17
|
-
if (score >= GRADE_THRESHOLDS.A)
|
|
18
|
-
return 'A';
|
|
19
|
-
if (score >= GRADE_THRESHOLDS.B)
|
|
20
|
-
return 'B';
|
|
21
|
-
if (score >= GRADE_THRESHOLDS.C)
|
|
22
|
-
return 'C';
|
|
23
|
-
if (score >= GRADE_THRESHOLDS.D)
|
|
24
|
-
return 'D';
|
|
25
|
-
return 'F';
|
|
26
|
-
}
|
|
15
|
+
import { getHealthWeights, getGradeFromScore, calculateIssueDeduction, getWeightsDocumentation } from '../config/healthWeights.js';
|
|
16
|
+
const HISTORY_FILE = '.stackguide/health-history.json';
|
|
17
|
+
const MAX_HISTORY_ENTRIES = 100;
|
|
27
18
|
function getGradeEmoji(grade) {
|
|
28
19
|
const emojis = {
|
|
29
20
|
A: '🌟',
|
|
@@ -34,64 +25,132 @@ function getGradeEmoji(grade) {
|
|
|
34
25
|
};
|
|
35
26
|
return emojis[grade] || '❓';
|
|
36
27
|
}
|
|
28
|
+
/**
|
|
29
|
+
* Load health history from disk
|
|
30
|
+
*/
|
|
31
|
+
function loadHealthHistory(projectPath) {
|
|
32
|
+
const historyPath = path.join(projectPath, HISTORY_FILE);
|
|
33
|
+
try {
|
|
34
|
+
if (fs.existsSync(historyPath)) {
|
|
35
|
+
const content = fs.readFileSync(historyPath, 'utf-8');
|
|
36
|
+
return JSON.parse(content);
|
|
37
|
+
}
|
|
38
|
+
}
|
|
39
|
+
catch (error) {
|
|
40
|
+
logger.debug('Failed to load health history', { error });
|
|
41
|
+
}
|
|
42
|
+
return { projectPath, entries: [] };
|
|
43
|
+
}
|
|
44
|
+
/**
|
|
45
|
+
* Save health history to disk
|
|
46
|
+
*/
|
|
47
|
+
function saveHealthHistory(projectPath, history) {
|
|
48
|
+
const historyPath = path.join(projectPath, HISTORY_FILE);
|
|
49
|
+
const historyDir = path.dirname(historyPath);
|
|
50
|
+
try {
|
|
51
|
+
if (!fs.existsSync(historyDir)) {
|
|
52
|
+
fs.mkdirSync(historyDir, { recursive: true });
|
|
53
|
+
}
|
|
54
|
+
// Limit history entries
|
|
55
|
+
if (history.entries.length > MAX_HISTORY_ENTRIES) {
|
|
56
|
+
history.entries = history.entries.slice(-MAX_HISTORY_ENTRIES);
|
|
57
|
+
}
|
|
58
|
+
fs.writeFileSync(historyPath, JSON.stringify(history, null, 2));
|
|
59
|
+
logger.debug('Saved health history');
|
|
60
|
+
}
|
|
61
|
+
catch (error) {
|
|
62
|
+
logger.debug('Failed to save health history', { error });
|
|
63
|
+
}
|
|
64
|
+
}
|
|
65
|
+
/**
|
|
66
|
+
* Add entry to health history
|
|
67
|
+
*/
|
|
68
|
+
function addHistoryEntry(projectPath, score, grade, categories) {
|
|
69
|
+
const history = loadHealthHistory(projectPath);
|
|
70
|
+
history.entries.push({
|
|
71
|
+
timestamp: new Date().toISOString(),
|
|
72
|
+
score,
|
|
73
|
+
grade,
|
|
74
|
+
categories: Object.fromEntries(categories.map(c => [c.name, c.score]))
|
|
75
|
+
});
|
|
76
|
+
saveHealthHistory(projectPath, history);
|
|
77
|
+
}
|
|
78
|
+
/**
|
|
79
|
+
* Get health trend from history
|
|
80
|
+
*/
|
|
81
|
+
function getHealthTrend(projectPath) {
|
|
82
|
+
const history = loadHealthHistory(projectPath);
|
|
83
|
+
if (history.entries.length < 2) {
|
|
84
|
+
return null;
|
|
85
|
+
}
|
|
86
|
+
const recent = history.entries.slice(-5);
|
|
87
|
+
const oldest = recent[0].score;
|
|
88
|
+
const newest = recent[recent.length - 1].score;
|
|
89
|
+
const change = newest - oldest;
|
|
90
|
+
if (change > 5)
|
|
91
|
+
return { trend: 'improving', change };
|
|
92
|
+
if (change < -5)
|
|
93
|
+
return { trend: 'declining', change };
|
|
94
|
+
return { trend: 'stable', change };
|
|
95
|
+
}
|
|
37
96
|
// Analyze configuration quality
|
|
38
|
-
function analyzeConfiguration(state) {
|
|
97
|
+
function analyzeConfiguration(state, weights) {
|
|
39
98
|
const issues = [];
|
|
40
99
|
const suggestions = [];
|
|
41
|
-
|
|
42
|
-
|
|
100
|
+
const maxScore = weights.categories.configuration.maxScore;
|
|
101
|
+
let score = maxScore;
|
|
43
102
|
const hasConfig = !!state.activeProjectType;
|
|
44
103
|
const hasRules = state.loadedRules.length > 0;
|
|
45
104
|
const hasKnowledge = state.loadedKnowledge.length > 0;
|
|
46
105
|
if (!hasConfig) {
|
|
47
106
|
issues.push('No project type configured');
|
|
48
107
|
suggestions.push('Run setup to configure your project type');
|
|
49
|
-
score -=
|
|
108
|
+
score -= maxScore * 0.25;
|
|
50
109
|
}
|
|
51
110
|
if (!hasRules) {
|
|
52
111
|
issues.push('No rules loaded');
|
|
53
112
|
suggestions.push('Run setup to load rules for your project');
|
|
54
|
-
score -=
|
|
113
|
+
score -= maxScore * 0.25;
|
|
55
114
|
}
|
|
56
115
|
if (!hasKnowledge) {
|
|
57
116
|
issues.push('No knowledge base loaded');
|
|
58
117
|
suggestions.push('Run setup to load knowledge base');
|
|
59
|
-
score -=
|
|
118
|
+
score -= maxScore * 0.25;
|
|
60
119
|
}
|
|
61
120
|
if (state.activeConfiguration?.customRules?.length === 0) {
|
|
62
121
|
suggestions.push('Consider adding custom rules for your project');
|
|
63
|
-
score -=
|
|
122
|
+
score -= maxScore * 0.1;
|
|
64
123
|
}
|
|
65
124
|
return {
|
|
66
|
-
name:
|
|
67
|
-
score: Math.max(0, score),
|
|
125
|
+
name: weights.categories.configuration.name,
|
|
126
|
+
score: Math.max(0, Math.round(score)),
|
|
68
127
|
maxScore,
|
|
69
128
|
issues,
|
|
70
129
|
suggestions,
|
|
71
130
|
};
|
|
72
131
|
}
|
|
73
132
|
// Analyze code quality based on review results
|
|
74
|
-
function analyzeCodeQuality(analysisResult) {
|
|
133
|
+
function analyzeCodeQuality(analysisResult, weights) {
|
|
75
134
|
const issues = [];
|
|
76
135
|
const suggestions = [];
|
|
77
|
-
|
|
78
|
-
|
|
136
|
+
const maxScore = weights.categories.codeQuality.maxScore;
|
|
137
|
+
let score = maxScore;
|
|
79
138
|
if (!analysisResult) {
|
|
80
139
|
return {
|
|
81
|
-
name:
|
|
82
|
-
score:
|
|
140
|
+
name: weights.categories.codeQuality.name,
|
|
141
|
+
score: Math.round(maxScore * 0.5),
|
|
83
142
|
maxScore,
|
|
84
143
|
issues: ['No code analysis performed'],
|
|
85
144
|
suggestions: ['Run review tool to analyze code'],
|
|
86
145
|
};
|
|
87
146
|
}
|
|
88
|
-
// Deduct points based on issues
|
|
147
|
+
// Deduct points based on issues using configurable weights
|
|
89
148
|
const criticalCount = analysisResult.issues.filter(i => i.severity === 'error').length;
|
|
90
149
|
const warningCount = analysisResult.issues.filter(i => i.severity === 'warning').length;
|
|
91
150
|
const infoCount = analysisResult.issues.filter(i => i.severity === 'info').length;
|
|
92
|
-
score -= criticalCount
|
|
93
|
-
score -= warningCount
|
|
94
|
-
score -= infoCount
|
|
151
|
+
score -= calculateIssueDeduction('error', criticalCount, weights);
|
|
152
|
+
score -= calculateIssueDeduction('warning', warningCount, weights);
|
|
153
|
+
score -= calculateIssueDeduction('info', infoCount, weights);
|
|
95
154
|
if (criticalCount > 0) {
|
|
96
155
|
issues.push(`${criticalCount} critical issue(s) found`);
|
|
97
156
|
}
|
|
@@ -113,93 +172,103 @@ function analyzeCodeQuality(analysisResult) {
|
|
|
113
172
|
suggestions.push('Follow framework best practices');
|
|
114
173
|
}
|
|
115
174
|
return {
|
|
116
|
-
name:
|
|
117
|
-
score: Math.max(0, Math.min(maxScore, score)),
|
|
175
|
+
name: weights.categories.codeQuality.name,
|
|
176
|
+
score: Math.max(0, Math.min(maxScore, Math.round(score))),
|
|
118
177
|
maxScore,
|
|
119
178
|
issues,
|
|
120
179
|
suggestions,
|
|
121
180
|
};
|
|
122
181
|
}
|
|
123
182
|
// Analyze structure
|
|
124
|
-
function analyzeStructure(state) {
|
|
183
|
+
function analyzeStructure(state, weights) {
|
|
125
184
|
const issues = [];
|
|
126
185
|
const suggestions = [];
|
|
127
|
-
|
|
128
|
-
|
|
186
|
+
const maxScore = weights.categories.structure.maxScore;
|
|
187
|
+
let score = maxScore;
|
|
129
188
|
// Check if project type is detected
|
|
130
189
|
if (!state.activeProjectType) {
|
|
131
190
|
issues.push('Project structure not analyzed');
|
|
132
191
|
suggestions.push('Run setup to detect project structure');
|
|
133
|
-
score -=
|
|
192
|
+
score -= maxScore * 0.5;
|
|
134
193
|
}
|
|
135
194
|
else {
|
|
136
195
|
// Project type detected - good structure
|
|
137
196
|
if (state.loadedRules.length < 3) {
|
|
138
197
|
suggestions.push('Load more rules for comprehensive guidance');
|
|
139
|
-
score -=
|
|
198
|
+
score -= maxScore * 0.25;
|
|
140
199
|
}
|
|
141
200
|
}
|
|
142
201
|
return {
|
|
143
|
-
name:
|
|
144
|
-
score: Math.max(0, score),
|
|
202
|
+
name: weights.categories.structure.name,
|
|
203
|
+
score: Math.max(0, Math.round(score)),
|
|
145
204
|
maxScore,
|
|
146
205
|
issues,
|
|
147
206
|
suggestions,
|
|
148
207
|
};
|
|
149
208
|
}
|
|
150
209
|
// Analyze documentation
|
|
151
|
-
function analyzeDocumentation(state) {
|
|
210
|
+
function analyzeDocumentation(state, weights) {
|
|
152
211
|
const issues = [];
|
|
153
212
|
const suggestions = [];
|
|
154
|
-
|
|
155
|
-
|
|
213
|
+
const maxScore = weights.categories.documentation.maxScore;
|
|
214
|
+
let score = maxScore;
|
|
156
215
|
if (state.loadedKnowledge.length === 0) {
|
|
157
216
|
issues.push('No knowledge/documentation loaded');
|
|
158
|
-
score -=
|
|
217
|
+
score -= maxScore * 0.33;
|
|
159
218
|
}
|
|
160
219
|
if (!state.activeProjectType) {
|
|
161
220
|
suggestions.push('Configure project type for tailored documentation');
|
|
162
|
-
score -=
|
|
221
|
+
score -= maxScore * 0.2;
|
|
163
222
|
}
|
|
164
223
|
return {
|
|
165
|
-
name:
|
|
166
|
-
score: Math.max(0, score),
|
|
224
|
+
name: weights.categories.documentation.name,
|
|
225
|
+
score: Math.max(0, Math.round(score)),
|
|
167
226
|
maxScore,
|
|
168
227
|
issues,
|
|
169
228
|
suggestions,
|
|
170
229
|
};
|
|
171
230
|
}
|
|
172
231
|
// Analyze testing readiness
|
|
173
|
-
function analyzeTestingReadiness(state) {
|
|
232
|
+
function analyzeTestingReadiness(state, weights) {
|
|
174
233
|
const issues = [];
|
|
175
234
|
const suggestions = [];
|
|
176
|
-
|
|
177
|
-
|
|
235
|
+
const maxScore = weights.categories.testing.maxScore;
|
|
236
|
+
let score = maxScore;
|
|
178
237
|
// Check if project has testing setup (inferred from project type)
|
|
179
238
|
const hasTestingSupport = state.activeProjectType?.includes('typescript') ||
|
|
180
239
|
state.activeProjectType?.includes('react') ||
|
|
181
240
|
state.activeProjectType?.includes('node');
|
|
182
241
|
if (!hasTestingSupport) {
|
|
183
242
|
suggestions.push('Consider adding a testing framework');
|
|
184
|
-
score -=
|
|
243
|
+
score -= maxScore * 0.33;
|
|
185
244
|
}
|
|
186
245
|
// Check if any loaded rules mention testing
|
|
187
246
|
const hasTestingRules = state.loadedRules.some(r => r.content?.toLowerCase().includes('test') || r.name?.toLowerCase().includes('test'));
|
|
188
247
|
if (!hasTestingRules) {
|
|
189
248
|
suggestions.push('Add custom rules for testing guidelines');
|
|
190
|
-
score -=
|
|
249
|
+
score -= maxScore * 0.13;
|
|
191
250
|
}
|
|
192
251
|
return {
|
|
193
|
-
name:
|
|
194
|
-
score: Math.max(0, score),
|
|
252
|
+
name: weights.categories.testing.name,
|
|
253
|
+
score: Math.max(0, Math.round(score)),
|
|
195
254
|
maxScore,
|
|
196
255
|
issues,
|
|
197
256
|
suggestions,
|
|
198
257
|
};
|
|
199
258
|
}
|
|
200
259
|
export async function handleHealth(args, state) {
|
|
201
|
-
const { detailed = true } = args;
|
|
202
|
-
|
|
260
|
+
const { detailed = true, showWeights = false, saveHistory = true } = args;
|
|
261
|
+
const projectPath = process.cwd();
|
|
262
|
+
logger.info('Generating health report', { detailed, showWeights });
|
|
263
|
+
// Load configurable weights
|
|
264
|
+
const weights = getHealthWeights(projectPath);
|
|
265
|
+
// Show weights documentation if requested
|
|
266
|
+
if (showWeights) {
|
|
267
|
+
return jsonResponse({
|
|
268
|
+
documentation: getWeightsDocumentation(weights),
|
|
269
|
+
currentWeights: weights
|
|
270
|
+
});
|
|
271
|
+
}
|
|
203
272
|
// Perform a sample code analysis if rules are loaded
|
|
204
273
|
let codeAnalysis = null;
|
|
205
274
|
if (state.loadedRules.length > 0 && state.activeProjectType) {
|
|
@@ -212,19 +281,25 @@ export async function handleHealth(args, state) {
|
|
|
212
281
|
logger.warn('Code analysis failed', { error: e });
|
|
213
282
|
}
|
|
214
283
|
}
|
|
215
|
-
// Collect all category scores
|
|
284
|
+
// Collect all category scores using configurable weights
|
|
216
285
|
const categories = [
|
|
217
|
-
analyzeConfiguration(state),
|
|
218
|
-
analyzeCodeQuality(codeAnalysis),
|
|
219
|
-
analyzeStructure(state),
|
|
220
|
-
analyzeDocumentation(state),
|
|
221
|
-
analyzeTestingReadiness(state),
|
|
286
|
+
analyzeConfiguration(state, weights),
|
|
287
|
+
analyzeCodeQuality(codeAnalysis, weights),
|
|
288
|
+
analyzeStructure(state, weights),
|
|
289
|
+
analyzeDocumentation(state, weights),
|
|
290
|
+
analyzeTestingReadiness(state, weights),
|
|
222
291
|
];
|
|
223
292
|
// Calculate overall score
|
|
224
293
|
const totalScore = categories.reduce((sum, cat) => sum + cat.score, 0);
|
|
225
294
|
const maxTotalScore = categories.reduce((sum, cat) => sum + cat.maxScore, 0);
|
|
226
295
|
const overallScore = Math.round((totalScore / maxTotalScore) * 100);
|
|
227
|
-
const grade =
|
|
296
|
+
const grade = getGradeFromScore(overallScore, weights);
|
|
297
|
+
// Save to history if enabled
|
|
298
|
+
if (saveHistory) {
|
|
299
|
+
addHistoryEntry(projectPath, overallScore, grade, categories);
|
|
300
|
+
}
|
|
301
|
+
// Get health trend
|
|
302
|
+
const trend = getHealthTrend(projectPath);
|
|
228
303
|
// Collect critical issues
|
|
229
304
|
const criticalIssues = categories
|
|
230
305
|
.flatMap(cat => cat.issues)
|
|
@@ -250,6 +325,7 @@ export async function handleHealth(args, state) {
|
|
|
250
325
|
score: overallScore,
|
|
251
326
|
grade: `${getGradeEmoji(grade)} ${grade}`,
|
|
252
327
|
summary,
|
|
328
|
+
trend: trend ? `${trend.trend} (${trend.change > 0 ? '+' : ''}${trend.change})` : undefined,
|
|
253
329
|
topRecommendations: recommendations.slice(0, 3),
|
|
254
330
|
});
|
|
255
331
|
}
|
|
@@ -257,6 +333,11 @@ export async function handleHealth(args, state) {
|
|
|
257
333
|
header: `🏥 Project Health Report`,
|
|
258
334
|
score: `${overallScore}/100`,
|
|
259
335
|
grade: `${getGradeEmoji(grade)} Grade: ${grade}`,
|
|
336
|
+
trend: trend ? {
|
|
337
|
+
direction: trend.trend,
|
|
338
|
+
change: `${trend.change > 0 ? '+' : ''}${trend.change} points`,
|
|
339
|
+
emoji: trend.trend === 'improving' ? '📈' : trend.trend === 'declining' ? '📉' : '➡️'
|
|
340
|
+
} : undefined,
|
|
260
341
|
summary,
|
|
261
342
|
categories: categories.map(cat => ({
|
|
262
343
|
name: cat.name,
|
|
@@ -268,6 +349,7 @@ export async function handleHealth(args, state) {
|
|
|
268
349
|
})),
|
|
269
350
|
criticalIssues: criticalIssues.length > 0 ? criticalIssues : undefined,
|
|
270
351
|
recommendations,
|
|
352
|
+
weightsUsed: weights.version,
|
|
271
353
|
nextSteps: generateNextSteps(report),
|
|
272
354
|
});
|
|
273
355
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"health.js","sourceRoot":"","sources":["../../src/handlers/health.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"health.js","sourceRoot":"","sources":["../../src/handlers/health.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,6 +1,14 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* Review handler - code review against active rules
|
|
3
3
|
* Phase 3: Real code analysis with pattern matching
|
|
4
|
+
*
|
|
5
|
+
* Improvements:
|
|
6
|
+
* - Removed file limit (was 50, now unlimited)
|
|
7
|
+
* - Parallel file analysis with batching
|
|
8
|
+
* - Respects .gitignore patterns
|
|
9
|
+
* - Configurable scan depth (default 10)
|
|
10
|
+
* - Incremental mode using git diff
|
|
11
|
+
* - Analysis caching by file hash
|
|
4
12
|
*/
|
|
5
13
|
import { ServerState, ToolResponse } from './types.js';
|
|
6
14
|
interface ReviewArgs {
|
|
@@ -8,6 +16,10 @@ interface ReviewArgs {
|
|
|
8
16
|
url?: string;
|
|
9
17
|
project?: boolean;
|
|
10
18
|
focus?: 'all' | 'security' | 'performance' | 'architecture' | 'coding-standards';
|
|
19
|
+
incremental?: boolean;
|
|
20
|
+
maxDepth?: number;
|
|
21
|
+
maxFiles?: number;
|
|
22
|
+
useCache?: boolean;
|
|
11
23
|
}
|
|
12
24
|
export declare function handleReview(args: ReviewArgs, state: ServerState): Promise<ToolResponse>;
|
|
13
25
|
export {};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"review.d.ts","sourceRoot":"","sources":["../../src/handlers/review.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"review.d.ts","sourceRoot":"","sources":["../../src/handlers/review.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAaH,OAAO,EAAE,WAAW,EAAE,YAAY,EAA8B,MAAM,YAAY,CAAC;AAGnF,UAAU,UAAU;IAClB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,KAAK,CAAC,EAAE,KAAK,GAAG,UAAU,GAAG,aAAa,GAAG,cAAc,GAAG,kBAAkB,CAAC;IACjF,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,QAAQ,CAAC,EAAE,OAAO,CAAC;CACpB;AAgJD,wBAAsB,YAAY,CAChC,IAAI,EAAE,UAAU,EAChB,KAAK,EAAE,WAAW,GACjB,OAAO,CAAC,YAAY,CAAC,CAuPvB"}
|