@matperez/coderag 0.1.24
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 +154 -0
- package/dist/.tsbuildinfo +1 -0
- package/dist/ast-chunking.d.ts +40 -0
- package/dist/ast-chunking.d.ts.map +1 -0
- package/dist/ast-chunking.js +88 -0
- package/dist/ast-chunking.js.map +1 -0
- package/dist/ast-chunking.test.d.ts +5 -0
- package/dist/ast-chunking.test.d.ts.map +1 -0
- package/dist/ast-chunking.test.js +173 -0
- package/dist/ast-chunking.test.js.map +1 -0
- package/dist/code-tokenizer.d.ts +62 -0
- package/dist/code-tokenizer.d.ts.map +1 -0
- package/dist/code-tokenizer.js +129 -0
- package/dist/code-tokenizer.js.map +1 -0
- package/dist/code-tokenizer.test.d.ts +5 -0
- package/dist/code-tokenizer.test.d.ts.map +1 -0
- package/dist/code-tokenizer.test.js +96 -0
- package/dist/code-tokenizer.test.js.map +1 -0
- package/dist/db/client-pg.d.ts +16 -0
- package/dist/db/client-pg.d.ts.map +1 -0
- package/dist/db/client-pg.js +38 -0
- package/dist/db/client-pg.js.map +1 -0
- package/dist/db/client.d.ts +36 -0
- package/dist/db/client.d.ts.map +1 -0
- package/dist/db/client.js +81 -0
- package/dist/db/client.js.map +1 -0
- package/dist/db/migrations-pg.d.ts +6 -0
- package/dist/db/migrations-pg.d.ts.map +1 -0
- package/dist/db/migrations-pg.js +88 -0
- package/dist/db/migrations-pg.js.map +1 -0
- package/dist/db/migrations.d.ts +9 -0
- package/dist/db/migrations.d.ts.map +1 -0
- package/dist/db/migrations.js +164 -0
- package/dist/db/migrations.js.map +1 -0
- package/dist/db/schema-pg.d.ts +611 -0
- package/dist/db/schema-pg.d.ts.map +1 -0
- package/dist/db/schema-pg.js +66 -0
- package/dist/db/schema-pg.js.map +1 -0
- package/dist/db/schema.d.ts +630 -0
- package/dist/db/schema.d.ts.map +1 -0
- package/dist/db/schema.js +85 -0
- package/dist/db/schema.js.map +1 -0
- package/dist/embeddings.d.ts +92 -0
- package/dist/embeddings.d.ts.map +1 -0
- package/dist/embeddings.js +275 -0
- package/dist/embeddings.js.map +1 -0
- package/dist/embeddings.test.d.ts +5 -0
- package/dist/embeddings.test.d.ts.map +1 -0
- package/dist/embeddings.test.js +255 -0
- package/dist/embeddings.test.js.map +1 -0
- package/dist/hybrid-search.d.ts +47 -0
- package/dist/hybrid-search.d.ts.map +1 -0
- package/dist/hybrid-search.js +215 -0
- package/dist/hybrid-search.js.map +1 -0
- package/dist/hybrid-search.test.d.ts +5 -0
- package/dist/hybrid-search.test.d.ts.map +1 -0
- package/dist/hybrid-search.test.js +252 -0
- package/dist/hybrid-search.test.js.map +1 -0
- package/dist/incremental-tfidf.d.ts +77 -0
- package/dist/incremental-tfidf.d.ts.map +1 -0
- package/dist/incremental-tfidf.js +248 -0
- package/dist/incremental-tfidf.js.map +1 -0
- package/dist/incremental-tfidf.test.d.ts +5 -0
- package/dist/incremental-tfidf.test.d.ts.map +1 -0
- package/dist/incremental-tfidf.test.js +276 -0
- package/dist/incremental-tfidf.test.js.map +1 -0
- package/dist/index.d.ts +18 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +19 -0
- package/dist/index.js.map +1 -0
- package/dist/indexer.d.ts +205 -0
- package/dist/indexer.d.ts.map +1 -0
- package/dist/indexer.js +1331 -0
- package/dist/indexer.js.map +1 -0
- package/dist/indexer.test.d.ts +12 -0
- package/dist/indexer.test.d.ts.map +1 -0
- package/dist/indexer.test.js +471 -0
- package/dist/indexer.test.js.map +1 -0
- package/dist/language-config.d.ts +54 -0
- package/dist/language-config.d.ts.map +1 -0
- package/dist/language-config.js +75 -0
- package/dist/language-config.js.map +1 -0
- package/dist/search-cache.d.ts +63 -0
- package/dist/search-cache.d.ts.map +1 -0
- package/dist/search-cache.js +118 -0
- package/dist/search-cache.js.map +1 -0
- package/dist/search-cache.test.d.ts +5 -0
- package/dist/search-cache.test.d.ts.map +1 -0
- package/dist/search-cache.test.js +194 -0
- package/dist/search-cache.test.js.map +1 -0
- package/dist/storage-factory.d.ts +11 -0
- package/dist/storage-factory.d.ts.map +1 -0
- package/dist/storage-factory.js +17 -0
- package/dist/storage-factory.js.map +1 -0
- package/dist/storage-persistent-pg.d.ts +75 -0
- package/dist/storage-persistent-pg.d.ts.map +1 -0
- package/dist/storage-persistent-pg.js +579 -0
- package/dist/storage-persistent-pg.js.map +1 -0
- package/dist/storage-persistent-pg.test.d.ts +7 -0
- package/dist/storage-persistent-pg.test.d.ts.map +1 -0
- package/dist/storage-persistent-pg.test.js +90 -0
- package/dist/storage-persistent-pg.test.js.map +1 -0
- package/dist/storage-persistent-types.d.ts +110 -0
- package/dist/storage-persistent-types.d.ts.map +1 -0
- package/dist/storage-persistent-types.js +5 -0
- package/dist/storage-persistent-types.js.map +1 -0
- package/dist/storage-persistent.d.ts +231 -0
- package/dist/storage-persistent.d.ts.map +1 -0
- package/dist/storage-persistent.js +897 -0
- package/dist/storage-persistent.js.map +1 -0
- package/dist/storage-persistent.test.d.ts +5 -0
- package/dist/storage-persistent.test.d.ts.map +1 -0
- package/dist/storage-persistent.test.js +325 -0
- package/dist/storage-persistent.test.js.map +1 -0
- package/dist/storage.d.ts +63 -0
- package/dist/storage.d.ts.map +1 -0
- package/dist/storage.js +67 -0
- package/dist/storage.js.map +1 -0
- package/dist/storage.test.d.ts +5 -0
- package/dist/storage.test.d.ts.map +1 -0
- package/dist/storage.test.js +157 -0
- package/dist/storage.test.js.map +1 -0
- package/dist/tfidf.d.ts +97 -0
- package/dist/tfidf.d.ts.map +1 -0
- package/dist/tfidf.js +308 -0
- package/dist/tfidf.js.map +1 -0
- package/dist/tfidf.test.d.ts +5 -0
- package/dist/tfidf.test.d.ts.map +1 -0
- package/dist/tfidf.test.js +181 -0
- package/dist/tfidf.test.js.map +1 -0
- package/dist/utils.d.ts +61 -0
- package/dist/utils.d.ts.map +1 -0
- package/dist/utils.js +264 -0
- package/dist/utils.js.map +1 -0
- package/dist/utils.test.d.ts +5 -0
- package/dist/utils.test.d.ts.map +1 -0
- package/dist/utils.test.js +94 -0
- package/dist/utils.test.js.map +1 -0
- package/dist/vector-storage.d.ts +120 -0
- package/dist/vector-storage.d.ts.map +1 -0
- package/dist/vector-storage.js +264 -0
- package/dist/vector-storage.js.map +1 -0
- package/dist/vector-storage.test.d.ts +5 -0
- package/dist/vector-storage.test.d.ts.map +1 -0
- package/dist/vector-storage.test.js +345 -0
- package/dist/vector-storage.test.js.map +1 -0
- package/package.json +85 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"storage-persistent.js","sourceRoot":"","sources":["../src/storage-persistent.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"storage-persistent.test.d.ts","sourceRoot":"","sources":["../src/storage-persistent.test.ts"],"names":[],"mappings":"AAAA;;GAEG"}
|
|
@@ -0,0 +1,325 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Persistent storage tests
|
|
3
|
+
*/
|
|
4
|
+
import fs from 'node:fs';
|
|
5
|
+
import os from 'node:os';
|
|
6
|
+
import path from 'node:path';
|
|
7
|
+
import { afterEach, beforeEach, describe, expect, it } from 'vitest';
|
|
8
|
+
import { PersistentStorage } from './storage-persistent.js';
|
|
9
|
+
describe('PersistentStorage', () => {
|
|
10
|
+
let storage;
|
|
11
|
+
let testDbPath;
|
|
12
|
+
let testDir;
|
|
13
|
+
beforeEach(() => {
|
|
14
|
+
// Create temp directory for test database
|
|
15
|
+
testDir = fs.mkdtempSync(path.join(os.tmpdir(), 'codebase-search-test-'));
|
|
16
|
+
testDbPath = path.join(testDir, 'test.db');
|
|
17
|
+
storage = new PersistentStorage({ dbPath: testDbPath, codebaseRoot: testDir });
|
|
18
|
+
});
|
|
19
|
+
afterEach(() => {
|
|
20
|
+
// Clean up
|
|
21
|
+
storage.close();
|
|
22
|
+
if (fs.existsSync(testDir)) {
|
|
23
|
+
fs.rmSync(testDir, { recursive: true, force: true });
|
|
24
|
+
}
|
|
25
|
+
});
|
|
26
|
+
describe('storeFile', () => {
|
|
27
|
+
it('should store a file', async () => {
|
|
28
|
+
const file = {
|
|
29
|
+
path: 'test.ts',
|
|
30
|
+
content: 'console.log("test")',
|
|
31
|
+
hash: 'abc123',
|
|
32
|
+
size: 100,
|
|
33
|
+
mtime: Date.now(),
|
|
34
|
+
language: 'typescript',
|
|
35
|
+
};
|
|
36
|
+
await storage.storeFile(file);
|
|
37
|
+
const retrieved = await storage.getFile('test.ts');
|
|
38
|
+
expect(retrieved).not.toBeNull();
|
|
39
|
+
expect(retrieved?.path).toBe('test.ts');
|
|
40
|
+
expect(retrieved?.content).toBe('console.log("test")');
|
|
41
|
+
expect(retrieved?.hash).toBe('abc123');
|
|
42
|
+
expect(retrieved?.language).toBe('typescript');
|
|
43
|
+
});
|
|
44
|
+
it('should update existing file on conflict', async () => {
|
|
45
|
+
const file1 = {
|
|
46
|
+
path: 'test.ts',
|
|
47
|
+
content: 'v1',
|
|
48
|
+
hash: 'hash1',
|
|
49
|
+
size: 10,
|
|
50
|
+
mtime: Date.now(),
|
|
51
|
+
};
|
|
52
|
+
const file2 = {
|
|
53
|
+
path: 'test.ts',
|
|
54
|
+
content: 'v2',
|
|
55
|
+
hash: 'hash2',
|
|
56
|
+
size: 20,
|
|
57
|
+
mtime: Date.now(),
|
|
58
|
+
};
|
|
59
|
+
await storage.storeFile(file1);
|
|
60
|
+
await storage.storeFile(file2);
|
|
61
|
+
const retrieved = await storage.getFile('test.ts');
|
|
62
|
+
expect(retrieved?.content).toBe('v2');
|
|
63
|
+
expect(retrieved?.hash).toBe('hash2');
|
|
64
|
+
expect(retrieved?.size).toBe(20);
|
|
65
|
+
});
|
|
66
|
+
it('should handle files without language field', async () => {
|
|
67
|
+
const file = {
|
|
68
|
+
path: 'test.txt',
|
|
69
|
+
content: 'plain text',
|
|
70
|
+
hash: 'xyz789',
|
|
71
|
+
size: 50,
|
|
72
|
+
mtime: Date.now(),
|
|
73
|
+
};
|
|
74
|
+
await storage.storeFile(file);
|
|
75
|
+
const retrieved = await storage.getFile('test.txt');
|
|
76
|
+
expect(retrieved).not.toBeNull();
|
|
77
|
+
expect(retrieved?.language).toBeUndefined();
|
|
78
|
+
});
|
|
79
|
+
});
|
|
80
|
+
describe('getFile', () => {
|
|
81
|
+
it('should return null for non-existent file', async () => {
|
|
82
|
+
const result = await storage.getFile('nonexistent.ts');
|
|
83
|
+
expect(result).toBeNull();
|
|
84
|
+
});
|
|
85
|
+
it('should retrieve stored file', async () => {
|
|
86
|
+
const file = {
|
|
87
|
+
path: 'example.js',
|
|
88
|
+
content: 'const x = 1;',
|
|
89
|
+
hash: 'hash123',
|
|
90
|
+
size: 12,
|
|
91
|
+
mtime: 1234567890,
|
|
92
|
+
language: 'javascript',
|
|
93
|
+
};
|
|
94
|
+
await storage.storeFile(file);
|
|
95
|
+
const retrieved = await storage.getFile('example.js');
|
|
96
|
+
expect(retrieved).toEqual({
|
|
97
|
+
path: 'example.js',
|
|
98
|
+
content: 'const x = 1;',
|
|
99
|
+
hash: 'hash123',
|
|
100
|
+
size: 12,
|
|
101
|
+
mtime: 1234567890,
|
|
102
|
+
language: 'javascript',
|
|
103
|
+
});
|
|
104
|
+
});
|
|
105
|
+
});
|
|
106
|
+
describe('getAllFiles', () => {
|
|
107
|
+
it('should return empty array when no files stored', async () => {
|
|
108
|
+
const files = await storage.getAllFiles();
|
|
109
|
+
expect(files).toEqual([]);
|
|
110
|
+
});
|
|
111
|
+
it('should return all stored files', async () => {
|
|
112
|
+
const file1 = {
|
|
113
|
+
path: 'a.ts',
|
|
114
|
+
content: 'a',
|
|
115
|
+
hash: 'hash_a',
|
|
116
|
+
size: 1,
|
|
117
|
+
mtime: Date.now(),
|
|
118
|
+
};
|
|
119
|
+
const file2 = {
|
|
120
|
+
path: 'b.ts',
|
|
121
|
+
content: 'b',
|
|
122
|
+
hash: 'hash_b',
|
|
123
|
+
size: 1,
|
|
124
|
+
mtime: Date.now(),
|
|
125
|
+
};
|
|
126
|
+
await storage.storeFile(file1);
|
|
127
|
+
await storage.storeFile(file2);
|
|
128
|
+
const files = await storage.getAllFiles();
|
|
129
|
+
expect(files).toHaveLength(2);
|
|
130
|
+
expect(files.map((f) => f.path).sort()).toEqual(['a.ts', 'b.ts']);
|
|
131
|
+
});
|
|
132
|
+
});
|
|
133
|
+
describe('deleteFile', () => {
|
|
134
|
+
it('should delete a file', async () => {
|
|
135
|
+
const file = {
|
|
136
|
+
path: 'delete-me.ts',
|
|
137
|
+
content: 'delete',
|
|
138
|
+
hash: 'hash',
|
|
139
|
+
size: 6,
|
|
140
|
+
mtime: Date.now(),
|
|
141
|
+
};
|
|
142
|
+
await storage.storeFile(file);
|
|
143
|
+
expect(await storage.exists('delete-me.ts')).toBe(true);
|
|
144
|
+
await storage.deleteFile('delete-me.ts');
|
|
145
|
+
expect(await storage.exists('delete-me.ts')).toBe(false);
|
|
146
|
+
});
|
|
147
|
+
it('should not error when deleting non-existent file', async () => {
|
|
148
|
+
// Should complete without throwing
|
|
149
|
+
await storage.deleteFile('nonexistent.ts');
|
|
150
|
+
});
|
|
151
|
+
});
|
|
152
|
+
describe('clear', () => {
|
|
153
|
+
it('should clear all files', async () => {
|
|
154
|
+
const file1 = {
|
|
155
|
+
path: 'a.ts',
|
|
156
|
+
content: 'a',
|
|
157
|
+
hash: 'hash_a',
|
|
158
|
+
size: 1,
|
|
159
|
+
mtime: Date.now(),
|
|
160
|
+
};
|
|
161
|
+
const file2 = {
|
|
162
|
+
path: 'b.ts',
|
|
163
|
+
content: 'b',
|
|
164
|
+
hash: 'hash_b',
|
|
165
|
+
size: 1,
|
|
166
|
+
mtime: Date.now(),
|
|
167
|
+
};
|
|
168
|
+
await storage.storeFile(file1);
|
|
169
|
+
await storage.storeFile(file2);
|
|
170
|
+
expect(await storage.count()).toBe(2);
|
|
171
|
+
await storage.clear();
|
|
172
|
+
expect(await storage.count()).toBe(0);
|
|
173
|
+
expect(await storage.getAllFiles()).toEqual([]);
|
|
174
|
+
});
|
|
175
|
+
});
|
|
176
|
+
describe('count', () => {
|
|
177
|
+
it('should return 0 when no files', async () => {
|
|
178
|
+
const count = await storage.count();
|
|
179
|
+
expect(count).toBe(0);
|
|
180
|
+
});
|
|
181
|
+
it('should return correct count', async () => {
|
|
182
|
+
await storage.storeFile({
|
|
183
|
+
path: '1.ts',
|
|
184
|
+
content: '',
|
|
185
|
+
hash: 'h1',
|
|
186
|
+
size: 0,
|
|
187
|
+
mtime: Date.now(),
|
|
188
|
+
});
|
|
189
|
+
await storage.storeFile({
|
|
190
|
+
path: '2.ts',
|
|
191
|
+
content: '',
|
|
192
|
+
hash: 'h2',
|
|
193
|
+
size: 0,
|
|
194
|
+
mtime: Date.now(),
|
|
195
|
+
});
|
|
196
|
+
expect(await storage.count()).toBe(2);
|
|
197
|
+
});
|
|
198
|
+
});
|
|
199
|
+
describe('exists', () => {
|
|
200
|
+
it('should return false for non-existent file', async () => {
|
|
201
|
+
const exists = await storage.exists('nonexistent.ts');
|
|
202
|
+
expect(exists).toBe(false);
|
|
203
|
+
});
|
|
204
|
+
it('should return true for existing file', async () => {
|
|
205
|
+
await storage.storeFile({
|
|
206
|
+
path: 'exists.ts',
|
|
207
|
+
content: 'exists',
|
|
208
|
+
hash: 'hash',
|
|
209
|
+
size: 6,
|
|
210
|
+
mtime: Date.now(),
|
|
211
|
+
});
|
|
212
|
+
const exists = await storage.exists('exists.ts');
|
|
213
|
+
expect(exists).toBe(true);
|
|
214
|
+
});
|
|
215
|
+
});
|
|
216
|
+
describe('metadata', () => {
|
|
217
|
+
it('should store and retrieve metadata', async () => {
|
|
218
|
+
await storage.setMetadata('version', '1.0.0');
|
|
219
|
+
const value = await storage.getMetadata('version');
|
|
220
|
+
expect(value).toBe('1.0.0');
|
|
221
|
+
});
|
|
222
|
+
it('should return null for non-existent metadata', async () => {
|
|
223
|
+
const value = await storage.getMetadata('nonexistent');
|
|
224
|
+
expect(value).toBeNull();
|
|
225
|
+
});
|
|
226
|
+
it('should update existing metadata', async () => {
|
|
227
|
+
await storage.setMetadata('key', 'v1');
|
|
228
|
+
await storage.setMetadata('key', 'v2');
|
|
229
|
+
const value = await storage.getMetadata('key');
|
|
230
|
+
expect(value).toBe('v2');
|
|
231
|
+
});
|
|
232
|
+
});
|
|
233
|
+
describe('chunk vectors', () => {
|
|
234
|
+
it('should store and retrieve chunk vectors', async () => {
|
|
235
|
+
// First store a file
|
|
236
|
+
await storage.storeFile({
|
|
237
|
+
path: 'doc.ts',
|
|
238
|
+
content: 'function test() {}',
|
|
239
|
+
hash: 'hash',
|
|
240
|
+
size: 18,
|
|
241
|
+
mtime: Date.now(),
|
|
242
|
+
});
|
|
243
|
+
// Store chunks
|
|
244
|
+
const chunkIds = await storage.storeChunks('doc.ts', [
|
|
245
|
+
{ content: 'function test() {}', type: 'FunctionDeclaration', startLine: 1, endLine: 1 },
|
|
246
|
+
]);
|
|
247
|
+
expect(chunkIds.length).toBe(1);
|
|
248
|
+
const chunkId = chunkIds[0];
|
|
249
|
+
// Store vectors for chunk
|
|
250
|
+
const terms = new Map([
|
|
251
|
+
['function', { tf: 0.5, tfidf: 1.2, rawFreq: 1 }],
|
|
252
|
+
['test', { tf: 0.5, tfidf: 0.8, rawFreq: 1 }],
|
|
253
|
+
]);
|
|
254
|
+
await storage.storeChunkVectors(chunkId, terms);
|
|
255
|
+
// Retrieve vectors
|
|
256
|
+
const retrieved = await storage.getChunkVectors(chunkId);
|
|
257
|
+
expect(retrieved).not.toBeNull();
|
|
258
|
+
expect(retrieved?.size).toBe(2);
|
|
259
|
+
expect(retrieved?.get('function')).toEqual({ tf: 0.5, tfidf: 1.2, rawFreq: 1 });
|
|
260
|
+
expect(retrieved?.get('test')).toEqual({ tf: 0.5, tfidf: 0.8, rawFreq: 1 });
|
|
261
|
+
});
|
|
262
|
+
it('should update chunk vectors on re-index', async () => {
|
|
263
|
+
await storage.storeFile({
|
|
264
|
+
path: 'doc.ts',
|
|
265
|
+
content: 'test',
|
|
266
|
+
hash: 'hash',
|
|
267
|
+
size: 4,
|
|
268
|
+
mtime: Date.now(),
|
|
269
|
+
});
|
|
270
|
+
// Store chunks
|
|
271
|
+
const chunkIds = await storage.storeChunks('doc.ts', [
|
|
272
|
+
{ content: 'test', type: 'text', startLine: 1, endLine: 1 },
|
|
273
|
+
]);
|
|
274
|
+
const chunkId = chunkIds[0];
|
|
275
|
+
// First vectors
|
|
276
|
+
const terms1 = new Map([['old', { tf: 1.0, tfidf: 1.0, rawFreq: 1 }]]);
|
|
277
|
+
await storage.storeChunkVectors(chunkId, terms1);
|
|
278
|
+
// Update vectors
|
|
279
|
+
const terms2 = new Map([['new', { tf: 1.0, tfidf: 2.0, rawFreq: 1 }]]);
|
|
280
|
+
await storage.storeChunkVectors(chunkId, terms2);
|
|
281
|
+
const retrieved = await storage.getChunkVectors(chunkId);
|
|
282
|
+
expect(retrieved?.size).toBe(1);
|
|
283
|
+
expect(retrieved?.get('new')).toEqual({ tf: 1.0, tfidf: 2.0, rawFreq: 1 });
|
|
284
|
+
expect(retrieved?.has('old')).toBe(false);
|
|
285
|
+
});
|
|
286
|
+
it('should return null for non-existent chunk vectors', async () => {
|
|
287
|
+
const vectors = await storage.getChunkVectors(99999);
|
|
288
|
+
expect(vectors).toBeNull();
|
|
289
|
+
});
|
|
290
|
+
});
|
|
291
|
+
describe('IDF scores', () => {
|
|
292
|
+
it('should store and retrieve IDF scores', async () => {
|
|
293
|
+
const idf = new Map([
|
|
294
|
+
['function', 1.5],
|
|
295
|
+
['const', 0.8],
|
|
296
|
+
]);
|
|
297
|
+
const docFreq = new Map([
|
|
298
|
+
['function', 10],
|
|
299
|
+
['const', 25],
|
|
300
|
+
]);
|
|
301
|
+
await storage.storeIdfScores(idf, docFreq);
|
|
302
|
+
const retrieved = await storage.getIdfScores();
|
|
303
|
+
expect(retrieved.size).toBe(2);
|
|
304
|
+
expect(retrieved.get('function')).toBe(1.5);
|
|
305
|
+
expect(retrieved.get('const')).toBe(0.8);
|
|
306
|
+
});
|
|
307
|
+
it('should replace IDF scores on update', async () => {
|
|
308
|
+
const idf1 = new Map([['old', 1.0]]);
|
|
309
|
+
const docFreq1 = new Map([['old', 1]]);
|
|
310
|
+
await storage.storeIdfScores(idf1, docFreq1);
|
|
311
|
+
const idf2 = new Map([['new', 2.0]]);
|
|
312
|
+
const docFreq2 = new Map([['new', 2]]);
|
|
313
|
+
await storage.storeIdfScores(idf2, docFreq2);
|
|
314
|
+
const retrieved = await storage.getIdfScores();
|
|
315
|
+
expect(retrieved.size).toBe(1);
|
|
316
|
+
expect(retrieved.get('new')).toBe(2.0);
|
|
317
|
+
expect(retrieved.has('old')).toBe(false);
|
|
318
|
+
});
|
|
319
|
+
it('should return empty map when no IDF scores', async () => {
|
|
320
|
+
const idf = await storage.getIdfScores();
|
|
321
|
+
expect(idf.size).toBe(0);
|
|
322
|
+
});
|
|
323
|
+
});
|
|
324
|
+
});
|
|
325
|
+
//# sourceMappingURL=storage-persistent.test.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"storage-persistent.test.js","sourceRoot":"","sources":["../src/storage-persistent.test.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,63 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* In-memory storage for codebase index
|
|
3
|
+
*/
|
|
4
|
+
export interface CodebaseFile {
|
|
5
|
+
path: string;
|
|
6
|
+
content: string;
|
|
7
|
+
size: number;
|
|
8
|
+
mtime: number | Date;
|
|
9
|
+
language?: string;
|
|
10
|
+
hash: string;
|
|
11
|
+
}
|
|
12
|
+
export interface Storage {
|
|
13
|
+
storeFile(file: CodebaseFile): Promise<void>;
|
|
14
|
+
storeFiles?(files: CodebaseFile[]): Promise<void>;
|
|
15
|
+
getFile(path: string): Promise<CodebaseFile | null>;
|
|
16
|
+
getAllFiles(): Promise<CodebaseFile[]>;
|
|
17
|
+
deleteFile(path: string): Promise<void>;
|
|
18
|
+
clear(): Promise<void>;
|
|
19
|
+
count(): Promise<number>;
|
|
20
|
+
getChunkCount?(): Promise<number>;
|
|
21
|
+
exists(path: string): Promise<boolean>;
|
|
22
|
+
getFileHashes?(): Promise<Map<string, string>>;
|
|
23
|
+
}
|
|
24
|
+
export declare class MemoryStorage implements Storage {
|
|
25
|
+
private files;
|
|
26
|
+
/**
|
|
27
|
+
* Store a file
|
|
28
|
+
*/
|
|
29
|
+
storeFile(file: CodebaseFile): Promise<void>;
|
|
30
|
+
/**
|
|
31
|
+
* Store multiple files (batch operation)
|
|
32
|
+
*/
|
|
33
|
+
storeFiles(files: CodebaseFile[]): Promise<void>;
|
|
34
|
+
/**
|
|
35
|
+
* Get a file by path
|
|
36
|
+
*/
|
|
37
|
+
getFile(path: string): Promise<CodebaseFile | null>;
|
|
38
|
+
/**
|
|
39
|
+
* Get all files
|
|
40
|
+
*/
|
|
41
|
+
getAllFiles(): Promise<CodebaseFile[]>;
|
|
42
|
+
/**
|
|
43
|
+
* Delete a file
|
|
44
|
+
*/
|
|
45
|
+
deleteFile(path: string): Promise<void>;
|
|
46
|
+
/**
|
|
47
|
+
* Clear all files
|
|
48
|
+
*/
|
|
49
|
+
clear(): Promise<void>;
|
|
50
|
+
/**
|
|
51
|
+
* Get file count
|
|
52
|
+
*/
|
|
53
|
+
count(): Promise<number>;
|
|
54
|
+
/**
|
|
55
|
+
* Check if file exists
|
|
56
|
+
*/
|
|
57
|
+
exists(path: string): Promise<boolean>;
|
|
58
|
+
/**
|
|
59
|
+
* Get path -> hash for all files (for skip-unchanged during full index)
|
|
60
|
+
*/
|
|
61
|
+
getFileHashes(): Promise<Map<string, string>>;
|
|
62
|
+
}
|
|
63
|
+
//# sourceMappingURL=storage.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"storage.d.ts","sourceRoot":"","sources":["../src/storage.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,MAAM,WAAW,YAAY;IAC5B,IAAI,EAAE,MAAM,CAAA;IACZ,OAAO,EAAE,MAAM,CAAA;IACf,IAAI,EAAE,MAAM,CAAA;IACZ,KAAK,EAAE,MAAM,GAAG,IAAI,CAAA;IACpB,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,IAAI,EAAE,MAAM,CAAA;CACZ;AAED,MAAM,WAAW,OAAO;IACvB,SAAS,CAAC,IAAI,EAAE,YAAY,GAAG,OAAO,CAAC,IAAI,CAAC,CAAA;IAC5C,UAAU,CAAC,CAAC,KAAK,EAAE,YAAY,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CAAA;IACjD,OAAO,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,YAAY,GAAG,IAAI,CAAC,CAAA;IACnD,WAAW,IAAI,OAAO,CAAC,YAAY,EAAE,CAAC,CAAA;IACtC,UAAU,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAA;IACvC,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC,CAAA;IACtB,KAAK,IAAI,OAAO,CAAC,MAAM,CAAC,CAAA;IACxB,aAAa,CAAC,IAAI,OAAO,CAAC,MAAM,CAAC,CAAA;IACjC,MAAM,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAAA;IACtC,aAAa,CAAC,IAAI,OAAO,CAAC,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAAA;CAC9C;AAED,qBAAa,aAAc,YAAW,OAAO;IAC5C,OAAO,CAAC,KAAK,CAAuC;IAEpD;;OAEG;IACG,SAAS,CAAC,IAAI,EAAE,YAAY,GAAG,OAAO,CAAC,IAAI,CAAC;IAIlD;;OAEG;IACG,UAAU,CAAC,KAAK,EAAE,YAAY,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC;IAMtD;;OAEG;IACG,OAAO,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,YAAY,GAAG,IAAI,CAAC;IAIzD;;OAEG;IACG,WAAW,IAAI,OAAO,CAAC,YAAY,EAAE,CAAC;IAI5C;;OAEG;IACG,UAAU,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAI7C;;OAEG;IACG,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;IAI5B;;OAEG;IACG,KAAK,IAAI,OAAO,CAAC,MAAM,CAAC;IAI9B;;OAEG;IACG,MAAM,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IAI5C;;OAEG;IACG,aAAa,IAAI,OAAO,CAAC,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;CAOnD"}
|
package/dist/storage.js
ADDED
|
@@ -0,0 +1,67 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* In-memory storage for codebase index
|
|
3
|
+
*/
|
|
4
|
+
export class MemoryStorage {
|
|
5
|
+
files = new Map();
|
|
6
|
+
/**
|
|
7
|
+
* Store a file
|
|
8
|
+
*/
|
|
9
|
+
async storeFile(file) {
|
|
10
|
+
this.files.set(file.path, file);
|
|
11
|
+
}
|
|
12
|
+
/**
|
|
13
|
+
* Store multiple files (batch operation)
|
|
14
|
+
*/
|
|
15
|
+
async storeFiles(files) {
|
|
16
|
+
for (const file of files) {
|
|
17
|
+
this.files.set(file.path, file);
|
|
18
|
+
}
|
|
19
|
+
}
|
|
20
|
+
/**
|
|
21
|
+
* Get a file by path
|
|
22
|
+
*/
|
|
23
|
+
async getFile(path) {
|
|
24
|
+
return this.files.get(path) || null;
|
|
25
|
+
}
|
|
26
|
+
/**
|
|
27
|
+
* Get all files
|
|
28
|
+
*/
|
|
29
|
+
async getAllFiles() {
|
|
30
|
+
return Array.from(this.files.values());
|
|
31
|
+
}
|
|
32
|
+
/**
|
|
33
|
+
* Delete a file
|
|
34
|
+
*/
|
|
35
|
+
async deleteFile(path) {
|
|
36
|
+
this.files.delete(path);
|
|
37
|
+
}
|
|
38
|
+
/**
|
|
39
|
+
* Clear all files
|
|
40
|
+
*/
|
|
41
|
+
async clear() {
|
|
42
|
+
this.files.clear();
|
|
43
|
+
}
|
|
44
|
+
/**
|
|
45
|
+
* Get file count
|
|
46
|
+
*/
|
|
47
|
+
async count() {
|
|
48
|
+
return this.files.size;
|
|
49
|
+
}
|
|
50
|
+
/**
|
|
51
|
+
* Check if file exists
|
|
52
|
+
*/
|
|
53
|
+
async exists(path) {
|
|
54
|
+
return this.files.has(path);
|
|
55
|
+
}
|
|
56
|
+
/**
|
|
57
|
+
* Get path -> hash for all files (for skip-unchanged during full index)
|
|
58
|
+
*/
|
|
59
|
+
async getFileHashes() {
|
|
60
|
+
const map = new Map();
|
|
61
|
+
for (const [path, file] of this.files) {
|
|
62
|
+
map.set(path, file.hash);
|
|
63
|
+
}
|
|
64
|
+
return map;
|
|
65
|
+
}
|
|
66
|
+
}
|
|
67
|
+
//# sourceMappingURL=storage.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"storage.js","sourceRoot":"","sources":["../src/storage.ts"],"names":[],"mappings":"AAAA;;GAEG;AAwBH,MAAM,OAAO,aAAa;IACjB,KAAK,GAA8B,IAAI,GAAG,EAAE,CAAA;IAEpD;;OAEG;IACH,KAAK,CAAC,SAAS,CAAC,IAAkB;QACjC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,CAAA;IAChC,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,UAAU,CAAC,KAAqB;QACrC,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;YAC1B,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,CAAA;QAChC,CAAC;IACF,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,OAAO,CAAC,IAAY;QACzB,OAAO,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,IAAI,CAAA;IACpC,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,WAAW;QAChB,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,EAAE,CAAC,CAAA;IACvC,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,UAAU,CAAC,IAAY;QAC5B,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,CAAA;IACxB,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,KAAK;QACV,IAAI,CAAC,KAAK,CAAC,KAAK,EAAE,CAAA;IACnB,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,KAAK;QACV,OAAO,IAAI,CAAC,KAAK,CAAC,IAAI,CAAA;IACvB,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,MAAM,CAAC,IAAY;QACxB,OAAO,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,CAAA;IAC5B,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,aAAa;QAClB,MAAM,GAAG,GAAG,IAAI,GAAG,EAAkB,CAAA;QACrC,KAAK,MAAM,CAAC,IAAI,EAAE,IAAI,CAAC,IAAI,IAAI,CAAC,KAAK,EAAE,CAAC;YACvC,GAAG,CAAC,GAAG,CAAC,IAAI,EAAE,IAAI,CAAC,IAAI,CAAC,CAAA;QACzB,CAAC;QACD,OAAO,GAAG,CAAA;IACX,CAAC;CACD"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"storage.test.d.ts","sourceRoot":"","sources":["../src/storage.test.ts"],"names":[],"mappings":"AAAA;;GAEG"}
|