@robthepcguy/rag-vault 1.7.2 → 1.9.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 +92 -40
- package/dist/chunker/semantic-chunker.d.ts +0 -1
- package/dist/chunker/semantic-chunker.d.ts.map +1 -1
- package/dist/chunker/semantic-chunker.js +1 -1
- package/dist/chunker/semantic-chunker.js.map +1 -1
- package/dist/embedder/index.d.ts +5 -0
- package/dist/embedder/index.d.ts.map +1 -1
- package/dist/embedder/index.js +40 -5
- package/dist/embedder/index.js.map +1 -1
- package/dist/errors/index.d.ts +1 -1
- package/dist/errors/index.d.ts.map +1 -1
- package/dist/flywheel/feedback.d.ts +1 -1
- package/dist/flywheel/feedback.d.ts.map +1 -1
- package/dist/flywheel/feedback.js +1 -1
- package/dist/flywheel/feedback.js.map +1 -1
- package/dist/hyde/index.d.ts +47 -0
- package/dist/hyde/index.d.ts.map +1 -0
- package/dist/hyde/index.js +203 -0
- package/dist/hyde/index.js.map +1 -0
- package/dist/parser/pdf-filter.d.ts +3 -5
- package/dist/parser/pdf-filter.d.ts.map +1 -1
- package/dist/parser/pdf-filter.js +1 -1
- package/dist/parser/pdf-filter.js.map +1 -1
- package/dist/query/parser.d.ts +2 -6
- package/dist/query/parser.d.ts.map +1 -1
- package/dist/query/parser.js +14 -22
- package/dist/query/parser.js.map +1 -1
- package/dist/reranker/index.d.ts +76 -0
- package/dist/reranker/index.d.ts.map +1 -0
- package/dist/reranker/index.js +199 -0
- package/dist/reranker/index.js.map +1 -0
- package/dist/server/index.d.ts +25 -0
- package/dist/server/index.d.ts.map +1 -1
- package/dist/server/index.js +140 -48
- package/dist/server/index.js.map +1 -1
- package/dist/server/raw-data-utils.d.ts +0 -40
- package/dist/server/raw-data-utils.d.ts.map +1 -1
- package/dist/server/raw-data-utils.js +9 -8
- package/dist/server/raw-data-utils.js.map +1 -1
- package/dist/server/remote-transport.d.ts +2 -1
- package/dist/server/remote-transport.d.ts.map +1 -1
- package/dist/server/remote-transport.js +26 -6
- package/dist/server/remote-transport.js.map +1 -1
- package/dist/server/schemas.d.ts +26 -129
- package/dist/server/schemas.d.ts.map +1 -1
- package/dist/server/schemas.js +9 -9
- package/dist/server/schemas.js.map +1 -1
- package/dist/utils/config-parsers.d.ts +14 -0
- package/dist/utils/config-parsers.d.ts.map +1 -1
- package/dist/utils/config-parsers.js +26 -0
- package/dist/utils/config-parsers.js.map +1 -1
- package/dist/utils/config.d.ts +23 -0
- package/dist/utils/config.d.ts.map +1 -1
- package/dist/utils/config.js +39 -1
- package/dist/utils/config.js.map +1 -1
- package/dist/utils/file-utils.d.ts.map +1 -1
- package/dist/utils/file-utils.js +17 -1
- package/dist/utils/file-utils.js.map +1 -1
- package/dist/vectordb/index.d.ts +45 -16
- package/dist/vectordb/index.d.ts.map +1 -1
- package/dist/vectordb/index.js +363 -170
- package/dist/vectordb/index.js.map +1 -1
- package/dist/web/api-routes.d.ts.map +1 -1
- package/dist/web/api-routes.js +23 -10
- package/dist/web/api-routes.js.map +1 -1
- package/dist/web/database-manager.d.ts.map +1 -1
- package/dist/web/database-manager.js +32 -25
- package/dist/web/database-manager.js.map +1 -1
- package/dist/web/http-server.d.ts +0 -5
- package/dist/web/http-server.d.ts.map +1 -1
- package/dist/web/http-server.js +3 -7
- package/dist/web/http-server.js.map +1 -1
- package/dist/web/middleware/async-handler.d.ts +2 -1
- package/dist/web/middleware/async-handler.d.ts.map +1 -1
- package/dist/web/middleware/rate-limit.d.ts +2 -1
- package/dist/web/middleware/rate-limit.d.ts.map +1 -1
- package/dist/web/middleware/request-logger.d.ts +1 -1
- package/dist/web/middleware/request-logger.d.ts.map +1 -1
- package/package.json +8 -7
- package/skills/rag-vault/SKILL.md +3 -3
- package/skills/rag-vault/references/html-ingestion.md +1 -1
- package/web-ui/dist/assets/{CollectionsPage-BDmEfv3V.js → CollectionsPage-wbfgYFTw.js} +1 -1
- package/web-ui/dist/assets/{FilesPage-pG9HmpgQ.js → FilesPage-D6TlldaR.js} +1 -1
- package/web-ui/dist/assets/ReaderPage-Sgy0vMZ6.js +28 -0
- package/web-ui/dist/assets/{ReaderSettingsContext-CkSjqsRh.js → ReaderSettingsContext-DsvLXuaf.js} +1 -1
- package/web-ui/dist/assets/{SearchPage-DAltjnLL.js → SearchPage-mPKXZEyq.js} +1 -1
- package/web-ui/dist/assets/{SettingsPage-C6J5BITP.js → SettingsPage-DXeWwfvd.js} +1 -1
- package/web-ui/dist/assets/{StatusPage-powRGmW3.js → StatusPage-AirpfsGF.js} +1 -1
- package/web-ui/dist/assets/{UploadPage-eyfSjL4u.js → UploadPage-Cob25kDa.js} +5 -5
- package/web-ui/dist/assets/index-BZMzEssr.js +6 -0
- package/web-ui/dist/assets/index-DovQIIL4.css +1 -0
- package/web-ui/dist/assets/motion-DdHBXDWx.js +9 -0
- package/web-ui/dist/assets/query-DbAD_nLW.js +1 -0
- package/web-ui/dist/assets/vendor-DNJ-hWNb.js +10 -0
- package/web-ui/dist/index.html +4 -4
- package/web-ui/dist/assets/ReaderPage-CwMN03NU.js +0 -28
- package/web-ui/dist/assets/index-BpwaiuGL.css +0 -1
- package/web-ui/dist/assets/index-D068MV_o.js +0 -6
- package/web-ui/dist/assets/motion-CKwJwI3J.js +0 -9
- package/web-ui/dist/assets/query-DPt-uCb6.js +0 -1
- package/web-ui/dist/assets/vendor-C2QPsZ3S.js +0 -10
package/dist/server/schemas.js
CHANGED
|
@@ -4,11 +4,11 @@ import { z } from 'zod';
|
|
|
4
4
|
/**
|
|
5
5
|
* Content format enum for ingest_data
|
|
6
6
|
*/
|
|
7
|
-
|
|
7
|
+
const ContentFormatSchema = z.enum(['text', 'html', 'markdown']);
|
|
8
8
|
/**
|
|
9
9
|
* query_documents tool input schema
|
|
10
10
|
*/
|
|
11
|
-
|
|
11
|
+
const QueryDocumentsSchema = z.object({
|
|
12
12
|
query: z
|
|
13
13
|
.string()
|
|
14
14
|
.min(1, 'Query cannot be empty')
|
|
@@ -23,30 +23,30 @@ export const QueryDocumentsSchema = z.object({
|
|
|
23
23
|
explain: z
|
|
24
24
|
.boolean()
|
|
25
25
|
.optional()
|
|
26
|
-
.describe('
|
|
26
|
+
.describe('Show why each result matched (shared keywords, phrases, match type).'),
|
|
27
27
|
});
|
|
28
28
|
/**
|
|
29
29
|
* Custom metadata schema for ingestion
|
|
30
30
|
* Enforces reasonable limits on key/value sizes to prevent abuse
|
|
31
31
|
*/
|
|
32
|
-
|
|
32
|
+
const CustomMetadataSchema = z
|
|
33
33
|
.record(z.string().max(100, 'Metadata key must be at most 100 characters'), z.string().max(1000, 'Metadata value must be at most 1000 characters'))
|
|
34
34
|
.optional()
|
|
35
35
|
.describe('Optional custom metadata fields (e.g., {"author": "John", "domain": "legal", "tags": "contract,review"})');
|
|
36
36
|
/**
|
|
37
37
|
* ingest_file tool input schema
|
|
38
38
|
*/
|
|
39
|
-
|
|
39
|
+
const IngestFileSchema = z.object({
|
|
40
40
|
filePath: z
|
|
41
41
|
.string()
|
|
42
42
|
.min(1, 'File path cannot be empty')
|
|
43
|
-
.describe('
|
|
43
|
+
.describe('Full path to the file. Example: "/Users/user/documents/manual.pdf"'),
|
|
44
44
|
metadata: CustomMetadataSchema,
|
|
45
45
|
});
|
|
46
46
|
/**
|
|
47
47
|
* ingest_data metadata schema
|
|
48
48
|
*/
|
|
49
|
-
|
|
49
|
+
const IngestDataMetadataSchema = z.object({
|
|
50
50
|
source: z
|
|
51
51
|
.string()
|
|
52
52
|
.min(1, 'Source cannot be empty')
|
|
@@ -57,7 +57,7 @@ export const IngestDataMetadataSchema = z.object({
|
|
|
57
57
|
/**
|
|
58
58
|
* ingest_data tool input schema
|
|
59
59
|
*/
|
|
60
|
-
|
|
60
|
+
const IngestDataSchema = z.object({
|
|
61
61
|
content: z
|
|
62
62
|
.string()
|
|
63
63
|
.min(1, 'Content cannot be empty')
|
|
@@ -93,7 +93,7 @@ export const StatusResponseSchema = z.object({
|
|
|
93
93
|
memoryUsage: z.number(),
|
|
94
94
|
uptime: z.number(),
|
|
95
95
|
ftsIndexEnabled: z.boolean(),
|
|
96
|
-
searchMode: z.enum(['hybrid', 'vector-only']),
|
|
96
|
+
searchMode: z.enum(['hybrid', 'vector-only', 'hybrid-rrf', 'vector-rrf']),
|
|
97
97
|
});
|
|
98
98
|
/**
|
|
99
99
|
* Schema for validating recent databases file structure
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"schemas.js","sourceRoot":"","sources":["../../src/server/schemas.ts"],"names":[],"mappings":"AAAA,sCAAsC;AACtC,kDAAkD;AAElD,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAA;AAEvB;;GAEG;AACH,MAAM,
|
|
1
|
+
{"version":3,"file":"schemas.js","sourceRoot":"","sources":["../../src/server/schemas.ts"],"names":[],"mappings":"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"}
|
|
@@ -11,4 +11,18 @@ export declare function parseMaxDistance(value: string | undefined): number | un
|
|
|
11
11
|
* Parse hybrid weight from environment variable
|
|
12
12
|
*/
|
|
13
13
|
export declare function parseHybridWeight(value: string | undefined): number | undefined;
|
|
14
|
+
/**
|
|
15
|
+
* Search mode: how vector and BM25 results are combined
|
|
16
|
+
* - 'rrf': Reciprocal Rank Fusion (recommended, treats channels as independent voters)
|
|
17
|
+
* - 'boost': Legacy mode (BM25 multiplicatively boosts vector distances)
|
|
18
|
+
*/
|
|
19
|
+
export type SearchMode = 'rrf' | 'boost';
|
|
20
|
+
/**
|
|
21
|
+
* Parse search mode from environment variable
|
|
22
|
+
*/
|
|
23
|
+
export declare function parseSearchMode(value: string | undefined): SearchMode | undefined;
|
|
24
|
+
/**
|
|
25
|
+
* Parse RRF K constant from environment variable
|
|
26
|
+
*/
|
|
27
|
+
export declare function parseRrfK(value: string | undefined): number | undefined;
|
|
14
28
|
//# sourceMappingURL=config-parsers.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"config-parsers.d.ts","sourceRoot":"","sources":["../../src/utils/config-parsers.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAA;AAExD;;GAEG;AACH,wBAAgB,iBAAiB,CAAC,KAAK,EAAE,MAAM,GAAG,SAAS,GAAG,YAAY,GAAG,SAAS,CAUrF;AAED;;GAEG;AACH,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,MAAM,GAAG,SAAS,GAAG,MAAM,GAAG,SAAS,CAQ9E;AAED;;GAEG;AACH,wBAAgB,iBAAiB,CAAC,KAAK,EAAE,MAAM,GAAG,SAAS,GAAG,MAAM,GAAG,SAAS,CAU/E"}
|
|
1
|
+
{"version":3,"file":"config-parsers.d.ts","sourceRoot":"","sources":["../../src/utils/config-parsers.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAA;AAExD;;GAEG;AACH,wBAAgB,iBAAiB,CAAC,KAAK,EAAE,MAAM,GAAG,SAAS,GAAG,YAAY,GAAG,SAAS,CAUrF;AAED;;GAEG;AACH,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,MAAM,GAAG,SAAS,GAAG,MAAM,GAAG,SAAS,CAQ9E;AAED;;GAEG;AACH,wBAAgB,iBAAiB,CAAC,KAAK,EAAE,MAAM,GAAG,SAAS,GAAG,MAAM,GAAG,SAAS,CAU/E;AAED;;;;GAIG;AACH,MAAM,MAAM,UAAU,GAAG,KAAK,GAAG,OAAO,CAAA;AAExC;;GAEG;AACH,wBAAgB,eAAe,CAAC,KAAK,EAAE,MAAM,GAAG,SAAS,GAAG,UAAU,GAAG,SAAS,CAUjF;AAED;;GAEG;AACH,wBAAgB,SAAS,CAAC,KAAK,EAAE,MAAM,GAAG,SAAS,GAAG,MAAM,GAAG,SAAS,CAUvE"}
|
|
@@ -39,4 +39,30 @@ export function parseHybridWeight(value) {
|
|
|
39
39
|
}
|
|
40
40
|
return parsed;
|
|
41
41
|
}
|
|
42
|
+
/**
|
|
43
|
+
* Parse search mode from environment variable
|
|
44
|
+
*/
|
|
45
|
+
export function parseSearchMode(value) {
|
|
46
|
+
if (!value)
|
|
47
|
+
return undefined;
|
|
48
|
+
const normalized = value.toLowerCase().trim();
|
|
49
|
+
if (normalized === 'rrf' || normalized === 'boost') {
|
|
50
|
+
return normalized;
|
|
51
|
+
}
|
|
52
|
+
console.error(`Invalid RAG_SEARCH_MODE value: "${value}". Expected "rrf" or "boost". Using default ("boost").`);
|
|
53
|
+
return undefined;
|
|
54
|
+
}
|
|
55
|
+
/**
|
|
56
|
+
* Parse RRF K constant from environment variable
|
|
57
|
+
*/
|
|
58
|
+
export function parseRrfK(value) {
|
|
59
|
+
if (!value)
|
|
60
|
+
return undefined;
|
|
61
|
+
const parsed = Number.parseInt(value, 10);
|
|
62
|
+
if (Number.isNaN(parsed) || parsed < 1) {
|
|
63
|
+
console.error(`Invalid RAG_RRF_K value: "${value}". Expected positive integer. Using default (60).`);
|
|
64
|
+
return undefined;
|
|
65
|
+
}
|
|
66
|
+
return parsed;
|
|
67
|
+
}
|
|
42
68
|
//# sourceMappingURL=config-parsers.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"config-parsers.js","sourceRoot":"","sources":["../../src/utils/config-parsers.ts"],"names":[],"mappings":"AAAA,yCAAyC;AACzC,2EAA2E;AAI3E;;GAEG;AACH,MAAM,UAAU,iBAAiB,CAAC,KAAyB;IACzD,IAAI,CAAC,KAAK;QAAE,OAAO,SAAS,CAAA;IAC5B,MAAM,UAAU,GAAG,KAAK,CAAC,WAAW,EAAE,CAAC,IAAI,EAAE,CAAA;IAC7C,IAAI,UAAU,KAAK,SAAS,IAAI,UAAU,KAAK,SAAS,EAAE,CAAC;QACzD,OAAO,UAAU,CAAA;IACnB,CAAC;IACD,OAAO,CAAC,KAAK,CACX,gCAAgC,KAAK,+CAA+C,CACrF,CAAA;IACD,OAAO,SAAS,CAAA;AAClB,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,gBAAgB,CAAC,KAAyB;IACxD,IAAI,CAAC,KAAK;QAAE,OAAO,SAAS,CAAA;IAC5B,MAAM,MAAM,GAAG,MAAM,CAAC,UAAU,CAAC,KAAK,CAAC,CAAA;IACvC,IAAI,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,IAAI,MAAM,IAAI,CAAC,EAAE,CAAC;QACxC,OAAO,CAAC,KAAK,CAAC,oCAAoC,KAAK,wCAAwC,CAAC,CAAA;QAChG,OAAO,SAAS,CAAA;IAClB,CAAC;IACD,OAAO,MAAM,CAAA;AACf,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,iBAAiB,CAAC,KAAyB;IACzD,IAAI,CAAC,KAAK;QAAE,OAAO,SAAS,CAAA;IAC5B,MAAM,MAAM,GAAG,MAAM,CAAC,UAAU,CAAC,KAAK,CAAC,CAAA;IACvC,IAAI,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,IAAI,MAAM,GAAG,CAAC,IAAI,MAAM,GAAG,CAAC,EAAE,CAAC;QACrD,OAAO,CAAC,KAAK,CACX,qCAAqC,KAAK,2CAA2C,CACtF,CAAA;QACD,OAAO,SAAS,CAAA;IAClB,CAAC;IACD,OAAO,MAAM,CAAA;AACf,CAAC"}
|
|
1
|
+
{"version":3,"file":"config-parsers.js","sourceRoot":"","sources":["../../src/utils/config-parsers.ts"],"names":[],"mappings":"AAAA,yCAAyC;AACzC,2EAA2E;AAI3E;;GAEG;AACH,MAAM,UAAU,iBAAiB,CAAC,KAAyB;IACzD,IAAI,CAAC,KAAK;QAAE,OAAO,SAAS,CAAA;IAC5B,MAAM,UAAU,GAAG,KAAK,CAAC,WAAW,EAAE,CAAC,IAAI,EAAE,CAAA;IAC7C,IAAI,UAAU,KAAK,SAAS,IAAI,UAAU,KAAK,SAAS,EAAE,CAAC;QACzD,OAAO,UAAU,CAAA;IACnB,CAAC;IACD,OAAO,CAAC,KAAK,CACX,gCAAgC,KAAK,+CAA+C,CACrF,CAAA;IACD,OAAO,SAAS,CAAA;AAClB,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,gBAAgB,CAAC,KAAyB;IACxD,IAAI,CAAC,KAAK;QAAE,OAAO,SAAS,CAAA;IAC5B,MAAM,MAAM,GAAG,MAAM,CAAC,UAAU,CAAC,KAAK,CAAC,CAAA;IACvC,IAAI,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,IAAI,MAAM,IAAI,CAAC,EAAE,CAAC;QACxC,OAAO,CAAC,KAAK,CAAC,oCAAoC,KAAK,wCAAwC,CAAC,CAAA;QAChG,OAAO,SAAS,CAAA;IAClB,CAAC;IACD,OAAO,MAAM,CAAA;AACf,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,iBAAiB,CAAC,KAAyB;IACzD,IAAI,CAAC,KAAK;QAAE,OAAO,SAAS,CAAA;IAC5B,MAAM,MAAM,GAAG,MAAM,CAAC,UAAU,CAAC,KAAK,CAAC,CAAA;IACvC,IAAI,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,IAAI,MAAM,GAAG,CAAC,IAAI,MAAM,GAAG,CAAC,EAAE,CAAC;QACrD,OAAO,CAAC,KAAK,CACX,qCAAqC,KAAK,2CAA2C,CACtF,CAAA;QACD,OAAO,SAAS,CAAA;IAClB,CAAC;IACD,OAAO,MAAM,CAAA;AACf,CAAC;AASD;;GAEG;AACH,MAAM,UAAU,eAAe,CAAC,KAAyB;IACvD,IAAI,CAAC,KAAK;QAAE,OAAO,SAAS,CAAA;IAC5B,MAAM,UAAU,GAAG,KAAK,CAAC,WAAW,EAAE,CAAC,IAAI,EAAE,CAAA;IAC7C,IAAI,UAAU,KAAK,KAAK,IAAI,UAAU,KAAK,OAAO,EAAE,CAAC;QACnD,OAAO,UAAU,CAAA;IACnB,CAAC;IACD,OAAO,CAAC,KAAK,CACX,mCAAmC,KAAK,wDAAwD,CACjG,CAAA;IACD,OAAO,SAAS,CAAA;AAClB,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,SAAS,CAAC,KAAyB;IACjD,IAAI,CAAC,KAAK;QAAE,OAAO,SAAS,CAAA;IAC5B,MAAM,MAAM,GAAG,MAAM,CAAC,QAAQ,CAAC,KAAK,EAAE,EAAE,CAAC,CAAA;IACzC,IAAI,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,IAAI,MAAM,GAAG,CAAC,EAAE,CAAC;QACvC,OAAO,CAAC,KAAK,CACX,6BAA6B,KAAK,mDAAmD,CACtF,CAAA;QACD,OAAO,SAAS,CAAA;IAClB,CAAC;IACD,OAAO,MAAM,CAAA;AACf,CAAC"}
|
package/dist/utils/config.d.ts
CHANGED
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import type { GroupingMode } from '../vectordb/index.js';
|
|
2
|
+
import { type SearchMode } from './config-parsers.js';
|
|
2
3
|
/**
|
|
3
4
|
* RAG server configuration (matches RAGServerConfig in server/index.ts)
|
|
4
5
|
*/
|
|
@@ -19,6 +20,28 @@ export interface RAGConfig {
|
|
|
19
20
|
grouping?: GroupingMode;
|
|
20
21
|
/** Hybrid search weight for BM25 (0.0 = vector only, 1.0 = BM25 only) */
|
|
21
22
|
hybridWeight?: number;
|
|
23
|
+
/** Search mode: 'rrf' (Reciprocal Rank Fusion) or 'boost' (legacy keyword boost) */
|
|
24
|
+
searchMode?: SearchMode;
|
|
25
|
+
/** RRF K constant (smoothing factor, default: 60) */
|
|
26
|
+
rrfK?: number;
|
|
27
|
+
/** Enable cross-encoder reranking */
|
|
28
|
+
rerankerEnabled?: boolean;
|
|
29
|
+
/** Cross-encoder model name */
|
|
30
|
+
rerankerModel?: string;
|
|
31
|
+
/** Reranker candidate multiplier (rerank limit * this many candidates) */
|
|
32
|
+
rerankerCandidateMultiplier?: number;
|
|
33
|
+
/** Enable HyDE query expansion */
|
|
34
|
+
hydeEnabled?: boolean;
|
|
35
|
+
/** HyDE backend: 'rule-based' or 'api' */
|
|
36
|
+
hydeBackend?: string;
|
|
37
|
+
/** Number of HyDE expansions to generate */
|
|
38
|
+
hydeExpansions?: number;
|
|
39
|
+
/** API key for HyDE API backend (optional, only used when hydeBackend='api') */
|
|
40
|
+
hydeApiKey?: string;
|
|
41
|
+
/** API base URL for HyDE API backend (optional, default: https://api.anthropic.com) */
|
|
42
|
+
hydeApiBaseUrl?: string;
|
|
43
|
+
/** API model for HyDE API backend (optional) */
|
|
44
|
+
hydeApiModel?: string;
|
|
22
45
|
}
|
|
23
46
|
/**
|
|
24
47
|
* Build RAG server configuration from environment variables
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../../src/utils/config.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAA;
|
|
1
|
+
{"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../../src/utils/config.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAA;AACxD,OAAO,EACL,KAAK,UAAU,EAMhB,MAAM,qBAAqB,CAAA;AAe5B;;GAEG;AACH,MAAM,WAAW,SAAS;IACxB,4BAA4B;IAC5B,MAAM,EAAE,MAAM,CAAA;IACd,iCAAiC;IACjC,SAAS,EAAE,MAAM,CAAA;IACjB,4BAA4B;IAC5B,QAAQ,EAAE,MAAM,CAAA;IAChB,8BAA8B;IAC9B,OAAO,EAAE,MAAM,CAAA;IACf,iCAAiC;IACjC,WAAW,EAAE,MAAM,CAAA;IACnB,kEAAkE;IAClE,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB,qDAAqD;IACrD,QAAQ,CAAC,EAAE,YAAY,CAAA;IACvB,yEAAyE;IACzE,YAAY,CAAC,EAAE,MAAM,CAAA;IACrB,oFAAoF;IACpF,UAAU,CAAC,EAAE,UAAU,CAAA;IACvB,qDAAqD;IACrD,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,qCAAqC;IACrC,eAAe,CAAC,EAAE,OAAO,CAAA;IACzB,+BAA+B;IAC/B,aAAa,CAAC,EAAE,MAAM,CAAA;IACtB,0EAA0E;IAC1E,2BAA2B,CAAC,EAAE,MAAM,CAAA;IACpC,kCAAkC;IAClC,WAAW,CAAC,EAAE,OAAO,CAAA;IACrB,0CAA0C;IAC1C,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB,4CAA4C;IAC5C,cAAc,CAAC,EAAE,MAAM,CAAA;IACvB,gFAAgF;IAChF,UAAU,CAAC,EAAE,MAAM,CAAA;IACnB,uFAAuF;IACvF,cAAc,CAAC,EAAE,MAAM,CAAA;IACvB,gDAAgD;IAChD,YAAY,CAAC,EAAE,MAAM,CAAA;CACtB;AAYD;;;;;;;;;;;;GAYG;AACH,wBAAgB,cAAc,CAAC,SAAS,CAAC,EAAE,OAAO,CAAC,SAAS,CAAC,GAAG,SAAS,CAqExE;AAED;;;;;;GAMG;AACH,wBAAgB,iBAAiB,CAAC,MAAM,EAAE,SAAS,GAAG,IAAI,CAwDzD;AAED;;;;;GAKG;AACH,wBAAgB,wBAAwB,IAAI,MAAM,EAAE,CAqBnD"}
|
package/dist/utils/config.js
CHANGED
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
// Used by both MCP server (src/index.ts) and Web server (src/web/index.ts)
|
|
3
3
|
import { existsSync } from 'node:fs';
|
|
4
4
|
import path from 'node:path';
|
|
5
|
-
import { parseGroupingMode, parseHybridWeight, parseMaxDistance } from './config-parsers.js';
|
|
5
|
+
import { parseGroupingMode, parseHybridWeight, parseMaxDistance, parseRrfK, parseSearchMode, } from './config-parsers.js';
|
|
6
6
|
/**
|
|
7
7
|
* Configuration validation error (internal use only)
|
|
8
8
|
*/
|
|
@@ -57,6 +57,44 @@ export function buildRAGConfig(overrides) {
|
|
|
57
57
|
if (hybridWeight !== undefined) {
|
|
58
58
|
config.hybridWeight = hybridWeight;
|
|
59
59
|
}
|
|
60
|
+
// Advanced RAG settings
|
|
61
|
+
const searchMode = parseSearchMode(process.env['RAG_SEARCH_MODE']) ?? overrides?.searchMode;
|
|
62
|
+
const rrfK = parseRrfK(process.env['RAG_RRF_K']) ?? overrides?.rrfK;
|
|
63
|
+
if (searchMode !== undefined) {
|
|
64
|
+
config.searchMode = searchMode;
|
|
65
|
+
}
|
|
66
|
+
if (rrfK !== undefined) {
|
|
67
|
+
config.rrfK = rrfK;
|
|
68
|
+
}
|
|
69
|
+
// Reranker settings
|
|
70
|
+
config.rerankerEnabled =
|
|
71
|
+
process.env['RAG_RERANKER_ENABLED']?.toLowerCase() === 'true' ||
|
|
72
|
+
overrides?.rerankerEnabled ||
|
|
73
|
+
false;
|
|
74
|
+
config.rerankerModel =
|
|
75
|
+
process.env['RAG_RERANKER_MODEL'] || overrides?.rerankerModel || 'Xenova/ms-marco-MiniLM-L-6-v2';
|
|
76
|
+
const rerankerMult = Number.parseFloat(process.env['RAG_RERANKER_CANDIDATE_MULTIPLIER'] || '');
|
|
77
|
+
config.rerankerCandidateMultiplier =
|
|
78
|
+
!Number.isNaN(rerankerMult) && rerankerMult > 0
|
|
79
|
+
? rerankerMult
|
|
80
|
+
: (overrides?.rerankerCandidateMultiplier ?? 2);
|
|
81
|
+
// HyDE settings
|
|
82
|
+
config.hydeEnabled =
|
|
83
|
+
process.env['RAG_HYDE_ENABLED']?.toLowerCase() === 'true' || overrides?.hydeEnabled || false;
|
|
84
|
+
config.hydeBackend = process.env['RAG_HYDE_BACKEND'] || overrides?.hydeBackend || 'rule-based';
|
|
85
|
+
const hydeExp = Number.parseInt(process.env['RAG_HYDE_EXPANSIONS'] || '', 10);
|
|
86
|
+
config.hydeExpansions =
|
|
87
|
+
!Number.isNaN(hydeExp) && hydeExp > 0 ? hydeExp : (overrides?.hydeExpansions ?? 2);
|
|
88
|
+
// HyDE API settings (only relevant when hydeBackend='api')
|
|
89
|
+
const hydeApiKey = process.env['RAG_HYDE_API_KEY'] || overrides?.hydeApiKey;
|
|
90
|
+
const hydeApiBaseUrl = process.env['RAG_HYDE_API_BASE_URL'] || overrides?.hydeApiBaseUrl;
|
|
91
|
+
const hydeApiModel = process.env['RAG_HYDE_API_MODEL'] || overrides?.hydeApiModel;
|
|
92
|
+
if (hydeApiKey)
|
|
93
|
+
config.hydeApiKey = hydeApiKey;
|
|
94
|
+
if (hydeApiBaseUrl)
|
|
95
|
+
config.hydeApiBaseUrl = hydeApiBaseUrl;
|
|
96
|
+
if (hydeApiModel)
|
|
97
|
+
config.hydeApiModel = hydeApiModel;
|
|
60
98
|
return config;
|
|
61
99
|
}
|
|
62
100
|
/**
|
package/dist/utils/config.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"config.js","sourceRoot":"","sources":["../../src/utils/config.ts"],"names":[],"mappings":"AAAA,+CAA+C;AAC/C,2EAA2E;AAE3E,OAAO,EAAE,UAAU,EAAE,MAAM,SAAS,CAAA;AACpC,OAAO,IAAI,MAAM,WAAW,CAAA;AAE5B,OAAO,
|
|
1
|
+
{"version":3,"file":"config.js","sourceRoot":"","sources":["../../src/utils/config.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"file-utils.d.ts","sourceRoot":"","sources":["../../src/utils/file-utils.ts"],"names":[],"mappings":"AAOA;;;;;;GAMG;AACH,wBAAsB,eAAe,CAAC,QAAQ,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,
|
|
1
|
+
{"version":3,"file":"file-utils.d.ts","sourceRoot":"","sources":["../../src/utils/file-utils.ts"],"names":[],"mappings":"AAOA;;;;;;GAMG;AACH,wBAAsB,eAAe,CAAC,QAAQ,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAmCtF"}
|
package/dist/utils/file-utils.js
CHANGED
|
@@ -19,7 +19,23 @@ export async function atomicWriteFile(filePath, content) {
|
|
|
19
19
|
const tempPath = `${filePath}.${randomUUID()}.tmp`;
|
|
20
20
|
try {
|
|
21
21
|
await writeFile(tempPath, content, 'utf-8');
|
|
22
|
-
|
|
22
|
+
// Retry rename on Windows EPERM (file handle contention)
|
|
23
|
+
const maxRetries = process.platform === 'win32' ? 3 : 0;
|
|
24
|
+
for (let attempt = 0;; attempt++) {
|
|
25
|
+
try {
|
|
26
|
+
await rename(tempPath, filePath);
|
|
27
|
+
break;
|
|
28
|
+
}
|
|
29
|
+
catch (err) {
|
|
30
|
+
const isRetryable = attempt < maxRetries &&
|
|
31
|
+
err instanceof Error &&
|
|
32
|
+
'code' in err &&
|
|
33
|
+
err.code === 'EPERM';
|
|
34
|
+
if (!isRetryable)
|
|
35
|
+
throw err;
|
|
36
|
+
await new Promise((r) => setTimeout(r, 50 * (attempt + 1)));
|
|
37
|
+
}
|
|
38
|
+
}
|
|
23
39
|
}
|
|
24
40
|
catch (error) {
|
|
25
41
|
// Clean up temp file on failure
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"file-utils.js","sourceRoot":"","sources":["../../src/utils/file-utils.ts"],"names":[],"mappings":"AAAA,gCAAgC;AAEhC,OAAO,EAAE,UAAU,EAAE,MAAM,SAAS,CAAA;AACpC,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,EAAE,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAA;AAC/D,OAAO,IAAI,MAAM,WAAW,CAAA;AAC5B,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAA;AAExC;;;;;;GAMG;AACH,MAAM,CAAC,KAAK,UAAU,eAAe,CAAC,QAAgB,EAAE,OAAe;IACrE,MAAM,GAAG,GAAG,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAA;IAClC,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC;QACrB,MAAM,KAAK,CAAC,GAAG,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAA;IACvC,CAAC;IAED,8DAA8D;IAC9D,MAAM,QAAQ,GAAG,GAAG,QAAQ,IAAI,UAAU,EAAE,MAAM,CAAA;IAClD,IAAI,CAAC;QACH,MAAM,SAAS,CAAC,QAAQ,EAAE,OAAO,EAAE,OAAO,CAAC,CAAA;QAC3C,MAAM,MAAM,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAAA;
|
|
1
|
+
{"version":3,"file":"file-utils.js","sourceRoot":"","sources":["../../src/utils/file-utils.ts"],"names":[],"mappings":"AAAA,gCAAgC;AAEhC,OAAO,EAAE,UAAU,EAAE,MAAM,SAAS,CAAA;AACpC,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,EAAE,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAA;AAC/D,OAAO,IAAI,MAAM,WAAW,CAAA;AAC5B,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAA;AAExC;;;;;;GAMG;AACH,MAAM,CAAC,KAAK,UAAU,eAAe,CAAC,QAAgB,EAAE,OAAe;IACrE,MAAM,GAAG,GAAG,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAA;IAClC,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC;QACrB,MAAM,KAAK,CAAC,GAAG,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAA;IACvC,CAAC;IAED,8DAA8D;IAC9D,MAAM,QAAQ,GAAG,GAAG,QAAQ,IAAI,UAAU,EAAE,MAAM,CAAA;IAClD,IAAI,CAAC;QACH,MAAM,SAAS,CAAC,QAAQ,EAAE,OAAO,EAAE,OAAO,CAAC,CAAA;QAC3C,yDAAyD;QACzD,MAAM,UAAU,GAAG,OAAO,CAAC,QAAQ,KAAK,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAA;QACvD,KAAK,IAAI,OAAO,GAAG,CAAC,GAAI,OAAO,EAAE,EAAE,CAAC;YAClC,IAAI,CAAC;gBACH,MAAM,MAAM,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAAA;gBAChC,MAAK;YACP,CAAC;YAAC,OAAO,GAAG,EAAE,CAAC;gBACb,MAAM,WAAW,GACf,OAAO,GAAG,UAAU;oBACpB,GAAG,YAAY,KAAK;oBACpB,MAAM,IAAI,GAAG;oBACZ,GAA6B,CAAC,IAAI,KAAK,OAAO,CAAA;gBACjD,IAAI,CAAC,WAAW;oBAAE,MAAM,GAAG,CAAA;gBAC3B,MAAM,IAAI,OAAO,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,UAAU,CAAC,CAAC,EAAE,EAAE,GAAG,CAAC,OAAO,GAAG,CAAC,CAAC,CAAC,CAAC,CAAA;YAC7D,CAAC;QACH,CAAC;IACH,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,gCAAgC;QAChC,IAAI,CAAC;YACH,MAAM,EAAE,CAAC,QAAQ,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAA;QACrC,CAAC;QAAC,MAAM,CAAC;YACP,wBAAwB;QAC1B,CAAC;QACD,MAAM,KAAK,CAAA;IACb,CAAC;AACH,CAAC"}
|
package/dist/vectordb/index.d.ts
CHANGED
|
@@ -1,4 +1,9 @@
|
|
|
1
1
|
export { DatabaseError } from '../errors/index.js';
|
|
2
|
+
/**
|
|
3
|
+
* Search mode: 'rrf' uses Reciprocal Rank Fusion, 'boost' uses legacy keyword boost.
|
|
4
|
+
* Configure via RAG_SEARCH_MODE environment variable.
|
|
5
|
+
*/
|
|
6
|
+
type SearchMode = 'rrf' | 'boost';
|
|
2
7
|
/**
|
|
3
8
|
* Validate file path to prevent SQL injection and path traversal attacks.
|
|
4
9
|
* @param filePath - The file path to validate
|
|
@@ -10,12 +15,6 @@ export { DatabaseError } from '../errors/index.js';
|
|
|
10
15
|
* @returns true if path is safe for use in queries
|
|
11
16
|
*/
|
|
12
17
|
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;
|
|
19
18
|
/**
|
|
20
19
|
* Grouping mode for quality filtering
|
|
21
20
|
* - 'similar': Only return the most similar group (stops at first distance jump)
|
|
@@ -25,7 +24,7 @@ export type GroupingMode = 'similar' | 'related';
|
|
|
25
24
|
/**
|
|
26
25
|
* VectorStore configuration
|
|
27
26
|
*/
|
|
28
|
-
|
|
27
|
+
interface VectorStoreConfig {
|
|
29
28
|
/** LanceDB database path */
|
|
30
29
|
dbPath: string;
|
|
31
30
|
/** Table name */
|
|
@@ -40,11 +39,24 @@ export interface VectorStoreConfig {
|
|
|
40
39
|
* Default: 0.6
|
|
41
40
|
*/
|
|
42
41
|
hybridWeight?: number;
|
|
42
|
+
/**
|
|
43
|
+
* Search mode: how vector and BM25 results are combined.
|
|
44
|
+
* - 'rrf': Reciprocal Rank Fusion (opt-in, treats channels as independent voters)
|
|
45
|
+
* - 'boost': Legacy mode (default, BM25 multiplicatively boosts vector distances)
|
|
46
|
+
* Overrides RAG_SEARCH_MODE environment variable when set.
|
|
47
|
+
*/
|
|
48
|
+
searchMode?: SearchMode;
|
|
49
|
+
/**
|
|
50
|
+
* RRF K constant (smoothing factor for Reciprocal Rank Fusion).
|
|
51
|
+
* Higher values reduce the impact of rank differences. Default: 60.
|
|
52
|
+
* Overrides RAG_RRF_K environment variable when set.
|
|
53
|
+
*/
|
|
54
|
+
rrfK?: number;
|
|
43
55
|
}
|
|
44
56
|
/**
|
|
45
57
|
* Document metadata
|
|
46
58
|
*/
|
|
47
|
-
|
|
59
|
+
interface DocumentMetadata {
|
|
48
60
|
/** File name */
|
|
49
61
|
fileName: string;
|
|
50
62
|
/** File size in bytes */
|
|
@@ -78,7 +90,7 @@ export interface VectorChunk {
|
|
|
78
90
|
/**
|
|
79
91
|
* Search result
|
|
80
92
|
*/
|
|
81
|
-
|
|
93
|
+
interface SearchResult {
|
|
82
94
|
/** File path */
|
|
83
95
|
filePath: string;
|
|
84
96
|
/** Chunk index */
|
|
@@ -113,6 +125,7 @@ export declare class VectorStore {
|
|
|
113
125
|
private db;
|
|
114
126
|
private table;
|
|
115
127
|
private readonly config;
|
|
128
|
+
private rrfMaxDistanceWarned;
|
|
116
129
|
private ftsEnabled;
|
|
117
130
|
private ftsFailureCount;
|
|
118
131
|
private ftsLastFailure;
|
|
@@ -183,6 +196,15 @@ export declare class VectorStore {
|
|
|
183
196
|
* @param filePath - File path (absolute)
|
|
184
197
|
*/
|
|
185
198
|
deleteChunks(filePath: string): Promise<void>;
|
|
199
|
+
/**
|
|
200
|
+
* Delete chunks for a file, excluding a set of IDs.
|
|
201
|
+
* Used by insert-then-delete re-ingestion to remove old vectors
|
|
202
|
+
* while keeping newly inserted ones.
|
|
203
|
+
*
|
|
204
|
+
* @param filePath - File path whose old chunks should be removed
|
|
205
|
+
* @param excludeIds - Set of chunk IDs to keep (the new batch)
|
|
206
|
+
*/
|
|
207
|
+
deleteChunksExcluding(filePath: string, excludeIds: Set<string>): Promise<void>;
|
|
186
208
|
/**
|
|
187
209
|
* Batch insert vector chunks
|
|
188
210
|
*
|
|
@@ -215,18 +237,25 @@ export declare class VectorStore {
|
|
|
215
237
|
private applyGrouping;
|
|
216
238
|
/**
|
|
217
239
|
* Execute vector search with quality filtering
|
|
218
|
-
* Architecture: Semantic search → Filter (maxDistance, grouping) → Keyword boost
|
|
219
240
|
*
|
|
220
|
-
*
|
|
221
|
-
* -
|
|
222
|
-
*
|
|
241
|
+
* Supports two search modes (configured via RAG_SEARCH_MODE):
|
|
242
|
+
* - 'rrf': Reciprocal Rank Fusion — vector and BM25 are independent voters,
|
|
243
|
+
* results are fused by rank position. Recommended for most use cases.
|
|
244
|
+
* - 'boost': Legacy mode — BM25 multiplicatively boosts vector distances.
|
|
245
|
+
*
|
|
246
|
+
* Architecture (RRF mode): Vector search + FTS search → RRF fusion → Grouping → Limit
|
|
247
|
+
* Architecture (Boost mode): Vector search → Grouping → Keyword boost → Limit
|
|
223
248
|
*
|
|
224
249
|
* @param queryVector - Query vector (dimension depends on model)
|
|
225
|
-
* @param queryText - Optional query text for keyword
|
|
250
|
+
* @param queryText - Optional query text for keyword matching (BM25)
|
|
226
251
|
* @param limit - Number of results to retrieve (default 10)
|
|
252
|
+
* @param additionalVectors - Optional additional query vectors with weights (for HyDE)
|
|
227
253
|
* @returns Array of search results (sorted by distance ascending, filtered by quality settings)
|
|
228
254
|
*/
|
|
229
|
-
search(queryVector: number[], queryText?: string, limit?: number
|
|
255
|
+
search(queryVector: number[], queryText?: string, limit?: number, additionalVectors?: {
|
|
256
|
+
vector: number[];
|
|
257
|
+
weight: number;
|
|
258
|
+
}[]): Promise<SearchResult[]>;
|
|
230
259
|
/**
|
|
231
260
|
* Apply keyword boost to rerank vector search results
|
|
232
261
|
* Uses multiplicative formula: final_distance = distance / (1 + keyword_normalized * weight)
|
|
@@ -296,7 +325,7 @@ export declare class VectorStore {
|
|
|
296
325
|
memoryUsage: number;
|
|
297
326
|
uptime: number;
|
|
298
327
|
ftsIndexEnabled: boolean;
|
|
299
|
-
searchMode: 'hybrid' | 'vector-only';
|
|
328
|
+
searchMode: 'hybrid' | 'vector-only' | 'hybrid-rrf' | 'vector-rrf';
|
|
300
329
|
}>;
|
|
301
330
|
}
|
|
302
331
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/vectordb/index.ts"],"names":[],"mappings":"AAOA,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAA;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/vectordb/index.ts"],"names":[],"mappings":"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"}
|