codebase-context 1.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 (83) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +74 -0
  3. package/dist/analyzers/angular/index.d.ts +44 -0
  4. package/dist/analyzers/angular/index.d.ts.map +1 -0
  5. package/dist/analyzers/angular/index.js +922 -0
  6. package/dist/analyzers/angular/index.js.map +1 -0
  7. package/dist/analyzers/generic/index.d.ts +23 -0
  8. package/dist/analyzers/generic/index.d.ts.map +1 -0
  9. package/dist/analyzers/generic/index.js +354 -0
  10. package/dist/analyzers/generic/index.js.map +1 -0
  11. package/dist/core/analyzer-registry.d.ts +36 -0
  12. package/dist/core/analyzer-registry.d.ts.map +1 -0
  13. package/dist/core/analyzer-registry.js +78 -0
  14. package/dist/core/analyzer-registry.js.map +1 -0
  15. package/dist/core/file-watcher.d.ts +63 -0
  16. package/dist/core/file-watcher.d.ts.map +1 -0
  17. package/dist/core/file-watcher.js +210 -0
  18. package/dist/core/file-watcher.js.map +1 -0
  19. package/dist/core/indexer.d.ts +29 -0
  20. package/dist/core/indexer.d.ts.map +1 -0
  21. package/dist/core/indexer.js +507 -0
  22. package/dist/core/indexer.js.map +1 -0
  23. package/dist/core/search.d.ts +31 -0
  24. package/dist/core/search.d.ts.map +1 -0
  25. package/dist/core/search.js +307 -0
  26. package/dist/core/search.js.map +1 -0
  27. package/dist/embeddings/index.d.ts +5 -0
  28. package/dist/embeddings/index.d.ts.map +1 -0
  29. package/dist/embeddings/index.js +33 -0
  30. package/dist/embeddings/index.js.map +1 -0
  31. package/dist/embeddings/openai.d.ts +19 -0
  32. package/dist/embeddings/openai.d.ts.map +1 -0
  33. package/dist/embeddings/openai.js +59 -0
  34. package/dist/embeddings/openai.js.map +1 -0
  35. package/dist/embeddings/transformers.d.ts +17 -0
  36. package/dist/embeddings/transformers.d.ts.map +1 -0
  37. package/dist/embeddings/transformers.js +83 -0
  38. package/dist/embeddings/transformers.js.map +1 -0
  39. package/dist/embeddings/types.d.ts +20 -0
  40. package/dist/embeddings/types.d.ts.map +1 -0
  41. package/dist/embeddings/types.js +9 -0
  42. package/dist/embeddings/types.js.map +1 -0
  43. package/dist/index.d.ts +41 -0
  44. package/dist/index.d.ts.map +1 -0
  45. package/dist/index.js +790 -0
  46. package/dist/index.js.map +1 -0
  47. package/dist/lib.d.ts +58 -0
  48. package/dist/lib.d.ts.map +1 -0
  49. package/dist/lib.js +81 -0
  50. package/dist/lib.js.map +1 -0
  51. package/dist/storage/index.d.ts +12 -0
  52. package/dist/storage/index.d.ts.map +1 -0
  53. package/dist/storage/index.js +18 -0
  54. package/dist/storage/index.js.map +1 -0
  55. package/dist/storage/lancedb.d.ts +24 -0
  56. package/dist/storage/lancedb.d.ts.map +1 -0
  57. package/dist/storage/lancedb.js +197 -0
  58. package/dist/storage/lancedb.js.map +1 -0
  59. package/dist/storage/types.d.ts +45 -0
  60. package/dist/storage/types.d.ts.map +1 -0
  61. package/dist/storage/types.js +8 -0
  62. package/dist/storage/types.js.map +1 -0
  63. package/dist/types/index.d.ts +367 -0
  64. package/dist/types/index.d.ts.map +1 -0
  65. package/dist/types/index.js +6 -0
  66. package/dist/types/index.js.map +1 -0
  67. package/dist/utils/chunking.d.ts +23 -0
  68. package/dist/utils/chunking.d.ts.map +1 -0
  69. package/dist/utils/chunking.js +226 -0
  70. package/dist/utils/chunking.js.map +1 -0
  71. package/dist/utils/language-detection.d.ts +29 -0
  72. package/dist/utils/language-detection.d.ts.map +1 -0
  73. package/dist/utils/language-detection.js +127 -0
  74. package/dist/utils/language-detection.js.map +1 -0
  75. package/dist/utils/pattern-detector.d.ts +41 -0
  76. package/dist/utils/pattern-detector.d.ts.map +1 -0
  77. package/dist/utils/pattern-detector.js +101 -0
  78. package/dist/utils/pattern-detector.js.map +1 -0
  79. package/dist/utils/usage-tracker.d.ts +120 -0
  80. package/dist/utils/usage-tracker.d.ts.map +1 -0
  81. package/dist/utils/usage-tracker.js +336 -0
  82. package/dist/utils/usage-tracker.js.map +1 -0
  83. package/package.json +98 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":"file-watcher.d.ts","sourceRoot":"","sources":["../../src/core/file-watcher.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAIH,OAAO,EAAE,YAAY,EAAE,MAAM,QAAQ,CAAC;AAEtC,MAAM,WAAW,kBAAkB;IAC/B,yBAAyB;IACzB,QAAQ,EAAE,MAAM,CAAC;IACjB,uDAAuD;IACvD,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,iEAAiE;IACjE,UAAU,CAAC,EAAE,MAAM,EAAE,CAAC;IACtB,qCAAqC;IACrC,cAAc,CAAC,EAAE,MAAM,EAAE,CAAC;IAC1B,6BAA6B;IAC7B,OAAO,CAAC,EAAE,OAAO,CAAC;CACrB;AAED,MAAM,WAAW,eAAe;IAC5B,IAAI,EAAE,KAAK,GAAG,QAAQ,GAAG,QAAQ,CAAC;IAClC,QAAQ,EAAE,MAAM,CAAC;IACjB,YAAY,EAAE,MAAM,CAAC;IACrB,SAAS,EAAE,IAAI,CAAC;CACnB;AAED,MAAM,MAAM,mBAAmB,GAAG,CAAC,OAAO,EAAE,eAAe,EAAE,KAAK,IAAI,CAAC;AAkBvE,qBAAa,WAAY,SAAQ,YAAY;IACzC,OAAO,CAAC,QAAQ,CAAS;IACzB,OAAO,CAAC,OAAO,CAAiD;IAChE,OAAO,CAAC,QAAQ,CAAqC;IACrD,OAAO,CAAC,cAAc,CAA2C;IACjE,OAAO,CAAC,aAAa,CAA+B;IACpD,OAAO,CAAC,SAAS,CAAS;IAC1B,OAAO,CAAC,KAAK,CAIX;gBAEU,OAAO,EAAE,kBAAkB;IAMvC;;OAEG;IACG,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;IAoB5B;;OAEG;IACH,IAAI,IAAI,IAAI;IAsBZ;;OAEG;IACH,QAAQ,IAAI,OAAO,IAAI,CAAC,KAAK;IAI7B;;OAEG;IACH,QAAQ,IAAI,OAAO;YAIL,cAAc;IAsC5B,OAAO,CAAC,gBAAgB;IAsCxB,OAAO,CAAC,aAAa;IAUrB,OAAO,CAAC,YAAY;IAWpB,OAAO,CAAC,YAAY;IAiBpB,OAAO,CAAC,GAAG;CAKd;AAED;;GAEG;AACH,wBAAgB,iBAAiB,CAC7B,QAAQ,EAAE,MAAM,EAChB,SAAS,EAAE,mBAAmB,EAC9B,OAAO,CAAC,EAAE,OAAO,CAAC,IAAI,CAAC,kBAAkB,EAAE,UAAU,CAAC,CAAC,GACxD,WAAW,CAMb"}
