@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,404 @@
1
+ /**
2
+ * Dependency Advisor
3
+ * Analyzes project dependencies and provides recommendations
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 dependencies
11
+ */
12
+ export function analyzeDependencies(projectPath, projectType) {
13
+ const packageManager = detectPackageManager(projectPath);
14
+ const dependencies = extractDependencies(projectPath, packageManager);
15
+ const directDependencies = dependencies.filter(d => d.type === 'production');
16
+ const devDependencies = dependencies.filter(d => d.type === 'dev');
17
+ // Get recommended dependencies for this project type
18
+ const template = getFrameworkTemplate(projectType);
19
+ const recommendedAdditions = findMissingRecommendations(dependencies, template?.recommendedDependencies || [], projectType);
20
+ // Find potentially unnecessary dependencies
21
+ const unnecessaryDependencies = findUnnecessaryDependencies(dependencies, projectType);
22
+ // Calculate dependency score
23
+ const dependencyScore = calculateDependencyScore(dependencies.length, recommendedAdditions.filter(r => r.priority === 'high').length, unnecessaryDependencies.length);
24
+ return {
25
+ packageManager,
26
+ totalDependencies: dependencies.length,
27
+ directDependencies,
28
+ devDependencies,
29
+ outdatedPackages: [], // Would require npm outdated or similar
30
+ vulnerabilities: [], // Would require npm audit or similar
31
+ recommendedAdditions,
32
+ unnecessaryDependencies,
33
+ dependencyScore
34
+ };
35
+ }
36
+ /**
37
+ * Detect package manager used in project
38
+ */
39
+ function detectPackageManager(projectPath) {
40
+ // Check lock files
41
+ if (fs.existsSync(path.join(projectPath, 'pnpm-lock.yaml')))
42
+ return 'pnpm';
43
+ if (fs.existsSync(path.join(projectPath, 'yarn.lock')))
44
+ return 'yarn';
45
+ if (fs.existsSync(path.join(projectPath, 'package-lock.json')))
46
+ return 'npm';
47
+ // Python
48
+ if (fs.existsSync(path.join(projectPath, 'poetry.lock')))
49
+ return 'poetry';
50
+ if (fs.existsSync(path.join(projectPath, 'Pipfile.lock')))
51
+ return 'pip';
52
+ if (fs.existsSync(path.join(projectPath, 'requirements.txt')))
53
+ return 'pip';
54
+ // Rust
55
+ if (fs.existsSync(path.join(projectPath, 'Cargo.lock')))
56
+ return 'cargo';
57
+ // Go
58
+ if (fs.existsSync(path.join(projectPath, 'go.sum')))
59
+ return 'go';
60
+ // Ruby
61
+ if (fs.existsSync(path.join(projectPath, 'Gemfile.lock')))
62
+ return 'bundler';
63
+ // PHP
64
+ if (fs.existsSync(path.join(projectPath, 'composer.lock')))
65
+ return 'composer';
66
+ // Default to npm if package.json exists
67
+ if (fs.existsSync(path.join(projectPath, 'package.json')))
68
+ return 'npm';
69
+ return 'unknown';
70
+ }
71
+ /**
72
+ * Extract dependencies from project files
73
+ */
74
+ function extractDependencies(projectPath, packageManager) {
75
+ const dependencies = [];
76
+ if (['npm', 'yarn', 'pnpm'].includes(packageManager)) {
77
+ const pkgPath = path.join(projectPath, 'package.json');
78
+ if (fs.existsSync(pkgPath)) {
79
+ try {
80
+ const pkg = JSON.parse(fs.readFileSync(pkgPath, 'utf-8'));
81
+ // Production dependencies
82
+ for (const [name, version] of Object.entries(pkg.dependencies || {})) {
83
+ dependencies.push({
84
+ name,
85
+ version: String(version),
86
+ type: 'production'
87
+ });
88
+ }
89
+ // Dev dependencies
90
+ for (const [name, version] of Object.entries(pkg.devDependencies || {})) {
91
+ dependencies.push({
92
+ name,
93
+ version: String(version),
94
+ type: 'dev'
95
+ });
96
+ }
97
+ // Peer dependencies
98
+ for (const [name, version] of Object.entries(pkg.peerDependencies || {})) {
99
+ dependencies.push({
100
+ name,
101
+ version: String(version),
102
+ type: 'peer'
103
+ });
104
+ }
105
+ // Optional dependencies
106
+ for (const [name, version] of Object.entries(pkg.optionalDependencies || {})) {
107
+ dependencies.push({
108
+ name,
109
+ version: String(version),
110
+ type: 'optional'
111
+ });
112
+ }
113
+ }
114
+ catch {
115
+ // Invalid package.json
116
+ }
117
+ }
118
+ }
119
+ else if (packageManager === 'pip' || packageManager === 'poetry') {
120
+ // Try requirements.txt
121
+ const reqPath = path.join(projectPath, 'requirements.txt');
122
+ if (fs.existsSync(reqPath)) {
123
+ try {
124
+ const content = fs.readFileSync(reqPath, 'utf-8');
125
+ const lines = content.split('\n');
126
+ for (const line of lines) {
127
+ const trimmed = line.trim();
128
+ if (!trimmed || trimmed.startsWith('#') || trimmed.startsWith('-'))
129
+ continue;
130
+ // Parse package==version or package>=version etc.
131
+ const match = trimmed.match(/^([a-zA-Z0-9_-]+)(?:[=<>!~]+(.+))?$/);
132
+ if (match) {
133
+ dependencies.push({
134
+ name: match[1],
135
+ version: match[2] || '*',
136
+ type: 'production'
137
+ });
138
+ }
139
+ }
140
+ }
141
+ catch {
142
+ // Invalid file
143
+ }
144
+ }
145
+ // Try pyproject.toml
146
+ const pyprojectPath = path.join(projectPath, 'pyproject.toml');
147
+ if (fs.existsSync(pyprojectPath)) {
148
+ try {
149
+ const content = fs.readFileSync(pyprojectPath, 'utf-8');
150
+ // Simple TOML parsing for dependencies
151
+ const depsMatch = content.match(/\[tool\.poetry\.dependencies\]([\s\S]*?)(?:\[|$)/);
152
+ if (depsMatch) {
153
+ const depsSection = depsMatch[1];
154
+ const lines = depsSection.split('\n');
155
+ for (const line of lines) {
156
+ const match = line.match(/^([a-zA-Z0-9_-]+)\s*=\s*["\']?([^"'\s]+)/);
157
+ if (match && match[1] !== 'python') {
158
+ dependencies.push({
159
+ name: match[1],
160
+ version: match[2],
161
+ type: 'production'
162
+ });
163
+ }
164
+ }
165
+ }
166
+ }
167
+ catch {
168
+ // Invalid file
169
+ }
170
+ }
171
+ }
172
+ else if (packageManager === 'cargo') {
173
+ const cargoPath = path.join(projectPath, 'Cargo.toml');
174
+ if (fs.existsSync(cargoPath)) {
175
+ try {
176
+ const content = fs.readFileSync(cargoPath, 'utf-8');
177
+ // Simple TOML parsing for dependencies
178
+ const depsMatch = content.match(/\[dependencies\]([\s\S]*?)(?:\[|$)/);
179
+ if (depsMatch) {
180
+ const depsSection = depsMatch[1];
181
+ const lines = depsSection.split('\n');
182
+ for (const line of lines) {
183
+ const match = line.match(/^([a-zA-Z0-9_-]+)\s*=\s*["\']?([^"'\s]+)/);
184
+ if (match) {
185
+ dependencies.push({
186
+ name: match[1],
187
+ version: match[2],
188
+ type: 'production'
189
+ });
190
+ }
191
+ }
192
+ }
193
+ // Dev dependencies
194
+ const devDepsMatch = content.match(/\[dev-dependencies\]([\s\S]*?)(?:\[|$)/);
195
+ if (devDepsMatch) {
196
+ const depsSection = devDepsMatch[1];
197
+ const lines = depsSection.split('\n');
198
+ for (const line of lines) {
199
+ const match = line.match(/^([a-zA-Z0-9_-]+)\s*=\s*["\']?([^"'\s]+)/);
200
+ if (match) {
201
+ dependencies.push({
202
+ name: match[1],
203
+ version: match[2],
204
+ type: 'dev'
205
+ });
206
+ }
207
+ }
208
+ }
209
+ }
210
+ catch {
211
+ // Invalid file
212
+ }
213
+ }
214
+ }
215
+ else if (packageManager === 'go') {
216
+ const goModPath = path.join(projectPath, 'go.mod');
217
+ if (fs.existsSync(goModPath)) {
218
+ try {
219
+ const content = fs.readFileSync(goModPath, 'utf-8');
220
+ const requireMatch = content.match(/require\s*\(([\s\S]*?)\)/);
221
+ if (requireMatch) {
222
+ const requires = requireMatch[1];
223
+ const lines = requires.split('\n');
224
+ for (const line of lines) {
225
+ const match = line.trim().match(/^([^\s]+)\s+([^\s]+)/);
226
+ if (match) {
227
+ dependencies.push({
228
+ name: match[1],
229
+ version: match[2],
230
+ type: 'production'
231
+ });
232
+ }
233
+ }
234
+ }
235
+ }
236
+ catch {
237
+ // Invalid file
238
+ }
239
+ }
240
+ }
241
+ return dependencies;
242
+ }
243
+ /**
244
+ * Find missing recommended dependencies
245
+ */
246
+ function findMissingRecommendations(existing, recommended, projectType) {
247
+ const existingNames = new Set(existing.map(d => d.name.toLowerCase()));
248
+ const missing = [];
249
+ for (const rec of recommended) {
250
+ if (!existingNames.has(rec.name.toLowerCase())) {
251
+ missing.push(rec);
252
+ }
253
+ }
254
+ // Add common recommendations based on what's missing
255
+ const jstsProject = ['react-typescript', 'nextjs', 'nestjs', 'express', 'vue-node', 'react-node'].includes(projectType);
256
+ if (jstsProject) {
257
+ // Check for linting
258
+ if (!existingNames.has('eslint')) {
259
+ missing.push({
260
+ name: 'eslint',
261
+ reason: 'Code linting and quality',
262
+ category: 'linting',
263
+ priority: 'high'
264
+ });
265
+ }
266
+ // Check for formatting
267
+ if (!existingNames.has('prettier')) {
268
+ missing.push({
269
+ name: 'prettier',
270
+ reason: 'Code formatting',
271
+ category: 'dx',
272
+ priority: 'high'
273
+ });
274
+ }
275
+ // Check for testing
276
+ const hasVitest = existingNames.has('vitest');
277
+ const hasJest = existingNames.has('jest');
278
+ if (!hasVitest && !hasJest) {
279
+ missing.push({
280
+ name: 'vitest',
281
+ reason: 'Fast unit testing',
282
+ category: 'testing',
283
+ priority: 'high'
284
+ });
285
+ }
286
+ // Check for TypeScript
287
+ if (!existingNames.has('typescript')) {
288
+ missing.push({
289
+ name: 'typescript',
290
+ reason: 'Type safety and better IDE support',
291
+ category: 'types',
292
+ priority: 'high'
293
+ });
294
+ }
295
+ }
296
+ // Python projects
297
+ const pythonProject = ['python-django', 'python-fastapi', 'python-flask'].includes(projectType);
298
+ if (pythonProject) {
299
+ if (!existingNames.has('pytest')) {
300
+ missing.push({
301
+ name: 'pytest',
302
+ reason: 'Testing framework',
303
+ category: 'testing',
304
+ priority: 'high'
305
+ });
306
+ }
307
+ if (!existingNames.has('black') && !existingNames.has('ruff')) {
308
+ missing.push({
309
+ name: 'ruff',
310
+ reason: 'Fast Python linter and formatter',
311
+ category: 'linting',
312
+ priority: 'high'
313
+ });
314
+ }
315
+ if (!existingNames.has('mypy')) {
316
+ missing.push({
317
+ name: 'mypy',
318
+ reason: 'Static type checking',
319
+ category: 'types',
320
+ priority: 'medium'
321
+ });
322
+ }
323
+ }
324
+ return missing;
325
+ }
326
+ /**
327
+ * Find potentially unnecessary dependencies
328
+ */
329
+ function findUnnecessaryDependencies(dependencies, projectType) {
330
+ const unnecessary = [];
331
+ const depNames = new Set(dependencies.map(d => d.name.toLowerCase()));
332
+ // Check for deprecated or redundant packages
333
+ const deprecatedPackages = {
334
+ 'tslint': 'Use ESLint with @typescript-eslint instead',
335
+ 'node-sass': 'Use sass (Dart Sass) instead',
336
+ 'request': 'Use axios, node-fetch, or undici instead',
337
+ 'moment': 'Consider date-fns or dayjs for smaller bundle',
338
+ 'lodash': 'Consider using native ES methods or lodash-es',
339
+ 'underscore': 'Consider using native ES methods',
340
+ 'bluebird': 'Native Promises are now sufficient',
341
+ 'left-pad': 'Use String.prototype.padStart',
342
+ 'is-odd': 'Use n % 2 !== 0',
343
+ 'is-even': 'Use n % 2 === 0'
344
+ };
345
+ for (const dep of dependencies) {
346
+ const lowerName = dep.name.toLowerCase();
347
+ if (deprecatedPackages[lowerName]) {
348
+ unnecessary.push(`${dep.name} - ${deprecatedPackages[lowerName]}`);
349
+ }
350
+ }
351
+ // Check for duplicate functionality
352
+ if (depNames.has('axios') && depNames.has('node-fetch')) {
353
+ unnecessary.push('Multiple HTTP clients (axios and node-fetch) - consider using just one');
354
+ }
355
+ if (depNames.has('moment') && depNames.has('date-fns')) {
356
+ unnecessary.push('Multiple date libraries (moment and date-fns) - consider using just one');
357
+ }
358
+ if (depNames.has('jest') && depNames.has('vitest') && depNames.has('mocha')) {
359
+ unnecessary.push('Multiple test runners - consider standardizing on one');
360
+ }
361
+ return unnecessary;
362
+ }
363
+ /**
364
+ * Calculate dependency health score
365
+ */
366
+ function calculateDependencyScore(totalDeps, missingHighPriority, unnecessaryCount) {
367
+ let score = 100;
368
+ // Deduct for missing high priority dependencies
369
+ score -= missingHighPriority * 10;
370
+ // Deduct for unnecessary dependencies
371
+ score -= unnecessaryCount * 5;
372
+ // Slight deduction for too many dependencies (complexity)
373
+ if (totalDeps > 50) {
374
+ score -= Math.min(15, (totalDeps - 50) * 0.5);
375
+ }
376
+ return Math.max(0, Math.min(100, score));
377
+ }
378
+ /**
379
+ * Generate install command for missing dependencies
380
+ */
381
+ export function generateInstallCommand(recommendations, packageManager, asDev = false) {
382
+ if (recommendations.length === 0)
383
+ return '';
384
+ const packages = recommendations.map(r => r.name).join(' ');
385
+ switch (packageManager) {
386
+ case 'npm':
387
+ return `npm install ${asDev ? '-D' : ''} ${packages}`;
388
+ case 'yarn':
389
+ return `yarn add ${asDev ? '-D' : ''} ${packages}`;
390
+ case 'pnpm':
391
+ return `pnpm add ${asDev ? '-D' : ''} ${packages}`;
392
+ case 'pip':
393
+ case 'poetry':
394
+ return `pip install ${packages}`;
395
+ case 'cargo':
396
+ return `cargo add ${packages}`;
397
+ case 'go':
398
+ return recommendations.map(r => `go get ${r.name}`).join(' && ');
399
+ default:
400
+ return `# Install: ${packages}`;
401
+ }
402
+ }
403
+ export { detectPackageManager, extractDependencies };
404
+ //# sourceMappingURL=dependencyAdvisor.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"dependencyAdvisor.js","sourceRoot":"","sources":["../../../src/services/intelligence/dependencyAdvisor.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,12 @@
1
+ /**
2
+ * Project Intelligence Module - Phase 4
3
+ * Auto-Configuration Intelligence
4
+ * @version 3.3.0
5
+ */
6
+ export type { StructureAnalysis, DirectorySuggestion, FileSuggestion, StructureImprovement, ConfigAnalysis, ConfigFile, ConfigType, ConfigRecommendation, ConfigIssue, ConfigFix, DependencyAnalysis, DependencyInfo, OutdatedPackage, VulnerabilityInfo, DependencyRecommendation, IntelligenceReport, PriorityAction, WorkflowStep, SmartConfig, ConfigCustomization, ConfigOption, FrameworkTemplate } from './types.js';
7
+ export { generateIntelligenceReport, applyAutoFixes, formatIntelligenceReport, analyzeStructure, analyzeConfigurations, analyzeDependencies, generateSmartConfig, applyConfigFix, generateInstallCommand } from './projectIntelligence.js';
8
+ export { getFrameworkTemplate, getAllTemplates, getConfigTemplate, FRAMEWORK_TEMPLATES } from './templates.js';
9
+ export { scanDirectory, getDirPurpose, getFilePurpose } from './structureAnalyzer.js';
10
+ export { parseConfigFile, analyzeConfigFile } from './configGenerator.js';
11
+ export { detectPackageManager, extractDependencies } from './dependencyAdvisor.js';
12
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/services/intelligence/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAGH,YAAY,EACV,iBAAiB,EACjB,mBAAmB,EACnB,cAAc,EACd,oBAAoB,EACpB,cAAc,EACd,UAAU,EACV,UAAU,EACV,oBAAoB,EACpB,WAAW,EACX,SAAS,EACT,kBAAkB,EAClB,cAAc,EACd,eAAe,EACf,iBAAiB,EACjB,wBAAwB,EACxB,kBAAkB,EAClB,cAAc,EACd,YAAY,EACZ,WAAW,EACX,mBAAmB,EACnB,YAAY,EACZ,iBAAiB,EAClB,MAAM,YAAY,CAAC;AAGpB,OAAO,EACL,0BAA0B,EAC1B,cAAc,EACd,wBAAwB,EACxB,gBAAgB,EAChB,qBAAqB,EACrB,mBAAmB,EACnB,mBAAmB,EACnB,cAAc,EACd,sBAAsB,EACvB,MAAM,0BAA0B,CAAC;AAGlC,OAAO,EACL,oBAAoB,EACpB,eAAe,EACf,iBAAiB,EACjB,mBAAmB,EACpB,MAAM,gBAAgB,CAAC;AAGxB,OAAO,EACL,aAAa,EACb,aAAa,EACb,cAAc,EACf,MAAM,wBAAwB,CAAC;AAGhC,OAAO,EACL,eAAe,EACf,iBAAiB,EAClB,MAAM,sBAAsB,CAAC;AAG9B,OAAO,EACL,oBAAoB,EACpB,mBAAmB,EACpB,MAAM,wBAAwB,CAAC"}
@@ -0,0 +1,16 @@
1
+ /**
2
+ * Project Intelligence Module - Phase 4
3
+ * Auto-Configuration Intelligence
4
+ * @version 3.3.0
5
+ */
6
+ // Main service
7
+ export { generateIntelligenceReport, applyAutoFixes, formatIntelligenceReport, analyzeStructure, analyzeConfigurations, analyzeDependencies, generateSmartConfig, applyConfigFix, generateInstallCommand } from './projectIntelligence.js';
8
+ // Templates
9
+ export { getFrameworkTemplate, getAllTemplates, getConfigTemplate, FRAMEWORK_TEMPLATES } from './templates.js';
10
+ // Structure analyzer
11
+ export { scanDirectory, getDirPurpose, getFilePurpose } from './structureAnalyzer.js';
12
+ // Config generator
13
+ export { parseConfigFile, analyzeConfigFile } from './configGenerator.js';
14
+ // Dependency advisor
15
+ export { detectPackageManager, extractDependencies } from './dependencyAdvisor.js';
16
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/services/intelligence/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AA4BH,eAAe;AACf,OAAO,EACL,0BAA0B,EAC1B,cAAc,EACd,wBAAwB,EACxB,gBAAgB,EAChB,qBAAqB,EACrB,mBAAmB,EACnB,mBAAmB,EACnB,cAAc,EACd,sBAAsB,EACvB,MAAM,0BAA0B,CAAC;AAElC,YAAY;AACZ,OAAO,EACL,oBAAoB,EACpB,eAAe,EACf,iBAAiB,EACjB,mBAAmB,EACpB,MAAM,gBAAgB,CAAC;AAExB,qBAAqB;AACrB,OAAO,EACL,aAAa,EACb,aAAa,EACb,cAAc,EACf,MAAM,wBAAwB,CAAC;AAEhC,mBAAmB;AACnB,OAAO,EACL,eAAe,EACf,iBAAiB,EAClB,MAAM,sBAAsB,CAAC;AAE9B,qBAAqB;AACrB,OAAO,EACL,oBAAoB,EACpB,mBAAmB,EACpB,MAAM,wBAAwB,CAAC"}
@@ -0,0 +1,26 @@
1
+ /**
2
+ * Project Intelligence Service
3
+ * Main orchestrator for project analysis and recommendations
4
+ * @version 3.3.0
5
+ */
6
+ import type { IntelligenceReport } from './types.js';
7
+ import { analyzeStructure } from './structureAnalyzer.js';
8
+ import { analyzeConfigurations, generateSmartConfig, applyConfigFix } from './configGenerator.js';
9
+ import { analyzeDependencies, generateInstallCommand } from './dependencyAdvisor.js';
10
+ /**
11
+ * Generate comprehensive project intelligence report
12
+ */
13
+ export declare function generateIntelligenceReport(projectPath: string): Promise<IntelligenceReport>;
14
+ /**
15
+ * Apply auto-fixable actions
16
+ */
17
+ export declare function applyAutoFixes(report: IntelligenceReport, onlyCategory?: 'structure' | 'config' | 'dependencies' | 'security'): Promise<{
18
+ applied: string[];
19
+ failed: string[];
20
+ }>;
21
+ /**
22
+ * Format intelligence report for display
23
+ */
24
+ export declare function formatIntelligenceReport(report: IntelligenceReport): string;
25
+ export { analyzeStructure, analyzeConfigurations, analyzeDependencies, generateSmartConfig, applyConfigFix, generateInstallCommand };
26
+ //# sourceMappingURL=projectIntelligence.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"projectIntelligence.d.ts","sourceRoot":"","sources":["../../../src/services/intelligence/projectIntelligence.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAGH,OAAO,KAAK,EACV,kBAAkB,EAMnB,MAAM,YAAY,CAAC;AACpB,OAAO,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAC;AAC1D,OAAO,EAAE,qBAAqB,EAAE,mBAAmB,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AAClG,OAAO,EAAE,mBAAmB,EAAE,sBAAsB,EAAE,MAAM,wBAAwB,CAAC;AAGrF;;GAEG;AACH,wBAAsB,0BAA0B,CAAC,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,kBAAkB,CAAC,CAyCjG;AAmOD;;GAEG;AACH,wBAAsB,cAAc,CAClC,MAAM,EAAE,kBAAkB,EAC1B,YAAY,CAAC,EAAE,WAAW,GAAG,QAAQ,GAAG,cAAc,GAAG,UAAU,GAClE,OAAO,CAAC;IAAE,OAAO,EAAE,MAAM,EAAE,CAAC;IAAC,MAAM,EAAE,MAAM,EAAE,CAAA;CAAE,CAAC,CAiBlD;AAED;;GAEG;AACH,wBAAgB,wBAAwB,CAAC,MAAM,EAAE,kBAAkB,GAAG,MAAM,CAkF3E;AAED,OAAO,EACL,gBAAgB,EAChB,qBAAqB,EACrB,mBAAmB,EACnB,mBAAmB,EACnB,cAAc,EACd,sBAAsB,EACvB,CAAC"}