code-auditor-mcp 1.21.0 → 2.0.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 (149) hide show
  1. package/dist/adapters/GoAdapter.d.ts +53 -0
  2. package/dist/adapters/GoAdapter.d.ts.map +1 -0
  3. package/dist/adapters/GoAdapter.js +602 -0
  4. package/dist/adapters/GoAdapter.js.map +1 -0
  5. package/dist/adapters/GoConfig.d.ts +35 -0
  6. package/dist/adapters/GoConfig.d.ts.map +1 -0
  7. package/dist/adapters/GoConfig.js +155 -0
  8. package/dist/adapters/GoConfig.js.map +1 -0
  9. package/dist/adapters/LanguageAdapter.d.ts +135 -0
  10. package/dist/adapters/LanguageAdapter.d.ts.map +1 -0
  11. package/dist/adapters/LanguageAdapter.js +47 -0
  12. package/dist/adapters/LanguageAdapter.js.map +1 -0
  13. package/dist/adapters/TypeScriptAdapter.d.ts +43 -0
  14. package/dist/adapters/TypeScriptAdapter.d.ts.map +1 -0
  15. package/dist/adapters/TypeScriptAdapter.js +386 -0
  16. package/dist/adapters/TypeScriptAdapter.js.map +1 -0
  17. package/dist/adapters/UniversalAnalyzer.d.ts +42 -0
  18. package/dist/adapters/UniversalAnalyzer.d.ts.map +1 -0
  19. package/dist/adapters/UniversalAnalyzer.js +103 -0
  20. package/dist/adapters/UniversalAnalyzer.js.map +1 -0
  21. package/dist/adapters/UniversalSOLIDAnalyzer.d.ts +48 -0
  22. package/dist/adapters/UniversalSOLIDAnalyzer.d.ts.map +1 -0
  23. package/dist/adapters/UniversalSOLIDAnalyzer.js +178 -0
  24. package/dist/adapters/UniversalSOLIDAnalyzer.js.map +1 -0
  25. package/dist/adapters/solidAnalyzerCompat.d.ts +21 -0
  26. package/dist/adapters/solidAnalyzerCompat.d.ts.map +1 -0
  27. package/dist/adapters/solidAnalyzerCompat.js +78 -0
  28. package/dist/adapters/solidAnalyzerCompat.js.map +1 -0
  29. package/dist/analyzers/cross-language/APIContractAnalyzer.d.ts +103 -0
  30. package/dist/analyzers/cross-language/APIContractAnalyzer.d.ts.map +1 -0
  31. package/dist/analyzers/cross-language/APIContractAnalyzer.js +425 -0
  32. package/dist/analyzers/cross-language/APIContractAnalyzer.js.map +1 -0
  33. package/dist/analyzers/cross-language/CrossLanguageSOLIDAnalyzer.d.ts +117 -0
  34. package/dist/analyzers/cross-language/CrossLanguageSOLIDAnalyzer.d.ts.map +1 -0
  35. package/dist/analyzers/cross-language/CrossLanguageSOLIDAnalyzer.js +618 -0
  36. package/dist/analyzers/cross-language/CrossLanguageSOLIDAnalyzer.js.map +1 -0
  37. package/dist/analyzers/cross-language/DependencyGraphBuilder.d.ts +129 -0
  38. package/dist/analyzers/cross-language/DependencyGraphBuilder.d.ts.map +1 -0
  39. package/dist/analyzers/cross-language/DependencyGraphBuilder.js +473 -0
  40. package/dist/analyzers/cross-language/DependencyGraphBuilder.js.map +1 -0
  41. package/dist/analyzers/cross-language/SchemaValidator.d.ts +126 -0
  42. package/dist/analyzers/cross-language/SchemaValidator.d.ts.map +1 -0
  43. package/dist/analyzers/cross-language/SchemaValidator.js +522 -0
  44. package/dist/analyzers/cross-language/SchemaValidator.js.map +1 -0
  45. package/dist/analyzers/dataAccessAnalyzerCompat.d.ts +20 -0
  46. package/dist/analyzers/dataAccessAnalyzerCompat.d.ts.map +1 -0
  47. package/dist/analyzers/dataAccessAnalyzerCompat.js +59 -0
  48. package/dist/analyzers/dataAccessAnalyzerCompat.js.map +1 -0
  49. package/dist/analyzers/documentationAnalyzerCompat.d.ts +20 -0
  50. package/dist/analyzers/documentationAnalyzerCompat.d.ts.map +1 -0
  51. package/dist/analyzers/documentationAnalyzerCompat.js +52 -0
  52. package/dist/analyzers/documentationAnalyzerCompat.js.map +1 -0
  53. package/dist/analyzers/dryAnalyzerCompat.d.ts +20 -0
  54. package/dist/analyzers/dryAnalyzerCompat.d.ts.map +1 -0
  55. package/dist/analyzers/dryAnalyzerCompat.js +44 -0
  56. package/dist/analyzers/dryAnalyzerCompat.js.map +1 -0
  57. package/dist/analyzers/schemaAnalyzerCompat.d.ts +20 -0
  58. package/dist/analyzers/schemaAnalyzerCompat.d.ts.map +1 -0
  59. package/dist/analyzers/schemaAnalyzerCompat.js +69 -0
  60. package/dist/analyzers/schemaAnalyzerCompat.js.map +1 -0
  61. package/dist/analyzers/solidAnalyzerCompat.d.ts +20 -0
  62. package/dist/analyzers/solidAnalyzerCompat.d.ts.map +1 -0
  63. package/dist/analyzers/solidAnalyzerCompat.js +78 -0
  64. package/dist/analyzers/solidAnalyzerCompat.js.map +1 -0
  65. package/dist/analyzers/universal/UniversalDRYAnalyzer.d.ts +71 -0
  66. package/dist/analyzers/universal/UniversalDRYAnalyzer.d.ts.map +1 -0
  67. package/dist/analyzers/universal/UniversalDRYAnalyzer.js +276 -0
  68. package/dist/analyzers/universal/UniversalDRYAnalyzer.js.map +1 -0
  69. package/dist/analyzers/universal/UniversalDataAccessAnalyzer.d.ts +82 -0
  70. package/dist/analyzers/universal/UniversalDataAccessAnalyzer.d.ts.map +1 -0
  71. package/dist/analyzers/universal/UniversalDataAccessAnalyzer.js +489 -0
  72. package/dist/analyzers/universal/UniversalDataAccessAnalyzer.js.map +1 -0
  73. package/dist/analyzers/universal/UniversalDocumentationAnalyzer.d.ts +48 -0
  74. package/dist/analyzers/universal/UniversalDocumentationAnalyzer.d.ts.map +1 -0
  75. package/dist/analyzers/universal/UniversalDocumentationAnalyzer.js +175 -0
  76. package/dist/analyzers/universal/UniversalDocumentationAnalyzer.js.map +1 -0
  77. package/dist/analyzers/universal/UniversalSOLIDAnalyzer.d.ts +64 -0
  78. package/dist/analyzers/universal/UniversalSOLIDAnalyzer.d.ts.map +1 -0
  79. package/dist/analyzers/universal/UniversalSOLIDAnalyzer.js +286 -0
  80. package/dist/analyzers/universal/UniversalSOLIDAnalyzer.js.map +1 -0
  81. package/dist/analyzers/universal/UniversalSchemaAnalyzer.d.ts +119 -0
  82. package/dist/analyzers/universal/UniversalSchemaAnalyzer.d.ts.map +1 -0
  83. package/dist/analyzers/universal/UniversalSchemaAnalyzer.js +812 -0
  84. package/dist/analyzers/universal/UniversalSchemaAnalyzer.js.map +1 -0
  85. package/dist/auditRunner.d.ts.map +1 -1
  86. package/dist/auditRunner.js +20 -8
  87. package/dist/auditRunner.js.map +1 -1
  88. package/dist/codeIndexDB-enhanced.d.ts +80 -0
  89. package/dist/codeIndexDB-enhanced.d.ts.map +1 -0
  90. package/dist/codeIndexDB-enhanced.js +488 -0
  91. package/dist/codeIndexDB-enhanced.js.map +1 -0
  92. package/dist/codeIndexDb.js +2 -2
  93. package/dist/codeIndexDb.js.map +1 -1
  94. package/dist/config/defaults.js +1 -1
  95. package/dist/config/defaults.js.map +1 -1
  96. package/dist/languages/LanguageOrchestrator.d.ts +181 -0
  97. package/dist/languages/LanguageOrchestrator.d.ts.map +1 -0
  98. package/dist/languages/LanguageOrchestrator.js +365 -0
  99. package/dist/languages/LanguageOrchestrator.js.map +1 -0
  100. package/dist/languages/LanguageRegistry.d.ts +43 -0
  101. package/dist/languages/LanguageRegistry.d.ts.map +1 -0
  102. package/dist/languages/LanguageRegistry.js +86 -0
  103. package/dist/languages/LanguageRegistry.js.map +1 -0
  104. package/dist/languages/RuntimeManager.d.ts +181 -0
  105. package/dist/languages/RuntimeManager.d.ts.map +1 -0
  106. package/dist/languages/RuntimeManager.js +841 -0
  107. package/dist/languages/RuntimeManager.js.map +1 -0
  108. package/dist/languages/UniversalAnalyzer.d.ts +37 -0
  109. package/dist/languages/UniversalAnalyzer.d.ts.map +1 -0
  110. package/dist/languages/UniversalAnalyzer.js +101 -0
  111. package/dist/languages/UniversalAnalyzer.js.map +1 -0
  112. package/dist/languages/go/GoAdapter.d.ts +57 -0
  113. package/dist/languages/go/GoAdapter.d.ts.map +1 -0
  114. package/dist/languages/go/GoAdapter.js +360 -0
  115. package/dist/languages/go/GoAdapter.js.map +1 -0
  116. package/dist/languages/index.d.ts +13 -0
  117. package/dist/languages/index.d.ts.map +1 -0
  118. package/dist/languages/index.js +23 -0
  119. package/dist/languages/index.js.map +1 -0
  120. package/dist/languages/types.d.ts +182 -0
  121. package/dist/languages/types.d.ts.map +1 -0
  122. package/dist/languages/types.js +5 -0
  123. package/dist/languages/types.js.map +1 -0
  124. package/dist/languages/typescript/TypeScriptAdapter.d.ts +108 -0
  125. package/dist/languages/typescript/TypeScriptAdapter.d.ts.map +1 -0
  126. package/dist/languages/typescript/TypeScriptAdapter.js +567 -0
  127. package/dist/languages/typescript/TypeScriptAdapter.js.map +1 -0
  128. package/dist/languages/typescript/test-extraction.d.ts +2 -0
  129. package/dist/languages/typescript/test-extraction.d.ts.map +1 -0
  130. package/dist/languages/typescript/test-extraction.js +36 -0
  131. package/dist/languages/typescript/test-extraction.js.map +1 -0
  132. package/dist/mcp-tools-shared.d.ts +3 -0
  133. package/dist/mcp-tools-shared.d.ts.map +1 -1
  134. package/dist/mcp-tools-shared.js +123 -2
  135. package/dist/mcp-tools-shared.js.map +1 -1
  136. package/dist/mcp.js +3 -0
  137. package/dist/mcp.js.map +1 -1
  138. package/dist/types/crossLanguage.d.ts +267 -0
  139. package/dist/types/crossLanguage.d.ts.map +1 -0
  140. package/dist/types/crossLanguage.js +6 -0
  141. package/dist/types/crossLanguage.js.map +1 -0
  142. package/dist/types.d.ts +1 -0
  143. package/dist/types.d.ts.map +1 -1
  144. package/dist/types.js.map +1 -1
  145. package/dist/utils/fileDiscovery.d.ts +6 -0
  146. package/dist/utils/fileDiscovery.d.ts.map +1 -1
  147. package/dist/utils/fileDiscovery.js +12 -1
  148. package/dist/utils/fileDiscovery.js.map +1 -1
  149. package/package.json +19 -20
