@robthepcguy/rag-vault 1.0.0 → 1.1.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.
Files changed (72) hide show
  1. package/README.md +441 -421
  2. package/dist/errors/index.d.ts +2 -6
  3. package/dist/errors/index.d.ts.map +1 -1
  4. package/dist/errors/index.js +8 -16
  5. package/dist/errors/index.js.map +1 -1
  6. package/dist/explainability/index.d.ts +2 -0
  7. package/dist/explainability/index.d.ts.map +1 -0
  8. package/dist/explainability/index.js +8 -0
  9. package/dist/explainability/index.js.map +1 -0
  10. package/dist/explainability/keywords.d.ts +18 -0
  11. package/dist/explainability/keywords.d.ts.map +1 -0
  12. package/dist/explainability/keywords.js +237 -0
  13. package/dist/explainability/keywords.js.map +1 -0
  14. package/dist/flywheel/feedback.d.ts +105 -0
  15. package/dist/flywheel/feedback.d.ts.map +1 -0
  16. package/dist/flywheel/feedback.js +219 -0
  17. package/dist/flywheel/feedback.js.map +1 -0
  18. package/dist/flywheel/index.d.ts +2 -0
  19. package/dist/flywheel/index.d.ts.map +1 -0
  20. package/dist/flywheel/index.js +9 -0
  21. package/dist/flywheel/index.js.map +1 -0
  22. package/dist/index.js +1 -0
  23. package/dist/index.js.map +1 -1
  24. package/dist/server/index.d.ts +40 -0
  25. package/dist/server/index.d.ts.map +1 -1
  26. package/dist/server/index.js +113 -0
  27. package/dist/server/index.js.map +1 -1
  28. package/dist/server/raw-data-utils.d.ts.map +1 -1
  29. package/dist/server/raw-data-utils.js.map +1 -1
  30. package/dist/utils/config.d.ts +15 -0
  31. package/dist/utils/config.d.ts.map +1 -1
  32. package/dist/utils/config.js +84 -0
  33. package/dist/utils/config.js.map +1 -1
  34. package/dist/utils/math.d.ts +0 -7
  35. package/dist/utils/math.d.ts.map +1 -1
  36. package/dist/utils/math.js +0 -14
  37. package/dist/utils/math.js.map +1 -1
  38. package/dist/vectordb/index.d.ts +57 -2
  39. package/dist/vectordb/index.d.ts.map +1 -1
  40. package/dist/vectordb/index.js +255 -33
  41. package/dist/vectordb/index.js.map +1 -1
  42. package/dist/web/api-routes.d.ts.map +1 -1
  43. package/dist/web/api-routes.js +120 -7
  44. package/dist/web/api-routes.js.map +1 -1
  45. package/dist/web/config-routes.d.ts.map +1 -1
  46. package/dist/web/config-routes.js +84 -2
  47. package/dist/web/config-routes.js.map +1 -1
  48. package/dist/web/database-manager.d.ts +119 -1
  49. package/dist/web/database-manager.d.ts.map +1 -1
  50. package/dist/web/database-manager.js +339 -51
  51. package/dist/web/database-manager.js.map +1 -1
  52. package/dist/web/http-server.d.ts.map +1 -1
  53. package/dist/web/http-server.js +12 -2
  54. package/dist/web/http-server.js.map +1 -1
  55. package/dist/web/index.js +18 -10
  56. package/dist/web/index.js.map +1 -1
  57. package/dist/web/middleware/error-handler.d.ts +0 -16
  58. package/dist/web/middleware/error-handler.d.ts.map +1 -1
  59. package/dist/web/middleware/error-handler.js +0 -18
  60. package/dist/web/middleware/error-handler.js.map +1 -1
  61. package/dist/web/middleware/request-logger.d.ts +2 -1
  62. package/dist/web/middleware/request-logger.d.ts.map +1 -1
  63. package/package.json +129 -135
  64. package/skills/rag-vault/SKILL.md +111 -111
  65. package/web-ui/dist/assets/index-BcRp9-z9.js +120 -0
  66. package/web-ui/dist/assets/index-ej8i4PGl.css +1 -0
  67. package/web-ui/dist/index.html +14 -0
  68. package/web-ui/dist/vite.svg +3 -0
  69. package/dist/utils/logger.d.ts +0 -36
  70. package/dist/utils/logger.d.ts.map +0 -1
  71. package/dist/utils/logger.js +0 -64
  72. package/dist/utils/logger.js.map +0 -1
