codebase-context 1.0.1 → 1.2.1
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 +13 -0
- package/dist/core/analyzer-registry.d.ts.map +1 -1
- package/dist/core/analyzer-registry.js +4 -1
- package/dist/core/analyzer-registry.js.map +1 -1
- package/dist/core/indexer.d.ts.map +1 -1
- package/dist/core/indexer.js +37 -2
- package/dist/core/indexer.js.map +1 -1
- package/dist/core/search.d.ts +9 -0
- package/dist/core/search.d.ts.map +1 -1
- package/dist/core/search.js +81 -0
- package/dist/core/search.js.map +1 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +115 -20
- package/dist/index.js.map +1 -1
- package/dist/types/index.d.ts +4 -0
- package/dist/types/index.d.ts.map +1 -1
- package/dist/utils/git-dates.d.ts +20 -0
- package/dist/utils/git-dates.d.ts.map +1 -0
- package/dist/utils/git-dates.js +73 -0
- package/dist/utils/git-dates.js.map +1 -0
- package/dist/utils/logger.d.ts +36 -0
- package/dist/utils/logger.d.ts.map +1 -0
- package/dist/utils/logger.js +111 -0
- package/dist/utils/logger.js.map +1 -0
- package/dist/utils/usage-tracker.d.ts +110 -1
- package/dist/utils/usage-tracker.d.ts.map +1 -1
- package/dist/utils/usage-tracker.js +310 -8
- package/dist/utils/usage-tracker.js.map +1 -1
- package/package.json +4 -4
|
@@ -8,6 +8,7 @@ export interface LibraryUsageStats {
|
|
|
8
8
|
examples: string[];
|
|
9
9
|
};
|
|
10
10
|
}
|
|
11
|
+
export type PatternTrend = 'Rising' | 'Declining' | 'Stable';
|
|
11
12
|
export interface PatternUsageStats {
|
|
12
13
|
[patternName: string]: {
|
|
13
14
|
primary: {
|
|
@@ -19,11 +20,19 @@ export interface PatternUsageStats {
|
|
|
19
20
|
file: string;
|
|
20
21
|
snippet: string;
|
|
21
22
|
};
|
|
23
|
+
newestFileDate?: string;
|
|
24
|
+
trend?: PatternTrend;
|
|
25
|
+
/** Actionable guidance: "USE: X" or "CAUTION: Y" */
|
|
26
|
+
guidance?: string;
|
|
22
27
|
};
|
|
23
28
|
alsoDetected?: Array<{
|
|
24
29
|
name: string;
|
|
25
30
|
count: number;
|
|
26
31
|
frequency: string;
|
|
32
|
+
newestFileDate?: string;
|
|
33
|
+
trend?: PatternTrend;
|
|
34
|
+
/** Actionable guidance for alternative patterns */
|
|
35
|
+
guidance?: string;
|
|
27
36
|
}>;
|
|
28
37
|
};
|
|
29
38
|
}
|
|
@@ -88,13 +97,14 @@ export interface GoldenFile {
|
|
|
88
97
|
export declare class PatternDetector {
|
|
89
98
|
private patterns;
|
|
90
99
|
private canonicalExamples;
|
|
100
|
+
private patternFileDates;
|
|
91
101
|
private goldenFiles;
|
|
92
102
|
private testFrameworkConfigs;
|
|
93
103
|
constructor(customConfigs?: TestFrameworkConfig[]);
|
|
94
104
|
track(category: string, patternName: string, example?: {
|
|
95
105
|
file: string;
|
|
96
106
|
snippet: string;
|
|
97
|
-
}): void;
|
|
107
|
+
}, fileDate?: Date): void;
|
|
98
108
|
/**
|
|
99
109
|
* Track a file as a potential "Golden File" - a file that demonstrates multiple modern patterns
|
|
100
110
|
*/
|
|
@@ -103,6 +113,23 @@ export declare class PatternDetector {
|
|
|
103
113
|
* Get top N Golden Files - files that best demonstrate all modern patterns together
|
|
104
114
|
*/
|
|
105
115
|
getGoldenFiles(n?: number): GoldenFile[];
|
|
116
|
+
/**
|
|
117
|
+
* Generate actionable guidance from percentage + trend.
|
|
118
|
+
* This is what AI agents can directly consume.
|
|
119
|
+
*
|
|
120
|
+
* Examples:
|
|
121
|
+
* - "USE: inject() – 97% adoption, stable"
|
|
122
|
+
* - "CAUTION: constructor DI – 3%, declining"
|
|
123
|
+
* - "AVOID: BehaviorSubject – legacy pattern, declining"
|
|
124
|
+
*/
|
|
125
|
+
private generateGuidance;
|
|
126
|
+
/**
|
|
127
|
+
* Get robust date for a pattern (P90 percentile) to avoid "single file edit" skew
|
|
128
|
+
* This means we take the date of the 10th percentile newest file.
|
|
129
|
+
* For example, if there are 100 files, we take the 10th newest file's date.
|
|
130
|
+
* This allows ~10% of legacy files to be edited without resetting the trend.
|
|
131
|
+
*/
|
|
132
|
+
private getRobustDate;
|
|
106
133
|
getConsensus(category: string): PatternUsageStats[string] | null;
|
|
107
134
|
getAllPatterns(): PatternUsageStats;
|
|
108
135
|
/**
|
|
@@ -116,5 +143,87 @@ export declare class PatternDetector {
|
|
|
116
143
|
*/
|
|
117
144
|
detectFromCode(content: string, filePath: string): void;
|
|
118
145
|
}
|
|
146
|
+
/**
|
|
147
|
+
* InternalFileGraph - Tracks file-to-file import relationships for internal files only.
|
|
148
|
+
* Used for:
|
|
149
|
+
* 1. Circular dependency detection (toxic coupling)
|
|
150
|
+
* 2. Unused export detection (dead code identification)
|
|
151
|
+
*
|
|
152
|
+
* Unlike ImportGraph which tracks external package usage, this tracks the internal
|
|
153
|
+
* dependency graph between project files.
|
|
154
|
+
*/
|
|
155
|
+
export interface FileExport {
|
|
156
|
+
name: string;
|
|
157
|
+
type: 'class' | 'function' | 'variable' | 'interface' | 'type' | 'default' | 'other';
|
|
158
|
+
}
|
|
159
|
+
export interface CyclePath {
|
|
160
|
+
files: string[];
|
|
161
|
+
length: number;
|
|
162
|
+
}
|
|
163
|
+
export interface UnusedExport {
|
|
164
|
+
file: string;
|
|
165
|
+
exports: string[];
|
|
166
|
+
}
|
|
167
|
+
export declare class InternalFileGraph {
|
|
168
|
+
private imports;
|
|
169
|
+
private exports;
|
|
170
|
+
private importedSymbols;
|
|
171
|
+
private rootPath;
|
|
172
|
+
constructor(rootPath: string);
|
|
173
|
+
/**
|
|
174
|
+
* Normalize a file path to be relative to root and use forward slashes
|
|
175
|
+
*/
|
|
176
|
+
private normalizePath;
|
|
177
|
+
/**
|
|
178
|
+
* Track that importingFile imports importedFile
|
|
179
|
+
* Both should be absolute paths; they will be normalized internally.
|
|
180
|
+
*/
|
|
181
|
+
trackImport(importingFile: string, importedFile: string, importedSymbols?: string[]): void;
|
|
182
|
+
/**
|
|
183
|
+
* Track exports from a file
|
|
184
|
+
*/
|
|
185
|
+
trackExports(filePath: string, fileExports: FileExport[]): void;
|
|
186
|
+
/**
|
|
187
|
+
* Find all circular dependencies in the graph using DFS with recursion stack.
|
|
188
|
+
* Returns unique cycles (avoids duplicates like A->B->A and B->A->B).
|
|
189
|
+
*
|
|
190
|
+
* @param scope Optional path prefix to limit analysis (e.g., 'src/features')
|
|
191
|
+
*/
|
|
192
|
+
findCycles(scope?: string): CyclePath[];
|
|
193
|
+
/**
|
|
194
|
+
* Find exports that are never imported anywhere in the codebase.
|
|
195
|
+
* These may indicate dead code or forgotten APIs.
|
|
196
|
+
*
|
|
197
|
+
* @param scope Optional path prefix to limit analysis
|
|
198
|
+
*/
|
|
199
|
+
findUnusedExports(scope?: string): UnusedExport[];
|
|
200
|
+
/**
|
|
201
|
+
* Get statistics about the internal dependency graph
|
|
202
|
+
*/
|
|
203
|
+
getStats(): {
|
|
204
|
+
files: number;
|
|
205
|
+
edges: number;
|
|
206
|
+
avgDependencies: number;
|
|
207
|
+
};
|
|
208
|
+
/**
|
|
209
|
+
* Serialize for persistence to .codebase-intelligence.json
|
|
210
|
+
*/
|
|
211
|
+
toJSON(): {
|
|
212
|
+
imports: Record<string, string[]>;
|
|
213
|
+
exports: Record<string, FileExport[]>;
|
|
214
|
+
stats: {
|
|
215
|
+
files: number;
|
|
216
|
+
edges: number;
|
|
217
|
+
avgDependencies: number;
|
|
218
|
+
};
|
|
219
|
+
};
|
|
220
|
+
/**
|
|
221
|
+
* Restore from JSON (for loading from .codebase-intelligence.json)
|
|
222
|
+
*/
|
|
223
|
+
static fromJSON(data: {
|
|
224
|
+
imports?: Record<string, string[]>;
|
|
225
|
+
exports?: Record<string, FileExport[]>;
|
|
226
|
+
}, rootPath: string): InternalFileGraph;
|
|
227
|
+
}
|
|
119
228
|
export {};
|
|
120
229
|
//# sourceMappingURL=usage-tracker.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"usage-tracker.d.ts","sourceRoot":"","sources":["../../src/utils/usage-tracker.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,MAAM,WAAW,iBAAiB;IAChC,CAAC,WAAW,EAAE,MAAM,GAAG;QACrB,KAAK,EAAE,MAAM,CAAC;QACd,QAAQ,EAAE,MAAM,EAAE,CAAC;KACpB,CAAC;CACH;AAED,MAAM,WAAW,iBAAiB;IAChC,CAAC,WAAW,EAAE,MAAM,GAAG;QACrB,OAAO,EAAE;YACP,IAAI,EAAE,MAAM,CAAC;YACb,KAAK,EAAE,MAAM,CAAC;YACd,SAAS,EAAE,MAAM,CAAC;YAClB,QAAQ,EAAE,MAAM,EAAE,CAAC;YACnB,gBAAgB,CAAC,EAAE;gBAAE,IAAI,EAAE,MAAM,CAAC;gBAAC,OAAO,EAAE,MAAM,CAAA;aAAE,CAAC;
|
|
1
|
+
{"version":3,"file":"usage-tracker.d.ts","sourceRoot":"","sources":["../../src/utils/usage-tracker.ts"],"names":[],"mappings":"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"}
|
|
@@ -131,20 +131,33 @@ const DEFAULT_TEST_FRAMEWORK_CONFIGS = [
|
|
|
131
131
|
// Generic fallback
|
|
132
132
|
{ name: 'Generic Test', type: 'unit', indicators: ['describe(', 'it(', 'expect('], priority: 10 },
|
|
133
133
|
];
|
|
134
|
+
import { calculateTrend } from "./git-dates.js";
|
|
134
135
|
export class PatternDetector {
|
|
135
136
|
patterns = new Map();
|
|
136
137
|
canonicalExamples = new Map();
|
|
138
|
+
patternFileDates = new Map(); // Track ALL file dates per pattern (timestamps)
|
|
137
139
|
goldenFiles = [];
|
|
138
140
|
testFrameworkConfigs;
|
|
139
141
|
constructor(customConfigs) {
|
|
140
142
|
this.testFrameworkConfigs = customConfigs || DEFAULT_TEST_FRAMEWORK_CONFIGS;
|
|
141
143
|
}
|
|
142
|
-
track(category, patternName, example) {
|
|
144
|
+
track(category, patternName, example, fileDate) {
|
|
143
145
|
if (!this.patterns.has(category)) {
|
|
144
146
|
this.patterns.set(category, new Map());
|
|
145
147
|
}
|
|
146
148
|
const categoryPatterns = this.patterns.get(category);
|
|
147
149
|
categoryPatterns.set(patternName, (categoryPatterns.get(patternName) || 0) + 1);
|
|
150
|
+
// Track file dates for P90 robust trend analysis
|
|
151
|
+
if (fileDate) {
|
|
152
|
+
const dateKey = `${category}:${patternName}`;
|
|
153
|
+
const dates = this.patternFileDates.get(dateKey);
|
|
154
|
+
if (dates) {
|
|
155
|
+
dates.push(fileDate.getTime());
|
|
156
|
+
}
|
|
157
|
+
else {
|
|
158
|
+
this.patternFileDates.set(dateKey, [fileDate.getTime()]);
|
|
159
|
+
}
|
|
160
|
+
}
|
|
148
161
|
// Smart Canonical Example Selection
|
|
149
162
|
const exampleKey = `${category}:${patternName}`;
|
|
150
163
|
if (example) {
|
|
@@ -197,17 +210,97 @@ export class PatternDetector {
|
|
|
197
210
|
.sort((a, b) => b.score - a.score)
|
|
198
211
|
.slice(0, n);
|
|
199
212
|
}
|
|
213
|
+
/**
|
|
214
|
+
* Generate actionable guidance from percentage + trend.
|
|
215
|
+
* This is what AI agents can directly consume.
|
|
216
|
+
*
|
|
217
|
+
* Examples:
|
|
218
|
+
* - "USE: inject() – 97% adoption, stable"
|
|
219
|
+
* - "CAUTION: constructor DI – 3%, declining"
|
|
220
|
+
* - "AVOID: BehaviorSubject – legacy pattern, declining"
|
|
221
|
+
*/
|
|
222
|
+
generateGuidance(patternName, percentage, trend, isAlternative = false, hasRisingAlternative = false) {
|
|
223
|
+
const trendLabel = trend ? `, ${trend.toLowerCase()}` : '';
|
|
224
|
+
// Alternative pattern that is rising (migration target)
|
|
225
|
+
if (isAlternative && trend === 'Rising') {
|
|
226
|
+
return `USE: ${patternName} – ${percentage}%, rising (migration target)`;
|
|
227
|
+
}
|
|
228
|
+
// Primary pattern that is declining while an alternative is rising
|
|
229
|
+
if (!isAlternative && trend === 'Declining' && hasRisingAlternative) {
|
|
230
|
+
return `CAUTION: ${patternName} – ${percentage}%, declining (legacy)`;
|
|
231
|
+
}
|
|
232
|
+
// Primary pattern with high adoption
|
|
233
|
+
if (!isAlternative && percentage >= 80) {
|
|
234
|
+
// If primary is declining, downgrade to PREFER
|
|
235
|
+
if (trend === 'Declining')
|
|
236
|
+
return `PREFER: ${patternName} – ${percentage}% adoption, declining`;
|
|
237
|
+
return `USE: ${patternName} – ${percentage}% adoption${trendLabel}`;
|
|
238
|
+
}
|
|
239
|
+
// Primary pattern with moderate adoption
|
|
240
|
+
if (!isAlternative && percentage >= 50) {
|
|
241
|
+
return `PREFER: ${patternName} – ${percentage}% adoption${trendLabel}`;
|
|
242
|
+
}
|
|
243
|
+
// Alternative pattern that is declining
|
|
244
|
+
if (isAlternative && trend === 'Declining') {
|
|
245
|
+
return `AVOID: ${patternName} – ${percentage}%, declining (legacy)`;
|
|
246
|
+
}
|
|
247
|
+
// Alternative with low adoption
|
|
248
|
+
if (isAlternative && percentage < 20) {
|
|
249
|
+
// If it's rising, we already handled it above. If stable/declining, it's a caution.
|
|
250
|
+
return `CAUTION: ${patternName} – ${percentage}% minority pattern${trendLabel}`;
|
|
251
|
+
}
|
|
252
|
+
// Default: just describe it
|
|
253
|
+
return `${patternName} – ${percentage}%${trendLabel}`;
|
|
254
|
+
}
|
|
255
|
+
/**
|
|
256
|
+
* Get robust date for a pattern (P90 percentile) to avoid "single file edit" skew
|
|
257
|
+
* This means we take the date of the 10th percentile newest file.
|
|
258
|
+
* For example, if there are 100 files, we take the 10th newest file's date.
|
|
259
|
+
* This allows ~10% of legacy files to be edited without resetting the trend.
|
|
260
|
+
*/
|
|
261
|
+
getRobustDate(category, patternName) {
|
|
262
|
+
const dates = this.patternFileDates.get(`${category}:${patternName}`);
|
|
263
|
+
if (!dates || dates.length === 0)
|
|
264
|
+
return undefined;
|
|
265
|
+
// Sort descending (newest first)
|
|
266
|
+
dates.sort((a, b) => b - a);
|
|
267
|
+
// If few samples, trust the newest (not enough for stats)
|
|
268
|
+
if (dates.length < 5)
|
|
269
|
+
return new Date(dates[0]);
|
|
270
|
+
// Use 90th percentile (exclude top 10% outliers)
|
|
271
|
+
// For 100 files, P90 is index 10 (11th newest file)
|
|
272
|
+
// This allows ~10% of legacy files to be edited without resetting the trend
|
|
273
|
+
const p90Index = Math.floor(dates.length * 0.10);
|
|
274
|
+
return new Date(dates[p90Index]);
|
|
275
|
+
}
|
|
200
276
|
getConsensus(category) {
|
|
201
277
|
const categoryPatterns = this.patterns.get(category);
|
|
202
278
|
if (!categoryPatterns || categoryPatterns.size === 0)
|
|
203
279
|
return null;
|
|
204
|
-
const total = Array.from(categoryPatterns.values()).reduce((
|
|
280
|
+
const total = Array.from(categoryPatterns.values()).reduce((a, b) => a + b, 0);
|
|
205
281
|
const sorted = Array.from(categoryPatterns.entries()).sort((a, b) => b[1] - a[1]);
|
|
206
282
|
const [primaryName, primaryCount] = sorted[0];
|
|
207
283
|
const primaryFreq = Math.round((primaryCount / total) * 100);
|
|
208
|
-
// Get canonical example for primary pattern
|
|
209
284
|
const exampleKey = `${category}:${primaryName}`;
|
|
210
285
|
const canonicalExample = this.canonicalExamples.get(exampleKey);
|
|
286
|
+
// v1.2 Fix: Use P90 robust date instead of raw max date
|
|
287
|
+
const primaryDate = this.getRobustDate(category, primaryName);
|
|
288
|
+
const primaryTrend = calculateTrend(primaryDate);
|
|
289
|
+
// v1.2 Fix: Detect if any alternative is Rising to inform primary guidance
|
|
290
|
+
let hasRisingAlternative = false;
|
|
291
|
+
let alternatives = [];
|
|
292
|
+
if (sorted.length > 1) {
|
|
293
|
+
alternatives = sorted.slice(1, 4).map(([name, count]) => {
|
|
294
|
+
const altDate = this.getRobustDate(category, name);
|
|
295
|
+
const altTrend = calculateTrend(altDate);
|
|
296
|
+
const altFreq = Math.round((count / total) * 100);
|
|
297
|
+
if (altTrend === 'Rising')
|
|
298
|
+
hasRisingAlternative = true;
|
|
299
|
+
return { name, count, frequency: altFreq, date: altDate, trend: altTrend };
|
|
300
|
+
});
|
|
301
|
+
}
|
|
302
|
+
// Generate actionable guidance from percentage + trend, now aware of rising alternatives
|
|
303
|
+
const primaryGuidance = this.generateGuidance(primaryName, primaryFreq, primaryTrend, false, hasRisingAlternative);
|
|
211
304
|
const result = {
|
|
212
305
|
primary: {
|
|
213
306
|
name: primaryName,
|
|
@@ -215,13 +308,19 @@ export class PatternDetector {
|
|
|
215
308
|
frequency: `${primaryFreq}%`,
|
|
216
309
|
examples: canonicalExample ? [canonicalExample.file] : [],
|
|
217
310
|
canonicalExample: canonicalExample,
|
|
311
|
+
newestFileDate: primaryDate?.toISOString(),
|
|
312
|
+
trend: primaryTrend,
|
|
313
|
+
guidance: primaryGuidance,
|
|
218
314
|
},
|
|
219
315
|
};
|
|
220
|
-
if (
|
|
221
|
-
result.alsoDetected =
|
|
222
|
-
name,
|
|
223
|
-
count,
|
|
224
|
-
frequency: `${
|
|
316
|
+
if (alternatives.length > 0) {
|
|
317
|
+
result.alsoDetected = alternatives.map(alt => ({
|
|
318
|
+
name: alt.name,
|
|
319
|
+
count: alt.count,
|
|
320
|
+
frequency: `${alt.frequency}%`,
|
|
321
|
+
newestFileDate: alt.date?.toISOString(),
|
|
322
|
+
trend: alt.trend,
|
|
323
|
+
guidance: this.generateGuidance(alt.name, alt.frequency, alt.trend, true),
|
|
225
324
|
}));
|
|
226
325
|
}
|
|
227
326
|
return result;
|
|
@@ -333,4 +432,207 @@ export class PatternDetector {
|
|
|
333
432
|
}
|
|
334
433
|
}
|
|
335
434
|
}
|
|
435
|
+
export class InternalFileGraph {
|
|
436
|
+
// Map: normalized file path -> Set of normalized file paths it imports
|
|
437
|
+
imports = new Map();
|
|
438
|
+
// Map: normalized file path -> exports from that file
|
|
439
|
+
exports = new Map();
|
|
440
|
+
// Map: normalized file path -> Set of what symbols are imported from this file
|
|
441
|
+
importedSymbols = new Map();
|
|
442
|
+
// Root path for relative path conversion
|
|
443
|
+
rootPath;
|
|
444
|
+
constructor(rootPath) {
|
|
445
|
+
this.rootPath = rootPath.replace(/\\/g, '/');
|
|
446
|
+
}
|
|
447
|
+
/**
|
|
448
|
+
* Normalize a file path to be relative to root and use forward slashes
|
|
449
|
+
*/
|
|
450
|
+
normalizePath(filePath) {
|
|
451
|
+
// Convert backslashes to forward slashes
|
|
452
|
+
let normalized = filePath.replace(/\\/g, '/');
|
|
453
|
+
// Make relative to root if absolute
|
|
454
|
+
if (normalized.startsWith(this.rootPath)) {
|
|
455
|
+
normalized = normalized.slice(this.rootPath.length);
|
|
456
|
+
if (normalized.startsWith('/')) {
|
|
457
|
+
normalized = normalized.slice(1);
|
|
458
|
+
}
|
|
459
|
+
}
|
|
460
|
+
// Remove leading ./ if present
|
|
461
|
+
if (normalized.startsWith('./')) {
|
|
462
|
+
normalized = normalized.slice(2);
|
|
463
|
+
}
|
|
464
|
+
return normalized;
|
|
465
|
+
}
|
|
466
|
+
/**
|
|
467
|
+
* Track that importingFile imports importedFile
|
|
468
|
+
* Both should be absolute paths; they will be normalized internally.
|
|
469
|
+
*/
|
|
470
|
+
trackImport(importingFile, importedFile, importedSymbols) {
|
|
471
|
+
const fromFile = this.normalizePath(importingFile);
|
|
472
|
+
const toFile = this.normalizePath(importedFile);
|
|
473
|
+
// Initialize if needed
|
|
474
|
+
if (!this.imports.has(fromFile)) {
|
|
475
|
+
this.imports.set(fromFile, new Set());
|
|
476
|
+
}
|
|
477
|
+
this.imports.get(fromFile).add(toFile);
|
|
478
|
+
// Track which symbols are imported from the target file
|
|
479
|
+
if (importedSymbols && importedSymbols.length > 0) {
|
|
480
|
+
if (!this.importedSymbols.has(toFile)) {
|
|
481
|
+
this.importedSymbols.set(toFile, new Set());
|
|
482
|
+
}
|
|
483
|
+
for (const sym of importedSymbols) {
|
|
484
|
+
if (sym !== '*' && sym !== 'default') {
|
|
485
|
+
this.importedSymbols.get(toFile).add(sym);
|
|
486
|
+
}
|
|
487
|
+
}
|
|
488
|
+
}
|
|
489
|
+
}
|
|
490
|
+
/**
|
|
491
|
+
* Track exports from a file
|
|
492
|
+
*/
|
|
493
|
+
trackExports(filePath, fileExports) {
|
|
494
|
+
const normalized = this.normalizePath(filePath);
|
|
495
|
+
this.exports.set(normalized, fileExports);
|
|
496
|
+
}
|
|
497
|
+
/**
|
|
498
|
+
* Find all circular dependencies in the graph using DFS with recursion stack.
|
|
499
|
+
* Returns unique cycles (avoids duplicates like A->B->A and B->A->B).
|
|
500
|
+
*
|
|
501
|
+
* @param scope Optional path prefix to limit analysis (e.g., 'src/features')
|
|
502
|
+
*/
|
|
503
|
+
findCycles(scope) {
|
|
504
|
+
const visited = new Set();
|
|
505
|
+
const recursionStack = new Set();
|
|
506
|
+
const cycles = [];
|
|
507
|
+
const cycleSignatures = new Set(); // To avoid duplicates
|
|
508
|
+
// Get all files to check
|
|
509
|
+
let filesToCheck = Array.from(this.imports.keys());
|
|
510
|
+
if (scope) {
|
|
511
|
+
filesToCheck = filesToCheck.filter(f => f.startsWith(scope));
|
|
512
|
+
}
|
|
513
|
+
const dfs = (node, path) => {
|
|
514
|
+
visited.add(node);
|
|
515
|
+
recursionStack.add(node);
|
|
516
|
+
path.push(node);
|
|
517
|
+
const neighbors = this.imports.get(node) || new Set();
|
|
518
|
+
for (const neighbor of neighbors) {
|
|
519
|
+
// Apply scope filter to neighbors too
|
|
520
|
+
if (scope && !neighbor.startsWith(scope))
|
|
521
|
+
continue;
|
|
522
|
+
if (recursionStack.has(neighbor)) {
|
|
523
|
+
// Found a cycle! Extract just the cycle portion
|
|
524
|
+
const cycleStart = path.indexOf(neighbor);
|
|
525
|
+
if (cycleStart !== -1) {
|
|
526
|
+
const cyclePath = [...path.slice(cycleStart), neighbor];
|
|
527
|
+
// Create a normalized signature to avoid duplicate cycles
|
|
528
|
+
// Sort by the minimum element to create a canonical form
|
|
529
|
+
const normalized = [...cyclePath.slice(0, -1)].sort();
|
|
530
|
+
const signature = normalized.join('|');
|
|
531
|
+
if (!cycleSignatures.has(signature)) {
|
|
532
|
+
cycleSignatures.add(signature);
|
|
533
|
+
cycles.push({
|
|
534
|
+
files: cyclePath,
|
|
535
|
+
length: cyclePath.length - 1, // -1 because last element = first element
|
|
536
|
+
});
|
|
537
|
+
}
|
|
538
|
+
}
|
|
539
|
+
}
|
|
540
|
+
else if (!visited.has(neighbor)) {
|
|
541
|
+
dfs(neighbor, path);
|
|
542
|
+
}
|
|
543
|
+
}
|
|
544
|
+
path.pop();
|
|
545
|
+
recursionStack.delete(node);
|
|
546
|
+
};
|
|
547
|
+
for (const file of filesToCheck) {
|
|
548
|
+
if (!visited.has(file)) {
|
|
549
|
+
dfs(file, []);
|
|
550
|
+
}
|
|
551
|
+
}
|
|
552
|
+
// Sort by cycle length (shorter cycles are often more problematic)
|
|
553
|
+
return cycles.sort((a, b) => a.length - b.length);
|
|
554
|
+
}
|
|
555
|
+
/**
|
|
556
|
+
* Find exports that are never imported anywhere in the codebase.
|
|
557
|
+
* These may indicate dead code or forgotten APIs.
|
|
558
|
+
*
|
|
559
|
+
* @param scope Optional path prefix to limit analysis
|
|
560
|
+
*/
|
|
561
|
+
findUnusedExports(scope) {
|
|
562
|
+
const result = [];
|
|
563
|
+
for (const [file, fileExports] of this.exports.entries()) {
|
|
564
|
+
// Apply scope filter
|
|
565
|
+
if (scope && !file.startsWith(scope))
|
|
566
|
+
continue;
|
|
567
|
+
// Skip index/barrel files - they often re-export things
|
|
568
|
+
if (file.endsWith('/index.ts') || file.endsWith('/index.js'))
|
|
569
|
+
continue;
|
|
570
|
+
// Skip test files
|
|
571
|
+
if (file.includes('.spec.') || file.includes('.test.'))
|
|
572
|
+
continue;
|
|
573
|
+
const importedFromThisFile = this.importedSymbols.get(file) || new Set();
|
|
574
|
+
const unusedExports = [];
|
|
575
|
+
for (const exp of fileExports) {
|
|
576
|
+
// Skip default exports (commonly used implicitly)
|
|
577
|
+
if (exp.type === 'default')
|
|
578
|
+
continue;
|
|
579
|
+
// Check if this export is imported anywhere
|
|
580
|
+
if (!importedFromThisFile.has(exp.name)) {
|
|
581
|
+
unusedExports.push(exp.name);
|
|
582
|
+
}
|
|
583
|
+
}
|
|
584
|
+
if (unusedExports.length > 0) {
|
|
585
|
+
result.push({ file, exports: unusedExports });
|
|
586
|
+
}
|
|
587
|
+
}
|
|
588
|
+
// Sort by file path for consistent output
|
|
589
|
+
return result.sort((a, b) => a.file.localeCompare(b.file));
|
|
590
|
+
}
|
|
591
|
+
/**
|
|
592
|
+
* Get statistics about the internal dependency graph
|
|
593
|
+
*/
|
|
594
|
+
getStats() {
|
|
595
|
+
const files = this.imports.size;
|
|
596
|
+
let edges = 0;
|
|
597
|
+
for (const deps of this.imports.values()) {
|
|
598
|
+
edges += deps.size;
|
|
599
|
+
}
|
|
600
|
+
return {
|
|
601
|
+
files,
|
|
602
|
+
edges,
|
|
603
|
+
avgDependencies: files > 0 ? Math.round((edges / files) * 10) / 10 : 0,
|
|
604
|
+
};
|
|
605
|
+
}
|
|
606
|
+
/**
|
|
607
|
+
* Serialize for persistence to .codebase-intelligence.json
|
|
608
|
+
*/
|
|
609
|
+
toJSON() {
|
|
610
|
+
const imports = {};
|
|
611
|
+
for (const [file, deps] of this.imports.entries()) {
|
|
612
|
+
imports[file] = Array.from(deps);
|
|
613
|
+
}
|
|
614
|
+
const exports = {};
|
|
615
|
+
for (const [file, exps] of this.exports.entries()) {
|
|
616
|
+
exports[file] = exps;
|
|
617
|
+
}
|
|
618
|
+
return { imports, exports, stats: this.getStats() };
|
|
619
|
+
}
|
|
620
|
+
/**
|
|
621
|
+
* Restore from JSON (for loading from .codebase-intelligence.json)
|
|
622
|
+
*/
|
|
623
|
+
static fromJSON(data, rootPath) {
|
|
624
|
+
const graph = new InternalFileGraph(rootPath);
|
|
625
|
+
if (data.imports) {
|
|
626
|
+
for (const [file, deps] of Object.entries(data.imports)) {
|
|
627
|
+
graph.imports.set(file, new Set(deps));
|
|
628
|
+
}
|
|
629
|
+
}
|
|
630
|
+
if (data.exports) {
|
|
631
|
+
for (const [file, exps] of Object.entries(data.exports)) {
|
|
632
|
+
graph.exports.set(file, exps);
|
|
633
|
+
}
|
|
634
|
+
}
|
|
635
|
+
return graph;
|
|
636
|
+
}
|
|
637
|
+
}
|
|
336
638
|
//# sourceMappingURL=usage-tracker.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"usage-tracker.js","sourceRoot":"","sources":["../../src/utils/usage-tracker.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"usage-tracker.js","sourceRoot":"","sources":["../../src/utils/usage-tracker.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "codebase-context",
|
|
3
|
-
"version": "1.
|
|
3
|
+
"version": "1.2.1",
|
|
4
4
|
"description": "MCP server for semantic codebase indexing and search - gives AI agents real understanding of your codebase",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"main": "./dist/lib.js",
|
|
@@ -58,12 +58,12 @@
|
|
|
58
58
|
],
|
|
59
59
|
"repository": {
|
|
60
60
|
"type": "git",
|
|
61
|
-
"url": "git+https://github.com/PatrickSys/codebase-context
|
|
61
|
+
"url": "git+https://github.com/PatrickSys/codebase-context.git"
|
|
62
62
|
},
|
|
63
63
|
"bugs": {
|
|
64
|
-
"url": "https://github.com/PatrickSys/codebase-context
|
|
64
|
+
"url": "https://github.com/PatrickSys/codebase-context/issues"
|
|
65
65
|
},
|
|
66
|
-
"homepage": "https://github.com/PatrickSys/codebase-context
|
|
66
|
+
"homepage": "https://github.com/PatrickSys/codebase-context#readme",
|
|
67
67
|
"author": {
|
|
68
68
|
"name": "Patrick Rosselló",
|
|
69
69
|
"email": "rossellocolompatrick@gmail.com",
|