code-auditor-mcp 1.19.0 → 1.21.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 (50) hide show
  1. package/dist/analyzers/schemaAnalyzer.d.ts +21 -0
  2. package/dist/analyzers/schemaAnalyzer.d.ts.map +1 -0
  3. package/dist/analyzers/schemaAnalyzer.js +405 -0
  4. package/dist/analyzers/schemaAnalyzer.js.map +1 -0
  5. package/dist/auditRunner.d.ts.map +1 -1
  6. package/dist/auditRunner.js +5 -1
  7. package/dist/auditRunner.js.map +1 -1
  8. package/dist/codeIndexDb.d.ts +98 -1
  9. package/dist/codeIndexDb.d.ts.map +1 -1
  10. package/dist/codeIndexDb.js +277 -0
  11. package/dist/codeIndexDb.js.map +1 -1
  12. package/dist/mcp-hybrid.d.ts +10 -0
  13. package/dist/mcp-hybrid.d.ts.map +1 -0
  14. package/dist/mcp-hybrid.js +41 -0
  15. package/dist/mcp-hybrid.js.map +1 -0
  16. package/dist/mcp-index.d.ts +11 -0
  17. package/dist/mcp-index.d.ts.map +1 -0
  18. package/dist/mcp-index.js +101 -0
  19. package/dist/mcp-index.js.map +1 -0
  20. package/dist/mcp-tools/workflowGuide.d.ts.map +1 -1
  21. package/dist/mcp-tools/workflowGuide.js +67 -10
  22. package/dist/mcp-tools/workflowGuide.js.map +1 -1
  23. package/dist/mcp-tools-shared.d.ts +46 -0
  24. package/dist/mcp-tools-shared.d.ts.map +1 -0
  25. package/dist/mcp-tools-shared.js +1161 -0
  26. package/dist/mcp-tools-shared.js.map +1 -0
  27. package/dist/mcp-ui-server.d.ts +27 -0
  28. package/dist/mcp-ui-server.d.ts.map +1 -0
  29. package/dist/mcp-ui-server.js +484 -0
  30. package/dist/mcp-ui-server.js.map +1 -0
  31. package/dist/mcp-ui-simple.d.ts +27 -0
  32. package/dist/mcp-ui-simple.d.ts.map +1 -0
  33. package/dist/mcp-ui-simple.js +425 -0
  34. package/dist/mcp-ui-simple.js.map +1 -0
  35. package/dist/mcp.js +122 -24
  36. package/dist/mcp.js.map +1 -1
  37. package/dist/services/CodeMapGenerator.d.ts +32 -0
  38. package/dist/services/CodeMapGenerator.d.ts.map +1 -1
  39. package/dist/services/CodeMapGenerator.js +169 -1
  40. package/dist/services/CodeMapGenerator.js.map +1 -1
  41. package/dist/services/SchemaParser.d.ts +89 -0
  42. package/dist/services/SchemaParser.d.ts.map +1 -0
  43. package/dist/services/SchemaParser.js +434 -0
  44. package/dist/services/SchemaParser.js.map +1 -0
  45. package/dist/types.d.ts +127 -0
  46. package/dist/types.d.ts.map +1 -1
  47. package/dist/types.js.map +1 -1
  48. package/examples/schema-example.json +364 -0
  49. package/examples/schema-example.yaml +137 -0
  50. package/package.json +9 -2
@@ -2,8 +2,9 @@
2
2
  * Code Map Generator
3
3
  * Processes indexed code data into human-readable terminal-friendly maps
4
4
  */
5
- import { getAllFunctions } from '../codeIndexService.js';
5
+ import { getAllFunctions, getDatabase } from '../codeIndexService.js';
6
6
  import path from 'path';