@@ -1,9 +1,26 @@
1
1
  "use strict";
2
2
  // Shared configuration builder for RAG servers
3
3
  // Used by both MCP server (src/index.ts) and Web server (src/web/index.ts)
4
+ var __importDefault = (this && this.__importDefault) || function (mod) {
5
+ return (mod && mod.__esModule) ? mod : { "default": mod };
6
+ };
4
7
  Object.defineProperty(exports, "__esModule", { value: true });
5
8
  exports.buildRAGConfig = buildRAGConfig;
9
+ exports.validateRAGConfig = validateRAGConfig;
10
+ exports.validateAllowedScanRoots = validateAllowedScanRoots;
11
+ const node_fs_1 = require("node:fs");
12
+ const node_path_1 = __importDefault(require("node:path"));
6
13
  const config_parsers_js_1 = require("./config-parsers.js");
14
+ /**
15
+ * Configuration validation error (internal use only)
16
+ */
17
+ class ConfigValidationError extends Error {
18
+ constructor(message, field) {
19
+ super(message);
20
+ this.field = field;
21
+ this.name = 'ConfigValidationError';
22
+ }
23
+ }
7
24
  /**
8
25
  * Default configuration values
9
26
  */
@@ -49,4 +66,71 @@ function buildRAGConfig(overrides) {
49
66
  }
50
67
  return config;
51
68
  }
