@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.
Files changed (80) hide show
  1. package/README.md +59 -2
  2. package/dist/config/types.d.ts +1 -0
  3. package/dist/config/types.d.ts.map +1 -1
  4. package/dist/config/types.js.map +1 -1
  5. package/dist/handlers/analyze.d.ts +11 -0
  6. package/dist/handlers/analyze.d.ts.map +1 -0
  7. package/dist/handlers/analyze.js +274 -0
  8. package/dist/handlers/analyze.js.map +1 -0
  9. package/dist/handlers/index.d.ts +1 -0
  10. package/dist/handlers/index.d.ts.map +1 -1
  11. package/dist/handlers/index.js +1 -0
  12. package/dist/handlers/index.js.map +1 -1
  13. package/dist/handlers/setup.d.ts +1 -0
  14. package/dist/handlers/setup.d.ts.map +1 -1
  15. package/dist/handlers/setup.js +42 -0
  16. package/dist/handlers/setup.js.map +1 -1
  17. package/dist/index.js +4 -2
  18. package/dist/index.js.map +1 -1
  19. package/dist/services/codeAnalyzer.d.ts +5 -1
  20. package/dist/services/codeAnalyzer.d.ts.map +1 -1
  21. package/dist/services/codeAnalyzer.js +39 -2
  22. package/dist/services/codeAnalyzer.js.map +1 -1
  23. package/dist/services/intelligence/configGenerator.d.ts +28 -0
  24. package/dist/services/intelligence/configGenerator.d.ts.map +1 -0
  25. package/dist/services/intelligence/configGenerator.js +404 -0
  26. package/dist/services/intelligence/configGenerator.js.map +1 -0
  27. package/dist/services/intelligence/dependencyAdvisor.d.ts +24 -0
  28. package/dist/services/intelligence/dependencyAdvisor.d.ts.map +1 -0
  29. package/dist/services/intelligence/dependencyAdvisor.js +404 -0
  30. package/dist/services/intelligence/dependencyAdvisor.js.map +1 -0
  31. package/dist/services/intelligence/index.d.ts +12 -0
  32. package/dist/services/intelligence/index.d.ts.map +1 -0
  33. package/dist/services/intelligence/index.js +16 -0
  34. package/dist/services/intelligence/index.js.map +1 -0
  35. package/dist/services/intelligence/projectIntelligence.d.ts +26 -0
  36. package/dist/services/intelligence/projectIntelligence.d.ts.map +1 -0
  37. package/dist/services/intelligence/projectIntelligence.js +344 -0
  38. package/dist/services/intelligence/projectIntelligence.js.map +1 -0
  39. package/dist/services/intelligence/structureAnalyzer.d.ts +27 -0
  40. package/dist/services/intelligence/structureAnalyzer.d.ts.map +1 -0
  41. package/dist/services/intelligence/structureAnalyzer.js +286 -0
  42. package/dist/services/intelligence/structureAnalyzer.js.map +1 -0
  43. package/dist/services/intelligence/templates.d.ts +22 -0
  44. package/dist/services/intelligence/templates.d.ts.map +1 -0
  45. package/dist/services/intelligence/templates.js +521 -0
  46. package/dist/services/intelligence/templates.js.map +1 -0
  47. package/dist/services/intelligence/types.d.ts +222 -0
  48. package/dist/services/intelligence/types.d.ts.map +1 -0
  49. package/dist/services/intelligence/types.js +7 -0
  50. package/dist/services/intelligence/types.js.map +1 -0
  51. package/dist/services/parsers/baseParser.d.ts +44 -0
  52. package/dist/services/parsers/baseParser.d.ts.map +1 -0
  53. package/dist/services/parsers/baseParser.js +177 -0
  54. package/dist/services/parsers/baseParser.js.map +1 -0
  55. package/dist/services/parsers/goParser.d.ts +28 -0
  56. package/dist/services/parsers/goParser.d.ts.map +1 -0
  57. package/dist/services/parsers/goParser.js +590 -0
  58. package/dist/services/parsers/goParser.js.map +1 -0
  59. package/dist/services/parsers/index.d.ts +62 -0
  60. package/dist/services/parsers/index.d.ts.map +1 -0
  61. package/dist/services/parsers/index.js +121 -0
  62. package/dist/services/parsers/index.js.map +1 -0
  63. package/dist/services/parsers/pythonParser.d.ts +28 -0
  64. package/dist/services/parsers/pythonParser.d.ts.map +1 -0
  65. package/dist/services/parsers/pythonParser.js +663 -0
  66. package/dist/services/parsers/pythonParser.js.map +1 -0
  67. package/dist/services/parsers/rustParser.d.ts +28 -0
  68. package/dist/services/parsers/rustParser.d.ts.map +1 -0
  69. package/dist/services/parsers/rustParser.js +654 -0
  70. package/dist/services/parsers/rustParser.js.map +1 -0
  71. package/dist/services/parsers/types.d.ts +241 -0
  72. package/dist/services/parsers/types.d.ts.map +1 -0
  73. package/dist/services/parsers/types.js +47 -0
  74. package/dist/services/parsers/types.js.map +1 -0
  75. package/dist/tools/definitions.d.ts +87 -0
  76. package/dist/tools/definitions.d.ts.map +1 -1
  77. package/dist/tools/definitions.js +34 -0
  78. package/dist/tools/definitions.js.map +1 -1
  79. package/dist/utils/validation.d.ts +2 -2
  80. package/package.json +1 -1
