@speakeasy-api/docs-mcp-core 0.1.0 → 0.2.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/README.md +1 -1
- package/dist/chunk-cache.d.ts +17 -0
- package/dist/chunk-cache.d.ts.map +1 -0
- package/dist/chunk-cache.js +123 -0
- package/dist/chunk-cache.js.map +1 -0
- package/dist/chunking.d.ts +6 -0
- package/dist/chunking.d.ts.map +1 -1
- package/dist/chunking.js +102 -11
- package/dist/chunking.js.map +1 -1
- package/dist/embedding-cache.d.ts +2 -2
- package/dist/embedding-cache.d.ts.map +1 -1
- package/dist/embedding-cache.js +26 -2
- package/dist/embedding-cache.js.map +1 -1
- package/dist/embedding.d.ts +41 -1
- package/dist/embedding.d.ts.map +1 -1
- package/dist/embedding.js +269 -1
- package/dist/embedding.js.map +1 -1
- package/dist/index.d.ts +2 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +2 -0
- package/dist/index.js.map +1 -1
- package/dist/lancedb.d.ts +18 -0
- package/dist/lancedb.d.ts.map +1 -1
- package/dist/lancedb.js +37 -5
- package/dist/lancedb.js.map +1 -1
- package/dist/manifest-schema.d.ts +63 -0
- package/dist/manifest-schema.d.ts.map +1 -0
- package/dist/manifest-schema.js +68 -0
- package/dist/manifest-schema.js.map +1 -0
- package/dist/manifest.d.ts +6 -1
- package/dist/manifest.d.ts.map +1 -1
- package/dist/manifest.js +26 -0
- package/dist/manifest.js.map +1 -1
- package/dist/metadata.d.ts +6 -1
- package/dist/metadata.d.ts.map +1 -1
- package/dist/metadata.js +15 -3
- package/dist/metadata.js.map +1 -1
- package/dist/search-common.d.ts +6 -0
- package/dist/search-common.d.ts.map +1 -1
- package/dist/search-common.js +26 -0
- package/dist/search-common.js.map +1 -1
- package/dist/search.d.ts +4 -1
- package/dist/search.d.ts.map +1 -1
- package/dist/search.js +21 -3
- package/dist/search.js.map +1 -1
- package/dist/types.d.ts +28 -0
- package/dist/types.d.ts.map +1 -1
- package/package.json +8 -3
package/dist/embedding.js
CHANGED
|
@@ -20,6 +20,7 @@ export class NoopEmbeddingProvider {
|
|
|
20
20
|
name = "none";
|
|
21
21
|
model = "none";
|
|
22
22
|
dimensions = 0;
|
|
23
|
+
costPerMillionTokens = 0;
|
|
23
24
|
configFingerprint;
|
|
24
25
|
constructor() {
|
|
25
26
|
this.configFingerprint = computeConfigFingerprint({
|
|
@@ -36,6 +37,7 @@ export class HashEmbeddingProvider {
|
|
|
36
37
|
name = "hash";
|
|
37
38
|
model;
|
|
38
39
|
dimensions;
|
|
40
|
+
costPerMillionTokens = 0;
|
|
39
41
|
configFingerprint;
|
|
40
42
|
constructor(options = {}) {
|
|
41
43
|
this.dimensions = options.dimensions ?? 256;
|
|
@@ -50,11 +52,25 @@ export class HashEmbeddingProvider {
|
|
|
50
52
|
return texts.map((text) => hashToUnitVector(text, this.dimensions));
|
|
51
53
|
}
|
|
52
54
|
}
|
|
55
|
+
/**
|
|
56
|
+
* Conservative character limit per text input to stay under the 8191-token
|
|
57
|
+
* context window of OpenAI embedding models. We use ~3 chars/token as a
|
|
58
|
+
* safety margin so 8000 * 3 = 24 000 characters.
|
|
59
|
+
*/
|
|
60
|
+
const DEFAULT_MAX_INPUT_CHARS = 24_000;
|
|
61
|
+
/** Known pricing in USD per 1M input tokens for OpenAI embedding models. */
|
|
62
|
+
const OPENAI_COST_PER_M_TOKENS = {
|
|
63
|
+
"text-embedding-3-large": 0.13,
|
|
64
|
+
"text-embedding-3-small": 0.02,
|
|
65
|
+
"text-embedding-ada-002": 0.10,
|
|
66
|
+
};
|
|
53
67
|
export class OpenAIEmbeddingProvider {
|
|
54
68
|
name = "openai";
|
|
55
69
|
model;
|
|
56
70
|
dimensions;
|
|
71
|
+
costPerMillionTokens;
|
|
57
72
|
configFingerprint;
|
|
73
|
+
batchApiThreshold;
|
|
58
74
|
apiKey;
|
|
59
75
|
batchSize;
|
|
60
76
|
baseUrl;
|
|
@@ -62,19 +78,25 @@ export class OpenAIEmbeddingProvider {
|
|
|
62
78
|
maxRetries;
|
|
63
79
|
retryBaseDelayMs;
|
|
64
80
|
retryMaxDelayMs;
|
|
81
|
+
batchName;
|
|
82
|
+
onBatchProgress;
|
|
65
83
|
constructor(options) {
|
|
66
84
|
if (!options.apiKey.trim()) {
|
|
67
85
|
throw new Error("OpenAIEmbeddingProvider requires a non-empty apiKey");
|
|
68
86
|
}
|
|
69
87
|
this.apiKey = options.apiKey;
|
|
70
88
|
this.model = options.model ?? "text-embedding-3-large";
|
|
89
|
+
this.costPerMillionTokens = OPENAI_COST_PER_M_TOKENS[this.model] ?? 0;
|
|
71
90
|
this.dimensions = options.dimensions ?? 3072;
|
|
72
91
|
this.batchSize = options.batchSize ?? 128;
|
|
92
|
+
this.batchApiThreshold = options.batchApiThreshold ?? 2500;
|
|
93
|
+
this.batchName = options.batchName ?? "";
|
|
73
94
|
this.baseUrl = (options.baseUrl ?? "https://api.openai.com/v1").replace(/\/$/, "");
|
|
74
95
|
this.concurrency = normalizeInt(options.concurrency, 4, 1, 32);
|
|
75
96
|
this.maxRetries = normalizeInt(options.maxRetries, 3, 0, 10);
|
|
76
97
|
this.retryBaseDelayMs = normalizeInt(options.retryBaseDelayMs, 500, 50, 60_000);
|
|
77
98
|
this.retryMaxDelayMs = normalizeInt(options.retryMaxDelayMs, 10_000, 100, 120_000);
|
|
99
|
+
this.onBatchProgress = options.onBatchProgress;
|
|
78
100
|
this.configFingerprint = computeConfigFingerprint({
|
|
79
101
|
provider: "openai",
|
|
80
102
|
model: this.model,
|
|
@@ -86,6 +108,9 @@ export class OpenAIEmbeddingProvider {
|
|
|
86
108
|
if (texts.length === 0) {
|
|
87
109
|
return [];
|
|
88
110
|
}
|
|
111
|
+
if (this.batchApiThreshold > 0 && texts.length >= this.batchApiThreshold) {
|
|
112
|
+
return this.embedViaBatchApi(texts);
|
|
113
|
+
}
|
|
89
114
|
const vectors = new Array(texts.length);
|
|
90
115
|
const batches = [];
|
|
91
116
|
for (let i = 0; i < texts.length; i += this.batchSize) {
|
|
@@ -107,6 +132,15 @@ export class OpenAIEmbeddingProvider {
|
|
|
107
132
|
}
|
|
108
133
|
async embedBatchWithRetry(batch) {
|
|
109
134
|
let attempt = 0;
|
|
135
|
+
const truncated = batch.map((text) => {
|
|
136
|
+
if (text.length > DEFAULT_MAX_INPUT_CHARS) {
|
|
137
|
+
const source = text.match(/^Context: (.+)\n/)?.[1] ?? "unknown";
|
|
138
|
+
console.warn(`[docs-mcp] Embedding input truncated from ${text.length} to ${DEFAULT_MAX_INPUT_CHARS} characters (source: ${source}). ` +
|
|
139
|
+
`Consider lowering max_chunk_size in your chunking strategy to avoid content loss.`);
|
|
140
|
+
return text.slice(0, DEFAULT_MAX_INPUT_CHARS);
|
|
141
|
+
}
|
|
142
|
+
return text;
|
|
143
|
+
});
|
|
110
144
|
while (true) {
|
|
111
145
|
const response = await fetch(`${this.baseUrl}/embeddings`, {
|
|
112
146
|
method: "POST",
|
|
@@ -116,7 +150,7 @@ export class OpenAIEmbeddingProvider {
|
|
|
116
150
|
},
|
|
117
151
|
body: JSON.stringify({
|
|
118
152
|
model: this.model,
|
|
119
|
-
input:
|
|
153
|
+
input: truncated,
|
|
120
154
|
dimensions: this.dimensions
|
|
121
155
|
})
|
|
122
156
|
});
|
|
@@ -141,6 +175,224 @@ export class OpenAIEmbeddingProvider {
|
|
|
141
175
|
attempt += 1;
|
|
142
176
|
}
|
|
143
177
|
}
|
|
178
|
+
buildBatchJsonl(texts) {
|
|
179
|
+
const lines = [];
|
|
180
|
+
for (let i = 0; i < texts.length; i++) {
|
|
181
|
+
let text = texts[i];
|
|
182
|
+
if (text.length > DEFAULT_MAX_INPUT_CHARS) {
|
|
183
|
+
text = text.slice(0, DEFAULT_MAX_INPUT_CHARS);
|
|
184
|
+
}
|
|
185
|
+
lines.push(JSON.stringify({
|
|
186
|
+
custom_id: `req-${i}`,
|
|
187
|
+
method: "POST",
|
|
188
|
+
url: "/v1/embeddings",
|
|
189
|
+
body: {
|
|
190
|
+
model: this.model,
|
|
191
|
+
input: text,
|
|
192
|
+
dimensions: this.dimensions,
|
|
193
|
+
},
|
|
194
|
+
}));
|
|
195
|
+
}
|
|
196
|
+
return lines.join("\n");
|
|
197
|
+
}
|
|
198
|
+
async uploadBatchFile(jsonl) {
|
|
199
|
+
const blob = new Blob([jsonl], { type: "application/jsonl" });
|
|
200
|
+
const formData = new FormData();
|
|
201
|
+
formData.append("purpose", "batch");
|
|
202
|
+
formData.append("file", blob, "batch-embeddings.jsonl");
|
|
203
|
+
const response = await fetch(`${this.baseUrl}/files`, {
|
|
204
|
+
method: "POST",
|
|
205
|
+
headers: { Authorization: `Bearer ${this.apiKey}` },
|
|
206
|
+
body: formData,
|
|
207
|
+
});
|
|
208
|
+
if (!response.ok) {
|
|
209
|
+
const body = await response.text();
|
|
210
|
+
throw new Error(`OpenAI file upload failed (${response.status}): ${body.slice(0, 500)}`);
|
|
211
|
+
}
|
|
212
|
+
const payload = (await response.json());
|
|
213
|
+
return payload.id;
|
|
214
|
+
}
|
|
215
|
+
async createBatch(fileId, contentSha) {
|
|
216
|
+
const response = await fetch(`${this.baseUrl}/batches`, {
|
|
217
|
+
method: "POST",
|
|
218
|
+
headers: {
|
|
219
|
+
"Content-Type": "application/json",
|
|
220
|
+
Authorization: `Bearer ${this.apiKey}`,
|
|
221
|
+
},
|
|
222
|
+
body: JSON.stringify({
|
|
223
|
+
input_file_id: fileId,
|
|
224
|
+
endpoint: "/v1/embeddings",
|
|
225
|
+
completion_window: "24h",
|
|
226
|
+
metadata: {
|
|
227
|
+
...(this.batchName ? { batch_name: this.batchName } : {}),
|
|
228
|
+
content_sha: contentSha,
|
|
229
|
+
},
|
|
230
|
+
}),
|
|
231
|
+
});
|
|
232
|
+
if (!response.ok) {
|
|
233
|
+
const body = await response.text();
|
|
234
|
+
throw new Error(`OpenAI batch creation failed (${response.status}): ${body.slice(0, 500)}`);
|
|
235
|
+
}
|
|
236
|
+
const payload = (await response.json());
|
|
237
|
+
return payload.id;
|
|
238
|
+
}
|
|
239
|
+
/**
|
|
240
|
+
* Search recent OpenAI batches for one whose metadata.content_sha matches,
|
|
241
|
+
* indicating the same embedding inputs were already submitted.
|
|
242
|
+
* Returns the batch if found in a usable state; null otherwise.
|
|
243
|
+
*/
|
|
244
|
+
async findExistingBatch(contentSha) {
|
|
245
|
+
try {
|
|
246
|
+
const response = await fetch(`${this.baseUrl}/batches?limit=100`, {
|
|
247
|
+
headers: { Authorization: `Bearer ${this.apiKey}` },
|
|
248
|
+
});
|
|
249
|
+
if (!response.ok) {
|
|
250
|
+
return null; // Non-critical — fall through to creating a new batch
|
|
251
|
+
}
|
|
252
|
+
const payload = (await response.json());
|
|
253
|
+
for (const batch of payload.data) {
|
|
254
|
+
if (this.batchName && batch.metadata?.batch_name && batch.metadata.batch_name !== this.batchName)
|
|
255
|
+
continue;
|
|
256
|
+
if (batch.metadata?.content_sha !== contentSha)
|
|
257
|
+
continue;
|
|
258
|
+
// Skip terminal failure states — we'll create a new batch
|
|
259
|
+
if (batch.status === "failed" || batch.status === "expired" || batch.status === "cancelled") {
|
|
260
|
+
continue;
|
|
261
|
+
}
|
|
262
|
+
return {
|
|
263
|
+
id: batch.id,
|
|
264
|
+
status: batch.status,
|
|
265
|
+
...(batch.output_file_id ? { output_file_id: batch.output_file_id } : {}),
|
|
266
|
+
};
|
|
267
|
+
}
|
|
268
|
+
}
|
|
269
|
+
catch {
|
|
270
|
+
// Network error listing batches — non-critical
|
|
271
|
+
}
|
|
272
|
+
return null;
|
|
273
|
+
}
|
|
274
|
+
async pollBatchUntilComplete(batchId) {
|
|
275
|
+
const maxWaitMs = 2 * 60 * 60 * 1000; // 2 hours
|
|
276
|
+
const intervals = [10_000, 10_000, 10_000, 30_000, 30_000, 60_000]; // escalating
|
|
277
|
+
const startTime = Date.now();
|
|
278
|
+
let pollIndex = 0;
|
|
279
|
+
let firstProgressTime;
|
|
280
|
+
let firstProgressCompleted;
|
|
281
|
+
while (true) {
|
|
282
|
+
const interval = intervals[Math.min(pollIndex, intervals.length - 1)];
|
|
283
|
+
const response = await fetch(`${this.baseUrl}/batches/${batchId}`, {
|
|
284
|
+
headers: { Authorization: `Bearer ${this.apiKey}` },
|
|
285
|
+
});
|
|
286
|
+
if (!response.ok) {
|
|
287
|
+
const body = await response.text();
|
|
288
|
+
throw new Error(`OpenAI batch poll failed (${response.status}): ${body.slice(0, 500)}`);
|
|
289
|
+
}
|
|
290
|
+
const batch = (await response.json());
|
|
291
|
+
if (batch.status === "completed") {
|
|
292
|
+
if (!batch.output_file_id) {
|
|
293
|
+
throw new Error("OpenAI batch completed but no output_file_id returned");
|
|
294
|
+
}
|
|
295
|
+
return batch.output_file_id;
|
|
296
|
+
}
|
|
297
|
+
if (batch.status === "failed" || batch.status === "expired" || batch.status === "cancelled") {
|
|
298
|
+
throw new Error(`OpenAI batch ${batch.status}`);
|
|
299
|
+
}
|
|
300
|
+
if (Date.now() - startTime >= maxWaitMs) {
|
|
301
|
+
throw new Error(`OpenAI batch timed out after ${maxWaitMs / 1000}s`);
|
|
302
|
+
}
|
|
303
|
+
const intervalSec = interval / 1000;
|
|
304
|
+
const counts = batch.request_counts;
|
|
305
|
+
// Track first time we see progress to compute ETA
|
|
306
|
+
if (counts && counts.completed > 0 && firstProgressTime === undefined) {
|
|
307
|
+
firstProgressTime = Date.now();
|
|
308
|
+
firstProgressCompleted = counts.completed;
|
|
309
|
+
}
|
|
310
|
+
let etaSec;
|
|
311
|
+
if (firstProgressTime !== undefined && firstProgressCompleted !== undefined && counts && counts.completed > firstProgressCompleted) {
|
|
312
|
+
const elapsedSinceFirst = (Date.now() - firstProgressTime) / 1000;
|
|
313
|
+
const completedSinceFirst = counts.completed - firstProgressCompleted;
|
|
314
|
+
const rate = completedSinceFirst / elapsedSinceFirst;
|
|
315
|
+
etaSec = Math.round((counts.total - counts.completed) / rate);
|
|
316
|
+
}
|
|
317
|
+
let progressSuffix = "";
|
|
318
|
+
if (counts) {
|
|
319
|
+
const pct = ((counts.completed / counts.total) * 100).toFixed(1);
|
|
320
|
+
const eta = etaSec !== undefined ? `, ETA ~${formatDuration(etaSec)}` : "";
|
|
321
|
+
const failed = counts.failed > 0 ? `, ${counts.failed} failed` : "";
|
|
322
|
+
progressSuffix = ` — ${counts.completed}/${counts.total} (${pct}%)${failed}${eta}`;
|
|
323
|
+
}
|
|
324
|
+
for (let remaining = intervalSec; remaining > 0; remaining--) {
|
|
325
|
+
const now = Math.round((Date.now() - startTime) / 1000);
|
|
326
|
+
this.onBatchProgress?.({
|
|
327
|
+
phase: "batch-polling",
|
|
328
|
+
message: `Batch API: Elapsed=${now}s. Next poll in ${remaining}s${progressSuffix}`,
|
|
329
|
+
...(counts ? { counts } : {}),
|
|
330
|
+
elapsedSec: now,
|
|
331
|
+
pollRemainingSec: remaining,
|
|
332
|
+
...(etaSec !== undefined ? { etaSec } : {}),
|
|
333
|
+
});
|
|
334
|
+
await sleep(1000);
|
|
335
|
+
}
|
|
336
|
+
pollIndex++;
|
|
337
|
+
}
|
|
338
|
+
}
|
|
339
|
+
async downloadBatchResults(outputFileId, expectedCount) {
|
|
340
|
+
this.onBatchProgress?.({
|
|
341
|
+
phase: "batch-downloading",
|
|
342
|
+
message: "Downloading results...",
|
|
343
|
+
});
|
|
344
|
+
const response = await fetch(`${this.baseUrl}/files/${outputFileId}/content`, {
|
|
345
|
+
headers: { Authorization: `Bearer ${this.apiKey}` },
|
|
346
|
+
});
|
|
347
|
+
if (!response.ok) {
|
|
348
|
+
const body = await response.text();
|
|
349
|
+
throw new Error(`OpenAI batch results download failed (${response.status}): ${body.slice(0, 500)}`);
|
|
350
|
+
}
|
|
351
|
+
const text = await response.text();
|
|
352
|
+
const vectors = new Array(expectedCount);
|
|
353
|
+
for (const line of text.split("\n")) {
|
|
354
|
+
if (!line.trim())
|
|
355
|
+
continue;
|
|
356
|
+
const row = JSON.parse(line);
|
|
357
|
+
const index = Number.parseInt(row.custom_id.replace("req-", ""), 10);
|
|
358
|
+
vectors[index] = row.response.body.data[0].embedding;
|
|
359
|
+
}
|
|
360
|
+
if (vectors.some((v) => v === undefined)) {
|
|
361
|
+
throw new Error("OpenAI batch results missing one or more vectors");
|
|
362
|
+
}
|
|
363
|
+
return vectors;
|
|
364
|
+
}
|
|
365
|
+
async embedViaBatchApi(texts) {
|
|
366
|
+
const jsonl = this.buildBatchJsonl(texts);
|
|
367
|
+
const contentSha = sha256hex(jsonl);
|
|
368
|
+
const sizeMB = (new TextEncoder().encode(jsonl).byteLength / (1024 * 1024)).toFixed(1);
|
|
369
|
+
// Check if an identical batch already exists on OpenAI (e.g. from a cancelled run)
|
|
370
|
+
const existing = await this.findExistingBatch(contentSha);
|
|
371
|
+
if (existing) {
|
|
372
|
+
if (existing.status === "completed" && existing.output_file_id) {
|
|
373
|
+
this.onBatchProgress?.({
|
|
374
|
+
phase: "batch-downloading",
|
|
375
|
+
message: `Found completed batch ${existing.id} with matching content — downloading results...`,
|
|
376
|
+
});
|
|
377
|
+
return this.downloadBatchResults(existing.output_file_id, texts.length);
|
|
378
|
+
}
|
|
379
|
+
// Still in progress — resume polling
|
|
380
|
+
this.onBatchProgress?.({
|
|
381
|
+
phase: "batch-polling",
|
|
382
|
+
message: `Resuming existing batch ${existing.id} (status: ${existing.status})`,
|
|
383
|
+
});
|
|
384
|
+
const outputFileId = await this.pollBatchUntilComplete(existing.id);
|
|
385
|
+
return this.downloadBatchResults(outputFileId, texts.length);
|
|
386
|
+
}
|
|
387
|
+
this.onBatchProgress?.({
|
|
388
|
+
phase: "batch-uploading",
|
|
389
|
+
message: `Embedding ${texts.length} chunks (>= ${this.batchApiThreshold} threshold): using batch API\nUploading batch file: ${sizeMB}MB...`,
|
|
390
|
+
});
|
|
391
|
+
const fileId = await this.uploadBatchFile(jsonl);
|
|
392
|
+
const batchId = await this.createBatch(fileId, contentSha);
|
|
393
|
+
const outputFileId = await this.pollBatchUntilComplete(batchId);
|
|
394
|
+
return this.downloadBatchResults(outputFileId, texts.length);
|
|
395
|
+
}
|
|
144
396
|
}
|
|
145
397
|
export function createEmbeddingProvider(input) {
|
|
146
398
|
if (input.provider !== "none" &&
|
|
@@ -190,6 +442,15 @@ export function createEmbeddingProvider(input) {
|
|
|
190
442
|
if (input.retryMaxDelayMs !== undefined) {
|
|
191
443
|
options.retryMaxDelayMs = input.retryMaxDelayMs;
|
|
192
444
|
}
|
|
445
|
+
if (input.batchApiThreshold !== undefined) {
|
|
446
|
+
options.batchApiThreshold = input.batchApiThreshold;
|
|
447
|
+
}
|
|
448
|
+
if (input.batchName !== undefined) {
|
|
449
|
+
options.batchName = input.batchName;
|
|
450
|
+
}
|
|
451
|
+
if (input.onBatchProgress !== undefined) {
|
|
452
|
+
options.onBatchProgress = input.onBatchProgress;
|
|
453
|
+
}
|
|
193
454
|
return new OpenAIEmbeddingProvider(options);
|
|
194
455
|
}
|
|
195
456
|
function hashToUnitVector(text, dimensions) {
|
|
@@ -235,6 +496,13 @@ function parseRetryAfterMs(value) {
|
|
|
235
496
|
}
|
|
236
497
|
return 0;
|
|
237
498
|
}
|
|
499
|
+
export function formatDuration(seconds) {
|
|
500
|
+
if (seconds < 60)
|
|
501
|
+
return `${seconds}s`;
|
|
502
|
+
const m = Math.floor(seconds / 60);
|
|
503
|
+
const s = seconds % 60;
|
|
504
|
+
return s > 0 ? `${m}m${s}s` : `${m}m`;
|
|
505
|
+
}
|
|
238
506
|
function sleep(ms) {
|
|
239
507
|
return new Promise((resolve) => {
|
|
240
508
|
setTimeout(resolve, ms);
|
package/dist/embedding.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"embedding.js","sourceRoot":"","sources":["../src/embedding.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"embedding.js","sourceRoot":"","sources":["../src/embedding.ts"],"names":[],"mappings":"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"}
|
package/dist/index.d.ts
CHANGED
|
@@ -3,9 +3,11 @@ export * from "./chunking.js";
|
|
|
3
3
|
export * from "./parser.js";
|
|
4
4
|
export * from "./cursor.js";
|
|
5
5
|
export * from "./manifest.js";
|
|
6
|
+
export * from "./manifest-schema.js";
|
|
6
7
|
export * from "./metadata.js";
|
|
7
8
|
export * from "./search.js";
|
|
8
9
|
export * from "./embedding.js";
|
|
9
10
|
export * from "./embedding-cache.js";
|
|
10
11
|
export * from "./lancedb.js";
|
|
12
|
+
export * from "./chunk-cache.js";
|
|
11
13
|
//# sourceMappingURL=index.d.ts.map
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,YAAY,CAAC;AAC3B,cAAc,eAAe,CAAC;AAC9B,cAAc,aAAa,CAAC;AAC5B,cAAc,aAAa,CAAC;AAC5B,cAAc,eAAe,CAAC;AAC9B,cAAc,eAAe,CAAC;AAC9B,cAAc,aAAa,CAAC;AAC5B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,sBAAsB,CAAC;AACrC,cAAc,cAAc,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,YAAY,CAAC;AAC3B,cAAc,eAAe,CAAC;AAC9B,cAAc,aAAa,CAAC;AAC5B,cAAc,aAAa,CAAC;AAC5B,cAAc,eAAe,CAAC;AAC9B,cAAc,sBAAsB,CAAC;AACrC,cAAc,eAAe,CAAC;AAC9B,cAAc,aAAa,CAAC;AAC5B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,sBAAsB,CAAC;AACrC,cAAc,cAAc,CAAC;AAC7B,cAAc,kBAAkB,CAAC"}
|
package/dist/index.js
CHANGED
|
@@ -3,9 +3,11 @@ export * from "./chunking.js";
|
|
|
3
3
|
export * from "./parser.js";
|
|
4
4
|
export * from "./cursor.js";
|
|
5
5
|
export * from "./manifest.js";
|
|
6
|
+
export * from "./manifest-schema.js";
|
|
6
7
|
export * from "./metadata.js";
|
|
7
8
|
export * from "./search.js";
|
|
8
9
|
export * from "./embedding.js";
|
|
9
10
|
export * from "./embedding-cache.js";
|
|
10
11
|
export * from "./lancedb.js";
|
|
12
|
+
export * from "./chunk-cache.js";
|
|
11
13
|
//# sourceMappingURL=index.js.map
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,YAAY,CAAC;AAC3B,cAAc,eAAe,CAAC;AAC9B,cAAc,aAAa,CAAC;AAC5B,cAAc,aAAa,CAAC;AAC5B,cAAc,eAAe,CAAC;AAC9B,cAAc,eAAe,CAAC;AAC9B,cAAc,aAAa,CAAC;AAC5B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,sBAAsB,CAAC;AACrC,cAAc,cAAc,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,YAAY,CAAC;AAC3B,cAAc,eAAe,CAAC;AAC9B,cAAc,aAAa,CAAC;AAC5B,cAAc,aAAa,CAAC;AAC5B,cAAc,eAAe,CAAC;AAC9B,cAAc,sBAAsB,CAAC;AACrC,cAAc,eAAe,CAAC;AAC9B,cAAc,aAAa,CAAC;AAC5B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,sBAAsB,CAAC;AACrC,cAAc,cAAc,CAAC;AAC7B,cAAc,kBAAkB,CAAC"}
|
package/dist/lancedb.d.ts
CHANGED
|
@@ -5,11 +5,15 @@ export interface BuildLanceDbIndexOptions {
|
|
|
5
5
|
tableName?: string;
|
|
6
6
|
metadataKeys?: string[];
|
|
7
7
|
vectorsByChunkId?: Map<string, number[]>;
|
|
8
|
+
fileFingerprints?: Record<string, string>;
|
|
9
|
+
onProgress?: (step: IndexBuildStep) => void;
|
|
8
10
|
}
|
|
11
|
+
export type IndexBuildStep = "writing-table" | "indexing-fts" | "indexing-scalar" | "indexing-vector";
|
|
9
12
|
export interface OpenLanceDbSearchEngineOptions {
|
|
10
13
|
dbPath: string;
|
|
11
14
|
tableName?: string;
|
|
12
15
|
metadataKeys: string[];
|
|
16
|
+
collapseKeys?: string[];
|
|
13
17
|
proximityWeight?: number;
|
|
14
18
|
phraseSlop?: number;
|
|
15
19
|
queryEmbeddingProvider?: EmbeddingProvider;
|
|
@@ -24,6 +28,7 @@ export declare function buildLanceDbIndex(options: BuildLanceDbIndexOptions): Pr
|
|
|
24
28
|
export declare class LanceDbSearchEngine implements SearchEngine {
|
|
25
29
|
private readonly table;
|
|
26
30
|
private readonly metadataKeys;
|
|
31
|
+
private readonly collapseKeys;
|
|
27
32
|
private readonly proximityWeight;
|
|
28
33
|
private readonly phraseSlop;
|
|
29
34
|
private readonly queryEmbeddingProvider;
|
|
@@ -39,4 +44,17 @@ export declare class LanceDbSearchEngine implements SearchEngine {
|
|
|
39
44
|
private buildHint;
|
|
40
45
|
private warnVectorFailure;
|
|
41
46
|
}
|
|
47
|
+
export interface ChunkRow extends Record<string, unknown> {
|
|
48
|
+
chunk_id: string;
|
|
49
|
+
filepath: string;
|
|
50
|
+
heading: string;
|
|
51
|
+
heading_level: number;
|
|
52
|
+
content: string;
|
|
53
|
+
content_text: string;
|
|
54
|
+
breadcrumb: string;
|
|
55
|
+
chunk_index: number;
|
|
56
|
+
metadata_json: string;
|
|
57
|
+
file_fingerprint?: string;
|
|
58
|
+
vector?: number[];
|
|
59
|
+
}
|
|
42
60
|
//# sourceMappingURL=lancedb.d.ts.map
|
package/dist/lancedb.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"lancedb.d.ts","sourceRoot":"","sources":["../src/lancedb.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"lancedb.d.ts","sourceRoot":"","sources":["../src/lancedb.ts"],"names":[],"mappings":"AAeA,OAAO,KAAK,EACV,KAAK,EAEL,iBAAiB,EACjB,aAAa,EACb,YAAY,EACZ,YAAY,EAGZ,aAAa,EACb,YAAY,EACb,MAAM,YAAY,CAAC;AAKpB,MAAM,WAAW,wBAAwB;IACvC,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,KAAK,EAAE,CAAC;IAChB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,YAAY,CAAC,EAAE,MAAM,EAAE,CAAC;IACxB,gBAAgB,CAAC,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,EAAE,CAAC,CAAC;IACzC,gBAAgB,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAC1C,UAAU,CAAC,EAAE,CAAC,IAAI,EAAE,cAAc,KAAK,IAAI,CAAC;CAC7C;AAED,MAAM,MAAM,cAAc,GACtB,eAAe,GACf,cAAc,GACd,iBAAiB,GACjB,iBAAiB,CAAC;AAEtB,MAAM,WAAW,8BAA8B;IAC7C,MAAM,EAAE,MAAM,CAAC;IACf,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,YAAY,EAAE,MAAM,EAAE,CAAC;IACvB,YAAY,CAAC,EAAE,MAAM,EAAE,CAAC;IACxB,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,sBAAsB,CAAC,EAAE,iBAAiB,CAAC;IAC3C,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,SAAS,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,IAAI,CAAC;CACvC;AAED,MAAM,WAAW,uBAAuB;IACtC,SAAS,EAAE,MAAM,CAAC;IAClB,YAAY,EAAE,MAAM,EAAE,CAAC;CACxB;AAED,wBAAsB,iBAAiB,CACrC,OAAO,EAAE,wBAAwB,GAChC,OAAO,CAAC,uBAAuB,CAAC,CA4DlC;AAED,qBAAa,mBAAoB,YAAW,YAAY;IACtD,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAQ;IAC9B,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAW;IACxC,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAW;IACxC,OAAO,CAAC,QAAQ,CAAC,eAAe,CAAS;IACzC,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAS;IACpC,OAAO,CAAC,QAAQ,CAAC,sBAAsB,CAAgC;IACvE,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAS;IACtC,OAAO,CAAC,QAAQ,CAAC,SAAS,CAA4B;IACtD,OAAO,CAAC,sBAAsB,CAAS;IAEvC,OAAO;WAoBM,IAAI,CAAC,OAAO,EAAE,8BAA8B,GAAG,OAAO,CAAC,mBAAmB,CAAC;IA+BlF,MAAM,CAAC,OAAO,EAAE,aAAa,GAAG,OAAO,CAAC,YAAY,CAAC;IAiErD,MAAM,CAAC,OAAO,EAAE,aAAa,GAAG,OAAO,CAAC,YAAY,CAAC;YAmE7C,WAAW;YAcX,cAAc;YAiCd,SAAS;IA6CvB,OAAO,CAAC,iBAAiB;CAS1B;AAsRD,MAAM,WAAW,QAAS,SAAQ,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC;IACvD,QAAQ,EAAE,MAAM,CAAC;IACjB,QAAQ,EAAE,MAAM,CAAC;IACjB,OAAO,EAAE,MAAM,CAAC;IAChB,aAAa,EAAE,MAAM,CAAC;IACtB,OAAO,EAAE,MAAM,CAAC;IAChB,YAAY,EAAE,MAAM,CAAC;IACrB,UAAU,EAAE,MAAM,CAAC;IACnB,WAAW,EAAE,MAAM,CAAC;IACpB,aAAa,EAAE,MAAM,CAAC;IACtB,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,MAAM,CAAC,EAAE,MAAM,EAAE,CAAC;CACnB"}
|
package/dist/lancedb.js
CHANGED
|
@@ -1,18 +1,21 @@
|
|
|
1
1
|
import { connect, Index, MultiMatchQuery, PhraseQuery } from "@lancedb/lancedb";
|
|
2
2
|
import { decodeSearchCursor, encodeSearchCursor } from "./cursor.js";
|
|
3
|
-
import { clampLimit, isChunkIdFormat, makeSnippet } from "./search-common.js";
|
|
3
|
+
import { clampLimit, dedupKey, isChunkIdFormat, makeSnippet } from "./search-common.js";
|
|
4
4
|
const DEFAULT_TABLE_NAME = "chunks";
|
|
5
5
|
const RRF_K = 60;
|
|
6
6
|
export async function buildLanceDbIndex(options) {
|
|
7
7
|
const tableName = options.tableName ?? DEFAULT_TABLE_NAME;
|
|
8
8
|
const metadataKeys = options.metadataKeys ?? collectMetadataKeys(options.chunks);
|
|
9
|
-
const rows = options.chunks.map((chunk) => serializeChunkRow(chunk, metadataKeys, options.vectorsByChunkId));
|
|
9
|
+
const rows = options.chunks.map((chunk) => serializeChunkRow(chunk, metadataKeys, options.vectorsByChunkId, options.fileFingerprints));
|
|
10
10
|
if (rows.length === 0) {
|
|
11
11
|
return { tableName, metadataKeys };
|
|
12
12
|
}
|
|
13
|
+
const onProgress = options.onProgress;
|
|
13
14
|
const db = await connect(options.dbPath);
|
|
14
15
|
try {
|
|
16
|
+
onProgress?.("writing-table");
|
|
15
17
|
const table = await db.createTable(tableName, rows, { mode: "overwrite" });
|
|
18
|
+
onProgress?.("indexing-fts");
|
|
16
19
|
await table.createIndex("content_text", {
|
|
17
20
|
config: Index.fts({ withPosition: true }),
|
|
18
21
|
replace: true
|
|
@@ -21,6 +24,7 @@ export async function buildLanceDbIndex(options) {
|
|
|
21
24
|
config: Index.fts({ withPosition: true }),
|
|
22
25
|
replace: true
|
|
23
26
|
});
|
|
27
|
+
onProgress?.("indexing-scalar");
|
|
24
28
|
await Promise.all([
|
|
25
29
|
safeCreateScalarIndex(table, "chunk_id"),
|
|
26
30
|
safeCreateScalarIndex(table, "filepath"),
|
|
@@ -28,6 +32,7 @@ export async function buildLanceDbIndex(options) {
|
|
|
28
32
|
]);
|
|
29
33
|
// Create IVF-PQ vector index when there are enough rows with vectors
|
|
30
34
|
if (options.vectorsByChunkId && options.vectorsByChunkId.size >= 256) {
|
|
35
|
+
onProgress?.("indexing-vector");
|
|
31
36
|
const numPartitions = Math.max(1, Math.round(Math.sqrt(options.vectorsByChunkId.size)));
|
|
32
37
|
try {
|
|
33
38
|
await table.createIndex("vector", {
|
|
@@ -52,6 +57,7 @@ export async function buildLanceDbIndex(options) {
|
|
|
52
57
|
export class LanceDbSearchEngine {
|
|
53
58
|
table;
|
|
54
59
|
metadataKeys;
|
|
60
|
+
collapseKeys;
|
|
55
61
|
proximityWeight;
|
|
56
62
|
phraseSlop;
|
|
57
63
|
queryEmbeddingProvider;
|
|
@@ -61,6 +67,7 @@ export class LanceDbSearchEngine {
|
|
|
61
67
|
constructor(table, metadataKeys, options = {}) {
|
|
62
68
|
this.table = table;
|
|
63
69
|
this.metadataKeys = [...metadataKeys];
|
|
70
|
+
this.collapseKeys = options.collapseKeys ?? [];
|
|
64
71
|
this.proximityWeight = options.proximityWeight ?? 1.25;
|
|
65
72
|
this.phraseSlop = normalizePhraseSlop(options.phraseSlop);
|
|
66
73
|
this.queryEmbeddingProvider = options.queryEmbeddingProvider;
|
|
@@ -71,6 +78,9 @@ export class LanceDbSearchEngine {
|
|
|
71
78
|
const db = await connect(options.dbPath);
|
|
72
79
|
const table = await db.openTable(options.tableName ?? DEFAULT_TABLE_NAME);
|
|
73
80
|
const engineOptions = {};
|
|
81
|
+
if (options.collapseKeys !== undefined) {
|
|
82
|
+
engineOptions.collapseKeys = options.collapseKeys;
|
|
83
|
+
}
|
|
74
84
|
if (options.proximityWeight !== undefined) {
|
|
75
85
|
engineOptions.proximityWeight = options.proximityWeight;
|
|
76
86
|
}
|
|
@@ -109,10 +119,15 @@ export class LanceDbSearchEngine {
|
|
|
109
119
|
const phraseWeight = request.rrf_weights?.phrase ?? this.proximityWeight;
|
|
110
120
|
const vecWeight = request.rrf_weights?.vector ?? this.vectorWeight;
|
|
111
121
|
const blended = blendRows(matchRows, phraseRows, vectorRows, phraseWeight, vecWeight, matchWeight);
|
|
112
|
-
|
|
122
|
+
// Collapse content-equivalent results across variant axes (e.g. same
|
|
123
|
+
// operation documented in multiple SDK languages). Skipped when active
|
|
124
|
+
// filters already restrict every collapse axis to a single value.
|
|
125
|
+
const activeCollapseKeys = this.collapseKeys.filter((k) => !filters[k]);
|
|
126
|
+
const deduped = deduplicateRows(blended, activeCollapseKeys);
|
|
127
|
+
const paged = deduped.slice(offset, offset + limit);
|
|
113
128
|
const hits = paged.map((entry) => toSearchHit(entry.row, entry.score, query, this.metadataKeys));
|
|
114
129
|
const nextOffset = offset + paged.length;
|
|
115
|
-
const nextCursor = nextOffset <
|
|
130
|
+
const nextCursor = nextOffset < deduped.length
|
|
116
131
|
? encodeSearchCursor({ offset: nextOffset, limit }, { query, filters })
|
|
117
132
|
: null;
|
|
118
133
|
if (hits.length > 0) {
|
|
@@ -288,6 +303,20 @@ function blendRows(matchRows, phraseRows, vectorRows, proximityWeight, vectorWei
|
|
|
288
303
|
return expectStringField(a.row, "chunk_id").localeCompare(expectStringField(b.row, "chunk_id"));
|
|
289
304
|
});
|
|
290
305
|
}
|
|
306
|
+
function deduplicateRows(rows, collapseKeys) {
|
|
307
|
+
if (collapseKeys.length === 0)
|
|
308
|
+
return rows;
|
|
309
|
+
const seen = new Set();
|
|
310
|
+
return rows.filter((entry) => {
|
|
311
|
+
const key = dedupKey(expectStringField(entry.row, "filepath"), expectStringField(entry.row, "heading"), expectStringField(entry.row, "chunk_id"), (k) => expectStringField(entry.row, k), collapseKeys);
|
|
312
|
+
if (key === null)
|
|
313
|
+
return true;
|
|
314
|
+
if (seen.has(key))
|
|
315
|
+
return false;
|
|
316
|
+
seen.add(key);
|
|
317
|
+
return true;
|
|
318
|
+
});
|
|
319
|
+
}
|
|
291
320
|
function buildWhereClause(filters, taxonomyKeys) {
|
|
292
321
|
const clauses = [];
|
|
293
322
|
const language = filters.language;
|
|
@@ -355,7 +384,7 @@ function extractMetadata(row, metadataKeys) {
|
|
|
355
384
|
}
|
|
356
385
|
return metadata;
|
|
357
386
|
}
|
|
358
|
-
function serializeChunkRow(chunk, metadataKeys, vectorsByChunkId) {
|
|
387
|
+
function serializeChunkRow(chunk, metadataKeys, vectorsByChunkId, fileFingerprints) {
|
|
359
388
|
const record = {
|
|
360
389
|
chunk_id: chunk.chunk_id,
|
|
361
390
|
filepath: chunk.filepath,
|
|
@@ -370,6 +399,9 @@ function serializeChunkRow(chunk, metadataKeys, vectorsByChunkId) {
|
|
|
370
399
|
for (const key of metadataKeys) {
|
|
371
400
|
record[key] = chunk.metadata[key] ?? "";
|
|
372
401
|
}
|
|
402
|
+
if (fileFingerprints) {
|
|
403
|
+
record.file_fingerprint = fileFingerprints[chunk.filepath] ?? "";
|
|
404
|
+
}
|
|
373
405
|
const vector = vectorsByChunkId?.get(chunk.chunk_id);
|
|
374
406
|
if (vector) {
|
|
375
407
|
record.vector = vector;
|