69
+ /**
70
+ * Validate RAG configuration at startup
71
+ * Throws ConfigValidationError if configuration is invalid
72
+ *
73
+ * @param config - The configuration to validate
74
+ * @throws ConfigValidationError if validation fails
75
+ */
76
+ function validateRAGConfig(config) {
77
+ // Validate dbPath - must be a valid path format
78
+ if (!config.dbPath || typeof config.dbPath !== 'string') {
79
+ throw new ConfigValidationError('dbPath must be a non-empty string', 'dbPath');
80
+ }
81
+ // Validate modelName - must be non-empty
82
+ if (!config.modelName || typeof config.modelName !== 'string') {
83
+ throw new ConfigValidationError('modelName must be a non-empty string', 'modelName');
84
+ }
85
+ // Validate cacheDir - must be a valid path format
86
+ if (!config.cacheDir || typeof config.cacheDir !== 'string') {
87
+ throw new ConfigValidationError('cacheDir must be a non-empty string', 'cacheDir');
88
+ }
89
+ // Validate baseDir - must be a non-empty string (directory will be created if needed)
90
+ if (!config.baseDir || typeof config.baseDir !== 'string') {
91
+ throw new ConfigValidationError('baseDir must be a non-empty string', 'baseDir');
92
+ }
93
+ // Validate maxFileSize - must be positive
94
+ if (config.maxFileSize <= 0) {
95
+ throw new ConfigValidationError(`maxFileSize must be a positive number, got: ${config.maxFileSize}`, 'maxFileSize');
96
+ }
97
+ // Validate maxDistance - must be positive if provided
98
+ if (config.maxDistance !== undefined && config.maxDistance <= 0) {
99
+ throw new ConfigValidationError(`maxDistance must be a positive number, got: ${config.maxDistance}`, 'maxDistance');
100
+ }
101
+ // Validate hybridWeight - must be between 0 and 1 if provided
102
+ if (config.hybridWeight !== undefined && (config.hybridWeight < 0 || config.hybridWeight > 1)) {
103
+ throw new ConfigValidationError(`hybridWeight must be between 0.0 and 1.0, got: ${config.hybridWeight}`, 'hybridWeight');
104
+ }
105
+ // Validate grouping - must be valid enum if provided
106
+ if (config.grouping !== undefined &&
107
+ config.grouping !== 'similar' &&
108
+ config.grouping !== 'related') {
109
+ throw new ConfigValidationError(`grouping must be 'similar' or 'related', got: ${config.grouping}`, 'grouping');
110
+ }
111
+ }
112
+ /**
113
+ * Validate ALLOWED_SCAN_ROOTS environment variable
114
+ * Logs warnings for non-existent paths but doesn't throw
115
+ *
116
+ * @returns Array of validated root paths
117
+ */
118
+ function validateAllowedScanRoots() {
119
+ const envRoots = process.env['ALLOWED_SCAN_ROOTS'];
120
+ if (!envRoots) {
121
+ return [];
122
+ }
123
+ const roots = envRoots.split(',').map((p) => node_path_1.default.resolve(p.trim()));
124
+ const validRoots = [];
125
+ for (const root of roots) {
126
+ if (!root)
127
+ continue;
128
+ if (!(0, node_fs_1.existsSync)(root)) {
129
+ console.warn(`ALLOWED_SCAN_ROOTS: Path does not exist: ${root}`);
130
+ continue;
131
+ }
132
+ validRoots.push(root);
133
+ }
134
+ return validRoots;
135
+ }
52
136
  //# sourceMappingURL=config.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"config.js","sourceRoot":"","sources":["../../src/utils/config.ts"],"names":[],"mappings":";AAAA,+CAA+C;AAC/C,2EAA2E;;AAkD3E,wCA6BC;AA5ED,2DAA4F;AAwB5F;;GAEG;AACH,MAAM,QAAQ,GAAG;IACf,MAAM,EAAE,YAAY;IACpB,SAAS,EAAE,yBAAyB;IACpC,QAAQ,EAAE,WAAW;IACrB,WAAW,EAAE,SAAS,EAAE,QAAQ;CACxB,CAAA;AAEV;;;;;;;;;;;;GAYG;AACH,SAAgB,cAAc,CAAC,SAA8B;IAC3D,MAAM,MAAM,GAAc;QACxB,MAAM,EAAE,OAAO,CAAC,GAAG,CAAC,SAAS,CAAC,IAAI,SAAS,EAAE,MAAM,IAAI,QAAQ,CAAC,MAAM;QACtE,SAAS,EAAE,OAAO,CAAC,GAAG,CAAC,YAAY,CAAC,IAAI,SAAS,EAAE,SAAS,IAAI,QAAQ,CAAC,SAAS;QAClF,QAAQ,EAAE,OAAO,CAAC,GAAG,CAAC,WAAW,CAAC,IAAI,SAAS,EAAE,QAAQ,IAAI,QAAQ,CAAC,QAAQ;QAC9E,OAAO,EAAE,OAAO,CAAC,GAAG,CAAC,UAAU,CAAC,IAAI,SAAS,EAAE,OAAO,IAAI,OAAO,CAAC,GAAG,EAAE;QACvE,WAAW,EAAE,MAAM,CAAC,QAAQ,CAC1B,OAAO,CAAC,GAAG,CAAC,eAAe,CAAC,IAAI,MAAM,CAAC,SAAS,EAAE,WAAW,IAAI,QAAQ,CAAC,WAAW,CAAC,EACtF,EAAE,CACH;KACF,CAAA;IAED,8CAA8C;IAC9C,MAAM,WAAW,GAAG,IAAA,oCAAgB,EAAC,OAAO,CAAC,GAAG,CAAC,kBAAkB,CAAC,CAAC,IAAI,SAAS,EAAE,WAAW,CAAA;IAC/F,MAAM,QAAQ,GAAG,IAAA,qCAAiB,EAAC,OAAO,CAAC,GAAG,CAAC,cAAc,CAAC,CAAC,IAAI,SAAS,EAAE,QAAQ,CAAA;IACtF,MAAM,YAAY,GAChB,IAAA,qCAAiB,EAAC,OAAO,CAAC,GAAG,CAAC,mBAAmB,CAAC,CAAC,IAAI,SAAS,EAAE,YAAY,CAAA;IAEhF,IAAI,WAAW,KAAK,SAAS,EAAE,CAAC;QAC9B,MAAM,CAAC,WAAW,GAAG,WAAW,CAAA;IAClC,CAAC;IACD,IAAI,QAAQ,KAAK,SAAS,EAAE,CAAC;QAC3B,MAAM,CAAC,QAAQ,GAAG,QAAQ,CAAA;IAC5B,CAAC;IACD,IAAI,YAAY,KAAK,SAAS,EAAE,CAAC;QAC/B,MAAM,CAAC,YAAY,GAAG,YAAY,CAAA;IACpC,CAAC;IAED,OAAO,MAAM,CAAA;AACf,CAAC"}
