@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.
@@ -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
  }
@@ -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
- // Future migrations go here:
173
- // {
174
- // version: 2,
175
- // description: 'Add some_new_column',
176
- // sql: 'ALTER TABLE documents ADD COLUMN some_new_column TEXT;',
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
- query = query.where(`type = '${escapeFilterValue(filterByType)}'`);
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