@luckydraw/cumulus 0.7.2 → 0.8.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.
- package/dist/index.d.ts +2 -2
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +2 -2
- package/dist/index.js.map +1 -1
- package/dist/lib/content-store.d.ts +10 -7
- package/dist/lib/content-store.d.ts.map +1 -1
- package/dist/lib/content-store.js +111 -52
- package/dist/lib/content-store.js.map +1 -1
- package/dist/lib/embeddings.d.ts +36 -2
- package/dist/lib/embeddings.d.ts.map +1 -1
- package/dist/lib/embeddings.js +306 -34
- package/dist/lib/embeddings.js.map +1 -1
- package/dist/lib/history.d.ts +10 -0
- package/dist/lib/history.d.ts.map +1 -1
- package/dist/lib/history.js +92 -0
- package/dist/lib/history.js.map +1 -1
- package/dist/lib/retriever.d.ts.map +1 -1
- package/dist/lib/retriever.js +33 -11
- package/dist/lib/retriever.js.map +1 -1
- package/package.json +1 -1
package/dist/lib/embeddings.js
CHANGED
|
@@ -79,26 +79,181 @@ export function cosineSimilarity(a, b) {
|
|
|
79
79
|
}
|
|
80
80
|
/**
|
|
81
81
|
* Get the path to the embeddings file for a thread.
|
|
82
|
+
* Returns the .embeddings.json path (canonical name for backward compatibility).
|
|
83
|
+
* Callers should use loadEmbeddings/saveEmbeddings which handle binary format transparently.
|
|
82
84
|
*/
|
|
83
85
|
export function getEmbeddingsPath(threadPath) {
|
|
84
86
|
return threadPath.replace('.jsonl', '.embeddings.json');
|
|
85
87
|
}
|
|
86
88
|
/**
|
|
87
|
-
*
|
|
89
|
+
* Get the binary embeddings path for a thread.
|
|
90
|
+
*/
|
|
91
|
+
function getBinaryEmbeddingsPath(threadPath) {
|
|
92
|
+
return threadPath.replace('.jsonl', '.embeddings.bin');
|
|
93
|
+
}
|
|
94
|
+
// -----------------------------------------------------------------------
|
|
95
|
+
// Module-level in-memory embedding cache
|
|
96
|
+
// Key: threadPath (the .jsonl path, not the embeddings file path)
|
|
97
|
+
// Value: { data: Map<id, embedding>, fileSize: number }
|
|
98
|
+
// -----------------------------------------------------------------------
|
|
99
|
+
const embeddingCaches = new Map();
|
|
100
|
+
// -----------------------------------------------------------------------
|
|
101
|
+
// Binary format helpers
|
|
102
|
+
//
|
|
103
|
+
// Header (7 bytes):
|
|
104
|
+
// version: uint8 (1)
|
|
105
|
+
// dimensions: uint16LE (e.g., 384)
|
|
106
|
+
// entryCount: uint32LE
|
|
107
|
+
//
|
|
108
|
+
// Per entry:
|
|
109
|
+
// idLength: uint16LE
|
|
110
|
+
// id: utf8 bytes (idLength bytes)
|
|
111
|
+
// embedding: Float32LE × dimensions
|
|
112
|
+
// -----------------------------------------------------------------------
|
|
113
|
+
const BINARY_VERSION = 1;
|
|
114
|
+
const HEADER_SIZE = 7; // 1 + 2 + 4
|
|
115
|
+
/**
|
|
116
|
+
* Parse binary embeddings buffer into a Map<id, embedding>.
|
|
117
|
+
*/
|
|
118
|
+
function parseBinaryEmbeddings(buf) {
|
|
119
|
+
const map = new Map();
|
|
120
|
+
if (buf.length < HEADER_SIZE)
|
|
121
|
+
return map;
|
|
122
|
+
const version = buf.readUInt8(0);
|
|
123
|
+
if (version !== BINARY_VERSION)
|
|
124
|
+
return map;
|
|
125
|
+
const dimensions = buf.readUInt16LE(1);
|
|
126
|
+
const entryCount = buf.readUInt32LE(3);
|
|
127
|
+
const floatByteSize = dimensions * 4;
|
|
128
|
+
let offset = HEADER_SIZE;
|
|
129
|
+
for (let i = 0; i < entryCount; i++) {
|
|
130
|
+
if (offset + 2 > buf.length)
|
|
131
|
+
break;
|
|
132
|
+
const idLength = buf.readUInt16LE(offset);
|
|
133
|
+
offset += 2;
|
|
134
|
+
if (offset + idLength > buf.length)
|
|
135
|
+
break;
|
|
136
|
+
const id = buf.toString('utf8', offset, offset + idLength);
|
|
137
|
+
offset += idLength;
|
|
138
|
+
if (offset + floatByteSize > buf.length)
|
|
139
|
+
break;
|
|
140
|
+
const floatArray = new Float32Array(buf.buffer, buf.byteOffset + offset, dimensions);
|
|
141
|
+
map.set(id, Array.from(floatArray));
|
|
142
|
+
offset += floatByteSize;
|
|
143
|
+
}
|
|
144
|
+
return map;
|
|
145
|
+
}
|
|
146
|
+
/**
|
|
147
|
+
* Serialize a Map<id, embedding> to a binary Buffer.
|
|
148
|
+
*/
|
|
149
|
+
function serializeBinaryEmbeddings(entries, dimensions) {
|
|
150
|
+
const entryCount = entries.size;
|
|
151
|
+
// Pre-compute total size
|
|
152
|
+
let totalSize = HEADER_SIZE;
|
|
153
|
+
const encodedIds = [];
|
|
154
|
+
for (const [id] of entries) {
|
|
155
|
+
const encoded = Buffer.from(id, 'utf8');
|
|
156
|
+
encodedIds.push(encoded);
|
|
157
|
+
totalSize += 2 + encoded.length + dimensions * 4;
|
|
158
|
+
}
|
|
159
|
+
const buf = Buffer.allocUnsafe(totalSize);
|
|
160
|
+
buf.writeUInt8(BINARY_VERSION, 0);
|
|
161
|
+
buf.writeUInt16LE(dimensions, 1);
|
|
162
|
+
buf.writeUInt32LE(entryCount, 3);
|
|
163
|
+
let offset = HEADER_SIZE;
|
|
164
|
+
let encIdx = 0;
|
|
165
|
+
for (const [, embedding] of entries) {
|
|
166
|
+
const encoded = encodedIds[encIdx++];
|
|
167
|
+
buf.writeUInt16LE(encoded.length, offset);
|
|
168
|
+
offset += 2;
|
|
169
|
+
encoded.copy(buf, offset);
|
|
170
|
+
offset += encoded.length;
|
|
171
|
+
for (let i = 0; i < dimensions; i++) {
|
|
172
|
+
buf.writeFloatLE(embedding[i] ?? 0, offset);
|
|
173
|
+
offset += 4;
|
|
174
|
+
}
|
|
175
|
+
}
|
|
176
|
+
return buf;
|
|
177
|
+
}
|
|
178
|
+
/**
|
|
179
|
+
* Load binary embeddings from file.
|
|
180
|
+
*/
|
|
181
|
+
async function loadEmbeddingsBinary(threadPath) {
|
|
182
|
+
const binPath = getBinaryEmbeddingsPath(threadPath);
|
|
183
|
+
try {
|
|
184
|
+
const buf = await fs.readFile(binPath);
|
|
185
|
+
return parseBinaryEmbeddings(buf);
|
|
186
|
+
}
|
|
187
|
+
catch (error) {
|
|
188
|
+
if (error.code === 'ENOENT') {
|
|
189
|
+
return null;
|
|
190
|
+
}
|
|
191
|
+
throw error;
|
|
192
|
+
}
|
|
193
|
+
}
|
|
194
|
+
/**
|
|
195
|
+
* Save binary embeddings to file.
|
|
196
|
+
* @param entries - Map of all entries (complete state — not append-only for binary format)
|
|
197
|
+
*/
|
|
198
|
+
async function saveEmbeddingsBinary(threadPath, entries, dimensions) {
|
|
199
|
+
const binPath = getBinaryEmbeddingsPath(threadPath);
|
|
200
|
+
const dir = path.dirname(binPath);
|
|
201
|
+
await fs.mkdir(dir, { recursive: true });
|
|
202
|
+
const buf = serializeBinaryEmbeddings(entries, dimensions);
|
|
203
|
+
await fs.writeFile(binPath, buf);
|
|
204
|
+
}
|
|
205
|
+
/**
|
|
206
|
+
* Load embeddings from file, using in-memory cache.
|
|
207
|
+
* Tries binary format first, then JSON. If JSON loaded, auto-converts to binary.
|
|
88
208
|
*/
|
|
89
209
|
export async function loadEmbeddings(threadPath) {
|
|
90
|
-
const
|
|
210
|
+
const binPath = getBinaryEmbeddingsPath(threadPath);
|
|
211
|
+
// Check cache: get current file size
|
|
212
|
+
let currentSize = -1;
|
|
91
213
|
try {
|
|
92
|
-
const
|
|
214
|
+
const stat = await fs.stat(binPath);
|
|
215
|
+
currentSize = stat.size;
|
|
216
|
+
}
|
|
217
|
+
catch {
|
|
218
|
+
// Binary file doesn't exist yet
|
|
219
|
+
}
|
|
220
|
+
const cached = embeddingCaches.get(threadPath);
|
|
221
|
+
// Cache hit: binary file exists and size unchanged
|
|
222
|
+
if (cached && currentSize >= 0 && currentSize === cached.fileSize) {
|
|
223
|
+
return cached.data;
|
|
224
|
+
}
|
|
225
|
+
// Try loading binary format
|
|
226
|
+
const binaryMap = await loadEmbeddingsBinary(threadPath);
|
|
227
|
+
if (binaryMap !== null) {
|
|
228
|
+
// Cache the result
|
|
229
|
+
const stat = await fs.stat(binPath);
|
|
230
|
+
embeddingCaches.set(threadPath, { data: binaryMap, fileSize: stat.size });
|
|
231
|
+
return binaryMap;
|
|
232
|
+
}
|
|
233
|
+
// Fall back to JSON format
|
|
234
|
+
const jsonPath = getEmbeddingsPath(threadPath);
|
|
235
|
+
try {
|
|
236
|
+
const content = await fs.readFile(jsonPath, 'utf-8');
|
|
93
237
|
const data = JSON.parse(content);
|
|
94
238
|
const map = new Map();
|
|
95
239
|
for (const entry of data.entries) {
|
|
96
240
|
map.set(entry.messageId, entry.embedding);
|
|
97
241
|
}
|
|
242
|
+
// Auto-convert to binary format
|
|
243
|
+
const dimensions = data.dimensions || getEmbeddingProvider().dimensions;
|
|
244
|
+
await saveEmbeddingsBinary(threadPath, map, dimensions);
|
|
245
|
+
// Cache the converted result
|
|
246
|
+
try {
|
|
247
|
+
const stat = await fs.stat(binPath);
|
|
248
|
+
embeddingCaches.set(threadPath, { data: map, fileSize: stat.size });
|
|
249
|
+
}
|
|
250
|
+
catch {
|
|
251
|
+
// If we can't stat for some reason, just cache without size
|
|
252
|
+
embeddingCaches.set(threadPath, { data: map, fileSize: -1 });
|
|
253
|
+
}
|
|
98
254
|
return map;
|
|
99
255
|
}
|
|
100
256
|
catch (error) {
|
|
101
|
-
// File doesn't exist or is invalid - return empty map
|
|
102
257
|
if (error.code === 'ENOENT') {
|
|
103
258
|
return new Map();
|
|
104
259
|
}
|
|
@@ -106,41 +261,34 @@ export async function loadEmbeddings(threadPath) {
|
|
|
106
261
|
}
|
|
107
262
|
}
|
|
108
263
|
/**
|
|
109
|
-
* Save embeddings to file.
|
|
264
|
+
* Save embeddings to file (always writes binary format).
|
|
265
|
+
* Merges new entries into existing embeddings.
|
|
110
266
|
*/
|
|
111
267
|
export async function saveEmbeddings(threadPath, entries, append = true) {
|
|
112
|
-
const embeddingsPath = getEmbeddingsPath(threadPath);
|
|
113
268
|
const provider = getEmbeddingProvider();
|
|
114
|
-
|
|
269
|
+
// Get the current full map (from cache or disk)
|
|
270
|
+
let currentMap;
|
|
115
271
|
if (append) {
|
|
116
|
-
|
|
117
|
-
const content = await fs.readFile(embeddingsPath, 'utf-8');
|
|
118
|
-
existingData = JSON.parse(content);
|
|
119
|
-
}
|
|
120
|
-
catch {
|
|
121
|
-
existingData = {
|
|
122
|
-
version: 1,
|
|
123
|
-
model: provider.name,
|
|
124
|
-
dimensions: provider.dimensions,
|
|
125
|
-
entries: [],
|
|
126
|
-
};
|
|
127
|
-
}
|
|
272
|
+
currentMap = await loadEmbeddings(threadPath);
|
|
128
273
|
}
|
|
129
274
|
else {
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
275
|
+
currentMap = new Map();
|
|
276
|
+
}
|
|
277
|
+
// Merge in new entries
|
|
278
|
+
for (const entry of entries) {
|
|
279
|
+
currentMap.set(entry.messageId, entry.embedding);
|
|
280
|
+
}
|
|
281
|
+
// Save as binary
|
|
282
|
+
await saveEmbeddingsBinary(threadPath, currentMap, provider.dimensions);
|
|
283
|
+
// Update cache
|
|
284
|
+
const binPath = getBinaryEmbeddingsPath(threadPath);
|
|
285
|
+
try {
|
|
286
|
+
const stat = await fs.stat(binPath);
|
|
287
|
+
embeddingCaches.set(threadPath, { data: currentMap, fileSize: stat.size });
|
|
288
|
+
}
|
|
289
|
+
catch {
|
|
290
|
+
embeddingCaches.set(threadPath, { data: currentMap, fileSize: -1 });
|
|
291
|
+
}
|
|
144
292
|
}
|
|
145
293
|
/**
|
|
146
294
|
* Generate embeddings for messages that don't have them yet.
|
|
@@ -168,9 +316,133 @@ export async function generateMissingEmbeddings(threadPath, messages) {
|
|
|
168
316
|
});
|
|
169
317
|
}
|
|
170
318
|
}
|
|
171
|
-
// Save new embeddings
|
|
319
|
+
// Save new embeddings (merge into existing)
|
|
172
320
|
if (newEntries.length > 0) {
|
|
173
321
|
await saveEmbeddings(threadPath, newEntries, true);
|
|
174
322
|
}
|
|
175
323
|
}
|
|
324
|
+
/**
|
|
325
|
+
* Generate and save the embedding for a single message.
|
|
326
|
+
* Used by the embed-on-write hook for background embedding generation.
|
|
327
|
+
*/
|
|
328
|
+
export async function embedSingleMessage(threadPath, message) {
|
|
329
|
+
const provider = getEmbeddingProvider();
|
|
330
|
+
const [embedding] = await provider.embed([message.content]);
|
|
331
|
+
if (!embedding)
|
|
332
|
+
return;
|
|
333
|
+
const entry = {
|
|
334
|
+
messageId: message.id,
|
|
335
|
+
embedding,
|
|
336
|
+
timestamp: new Date().toISOString(),
|
|
337
|
+
};
|
|
338
|
+
await saveEmbeddings(threadPath, [entry], true);
|
|
339
|
+
}
|
|
340
|
+
// -----------------------------------------------------------------------
|
|
341
|
+
// Content store embeddings cache
|
|
342
|
+
// Key: basePath (the content store base directory)
|
|
343
|
+
// -----------------------------------------------------------------------
|
|
344
|
+
const contentEmbeddingCaches = new Map();
|
|
345
|
+
/**
|
|
346
|
+
* Get binary path for content store embeddings.
|
|
347
|
+
*/
|
|
348
|
+
export function getContentEmbeddingsBinPath(basePath) {
|
|
349
|
+
return path.join(basePath, 'embeddings.bin');
|
|
350
|
+
}
|
|
351
|
+
/**
|
|
352
|
+
* Get JSON path for content store embeddings.
|
|
353
|
+
*/
|
|
354
|
+
export function getContentEmbeddingsJsonPath(basePath) {
|
|
355
|
+
return path.join(basePath, 'embeddings.json');
|
|
356
|
+
}
|
|
357
|
+
/**
|
|
358
|
+
* Load content store embeddings with caching.
|
|
359
|
+
* Tries binary first, then JSON with auto-conversion.
|
|
360
|
+
*/
|
|
361
|
+
export async function loadContentEmbeddingsCached(basePath) {
|
|
362
|
+
const binPath = getContentEmbeddingsBinPath(basePath);
|
|
363
|
+
// Check cache
|
|
364
|
+
let currentSize = -1;
|
|
365
|
+
try {
|
|
366
|
+
const stat = await fs.stat(binPath);
|
|
367
|
+
currentSize = stat.size;
|
|
368
|
+
}
|
|
369
|
+
catch {
|
|
370
|
+
// Binary file doesn't exist yet
|
|
371
|
+
}
|
|
372
|
+
const cached = contentEmbeddingCaches.get(basePath);
|
|
373
|
+
if (cached && currentSize >= 0 && currentSize === cached.fileSize) {
|
|
374
|
+
return cached.data;
|
|
375
|
+
}
|
|
376
|
+
// Try binary
|
|
377
|
+
try {
|
|
378
|
+
const buf = await fs.readFile(binPath);
|
|
379
|
+
const map = parseBinaryEmbeddings(buf);
|
|
380
|
+
const stat = await fs.stat(binPath);
|
|
381
|
+
contentEmbeddingCaches.set(basePath, { data: map, fileSize: stat.size });
|
|
382
|
+
return map;
|
|
383
|
+
}
|
|
384
|
+
catch (error) {
|
|
385
|
+
if (error.code !== 'ENOENT')
|
|
386
|
+
throw error;
|
|
387
|
+
}
|
|
388
|
+
// Fall back to JSON
|
|
389
|
+
const jsonPath = getContentEmbeddingsJsonPath(basePath);
|
|
390
|
+
try {
|
|
391
|
+
const content = await fs.readFile(jsonPath, 'utf-8');
|
|
392
|
+
// ContentEmbeddingsFile format uses contentId+chunkIndex as key
|
|
393
|
+
const data = JSON.parse(content);
|
|
394
|
+
const map = new Map();
|
|
395
|
+
for (const entry of data.entries) {
|
|
396
|
+
map.set(`${entry.contentId}:${entry.chunkIndex}`, entry.embedding);
|
|
397
|
+
}
|
|
398
|
+
// Auto-convert to binary
|
|
399
|
+
const dimensions = data.dimensions || getEmbeddingProvider().dimensions;
|
|
400
|
+
await fs.mkdir(basePath, { recursive: true });
|
|
401
|
+
const buf = serializeBinaryEmbeddings(map, dimensions);
|
|
402
|
+
await fs.writeFile(binPath, buf);
|
|
403
|
+
try {
|
|
404
|
+
const stat = await fs.stat(binPath);
|
|
405
|
+
contentEmbeddingCaches.set(basePath, { data: map, fileSize: stat.size });
|
|
406
|
+
}
|
|
407
|
+
catch {
|
|
408
|
+
contentEmbeddingCaches.set(basePath, { data: map, fileSize: -1 });
|
|
409
|
+
}
|
|
410
|
+
return map;
|
|
411
|
+
}
|
|
412
|
+
catch (error) {
|
|
413
|
+
if (error.code === 'ENOENT') {
|
|
414
|
+
return new Map();
|
|
415
|
+
}
|
|
416
|
+
throw error;
|
|
417
|
+
}
|
|
418
|
+
}
|
|
419
|
+
/**
|
|
420
|
+
* Save content store embeddings (always binary), merging new entries into the cache.
|
|
421
|
+
*/
|
|
422
|
+
export async function saveContentEmbeddingsCached(basePath, newEntries) {
|
|
423
|
+
// Load current state (from cache or disk)
|
|
424
|
+
const currentMap = await loadContentEmbeddingsCached(basePath);
|
|
425
|
+
// Merge new entries
|
|
426
|
+
for (const [key, embedding] of newEntries) {
|
|
427
|
+
currentMap.set(key, embedding);
|
|
428
|
+
}
|
|
429
|
+
const binPath = getContentEmbeddingsBinPath(basePath);
|
|
430
|
+
await fs.mkdir(basePath, { recursive: true });
|
|
431
|
+
const buf = serializeBinaryEmbeddings(currentMap, getEmbeddingProvider().dimensions);
|
|
432
|
+
await fs.writeFile(binPath, buf);
|
|
433
|
+
try {
|
|
434
|
+
const stat = await fs.stat(binPath);
|
|
435
|
+
contentEmbeddingCaches.set(basePath, { data: currentMap, fileSize: stat.size });
|
|
436
|
+
}
|
|
437
|
+
catch {
|
|
438
|
+
contentEmbeddingCaches.set(basePath, { data: currentMap, fileSize: -1 });
|
|
439
|
+
}
|
|
440
|
+
}
|
|
441
|
+
/**
|
|
442
|
+
* Invalidate the content embeddings cache for a given basePath.
|
|
443
|
+
* Called after delete operations that rewrite the embeddings file.
|
|
444
|
+
*/
|
|
445
|
+
export function invalidateContentEmbeddingsCache(basePath) {
|
|
446
|
+
contentEmbeddingCaches.delete(basePath);
|
|
447
|
+
}
|
|
176
448
|
//# sourceMappingURL=embeddings.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"embeddings.js","sourceRoot":"","sources":["../../src/lib/embeddings.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"embeddings.js","sourceRoot":"","sources":["../../src/lib/embeddings.ts"],"names":[],"mappings":"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"}
|
package/dist/lib/history.d.ts
CHANGED
|
@@ -44,6 +44,11 @@ export interface HistoryStats {
|
|
|
44
44
|
/** Timestamp of the newest message */
|
|
45
45
|
newestTimestamp?: number;
|
|
46
46
|
}
|
|
47
|
+
/**
|
|
48
|
+
* Register a hook that will be called after every HistoryStore.append().
|
|
49
|
+
* The hook is fire-and-forget — it must handle its own errors.
|
|
50
|
+
*/
|
|
51
|
+
export declare function setOnAppendHook(hook: ((threadPath: string, message: Message) => void) | null): void;
|
|
47
52
|
/**
|
|
48
53
|
* HistoryStore manages conversation history persistence in JSONL format.
|
|
49
54
|
*
|
|
@@ -53,6 +58,10 @@ export interface HistoryStats {
|
|
|
53
58
|
*/
|
|
54
59
|
export declare class HistoryStore {
|
|
55
60
|
readonly threadPath: string;
|
|
61
|
+
/** In-memory cache of messages. null means not yet loaded. */
|
|
62
|
+
private cachedMessages;
|
|
63
|
+
/** File size at the time of the last cache population. -1 means unknown. */
|
|
64
|
+
private cachedFileSize;
|
|
56
65
|
/**
|
|
57
66
|
* Create a new HistoryStore instance.
|
|
58
67
|
* @param threadPath - Absolute path to the JSONL file for this thread
|
|
@@ -79,6 +88,7 @@ export declare class HistoryStore {
|
|
|
79
88
|
/**
|
|
80
89
|
* Load all messages from the history file.
|
|
81
90
|
* Returns empty array if file doesn't exist.
|
|
91
|
+
* Uses incremental read when cache is populated and file has grown.
|
|
82
92
|
* @returns Array of all messages in chronological order
|
|
83
93
|
*/
|
|
84
94
|
getAll(): Promise<Message[]>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"history.d.ts","sourceRoot":"","sources":["../../src/lib/history.ts"],"names":[],"mappings":"AAKA;;GAEG;AACH,MAAM,WAAW,UAAU;IACzB,wBAAwB;IACxB,IAAI,EAAE,MAAM,CAAC;IACb,0BAA0B;IAC1B,IAAI,EAAE,OAAO,GAAG,MAAM,CAAC;IACvB,oCAAoC;IACpC,QAAQ,EAAE,MAAM,CAAC;IACjB;+EAC2E;IAC3E,UAAU,EAAE,MAAM,CAAC;CACpB;AAED;;GAEG;AACH,MAAM,WAAW,OAAO;IACtB,iDAAiD;IACjD,EAAE,EAAE,MAAM,CAAC;IACX,mEAAmE;IACnE,SAAS,EAAE,MAAM,CAAC;IAClB,sFAAsF;IACtF,IAAI,EAAE,MAAM,GAAG,WAAW,GAAG,SAAS,CAAC;IACvC,iCAAiC;IACjC,OAAO,EAAE,MAAM,CAAC;IAChB,oDAAoD;IACpD,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,yDAAyD;IACzD,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACnC,oDAAoD;IACpD,WAAW,CAAC,EAAE,UAAU,EAAE,CAAC;CAC5B;AAED;;GAEG;AACH,MAAM,WAAW,YAAY;IAC3B,+BAA+B;IAC/B,KAAK,EAAE,MAAM,CAAC;IACd,8BAA8B;IAC9B,WAAW,EAAE,MAAM,CAAC;IACpB,sCAAsC;IACtC,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,sCAAsC;IACtC,eAAe,CAAC,EAAE,MAAM,CAAC;CAC1B;AAED;;;;;;GAMG;AACH,qBAAa,YAAY;IACvB,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAE5B;;;OAGG;gBACS,UAAU,EAAE,MAAM;IAI9B;;;OAGG;IACH,OAAO,CAAC,cAAc;IAKtB;;;;;;OAMG;IACG,MAAM,CAAC,GAAG,EAAE,IAAI,CAAC,OAAO,EAAE,IAAI,GAAG,WAAW,CAAC,GAAG,OAAO,CAAC,OAAO,CAAC;
|
|
1
|
+
{"version":3,"file":"history.d.ts","sourceRoot":"","sources":["../../src/lib/history.ts"],"names":[],"mappings":"AAKA;;GAEG;AACH,MAAM,WAAW,UAAU;IACzB,wBAAwB;IACxB,IAAI,EAAE,MAAM,CAAC;IACb,0BAA0B;IAC1B,IAAI,EAAE,OAAO,GAAG,MAAM,CAAC;IACvB,oCAAoC;IACpC,QAAQ,EAAE,MAAM,CAAC;IACjB;+EAC2E;IAC3E,UAAU,EAAE,MAAM,CAAC;CACpB;AAED;;GAEG;AACH,MAAM,WAAW,OAAO;IACtB,iDAAiD;IACjD,EAAE,EAAE,MAAM,CAAC;IACX,mEAAmE;IACnE,SAAS,EAAE,MAAM,CAAC;IAClB,sFAAsF;IACtF,IAAI,EAAE,MAAM,GAAG,WAAW,GAAG,SAAS,CAAC;IACvC,iCAAiC;IACjC,OAAO,EAAE,MAAM,CAAC;IAChB,oDAAoD;IACpD,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,yDAAyD;IACzD,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACnC,oDAAoD;IACpD,WAAW,CAAC,EAAE,UAAU,EAAE,CAAC;CAC5B;AAED;;GAEG;AACH,MAAM,WAAW,YAAY;IAC3B,+BAA+B;IAC/B,KAAK,EAAE,MAAM,CAAC;IACd,8BAA8B;IAC9B,WAAW,EAAE,MAAM,CAAC;IACpB,sCAAsC;IACtC,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,sCAAsC;IACtC,eAAe,CAAC,EAAE,MAAM,CAAC;CAC1B;AASD;;;GAGG;AACH,wBAAgB,eAAe,CAAC,IAAI,EAAE,CAAC,CAAC,UAAU,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,KAAK,IAAI,CAAC,GAAG,IAAI,GAAG,IAAI,CAEnG;AAED;;;;;;GAMG;AACH,qBAAa,YAAY;IACvB,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAE5B,8DAA8D;IAC9D,OAAO,CAAC,cAAc,CAA0B;IAChD,4EAA4E;IAC5E,OAAO,CAAC,cAAc,CAAc;IAEpC;;;OAGG;gBACS,UAAU,EAAE,MAAM;IAI9B;;;OAGG;IACH,OAAO,CAAC,cAAc;IAKtB;;;;;;OAMG;IACG,MAAM,CAAC,GAAG,EAAE,IAAI,CAAC,OAAO,EAAE,IAAI,GAAG,WAAW,CAAC,GAAG,OAAO,CAAC,OAAO,CAAC;IAkEtE;;;OAGG;IACH,OAAO,CAAC,sBAAsB;IAc9B;;;;;OAKG;IACG,MAAM,IAAI,OAAO,CAAC,OAAO,EAAE,CAAC;IAmFlC;;;;;;OAMG;IACG,QAAQ,CAAC,QAAQ,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,EAAE,CAAC;IAKpE;;;;OAIG;IACG,SAAS,CAAC,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,EAAE,CAAC;IAS9C;;;OAGG;IACG,QAAQ,IAAI,OAAO,CAAC,YAAY,CAAC;IAoBvC;;;;;OAKG;IACG,MAAM,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,GAAE,MAAW,GAAG,OAAO,CAAC,OAAO,EAAE,CAAC;IAanE;;;;;;OAMG;IACG,UAAU,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC;CAuBvD"}
|
package/dist/lib/history.js
CHANGED
|
@@ -1,6 +1,18 @@
|
|
|
1
1
|
import * as fs from 'fs/promises';
|
|
2
2
|
import * as path from 'path';
|
|
3
3
|
import { nanoid } from 'nanoid';
|
|
4
|
+
// -----------------------------------------------------------------------
|
|
5
|
+
// Module-level embed-on-write hook
|
|
6
|
+
// -----------------------------------------------------------------------
|
|
7
|
+
/** Hook called after each message is appended (fire-and-forget). */
|
|
8
|
+
let onAppendHook = null;
|
|
9
|
+
/**
|
|
10
|
+
* Register a hook that will be called after every HistoryStore.append().
|
|
11
|
+
* The hook is fire-and-forget — it must handle its own errors.
|
|
12
|
+
*/
|
|
13
|
+
export function setOnAppendHook(hook) {
|
|
14
|
+
onAppendHook = hook;
|
|
15
|
+
}
|
|
4
16
|
/**
|
|
5
17
|
* HistoryStore manages conversation history persistence in JSONL format.
|
|
6
18
|
*
|
|
@@ -10,6 +22,10 @@ import { nanoid } from 'nanoid';
|
|
|
10
22
|
*/
|
|
11
23
|
export class HistoryStore {
|
|
12
24
|
threadPath;
|
|
25
|
+
/** In-memory cache of messages. null means not yet loaded. */
|
|
26
|
+
cachedMessages = null;
|
|
27
|
+
/** File size at the time of the last cache population. -1 means unknown. */
|
|
28
|
+
cachedFileSize = -1;
|
|
13
29
|
/**
|
|
14
30
|
* Create a new HistoryStore instance.
|
|
15
31
|
* @param threadPath - Absolute path to the JSONL file for this thread
|
|
@@ -73,6 +89,23 @@ export class HistoryStore {
|
|
|
73
89
|
// Append to file with newline
|
|
74
90
|
const line = JSON.stringify(message) + '\n';
|
|
75
91
|
await fs.appendFile(this.threadPath, line, 'utf-8');
|
|
92
|
+
// Update in-memory cache: push message (with relative attachment paths as stored on disk)
|
|
93
|
+
if (this.cachedMessages !== null) {
|
|
94
|
+
this.cachedMessages.push(message);
|
|
95
|
+
}
|
|
96
|
+
// Update cached file size by adding the byte length of the written line
|
|
97
|
+
if (this.cachedFileSize >= 0) {
|
|
98
|
+
this.cachedFileSize += Buffer.byteLength(line, 'utf-8');
|
|
99
|
+
}
|
|
100
|
+
// Fire embed-on-write hook (non-blocking, errors must not propagate)
|
|
101
|
+
if (onAppendHook) {
|
|
102
|
+
try {
|
|
103
|
+
onAppendHook(this.threadPath, message);
|
|
104
|
+
}
|
|
105
|
+
catch {
|
|
106
|
+
// Hook errors are silently ignored
|
|
107
|
+
}
|
|
108
|
+
}
|
|
76
109
|
return message;
|
|
77
110
|
}
|
|
78
111
|
/**
|
|
@@ -96,12 +129,64 @@ export class HistoryStore {
|
|
|
96
129
|
/**
|
|
97
130
|
* Load all messages from the history file.
|
|
98
131
|
* Returns empty array if file doesn't exist.
|
|
132
|
+
* Uses incremental read when cache is populated and file has grown.
|
|
99
133
|
* @returns Array of all messages in chronological order
|
|
100
134
|
*/
|
|
101
135
|
async getAll() {
|
|
136
|
+
// Check current file size
|
|
137
|
+
let currentSize = -1;
|
|
138
|
+
try {
|
|
139
|
+
const stat = await fs.stat(this.threadPath);
|
|
140
|
+
currentSize = stat.size;
|
|
141
|
+
}
|
|
142
|
+
catch (error) {
|
|
143
|
+
if (error.code === 'ENOENT') {
|
|
144
|
+
// File doesn't exist
|
|
145
|
+
this.cachedMessages = [];
|
|
146
|
+
this.cachedFileSize = 0;
|
|
147
|
+
return [];
|
|
148
|
+
}
|
|
149
|
+
throw error;
|
|
150
|
+
}
|
|
151
|
+
// Cache hit: file unchanged
|
|
152
|
+
if (this.cachedMessages !== null && currentSize === this.cachedFileSize) {
|
|
153
|
+
return this.resolveAttachmentPaths(this.cachedMessages);
|
|
154
|
+
}
|
|
155
|
+
// Incremental read: file grew since last cache (append-only assumption)
|
|
156
|
+
if (this.cachedMessages !== null &&
|
|
157
|
+
this.cachedFileSize >= 0 &&
|
|
158
|
+
currentSize > this.cachedFileSize) {
|
|
159
|
+
try {
|
|
160
|
+
const bytesToRead = currentSize - this.cachedFileSize;
|
|
161
|
+
const buf = Buffer.allocUnsafe(bytesToRead);
|
|
162
|
+
const fh = await fs.open(this.threadPath, 'r');
|
|
163
|
+
try {
|
|
164
|
+
await fh.read(buf, 0, bytesToRead, this.cachedFileSize);
|
|
165
|
+
}
|
|
166
|
+
finally {
|
|
167
|
+
await fh.close();
|
|
168
|
+
}
|
|
169
|
+
const newContent = buf.toString('utf-8');
|
|
170
|
+
const newMessages = newContent
|
|
171
|
+
.split('\n')
|
|
172
|
+
.filter(line => line.trim())
|
|
173
|
+
.map(line => JSON.parse(line));
|
|
174
|
+
this.cachedMessages.push(...newMessages);
|
|
175
|
+
this.cachedFileSize = currentSize;
|
|
176
|
+
return this.resolveAttachmentPaths(this.cachedMessages);
|
|
177
|
+
}
|
|
178
|
+
catch {
|
|
179
|
+
// If incremental read fails for any reason, fall through to full read
|
|
180
|
+
this.cachedMessages = null;
|
|
181
|
+
this.cachedFileSize = -1;
|
|
182
|
+
}
|
|
183
|
+
}
|
|
184
|
+
// Full read (cold start or file shrank / was rewritten)
|
|
102
185
|
try {
|
|
103
186
|
const content = await fs.readFile(this.threadPath, 'utf-8');
|
|
104
187
|
if (!content.trim()) {
|
|
188
|
+
this.cachedMessages = [];
|
|
189
|
+
this.cachedFileSize = currentSize;
|
|
105
190
|
return [];
|
|
106
191
|
}
|
|
107
192
|
const messages = content
|
|
@@ -109,11 +194,15 @@ export class HistoryStore {
|
|
|
109
194
|
.split('\n')
|
|
110
195
|
.filter(line => line.trim())
|
|
111
196
|
.map(line => JSON.parse(line));
|
|
197
|
+
this.cachedMessages = messages;
|
|
198
|
+
this.cachedFileSize = currentSize;
|
|
112
199
|
return this.resolveAttachmentPaths(messages);
|
|
113
200
|
}
|
|
114
201
|
catch (error) {
|
|
115
202
|
// File doesn't exist - return empty array
|
|
116
203
|
if (error.code === 'ENOENT') {
|
|
204
|
+
this.cachedMessages = [];
|
|
205
|
+
this.cachedFileSize = 0;
|
|
117
206
|
return [];
|
|
118
207
|
}
|
|
119
208
|
throw error;
|
|
@@ -199,6 +288,9 @@ export class HistoryStore {
|
|
|
199
288
|
const content = kept.map(m => JSON.stringify(m)).join('\n') + '\n';
|
|
200
289
|
await fs.writeFile(tmpPath, content, 'utf-8');
|
|
201
290
|
await fs.rename(tmpPath, this.threadPath);
|
|
291
|
+
// Invalidate cache: file was rewritten (not just appended)
|
|
292
|
+
this.cachedMessages = null;
|
|
293
|
+
this.cachedFileSize = -1;
|
|
202
294
|
return removed.map(m => m.id);
|
|
203
295
|
}
|
|
204
296
|
}
|
package/dist/lib/history.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"history.js","sourceRoot":"","sources":["../../src/lib/history.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"history.js","sourceRoot":"","sources":["../../src/lib/history.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"retriever.d.ts","sourceRoot":"","sources":["../../src/lib/retriever.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,YAAY,EAAuB,MAAM,oBAAoB,CAAC;
|
|
1
|
+
{"version":3,"file":"retriever.d.ts","sourceRoot":"","sources":["../../src/lib/retriever.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,YAAY,EAAuB,MAAM,oBAAoB,CAAC;AAUvE,OAAO,EAAE,YAAY,EAA4B,MAAM,cAAc,CAAC;AAYtE,6EAA6E;AAC7E,eAAO,MAAM,yBAAyB,MAAO,CAAC;AA6D9C,MAAM,WAAW,eAAe;IAC9B,sEAAsE;IACtE,OAAO,EAAE,MAAM,CAAC;IAChB,0CAA0C;IAC1C,YAAY,EAAE,MAAM,CAAC;IACrB,uCAAuC;IACvC,YAAY,EAAE,MAAM,CAAC;IACrB,6CAA6C;IAC7C,UAAU,EAAE,MAAM,CAAC;IACnB,0CAA0C;IAC1C,KAAK,EAAE;QACL,cAAc,EAAE,KAAK,CAAC;YAAE,KAAK,EAAE,MAAM,CAAC;YAAC,IAAI,EAAE,MAAM,CAAC;YAAC,KAAK,EAAE,MAAM,CAAC;YAAC,OAAO,EAAE,MAAM,CAAA;SAAE,CAAC,CAAC;QACvF,cAAc,EAAE,KAAK,CAAC;YAAE,EAAE,EAAE,MAAM,CAAC;YAAC,KAAK,EAAE,MAAM,CAAC;YAAC,OAAO,EAAE,MAAM,CAAA;SAAE,CAAC,CAAC;QACtE,cAAc,EAAE,KAAK,CAAC;YAAE,SAAS,EAAE,MAAM,CAAC;YAAC,KAAK,EAAE,MAAM,CAAC;YAAC,OAAO,EAAE,MAAM,CAAA;SAAE,CAAC,CAAC;KAC9E,CAAC;CACH;AAED,MAAM,WAAW,gBAAgB;IAC/B,yCAAyC;IACzC,YAAY,EAAE,MAAM,CAAC;IACrB,4DAA4D;IAC5D,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,gDAAgD;IAChD,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,uDAAuD;IACvD,cAAc,CAAC,EAAE,KAAK,CAAC;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;CAC3D;AA+qBD;;;GAGG;AACH,wBAAsB,QAAQ,CAC5B,KAAK,EAAE,MAAM,EACb,YAAY,EAAE,YAAY,EAC1B,YAAY,EAAE,YAAY,GAAG,IAAI,EACjC,OAAO,EAAE,gBAAgB,GACxB,OAAO,CAAC,eAAe,CAAC,CA0E1B"}
|