1
+ {"version":3,"file":"config.js","sourceRoot":"","sources":["../../src/utils/config.ts"],"names":[],"mappings":"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"}
@@ -24,11 +24,4 @@ export declare function cosineSimilarity(vec1: number[], vec2: number[]): number
24
24
  * @returns Dot product value, or 0 if vectors have different lengths
25
25
  */
26
26
  export declare function dotProduct(vec1: number[], vec2: number[]): number;
27
- /**
28
- * Calculate the Euclidean norm (L2 norm) of a vector.
29
- *
30
- * @param vec - Input vector
31
- * @returns Euclidean norm (magnitude) of the vector
32
- */
33
- export declare function euclideanNorm(vec: number[]): number;
34
27
  //# sourceMappingURL=math.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"math.d.ts","sourceRoot":"","sources":["../../src/utils/math.ts"],"names":[],"mappings":"AAEA;;;;;;;;;;;;;;;;GAgBG;AACH,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,MAAM,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,GAAG,MAAM,CAqBvE;AAED;;;;;;GAMG;AACH,wBAAgB,UAAU,CAAC,IAAI,EAAE,MAAM,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,GAAG,MAAM,CAWjE;AAED;;;;;GAKG;AACH,wBAAgB,aAAa,CAAC,GAAG,EAAE,MAAM,EAAE,GAAG,MAAM,CAMnD"}
1
+ {"version":3,"file":"math.d.ts","sourceRoot":"","sources":["../../src/utils/math.ts"],"names":[],"mappings":"AAEA;;;;;;;;;;;;;;;;GAgBG;AACH,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,MAAM,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,GAAG,MAAM,CAqBvE;AAED;;;;;;GAMG;AACH,wBAAgB,UAAU,CAAC,IAAI,EAAE,MAAM,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,GAAG,MAAM,CAWjE"}
@@ -3,7 +3,6 @@
3
3
  Object.defineProperty(exports, "__esModule", { value: true });
4
4
  exports.cosineSimilarity = cosineSimilarity;
5
5
  exports.dotProduct = dotProduct;
6
- exports.euclideanNorm = euclideanNorm;
7
6
  /**
8
7
  * Calculate cosine similarity between two vectors.
9
8
  *
@@ -57,17 +56,4 @@ function dotProduct(vec1, vec2) {
57
56
  }
58
57
  return result;
59
58
  }
60
- /**
61
- * Calculate the Euclidean norm (L2 norm) of a vector.
62
- *
63
- * @param vec - Input vector
64
- * @returns Euclidean norm (magnitude) of the vector
65
- */
66
- function euclideanNorm(vec) {
67
- let sum = 0;
68
- for (const v of vec) {
69
- sum += v * v;
70
- }
71
- return Math.sqrt(sum);
72
- }
73
59
  //# sourceMappingURL=math.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"math.js","sourceRoot":"","sources":["../../src/utils/math.ts"],"names":[],"mappings":";AAAA,uDAAuD;;AAmBvD,4CAqBC;AASD,gCAWC;AAQD,sCAMC;AAxED;;;;;;;;;;;;;;;;GAgBG;AACH,SAAgB,gBAAgB,CAAC,IAAc,EAAE,IAAc;IAC7D,IAAI,IAAI,CAAC,MAAM,KAAK,IAAI,CAAC,MAAM,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACrD,OAAO,CAAC,CAAA;IACV,CAAC;IAED,IAAI,UAAU,GAAG,CAAC,CAAA;IAClB,IAAI,KAAK,GAAG,CAAC,CAAA;IACb,IAAI,KAAK,GAAG,CAAC,CAAA;IAEb,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;QACrC,MAAM,EAAE,GAAG,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,CAAA;QACvB,MAAM,EAAE,GAAG,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,CAAA;QACvB,UAAU,IAAI,EAAE,GAAG,EAAE,CAAA;QACrB,KAAK,IAAI,EAAE,GAAG,EAAE,CAAA;QAChB,KAAK,IAAI,EAAE,GAAG,EAAE,CAAA;IAClB,CAAC;IAED,MAAM,WAAW,GAAG,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAA;IACvD,IAAI,WAAW,KAAK,CAAC;QAAE,OAAO,CAAC,CAAA;IAE/B,OAAO,UAAU,GAAG,WAAW,CAAA;AACjC,CAAC;AAED;;;;;;GAMG;AACH,SAAgB,UAAU,CAAC,IAAc,EAAE,IAAc;IACvD,IAAI,IAAI,CAAC,MAAM,KAAK,IAAI,CAAC,MAAM,EAAE,CAAC;QAChC,OAAO,CAAC,CAAA;IACV,CAAC;IAED,IAAI,MAAM,GAAG,CAAC,CAAA;IACd,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;QACrC,MAAM,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAA;IAC3C,CAAC;IAED,OAAO,MAAM,CAAA;AACf,CAAC;AAED;;;;;GAKG;AACH,SAAgB,aAAa,CAAC,GAAa;IACzC,IAAI,GAAG,GAAG,CAAC,CAAA;IACX,KAAK,MAAM,CAAC,IAAI,GAAG,EAAE,CAAC;QACpB,GAAG,IAAI,CAAC,GAAG,CAAC,CAAA;IACd,CAAC;IACD,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAA;AACvB,CAAC"}
