@stackguide/mcp-server 3.1.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/config/types.d.ts +1 -0
- package/dist/config/types.d.ts.map +1 -1
- package/dist/config/types.js.map +1 -1
- 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/codeAnalyzer.d.ts +5 -1
- package/dist/services/codeAnalyzer.d.ts.map +1 -1
- package/dist/services/codeAnalyzer.js +39 -2
- package/dist/services/codeAnalyzer.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/services/parsers/baseParser.d.ts +44 -0
- package/dist/services/parsers/baseParser.d.ts.map +1 -0
- package/dist/services/parsers/baseParser.js +177 -0
- package/dist/services/parsers/baseParser.js.map +1 -0
- package/dist/services/parsers/goParser.d.ts +28 -0
- package/dist/services/parsers/goParser.d.ts.map +1 -0
- package/dist/services/parsers/goParser.js +590 -0
- package/dist/services/parsers/goParser.js.map +1 -0
- package/dist/services/parsers/index.d.ts +62 -0
- package/dist/services/parsers/index.d.ts.map +1 -0
- package/dist/services/parsers/index.js +121 -0
- package/dist/services/parsers/index.js.map +1 -0
- package/dist/services/parsers/pythonParser.d.ts +28 -0
- package/dist/services/parsers/pythonParser.d.ts.map +1 -0
- package/dist/services/parsers/pythonParser.js +663 -0
- package/dist/services/parsers/pythonParser.js.map +1 -0
- package/dist/services/parsers/rustParser.d.ts +28 -0
- package/dist/services/parsers/rustParser.d.ts.map +1 -0
- package/dist/services/parsers/rustParser.js +654 -0
- package/dist/services/parsers/rustParser.js.map +1 -0
- package/dist/services/parsers/types.d.ts +241 -0
- package/dist/services/parsers/types.d.ts.map +1 -0
- package/dist/services/parsers/types.js +47 -0
- package/dist/services/parsers/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
|
@@ -0,0 +1,344 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Project Intelligence Service
|
|
3
|
+
* Main orchestrator for project analysis and recommendations
|
|
4
|
+
* @version 3.3.0
|
|
5
|
+
*/
|
|
6
|
+
import * as path from 'path';
|
|
7
|
+
import { analyzeStructure } from './structureAnalyzer.js';
|
|
8
|
+
import { analyzeConfigurations, generateSmartConfig, applyConfigFix } from './configGenerator.js';
|
|
9
|
+
import { analyzeDependencies, generateInstallCommand } from './dependencyAdvisor.js';
|
|
10
|
+
import * as autoDetect from '../autoDetect.js';
|
|
11
|
+
/**
|
|
12
|
+
* Generate comprehensive project intelligence report
|
|
13
|
+
*/
|
|
14
|
+
export async function generateIntelligenceReport(projectPath) {
|
|
15
|
+
const timestamp = new Date().toISOString();
|
|
16
|
+
const absolutePath = path.resolve(projectPath);
|
|
17
|
+
// First, detect project type
|
|
18
|
+
const detection = autoDetect.detectProjectType(absolutePath);
|
|
19
|
+
const projectType = detection.projectType || 'react-typescript';
|
|
20
|
+
const confidence = detection.confidence;
|
|
21
|
+
// Run all analyses
|
|
22
|
+
const structure = analyzeStructure(absolutePath, projectType);
|
|
23
|
+
const configuration = analyzeConfigurations(absolutePath, projectType);
|
|
24
|
+
const dependencies = analyzeDependencies(absolutePath, projectType);
|
|
25
|
+
// Calculate overall score
|
|
26
|
+
const overallScore = calculateOverallScore(structure, configuration, dependencies);
|
|
27
|
+
const grade = scoreToGrade(overallScore);
|
|
28
|
+
// Generate priority actions
|
|
29
|
+
const priorityActions = generatePriorityActions(structure, configuration, dependencies);
|
|
30
|
+
// Generate workflow steps
|
|
31
|
+
const suggestedWorkflow = generateWorkflow(priorityActions, dependencies.packageManager);
|
|
32
|
+
// Estimate effort
|
|
33
|
+
const estimatedEffort = estimateEffort(priorityActions);
|
|
34
|
+
return {
|
|
35
|
+
timestamp,
|
|
36
|
+
projectPath: absolutePath,
|
|
37
|
+
projectType,
|
|
38
|
+
confidence,
|
|
39
|
+
overallScore,
|
|
40
|
+
grade,
|
|
41
|
+
structure,
|
|
42
|
+
configuration,
|
|
43
|
+
dependencies,
|
|
44
|
+
priorityActions,
|
|
45
|
+
suggestedWorkflow,
|
|
46
|
+
estimatedEffort
|
|
47
|
+
};
|
|
48
|
+
}
|
|
49
|
+
/**
|
|
50
|
+
* Calculate overall project health score
|
|
51
|
+
*/
|
|
52
|
+
function calculateOverallScore(structure, configuration, dependencies) {
|
|
53
|
+
// Weighted average
|
|
54
|
+
const weights = {
|
|
55
|
+
structure: 0.25,
|
|
56
|
+
configuration: 0.35,
|
|
57
|
+
dependencies: 0.40
|
|
58
|
+
};
|
|
59
|
+
return Math.round(structure.structureScore * weights.structure +
|
|
60
|
+
configuration.configScore * weights.configuration +
|
|
61
|
+
dependencies.dependencyScore * weights.dependencies);
|
|
62
|
+
}
|
|
63
|
+
/**
|
|
64
|
+
* Convert score to letter grade
|
|
65
|
+
*/
|
|
66
|
+
function scoreToGrade(score) {
|
|
67
|
+
if (score >= 90)
|
|
68
|
+
return 'A';
|
|
69
|
+
if (score >= 80)
|
|
70
|
+
return 'B';
|
|
71
|
+
if (score >= 70)
|
|
72
|
+
return 'C';
|
|
73
|
+
if (score >= 60)
|
|
74
|
+
return 'D';
|
|
75
|
+
return 'F';
|
|
76
|
+
}
|
|
77
|
+
/**
|
|
78
|
+
* Generate priority actions from analyses
|
|
79
|
+
*/
|
|
80
|
+
function generatePriorityActions(structure, configuration, dependencies) {
|
|
81
|
+
const actions = [];
|
|
82
|
+
let actionId = 1;
|
|
83
|
+
// Structure actions
|
|
84
|
+
for (const dir of structure.missingDirs.filter(d => d.priority === 'high')) {
|
|
85
|
+
actions.push({
|
|
86
|
+
id: `struct-${actionId++}`,
|
|
87
|
+
category: 'structure',
|
|
88
|
+
priority: 'high',
|
|
89
|
+
title: `Create ${dir.path} directory`,
|
|
90
|
+
description: dir.purpose,
|
|
91
|
+
command: `mkdir -p ${dir.path}`,
|
|
92
|
+
autoApplicable: true
|
|
93
|
+
});
|
|
94
|
+
}
|
|
95
|
+
for (const improvement of structure.improvements.filter(i => i.priority === 'high')) {
|
|
96
|
+
actions.push({
|
|
97
|
+
id: `struct-${actionId++}`,
|
|
98
|
+
category: 'structure',
|
|
99
|
+
priority: 'high',
|
|
100
|
+
title: improvement.description,
|
|
101
|
+
description: `${improvement.type} operation suggested`,
|
|
102
|
+
autoApplicable: false
|
|
103
|
+
});
|
|
104
|
+
}
|
|
105
|
+
// Configuration actions
|
|
106
|
+
for (const rec of configuration.recommendedConfigs.filter(r => r.priority === 'critical' || r.priority === 'high')) {
|
|
107
|
+
actions.push({
|
|
108
|
+
id: `config-${actionId++}`,
|
|
109
|
+
category: 'config',
|
|
110
|
+
priority: rec.priority === 'critical' ? 'critical' : 'high',
|
|
111
|
+
title: `Add ${rec.filename}`,
|
|
112
|
+
description: rec.reason,
|
|
113
|
+
autoApplicable: true
|
|
114
|
+
});
|
|
115
|
+
}
|
|
116
|
+
for (const issue of configuration.issues.filter(i => i.severity === 'error' || i.severity === 'warning')) {
|
|
117
|
+
actions.push({
|
|
118
|
+
id: `config-${actionId++}`,
|
|
119
|
+
category: 'config',
|
|
120
|
+
priority: issue.severity === 'error' ? 'high' : 'medium',
|
|
121
|
+
title: issue.message,
|
|
122
|
+
description: issue.suggestion,
|
|
123
|
+
autoApplicable: issue.autoFixable
|
|
124
|
+
});
|
|
125
|
+
}
|
|
126
|
+
// Dependency actions
|
|
127
|
+
const highPriorityDeps = dependencies.recommendedAdditions.filter(d => d.priority === 'high');
|
|
128
|
+
if (highPriorityDeps.length > 0) {
|
|
129
|
+
actions.push({
|
|
130
|
+
id: `deps-${actionId++}`,
|
|
131
|
+
category: 'dependencies',
|
|
132
|
+
priority: 'high',
|
|
133
|
+
title: `Install missing dependencies`,
|
|
134
|
+
description: `Missing: ${highPriorityDeps.map(d => d.name).join(', ')}`,
|
|
135
|
+
command: generateInstallCommand(highPriorityDeps, dependencies.packageManager, true),
|
|
136
|
+
autoApplicable: true
|
|
137
|
+
});
|
|
138
|
+
}
|
|
139
|
+
// Security actions for vulnerabilities
|
|
140
|
+
for (const vuln of dependencies.vulnerabilities.filter(v => v.severity === 'critical' || v.severity === 'high')) {
|
|
141
|
+
actions.push({
|
|
142
|
+
id: `sec-${actionId++}`,
|
|
143
|
+
category: 'security',
|
|
144
|
+
priority: vuln.severity === 'critical' ? 'critical' : 'high',
|
|
145
|
+
title: `Fix ${vuln.package} vulnerability`,
|
|
146
|
+
description: vuln.title,
|
|
147
|
+
command: vuln.fixedIn ? `npm update ${vuln.package}` : undefined,
|
|
148
|
+
autoApplicable: !!vuln.fixedIn
|
|
149
|
+
});
|
|
150
|
+
}
|
|
151
|
+
// Sort by priority
|
|
152
|
+
const priorityOrder = { critical: 0, high: 1, medium: 2, low: 3 };
|
|
153
|
+
actions.sort((a, b) => priorityOrder[a.priority] - priorityOrder[b.priority]);
|
|
154
|
+
return actions;
|
|
155
|
+
}
|
|
156
|
+
/**
|
|
157
|
+
* Generate suggested workflow steps
|
|
158
|
+
*/
|
|
159
|
+
function generateWorkflow(actions, packageManager) {
|
|
160
|
+
const steps = [];
|
|
161
|
+
let order = 1;
|
|
162
|
+
// Group actions by category
|
|
163
|
+
const criticalActions = actions.filter(a => a.priority === 'critical');
|
|
164
|
+
const configActions = actions.filter(a => a.category === 'config' && a.priority !== 'critical');
|
|
165
|
+
const depActions = actions.filter(a => a.category === 'dependencies');
|
|
166
|
+
const structureActions = actions.filter(a => a.category === 'structure');
|
|
167
|
+
// Step 1: Critical issues first
|
|
168
|
+
if (criticalActions.length > 0) {
|
|
169
|
+
steps.push({
|
|
170
|
+
order: order++,
|
|
171
|
+
title: 'Fix Critical Issues',
|
|
172
|
+
description: `Address ${criticalActions.length} critical issue(s) before proceeding`,
|
|
173
|
+
estimatedTime: '15-30 min',
|
|
174
|
+
optional: false
|
|
175
|
+
});
|
|
176
|
+
}
|
|
177
|
+
// Step 2: Install dependencies
|
|
178
|
+
if (depActions.length > 0) {
|
|
179
|
+
const installCmd = packageManager === 'pnpm' ? 'pnpm add -D' :
|
|
180
|
+
packageManager === 'yarn' ? 'yarn add -D' : 'npm install -D';
|
|
181
|
+
steps.push({
|
|
182
|
+
order: order++,
|
|
183
|
+
title: 'Install Development Dependencies',
|
|
184
|
+
description: 'Add missing linting, testing, and DX tools',
|
|
185
|
+
command: depActions.find(a => a.command)?.command,
|
|
186
|
+
estimatedTime: '2-5 min',
|
|
187
|
+
optional: false
|
|
188
|
+
});
|
|
189
|
+
}
|
|
190
|
+
// Step 3: Add configuration files
|
|
191
|
+
if (configActions.length > 0) {
|
|
192
|
+
steps.push({
|
|
193
|
+
order: order++,
|
|
194
|
+
title: 'Configure Development Tools',
|
|
195
|
+
description: `Add ${configActions.length} configuration file(s)`,
|
|
196
|
+
estimatedTime: '10-20 min',
|
|
197
|
+
optional: false
|
|
198
|
+
});
|
|
199
|
+
}
|
|
200
|
+
// Step 4: Organize structure
|
|
201
|
+
if (structureActions.length > 0) {
|
|
202
|
+
steps.push({
|
|
203
|
+
order: order++,
|
|
204
|
+
title: 'Improve Project Structure',
|
|
205
|
+
description: `Create ${structureActions.length} missing directories`,
|
|
206
|
+
estimatedTime: '5-10 min',
|
|
207
|
+
optional: true
|
|
208
|
+
});
|
|
209
|
+
}
|
|
210
|
+
// Step 5: Run initial checks
|
|
211
|
+
steps.push({
|
|
212
|
+
order: order++,
|
|
213
|
+
title: 'Verify Setup',
|
|
214
|
+
description: 'Run linting and tests to verify configuration',
|
|
215
|
+
command: packageManager === 'pnpm' ? 'pnpm lint && pnpm test' :
|
|
216
|
+
packageManager === 'yarn' ? 'yarn lint && yarn test' : 'npm run lint && npm test',
|
|
217
|
+
estimatedTime: '2-5 min',
|
|
218
|
+
optional: false
|
|
219
|
+
});
|
|
220
|
+
// Step 6: Commit changes
|
|
221
|
+
steps.push({
|
|
222
|
+
order: order++,
|
|
223
|
+
title: 'Commit Configuration',
|
|
224
|
+
description: 'Commit the new configuration to version control',
|
|
225
|
+
command: 'git add -A && git commit -m "chore: add project configuration"',
|
|
226
|
+
estimatedTime: '1 min',
|
|
227
|
+
optional: false
|
|
228
|
+
});
|
|
229
|
+
return steps;
|
|
230
|
+
}
|
|
231
|
+
/**
|
|
232
|
+
* Estimate effort to fix all issues
|
|
233
|
+
*/
|
|
234
|
+
function estimateEffort(actions) {
|
|
235
|
+
const criticalCount = actions.filter(a => a.priority === 'critical').length;
|
|
236
|
+
const highCount = actions.filter(a => a.priority === 'high').length;
|
|
237
|
+
const totalCount = actions.length;
|
|
238
|
+
if (criticalCount > 2 || totalCount > 10)
|
|
239
|
+
return 'significant';
|
|
240
|
+
if (highCount > 3 || totalCount > 5)
|
|
241
|
+
return 'moderate';
|
|
242
|
+
return 'minimal';
|
|
243
|
+
}
|
|
244
|
+
/**
|
|
245
|
+
* Apply auto-fixable actions
|
|
246
|
+
*/
|
|
247
|
+
export async function applyAutoFixes(report, onlyCategory) {
|
|
248
|
+
const applied = [];
|
|
249
|
+
const failed = [];
|
|
250
|
+
const actionsToApply = report.priorityActions.filter(a => {
|
|
251
|
+
if (!a.autoApplicable)
|
|
252
|
+
return false;
|
|
253
|
+
if (onlyCategory && a.category !== onlyCategory)
|
|
254
|
+
return false;
|
|
255
|
+
return true;
|
|
256
|
+
});
|
|
257
|
+
for (const action of actionsToApply) {
|
|
258
|
+
// For now, just report what would be applied
|
|
259
|
+
// Actual implementation would execute commands/write files
|
|
260
|
+
applied.push(action.title);
|
|
261
|
+
}
|
|
262
|
+
return { applied, failed };
|
|
263
|
+
}
|
|
264
|
+
/**
|
|
265
|
+
* Format intelligence report for display
|
|
266
|
+
*/
|
|
267
|
+
export function formatIntelligenceReport(report) {
|
|
268
|
+
const lines = [];
|
|
269
|
+
// Header
|
|
270
|
+
lines.push('# 🧠 Project Intelligence Report');
|
|
271
|
+
lines.push('');
|
|
272
|
+
lines.push(`**Project:** ${report.projectPath}`);
|
|
273
|
+
lines.push(`**Type:** ${report.projectType} (${report.confidence} confidence)`);
|
|
274
|
+
lines.push(`**Generated:** ${new Date(report.timestamp).toLocaleString()}`);
|
|
275
|
+
lines.push('');
|
|
276
|
+
// Overall Score
|
|
277
|
+
const gradeEmoji = {
|
|
278
|
+
'A': '🌟',
|
|
279
|
+
'B': '✨',
|
|
280
|
+
'C': '👍',
|
|
281
|
+
'D': '⚠️',
|
|
282
|
+
'F': '🚨'
|
|
283
|
+
};
|
|
284
|
+
lines.push(`## Overall Score: ${report.overallScore}/100 ${gradeEmoji[report.grade]} Grade ${report.grade}`);
|
|
285
|
+
lines.push('');
|
|
286
|
+
// Category breakdown
|
|
287
|
+
lines.push('### Category Scores');
|
|
288
|
+
lines.push(`- **Structure:** ${report.structure.structureScore}/100`);
|
|
289
|
+
lines.push(`- **Configuration:** ${report.configuration.configScore}/100`);
|
|
290
|
+
lines.push(`- **Dependencies:** ${report.dependencies.dependencyScore}/100`);
|
|
291
|
+
lines.push('');
|
|
292
|
+
// Priority Actions
|
|
293
|
+
if (report.priorityActions.length > 0) {
|
|
294
|
+
lines.push('## 🎯 Priority Actions');
|
|
295
|
+
lines.push('');
|
|
296
|
+
const criticalActions = report.priorityActions.filter(a => a.priority === 'critical');
|
|
297
|
+
const highActions = report.priorityActions.filter(a => a.priority === 'high');
|
|
298
|
+
if (criticalActions.length > 0) {
|
|
299
|
+
lines.push('### 🚨 Critical');
|
|
300
|
+
for (const action of criticalActions) {
|
|
301
|
+
lines.push(`- **${action.title}**: ${action.description}`);
|
|
302
|
+
if (action.command)
|
|
303
|
+
lines.push(` - \`${action.command}\``);
|
|
304
|
+
}
|
|
305
|
+
lines.push('');
|
|
306
|
+
}
|
|
307
|
+
if (highActions.length > 0) {
|
|
308
|
+
lines.push('### ⚡ High Priority');
|
|
309
|
+
for (const action of highActions.slice(0, 5)) {
|
|
310
|
+
lines.push(`- **${action.title}**: ${action.description}`);
|
|
311
|
+
if (action.command)
|
|
312
|
+
lines.push(` - \`${action.command}\``);
|
|
313
|
+
}
|
|
314
|
+
if (highActions.length > 5) {
|
|
315
|
+
lines.push(` - ...and ${highActions.length - 5} more`);
|
|
316
|
+
}
|
|
317
|
+
lines.push('');
|
|
318
|
+
}
|
|
319
|
+
}
|
|
320
|
+
// Suggested Workflow
|
|
321
|
+
if (report.suggestedWorkflow.length > 0) {
|
|
322
|
+
lines.push('## 📋 Suggested Workflow');
|
|
323
|
+
lines.push('');
|
|
324
|
+
for (const step of report.suggestedWorkflow) {
|
|
325
|
+
const optional = step.optional ? ' _(optional)_' : '';
|
|
326
|
+
lines.push(`${step.order}. **${step.title}**${optional}`);
|
|
327
|
+
lines.push(` ${step.description}`);
|
|
328
|
+
if (step.command)
|
|
329
|
+
lines.push(` \`${step.command}\``);
|
|
330
|
+
lines.push(` ⏱️ ${step.estimatedTime}`);
|
|
331
|
+
lines.push('');
|
|
332
|
+
}
|
|
333
|
+
}
|
|
334
|
+
// Estimated Effort
|
|
335
|
+
const effortEmoji = {
|
|
336
|
+
'minimal': '✅',
|
|
337
|
+
'moderate': '🔧',
|
|
338
|
+
'significant': '🏗️'
|
|
339
|
+
};
|
|
340
|
+
lines.push(`## 📊 Estimated Effort: ${effortEmoji[report.estimatedEffort]} ${report.estimatedEffort.charAt(0).toUpperCase() + report.estimatedEffort.slice(1)}`);
|
|
341
|
+
return lines.join('\n');
|
|
342
|
+
}
|
|
343
|
+
export { analyzeStructure, analyzeConfigurations, analyzeDependencies, generateSmartConfig, applyConfigFix, generateInstallCommand };
|
|
344
|
+
//# sourceMappingURL=projectIntelligence.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"projectIntelligence.js","sourceRoot":"","sources":["../../../src/services/intelligence/projectIntelligence.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Project Structure Analyzer
|
|
3
|
+
* Analyzes project structure and suggests improvements
|
|
4
|
+
* @version 3.3.0
|
|
5
|
+
*/
|
|
6
|
+
import type { StructureAnalysis } from './types.js';
|
|
7
|
+
/**
|
|
8
|
+
* Analyze project structure against framework template
|
|
9
|
+
*/
|
|
10
|
+
export declare function analyzeStructure(projectPath: string, projectType: string): StructureAnalysis;
|
|
11
|
+
/**
|
|
12
|
+
* Scan directory recursively
|
|
13
|
+
*/
|
|
14
|
+
declare function scanDirectory(dirPath: string, maxDepth: number, currentDepth?: number): {
|
|
15
|
+
dirs: string[];
|
|
16
|
+
files: string[];
|
|
17
|
+
};
|
|
18
|
+
/**
|
|
19
|
+
* Get directory purpose description
|
|
20
|
+
*/
|
|
21
|
+
declare function getDirPurpose(dir: string, projectType: string): string;
|
|
22
|
+
/**
|
|
23
|
+
* Get file purpose description
|
|
24
|
+
*/
|
|
25
|
+
declare function getFilePurpose(file: string): string;
|
|
26
|
+
export { scanDirectory, getDirPurpose, getFilePurpose };
|
|
27
|
+
//# sourceMappingURL=structureAnalyzer.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"structureAnalyzer.d.ts","sourceRoot":"","sources":["../../../src/services/intelligence/structureAnalyzer.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAIH,OAAO,KAAK,EACV,iBAAiB,EAIlB,MAAM,YAAY,CAAC;AAGpB;;GAEG;AACH,wBAAgB,gBAAgB,CAAC,WAAW,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,GAAG,iBAAiB,CAoF5F;AAED;;GAEG;AACH,iBAAS,aAAa,CAAC,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,YAAY,SAAI,GAAG;IAAE,IAAI,EAAE,MAAM,EAAE,CAAC;IAAC,KAAK,EAAE,MAAM,EAAE,CAAA;CAAE,CAiC/G;AAwBD;;GAEG;AACH,iBAAS,aAAa,CAAC,GAAG,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,GAAG,MAAM,CA4C/D;AAED;;GAEG;AACH,iBAAS,cAAc,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAqC5C;AAsFD,OAAO,EAAE,aAAa,EAAE,aAAa,EAAE,cAAc,EAAE,CAAC"}
|