@@ -0,0 +1,210 @@
1
+ /**
2
+ * File Watcher for Incremental Index Updates
3
+ *
4
+ * Watches for file changes in the codebase and triggers selective re-indexing.
5
+ * Uses debouncing to avoid excessive re-indexing on rapid changes.
6
+ */
7
+ import { watch, promises as fs, statSync } from "fs";
8
+ import path from "path";
9
+ import { EventEmitter } from "events";
10
+ const DEFAULT_OPTIONS = {
11
+ debounceMs: 2000,
12
+ extensions: ["ts", "tsx", "js", "jsx", "json", "html", "scss", "css"],
13
+ ignorePatterns: [
14
+ "node_modules",
15
+ "dist",
16
+ ".git",
17
+ ".codebase-index",
18
+ ".codebase-index.json",
19
+ ".codebase-intelligence.json",
20
+ "*.spec.ts", // Watch tests separately if needed
21
+ "*.test.ts",
22
+ ],
23
+ verbose: false,
24
+ };
25
+ export class FileWatcher extends EventEmitter {
26
+ rootPath;
27
+ options;
28
+ watchers = new Map();
29
+ pendingChanges = new Map();
30
+ debounceTimer = null;
31
+ isRunning = false;
32
+ stats = {
33
+ filesWatched: 0,
34
+ changesDetected: 0,
35
+ reindexTriggered: 0,
36
+ };
37
+ constructor(options) {
38
+ super();
39
+ this.rootPath = path.resolve(options.rootPath);
40
+ this.options = { ...DEFAULT_OPTIONS, ...options };
41
+ }
42
+ /**
43
+ * Start watching the codebase for changes
44
+ */
45
+ async start() {
46
+ if (this.isRunning) {
47
+ this.log("Watcher already running");
48
+ return;
49
+ }
50
+ this.log(`Starting file watcher on: ${this.rootPath}`);
51
+ this.isRunning = true;
52
+ try {
53
+ await this.watchDirectory(this.rootPath);
54
+ this.log(`Watching ${this.stats.filesWatched} directories`);
55
+ this.emit("started", { directories: this.stats.filesWatched });
56
+ }
57
+ catch (error) {
58
+ this.isRunning = false;
59
+ this.emit("error", error);
60
+ throw error;
61
+ }
62
+ }
63
+ /**
64
+ * Stop watching for changes
65
+ */
66
+ stop() {
67
+ if (!this.isRunning)
68
+ return;
69
+ this.log("Stopping file watcher");
70
+ // Close all watchers
71
+ for (const [dir, watcher] of this.watchers) {
72
+ watcher.close();
73
+ }
74
+ this.watchers.clear();
75
+ // Clear pending changes
76
+ if (this.debounceTimer) {
77
+ clearTimeout(this.debounceTimer);
78
+ this.debounceTimer = null;
79
+ }
80
+ this.pendingChanges.clear();
81
+ this.isRunning = false;
82
+ this.emit("stopped");
83
+ }
84
+ /**
85
+ * Get current statistics
86
+ */
87
+ getStats() {
88
+ return { ...this.stats };
89
+ }
90
+ /**
91
+ * Check if watcher is active
92
+ */
93
+ isActive() {
94
+ return this.isRunning;
95
+ }
96
+ async watchDirectory(dir) {
97
+ // Skip ignored directories
98
+ const relativePath = path.relative(this.rootPath, dir);
99
+ if (this.shouldIgnore(relativePath)) {
100
+ return;
101
+ }
102
+ try {
103
+ // Watch this directory
104
+ const watcher = watch(dir, { persistent: true }, (eventType, filename) => {
105
+ if (!filename)
106
+ return;
107
+ const filePath = path.join(dir, filename);
108
+ this.handleFileChange(eventType, filePath);
109
+ });
110
+ watcher.on("error", (error) => {
111
+ this.log(`Watcher error on ${dir}: ${error.message}`);
112
+ // Remove broken watcher
113
+ this.watchers.delete(dir);
114
+ });
115
+ this.watchers.set(dir, watcher);
116
+ this.stats.filesWatched++;
117
+ // Recursively watch subdirectories
118
+ const entries = await fs.readdir(dir, { withFileTypes: true });
119
+ for (const entry of entries) {
120
+ if (entry.isDirectory()) {
121
+ await this.watchDirectory(path.join(dir, entry.name));
122
+ }
123
+ }
124
+ }
125
+ catch (error) {
126
+ // Directory might not exist or be inaccessible
127
+ this.log(`Could not watch ${dir}: ${error}`);
128
+ }
129
+ }
130
+ handleFileChange(eventType, filePath) {
131
+ const relativePath = path.relative(this.rootPath, filePath);
132
+ // Skip ignored files
133
+ if (this.shouldIgnore(relativePath)) {
134
+ return;
135
+ }
136
+ // Skip if not a watched extension
137
+ const ext = path.extname(filePath).slice(1);
138
+ if (!this.options.extensions.includes(ext)) {
139
+ return;
140
+ }
141
+ // Determine change type
142
+ let changeType;
143
+ try {
144
+ statSync(filePath);
145
+ changeType = eventType === "rename" ? "add" : "change";
146
+ }
147
+ catch {
148
+ changeType = "delete";
149
+ }
150
+ const event = {
151
+ type: changeType,
152
+ filePath,
153
+ relativePath,
154
+ timestamp: new Date(),
155
+ };
156
+ this.pendingChanges.set(filePath, event);
157
+ this.stats.changesDetected++;
158
+ this.log(`Detected ${changeType}: ${relativePath}`);
159
+ // Debounce the re-index trigger
160
+ this.scheduleFlush();
161
+ }
162
+ scheduleFlush() {
163
+ if (this.debounceTimer) {
164
+ clearTimeout(this.debounceTimer);
165
+ }
166
+ this.debounceTimer = setTimeout(() => {
167
+ this.flushChanges();
168
+ }, this.options.debounceMs);
169
+ }
170
+ flushChanges() {
171
+ if (this.pendingChanges.size === 0)
172
+ return;
173
+ const changes = Array.from(this.pendingChanges.values());
174
+ this.pendingChanges.clear();
175
+ this.stats.reindexTriggered++;
176
+ this.log(`Flushing ${changes.length} changes`);
177
+ this.emit("changes", changes);
178
+ }
179
+ shouldIgnore(relativePath) {
180
+ // Simple pattern matching (not full glob)
181
+ for (const pattern of this.options.ignorePatterns) {
182
+ if (pattern.startsWith("*")) {
183
+ // Extension match: *.spec.ts
184
+ const suffix = pattern.slice(1);
185
+ if (relativePath.endsWith(suffix)) {
186
+ return true;
187
+ }
188
+ }
189
+ else if (relativePath.includes(pattern)) {
190
+ // Directory/path match
191
+ return true;
192
+ }
193
+ }
194
+ return false;
195
+ }
196
+ log(message) {
197
+ if (this.options.verbose) {
198
+ console.error(`[FileWatcher] ${message}`);
199
+ }
200
+ }
201
+ }
202
+ /**
203
+ * Create and configure a file watcher
204
+ */
205
+ export function createFileWatcher(rootPath, onChanges, options) {
206
+ const watcher = new FileWatcher({ rootPath, ...options });
207
+ watcher.on("changes", onChanges);
208
+ return watcher;
209
+ }
210
+ //# sourceMappingURL=file-watcher.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"file-watcher.js","sourceRoot":"","sources":["../../src/core/file-watcher.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,29 @@
1
+ /**
2
+ * Core Indexer - Orchestrates codebase indexing
3
+ * Scans files, delegates to analyzers, creates embeddings, stores in vector DB
4
+ */
5
+ import { CodebaseMetadata, IndexingProgress, IndexingStats, CodebaseConfig } from "../types/index.js";
6
+ export interface IndexerOptions {
7
+ rootPath: string;
8
+ config?: Partial<CodebaseConfig>;
9
+ onProgress?: (progress: IndexingProgress) => void;
10
+ }
11
+ export declare class CodebaseIndexer {
12
+ private rootPath;
13
+ private config;
14
+ private progress;
15
+ private onProgressCallback?;
16
+ constructor(options: IndexerOptions);
17
+ private mergeConfig;
18
+ index(): Promise<IndexingStats>;
19
+ private scanFiles;
20
+ private updateProgress;
21
+ detectMetadata(): Promise<CodebaseMetadata>;
22
+ /**
23
+ * Get regex pattern for extracting code snippets based on pattern category and name
24
+ * This maps abstract pattern names to actual code patterns
25
+ */
26
+ private getSnippetPatternFor;
27
+ getProgress(): IndexingProgress;
28
+ }
29
+ //# sourceMappingURL=indexer.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"indexer.d.ts","sourceRoot":"","sources":["../../src/core/indexer.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAMH,OAAO,EACL,gBAAgB,EAEhB,gBAAgB,EAChB,aAAa,EAEb,cAAc,EAEf,MAAM,mBAAmB,CAAC;AAc3B,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;CACnD;AAED,qBAAa,eAAe;IAC1B,OAAO,CAAC,QAAQ,CAAS;IACzB,OAAO,CAAC,MAAM,CAAiB;IAC/B,OAAO,CAAC,QAAQ,CAAmB;IACnC,OAAO,CAAC,kBAAkB,CAAC,CAAuC;gBAEtD,OAAO,EAAE,cAAc;IAgBnC,OAAO,CAAC,WAAW;IA6Db,KAAK,IAAI,OAAO,CAAC,aAAa,CAAC;YAqTvB,SAAS;IA0DvB,OAAO,CAAC,cAAc;IAShB,cAAc,IAAI,OAAO,CAAC,gBAAgB,CAAC;IA0EjD;;;OAGG;IACH,OAAO,CAAC,oBAAoB;IA0B5B,WAAW,IAAI,gBAAgB;CAGhC"}