@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.
Files changed (147) hide show
  1. package/README.md +154 -0
  2. package/dist/.tsbuildinfo +1 -0
  3. package/dist/ast-chunking.d.ts +40 -0
  4. package/dist/ast-chunking.d.ts.map +1 -0
  5. package/dist/ast-chunking.js +88 -0
  6. package/dist/ast-chunking.js.map +1 -0
  7. package/dist/ast-chunking.test.d.ts +5 -0
  8. package/dist/ast-chunking.test.d.ts.map +1 -0
  9. package/dist/ast-chunking.test.js +173 -0
  10. package/dist/ast-chunking.test.js.map +1 -0
  11. package/dist/code-tokenizer.d.ts +62 -0
  12. package/dist/code-tokenizer.d.ts.map +1 -0
  13. package/dist/code-tokenizer.js +129 -0
  14. package/dist/code-tokenizer.js.map +1 -0
  15. package/dist/code-tokenizer.test.d.ts +5 -0
  16. package/dist/code-tokenizer.test.d.ts.map +1 -0
  17. package/dist/code-tokenizer.test.js +96 -0
  18. package/dist/code-tokenizer.test.js.map +1 -0
  19. package/dist/db/client-pg.d.ts +16 -0
  20. package/dist/db/client-pg.d.ts.map +1 -0
  21. package/dist/db/client-pg.js +38 -0
  22. package/dist/db/client-pg.js.map +1 -0
  23. package/dist/db/client.d.ts +36 -0
  24. package/dist/db/client.d.ts.map +1 -0
  25. package/dist/db/client.js +81 -0
  26. package/dist/db/client.js.map +1 -0
  27. package/dist/db/migrations-pg.d.ts +6 -0
  28. package/dist/db/migrations-pg.d.ts.map +1 -0
  29. package/dist/db/migrations-pg.js +88 -0
  30. package/dist/db/migrations-pg.js.map +1 -0
  31. package/dist/db/migrations.d.ts +9 -0
  32. package/dist/db/migrations.d.ts.map +1 -0
  33. package/dist/db/migrations.js +164 -0
  34. package/dist/db/migrations.js.map +1 -0
  35. package/dist/db/schema-pg.d.ts +611 -0
  36. package/dist/db/schema-pg.d.ts.map +1 -0
  37. package/dist/db/schema-pg.js +66 -0
  38. package/dist/db/schema-pg.js.map +1 -0
  39. package/dist/db/schema.d.ts +630 -0
  40. package/dist/db/schema.d.ts.map +1 -0
  41. package/dist/db/schema.js +85 -0
  42. package/dist/db/schema.js.map +1 -0
  43. package/dist/embeddings.d.ts +92 -0
  44. package/dist/embeddings.d.ts.map +1 -0
  45. package/dist/embeddings.js +275 -0
  46. package/dist/embeddings.js.map +1 -0
  47. package/dist/embeddings.test.d.ts +5 -0
  48. package/dist/embeddings.test.d.ts.map +1 -0
  49. package/dist/embeddings.test.js +255 -0
  50. package/dist/embeddings.test.js.map +1 -0
  51. package/dist/hybrid-search.d.ts +47 -0
  52. package/dist/hybrid-search.d.ts.map +1 -0
  53. package/dist/hybrid-search.js +215 -0
  54. package/dist/hybrid-search.js.map +1 -0
  55. package/dist/hybrid-search.test.d.ts +5 -0
  56. package/dist/hybrid-search.test.d.ts.map +1 -0
  57. package/dist/hybrid-search.test.js +252 -0
  58. package/dist/hybrid-search.test.js.map +1 -0
  59. package/dist/incremental-tfidf.d.ts +77 -0
  60. package/dist/incremental-tfidf.d.ts.map +1 -0
  61. package/dist/incremental-tfidf.js +248 -0
  62. package/dist/incremental-tfidf.js.map +1 -0
  63. package/dist/incremental-tfidf.test.d.ts +5 -0
  64. package/dist/incremental-tfidf.test.d.ts.map +1 -0
  65. package/dist/incremental-tfidf.test.js +276 -0
  66. package/dist/incremental-tfidf.test.js.map +1 -0
  67. package/dist/index.d.ts +18 -0
  68. package/dist/index.d.ts.map +1 -0
  69. package/dist/index.js +19 -0
  70. package/dist/index.js.map +1 -0
  71. package/dist/indexer.d.ts +205 -0
  72. package/dist/indexer.d.ts.map +1 -0
  73. package/dist/indexer.js +1331 -0
  74. package/dist/indexer.js.map +1 -0
  75. package/dist/indexer.test.d.ts +12 -0
  76. package/dist/indexer.test.d.ts.map +1 -0
  77. package/dist/indexer.test.js +471 -0
  78. package/dist/indexer.test.js.map +1 -0
  79. package/dist/language-config.d.ts +54 -0
  80. package/dist/language-config.d.ts.map +1 -0
  81. package/dist/language-config.js +75 -0
  82. package/dist/language-config.js.map +1 -0
  83. package/dist/search-cache.d.ts +63 -0
  84. package/dist/search-cache.d.ts.map +1 -0
  85. package/dist/search-cache.js +118 -0
  86. package/dist/search-cache.js.map +1 -0
  87. package/dist/search-cache.test.d.ts +5 -0
  88. package/dist/search-cache.test.d.ts.map +1 -0
  89. package/dist/search-cache.test.js +194 -0
  90. package/dist/search-cache.test.js.map +1 -0
  91. package/dist/storage-factory.d.ts +11 -0
  92. package/dist/storage-factory.d.ts.map +1 -0
  93. package/dist/storage-factory.js +17 -0
  94. package/dist/storage-factory.js.map +1 -0
  95. package/dist/storage-persistent-pg.d.ts +75 -0
  96. package/dist/storage-persistent-pg.d.ts.map +1 -0
  97. package/dist/storage-persistent-pg.js +579 -0
  98. package/dist/storage-persistent-pg.js.map +1 -0
  99. package/dist/storage-persistent-pg.test.d.ts +7 -0
  100. package/dist/storage-persistent-pg.test.d.ts.map +1 -0
  101. package/dist/storage-persistent-pg.test.js +90 -0
  102. package/dist/storage-persistent-pg.test.js.map +1 -0
  103. package/dist/storage-persistent-types.d.ts +110 -0
  104. package/dist/storage-persistent-types.d.ts.map +1 -0
  105. package/dist/storage-persistent-types.js +5 -0
  106. package/dist/storage-persistent-types.js.map +1 -0
  107. package/dist/storage-persistent.d.ts +231 -0
  108. package/dist/storage-persistent.d.ts.map +1 -0
  109. package/dist/storage-persistent.js +897 -0
  110. package/dist/storage-persistent.js.map +1 -0
  111. package/dist/storage-persistent.test.d.ts +5 -0
  112. package/dist/storage-persistent.test.d.ts.map +1 -0
  113. package/dist/storage-persistent.test.js +325 -0
  114. package/dist/storage-persistent.test.js.map +1 -0
  115. package/dist/storage.d.ts +63 -0
  116. package/dist/storage.d.ts.map +1 -0
  117. package/dist/storage.js +67 -0
  118. package/dist/storage.js.map +1 -0
  119. package/dist/storage.test.d.ts +5 -0
  120. package/dist/storage.test.d.ts.map +1 -0
  121. package/dist/storage.test.js +157 -0
  122. package/dist/storage.test.js.map +1 -0
  123. package/dist/tfidf.d.ts +97 -0
  124. package/dist/tfidf.d.ts.map +1 -0
  125. package/dist/tfidf.js +308 -0
  126. package/dist/tfidf.js.map +1 -0
  127. package/dist/tfidf.test.d.ts +5 -0
  128. package/dist/tfidf.test.d.ts.map +1 -0
  129. package/dist/tfidf.test.js +181 -0
  130. package/dist/tfidf.test.js.map +1 -0
  131. package/dist/utils.d.ts +61 -0
  132. package/dist/utils.d.ts.map +1 -0
  133. package/dist/utils.js +264 -0
  134. package/dist/utils.js.map +1 -0
  135. package/dist/utils.test.d.ts +5 -0
  136. package/dist/utils.test.d.ts.map +1 -0
  137. package/dist/utils.test.js +94 -0
  138. package/dist/utils.test.js.map +1 -0
  139. package/dist/vector-storage.d.ts +120 -0
  140. package/dist/vector-storage.d.ts.map +1 -0
  141. package/dist/vector-storage.js +264 -0
  142. package/dist/vector-storage.js.map +1 -0
  143. package/dist/vector-storage.test.d.ts +5 -0
  144. package/dist/vector-storage.test.d.ts.map +1 -0
  145. package/dist/vector-storage.test.js +345 -0
  146. package/dist/vector-storage.test.js.map +1 -0
  147. package/package.json +85 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":"storage-persistent-pg.js","sourceRoot":"","sources":["../src/storage-persistent-pg.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,7 @@