7
+ import { randomBytes } from 'crypto';
7
8
  export class CodeMapGenerator {
8
9
  /**
9
10
  * Generates a complete code map for the project
@@ -24,6 +25,40 @@ export class CodeMapGenerator {
24
25
  dependencies
25
26
  };
26
27
  }
28
+ /**
29
+ * Generates a paginated code map and stores sections in database
30
+ * Returns summary with section references
31
+ */
32
+ async generatePaginatedCodeMap(projectPath, options = {}) {
33
+ // Generate the full code map data
34
+ const fullMap = await this.generateCodeMap(projectPath, options);
35
+ // Generate unique map ID
36
+ const mapId = 'map_' + randomBytes(8).toString('hex');
37
+ // Get database instance
38
+ const db = await getDatabase();
39
+ // Break into sections and store each
40
+ const sections = await this.createCodeMapSections(fullMap, options);
41
+ const sectionInfo = [];
42
+ for (const [sectionType, content] of Object.entries(sections)) {
43
+ await db.storeCodeMapSection(mapId, sectionType, content.text, content.metadata);
44
+ sectionInfo.push({
45
+ type: sectionType,
46
+ description: content.description,
47
+ size: content.text.length
48
+ });
49
+ }
50
+ // Create quick preview (first ~1000 chars)
51
+ const quickPreview = this.createQuickPreview(fullMap, 1000);
52
+ return {
53
+ mapId,
54
+ summary: {
55
+ stats: fullMap.stats,
56
+ sectionsAvailable: sectionInfo,
57
+ totalSections: sectionInfo.length
58
+ },
59
+ quickPreview
60
+ };
61
+ }
27
62
  /**
28
63
  * Formats the code map as terminal-friendly text
29
64
  */
@@ -311,5 +346,138 @@ export class CodeMapGenerator {
311
346
  return `${diffHours} hour${diffHours !== 1 ? 's' : ''} ago`;
312
347
  return `${diffDays} day${diffDays !== 1 ? 's' : ''} ago`;
313
348
  }
349
+ /**
350
+ * Break code map into sections for storage
351
+ */
352
+ async createCodeMapSections(fullMap, options) {
353
+ const sections = {};
354
+ // Overview section
355
+ sections.overview = {
356
+ text: this.formatOverviewSection(fullMap.stats, fullMap.documentation),
357
+ description: "Project overview and statistics",
358
+ metadata: { stats: fullMap.stats }
359
+ };
360
+ // Files section (chunked by directory if large)
361
+ if (fullMap.fileGroups.length <= 20) {
362
+ sections.files = {
363
+ text: this.formatFilesSection(fullMap.fileGroups, options),
364
+ description: "Complete file structure and functions",
365
+ metadata: { fileCount: fullMap.fileGroups.reduce((sum, g) => sum + g.files.length, 0) }
366
+ };
367
+ }
368
+ else {
369
+ // Split into chunks
370
+ const chunkSize = 10;
371
+ for (let i = 0; i < fullMap.fileGroups.length; i += chunkSize) {
372
+ const chunk = fullMap.fileGroups.slice(i, i + chunkSize);
373
+ const chunkNum = Math.floor(i / chunkSize) + 1;
374
+ sections[`files_${chunkNum}`] = {
375
+ text: this.formatFilesSection(chunk, options),
376
+ description: `Files section ${chunkNum} (${chunk.length} directories)`,
377
+ metadata: { chunk: chunkNum, fileCount: chunk.reduce((sum, g) => sum + g.files.length, 0) }
378
+ };
379
+ }
380
+ }
381
+ // Dependencies section
382
+ sections.dependencies = {
383
+ text: this.formatDependenciesSection(fullMap.dependencies),
384
+ description: "Dependency analysis and usage",
385
+ metadata: { dependencyCount: fullMap.dependencies.length }
386
+ };
387
+ // Documentation section (if enabled)
388
+ if (options.includeDocumentation && fullMap.documentation) {
389
+ sections.documentation = {
390
+ text: this.formatDocumentationSection(fullMap.documentation),
391
+ description: "Documentation quality metrics",
392
+ metadata: { coverage: fullMap.documentation.coverageScore }
393
+ };
394
+ }
395
+ return sections;
396
+ }
397
+ /**
398
+ * Create a quick preview of the code map
399
+ */
400
+ createQuickPreview(fullMap, maxLength = 1000) {
401
+ const overview = this.formatOverviewSection(fullMap.stats, fullMap.documentation);
402
+ if (overview.length <= maxLength) {
403
+ // Add a sample of files if we have room
404
+ const remainingSpace = maxLength - overview.length - 50; // Leave some buffer
405
+ const filesSample = this.formatFilesSection(fullMap.fileGroups.slice(0, 2), {});
406
+ const truncatedFiles = filesSample.length > remainingSpace
407
+ ? filesSample.substring(0, remainingSpace) + '...\n\n[Use get_code_map_section to see complete file listing]'
408
+ : filesSample;
409
+ return overview + '\n\n' + truncatedFiles;
410
+ }
411
+ return overview.substring(0, maxLength - 50) + '...\n\n[Use get_code_map_section for complete overview]';
412
+ }
413
+ /**
414
+ * Format individual sections
415
+ */
416
+ formatOverviewSection(stats, documentation) {
417
+ return `📖 CODEBASE OVERVIEW\n\n🎯 STRUCTURE\nFiles: ${stats.totalFiles} | Functions: ${stats.totalFunctions} | Components: ${stats.totalComponents}\nAvg Complexity: ${stats.averageComplexity.toFixed(1)} | High Complexity: ${stats.highComplexityCount} functions\n${documentation ? `Documentation Coverage: ${Math.round(documentation.coverageScore)}%` : ''}\nLast indexed: ${stats.lastIndexed ? this.formatTimeAgo(stats.lastIndexed) : 'never'}\n`;
418
+ }
419
+ formatFilesSection(fileGroups, options) {
420
+ // Use existing formatAsText logic but for files section only
421
+ const result = [];
422
+ result.push('📁 FILES & FUNCTIONS\n');
423
+ for (const group of fileGroups) {
424
+ result.push(`📁 ${group.directory}/`);
425
+ result.push(`├── Functions: ${group.stats.functionCount} | Components: ${group.stats.componentCount}`);
426
+ result.push(`├── Avg Complexity: ${group.stats.averageComplexity.toFixed(1)} | Documentation: ${Math.round(group.stats.documentationScore)}%`);
427
+ result.push('│');
428
+ // Show first few files in detail, then summarize
429
+ const filesToShow = group.files.slice(0, 5);
430
+ for (const file of filesToShow) {
431
+ result.push(`│ 📄 ${file.relativePath} [Lines: ${file.lineCount}]`);
432
+ // Show first few functions
433
+ const functionsToShow = file.functions.slice(0, 3);
434
+ for (const func of functionsToShow) {
435
+ result.push(`│ │ └── 🔧 ${func.name}()`);
436
+ if (func.purpose) {
437
+ result.push(`│ │ └── "${func.purpose}"`);
438
+ }
439
+ }
440
+ if (file.functions.length > 3) {
441
+ result.push(`│ │ └── ... ${file.functions.length - 3} more functions`);
442
+ }
443
+ if (file.unusedImports.length > 0) {
444
+ result.push(`│ │ ⚠️ Unused imports: ${file.unusedImports.slice(0, 3).join(', ')}${file.unusedImports.length > 3 ? `, +${file.unusedImports.length - 3} more` : ''}`);
445
+ }
446
+ result.push('│');
447
+ }
448
+ if (group.files.length > 5) {
449
+ result.push(`│ └── ... ${group.files.length - 5} more files`);
450
+ }
451
+ result.push('');
452
+ }
453
+ return result.join('\n');
454
+ }
455
+ formatDependenciesSection(dependencies) {
456
+ const result = [];
457
+ result.push('🔗 DEPENDENCIES\n');
458
+ const topDeps = dependencies.slice(0, 10);
459
+ for (const dep of topDeps) {
460
+ result.push(`├── ${dep.name} → ${dep.usageCount} functions`);
461
+ if (dep.unusedInFiles.length > 0) {
462
+ const files = dep.unusedInFiles.slice(0, 3);
463
+ result.push(`│ └── ⚠️ Unused in: ${files.join(', ')}${dep.unusedInFiles.length > 3 ? `, +${dep.unusedInFiles.length - 3} more` : ''}`);
464
+ }
465
+ }
466
+ if (dependencies.length > 10) {
467
+ result.push(`└── ... ${dependencies.length - 10} more dependencies`);
468
+ }
469
+ return result.join('\n');
470
+ }
471
+ formatDocumentationSection(documentation) {
472
+ const result = [];
473
+ result.push('📝 DOCUMENTATION QUALITY\n');
474
+ result.push(`├── Functions with JSDoc: ${documentation.documentedFunctions}/${documentation.totalFunctions} (${Math.round((documentation.documentedFunctions / documentation.totalFunctions) * 100)}%)`);
475
+ result.push(`├── Components documented: ${documentation.documentedComponents}/${documentation.totalComponents} (${Math.round((documentation.documentedComponents / documentation.totalComponents) * 100)}%)`);
476
+ result.push(`├── Files with purpose: ${documentation.filesWithPurpose}/${documentation.totalFiles} (${Math.round((documentation.filesWithPurpose / documentation.totalFiles) * 100)}%)`);
477
+ if (documentation.wellDocumentedFiles.length > 0) {
478
+ result.push(`└── Well documented: ${documentation.wellDocumentedFiles.slice(0, 3).join(', ')}`);
479
+ }
480
+ return result.join('\n');
481
+ }
314
482
  }
