codebase-context 1.2.2 → 1.5.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/LICENSE +21 -21
- package/README.md +292 -87
- package/dist/analyzers/angular/index.d.ts +1 -1
- package/dist/analyzers/angular/index.d.ts.map +1 -1
- package/dist/analyzers/angular/index.js +298 -309
- package/dist/analyzers/angular/index.js.map +1 -1
- package/dist/analyzers/generic/index.d.ts +1 -2
- package/dist/analyzers/generic/index.d.ts.map +1 -1
- package/dist/analyzers/generic/index.js +93 -60
- package/dist/analyzers/generic/index.js.map +1 -1
- package/dist/constants/codebase-context.d.ts +8 -0
- package/dist/constants/codebase-context.d.ts.map +1 -0
- package/dist/constants/codebase-context.js +10 -0
- package/dist/constants/codebase-context.js.map +1 -0
- package/dist/constants/git-patterns.d.ts +12 -0
- package/dist/constants/git-patterns.d.ts.map +1 -0
- package/dist/constants/git-patterns.js +11 -0
- package/dist/constants/git-patterns.js.map +1 -0
- package/dist/core/analyzer-registry.d.ts.map +1 -1
- package/dist/core/analyzer-registry.js +8 -8
- package/dist/core/analyzer-registry.js.map +1 -1
- package/dist/core/indexer.d.ts +11 -1
- package/dist/core/indexer.d.ts.map +1 -1
- package/dist/core/indexer.js +359 -157
- package/dist/core/indexer.js.map +1 -1
- package/dist/core/manifest.d.ts +39 -0
- package/dist/core/manifest.d.ts.map +1 -0
- package/dist/core/manifest.js +86 -0
- package/dist/core/manifest.js.map +1 -0
- package/dist/core/search-quality.d.ts +10 -0
- package/dist/core/search-quality.d.ts.map +1 -0
- package/dist/core/search-quality.js +64 -0
- package/dist/core/search-quality.js.map +1 -0
- package/dist/core/search.d.ts +17 -1
- package/dist/core/search.d.ts.map +1 -1
- package/dist/core/search.js +303 -104
- package/dist/core/search.js.map +1 -1
- package/dist/embeddings/openai.d.ts.map +1 -1
- package/dist/embeddings/openai.js +2 -2
- package/dist/embeddings/openai.js.map +1 -1
- package/dist/embeddings/transformers.d.ts +1 -1
- package/dist/embeddings/transformers.d.ts.map +1 -1
- package/dist/embeddings/transformers.js +19 -15
- package/dist/embeddings/transformers.js.map +1 -1
- package/dist/embeddings/types.d.ts +1 -1
- package/dist/embeddings/types.d.ts.map +1 -1
- package/dist/embeddings/types.js +3 -3
- package/dist/embeddings/types.js.map +1 -1
- package/dist/errors/index.d.ts +8 -0
- package/dist/errors/index.d.ts.map +1 -0
- package/dist/errors/index.js +11 -0
- package/dist/errors/index.js.map +1 -0
- package/dist/index.d.ts +7 -29
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +1125 -362
- package/dist/index.js.map +1 -1
- package/dist/lib.d.ts +18 -18
- package/dist/lib.d.ts.map +1 -1
- package/dist/lib.js +23 -23
- package/dist/lib.js.map +1 -1
- package/dist/memory/git-memory.d.ts +9 -0
- package/dist/memory/git-memory.d.ts.map +1 -0
- package/dist/memory/git-memory.js +51 -0
- package/dist/memory/git-memory.js.map +1 -0
- package/dist/memory/store.d.ts +38 -0
- package/dist/memory/store.d.ts.map +1 -0
- package/dist/memory/store.js +136 -0
- package/dist/memory/store.js.map +1 -0
- package/dist/patterns/semantics.d.ts +4 -0
- package/dist/patterns/semantics.d.ts.map +1 -0
- package/dist/patterns/semantics.js +24 -0
- package/dist/patterns/semantics.js.map +1 -0
- package/dist/preflight/evidence-lock.d.ts +50 -0
- package/dist/preflight/evidence-lock.d.ts.map +1 -0
- package/dist/preflight/evidence-lock.js +130 -0
- package/dist/preflight/evidence-lock.js.map +1 -0
- package/dist/preflight/query-scope.d.ts +3 -0
- package/dist/preflight/query-scope.d.ts.map +1 -0
- package/dist/preflight/query-scope.js +40 -0
- package/dist/preflight/query-scope.js.map +1 -0
- package/dist/resources/uri.d.ts +5 -0
- package/dist/resources/uri.d.ts.map +1 -0
- package/dist/resources/uri.js +15 -0
- package/dist/resources/uri.js.map +1 -0
- package/dist/storage/lancedb.d.ts +1 -0
- package/dist/storage/lancedb.d.ts.map +1 -1
- package/dist/storage/lancedb.js +51 -34
- package/dist/storage/lancedb.js.map +1 -1
- package/dist/storage/types.d.ts +5 -0
- package/dist/storage/types.d.ts.map +1 -1
- package/dist/storage/types.js +2 -1
- package/dist/storage/types.js.map +1 -1
- package/dist/types/index.d.ts +47 -0
- package/dist/types/index.d.ts.map +1 -1
- package/dist/types/index.js +1 -0
- package/dist/types/index.js.map +1 -1
- package/dist/utils/chunking.d.ts.map +1 -1
- package/dist/utils/chunking.js +10 -9
- package/dist/utils/chunking.js.map +1 -1
- package/dist/utils/dependency-detection.d.ts +18 -0
- package/dist/utils/dependency-detection.d.ts.map +1 -0
- package/dist/utils/dependency-detection.js +102 -0
- package/dist/utils/dependency-detection.js.map +1 -0
- package/dist/utils/git-dates.d.ts +1 -0
- package/dist/utils/git-dates.d.ts.map +1 -1
- package/dist/utils/git-dates.js +23 -3
- package/dist/utils/git-dates.js.map +1 -1
- package/dist/utils/language-detection.d.ts.map +1 -1
- package/dist/utils/language-detection.js +69 -17
- package/dist/utils/language-detection.js.map +1 -1
- package/dist/utils/usage-tracker.d.ts +2 -2
- package/dist/utils/usage-tracker.d.ts.map +1 -1
- package/dist/utils/usage-tracker.js +67 -38
- package/dist/utils/usage-tracker.js.map +1 -1
- package/dist/utils/workspace-detection.d.ts +32 -0
- package/dist/utils/workspace-detection.d.ts.map +1 -0
- package/dist/utils/workspace-detection.js +107 -0
- package/dist/utils/workspace-detection.js.map +1 -0
- package/package.json +122 -97
- package/dist/core/file-watcher.d.ts +0 -63
- package/dist/core/file-watcher.d.ts.map +0 -1
- package/dist/core/file-watcher.js +0 -210
- package/dist/core/file-watcher.js.map +0 -1
- package/dist/utils/logger.d.ts +0 -36
- package/dist/utils/logger.d.ts.map +0 -1
- package/dist/utils/logger.js +0 -111
- package/dist/utils/logger.js.map +0 -1
- package/dist/utils/pattern-detector.d.ts +0 -41
- package/dist/utils/pattern-detector.d.ts.map +0 -1
- package/dist/utils/pattern-detector.js +0 -101
- package/dist/utils/pattern-detector.js.map +0 -1
|
@@ -8,8 +8,7 @@ export class AnalyzerRegistry {
|
|
|
8
8
|
register(analyzer) {
|
|
9
9
|
this.analyzers.set(analyzer.name, analyzer);
|
|
10
10
|
// Re-sort by priority (highest first)
|
|
11
|
-
this.sortedAnalyzers = Array.from(this.analyzers.values())
|
|
12
|
-
.sort((a, b) => b.priority - a.priority);
|
|
11
|
+
this.sortedAnalyzers = Array.from(this.analyzers.values()).sort((a, b) => b.priority - a.priority);
|
|
13
12
|
// Debug logging guarded by env var - avoids stderr output during MCP STDIO handshake
|
|
14
13
|
if (process.env.CODEBASE_CONTEXT_DEBUG) {
|
|
15
14
|
console.error(`[DEBUG] Registered analyzer: ${analyzer.name} (priority: ${analyzer.priority})`);
|
|
@@ -18,8 +17,7 @@ export class AnalyzerRegistry {
|
|
|
18
17
|
unregister(name) {
|
|
19
18
|
const deleted = this.analyzers.delete(name);
|
|
20
19
|
if (deleted) {
|
|
21
|
-
this.sortedAnalyzers = Array.from(this.analyzers.values())
|
|
22
|
-
.sort((a, b) => b.priority - a.priority);
|
|
20
|
+
this.sortedAnalyzers = Array.from(this.analyzers.values()).sort((a, b) => b.priority - a.priority);
|
|
23
21
|
}
|
|
24
22
|
return deleted;
|
|
25
23
|
}
|
|
@@ -45,7 +43,7 @@ export class AnalyzerRegistry {
|
|
|
45
43
|
* Find all analyzers that can handle a file
|
|
46
44
|
*/
|
|
47
45
|
findAllAnalyzers(filePath, content) {
|
|
48
|
-
return this.sortedAnalyzers.filter(analyzer => analyzer.canAnalyze(filePath, content));
|
|
46
|
+
return this.sortedAnalyzers.filter((analyzer) => analyzer.canAnalyze(filePath, content));
|
|
49
47
|
}
|
|
50
48
|
/**
|
|
51
49
|
* Analyze a file using the best available analyzer
|
|
@@ -53,7 +51,9 @@ export class AnalyzerRegistry {
|
|
|
53
51
|
async analyzeFile(filePath, content) {
|
|
54
52
|
const analyzer = this.findAnalyzer(filePath, content);
|
|
55
53
|
if (!analyzer) {
|
|
56
|
-
|
|
54
|
+
if (process.env.CODEBASE_CONTEXT_DEBUG) {
|
|
55
|
+
console.error(`[DEBUG] No analyzer found for file: ${filePath}`);
|
|
56
|
+
}
|
|
57
57
|
return null;
|
|
58
58
|
}
|
|
59
59
|
// console.error(`Analyzing ${filePath} with ${analyzer.name} analyzer`);
|
|
@@ -69,10 +69,10 @@ export class AnalyzerRegistry {
|
|
|
69
69
|
* Get analyzer statistics
|
|
70
70
|
*/
|
|
71
71
|
getStats() {
|
|
72
|
-
return this.sortedAnalyzers.map(analyzer => ({
|
|
72
|
+
return this.sortedAnalyzers.map((analyzer) => ({
|
|
73
73
|
name: analyzer.name,
|
|
74
74
|
priority: analyzer.priority,
|
|
75
|
-
extensions: analyzer.supportedExtensions
|
|
75
|
+
extensions: analyzer.supportedExtensions
|
|
76
76
|
}));
|
|
77
77
|
}
|
|
78
78
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"analyzer-registry.js","sourceRoot":"","sources":["../../src/core/analyzer-registry.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAIH,MAAM,OAAO,gBAAgB;IACnB,SAAS,GAAmC,IAAI,GAAG,EAAE,CAAC;IACtD,eAAe,GAAwB,EAAE,CAAC;IAElD,QAAQ,CAAC,QAA2B;QAClC,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,QAAQ,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC;QAE5C,sCAAsC;QACtC,IAAI,CAAC,eAAe,GAAG,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,CAAC
|
|
1
|
+
{"version":3,"file":"analyzer-registry.js","sourceRoot":"","sources":["../../src/core/analyzer-registry.ts"],"names":[],"mappings":"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"}
|
package/dist/core/indexer.d.ts
CHANGED
|
@@ -2,23 +2,33 @@
|
|
|
2
2
|
* Core Indexer - Orchestrates codebase indexing
|
|
3
3
|
* Scans files, delegates to analyzers, creates embeddings, stores in vector DB
|
|
4
4
|
*/
|
|
5
|
-
import { CodebaseMetadata, IndexingProgress, IndexingStats, CodebaseConfig } from
|
|
5
|
+
import { CodebaseMetadata, IndexingProgress, IndexingStats, CodebaseConfig } from '../types/index.js';
|
|
6
6
|
export interface IndexerOptions {
|
|
7
7
|
rootPath: string;
|
|
8
8
|
config?: Partial<CodebaseConfig>;
|
|
9
9
|
onProgress?: (progress: IndexingProgress) => void;
|
|
10
|
+
incrementalOnly?: boolean;
|
|
10
11
|
}
|
|
11
12
|
export declare class CodebaseIndexer {
|
|
12
13
|
private rootPath;
|
|
13
14
|
private config;
|
|
14
15
|
private progress;
|
|
15
16
|
private onProgressCallback?;
|
|
17
|
+
private incrementalOnly;
|
|
16
18
|
constructor(options: IndexerOptions);
|
|
17
19
|
private mergeConfig;
|
|
18
20
|
index(): Promise<IndexingStats>;
|
|
19
21
|
private scanFiles;
|
|
20
22
|
private updateProgress;
|
|
21
23
|
detectMetadata(): Promise<CodebaseMetadata>;
|
|
24
|
+
/**
|
|
25
|
+
* Merge two CodebaseMetadata objects.
|
|
26
|
+
* The 'incoming' metadata takes precedence for non-empty values.
|
|
27
|
+
*/
|
|
28
|
+
private mergeMetadata;
|
|
29
|
+
private mergeDependencies;
|
|
30
|
+
private mergeLayers;
|
|
31
|
+
private mergeStatistics;
|
|
22
32
|
/**
|
|
23
33
|
* Get regex pattern for extracting code snippets based on pattern category and name
|
|
24
34
|
* This maps abstract pattern names to actual code patterns
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"indexer.d.ts","sourceRoot":"","sources":["../../src/core/indexer.ts"],"names":[],"mappings":"AAAA;;;GAGG;
|
|
1
|
+
{"version":3,"file":"indexer.d.ts","sourceRoot":"","sources":["../../src/core/indexer.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAOH,OAAO,EACL,gBAAgB,EAEhB,gBAAgB,EAChB,aAAa,EAEb,cAAc,EACf,MAAM,mBAAmB,CAAC;AA8B3B,MAAM,WAAW,cAAc;IAC7B,QAAQ,EAAE,MAAM,CAAC;IACjB,MAAM,CAAC,EAAE,OAAO,CAAC,cAAc,CAAC,CAAC;IACjC,UAAU,CAAC,EAAE,CAAC,QAAQ,EAAE,gBAAgB,KAAK,IAAI,CAAC;IAClD,eAAe,CAAC,EAAE,OAAO,CAAC;CAC3B;AASD,qBAAa,eAAe;IAC1B,OAAO,CAAC,QAAQ,CAAS;IACzB,OAAO,CAAC,MAAM,CAAiB;IAC/B,OAAO,CAAC,QAAQ,CAAmB;IACnC,OAAO,CAAC,kBAAkB,CAAC,CAAuC;IAClE,OAAO,CAAC,eAAe,CAAU;gBAErB,OAAO,EAAE,cAAc;IAiBnC,OAAO,CAAC,WAAW;IAuDb,KAAK,IAAI,OAAO,CAAC,aAAa,CAAC;YAmgBvB,SAAS;IAiEvB,OAAO,CAAC,cAAc;IAShB,cAAc,IAAI,OAAO,CAAC,gBAAgB,CAAC;IAqFjD;;;OAGG;IACH,OAAO,CAAC,aAAa;IA4BrB,OAAO,CAAC,iBAAiB;IAYzB,OAAO,CAAC,WAAW;IAenB,OAAO,CAAC,eAAe;IAUvB;;;OAGG;IACH,OAAO,CAAC,oBAAoB;IA0B5B,WAAW,IAAI,gBAAgB;CAGhC"}
|