1
+ /**
2
+ * Postgres persistent storage integration tests.
3
+ * Run with DATABASE_URL set (e.g. postgresql://coderag:secret@localhost:5432/coderag).
4
+ * Skip when DATABASE_URL is not set.
5
+ */
6
+ export {};
7
+ //# sourceMappingURL=storage-persistent-pg.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"storage-persistent-pg.test.d.ts","sourceRoot":"","sources":["../src/storage-persistent-pg.test.ts"],"names":[],"mappings":"AAAA;;;;GAIG"}
@@ -0,0 +1,90 @@
1
+ /**
2
+ * Postgres persistent storage integration tests.
3
+ * Run with DATABASE_URL set (e.g. postgresql://coderag:secret@localhost:5432/coderag).
4
+ * Skip when DATABASE_URL is not set.
5
+ */
6
+ import { afterAll, describe, expect, it } from 'vitest';
7
+ import { createPostgresPersistentStorage } from './storage-persistent-pg.js';
8
+ const DATABASE_URL = process.env.DATABASE_URL;
9
+ describe.skipIf(!DATABASE_URL)('PostgresPersistentStorage (set DATABASE_URL to run)', () => {
10
+ const storage = createPostgresPersistentStorage({
11
+ backend: 'postgres',
12
+ connectionString: DATABASE_URL,
13
+ });
14
+ afterAll(async () => {
15
+ storage.close?.();
16
+ });
17
+ it('getBackend returns postgres', () => {
18
+ expect(storage.getBackend()).toBe('postgres');
19
+ });
20
+ it('storeFile and getFile', async () => {
21
+ await storage.clear();
22
+ const file = {
23
+ path: 'pg-test.ts',
24
+ content: 'export const x = 1',
25
+ hash: 'h1',
26
+ size: 20,
27
+ mtime: Date.now(),
28
+ language: 'typescript',
29
+ };
30
+ await storage.storeFile(file);
31
+ const retrieved = await storage.getFile('pg-test.ts');
32
+ expect(retrieved).not.toBeNull();
33
+ expect(retrieved?.content).toBe('export const x = 1');
34
+ });
35
+ it('storeChunks and getChunksForFile', async () => {
36
+ await storage.clear();
37
+ const file = {
38
+ path: 'chunked.ts',
39
+ content: 'function a() {}\nfunction b() {}',
40
+ hash: 'h2',
41
+ size: 30,
42
+ mtime: Date.now(),
43
+ };
44
+ await storage.storeFile(file);
45
+ const ids = await storage.storeChunks('chunked.ts', [
46
+ { content: 'function a() {}', type: 'FunctionDeclaration', startLine: 1, endLine: 1 },
47
+ { content: 'function b() {}', type: 'FunctionDeclaration', startLine: 2, endLine: 2 },
48
+ ]);
49
+ expect(ids.length).toBe(2);
50
+ const chunks = await storage.getChunksForFile('chunked.ts');
51
+ expect(chunks.length).toBe(2);
52
+ });
53
+ it('storeManyChunks and storeManyChunkVectors', async () => {
54
+ await storage.clear();
55
+ await storage.storeFile({
56
+ path: 'f1.ts',
57
+ content: 'x',
58
+ hash: '1',
59
+ size: 1,
60
+ mtime: Date.now(),
61
+ });
62
+ await storage.storeFile({
63
+ path: 'f2.ts',
64
+ content: 'y',
65
+ hash: '2',
66
+ size: 1,
67
+ mtime: Date.now(),
68
+ });
69
+ const map = await storage.storeManyChunks([
70
+ { filePath: 'f1.ts', chunks: [{ content: 'x', type: 't', startLine: 1, endLine: 1 }] },
71
+ { filePath: 'f2.ts', chunks: [{ content: 'y', type: 't', startLine: 1, endLine: 1 }] },
72
+ ]);
73
+ expect(map.get('f1.ts')?.length).toBe(1);
74
+ expect(map.get('f2.ts')?.length).toBe(1);
75
+ const chunkId1 = map.get('f1.ts')[0];
76
+ await storage.storeManyChunkVectors([
77
+ {
78
+ chunkId: chunkId1,
79
+ terms: new Map([['x', { tf: 1, tfidf: 0, rawFreq: 1 }]]),
80
+ tokenCount: 1,
81
+ },
82
+ ]);
83
+ await storage.rebuildIdfScoresFromVectors();
84
+ await storage.recalculateTfidfScores();
85
+ await storage.updateChunkMagnitudes();
86
+ const count = await storage.getChunkCount();
87
+ expect(count).toBe(2);
88
+ });
89
+ });
90
+ //# sourceMappingURL=storage-persistent-pg.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"storage-persistent-pg.test.js","sourceRoot":"","sources":["../src/storage-persistent-pg.test.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,110 @@
1
+ /**
2
+ * Types and interface for persistent chunk storage (SQLite and Postgres backends)
3
+ */
4
+ import type { Storage } from './storage.js';
5
+ /** Chunk data for storage */
6
+ export interface ChunkData {
7
+ content: string;
8
+ type: string;
9
+ startLine: number;
10
+ endLine: number;
11
+ metadata?: Record<string, unknown>;
12
+ }
13
+ /** Stored chunk with ID */
14
+ export interface StoredChunk extends ChunkData {
15
+ id: number;
16
+ fileId: number;
17
+ filePath: string;
18
+ }
19
+ /** SQLite backend config (default when no backend specified) */
20
+ export interface SqliteDbConfig {
21
+ backend?: 'sqlite';
22
+ dbPath?: string;
23
+ codebaseRoot?: string;
24
+ }
25
+ /** Postgres config: connection string or separate fields; env fallback in implementation */
26
+ export type PostgresDbConfig = {
27
+ backend: 'postgres';
28
+ } & ({
29
+ connectionString: string;
30
+ } | {
31
+ host?: string;
32
+ port?: number;
33
+ database?: string;
34
+ user?: string;
35
+ password?: string;
36
+ ssl?: boolean;
37
+ });
38
+ /** Config for createPersistentStorage */
39
+ export type PersistentStorageConfig = SqliteDbConfig | PostgresDbConfig;
40
+ /** Result item for searchByTerms */
41
+ export interface SearchByTermsResultItem {
42
+ chunkId: number;
43
+ filePath: string;
44
+ content: string;
45
+ type: string;
46
+ startLine: number;
47
+ endLine: number;
48
+ matchedTerms: Map<string, {
49
+ tfidf: number;
50
+ rawFreq: number;
51
+ }>;
52
+ magnitude: number;
53
+ tokenCount: number;
54
+ }
55
+ /**
56
+ * Persistent storage with chunk-level indexing (files, chunks, vectors, IDF).
57
+ * Implemented by SQLite (PersistentStorage) and Postgres (PostgresPersistentStorage).
58
+ */
59
+ export interface PersistentChunkStorage extends Storage {
60
+ getBackend(): 'sqlite' | 'postgres';
61
+ storeChunks(filePath: string, chunks: ChunkData[]): Promise<number[]>;
62
+ storeManyChunks(fileChunks: Array<{
63
+ filePath: string;
64
+ chunks: ChunkData[];
65
+ }>): Promise<Map<string, number[]>>;
66
+ getChunksForFile(filePath: string): Promise<StoredChunk[]>;
67
+ getChunkCount(): Promise<number>;
68
+ storeChunkVectors(chunkId: number, terms: Map<string, {
69
+ tf: number;
70
+ tfidf: number;
71
+ rawFreq: number;
72
+ }>, tokenCount?: number): Promise<void>;
73
+ storeManyChunkVectors(chunkVectors: Array<{
74
+ chunkId: number;
75
+ terms: Map<string, {
76
+ tf: number;
77
+ tfidf: number;
78
+ rawFreq: number;
79
+ }>;
80
+ tokenCount?: number;
81
+ }>): Promise<void>;
82
+ storeIdfScores(idf: Map<string, number>, docFreq: Map<string, number>): Promise<void>;
83
+ getIdfScores(): Promise<Map<string, number>>;
84
+ getChunkVectors(chunkId: number): Promise<Map<string, {
85
+ tf: number;
86
+ tfidf: number;
87
+ rawFreq: number;
88
+ }> | null>;
89
+ getIdfScoresForTerms(terms: string[]): Promise<Map<string, number>>;
90
+ getTotalDocuments(): Promise<number>;
91
+ getAllFileMetadata(): Promise<Map<string, {
92
+ mtime: number;
93
+ hash: string;
94
+ }>>;
95
+ deleteFiles(paths: string[]): Promise<void>;
96
+ setMetadata(key: string, value: string): Promise<void>;
97
+ getMetadata(key: string): Promise<string | null>;
98
+ getAverageDocLength(): Promise<number>;
99
+ updateAverageDocLength(): Promise<number>;
100
+ rebuildIdfScoresFromVectors(): Promise<void>;
101
+ recalculateTfidfScores(): Promise<void>;
102
+ updateChunkMagnitudes(): Promise<void>;
103
+ getTermsForFiles(paths: string[]): Promise<Set<string>>;
104
+ searchByTerms(queryTerms: string[], options?: {
105
+ limit?: number;
106
+ }): Promise<SearchByTermsResultItem[]>;
107
+ getAllChunks(): Promise<StoredChunk[]>;
108
+ close?(): void;
109
+ }
110
+ //# sourceMappingURL=storage-persistent-types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"storage-persistent-types.d.ts","sourceRoot":"","sources":["../src/storage-persistent-types.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,5 @@
1
+ /**
2
+ * Types and interface for persistent chunk storage (SQLite and Postgres backends)
3
+ */
4
+ export {};
5
+ //# sourceMappingURL=storage-persistent-types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"storage-persistent-types.js","sourceRoot":"","sources":["../src/storage-persistent-types.ts"],"names":[],"mappings":"AAAA;;GAEG"}
@@ -0,0 +1,231 @@
1
+ /**
2
+ * Persistent storage implementation using SQLite + Drizzle ORM (LibSQL WASM-compatible)
3
+ * Now supports chunk-level indexing for better search granularity
4
+ */
5
+ import { type DbConfig } from './db/client.js';
6
+ import type { CodebaseFile, Storage } from './storage.js';
7
+ /**
8
+ * Chunk data for storage
9
+ */
10
+ export interface ChunkData {
11
+ content: string;
12
+ type: string;
13
+ startLine: number;
14
+ endLine: number;
15
+ metadata?: Record<string, unknown>;
16
+ }
17
+ /**
18
+ * Stored chunk with ID
19
+ */
20
+ export interface StoredChunk extends ChunkData {
21
+ id: number;
22
+ fileId: number;
23
+ filePath: string;
24
+ }
25
+ export declare class PersistentStorage implements Storage {
26
+ private dbInstance;
27
+ private initPromise;
28
+ private useBulkInsertChunks;
29
+ constructor(config?: DbConfig);
30
+ private initialize;
31
+ /**
32
+ * Ensure database is initialized before operations
33
+ */
34
+ private ensureInit;
35
+ /**
36
+ * Get the LibSQL client for raw SQL operations
37
+ */
38
+ private get client();
39
+ /**
40
+ * Store a file
41
+ */
42
+ storeFile(file: CodebaseFile): Promise<void>;
43
+ /**
44
+ * Store multiple files in a single transaction (batch operation)
45
+ * Much faster than storing one by one for large datasets
46
+ */
47
+ storeFiles(files: CodebaseFile[]): Promise<void>;
48
+ /**
49
+ * Get a file by path
50
+ */
51
+ getFile(path: string): Promise<CodebaseFile | null>;
52
+ /**
53
+ * Get all files
54
+ */
55
+ getAllFiles(): Promise<CodebaseFile[]>;
56
+ /**
57
+ * Get path -> hash for all files (for skip-unchanged during full index)
58
+ */
59
+ getFileHashes(): Promise<Map<string, string>>;
60
+ /**
61
+ * Delete a file
62
+ */
63
+ deleteFile(path: string): Promise<void>;
64
+ /**
65
+ * Clear all files
66
+ */
67
+ clear(): Promise<void>;
68
+ /**
69
+ * Store chunks for a file (replaces existing chunks)
70
+ */
71
+ storeChunks(filePath: string, chunks: ChunkData[]): Promise<number[]>;
72
+ /**
73
+ * Store chunks for multiple files in batch
74
+ */
75
+ storeManyChunks(fileChunks: Array<{
76
+ filePath: string;
77
+ chunks: ChunkData[];
78
+ }>): Promise<Map<string, number[]>>;
79
+ /**
80
+ * Get chunks for a file
81
+ */
82
+ getChunksForFile(filePath: string): Promise<StoredChunk[]>;
83
+ /**
84
+ * Get total chunk count
85
+ */
86
+ getChunkCount(): Promise<number>;
87
+ /**
88
+ * Get file count
89
+ */
90
+ count(): Promise<number>;
91
+ /**
92
+ * Check if file exists
93
+ */
94
+ exists(path: string): Promise<boolean>;
95
+ /**
96
+ * Store document vectors (TF-IDF) for a CHUNK
97
+ */
98
+ storeChunkVectors(chunkId: number, terms: Map<string, {
99
+ tf: number;
100
+ tfidf: number;
101
+ rawFreq: number;
102
+ }>, tokenCount?: number): Promise<void>;
103
+ /**
104
+ * Store document vectors for multiple CHUNKS in a single transaction (batch operation)
105
+ * Much faster than storing one by one for large datasets
106
+ */
107
+ storeManyChunkVectors(chunkVectors: Array<{
108
+ chunkId: number;
109
+ terms: Map<string, {
110
+ tf: number;
111
+ tfidf: number;
112
+ rawFreq: number;
113
+ }>;
114
+ tokenCount?: number;
115
+ }>): Promise<void>;
116
+ /**
117
+ * Store IDF scores
118
+ */
119
+ storeIdfScores(idf: Map<string, number>, docFreq: Map<string, number>): Promise<void>;
120
+ /**
121
+ * Get IDF scores
122
+ */
123
+ getIdfScores(): Promise<Map<string, number>>;
124
+ /**
125
+ * Get document vectors for a chunk
126
+ */
127
+ getChunkVectors(chunkId: number): Promise<Map<string, {
128
+ tf: number;
129
+ tfidf: number;
130
+ rawFreq: number;
131
+ }> | null>;
132
+ /**
133
+ * Get all chunk vectors in a single batch query (CPU + Memory optimization)
134
+ * Avoids N+1 query pattern when loading index from storage
135
+ * Returns Map<chunkId, Map<term, {tf, tfidf, rawFreq}>>
136
+ */
137
+ getAllChunkVectors(): Promise<Map<number, Map<string, {
138
+ tf: number;
139
+ tfidf: number;
140
+ rawFreq: number;
141
+ }>>>;
142
+ /**
143
+ * Search chunks by terms using SQL (Memory optimization)
144
+ * Returns matching chunks with their content for direct display
145
+ * Uses pre-computed magnitude from chunks table
146
+ */
147
+ searchByTerms(queryTerms: string[], options?: {
148
+ limit?: number;
149
+ }): Promise<Array<{
150
+ chunkId: number;
151
+ filePath: string;
152
+ content: string;
153
+ type: string;
154
+ startLine: number;
155
+ endLine: number;
156
+ matchedTerms: Map<string, {
157
+ tfidf: number;
158
+ rawFreq: number;
159
+ }>;
160
+ magnitude: number;
161
+ tokenCount: number;
162
+ }>>;
163
+ /**
164
+ * Get IDF scores for specific terms only (Memory optimization)
165
+ */
166
+ getIdfScoresForTerms(terms: string[]): Promise<Map<string, number>>;
167
+ /**
168
+ * Get total chunk count (for IDF calculation)
169
+ * BM25/TF-IDF now operates at chunk level, not file level
170
+ */
171
+ getTotalDocuments(): Promise<number>;
172
+ /**
173
+ * Get all file metadata (path, mtime, hash) without content
174
+ * Used for incremental diff detection
175
+ */
176
+ getAllFileMetadata(): Promise<Map<string, {
177
+ mtime: number;
178
+ hash: string;
179
+ }>>;
180
+ /**
181
+ * Delete multiple files in a single transaction (batch operation)
182
+ */
183
+ deleteFiles(paths: string[]): Promise<void>;
184
+ /**
185
+ * Store metadata
186
+ */
187
+ setMetadata(key: string, value: string): Promise<void>;
188
+ /**
189
+ * Get metadata
190
+ */
191
+ getMetadata(key: string): Promise<string | null>;
192
+ /**
193
+ * Get average chunk length (token count) for BM25 scoring
194
+ * Returns cached value from metadata if available, otherwise calculates from chunks table
195
+ */
196
+ getAverageDocLength(): Promise<number>;
197
+ /**
198
+ * Update average chunk length in metadata (call after indexing)
199
+ */
200
+ updateAverageDocLength(): Promise<number>;
201
+ /**
202
+ * Rebuild IDF scores from document vectors using SQL (Memory optimization)
203
+ * Calculates document frequency for each term across CHUNKS and computes IDF
204
+ */
205
+ rebuildIdfScoresFromVectors(): Promise<void>;
206
+ /**
207
+ * Recalculate TF-IDF scores for all documents using current IDF values (Memory optimization)
208
+ * Updates document_vectors.tfidf = document_vectors.tf * idf_scores.idf
209
+ */
210
+ recalculateTfidfScores(): Promise<void>;
211
+ /**
212
+ * Update pre-computed magnitude for all chunks (Memory optimization for search)
213
+ * magnitude = sqrt(sum(tfidf^2)) for each chunk
214
+ * Called after TF-IDF recalculation to keep magnitude in sync
215
+ */
216
+ updateChunkMagnitudes(): Promise<void>;
217
+ /**
218
+ * Get terms for chunks of files (for tracking affected terms during incremental updates)
219
+ * When files are deleted, we need to know which terms were affected
220
+ */
221
+ getTermsForFiles(paths: string[]): Promise<Set<string>>;
222
+ /**
223
+ * Get all chunks with their file paths (for bulk operations)
224
+ */
225
+ getAllChunks(): Promise<StoredChunk[]>;
226
+ /**
227
+ * Close database connection
228
+ */
229
+ close(): void;
230
+ }
231
+ //# sourceMappingURL=storage-persistent.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"storage-persistent.d.ts","sourceRoot":"","sources":["../src/storage-persistent.ts"],"names":[],"mappings":"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"}