315
483
  //# sourceMappingURL=CodeMapGenerator.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"CodeMapGenerator.js","sourceRoot":"","sources":["../../src/services/CodeMapGenerator.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"CodeMapGenerator.js","sourceRoot":"","sources":["../../src/services/CodeMapGenerator.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,89 @@
1
+ /**
2
+ * Database Schema Parser and Validator
3
+ * Handles loading, parsing, and validating database schema definitions
4
+ */
5
+ import { SchemaDefinition, DatabaseSchema, SchemaViolation } from '../types.js';
6
+ export interface SchemaParseResult {
7
+ success: boolean;
8
+ schema?: SchemaDefinition;
9
+ violations: SchemaViolation[];
10
+ errors: string[];
11
+ }
12
+ export interface SchemaValidationOptions {
13
+ checkReferences?: boolean;
14
+ checkNamingConventions?: boolean;
15
+ checkIndexes?: boolean;
16
+ strictMode?: boolean;
17
+ allowedDatabaseTypes?: string[];
18
+ }
19
+ export declare class SchemaParser {
20
+ private static readonly SUPPORTED_FORMATS;
21
+ private static readonly DATABASE_TYPES;
22
+ /**
23
+ * Parse schema from file
24
+ */
25
+ parseFromFile(filePath: string, options?: SchemaValidationOptions): Promise<SchemaParseResult>;
26
+ /**
27
+ * Parse schema from string content
28
+ */
29
+ parseFromString(content: string, format: string, options?: SchemaValidationOptions): Promise<SchemaParseResult>;
30
+ /**
31
+ * Validate basic structure of parsed object
32
+ */
33
+ private validateStructure;
34
+ /**
35
+ * Normalize parsed object to typed schema
36
+ */
37
+ private normalizeSchema;
38
+ /**
39
+ * Normalize database object
40
+ */
41
+ private normalizeDatabase;
42
+ /**
43
+ * Normalize table object
44
+ */
45
+ private normalizeTable;
46
+ /**
47
+ * Normalize column object
48
+ */
49
+ private normalizeColumn;
50
+ /**
51
+ * Validate schema content and relationships
52
+ */
53
+ private validateSchema;
54
+ /**
55
+ * Validate individual database
56
+ */
57
+ private validateDatabase;
58
+ /**
59
+ * Validate individual table
60
+ */
61
+ private validateTable;
62
+ /**
63
+ * Validate column definitions
64
+ */
65
+ private validateColumn;
66
+ /**
67
+ * Validate table naming conventions
68
+ */
69
+ private validateTableNaming;
70
+ /**
71
+ * Validate references across tables
72
+ */
73
+ private validateReferences;
74
+ /**
75
+ * Get schema statistics
76
+ */
77
+ getSchemaStats(schema: SchemaDefinition): {
78
+ databaseCount: number;
79
+ tableCount: number;
80
+ columnCount: number;
81
+ referenceCount: number;
82
+ indexCount: number;
83
+ };
84
+ /**
85
+ * Find circular dependencies in schema
86
+ */
87
+ findCircularDependencies(database: DatabaseSchema): string[][];
88
+ }
89
+ //# sourceMappingURL=SchemaParser.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"SchemaParser.d.ts","sourceRoot":"","sources":["../../src/services/SchemaParser.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAWH,OAAO,EACL,gBAAgB,EAChB,cAAc,EAId,eAAe,EAEhB,MAAM,aAAa,CAAC;AAErB,MAAM,WAAW,iBAAiB;IAChC,OAAO,EAAE,OAAO,CAAC;IACjB,MAAM,CAAC,EAAE,gBAAgB,CAAC;IAC1B,UAAU,EAAE,eAAe,EAAE,CAAC;IAC9B,MAAM,EAAE,MAAM,EAAE,CAAC;CAClB;AAED,MAAM,WAAW,uBAAuB;IACtC,eAAe,CAAC,EAAE,OAAO,CAAC;IAC1B,sBAAsB,CAAC,EAAE,OAAO,CAAC;IACjC,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,oBAAoB,CAAC,EAAE,MAAM,EAAE,CAAC;CACjC;AAED,qBAAa,YAAY;IACvB,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,iBAAiB,CAA8B;IACvE,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,cAAc,CAEpC;IAEF;;OAEG;IACG,aAAa,CAAC,QAAQ,EAAE,MAAM,EAAE,OAAO,GAAE,uBAA4B,GAAG,OAAO,CAAC,iBAAiB,CAAC;IAwBxG;;OAEG;IACG,eAAe,CACnB,OAAO,EAAE,MAAM,EACf,MAAM,EAAE,MAAM,EACd,OAAO,GAAE,uBAA4B,GACpC,OAAO,CAAC,iBAAiB,CAAC;IAoD7B;;OAEG;IACH,OAAO,CAAC,iBAAiB;IA6BzB;;OAEG;IACH,OAAO,CAAC,eAAe;IAiBvB;;OAEG;IACH,OAAO,CAAC,iBAAiB;IAkBzB;;OAEG;IACH,OAAO,CAAC,cAAc;IAkBtB;;OAEG;IACH,OAAO,CAAC,eAAe;IAiBvB;;OAEG;IACH,OAAO,CAAC,cAAc;IAUtB;;OAEG;IACH,OAAO,CAAC,gBAAgB;IA2BxB;;OAEG;IACH,OAAO,CAAC,aAAa;IA4BrB;;OAEG;IACH,OAAO,CAAC,cAAc;IA8BtB;;OAEG;IACH,OAAO,CAAC,mBAAmB;IA8B3B;;OAEG;IACH,OAAO,CAAC,kBAAkB;IAsD1B;;OAEG;IACH,cAAc,CAAC,MAAM,EAAE,gBAAgB,GAAG;QACxC,aAAa,EAAE,MAAM,CAAC;QACtB,UAAU,EAAE,MAAM,CAAC;QACnB,WAAW,EAAE,MAAM,CAAC;QACpB,cAAc,EAAE,MAAM,CAAC;QACvB,UAAU,EAAE,MAAM,CAAC;KACpB;IAyBD;;OAEG;IACH,wBAAwB,CAAC,QAAQ,EAAE,cAAc,GAAG,MAAM,EAAE,EAAE;CAqC/D"}