1
+ {"version":3,"file":"math.js","sourceRoot":"","sources":["../../src/utils/math.ts"],"names":[],"mappings":";AAAA,uDAAuD;;AAmBvD,4CAqBC;AASD,gCAWC;AA1DD;;;;;;;;;;;;;;;;GAgBG;AACH,SAAgB,gBAAgB,CAAC,IAAc,EAAE,IAAc;IAC7D,IAAI,IAAI,CAAC,MAAM,KAAK,IAAI,CAAC,MAAM,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACrD,OAAO,CAAC,CAAA;IACV,CAAC;IAED,IAAI,UAAU,GAAG,CAAC,CAAA;IAClB,IAAI,KAAK,GAAG,CAAC,CAAA;IACb,IAAI,KAAK,GAAG,CAAC,CAAA;IAEb,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;QACrC,MAAM,EAAE,GAAG,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,CAAA;QACvB,MAAM,EAAE,GAAG,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,CAAA;QACvB,UAAU,IAAI,EAAE,GAAG,EAAE,CAAA;QACrB,KAAK,IAAI,EAAE,GAAG,EAAE,CAAA;QAChB,KAAK,IAAI,EAAE,GAAG,EAAE,CAAA;IAClB,CAAC;IAED,MAAM,WAAW,GAAG,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAA;IACvD,IAAI,WAAW,KAAK,CAAC;QAAE,OAAO,CAAC,CAAA;IAE/B,OAAO,UAAU,GAAG,WAAW,CAAA;AACjC,CAAC;AAED;;;;;;GAMG;AACH,SAAgB,UAAU,CAAC,IAAc,EAAE,IAAc;IACvD,IAAI,IAAI,CAAC,MAAM,KAAK,IAAI,CAAC,MAAM,EAAE,CAAC;QAChC,OAAO,CAAC,CAAA;IACV,CAAC;IAED,IAAI,MAAM,GAAG,CAAC,CAAA;IACd,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;QACrC,MAAM,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAA;IAC3C,CAAC;IAED,OAAO,MAAM,CAAA;AACf,CAAC"}
@@ -1,4 +1,21 @@
1
1
  export { DatabaseError } from '../errors/index.js';
