@stackguide/mcp-server 3.2.0 → 3.3.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 +59 -2
- package/dist/handlers/analyze.d.ts +11 -0
- package/dist/handlers/analyze.d.ts.map +1 -0
- package/dist/handlers/analyze.js +274 -0
- package/dist/handlers/analyze.js.map +1 -0
- package/dist/handlers/index.d.ts +1 -0
- package/dist/handlers/index.d.ts.map +1 -1
- package/dist/handlers/index.js +1 -0
- package/dist/handlers/index.js.map +1 -1
- package/dist/handlers/setup.d.ts +1 -0
- package/dist/handlers/setup.d.ts.map +1 -1
- package/dist/handlers/setup.js +42 -0
- package/dist/handlers/setup.js.map +1 -1
- package/dist/index.js +4 -2
- package/dist/index.js.map +1 -1
- package/dist/services/intelligence/configGenerator.d.ts +28 -0
- package/dist/services/intelligence/configGenerator.d.ts.map +1 -0
- package/dist/services/intelligence/configGenerator.js +404 -0
- package/dist/services/intelligence/configGenerator.js.map +1 -0
- package/dist/services/intelligence/dependencyAdvisor.d.ts +24 -0
- package/dist/services/intelligence/dependencyAdvisor.d.ts.map +1 -0
- package/dist/services/intelligence/dependencyAdvisor.js +404 -0
- package/dist/services/intelligence/dependencyAdvisor.js.map +1 -0
- package/dist/services/intelligence/index.d.ts +12 -0
- package/dist/services/intelligence/index.d.ts.map +1 -0
- package/dist/services/intelligence/index.js +16 -0
- package/dist/services/intelligence/index.js.map +1 -0
- package/dist/services/intelligence/projectIntelligence.d.ts +26 -0
- package/dist/services/intelligence/projectIntelligence.d.ts.map +1 -0
- package/dist/services/intelligence/projectIntelligence.js +344 -0
- package/dist/services/intelligence/projectIntelligence.js.map +1 -0
- package/dist/services/intelligence/structureAnalyzer.d.ts +27 -0
- package/dist/services/intelligence/structureAnalyzer.d.ts.map +1 -0
- package/dist/services/intelligence/structureAnalyzer.js +286 -0
- package/dist/services/intelligence/structureAnalyzer.js.map +1 -0
- package/dist/services/intelligence/templates.d.ts +22 -0
- package/dist/services/intelligence/templates.d.ts.map +1 -0
- package/dist/services/intelligence/templates.js +521 -0
- package/dist/services/intelligence/templates.js.map +1 -0
- package/dist/services/intelligence/types.d.ts +222 -0
- package/dist/services/intelligence/types.d.ts.map +1 -0
- package/dist/services/intelligence/types.js +7 -0
- package/dist/services/intelligence/types.js.map +1 -0
- package/dist/tools/definitions.d.ts +87 -0
- package/dist/tools/definitions.d.ts.map +1 -1
- package/dist/tools/definitions.js +34 -0
- package/dist/tools/definitions.js.map +1 -1
- package/dist/utils/validation.d.ts +2 -2
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -26,9 +26,10 @@ Just talk naturally:
|
|
|
26
26
|
- *"Review my code"* → Analyzes with Quick Fix suggestions
|
|
27
27
|
- *"Generate a component"* → Creates boilerplate code
|
|
28
28
|
- *"Check project health"* → Returns health score (A-F)
|
|
29
|
+
- *"Analyze my project"* → **NEW!** Auto-configuration intelligence
|
|
29
30
|
- *"Browse React rules"* → Shows community rules
|
|
30
31
|
|
|
31
|
-
## Tools (
|
|
32
|
+
## Tools (13 total)
|
|
32
33
|
|
|
33
34
|
### Core Tools
|
|
34
35
|
| Tool | Description | Example |
|
|
@@ -39,11 +40,12 @@ Just talk naturally:
|
|
|
39
40
|
| `knowledge` | Access patterns & solutions | `knowledge action:"get" query:"architecture"` |
|
|
40
41
|
| `review` | Review code with Quick Fixes | `review file:"src/index.ts" focus:"security"` |
|
|
41
42
|
|
|
42
|
-
### Advanced Features
|
|
43
|
+
### Advanced Features
|
|
43
44
|
| Tool | Description | Example |
|
|
44
45
|
|------|-------------|---------|
|
|
45
46
|
| `generate` | Generate boilerplate code | `generate type:"component" name:"UserCard"` |
|
|
46
47
|
| `health` | Project health score (A-F) | `health detailed:true` |
|
|
48
|
+
| `analyze` | **NEW!** Project intelligence | `analyze action:"full" path:"./my-project"` |
|
|
47
49
|
|
|
48
50
|
### Integration Tools
|
|
49
51
|
| Tool | Description | Example |
|
|
@@ -106,6 +108,57 @@ Setup now provides tailored recommendations:
|
|
|
106
108
|
}
|
|
107
109
|
```
|
|
108
110
|
|
|
111
|
+
## New in v3.3.0: Auto-Configuration Intelligence 🧠
|
|
112
|
+
|
|
113
|
+
### Project Intelligence Analysis
|
|
114
|
+
Get comprehensive analysis with actionable recommendations:
|
|
115
|
+
|
|
116
|
+
```bash
|
|
117
|
+
analyze action:"full" path:"./my-project"
|
|
118
|
+
analyze action:"structure" # Analyze only project structure
|
|
119
|
+
analyze action:"config" # Analyze only configurations
|
|
120
|
+
analyze action:"dependencies" # Analyze only dependencies
|
|
121
|
+
analyze action:"generate" configType:"eslint" # Generate optimal config
|
|
122
|
+
analyze action:"apply" # Apply all auto-fixes
|
|
123
|
+
```
|
|
124
|
+
|
|
125
|
+
Returns:
|
|
126
|
+
- **Overall Score (0-100)** with grade (A-F)
|
|
127
|
+
- **Structure Analysis**: Missing dirs/files, directory organization
|
|
128
|
+
- **Configuration Analysis**: Missing ESLint, Prettier, TSConfig recommendations
|
|
129
|
+
- **Dependency Analysis**: Missing packages, security advisories
|
|
130
|
+
- **Priority Actions**: Sorted by impact with estimated effort
|
|
131
|
+
- **Suggested Workflow**: Step-by-step improvement plan
|
|
132
|
+
|
|
133
|
+
```json
|
|
134
|
+
{
|
|
135
|
+
"overallScore": 72,
|
|
136
|
+
"grade": "C",
|
|
137
|
+
"priorityActions": [
|
|
138
|
+
{ "action": "Add ESLint configuration", "priority": "high", "impact": "Improves code quality" },
|
|
139
|
+
{ "action": "Add tests directory", "priority": "medium", "impact": "Enables testing" }
|
|
140
|
+
],
|
|
141
|
+
"suggestedWorkflow": [
|
|
142
|
+
{ "step": 1, "action": "Run `analyze action:generate configType:eslint`" },
|
|
143
|
+
{ "step": 2, "action": "Run `analyze action:generate configType:prettier`" }
|
|
144
|
+
]
|
|
145
|
+
}
|
|
146
|
+
```
|
|
147
|
+
|
|
148
|
+
### Enhanced Setup with Intelligence
|
|
149
|
+
Setup now includes quick intelligence analysis:
|
|
150
|
+
|
|
151
|
+
```json
|
|
152
|
+
{
|
|
153
|
+
"intelligence": {
|
|
154
|
+
"structureScore": 85,
|
|
155
|
+
"configScore": 60,
|
|
156
|
+
"dependencyScore": 90,
|
|
157
|
+
"quickWins": ["Add .prettierrc for consistent formatting"]
|
|
158
|
+
}
|
|
159
|
+
}
|
|
160
|
+
```
|
|
161
|
+
|
|
109
162
|
## Supported Stacks
|
|
110
163
|
|
|
111
164
|
`python-django` · `python-fastapi` · `python-flask` · `react-node` · `react-typescript` · `vue-node` · `nextjs` · `express` · `nestjs` · `laravel` · `rails` · `golang` · `rust`
|
|
@@ -125,6 +178,10 @@ review file:"src/App.tsx" focus:"performance"
|
|
|
125
178
|
# Check project health
|
|
126
179
|
health
|
|
127
180
|
|
|
181
|
+
# NEW: Analyze project intelligence
|
|
182
|
+
analyze action:"full"
|
|
183
|
+
analyze action:"generate" configType:"prettier"
|
|
184
|
+
|
|
128
185
|
# Browse and import community rules
|
|
129
186
|
cursor action:"popular"
|
|
130
187
|
cursor action:"import" slug:"typescript-best-practices"
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Analyze handler - Project Intelligence Analysis
|
|
3
|
+
* Provides comprehensive project analysis and recommendations
|
|
4
|
+
* @version 3.3.0
|
|
5
|
+
*/
|
|
6
|
+
import { ServerState, ToolResponse } from './types.js';
|
|
7
|
+
/**
|
|
8
|
+
* Handle analyze tool requests
|
|
9
|
+
*/
|
|
10
|
+
export declare function handleAnalyze(args: unknown, state: ServerState): Promise<ToolResponse>;
|
|
11
|
+
//# sourceMappingURL=analyze.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"analyze.d.ts","sourceRoot":"","sources":["../../src/handlers/analyze.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAGH,OAAO,EAAE,WAAW,EAAE,YAAY,EAA+B,MAAM,YAAY,CAAC;AA6BpF;;GAEG;AACH,wBAAsB,aAAa,CACjC,IAAI,EAAE,OAAO,EACb,KAAK,EAAE,WAAW,GACjB,OAAO,CAAC,YAAY,CAAC,CAyCvB"}
|
|
@@ -0,0 +1,274 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Analyze handler - Project Intelligence Analysis
|
|
3
|
+
* Provides comprehensive project analysis and recommendations
|
|
4
|
+
* @version 3.3.0
|
|
5
|
+
*/
|
|
6
|
+
import * as path from 'path';
|
|
7
|
+
import { jsonResponse, errorResponse } from './types.js';
|
|
8
|
+
import { logger } from '../utils/logger.js';
|
|
9
|
+
import { z } from 'zod';
|
|
10
|
+
import { validate } from '../utils/validation.js';
|
|
11
|
+
import { generateIntelligenceReport, formatIntelligenceReport, analyzeStructure, analyzeConfigurations, analyzeDependencies, generateSmartConfig, applyAutoFixes, getFrameworkTemplate } from '../services/intelligence/index.js';
|
|
12
|
+
/**
|
|
13
|
+
* Input schema for analyze tool
|
|
14
|
+
*/
|
|
15
|
+
const AnalyzeInputSchema = z.object({
|
|
16
|
+
action: z.enum(['full', 'structure', 'config', 'dependencies', 'generate', 'apply']).optional().default('full'),
|
|
17
|
+
path: z.string().optional(),
|
|
18
|
+
configType: z.string().optional(),
|
|
19
|
+
autoFix: z.boolean().optional().default(false),
|
|
20
|
+
format: z.enum(['json', 'markdown']).optional().default('markdown')
|
|
21
|
+
}).strict();
|
|
22
|
+
/**
|
|
23
|
+
* Handle analyze tool requests
|
|
24
|
+
*/
|
|
25
|
+
export async function handleAnalyze(args, state) {
|
|
26
|
+
const startTime = Date.now();
|
|
27
|
+
// Validate input
|
|
28
|
+
const validationResult = validate(AnalyzeInputSchema, args || {});
|
|
29
|
+
if (!validationResult.success) {
|
|
30
|
+
return errorResponse(validationResult.error || 'Invalid input');
|
|
31
|
+
}
|
|
32
|
+
const input = validationResult.data;
|
|
33
|
+
const projectPath = input.path || process.cwd();
|
|
34
|
+
const absolutePath = path.resolve(projectPath);
|
|
35
|
+
const projectType = state.activeProjectType || 'react-typescript';
|
|
36
|
+
try {
|
|
37
|
+
switch (input.action) {
|
|
38
|
+
case 'full':
|
|
39
|
+
return await handleFullAnalysis(absolutePath, input.format, state, startTime);
|
|
40
|
+
case 'structure':
|
|
41
|
+
return await handleStructureAnalysis(absolutePath, projectType, input.format, startTime);
|
|
42
|
+
case 'config':
|
|
43
|
+
return await handleConfigAnalysis(absolutePath, projectType, input.format, startTime);
|
|
44
|
+
case 'dependencies':
|
|
45
|
+
return await handleDependencyAnalysis(absolutePath, projectType, input.format, startTime);
|
|
46
|
+
case 'generate':
|
|
47
|
+
return await handleGenerateConfig(absolutePath, projectType, input.configType, startTime);
|
|
48
|
+
case 'apply':
|
|
49
|
+
return await handleApplyFixes(absolutePath, state, startTime);
|
|
50
|
+
default:
|
|
51
|
+
return errorResponse(`Unknown action: ${input.action}`);
|
|
52
|
+
}
|
|
53
|
+
}
|
|
54
|
+
catch (error) {
|
|
55
|
+
logger.error('Analyze error', { error: String(error) });
|
|
56
|
+
return errorResponse(`Analysis failed: ${error instanceof Error ? error.message : String(error)}`);
|
|
57
|
+
}
|
|
58
|
+
}
|
|
59
|
+
/**
|
|
60
|
+
* Full project analysis
|
|
61
|
+
*/
|
|
62
|
+
async function handleFullAnalysis(projectPath, format, state, startTime) {
|
|
63
|
+
const report = await generateIntelligenceReport(projectPath);
|
|
64
|
+
logger.tool('analyze', { action: 'full', path: projectPath, score: report.overallScore }, startTime);
|
|
65
|
+
if (format === 'markdown') {
|
|
66
|
+
return jsonResponse({
|
|
67
|
+
success: true,
|
|
68
|
+
report: formatIntelligenceReport(report),
|
|
69
|
+
summary: {
|
|
70
|
+
score: report.overallScore,
|
|
71
|
+
grade: report.grade,
|
|
72
|
+
projectType: report.projectType,
|
|
73
|
+
confidence: report.confidence,
|
|
74
|
+
estimatedEffort: report.estimatedEffort,
|
|
75
|
+
actionCount: report.priorityActions.length
|
|
76
|
+
}
|
|
77
|
+
});
|
|
78
|
+
}
|
|
79
|
+
return jsonResponse({
|
|
80
|
+
success: true,
|
|
81
|
+
report
|
|
82
|
+
});
|
|
83
|
+
}
|
|
84
|
+
/**
|
|
85
|
+
* Structure-only analysis
|
|
86
|
+
*/
|
|
87
|
+
async function handleStructureAnalysis(projectPath, projectType, format, startTime) {
|
|
88
|
+
const analysis = analyzeStructure(projectPath, projectType);
|
|
89
|
+
logger.tool('analyze', { action: 'structure', path: projectPath, score: analysis.structureScore }, startTime);
|
|
90
|
+
if (format === 'markdown') {
|
|
91
|
+
const lines = [];
|
|
92
|
+
lines.push('# 📁 Structure Analysis');
|
|
93
|
+
lines.push('');
|
|
94
|
+
lines.push(`**Score:** ${analysis.structureScore}/100`);
|
|
95
|
+
lines.push('');
|
|
96
|
+
if (analysis.missingDirs.length > 0) {
|
|
97
|
+
lines.push('## Missing Directories');
|
|
98
|
+
for (const dir of analysis.missingDirs) {
|
|
99
|
+
const priority = dir.priority === 'high' ? '🔴' : dir.priority === 'medium' ? '🟡' : '🟢';
|
|
100
|
+
lines.push(`- ${priority} \`${dir.path}\` - ${dir.purpose}`);
|
|
101
|
+
}
|
|
102
|
+
lines.push('');
|
|
103
|
+
}
|
|
104
|
+
if (analysis.missingFiles.length > 0) {
|
|
105
|
+
lines.push('## Missing Files');
|
|
106
|
+
for (const file of analysis.missingFiles.filter(f => f.priority === 'high')) {
|
|
107
|
+
lines.push(`- 🔴 \`${file.path}\` - ${file.purpose}`);
|
|
108
|
+
}
|
|
109
|
+
lines.push('');
|
|
110
|
+
}
|
|
111
|
+
if (analysis.improvements.length > 0) {
|
|
112
|
+
lines.push('## Suggested Improvements');
|
|
113
|
+
for (const imp of analysis.improvements) {
|
|
114
|
+
lines.push(`- ${imp.description}`);
|
|
115
|
+
}
|
|
116
|
+
}
|
|
117
|
+
return jsonResponse({
|
|
118
|
+
success: true,
|
|
119
|
+
report: lines.join('\n'),
|
|
120
|
+
score: analysis.structureScore
|
|
121
|
+
});
|
|
122
|
+
}
|
|
123
|
+
return jsonResponse({
|
|
124
|
+
success: true,
|
|
125
|
+
analysis
|
|
126
|
+
});
|
|
127
|
+
}
|
|
128
|
+
/**
|
|
129
|
+
* Configuration-only analysis
|
|
130
|
+
*/
|
|
131
|
+
async function handleConfigAnalysis(projectPath, projectType, format, startTime) {
|
|
132
|
+
const analysis = analyzeConfigurations(projectPath, projectType);
|
|
133
|
+
logger.tool('analyze', { action: 'config', path: projectPath, score: analysis.configScore }, startTime);
|
|
134
|
+
if (format === 'markdown') {
|
|
135
|
+
const lines = [];
|
|
136
|
+
lines.push('# ⚙️ Configuration Analysis');
|
|
137
|
+
lines.push('');
|
|
138
|
+
lines.push(`**Score:** ${analysis.configScore}/100`);
|
|
139
|
+
lines.push('');
|
|
140
|
+
if (analysis.existingConfigs.length > 0) {
|
|
141
|
+
lines.push('## Existing Configurations');
|
|
142
|
+
for (const config of analysis.existingConfigs) {
|
|
143
|
+
const status = config.isValid ? '✅' : '❌';
|
|
144
|
+
lines.push(`- ${status} \`${path.basename(config.path)}\` (${config.type})`);
|
|
145
|
+
}
|
|
146
|
+
lines.push('');
|
|
147
|
+
}
|
|
148
|
+
if (analysis.recommendedConfigs.length > 0) {
|
|
149
|
+
lines.push('## Recommended Configurations');
|
|
150
|
+
for (const rec of analysis.recommendedConfigs) {
|
|
151
|
+
const priority = rec.priority === 'critical' ? '🚨' : rec.priority === 'high' ? '⚡' : '💡';
|
|
152
|
+
lines.push(`- ${priority} \`${rec.filename}\` - ${rec.description}`);
|
|
153
|
+
lines.push(` - Reason: ${rec.reason}`);
|
|
154
|
+
}
|
|
155
|
+
lines.push('');
|
|
156
|
+
}
|
|
157
|
+
if (analysis.issues.length > 0) {
|
|
158
|
+
lines.push('## Configuration Issues');
|
|
159
|
+
for (const issue of analysis.issues) {
|
|
160
|
+
const severity = issue.severity === 'error' ? '🔴' : issue.severity === 'warning' ? '🟡' : '🔵';
|
|
161
|
+
lines.push(`- ${severity} ${issue.message}`);
|
|
162
|
+
lines.push(` - Suggestion: ${issue.suggestion}`);
|
|
163
|
+
if (issue.autoFixable)
|
|
164
|
+
lines.push(` - ✨ Auto-fixable`);
|
|
165
|
+
}
|
|
166
|
+
}
|
|
167
|
+
return jsonResponse({
|
|
168
|
+
success: true,
|
|
169
|
+
report: lines.join('\n'),
|
|
170
|
+
score: analysis.configScore
|
|
171
|
+
});
|
|
172
|
+
}
|
|
173
|
+
return jsonResponse({
|
|
174
|
+
success: true,
|
|
175
|
+
analysis
|
|
176
|
+
});
|
|
177
|
+
}
|
|
178
|
+
/**
|
|
179
|
+
* Dependencies-only analysis
|
|
180
|
+
*/
|
|
181
|
+
async function handleDependencyAnalysis(projectPath, projectType, format, startTime) {
|
|
182
|
+
const analysis = analyzeDependencies(projectPath, projectType);
|
|
183
|
+
logger.tool('analyze', { action: 'dependencies', path: projectPath, score: analysis.dependencyScore }, startTime);
|
|
184
|
+
if (format === 'markdown') {
|
|
185
|
+
const lines = [];
|
|
186
|
+
lines.push('# 📦 Dependency Analysis');
|
|
187
|
+
lines.push('');
|
|
188
|
+
lines.push(`**Score:** ${analysis.dependencyScore}/100`);
|
|
189
|
+
lines.push(`**Package Manager:** ${analysis.packageManager}`);
|
|
190
|
+
lines.push(`**Total Dependencies:** ${analysis.totalDependencies}`);
|
|
191
|
+
lines.push('');
|
|
192
|
+
if (analysis.recommendedAdditions.length > 0) {
|
|
193
|
+
lines.push('## Recommended Additions');
|
|
194
|
+
for (const rec of analysis.recommendedAdditions) {
|
|
195
|
+
const priority = rec.priority === 'high' ? '⚡' : '💡';
|
|
196
|
+
lines.push(`- ${priority} \`${rec.name}\` - ${rec.reason} (${rec.category})`);
|
|
197
|
+
}
|
|
198
|
+
lines.push('');
|
|
199
|
+
}
|
|
200
|
+
if (analysis.unnecessaryDependencies.length > 0) {
|
|
201
|
+
lines.push('## Consider Removing');
|
|
202
|
+
for (const dep of analysis.unnecessaryDependencies) {
|
|
203
|
+
lines.push(`- ⚠️ ${dep}`);
|
|
204
|
+
}
|
|
205
|
+
lines.push('');
|
|
206
|
+
}
|
|
207
|
+
if (analysis.vulnerabilities.length > 0) {
|
|
208
|
+
lines.push('## Security Vulnerabilities');
|
|
209
|
+
for (const vuln of analysis.vulnerabilities) {
|
|
210
|
+
const severity = vuln.severity === 'critical' ? '🚨' : vuln.severity === 'high' ? '🔴' : '🟡';
|
|
211
|
+
lines.push(`- ${severity} \`${vuln.package}\`: ${vuln.title}`);
|
|
212
|
+
if (vuln.fixedIn)
|
|
213
|
+
lines.push(` - Fixed in: ${vuln.fixedIn}`);
|
|
214
|
+
}
|
|
215
|
+
}
|
|
216
|
+
return jsonResponse({
|
|
217
|
+
success: true,
|
|
218
|
+
report: lines.join('\n'),
|
|
219
|
+
score: analysis.dependencyScore
|
|
220
|
+
});
|
|
221
|
+
}
|
|
222
|
+
return jsonResponse({
|
|
223
|
+
success: true,
|
|
224
|
+
analysis
|
|
225
|
+
});
|
|
226
|
+
}
|
|
227
|
+
/**
|
|
228
|
+
* Generate a configuration file
|
|
229
|
+
*/
|
|
230
|
+
async function handleGenerateConfig(projectPath, projectType, configType, startTime) {
|
|
231
|
+
if (!configType) {
|
|
232
|
+
// List available config types
|
|
233
|
+
const template = getFrameworkTemplate(projectType);
|
|
234
|
+
const availableConfigs = template?.configTemplates.map(c => c.type) || [];
|
|
235
|
+
return jsonResponse({
|
|
236
|
+
success: true,
|
|
237
|
+
message: 'Specify configType to generate a configuration',
|
|
238
|
+
availableConfigs: ['eslint', 'prettier', 'tsconfig', 'editorconfig', 'gitignore', ...availableConfigs],
|
|
239
|
+
example: 'analyze action:"generate" configType:"eslint"'
|
|
240
|
+
});
|
|
241
|
+
}
|
|
242
|
+
const config = generateSmartConfig(configType, projectType);
|
|
243
|
+
if (!config) {
|
|
244
|
+
return errorResponse(`No template available for config type: ${configType}`);
|
|
245
|
+
}
|
|
246
|
+
logger.tool('analyze', { action: 'generate', configType }, startTime);
|
|
247
|
+
return jsonResponse({
|
|
248
|
+
success: true,
|
|
249
|
+
config: {
|
|
250
|
+
filename: config.filename,
|
|
251
|
+
description: config.description,
|
|
252
|
+
content: config.content,
|
|
253
|
+
customizations: config.customizations
|
|
254
|
+
},
|
|
255
|
+
instruction: `Save this content to ${config.filename} in your project root`
|
|
256
|
+
});
|
|
257
|
+
}
|
|
258
|
+
/**
|
|
259
|
+
* Apply auto-fixes
|
|
260
|
+
*/
|
|
261
|
+
async function handleApplyFixes(projectPath, state, startTime) {
|
|
262
|
+
const report = await generateIntelligenceReport(projectPath);
|
|
263
|
+
const result = await applyAutoFixes(report);
|
|
264
|
+
logger.tool('analyze', { action: 'apply', applied: result.applied.length, failed: result.failed.length }, startTime);
|
|
265
|
+
return jsonResponse({
|
|
266
|
+
success: true,
|
|
267
|
+
applied: result.applied,
|
|
268
|
+
failed: result.failed,
|
|
269
|
+
message: result.applied.length > 0
|
|
270
|
+
? `Applied ${result.applied.length} fix(es). ${result.failed.length} failed.`
|
|
271
|
+
: 'No auto-fixes were applied. Manual intervention may be required.'
|
|
272
|
+
});
|
|
273
|
+
}
|
|
274
|
+
//# sourceMappingURL=analyze.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"analyze.js","sourceRoot":"","sources":["../../src/handlers/analyze.ts"],"names":[],"mappings":"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"}
|
package/dist/handlers/index.d.ts
CHANGED
|
@@ -13,5 +13,6 @@ export { handleCustomRule } from './custom-rule.js';
|
|
|
13
13
|
export { handleHelp } from './help.js';
|
|
14
14
|
export { handleGenerate } from './generate.js';
|
|
15
15
|
export { handleHealth } from './health.js';
|
|
16
|
+
export { handleAnalyze } from './analyze.js';
|
|
16
17
|
export * from './types.js';
|
|
17
18
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/handlers/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AACzC,OAAO,EAAE,aAAa,EAAE,MAAM,cAAc,CAAC;AAC7C,OAAO,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AACzC,OAAO,EAAE,eAAe,EAAE,MAAM,gBAAgB,CAAC;AACjD,OAAO,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAC3C,OAAO,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAC3C,OAAO,EAAE,UAAU,EAAE,MAAM,WAAW,CAAC;AACvC,OAAO,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAC3C,OAAO,EAAE,gBAAgB,EAAE,MAAM,kBAAkB,CAAC;AACpD,OAAO,EAAE,UAAU,EAAE,MAAM,WAAW,CAAC;AACvC,OAAO,EAAE,cAAc,EAAE,MAAM,eAAe,CAAC;AAC/C,OAAO,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/handlers/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AACzC,OAAO,EAAE,aAAa,EAAE,MAAM,cAAc,CAAC;AAC7C,OAAO,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AACzC,OAAO,EAAE,eAAe,EAAE,MAAM,gBAAgB,CAAC;AACjD,OAAO,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAC3C,OAAO,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAC3C,OAAO,EAAE,UAAU,EAAE,MAAM,WAAW,CAAC;AACvC,OAAO,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAC3C,OAAO,EAAE,gBAAgB,EAAE,MAAM,kBAAkB,CAAC;AACpD,OAAO,EAAE,UAAU,EAAE,MAAM,WAAW,CAAC;AACvC,OAAO,EAAE,cAAc,EAAE,MAAM,eAAe,CAAC;AAC/C,OAAO,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAC3C,OAAO,EAAE,aAAa,EAAE,MAAM,cAAc,CAAC;AAE7C,cAAc,YAAY,CAAC"}
|
package/dist/handlers/index.js
CHANGED
|
@@ -13,5 +13,6 @@ export { handleCustomRule } from './custom-rule.js';
|
|
|
13
13
|
export { handleHelp } from './help.js';
|
|
14
14
|
export { handleGenerate } from './generate.js';
|
|
15
15
|
export { handleHealth } from './health.js';
|
|
16
|
+
export { handleAnalyze } from './analyze.js';
|
|
16
17
|
export * from './types.js';
|
|
17
18
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/handlers/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AACzC,OAAO,EAAE,aAAa,EAAE,MAAM,cAAc,CAAC;AAC7C,OAAO,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AACzC,OAAO,EAAE,eAAe,EAAE,MAAM,gBAAgB,CAAC;AACjD,OAAO,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAC3C,OAAO,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAC3C,OAAO,EAAE,UAAU,EAAE,MAAM,WAAW,CAAC;AACvC,OAAO,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAC3C,OAAO,EAAE,gBAAgB,EAAE,MAAM,kBAAkB,CAAC;AACpD,OAAO,EAAE,UAAU,EAAE,MAAM,WAAW,CAAC;AACvC,OAAO,EAAE,cAAc,EAAE,MAAM,eAAe,CAAC;AAC/C,OAAO,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/handlers/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AACzC,OAAO,EAAE,aAAa,EAAE,MAAM,cAAc,CAAC;AAC7C,OAAO,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AACzC,OAAO,EAAE,eAAe,EAAE,MAAM,gBAAgB,CAAC;AACjD,OAAO,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAC3C,OAAO,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAC3C,OAAO,EAAE,UAAU,EAAE,MAAM,WAAW,CAAC;AACvC,OAAO,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAC3C,OAAO,EAAE,gBAAgB,EAAE,MAAM,kBAAkB,CAAC;AACpD,OAAO,EAAE,UAAU,EAAE,MAAM,WAAW,CAAC;AACvC,OAAO,EAAE,cAAc,EAAE,MAAM,eAAe,CAAC;AAC/C,OAAO,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAC3C,OAAO,EAAE,aAAa,EAAE,MAAM,cAAc,CAAC;AAE7C,cAAc,YAAY,CAAC"}
|
package/dist/handlers/setup.d.ts
CHANGED
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* Setup handler - configures StackGuide for a project
|
|
3
3
|
* Includes interactive wizard with recommendations
|
|
4
|
+
* Enhanced with Project Intelligence in v3.3.0
|
|
4
5
|
*/
|
|
5
6
|
import { ServerState, ToolResponse } from './types.js';
|
|
6
7
|
export declare function handleSetup(args: unknown, state: ServerState): Promise<ToolResponse>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"setup.d.ts","sourceRoot":"","sources":["../../src/handlers/setup.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"setup.d.ts","sourceRoot":"","sources":["../../src/handlers/setup.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAMH,OAAO,EAAE,WAAW,EAAE,YAAY,EAA+B,MAAM,YAAY,CAAC;AAoEpF,wBAAsB,WAAW,CAC/B,IAAI,EAAE,OAAO,EACb,KAAK,EAAE,WAAW,GACjB,OAAO,CAAC,YAAY,CAAC,CAkLvB"}
|
package/dist/handlers/setup.js
CHANGED
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* Setup handler - configures StackGuide for a project
|
|
3
3
|
* Includes interactive wizard with recommendations
|
|
4
|
+
* Enhanced with Project Intelligence in v3.3.0
|
|
4
5
|
*/
|
|
5
6
|
import { SUPPORTED_PROJECTS } from '../config/types.js';
|
|
6
7
|
import * as rulesProvider from '../resources/rulesProvider.js';
|
|
@@ -9,6 +10,7 @@ import * as autoDetect from '../services/autoDetect.js';
|
|
|
9
10
|
import { jsonResponse, errorResponse } from './types.js';
|
|
10
11
|
import { logger } from '../utils/logger.js';
|
|
11
12
|
import { SetupInputSchema, validate } from '../utils/validation.js';
|
|
13
|
+
import { analyzeStructure, analyzeConfigurations, analyzeDependencies } from '../services/intelligence/index.js';
|
|
12
14
|
// Recommendations based on project type
|
|
13
15
|
const PROJECT_RECOMMENDATIONS = {
|
|
14
16
|
'react-typescript': {
|
|
@@ -152,6 +154,33 @@ export async function handleSetup(args, state) {
|
|
|
152
154
|
updatedAt: new Date().toISOString()
|
|
153
155
|
};
|
|
154
156
|
const recommendations = getRecommendations(detectedType);
|
|
157
|
+
// Run quick intelligence analysis for enhanced setup (v3.3.0)
|
|
158
|
+
let intelligence;
|
|
159
|
+
try {
|
|
160
|
+
const structure = analyzeStructure(resolvedPath, detectedType);
|
|
161
|
+
const config = analyzeConfigurations(resolvedPath, detectedType);
|
|
162
|
+
const deps = analyzeDependencies(resolvedPath, detectedType);
|
|
163
|
+
const quickWins = [];
|
|
164
|
+
// Add quick wins from missing high-priority items
|
|
165
|
+
for (const dir of structure.missingDirs.filter(d => d.priority === 'high').slice(0, 2)) {
|
|
166
|
+
quickWins.push(`Create \`${dir.path}/\` directory`);
|
|
167
|
+
}
|
|
168
|
+
for (const cfg of config.recommendedConfigs.filter(c => c.priority === 'critical' || c.priority === 'high').slice(0, 2)) {
|
|
169
|
+
quickWins.push(`Add \`${cfg.filename}\` configuration`);
|
|
170
|
+
}
|
|
171
|
+
for (const dep of deps.recommendedAdditions.filter(d => d.priority === 'high').slice(0, 2)) {
|
|
172
|
+
quickWins.push(`Install \`${dep.name}\` (${dep.reason})`);
|
|
173
|
+
}
|
|
174
|
+
intelligence = {
|
|
175
|
+
structureScore: structure.structureScore,
|
|
176
|
+
configScore: config.configScore,
|
|
177
|
+
dependencyScore: deps.dependencyScore,
|
|
178
|
+
quickWins
|
|
179
|
+
};
|
|
180
|
+
}
|
|
181
|
+
catch {
|
|
182
|
+
// Intelligence analysis is optional, don't fail setup
|
|
183
|
+
}
|
|
155
184
|
logger.tool('setup', { path: projectPath, type: projectType, detected: detectedType }, startTime);
|
|
156
185
|
return jsonResponse({
|
|
157
186
|
success: true,
|
|
@@ -164,6 +193,18 @@ export async function handleSetup(args, state) {
|
|
|
164
193
|
},
|
|
165
194
|
rulesLoaded: state.loadedRules.length,
|
|
166
195
|
knowledgeLoaded: state.loadedKnowledge.length,
|
|
196
|
+
intelligence: intelligence ? {
|
|
197
|
+
scores: {
|
|
198
|
+
structure: intelligence.structureScore,
|
|
199
|
+
configuration: intelligence.configScore,
|
|
200
|
+
dependencies: intelligence.dependencyScore,
|
|
201
|
+
average: Math.round((intelligence.structureScore + intelligence.configScore + intelligence.dependencyScore) / 3)
|
|
202
|
+
},
|
|
203
|
+
quickWins: intelligence.quickWins.length > 0 ? intelligence.quickWins : undefined,
|
|
204
|
+
tip: intelligence.quickWins.length > 0
|
|
205
|
+
? 'Run `analyze` for detailed project intelligence report'
|
|
206
|
+
: 'Your project structure looks good! Run `analyze` for details'
|
|
207
|
+
} : undefined,
|
|
167
208
|
wizard: {
|
|
168
209
|
step: '1/3 - Setup Complete ✓',
|
|
169
210
|
detectedAs: project.name,
|
|
@@ -176,6 +217,7 @@ export async function handleSetup(args, state) {
|
|
|
176
217
|
nextSteps: [
|
|
177
218
|
`📋 Run \`context\` to see ${state.loadedRules.length} loaded rules`,
|
|
178
219
|
`🔍 Run \`review\` to analyze your code`,
|
|
220
|
+
`🧠 Run \`analyze\` for project intelligence`,
|
|
179
221
|
`🏥 Run \`health\` to check project health`,
|
|
180
222
|
...recommendations.commands.map(cmd => `💡 Try: \`${cmd}\``)
|
|
181
223
|
]
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"setup.js","sourceRoot":"","sources":["../../src/handlers/setup.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"setup.js","sourceRoot":"","sources":["../../src/handlers/setup.ts"],"names":[],"mappings":"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"}
|
package/dist/index.js
CHANGED
|
@@ -24,7 +24,7 @@ import * as ruleManager from './services/ruleManager.js';
|
|
|
24
24
|
import * as webDocs from './services/webDocumentation.js';
|
|
25
25
|
import * as autoDetect from './services/autoDetect.js';
|
|
26
26
|
import { toolDefinitions } from './tools/definitions.js';
|
|
27
|
-
import { handleSetup, handleContext, handleRules, handleKnowledge, handleReview, handleCursor, handleDocs, handleConfig, handleCustomRule, handleHelp, handleGenerate, handleHealth, textResponse } from './handlers/index.js';
|
|
27
|
+
import { handleSetup, handleContext, handleRules, handleKnowledge, handleReview, handleCursor, handleDocs, handleConfig, handleCustomRule, handleHelp, handleGenerate, handleHealth, handleAnalyze, textResponse } from './handlers/index.js';
|
|
28
28
|
import { logger } from './utils/logger.js';
|
|
29
29
|
// ==================== SERVER STATE ====================
|
|
30
30
|
const serverState = {
|
|
@@ -36,7 +36,7 @@ const serverState = {
|
|
|
36
36
|
// ==================== CREATE SERVER ====================
|
|
37
37
|
const server = new Server({
|
|
38
38
|
name: 'stackguide-mcp',
|
|
39
|
-
version: '
|
|
39
|
+
version: '3.3.0',
|
|
40
40
|
}, {
|
|
41
41
|
capabilities: {
|
|
42
42
|
tools: {},
|
|
@@ -78,6 +78,8 @@ server.setRequestHandler(CallToolRequestSchema, async (request) => {
|
|
|
78
78
|
return await handleGenerate(args, serverState);
|
|
79
79
|
case 'health':
|
|
80
80
|
return await handleHealth(args, serverState);
|
|
81
|
+
case 'analyze':
|
|
82
|
+
return await handleAnalyze(args, serverState);
|
|
81
83
|
default:
|
|
82
84
|
logger.warn(`Unknown tool: ${name}`);
|
|
83
85
|
return textResponse(`Unknown tool: ${name}`);
|