@@ -0,0 +1,286 @@
1
+ /**
2
+ * Project Structure Analyzer
3
+ * Analyzes project structure and suggests improvements
4
+ * @version 3.3.0
5
+ */
6
+ import * as fs from 'fs';
7
+ import * as path from 'path';
8
+ import { getFrameworkTemplate } from './templates.js';
9
+ /**
10
+ * Analyze project structure against framework template
11
+ */
12
+ export function analyzeStructure(projectPath, projectType) {
13
+ const template = getFrameworkTemplate(projectType);
14
+ const existingDirs = [];
15
+ const existingFiles = [];
16
+ const missingDirs = [];
17
+ const missingFiles = [];
18
+ const improvements = [];
19
+ // Scan existing structure
20
+ const scannedDirs = scanDirectory(projectPath, 3); // Max depth 3
21
+ existingDirs.push(...scannedDirs.dirs);
22
+ existingFiles.push(...scannedDirs.files);
23
+ if (template) {
24
+ // Check required directories
25
+ for (const dir of template.requiredDirs) {
26
+ const fullPath = path.join(projectPath, dir);
27
+ if (!fs.existsSync(fullPath)) {
28
+ missingDirs.push({
29
+ path: dir,
30
+ purpose: getDirPurpose(dir, projectType),
31
+ priority: 'high'
32
+ });
33
+ }
34
+ }
35
+ // Check optional directories
36
+ for (const dir of template.optionalDirs) {
37
+ const fullPath = path.join(projectPath, dir);
38
+ if (!fs.existsSync(fullPath)) {
39
+ missingDirs.push({
40
+ path: dir,
41
+ purpose: getDirPurpose(dir, projectType),
42
+ priority: 'medium'
43
+ });
44
+ }
45
+ }
46
+ // Check required files
47
+ for (const file of template.requiredFiles) {
48
+ const fullPath = path.join(projectPath, file);
49
+ if (!fs.existsSync(fullPath)) {
50
+ missingFiles.push({
51
+ path: file,
52
+ purpose: getFilePurpose(file),
53
+ priority: 'high'
54
+ });
55
+ }
56
+ }
57
+ // Check optional files
58
+ for (const file of template.optionalFiles) {
59
+ const fullPath = path.join(projectPath, file);
60
+ if (!fs.existsSync(fullPath)) {
61
+ missingFiles.push({
62
+ path: file,
63
+ purpose: getFilePurpose(file),
64
+ priority: 'low'
65
+ });
66
+ }
67
+ }
68
+ }
69
+ // Detect common structure issues
70
+ improvements.push(...detectStructureIssues(projectPath, existingDirs, existingFiles, projectType));
71
+ // Calculate structure score
72
+ const structureScore = calculateStructureScore(missingDirs.filter(d => d.priority === 'high').length, missingFiles.filter(f => f.priority === 'high').length, improvements.filter(i => i.priority === 'high').length);
73
+ return {
74
+ rootPath: projectPath,
75
+ projectType,
76
+ structureScore,
77
+ existingDirs,
78
+ missingDirs,
79
+ existingFiles,
80
+ missingFiles,
81
+ improvements
82
+ };
83
+ }
84
+ /**
85
+ * Scan directory recursively
86
+ */
87
+ function scanDirectory(dirPath, maxDepth, currentDepth = 0) {
88
+ const dirs = [];
89
+ const files = [];
90
+ if (currentDepth >= maxDepth || !fs.existsSync(dirPath)) {
91
+ return { dirs, files };
92
+ }
93
+ try {
94
+ const entries = fs.readdirSync(dirPath, { withFileTypes: true });
95
+ for (const entry of entries) {
96
+ // Skip common non-source directories
97
+ if (shouldSkipEntry(entry.name))
98
+ continue;
99
+ const relativePath = currentDepth === 0 ? entry.name : entry.name;
100
+ if (entry.isDirectory()) {
101
+ dirs.push(relativePath);
102
+ // Recurse
103
+ const subPath = path.join(dirPath, entry.name);
104
+ const subResult = scanDirectory(subPath, maxDepth, currentDepth + 1);
105
+ dirs.push(...subResult.dirs.map(d => path.join(relativePath, d)));
106
+ files.push(...subResult.files.map(f => path.join(relativePath, f)));
107
+ }
108
+ else if (entry.isFile()) {
109
+ files.push(relativePath);
110
+ }
111
+ }
112
+ }
113
+ catch {
114
+ // Permission denied or other error
115
+ }
116
+ return { dirs, files };
117
+ }
118
+ /**
119
+ * Check if entry should be skipped
120
+ */
121
+ function shouldSkipEntry(name) {
122
+ const skipPatterns = [
123
+ 'node_modules',
124
+ '.git',
125
+ '.next',
126
+ '.nuxt',
127
+ 'dist',
128
+ 'build',
129
+ 'coverage',
130
+ '__pycache__',
131
+ '.venv',
132
+ 'venv',
133
+ 'target',
134
+ '.idea',
135
+ '.vscode'
136
+ ];
137
+ return skipPatterns.includes(name) || name.startsWith('.');
138
+ }
139
+ /**
140
+ * Get directory purpose description
141
+ */
142
+ function getDirPurpose(dir, projectType) {
143
+ const purposes = {
144
+ 'src': 'Source code root directory',
145
+ 'src/components': 'Reusable UI components',
146
+ 'src/hooks': 'Custom React hooks',
147
+ 'src/utils': 'Utility functions and helpers',
148
+ 'src/types': 'TypeScript type definitions',
149
+ 'src/services': 'API and business logic services',
150
+ 'src/contexts': 'React context providers',
151
+ 'src/styles': 'CSS/SCSS stylesheets',
152
+ 'src/stores': 'State management stores',
153
+ 'src/composables': 'Vue composables',
154
+ 'src/views': 'Page-level components',
155
+ 'src/routes': 'Route handlers',
156
+ 'src/middleware': 'Express/Koa middleware',
157
+ 'src/controllers': 'MVC controllers',
158
+ 'src/models': 'Data models',
159
+ 'src/config': 'Configuration files',
160
+ 'src/modules': 'NestJS modules',
161
+ 'src/common': 'Shared utilities and types',
162
+ 'src/guards': 'Auth guards',
163
+ 'src/interceptors': 'Request/response interceptors',
164
+ 'src/filters': 'Exception filters',
165
+ 'src/pipes': 'Validation pipes',
166
+ 'src/decorators': 'Custom decorators',
167
+ 'tests': 'Test files',
168
+ 'test': 'Test files',
169
+ 'public': 'Static assets',
170
+ 'app': 'Application code (Next.js/FastAPI)',
171
+ 'app/api': 'API routes',
172
+ 'app/models': 'Data models',
173
+ 'app/schemas': 'Pydantic schemas',
174
+ 'app/core': 'Core functionality',
175
+ 'app/db': 'Database configuration',
176
+ 'cmd': 'Go command entry points',
177
+ 'internal': 'Private Go packages',
178
+ 'pkg': 'Public Go packages',
179
+ 'api': 'API definitions',
180
+ 'configs': 'Configuration files',
181
+ 'scripts': 'Build/deployment scripts',
182
+ 'docs': 'Documentation'
183
+ };
184
+ return purposes[dir] || `Standard ${projectType} directory`;
185
+ }
186
+ /**
187
+ * Get file purpose description
188
+ */
189
+ function getFilePurpose(file) {
190
+ const purposes = {
191
+ 'package.json': 'Node.js project manifest',
192
+ 'tsconfig.json': 'TypeScript configuration',
193
+ 'next.config.js': 'Next.js configuration',
194
+ 'nest-cli.json': 'NestJS CLI configuration',
195
+ '.eslintrc.js': 'ESLint configuration',
196
+ '.eslintrc.json': 'ESLint configuration',
197
+ 'eslint.config.js': 'ESLint flat configuration',
198
+ '.prettierrc': 'Prettier configuration',
199
+ '.editorconfig': 'Editor settings',
200
+ '.gitignore': 'Git ignore patterns',
201
+ '.env': 'Environment variables',
202
+ '.env.local': 'Local environment variables',
203
+ 'README.md': 'Project documentation',
204
+ 'Dockerfile': 'Docker container definition',
205
+ 'docker-compose.yml': 'Docker compose configuration',
206
+ 'manage.py': 'Django management script',
207
+ 'pyproject.toml': 'Python project configuration',
208
+ 'requirements.txt': 'Python dependencies',
209
+ 'go.mod': 'Go module definition',
210
+ 'go.sum': 'Go dependency checksums',
211
+ 'Cargo.toml': 'Rust project manifest',
212
+ 'Makefile': 'Build automation',
213
+ 'main.go': 'Go entry point',
214
+ 'main.rs': 'Rust entry point',
215
+ 'src/main.ts': 'Application entry point',
216
+ 'src/index.ts': 'Module entry point',
217
+ 'src/index.tsx': 'React entry point',
218
+ 'src/App.tsx': 'Main React component',
219
+ 'src/App.vue': 'Main Vue component',
220
+ 'src/main.py': 'Python entry point',
221
+ 'src/app.module.ts': 'NestJS root module',
222
+ 'vite.config.ts': 'Vite configuration'
223
+ };
224
+ return purposes[file] || 'Project file';
225
+ }
226
+ /**
227
+ * Detect structural issues
228
+ */
229
+ function detectStructureIssues(projectPath, dirs, files, projectType) {
230
+ const improvements = [];
231
+ // Check for flat structure (too many files in root)
232
+ const rootFiles = files.filter(f => !f.includes('/') && !f.includes('\\'));
233
+ const sourceFiles = rootFiles.filter(f => f.endsWith('.ts') || f.endsWith('.js') || f.endsWith('.tsx') || f.endsWith('.jsx'));
234
+ if (sourceFiles.length > 3) {
235
+ improvements.push({
236
+ type: 'reorganize',
237
+ description: `Consider moving source files to src/ directory (${sourceFiles.length} files in root)`,
238
+ priority: 'medium'
239
+ });
240
+ }
241
+ // Check for missing src directory in JS/TS projects
242
+ const jstsProject = ['react-typescript', 'nextjs', 'nestjs', 'express', 'vue-node'].includes(projectType);
243
+ if (jstsProject && !dirs.includes('src') && !dirs.includes('app')) {
244
+ improvements.push({
245
+ type: 'create',
246
+ description: 'Create src/ directory for source code organization',
247
+ priority: 'high'
248
+ });
249
+ }
250
+ // Check for mixed case directory names
251
+ const mixedCaseDirs = dirs.filter(d => {
252
+ const name = path.basename(d);
253
+ return name !== name.toLowerCase() && !name.startsWith('.') && name !== 'README.md';
254
+ });
255
+ if (mixedCaseDirs.length > 0) {
256
+ improvements.push({
257
+ type: 'rename',
258
+ description: `Consider using lowercase directory names for consistency: ${mixedCaseDirs.slice(0, 3).join(', ')}`,
259
+ priority: 'low'
260
+ });
261
+ }
262
+ // Check for test files outside tests directory
263
+ const testFilesInSrc = files.filter(f => (f.includes('.test.') || f.includes('.spec.') || f.includes('__tests__')) &&
264
+ !f.startsWith('tests') && !f.startsWith('test'));
265
+ if (testFilesInSrc.length > 5) {
266
+ improvements.push({
267
+ type: 'move',
268
+ description: 'Consider moving test files to a dedicated tests/ directory',
269
+ priority: 'low'
270
+ });
271
+ }
272
+ return improvements;
273
+ }
274
+ /**
275
+ * Calculate structure score
276
+ */
277
+ function calculateStructureScore(missingHighPriorityDirs, missingHighPriorityFiles, highPriorityIssues) {
278
+ let score = 100;
279
+ // Deduct for missing high priority items
280
+ score -= missingHighPriorityDirs * 10;
281
+ score -= missingHighPriorityFiles * 5;
282
+ score -= highPriorityIssues * 8;
283
+ return Math.max(0, Math.min(100, score));
284
+ }
285
+ export { scanDirectory, getDirPurpose, getFilePurpose };
286
+ //# sourceMappingURL=structureAnalyzer.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"structureAnalyzer.js","sourceRoot":"","sources":["../../../src/services/intelligence/structureAnalyzer.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,22 @@
1
+ /**
2
+ * Framework Templates - Optimal structure definitions per framework
3
+ * @version 3.3.0
4
+ */
5
+ import type { FrameworkTemplate, SmartConfig } from './types.js';
6
+ /**
7
+ * Framework template definitions
8
+ */
9
+ export declare const FRAMEWORK_TEMPLATES: Record<string, FrameworkTemplate>;
10
+ /**
11
+ * Get template for a project type
12
+ */
13
+ export declare function getFrameworkTemplate(projectType: string): FrameworkTemplate | undefined;
14
+ /**
15
+ * Get all available templates
16
+ */
17
+ export declare function getAllTemplates(): FrameworkTemplate[];
18
+ /**
19
+ * Get config template by type
20
+ */
21
+ export declare function getConfigTemplate(configType: string): SmartConfig | undefined;
22
+ //# sourceMappingURL=templates.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"templates.d.ts","sourceRoot":"","sources":["../../../src/services/intelligence/templates.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,KAAK,EAAE,iBAAiB,EAA4B,WAAW,EAAE,MAAM,YAAY,CAAC;AAmO3F;;GAEG;AACH,eAAO,MAAM,mBAAmB,EAAE,MAAM,CAAC,MAAM,EAAE,iBAAiB,CAqRjE,CAAC;AAEF;;GAEG;AACH,wBAAgB,oBAAoB,CAAC,WAAW,EAAE,MAAM,GAAG,iBAAiB,GAAG,SAAS,CAEvF;AAED;;GAEG;AACH,wBAAgB,eAAe,IAAI,iBAAiB,EAAE,CAErD;AAED;;GAEG;AACH,wBAAgB,iBAAiB,CAAC,UAAU,EAAE,MAAM,GAAG,WAAW,GAAG,SAAS,CAS7E"}