@@ -0,0 +1,488 @@
1
+ /**
2
+ * Enhanced Code Index Database for Cross-Language Support
3
+ * Extends the existing CodeIndexDB with multi-language capabilities
4
+ */
5
+ import * as FlexSearch from 'flexsearch';
6
+ import { CodeIndexDB } from './codeIndexDB.js';
7
+ /**
8
+ * Enhanced CodeIndexDB with cross-language support
9
+ * Maintains backward compatibility while adding new capabilities
10
+ */
11
+ export class EnhancedCodeIndexDB extends CodeIndexDB {
12
+ // New collections for cross-language support
13
+ crossLanguageEntitiesCollection = null;
14
+ crossReferencesCollection = null;
15
+ apiContractsCollection = null;
16
+ // Enhanced search index for cross-language entities
17
+ crossLanguageSearchIndex;
18
+ migrationCompleted = false;
19
+ constructor(dbPath = ':memory:') {
20
+ super(dbPath);
21
+ // Initialize enhanced FlexSearch for cross-language entities
22
+ const { Document } = FlexSearch;
23
+ this.crossLanguageSearchIndex = new Document({
24
+ document: {
25
+ id: '$loki',
26
+ index: [
27
+ {
28
+ field: 'name',
29
+ tokenize: 'full',
30
+ optimize: true,
31
+ resolution: 9,
32
+ bidirectional: true,
33
+ weight: 10
34
+ },
35
+ {
36
+ field: 'signature',
37
+ tokenize: 'full',
38
+ optimize: true,
39
+ resolution: 9,
40
+ weight: 9
41
+ },
42
+ {
43
+ field: 'purpose',
44
+ tokenize: 'full',
45
+ optimize: true,
46
+ resolution: 9,
47
+ weight: 8
48
+ },
49
+ {
50
+ field: 'context',
51
+ tokenize: 'full',
52
+ optimize: true,
53
+ resolution: 9,
54
+ weight: 7
55
+ },
56
+ {
57
+ field: 'language',
58
+ tokenize: 'full',
59
+ optimize: true,
60
+ resolution: 9,
61
+ weight: 6
62
+ },
63
+ {
64
+ field: 'type',
65
+ tokenize: 'full',
66
+ optimize: true,
67
+ resolution: 9,
68
+ weight: 6
69
+ },
70
+ {
71
+ field: 'searchTokens',
72
+ tokenize: 'full',
73
+ optimize: true,
74
+ resolution: 9,
75
+ weight: 5
76
+ },
77
+ {
78
+ field: 'file',
79
+ tokenize: 'full',
80
+ optimize: true,
81
+ resolution: 9,
82
+ weight: 3
83
+ }
84
+ ]
85
+ }
86
+ });
87
+ }
88
+ /**
89
+ * Initialize enhanced collections
90
+ */
91
+ async initializeEnhanced() {
92
+ await this.initialize(); // Initialize base collections first
93
+ // Initialize cross-language collections
94
+ this.crossLanguageEntitiesCollection = this.getDatabase().addCollection('crossLanguageEntities', {
95
+ indices: ['id', 'name', 'language', 'type', 'file'],
96
+ unique: ['id']
97
+ });
98
+ this.crossReferencesCollection = this.getDatabase().addCollection('crossReferences', {
99
+ indices: ['sourceId', 'targetId', 'sourceLanguage', 'targetLanguage', 'type']
100
+ });
101
+ this.apiContractsCollection = this.getDatabase().addCollection('apiContracts', {
102
+ indices: ['entityId', 'version']
103
+ });
104
+ console.log('[EnhancedCodeIndexDB] Cross-language collections initialized');
105
+ }
106
+ /**
107
+ * Migrate existing data to cross-language format
108
+ */
109
+ async migrateToEnhanced(options = {
110
+ preserveExisting: true,
111
+ enhanceMetadata: true,
112
+ buildReferences: false,
113
+ validateContracts: false
114
+ }) {
115
+ if (this.migrationCompleted) {
116
+ console.log('[EnhancedCodeIndexDB] Migration already completed');
117
+ return;
118
+ }
119
+ console.log('[EnhancedCodeIndexDB] Starting migration to enhanced schema...');
120
+ if (!this.crossLanguageEntitiesCollection) {
121
+ await this.initializeEnhanced();
122
+ }
123
+ const adapter = new DefaultCompatibilityAdapter();
124
+ // Migrate existing functions
125
+ const existingFunctions = await this.getAllFunctions();
126
+ for (const func of existingFunctions) {
127
+ const entity = adapter.convertFunction(func);
128
+ await this.addCrossLanguageEntity(entity);
129
+ }
130
+ // Migrate existing components (if any)
131
+ // Note: This assumes components are stored somehow in the base class
132
+ // Implementation would depend on how components are currently stored
133
+ console.log(`[EnhancedCodeIndexDB] Migrated ${existingFunctions.length} functions to cross-language format`);
134
+ this.migrationCompleted = true;
135
+ }
136
+ /**
137
+ * Add a cross-language entity to the index
138
+ */
139
+ async addCrossLanguageEntity(entity) {
140
+ if (!this.crossLanguageEntitiesCollection) {
141
+ await this.initializeEnhanced();
142
+ }
143
+ // Ensure required fields
144
+ const enhancedEntity = {
145
+ ...entity,
146
+ id: entity.id || this.generateEntityId(entity),
147
+ searchTokens: entity.searchTokens || this.generateSearchTokens(entity),
148
+ createdAt: new Date(),
149
+ updatedAt: new Date()
150
+ };
151
+ // Check for existing entity
152
+ const existing = this.crossLanguageEntitiesCollection.findOne({ id: enhancedEntity.id });
153
+ if (existing) {
154
+ // Update existing
155
+ Object.assign(existing, enhancedEntity);
156
+ existing.updatedAt = new Date();
157
+ this.crossLanguageEntitiesCollection.update(existing);
158
+ }
159
+ else {
160
+ // Add new
161
+ this.crossLanguageEntitiesCollection.insert(enhancedEntity);
162
+ }
163
+ // Update search index
164
+ this.crossLanguageSearchIndex.add(enhancedEntity);
165
+ }
166
+ /**
167
+ * Add cross-reference between entities
168
+ */
169
+ async addCrossReference(reference) {
170
+ if (!this.crossReferencesCollection) {
171
+ await this.initializeEnhanced();
172
+ }
173
+ const refDoc = {
174
+ ...reference,
175
+ createdAt: new Date(),
176
+ updatedAt: new Date()
177
+ };
178
+ this.crossReferencesCollection.insert(refDoc);
179
+ }
180
+ /**
181
+ * Add API contract for an entity
182
+ */
183
+ async addAPIContract(entityId, contract) {
184
+ if (!this.apiContractsCollection) {
185
+ await this.initializeEnhanced();
186
+ }
187
+ const contractDoc = {
188
+ ...contract,
189
+ entityId,
190
+ createdAt: new Date(),
191
+ updatedAt: new Date()
192
+ };
193
+ // Remove existing contract for this entity
194
+ this.apiContractsCollection.removeWhere({ entityId });
195
+ // Add new contract
196
+ this.apiContractsCollection.insert(contractDoc);
197
+ }
198
+ /**
199
+ * Search cross-language entities
200
+ */
201
+ async searchCrossLanguage(query, options = {}) {
202
+ if (!this.crossLanguageEntitiesCollection) {
203
+ await this.initializeEnhanced();
204
+ }
205
+ // Perform FlexSearch
206
+ const searchResults = this.crossLanguageSearchIndex.search(query, {
207
+ limit: 50,
208
+ enrich: true
209
+ });
210
+ const results = [];
211
+ for (const result of searchResults) {
212
+ for (const doc of result.result) {
213
+ const entity = this.crossLanguageEntitiesCollection.get(doc.id);
214
+ if (!entity)
215
+ continue;
216
+ // Apply filters
217
+ if (options.languages && !options.languages.includes(entity.language))
218
+ continue;
219
+ if (options.types && !options.types.includes(entity.type))
220
+ continue;
221
+ const searchResult = {
222
+ entity,
223
+ score: 1.0, // FlexSearch doesn't provide scores directly
224
+ matches: [result.field] // Field that matched
225
+ };
226
+ // Include references if requested
227
+ if (options.includeReferences) {
228
+ searchResult.references = this.crossReferencesCollection.find({
229
+ $or: [
230
+ { sourceId: entity.id },
231
+ { targetId: entity.id }
232
+ ]
233
+ });
234
+ }
235
+ // Include contracts if requested
236
+ if (options.includeContracts) {
237
+ searchResult.contracts = this.apiContractsCollection.find({ entityId: entity.id });
238
+ }
239
+ results.push(searchResult);
240
+ }
241
+ }
242
+ return results;
243
+ }
244
+ /**
245
+ * Find entity by ID
246
+ */
247
+ async findEntityById(id) {
248
+ if (!this.crossLanguageEntitiesCollection) {
249
+ await this.initializeEnhanced();
250
+ }
251
+ return this.crossLanguageEntitiesCollection.findOne({ id }) || null;
252
+ }
253
+ /**
254
+ * Find entities by language
255
+ */
256
+ async findEntitiesByLanguage(language) {
257
+ if (!this.crossLanguageEntitiesCollection) {
258
+ await this.initializeEnhanced();
259
+ }
260
+ return this.crossLanguageEntitiesCollection.find({ language });
261
+ }
262
+ /**
263
+ * Find entities by type
264
+ */
265
+ async findEntitiesByType(type) {
266
+ if (!this.crossLanguageEntitiesCollection) {
267
+ await this.initializeEnhanced();
268
+ }
269
+ return this.crossLanguageEntitiesCollection.find({ type });
270
+ }
271
+ /**
272
+ * Get cross-references for an entity
273
+ */
274
+ async getCrossReferences(entityId) {
275
+ if (!this.crossReferencesCollection) {
276
+ await this.initializeEnhanced();
277
+ }
278
+ return this.crossReferencesCollection.find({
279
+ $or: [
280
+ { sourceId: entityId },
281
+ { targetId: entityId }
282
+ ]
283
+ });
284
+ }
285
+ /**
286
+ * Generate dependency graph
287
+ */
288
+ async generateDependencyGraph(languages) {
289
+ if (!this.crossLanguageEntitiesCollection || !this.crossReferencesCollection) {
290
+ await this.initializeEnhanced();
291
+ }
292
+ const entities = languages
293
+ ? this.crossLanguageEntitiesCollection.find({ language: { $in: languages } })
294
+ : this.crossLanguageEntitiesCollection.find();
295
+ const references = this.crossReferencesCollection.find();
296
+ const nodes = entities.map(entity => ({
297
+ id: entity.id,
298
+ name: entity.name,
299
+ language: entity.language,
300
+ type: entity.type,
301
+ file: entity.file,
302
+ weight: entity.complexity || 1
303
+ }));
304
+ const edges = references.map(ref => ({
305
+ from: ref.sourceId,
306
+ to: ref.targetId,
307
+ type: ref.type,
308
+ weight: ref.confidence,
309
+ protocol: ref.protocol
310
+ }));
311
+ // TODO: Implement cycle detection
312
+ const cycles = [];
313
+ return {
314
+ nodes,
315
+ edges,
316
+ cycles,
317
+ metrics: {
318
+ totalNodes: nodes.length,
319
+ totalEdges: edges.length,
320
+ cycleCount: cycles.length,
321
+ averageDepth: 0, // TODO: Calculate
322
+ maxDepth: 0, // TODO: Calculate
323
+ stronglyConnectedComponents: 0 // TODO: Calculate
324
+ }
325
+ };
326
+ }
327
+ /**
328
+ * Get analysis summary
329
+ */
330
+ async getAnalysisSummary() {
331
+ if (!this.crossLanguageEntitiesCollection || !this.crossReferencesCollection) {
332
+ await this.initializeEnhanced();
333
+ }
334
+ const entities = this.crossLanguageEntitiesCollection.find();
335
+ const references = this.crossReferencesCollection.find();
336
+ const contracts = this.apiContractsCollection.find();
337
+ const entitiesByLanguage = {};
338
+ const entitiesByType = {};
339
+ const complexities = {};
340
+ for (const entity of entities) {
341
+ entitiesByLanguage[entity.language] = (entitiesByLanguage[entity.language] || 0) + 1;
342
+ entitiesByType[entity.type] = (entitiesByType[entity.type] || 0) + 1;
343
+ if (entity.complexity) {
344
+ if (!complexities[entity.language])
345
+ complexities[entity.language] = [];
346
+ complexities[entity.language].push(entity.complexity);
347
+ }
348
+ }
349
+ // Calculate average complexities
350
+ const avgComplexities = {};
351
+ for (const [lang, values] of Object.entries(complexities)) {
352
+ avgComplexities[lang] = values.reduce((a, b) => a + b, 0) / values.length;
353
+ }
354
+ // Find orphaned entities (no references)
355
+ const referencedIds = new Set([
356
+ ...references.map(r => r.sourceId),
357
+ ...references.map(r => r.targetId)
358
+ ]);
359
+ const orphanedEntities = entities
360
+ .filter(e => !referencedIds.has(e.id))
361
+ .map(e => e.id);
362
+ return {
363
+ totalEntities: entities.length,
364
+ entitiesByLanguage,
365
+ entitiesByType,
366
+ crossReferences: references.length,
367
+ apiContracts: contracts.length,
368
+ orphanedEntities,
369
+ complexities: avgComplexities,
370
+ coverage: {} // TODO: Calculate test coverage
371
+ };
372
+ }
373
+ /**
374
+ * Generate entity ID
375
+ */
376
+ generateEntityId(entity) {
377
+ return `${entity.language}:${entity.type}:${entity.file}:${entity.name}:${entity.startLine || 0}`;
378
+ }
379
+ /**
380
+ * Generate search tokens for an entity
381
+ */
382
+ generateSearchTokens(entity) {
383
+ const tokens = new Set();
384
+ // Add name variations
385
+ tokens.add(entity.name);
386
+ tokens.add(entity.name.toLowerCase());
387
+ // Add camelCase breakdown
388
+ const camelCaseTokens = entity.name.replace(/([A-Z])/g, ' $1').trim().split(' ');
389
+ camelCaseTokens.forEach(token => tokens.add(token.toLowerCase()));
390
+ // Add snake_case breakdown
391
+ const snakeCaseTokens = entity.name.split('_');
392
+ snakeCaseTokens.forEach(token => tokens.add(token.toLowerCase()));
393
+ // Add type and language
394
+ tokens.add(entity.type);
395
+ tokens.add(entity.language);
396
+ // Add purpose keywords
397
+ const purposeWords = entity.purpose.split(/\s+/);
398
+ purposeWords.forEach(word => {
399
+ if (word.length > 2)
400
+ tokens.add(word.toLowerCase());
401
+ });
402
+ return Array.from(tokens);
403
+ }
404
+ /**
405
+ * Get access to the underlying database for advanced operations
406
+ */
407
+ getDatabase() {
408
+ // Protected method to access the underlying database
409
+ return this.db;
410
+ }
411
+ }
412
+ /**
413
+ * Default compatibility adapter for migrating existing data
414
+ */
415
+ class DefaultCompatibilityAdapter {
416
+ convertFunction(func) {
417
+ return {
418
+ id: this.generateId('function', func.filePath, func.name, func.lineNumber),
419
+ name: func.name,
420
+ language: func.language || 'typescript',
421
+ file: func.filePath,
422
+ type: 'function',
423
+ startLine: func.startLine,
424
+ endLine: func.endLine,
425
+ lineNumber: func.lineNumber,
426
+ signature: func.name, // Basic signature, could be enhanced
427
+ parameters: [], // Would need to be extracted from enhanced metadata
428
+ purpose: func.purpose,
429
+ context: func.context,
430
+ searchTokens: [],
431
+ calls: [],
432
+ calledBy: [],
433
+ implementedBy: [],
434
+ extendedBy: [],
435
+ metadata: func.metadata
436
+ };
437
+ }
438
+ convertComponent(comp) {
439
+ return {
440
+ id: this.generateId('component', comp.filePath, comp.name, comp.lineNumber),
441
+ name: comp.name,
442
+ language: comp.language || 'typescript',
443
+ file: comp.filePath,
444
+ type: 'component',
445
+ startLine: comp.startLine,
446
+ endLine: comp.endLine,
447
+ lineNumber: comp.lineNumber,
448
+ signature: comp.name,
449
+ parameters: comp.props?.map(prop => ({
450
+ name: prop.name,
451
+ type: prop.type,
452
+ optional: !prop.required,
453
+ language: 'typescript'
454
+ })) || [],
455
+ purpose: comp.purpose,
456
+ context: comp.context,
457
+ searchTokens: [],
458
+ calls: [],
459
+ calledBy: [],
460
+ implementedBy: [],
461
+ extendedBy: [],
462
+ complexity: comp.complexity,
463
+ metadata: comp.metadata
464
+ };
465
+ }
466
+ toFunctionMetadata(entity) {
467
+ return {
468
+ name: entity.name,
469
+ filePath: entity.file,
470
+ lineNumber: entity.lineNumber,
471
+ startLine: entity.startLine,
472
+ endLine: entity.endLine,
473
+ language: entity.language,
474
+ dependencies: [], // Would need to be extracted from references
475
+ purpose: entity.purpose,
476
+ context: entity.context,
477
+ metadata: entity.metadata
478
+ };
479
+ }
480
+ toComponentMetadata(entity) {
481
+ // This would need more implementation based on the ComponentMetadata interface
482
+ throw new Error('Component metadata conversion not implemented');
483
+ }
484
+ generateId(type, filePath, name, line) {
485
+ return `${type}:${filePath}:${name}:${line || 0}`;
486
+ }
487
+ }
488
+ //# sourceMappingURL=codeIndexDB-enhanced.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"codeIndexDB-enhanced.js","sourceRoot":"","sources":["../src/codeIndexDB-enhanced.ts"],"names":[],"mappings":"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"}
@@ -1139,7 +1139,7 @@ export class CodeIndexDB {
1139
1139
  */
1140
1140
  async synchronizeFile(filePath) {
1141
1141
  this.ensureInitialized();
1142
- const fs = require('fs').promises;
1142
+ // fs is already imported at the top of the file
1143
1143
  try {
1144
1144
  // Check if file exists
1145
1145
  await fs.access(filePath);
@@ -1205,7 +1205,7 @@ export class CodeIndexDB {
1205
1205
  */
1206
1206
  async bulkCleanup() {
1207
1207
  this.ensureInitialized();
1208
- const fs = require('fs').promises;
1208
+ // fs is already imported at the top of the file
1209
1209
  const allFunctions = this.functionsCollection.find();
1210
1210
  const fileMap = new Map();
1211
1211
  // Group functions by file