@cosmocoder/mcp-web-docs 1.0.1 → 1.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 +61 -8
- package/build/index.js +134 -9
- package/build/index.js.map +1 -1
- package/build/index.test.js +98 -1
- package/build/index.test.js.map +1 -1
- package/build/storage/storage.d.ts +46 -1
- package/build/storage/storage.js +240 -10
- package/build/storage/storage.js.map +1 -1
- package/build/storage/storage.test.js +216 -0
- package/build/storage/storage.test.js.map +1 -1
- package/build/types.d.ts +19 -0
- package/build/util/security.d.ts +10 -0
- package/build/util/security.js +17 -0
- package/build/util/security.js.map +1 -1
- package/package.json +1 -1
package/build/index.test.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.test.js","sourceRoot":"","sources":["../src/index.test.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.test.js","sourceRoot":"","sources":["../src/index.test.ts"],"names":[],"mappings":"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"}
|
|
@@ -31,7 +31,8 @@ export declare class DocumentStore implements StorageProvider {
|
|
|
31
31
|
addDocument(doc: ProcessedDocument): Promise<void>;
|
|
32
32
|
searchDocuments(queryVector: number[], options?: SearchOptions): Promise<SearchResult[]>;
|
|
33
33
|
/**
|
|
34
|
-
* Create full-text search index on the content field
|
|
34
|
+
* Create full-text search index on the content field.
|
|
35
|
+
* Uses replace: true to prevent accumulation of old index copies.
|
|
35
36
|
*/
|
|
36
37
|
private createFTSIndex;
|
|
37
38
|
searchByText(query: string, options?: SearchOptions): Promise<SearchResult[]>;
|
|
@@ -44,12 +45,56 @@ export declare class DocumentStore implements StorageProvider {
|
|
|
44
45
|
*/
|
|
45
46
|
private formatSearchResults;
|
|
46
47
|
listDocuments(): Promise<DocumentMetadata[]>;
|
|
48
|
+
/**
|
|
49
|
+
* Get all tags for all documents as a Map
|
|
50
|
+
*/
|
|
51
|
+
private getAllDocumentTags;
|
|
47
52
|
deleteDocument(url: string): Promise<void>;
|
|
48
53
|
getDocument(url: string): Promise<DocumentMetadata | null>;
|
|
54
|
+
/**
|
|
55
|
+
* Get tags for a specific document
|
|
56
|
+
*/
|
|
57
|
+
private getDocumentTags;
|
|
58
|
+
/**
|
|
59
|
+
* Set tags for a documentation site. Replaces any existing tags.
|
|
60
|
+
* @param url - The URL of the documentation site
|
|
61
|
+
* @param tags - Array of tags to assign (empty array removes all tags)
|
|
62
|
+
*/
|
|
63
|
+
setTags(url: string, tags: string[]): Promise<void>;
|
|
64
|
+
/**
|
|
65
|
+
* List all unique tags with their usage counts
|
|
66
|
+
* @returns Array of tags with counts, sorted by count descending
|
|
67
|
+
*/
|
|
68
|
+
listAllTags(): Promise<Array<{
|
|
69
|
+
tag: string;
|
|
70
|
+
count: number;
|
|
71
|
+
}>>;
|
|
72
|
+
/**
|
|
73
|
+
* Get URLs of documents that have ALL of the specified tags
|
|
74
|
+
* @param tags - Array of tags that documents must have
|
|
75
|
+
* @returns Array of matching document URLs
|
|
76
|
+
*/
|
|
77
|
+
getUrlsByTags(tags: string[]): Promise<string[]>;
|
|
49
78
|
private clearCacheForUrl;
|
|
50
79
|
/**
|
|
51
80
|
* Validates that vectors are properly stored and retrievable from LanceDB
|
|
52
81
|
* @returns Promise<boolean> True if vectors are valid, false otherwise
|
|
53
82
|
*/
|
|
54
83
|
validateVectors(): Promise<boolean>;
|
|
84
|
+
/**
|
|
85
|
+
* Optimizes the LanceDB table by compacting data files and cleaning up old versions.
|
|
86
|
+
* This helps reduce disk space usage by:
|
|
87
|
+
* - Compacting small data fragments into larger files
|
|
88
|
+
* - Removing deleted rows from storage
|
|
89
|
+
* - Cleaning up old table versions
|
|
90
|
+
*
|
|
91
|
+
* Should be called periodically or after batch operations (add/delete).
|
|
92
|
+
*
|
|
93
|
+
* @returns Promise with optimization statistics
|
|
94
|
+
*/
|
|
95
|
+
optimize(): Promise<{
|
|
96
|
+
compacted: boolean;
|
|
97
|
+
cleanedUp: boolean;
|
|
98
|
+
error?: string;
|
|
99
|
+
}>;
|
|
55
100
|
}
|
package/build/storage/storage.js
CHANGED
|
@@ -77,6 +77,7 @@ export class DocumentStore {
|
|
|
77
77
|
logger.debug(`[DocumentStore] Configuring SQLite database`);
|
|
78
78
|
await this.sqliteDb.exec('PRAGMA busy_timeout = 5000;');
|
|
79
79
|
await this.sqliteDb.exec('PRAGMA journal_mode = WAL;');
|
|
80
|
+
await this.sqliteDb.exec('PRAGMA foreign_keys = ON;');
|
|
80
81
|
}
|
|
81
82
|
catch (error) {
|
|
82
83
|
logger.error('[DocumentStore] Error initializing SQLite:', error);
|
|
@@ -169,12 +170,19 @@ export class DocumentStore {
|
|
|
169
170
|
ALTER TABLE documents ADD COLUMN auth_domain TEXT;
|
|
170
171
|
`,
|
|
171
172
|
},
|
|
172
|
-
|
|
173
|
-
|
|
174
|
-
|
|
175
|
-
|
|
176
|
-
|
|
177
|
-
|
|
173
|
+
{
|
|
174
|
+
version: 2,
|
|
175
|
+
description: 'Add document tags table',
|
|
176
|
+
sql: `
|
|
177
|
+
CREATE TABLE IF NOT EXISTS document_tags (
|
|
178
|
+
url TEXT NOT NULL,
|
|
179
|
+
tag TEXT NOT NULL,
|
|
180
|
+
PRIMARY KEY (url, tag),
|
|
181
|
+
FOREIGN KEY (url) REFERENCES documents(url) ON DELETE CASCADE
|
|
182
|
+
);
|
|
183
|
+
CREATE INDEX IF NOT EXISTS idx_document_tags_tag ON document_tags(tag);
|
|
184
|
+
`,
|
|
185
|
+
},
|
|
178
186
|
];
|
|
179
187
|
/**
|
|
180
188
|
* Run pending database migrations.
|
|
@@ -322,12 +330,13 @@ export class DocumentStore {
|
|
|
322
330
|
if (!this.lanceTable) {
|
|
323
331
|
throw new Error('Storage not initialized');
|
|
324
332
|
}
|
|
325
|
-
const { limit = 10, includeVectors = false, filterByType, textQuery } = options;
|
|
333
|
+
const { limit = 10, includeVectors = false, filterByType, filterByTags, textQuery } = options;
|
|
326
334
|
logger.debug(`[DocumentStore] Searching documents with vector:`, {
|
|
327
335
|
dimensions: queryVector.length,
|
|
328
336
|
limit,
|
|
329
337
|
includeVectors,
|
|
330
338
|
filterByType,
|
|
339
|
+
filterByTags,
|
|
331
340
|
hasTextQuery: !!textQuery,
|
|
332
341
|
});
|
|
333
342
|
// Add validation for query vector
|
|
@@ -367,10 +376,30 @@ export class DocumentStore {
|
|
|
367
376
|
queryVector = new Array(this.embeddings.dimensions).fill(0);
|
|
368
377
|
logger.debug(`[DocumentStore] Using default zero vector with ${queryVector.length} dimensions`);
|
|
369
378
|
}
|
|
379
|
+
// If filtering by tags, get the list of URLs that have all those tags
|
|
380
|
+
let tagFilteredUrls;
|
|
381
|
+
if (filterByTags && filterByTags.length > 0) {
|
|
382
|
+
tagFilteredUrls = await this.getUrlsByTags(filterByTags);
|
|
383
|
+
if (tagFilteredUrls.length === 0) {
|
|
384
|
+
// No documents match the tag filter, return empty results
|
|
385
|
+
logger.debug(`[DocumentStore] No documents match tag filter in vector search:`, filterByTags);
|
|
386
|
+
return [];
|
|
387
|
+
}
|
|
388
|
+
logger.debug(`[DocumentStore] Tag filter matched ${tagFilteredUrls.length} documents for vector search`);
|
|
389
|
+
}
|
|
370
390
|
// Create search query
|
|
371
391
|
let query = this.lanceTable.search(queryVector).limit(limit);
|
|
392
|
+
// Build WHERE conditions
|
|
393
|
+
const conditions = [];
|
|
372
394
|
if (filterByType) {
|
|
373
|
-
|
|
395
|
+
conditions.push(`type = '${escapeFilterValue(filterByType)}'`);
|
|
396
|
+
}
|
|
397
|
+
if (tagFilteredUrls && tagFilteredUrls.length > 0) {
|
|
398
|
+
const urlConditions = tagFilteredUrls.map((u) => `url = '${escapeFilterValue(u)}'`).join(' OR ');
|
|
399
|
+
conditions.push(`(${urlConditions})`);
|
|
400
|
+
}
|
|
401
|
+
if (conditions.length > 0) {
|
|
402
|
+
query = query.where(conditions.join(' AND '));
|
|
374
403
|
}
|
|
375
404
|
const results = await query.toArray();
|
|
376
405
|
logger.debug(`[DocumentStore] Found ${results.length} results`);
|
|
@@ -435,7 +464,8 @@ export class DocumentStore {
|
|
|
435
464
|
}
|
|
436
465
|
}
|
|
437
466
|
/**
|
|
438
|
-
* Create full-text search index on the content field
|
|
467
|
+
* Create full-text search index on the content field.
|
|
468
|
+
* Uses replace: true to prevent accumulation of old index copies.
|
|
439
469
|
*/
|
|
440
470
|
async createFTSIndex() {
|
|
441
471
|
if (!this.lanceTable || this.ftsIndexCreated) {
|
|
@@ -445,6 +475,7 @@ export class DocumentStore {
|
|
|
445
475
|
logger.debug('[DocumentStore] Creating FTS index on content field...');
|
|
446
476
|
await this.lanceTable.createIndex('content', {
|
|
447
477
|
config: lancedb.Index.fts(),
|
|
478
|
+
replace: true, // Replace existing index to prevent accumulation
|
|
448
479
|
});
|
|
449
480
|
this.ftsIndexCreated = true;
|
|
450
481
|
logger.debug('[DocumentStore] FTS index created successfully');
|
|
@@ -469,7 +500,20 @@ export class DocumentStore {
|
|
|
469
500
|
logger.debug(`[DocumentStore] Returning cached results`);
|
|
470
501
|
return cached;
|
|
471
502
|
}
|
|
472
|
-
const { limit = 10, filterByType, filterUrl } = options;
|
|
503
|
+
const { limit = 10, filterByType, filterUrl, filterByTags } = options;
|
|
504
|
+
// If filtering by tags, get the list of URLs that have all those tags
|
|
505
|
+
let tagFilteredUrls;
|
|
506
|
+
if (filterByTags && filterByTags.length > 0) {
|
|
507
|
+
tagFilteredUrls = await this.getUrlsByTags(filterByTags);
|
|
508
|
+
if (tagFilteredUrls.length === 0) {
|
|
509
|
+
// No documents match the tag filter, cache and return empty results
|
|
510
|
+
logger.debug(`[DocumentStore] No documents match tag filter:`, filterByTags);
|
|
511
|
+
const emptyResults = [];
|
|
512
|
+
this.searchCache.set(cacheKey, emptyResults);
|
|
513
|
+
return emptyResults;
|
|
514
|
+
}
|
|
515
|
+
logger.debug(`[DocumentStore] Tag filter matched ${tagFilteredUrls.length} documents`);
|
|
516
|
+
}
|
|
473
517
|
// Build WHERE clause for filtering (using escaped values to prevent injection)
|
|
474
518
|
const buildWhereClause = () => {
|
|
475
519
|
const conditions = [];
|
|
@@ -482,6 +526,11 @@ export class DocumentStore {
|
|
|
482
526
|
const escapedUrl = escapeFilterValue(filterUrl).replace(/%/g, '\\%').replace(/_/g, '\\_');
|
|
483
527
|
conditions.push(`url LIKE '${escapedUrl}%'`);
|
|
484
528
|
}
|
|
529
|
+
if (tagFilteredUrls && tagFilteredUrls.length > 0) {
|
|
530
|
+
// Filter to only include URLs that match the tag filter
|
|
531
|
+
const urlConditions = tagFilteredUrls.map((u) => `url = '${escapeFilterValue(u)}'`).join(' OR ');
|
|
532
|
+
conditions.push(`(${urlConditions})`);
|
|
533
|
+
}
|
|
485
534
|
return conditions.length > 0 ? conditions.join(' AND ') : undefined;
|
|
486
535
|
};
|
|
487
536
|
const whereClause = buildWhereClause();
|
|
@@ -658,6 +707,8 @@ export class DocumentStore {
|
|
|
658
707
|
try {
|
|
659
708
|
const rows = await this.sqliteDb.all('SELECT url, title, favicon, last_indexed, requires_auth, auth_domain FROM documents ORDER BY last_indexed DESC');
|
|
660
709
|
logger.debug(`[DocumentStore] Found ${rows.length} documents`);
|
|
710
|
+
// Fetch tags for all documents
|
|
711
|
+
const tagsMap = await this.getAllDocumentTags();
|
|
661
712
|
return rows.map((row) => ({
|
|
662
713
|
url: row.url,
|
|
663
714
|
title: row.title,
|
|
@@ -665,6 +716,7 @@ export class DocumentStore {
|
|
|
665
716
|
lastIndexed: new Date(row.last_indexed),
|
|
666
717
|
requiresAuth: row.requires_auth === 1,
|
|
667
718
|
authDomain: row.auth_domain ?? undefined,
|
|
719
|
+
tags: tagsMap.get(row.url) || [],
|
|
668
720
|
}));
|
|
669
721
|
}
|
|
670
722
|
catch (error) {
|
|
@@ -672,6 +724,22 @@ export class DocumentStore {
|
|
|
672
724
|
throw error;
|
|
673
725
|
}
|
|
674
726
|
}
|
|
727
|
+
/**
|
|
728
|
+
* Get all tags for all documents as a Map
|
|
729
|
+
*/
|
|
730
|
+
async getAllDocumentTags() {
|
|
731
|
+
if (!this.sqliteDb) {
|
|
732
|
+
return new Map();
|
|
733
|
+
}
|
|
734
|
+
const rows = await this.sqliteDb.all('SELECT url, tag FROM document_tags ORDER BY url, tag');
|
|
735
|
+
const tagsMap = new Map();
|
|
736
|
+
for (const row of rows) {
|
|
737
|
+
const existing = tagsMap.get(row.url) || [];
|
|
738
|
+
existing.push(row.tag);
|
|
739
|
+
tagsMap.set(row.url, existing);
|
|
740
|
+
}
|
|
741
|
+
return tagsMap;
|
|
742
|
+
}
|
|
675
743
|
async deleteDocument(url) {
|
|
676
744
|
if (!this.sqliteDb || !this.lanceTable) {
|
|
677
745
|
throw new Error('Storage not initialized');
|
|
@@ -679,6 +747,8 @@ export class DocumentStore {
|
|
|
679
747
|
logger.debug(`[DocumentStore] Deleting document: ${url}`);
|
|
680
748
|
try {
|
|
681
749
|
await this.sqliteDb.run('BEGIN TRANSACTION');
|
|
750
|
+
// Delete tags first (in case foreign key cascade isn't enabled)
|
|
751
|
+
await this.sqliteDb.run('DELETE FROM document_tags WHERE url = ?', [url]);
|
|
682
752
|
await this.sqliteDb.run('DELETE FROM documents WHERE url = ?', [url]);
|
|
683
753
|
await this.lanceTable.delete(`url = '${escapeFilterValue(url)}'`);
|
|
684
754
|
await this.sqliteDb.run('COMMIT');
|
|
@@ -717,6 +787,8 @@ export class DocumentStore {
|
|
|
717
787
|
const chunks = await this.lanceTable.countRows(`url = '${escapeFilterValue(url)}'`);
|
|
718
788
|
logger.debug(`[DocumentStore] Found ${chunks} chunks in LanceDB for ${url}`);
|
|
719
789
|
}
|
|
790
|
+
// Fetch tags for this document
|
|
791
|
+
const tags = await this.getDocumentTags(url);
|
|
720
792
|
logger.debug(`[DocumentStore] Document found in SQLite:`, row);
|
|
721
793
|
return {
|
|
722
794
|
url: row.url,
|
|
@@ -725,6 +797,7 @@ export class DocumentStore {
|
|
|
725
797
|
lastIndexed: new Date(row.last_indexed),
|
|
726
798
|
requiresAuth: row.requires_auth === 1,
|
|
727
799
|
authDomain: row.auth_domain ?? undefined,
|
|
800
|
+
tags,
|
|
728
801
|
};
|
|
729
802
|
}
|
|
730
803
|
catch (error) {
|
|
@@ -732,6 +805,112 @@ export class DocumentStore {
|
|
|
732
805
|
throw error;
|
|
733
806
|
}
|
|
734
807
|
}
|
|
808
|
+
/**
|
|
809
|
+
* Get tags for a specific document
|
|
810
|
+
*/
|
|
811
|
+
async getDocumentTags(url) {
|
|
812
|
+
if (!this.sqliteDb) {
|
|
813
|
+
return [];
|
|
814
|
+
}
|
|
815
|
+
const rows = await this.sqliteDb.all('SELECT tag FROM document_tags WHERE url = ? ORDER BY tag', [url]);
|
|
816
|
+
return rows.map((row) => row.tag);
|
|
817
|
+
}
|
|
818
|
+
/**
|
|
819
|
+
* Set tags for a documentation site. Replaces any existing tags.
|
|
820
|
+
* @param url - The URL of the documentation site
|
|
821
|
+
* @param tags - Array of tags to assign (empty array removes all tags)
|
|
822
|
+
*/
|
|
823
|
+
async setTags(url, tags) {
|
|
824
|
+
if (!this.sqliteDb) {
|
|
825
|
+
throw new Error('Storage not initialized');
|
|
826
|
+
}
|
|
827
|
+
logger.debug(`[DocumentStore] Setting tags for ${url}:`, tags);
|
|
828
|
+
try {
|
|
829
|
+
await this.sqliteDb.run('BEGIN TRANSACTION');
|
|
830
|
+
// Verify the document exists inside the transaction to prevent race conditions
|
|
831
|
+
const row = await this.sqliteDb.get('SELECT url FROM documents WHERE url = ?', [url]);
|
|
832
|
+
if (!row) {
|
|
833
|
+
await this.sqliteDb.run('ROLLBACK');
|
|
834
|
+
throw new Error('Documentation not found');
|
|
835
|
+
}
|
|
836
|
+
// Delete existing tags
|
|
837
|
+
await this.sqliteDb.run('DELETE FROM document_tags WHERE url = ?', [url]);
|
|
838
|
+
// Insert new tags (deduplicated and normalized)
|
|
839
|
+
const uniqueTags = [...new Set(tags.map((t) => t.trim().toLowerCase()).filter((t) => t.length > 0))];
|
|
840
|
+
for (const tag of uniqueTags) {
|
|
841
|
+
await this.sqliteDb.run('INSERT INTO document_tags (url, tag) VALUES (?, ?)', [url, tag]);
|
|
842
|
+
}
|
|
843
|
+
await this.sqliteDb.run('COMMIT');
|
|
844
|
+
// Clear cached search results that may be affected by tag changes
|
|
845
|
+
this.clearCacheForUrl(url);
|
|
846
|
+
logger.debug(`[DocumentStore] Tags set successfully for ${url}`);
|
|
847
|
+
}
|
|
848
|
+
catch (error) {
|
|
849
|
+
if (this.sqliteDb) {
|
|
850
|
+
try {
|
|
851
|
+
await this.sqliteDb.run('ROLLBACK');
|
|
852
|
+
}
|
|
853
|
+
catch {
|
|
854
|
+
// Ignore rollback errors (transaction may already be rolled back)
|
|
855
|
+
}
|
|
856
|
+
}
|
|
857
|
+
logger.error('[DocumentStore] Error setting tags:', error);
|
|
858
|
+
throw error;
|
|
859
|
+
}
|
|
860
|
+
}
|
|
861
|
+
/**
|
|
862
|
+
* List all unique tags with their usage counts
|
|
863
|
+
* @returns Array of tags with counts, sorted by count descending
|
|
864
|
+
*/
|
|
865
|
+
async listAllTags() {
|
|
866
|
+
if (!this.sqliteDb) {
|
|
867
|
+
throw new Error('Storage not initialized');
|
|
868
|
+
}
|
|
869
|
+
logger.debug(`[DocumentStore] Listing all tags`);
|
|
870
|
+
try {
|
|
871
|
+
const rows = await this.sqliteDb.all('SELECT tag, COUNT(*) as count FROM document_tags GROUP BY tag ORDER BY count DESC, tag ASC');
|
|
872
|
+
logger.debug(`[DocumentStore] Found ${rows.length} unique tags`);
|
|
873
|
+
return rows;
|
|
874
|
+
}
|
|
875
|
+
catch (error) {
|
|
876
|
+
logger.error('[DocumentStore] Error listing tags:', error);
|
|
877
|
+
throw error;
|
|
878
|
+
}
|
|
879
|
+
}
|
|
880
|
+
/**
|
|
881
|
+
* Get URLs of documents that have ALL of the specified tags
|
|
882
|
+
* @param tags - Array of tags that documents must have
|
|
883
|
+
* @returns Array of matching document URLs
|
|
884
|
+
*/
|
|
885
|
+
async getUrlsByTags(tags) {
|
|
886
|
+
if (!this.sqliteDb || tags.length === 0) {
|
|
887
|
+
return [];
|
|
888
|
+
}
|
|
889
|
+
// Normalize tags
|
|
890
|
+
const normalizedTags = tags.map((t) => t.trim().toLowerCase()).filter((t) => t.length > 0);
|
|
891
|
+
if (normalizedTags.length === 0) {
|
|
892
|
+
return [];
|
|
893
|
+
}
|
|
894
|
+
logger.debug(`[DocumentStore] Getting URLs by tags:`, normalizedTags);
|
|
895
|
+
try {
|
|
896
|
+
// Find documents that have ALL the specified tags
|
|
897
|
+
// This uses a GROUP BY with HAVING COUNT = number of tags
|
|
898
|
+
const placeholders = normalizedTags.map(() => '?').join(', ');
|
|
899
|
+
const query = `
|
|
900
|
+
SELECT url FROM document_tags
|
|
901
|
+
WHERE tag IN (${placeholders})
|
|
902
|
+
GROUP BY url
|
|
903
|
+
HAVING COUNT(DISTINCT tag) = ?
|
|
904
|
+
`;
|
|
905
|
+
const rows = await this.sqliteDb.all(query, [...normalizedTags, normalizedTags.length]);
|
|
906
|
+
logger.debug(`[DocumentStore] Found ${rows.length} URLs matching all tags`);
|
|
907
|
+
return rows.map((row) => row.url);
|
|
908
|
+
}
|
|
909
|
+
catch (error) {
|
|
910
|
+
logger.error('[DocumentStore] Error getting URLs by tags:', error);
|
|
911
|
+
throw error;
|
|
912
|
+
}
|
|
913
|
+
}
|
|
735
914
|
clearCacheForUrl(url) {
|
|
736
915
|
// Clear all cache entries that might contain results for this URL
|
|
737
916
|
for (const key of this.searchCache.keys()) {
|
|
@@ -793,5 +972,56 @@ export class DocumentStore {
|
|
|
793
972
|
return false;
|
|
794
973
|
}
|
|
795
974
|
}
|
|
975
|
+
/**
|
|
976
|
+
* Optimizes the LanceDB table by compacting data files and cleaning up old versions.
|
|
977
|
+
* This helps reduce disk space usage by:
|
|
978
|
+
* - Compacting small data fragments into larger files
|
|
979
|
+
* - Removing deleted rows from storage
|
|
980
|
+
* - Cleaning up old table versions
|
|
981
|
+
*
|
|
982
|
+
* Should be called periodically or after batch operations (add/delete).
|
|
983
|
+
*
|
|
984
|
+
* @returns Promise with optimization statistics
|
|
985
|
+
*/
|
|
986
|
+
async optimize() {
|
|
987
|
+
if (!this.lanceTable) {
|
|
988
|
+
logger.debug('[DocumentStore] Cannot optimize: Storage not initialized');
|
|
989
|
+
return { compacted: false, cleanedUp: false, error: 'Storage not initialized' };
|
|
990
|
+
}
|
|
991
|
+
const result = { compacted: false, cleanedUp: false, error: undefined };
|
|
992
|
+
try {
|
|
993
|
+
logger.info('[DocumentStore] Starting optimization...');
|
|
994
|
+
// Run optimization with cleanup
|
|
995
|
+
// This performs compaction, prunes old versions, and optimizes indices
|
|
996
|
+
// cleanupOlderThan: new Date() means clean up all old versions immediately
|
|
997
|
+
try {
|
|
998
|
+
logger.debug('[DocumentStore] Running optimize with cleanup...');
|
|
999
|
+
const stats = await this.lanceTable.optimize({
|
|
1000
|
+
cleanupOlderThan: new Date(),
|
|
1001
|
+
deleteUnverified: true,
|
|
1002
|
+
});
|
|
1003
|
+
result.compacted = true;
|
|
1004
|
+
result.cleanedUp = true;
|
|
1005
|
+
logger.debug('[DocumentStore] Optimization stats:', stats);
|
|
1006
|
+
}
|
|
1007
|
+
catch (optimizeError) {
|
|
1008
|
+
const err = optimizeError;
|
|
1009
|
+
logger.warn('[DocumentStore] Optimization failed:', err.message);
|
|
1010
|
+
result.error = `Optimization failed: ${err.message}`;
|
|
1011
|
+
}
|
|
1012
|
+
// Clear the search cache after optimization as data may have changed
|
|
1013
|
+
this.searchCache.clear();
|
|
1014
|
+
logger.info('[DocumentStore] Optimization complete:', result);
|
|
1015
|
+
return result;
|
|
1016
|
+
}
|
|
1017
|
+
catch (error) {
|
|
1018
|
+
logger.error('[DocumentStore] Error during optimization:', error);
|
|
1019
|
+
return {
|
|
1020
|
+
compacted: false,
|
|
1021
|
+
cleanedUp: false,
|
|
1022
|
+
error: error instanceof Error ? error.message : String(error),
|
|
1023
|
+
};
|
|
1024
|
+
}
|
|
1025
|
+
}
|
|
796
1026
|
}
|
|
797
1027
|
//# sourceMappingURL=storage.js.map
|