2
+ /**
3
+ * Validate file path to prevent SQL injection and path traversal attacks.
4
+ * @param filePath - The file path to validate
5
+ * @returns true if path is safe for use in queries
6
+ */
7
+ /**
8
+ * Validate file path to prevent SQL injection and path traversal attacks.
9
+ * @param filePath - The file path to validate
10
+ * @returns true if path is safe for use in queries
11
+ */
12
+ export declare function isValidFilePath(filePath: string): boolean;
13
+ /**
14
+ * Generate a content-based fingerprint for a chunk.
15
+ * Uses SHA-256 hash of normalized text (first 16 hex chars for compactness).
16
+ * This enables stable chunk identification across re-indexing.
17
+ */
18
+ export declare function generateChunkFingerprint(text: string): string;
2
19
  /**
3
20
  * Grouping mode for quality filtering
4
21
  * - 'similar': Only return the most similar group (stops at first distance jump)
@@ -53,6 +70,8 @@ export interface VectorChunk {
53
70
  metadata: DocumentMetadata;
54
71
  /** Ingestion timestamp (ISO 8601 format) */
55
72
  timestamp: string;
73
+ /** Content-based fingerprint for resilient linking (SHA-256 prefix) */
74
+ fingerprint?: string;
56
75
  }
57
76
  /**
58
77
  * Search result
@@ -72,6 +91,8 @@ export interface SearchResult {
72
91
  score: number;
73
92
  /** Metadata */
74
93
  metadata: DocumentMetadata;
94
+ /** Content-based fingerprint for resilient linking */
95
+ fingerprint?: string;
75
96
  }
76
97
  /**
77
98
  * Vector storage class using LanceDB
@@ -95,7 +116,18 @@ export declare class VectorStore {
95
116
  private ftsLastFailure;
96
117
  /** Mutex to prevent race conditions in circuit breaker state transitions */
97
118
  private circuitBreakerResetting;
119
+ /** Runtime override for hybrid weight (allows dynamic adjustment) */
120
+ private hybridWeightOverride;
98
121
  constructor(config: VectorStoreConfig);
122
+ /**
123
+ * Get the current hybrid weight (runtime override or config default)
124
+ */
125
+ getHybridWeight(): number;
126
+ /**
127
+ * Set the hybrid weight at runtime
128
+ * @param weight - Value between 0.0 (vector-only) and 1.0 (max keyword boost)
129
+ */
130
+ setHybridWeight(weight: number): void;
99
131
  /**
100
132
  * Check if FTS should be attempted (circuit breaker logic)
101
133
  * - Returns false if max failures reached and cooldown not elapsed
@@ -180,11 +212,17 @@ export declare class VectorStore {
180
212
  */
181
213
  private applyKeywordBoost;
182
214
  /**
183
- * Get list of ingested files
215
+ * Get list of ingested files with optional pagination
184
216
  *
217
+ * @param options - Optional pagination parameters
218
+ * @param options.limit - Maximum number of files to return (default: all)
219
+ * @param options.offset - Number of files to skip (default: 0)
185
220
  * @returns Array of file information
186
221
  */
187
- listFiles(): Promise<{
222
+ listFiles(options?: {
223
+ limit?: number;
224
+ offset?: number;
225
+ }): Promise<{
188
226
  filePath: string;
189
227
  chunkCount: number;
190
228
  timestamp: string;
@@ -193,6 +231,23 @@ export declare class VectorStore {
193
231
  * Close the database connection and release resources
194
232
  */
195
233
  close(): Promise<void>;
234
+ /**
235
+ * Get all chunks for a document, ordered by chunkIndex
236
+ *
237
+ * @param filePath - File path (absolute)
238
+ * @returns Array of chunks ordered by chunkIndex
239
+ */
240
+ getDocumentChunks(filePath: string): Promise<SearchResult[]>;
241
+ /**
242
+ * Find related chunks using a chunk's stored embedding
243
+ *
244
+ * @param filePath - File path of the source chunk
245
+ * @param chunkIndex - Index of the source chunk
246
+ * @param limit - Number of results to return (default 5)
247
+ * @param excludeSameDocument - Whether to exclude chunks from the same document (default true)
248
+ * @returns Array of related chunks with similarity scores
249
+ */
250
+ findRelatedChunks(filePath: string, chunkIndex: number, limit?: number, excludeSameDocument?: boolean): Promise<SearchResult[]>;
196
251
  /**
197
252
  * Get system status
198
253
  *
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/vectordb/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/vectordb/index.ts"],"names":[],"mappings":"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"}