@robthepcguy/rag-vault 1.5.3 → 1.7.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 +86 -14
- package/dist/bin/install-skills.d.ts.map +1 -0
- package/dist/bin/install-skills.js +16 -17
- package/dist/bin/install-skills.js.map +1 -0
- package/dist/chunker/index.d.ts.map +1 -0
- package/dist/chunker/index.js +1 -5
- package/dist/chunker/index.js.map +1 -0
- package/dist/chunker/semantic-chunker.d.ts.map +1 -0
- package/dist/chunker/semantic-chunker.js +9 -13
- package/dist/chunker/semantic-chunker.js.map +1 -0
- package/dist/chunker/sentence-splitter.d.ts.map +1 -0
- package/dist/chunker/sentence-splitter.js +1 -4
- package/dist/chunker/sentence-splitter.js.map +1 -0
- package/dist/embedder/index.d.ts +10 -0
- package/dist/embedder/index.d.ts.map +1 -0
- package/dist/embedder/index.js +58 -32
- package/dist/embedder/index.js.map +1 -0
- package/dist/errors/index.d.ts.map +1 -0
- package/dist/errors/index.js +10 -17
- package/dist/errors/index.js.map +1 -0
- package/dist/explainability/index.d.ts.map +1 -0
- package/dist/explainability/index.js +1 -5
- package/dist/explainability/index.js.map +1 -0
- package/dist/explainability/keywords.d.ts.map +1 -0
- package/dist/explainability/keywords.js +1 -4
- package/dist/explainability/keywords.js.map +1 -0
- package/dist/flywheel/feedback.d.ts.map +1 -0
- package/dist/flywheel/feedback.js +15 -19
- package/dist/flywheel/feedback.js.map +1 -0
- package/dist/flywheel/index.d.ts.map +1 -0
- package/dist/flywheel/index.js +1 -5
- package/dist/flywheel/index.js.map +1 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +86 -64
- package/dist/index.js.map +1 -0
- package/dist/parser/html-parser.d.ts.map +1 -0
- package/dist/parser/html-parser.js +7 -13
- package/dist/parser/html-parser.js.map +1 -0
- package/dist/parser/index.d.ts.map +1 -0
- package/dist/parser/index.js +44 -52
- package/dist/parser/index.js.map +1 -0
- package/dist/parser/pdf-filter.d.ts.map +1 -0
- package/dist/parser/pdf-filter.js +10 -16
- package/dist/parser/pdf-filter.js.map +1 -0
- package/dist/query/index.d.ts.map +1 -0
- package/dist/query/index.js +1 -8
- package/dist/query/index.js.map +1 -0
- package/dist/query/parser.d.ts.map +1 -0
- package/dist/query/parser.js +5 -12
- package/dist/query/parser.js.map +1 -0
- package/dist/server/index.d.ts +6 -0
- package/dist/server/index.d.ts.map +1 -0
- package/dist/server/index.js +106 -95
- package/dist/server/index.js.map +1 -0
- package/dist/server/raw-data-utils.d.ts.map +1 -0
- package/dist/server/raw-data-utils.js +21 -33
- package/dist/server/raw-data-utils.js.map +1 -0
- package/dist/server/remote-transport.d.ts +31 -0
- package/dist/server/remote-transport.d.ts.map +1 -0
- package/dist/server/remote-transport.js +177 -0
- package/dist/server/remote-transport.js.map +1 -0
- package/dist/server/schemas.d.ts.map +1 -0
- package/dist/server/schemas.js +35 -38
- package/dist/server/schemas.js.map +1 -0
- package/dist/utils/config-parsers.d.ts.map +1 -0
- package/dist/utils/config-parsers.js +3 -8
- package/dist/utils/config-parsers.js.map +1 -0
- package/dist/utils/config.d.ts.map +1 -0
- package/dist/utils/config.js +12 -19
- package/dist/utils/config.js.map +1 -0
- package/dist/utils/embedding-device-cli.d.ts +12 -0
- package/dist/utils/embedding-device-cli.d.ts.map +1 -0
- package/dist/utils/embedding-device-cli.js +61 -0
- package/dist/utils/embedding-device-cli.js.map +1 -0
- package/dist/utils/file-utils.d.ts.map +1 -0
- package/dist/utils/file-utils.js +12 -18
- package/dist/utils/file-utils.js.map +1 -0
- package/dist/utils/math.d.ts.map +1 -0
- package/dist/utils/math.js +2 -6
- package/dist/utils/math.js.map +1 -0
- package/dist/utils/process-handlers.d.ts.map +1 -0
- package/dist/utils/process-handlers.js +5 -10
- package/dist/utils/process-handlers.js.map +1 -0
- package/dist/vectordb/index.d.ts.map +1 -0
- package/dist/vectordb/index.js +39 -45
- package/dist/vectordb/index.js.map +1 -0
- package/dist/web/api-routes.d.ts.map +1 -0
- package/dist/web/api-routes.js +41 -47
- package/dist/web/api-routes.js.map +1 -0
- package/dist/web/config-routes.d.ts.map +1 -0
- package/dist/web/config-routes.js +30 -33
- package/dist/web/config-routes.js.map +1 -0
- package/dist/web/database-manager.d.ts.map +1 -0
- package/dist/web/database-manager.js +67 -72
- package/dist/web/database-manager.js.map +1 -0
- package/dist/web/http-server.d.ts.map +1 -0
- package/dist/web/http-server.js +45 -86
- package/dist/web/http-server.js.map +1 -0
- package/dist/web/index.d.ts.map +1 -0
- package/dist/web/index.js +20 -58
- package/dist/web/index.js.map +1 -0
- package/dist/web/middleware/async-handler.d.ts.map +1 -0
- package/dist/web/middleware/async-handler.js +1 -4
- package/dist/web/middleware/async-handler.js.map +1 -0
- package/dist/web/middleware/auth.d.ts.map +1 -0
- package/dist/web/middleware/auth.js +3 -6
- package/dist/web/middleware/auth.js.map +1 -0
- package/dist/web/middleware/error-handler.d.ts.map +1 -0
- package/dist/web/middleware/error-handler.js +4 -8
- package/dist/web/middleware/error-handler.js.map +1 -0
- package/dist/web/middleware/index.d.ts.map +1 -0
- package/dist/web/middleware/index.js +5 -17
- package/dist/web/middleware/index.js.map +1 -0
- package/dist/web/middleware/rate-limit.d.ts.map +1 -0
- package/dist/web/middleware/rate-limit.js +3 -8
- package/dist/web/middleware/rate-limit.js.map +1 -0
- package/dist/web/middleware/request-logger.d.ts.map +1 -0
- package/dist/web/middleware/request-logger.js +2 -6
- package/dist/web/middleware/request-logger.js.map +1 -0
- package/dist/web/types.d.ts.map +1 -0
- package/dist/web/types.js +1 -2
- package/dist/web/types.js.map +1 -0
- package/package.json +31 -35
- package/web-ui/dist/assets/CollectionsPage-BDmEfv3V.js +1 -0
- package/web-ui/dist/assets/FilesPage-pG9HmpgQ.js +1 -0
- package/web-ui/dist/assets/ReaderPage-CwMN03NU.js +28 -0
- package/web-ui/dist/assets/ReaderSettingsContext-CkSjqsRh.js +1 -0
- package/web-ui/dist/assets/SearchPage-DAltjnLL.js +1 -0
- package/web-ui/dist/assets/SettingsPage-C6J5BITP.js +1 -0
- package/web-ui/dist/assets/StatusPage-powRGmW3.js +1 -0
- package/web-ui/dist/assets/UploadPage-eyfSjL4u.js +8 -0
- package/web-ui/dist/assets/format-DOJ3IkRX.js +1 -0
- package/web-ui/dist/assets/index-BpwaiuGL.css +1 -0
- package/web-ui/dist/assets/index-D068MV_o.js +6 -0
- package/web-ui/dist/assets/link-indexer.worker-DGXNsXmZ.js +1 -0
- package/web-ui/dist/assets/motion-CKwJwI3J.js +9 -0
- package/web-ui/dist/assets/query-DPt-uCb6.js +1 -0
- package/web-ui/dist/assets/vendor-C2QPsZ3S.js +10 -0
- package/web-ui/dist/index.html +7 -2
- package/web-ui/dist/assets/index-SBHxoAwi.js +0 -120
- package/web-ui/dist/assets/index-ej8i4PGl.css +0 -1
package/dist/server/index.js
CHANGED
|
@@ -1,23 +1,20 @@
|
|
|
1
|
-
"use strict";
|
|
2
1
|
// RAGServer implementation with MCP tools
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
const raw_data_utils_js_1 = require("./raw-data-utils.js");
|
|
20
|
-
const schemas_js_1 = require("./schemas.js");
|
|
2
|
+
import { randomUUID } from 'node:crypto';
|
|
3
|
+
import { readFile, unlink } from 'node:fs/promises';
|
|
4
|
+
import { McpServer } from '@modelcontextprotocol/sdk/server/mcp.js';
|
|
5
|
+
import { StdioServerTransport } from '@modelcontextprotocol/sdk/server/stdio.js';
|
|
6
|
+
import { z } from 'zod';
|
|
7
|
+
import { SemanticChunker } from '../chunker/index.js';
|
|
8
|
+
import { Embedder } from '../embedder/index.js';
|
|
9
|
+
import { getErrorMessage } from '../errors/index.js';
|
|
10
|
+
import { explainChunkSimilarity } from '../explainability/keywords.js';
|
|
11
|
+
import { getFeedbackStore } from '../flywheel/feedback.js';
|
|
12
|
+
import { parseHtml } from '../parser/html-parser.js';
|
|
13
|
+
import { DocumentParser } from '../parser/index.js';
|
|
14
|
+
import { matchesFilters, parseQuery, shouldExclude, toSemanticQuery } from '../query/index.js';
|
|
15
|
+
import { VectorStore } from '../vectordb/index.js';
|
|
16
|
+
import { extractSourceFromPath, generateRawDataPath, isManagedRawDataPath, saveRawData, } from './raw-data-utils.js';
|
|
17
|
+
import { DeleteFileSchema, } from './schemas.js';
|
|
21
18
|
// ============================================
|
|
22
19
|
// RAGServer Class
|
|
23
20
|
// ============================================
|
|
@@ -30,10 +27,16 @@ const schemas_js_1 = require("./schemas.js");
|
|
|
30
27
|
* - Error handling
|
|
31
28
|
* - Initialization (LanceDB, Transformers.js)
|
|
32
29
|
*/
|
|
33
|
-
class RAGServer {
|
|
30
|
+
export class RAGServer {
|
|
31
|
+
server;
|
|
32
|
+
vectorStore;
|
|
33
|
+
embedder;
|
|
34
|
+
chunker;
|
|
35
|
+
parser;
|
|
36
|
+
dbPath;
|
|
34
37
|
constructor(config) {
|
|
35
38
|
this.dbPath = config.dbPath;
|
|
36
|
-
this.server = new
|
|
39
|
+
this.server = new McpServer({
|
|
37
40
|
name: 'rag-mcp-server',
|
|
38
41
|
version: '1.0.0',
|
|
39
42
|
});
|
|
@@ -52,35 +55,44 @@ class RAGServer {
|
|
|
52
55
|
if (config.hybridWeight !== undefined) {
|
|
53
56
|
vectorStoreConfig.hybridWeight = config.hybridWeight;
|
|
54
57
|
}
|
|
55
|
-
this.vectorStore = new
|
|
56
|
-
this.embedder = new
|
|
58
|
+
this.vectorStore = new VectorStore(vectorStoreConfig);
|
|
59
|
+
this.embedder = new Embedder({
|
|
57
60
|
modelPath: config.modelName,
|
|
58
61
|
batchSize: 16,
|
|
59
62
|
cacheDir: config.cacheDir,
|
|
60
63
|
});
|
|
61
|
-
this.chunker = new
|
|
62
|
-
this.parser = new
|
|
64
|
+
this.chunker = new SemanticChunker();
|
|
65
|
+
this.parser = new DocumentParser({
|
|
63
66
|
baseDir: config.baseDir,
|
|
64
67
|
maxFileSize: config.maxFileSize,
|
|
65
68
|
});
|
|
66
69
|
this.setupHandlers();
|
|
67
70
|
}
|
|
71
|
+
/**
|
|
72
|
+
* Create a new McpServer session sharing this RAGServer's backend resources.
|
|
73
|
+
* Used by the remote transport to create one MCP server per client session.
|
|
74
|
+
*/
|
|
75
|
+
createSession() {
|
|
76
|
+
const session = new McpServer({ name: 'rag-mcp-server', version: '1.0.0' });
|
|
77
|
+
this.setupHandlers(session);
|
|
78
|
+
return session;
|
|
79
|
+
}
|
|
68
80
|
/**
|
|
69
81
|
* Set up MCP handlers using tool() API
|
|
70
82
|
* Note: Type casts are used to work around Zod version compatibility between project and SDK
|
|
71
83
|
*/
|
|
72
|
-
setupHandlers() {
|
|
84
|
+
setupHandlers(target = this.server) {
|
|
73
85
|
// query_documents tool
|
|
74
|
-
|
|
86
|
+
target.tool('query_documents', `Search ingested documents using hybrid semantic + keyword search. Advanced syntax supported:
|
|
75
87
|
- "exact phrase" → Match phrase exactly
|
|
76
88
|
- field:value → Filter by custom metadata (e.g., domain:legal, author:john)
|
|
77
89
|
- term1 AND term2 → Both terms required (default)
|
|
78
90
|
- term1 OR term2 → Either term matches
|
|
79
91
|
- -term → Exclude results containing term
|
|
80
92
|
Results include score (0 = most relevant, higher = less relevant). Set explain=true to see why each result matched.`, {
|
|
81
|
-
query:
|
|
82
|
-
limit:
|
|
83
|
-
explain:
|
|
93
|
+
query: z.string(),
|
|
94
|
+
limit: z.number().optional(),
|
|
95
|
+
explain: z.boolean().optional(),
|
|
84
96
|
}, async (args) => {
|
|
85
97
|
const results = await this.executeQueryDocuments(args);
|
|
86
98
|
return {
|
|
@@ -88,9 +100,9 @@ Results include score (0 = most relevant, higher = less relevant). Set explain=t
|
|
|
88
100
|
};
|
|
89
101
|
});
|
|
90
102
|
// ingest_file tool
|
|
91
|
-
|
|
92
|
-
filePath:
|
|
93
|
-
metadata:
|
|
103
|
+
target.tool('ingest_file', 'Ingest a document file (PDF, DOCX, TXT, MD, JSON, JSONL) into the vector database for semantic search. File path must be an absolute path. Supports re-ingestion to update existing documents. Optional metadata can include author, domain, tags, etc.', {
|
|
104
|
+
filePath: z.string(),
|
|
105
|
+
metadata: z.record(z.string()).optional(),
|
|
94
106
|
}, async (args) => {
|
|
95
107
|
const result = await this.executeIngestFile(args);
|
|
96
108
|
return {
|
|
@@ -98,12 +110,12 @@ Results include score (0 = most relevant, higher = less relevant). Set explain=t
|
|
|
98
110
|
};
|
|
99
111
|
});
|
|
100
112
|
// ingest_data tool
|
|
101
|
-
|
|
102
|
-
content:
|
|
103
|
-
metadata:
|
|
104
|
-
source:
|
|
105
|
-
format:
|
|
106
|
-
custom:
|
|
113
|
+
target.tool('ingest_data', 'Ingest content as a string, not from a file. Use for: fetched web pages (format: html), copied text (format: text), or markdown strings (format: markdown). The source identifier enables re-ingestion to update existing content. Optional custom metadata can include author, domain, tags, etc. For files on disk, use ingest_file instead.', {
|
|
114
|
+
content: z.string(),
|
|
115
|
+
metadata: z.object({
|
|
116
|
+
source: z.string(),
|
|
117
|
+
format: z.enum(['text', 'html', 'markdown']),
|
|
118
|
+
custom: z.record(z.string()).optional(),
|
|
107
119
|
}),
|
|
108
120
|
}, async (args) => {
|
|
109
121
|
const result = await this.executeIngestData(args);
|
|
@@ -112,12 +124,12 @@ Results include score (0 = most relevant, higher = less relevant). Set explain=t
|
|
|
112
124
|
};
|
|
113
125
|
});
|
|
114
126
|
// delete_file tool (uses .refine(), so handle validation in handler)
|
|
115
|
-
|
|
116
|
-
filePath:
|
|
117
|
-
source:
|
|
127
|
+
target.tool('delete_file', 'Delete a previously ingested file or data from the vector database. Use filePath for files ingested via ingest_file, or source for data ingested via ingest_data. Either filePath or source must be provided.', {
|
|
128
|
+
filePath: z.string().optional(),
|
|
129
|
+
source: z.string().optional(),
|
|
118
130
|
}, async (args) => {
|
|
119
131
|
// Validate with refinement separately
|
|
120
|
-
const parsed =
|
|
132
|
+
const parsed = DeleteFileSchema.safeParse(args);
|
|
121
133
|
if (!parsed.success) {
|
|
122
134
|
throw new Error(`Invalid arguments: ${parsed.error.message}`);
|
|
123
135
|
}
|
|
@@ -127,25 +139,25 @@ Results include score (0 = most relevant, higher = less relevant). Set explain=t
|
|
|
127
139
|
};
|
|
128
140
|
});
|
|
129
141
|
// list_files tool
|
|
130
|
-
|
|
142
|
+
target.tool('list_files', 'List all ingested files in the vector database. Returns file paths and chunk counts for each document.', {}, async () => {
|
|
131
143
|
const files = await this.executeListFiles();
|
|
132
144
|
return {
|
|
133
145
|
content: [{ type: 'text', text: JSON.stringify(files, null, 2) }],
|
|
134
146
|
};
|
|
135
147
|
});
|
|
136
148
|
// status tool
|
|
137
|
-
|
|
149
|
+
target.tool('status', 'Get system status including total documents, total chunks, database size, and configuration information.', {}, async () => {
|
|
138
150
|
const status = await this.executeStatus();
|
|
139
151
|
return {
|
|
140
152
|
content: [{ type: 'text', text: JSON.stringify(status, null, 2) }],
|
|
141
153
|
};
|
|
142
154
|
});
|
|
143
155
|
// feedback_pin tool
|
|
144
|
-
|
|
145
|
-
sourceQuery:
|
|
146
|
-
targetFilePath:
|
|
147
|
-
targetChunkIndex:
|
|
148
|
-
targetFingerprint:
|
|
156
|
+
target.tool('feedback_pin', 'Pin a search result as relevant for a query. Pinned results will be boosted in future searches. Use when a result was particularly helpful.', {
|
|
157
|
+
sourceQuery: z.string().describe('The query that returned this result'),
|
|
158
|
+
targetFilePath: z.string().describe('File path of the result to pin'),
|
|
159
|
+
targetChunkIndex: z.number().describe('Chunk index of the result to pin'),
|
|
160
|
+
targetFingerprint: z
|
|
149
161
|
.string()
|
|
150
162
|
.optional()
|
|
151
163
|
.describe('Optional fingerprint for resilient matching'),
|
|
@@ -161,7 +173,7 @@ Results include score (0 = most relevant, higher = less relevant). Set explain=t
|
|
|
161
173
|
content: [
|
|
162
174
|
{
|
|
163
175
|
type: 'text',
|
|
164
|
-
text: JSON.stringify({ error:
|
|
176
|
+
text: JSON.stringify({ error: getErrorMessage(error) }),
|
|
165
177
|
},
|
|
166
178
|
],
|
|
167
179
|
isError: true,
|
|
@@ -169,11 +181,11 @@ Results include score (0 = most relevant, higher = less relevant). Set explain=t
|
|
|
169
181
|
}
|
|
170
182
|
});
|
|
171
183
|
// feedback_dismiss tool
|
|
172
|
-
|
|
173
|
-
sourceQuery:
|
|
174
|
-
targetFilePath:
|
|
175
|
-
targetChunkIndex:
|
|
176
|
-
targetFingerprint:
|
|
184
|
+
target.tool('feedback_dismiss', 'Dismiss a search result as irrelevant for a query. Dismissed results will be penalized in future searches. Use when a result was unhelpful.', {
|
|
185
|
+
sourceQuery: z.string().describe('The query that returned this result'),
|
|
186
|
+
targetFilePath: z.string().describe('File path of the result to dismiss'),
|
|
187
|
+
targetChunkIndex: z.number().describe('Chunk index of the result to dismiss'),
|
|
188
|
+
targetFingerprint: z
|
|
177
189
|
.string()
|
|
178
190
|
.optional()
|
|
179
191
|
.describe('Optional fingerprint for resilient matching'),
|
|
@@ -189,7 +201,7 @@ Results include score (0 = most relevant, higher = less relevant). Set explain=t
|
|
|
189
201
|
content: [
|
|
190
202
|
{
|
|
191
203
|
type: 'text',
|
|
192
|
-
text: JSON.stringify({ error:
|
|
204
|
+
text: JSON.stringify({ error: getErrorMessage(error) }),
|
|
193
205
|
},
|
|
194
206
|
],
|
|
195
207
|
isError: true,
|
|
@@ -197,7 +209,7 @@ Results include score (0 = most relevant, higher = less relevant). Set explain=t
|
|
|
197
209
|
}
|
|
198
210
|
});
|
|
199
211
|
// feedback_stats tool
|
|
200
|
-
|
|
212
|
+
target.tool('feedback_stats', 'Get feedback statistics including total events, pinned pairs, and dismissed pairs.', {}, async () => {
|
|
201
213
|
try {
|
|
202
214
|
const stats = this.executeFeedbackStats();
|
|
203
215
|
return {
|
|
@@ -209,7 +221,7 @@ Results include score (0 = most relevant, higher = less relevant). Set explain=t
|
|
|
209
221
|
content: [
|
|
210
222
|
{
|
|
211
223
|
type: 'text',
|
|
212
|
-
text: JSON.stringify({ error:
|
|
224
|
+
text: JSON.stringify({ error: getErrorMessage(error) }),
|
|
213
225
|
},
|
|
214
226
|
],
|
|
215
227
|
isError: true,
|
|
@@ -266,8 +278,8 @@ Results include score (0 = most relevant, higher = less relevant). Set explain=t
|
|
|
266
278
|
*/
|
|
267
279
|
async executeQueryDocuments(args) {
|
|
268
280
|
// Parse query for advanced syntax
|
|
269
|
-
const parsed =
|
|
270
|
-
const semanticQuery =
|
|
281
|
+
const parsed = parseQuery(args.query);
|
|
282
|
+
const semanticQuery = toSemanticQuery(parsed);
|
|
271
283
|
// Generate query embedding from semantic terms
|
|
272
284
|
const queryVector = await this.embedder.embed(semanticQuery || args.query);
|
|
273
285
|
// Request extra results to account for post-filtering (capped at 20)
|
|
@@ -277,7 +289,7 @@ Results include score (0 = most relevant, higher = less relevant). Set explain=t
|
|
|
277
289
|
// Hybrid search (vector + BM25 keyword matching)
|
|
278
290
|
let searchResults = await this.vectorStore.search(queryVector, args.query, requestLimit);
|
|
279
291
|
// Apply flywheel reranking based on user feedback
|
|
280
|
-
const feedbackStore =
|
|
292
|
+
const feedbackStore = getFeedbackStore();
|
|
281
293
|
const sourceRef = {
|
|
282
294
|
filePath: '__query__',
|
|
283
295
|
chunkIndex: 0,
|
|
@@ -288,11 +300,11 @@ Results include score (0 = most relevant, higher = less relevant). Set explain=t
|
|
|
288
300
|
if (parsed.excludeTerms.length > 0 || parsed.filters.length > 0) {
|
|
289
301
|
searchResults = searchResults.filter((result) => {
|
|
290
302
|
// Exclude results containing excluded terms
|
|
291
|
-
if (
|
|
303
|
+
if (shouldExclude(result.text, parsed.excludeTerms)) {
|
|
292
304
|
return false;
|
|
293
305
|
}
|
|
294
306
|
// Filter by metadata if filters specified (only if custom metadata exists)
|
|
295
|
-
if (parsed.filters.length > 0 && !
|
|
307
|
+
if (parsed.filters.length > 0 && !matchesFilters(result.metadata?.custom, parsed.filters)) {
|
|
296
308
|
return false;
|
|
297
309
|
}
|
|
298
310
|
return true;
|
|
@@ -309,8 +321,8 @@ Results include score (0 = most relevant, higher = less relevant). Set explain=t
|
|
|
309
321
|
score: result.score,
|
|
310
322
|
};
|
|
311
323
|
// Restore source for raw-data files (ingested via ingest_data)
|
|
312
|
-
if (
|
|
313
|
-
const source =
|
|
324
|
+
if (isManagedRawDataPath(this.dbPath, result.filePath)) {
|
|
325
|
+
const source = extractSourceFromPath(result.filePath);
|
|
314
326
|
if (source) {
|
|
315
327
|
queryResult.source = source;
|
|
316
328
|
}
|
|
@@ -321,7 +333,7 @@ Results include score (0 = most relevant, higher = less relevant). Set explain=t
|
|
|
321
333
|
}
|
|
322
334
|
// Add explanation if requested
|
|
323
335
|
if (args.explain) {
|
|
324
|
-
const explanation =
|
|
336
|
+
const explanation = explainChunkSimilarity(args.query, result.text, false, // Not same document (query vs result)
|
|
325
337
|
result.score);
|
|
326
338
|
queryResult.explanation = explanation;
|
|
327
339
|
}
|
|
@@ -357,9 +369,9 @@ Results include score (0 = most relevant, higher = less relevant). Set explain=t
|
|
|
357
369
|
// since the path is internally generated and content is already processed
|
|
358
370
|
const isPdf = args.filePath.toLowerCase().endsWith('.pdf');
|
|
359
371
|
let text;
|
|
360
|
-
if (
|
|
372
|
+
if (isManagedRawDataPath(this.dbPath, args.filePath)) {
|
|
361
373
|
// Raw-data files: skip validation, read directly
|
|
362
|
-
text = await
|
|
374
|
+
text = await readFile(args.filePath, 'utf-8');
|
|
363
375
|
console.error(`Read raw-data file: ${args.filePath} (${text.length} characters)`);
|
|
364
376
|
}
|
|
365
377
|
else if (isPdf) {
|
|
@@ -403,7 +415,7 @@ Results include score (0 = most relevant, higher = less relevant). Set explain=t
|
|
|
403
415
|
throw new Error(`Missing embedding for chunk ${index}`);
|
|
404
416
|
}
|
|
405
417
|
return {
|
|
406
|
-
id:
|
|
418
|
+
id: randomUUID(),
|
|
407
419
|
filePath: args.filePath,
|
|
408
420
|
chunkIndex: chunk.index,
|
|
409
421
|
text: chunk.text,
|
|
@@ -454,7 +466,7 @@ Results include score (0 = most relevant, higher = less relevant). Set explain=t
|
|
|
454
466
|
};
|
|
455
467
|
}
|
|
456
468
|
catch (error) {
|
|
457
|
-
const errorMessage =
|
|
469
|
+
const errorMessage = getErrorMessage(error);
|
|
458
470
|
console.error('Failed to ingest file:', errorMessage);
|
|
459
471
|
throw new Error(`Failed to ingest file: ${errorMessage}`);
|
|
460
472
|
}
|
|
@@ -468,7 +480,7 @@ Results include score (0 = most relevant, higher = less relevant). Set explain=t
|
|
|
468
480
|
// For HTML content, convert to Markdown first
|
|
469
481
|
if (args.metadata.format === 'html') {
|
|
470
482
|
console.error(`Parsing HTML from: ${args.metadata.source}`);
|
|
471
|
-
const markdown = await
|
|
483
|
+
const markdown = await parseHtml(args.content, args.metadata.source);
|
|
472
484
|
if (!markdown.trim()) {
|
|
473
485
|
throw new Error('Failed to extract content from HTML. The page may have no readable content.');
|
|
474
486
|
}
|
|
@@ -477,7 +489,7 @@ Results include score (0 = most relevant, higher = less relevant). Set explain=t
|
|
|
477
489
|
console.error(`Converted HTML to Markdown: ${markdown.length} characters`);
|
|
478
490
|
}
|
|
479
491
|
// Save content to raw-data directory
|
|
480
|
-
const rawDataPath = await
|
|
492
|
+
const rawDataPath = await saveRawData(this.dbPath, args.metadata.source, contentToSave, formatToSave);
|
|
481
493
|
console.error(`Saved raw data: ${args.metadata.source} -> ${rawDataPath}`);
|
|
482
494
|
// Call executeIngestFile internally with rollback on failure
|
|
483
495
|
try {
|
|
@@ -489,7 +501,7 @@ Results include score (0 = most relevant, higher = less relevant). Set explain=t
|
|
|
489
501
|
catch (ingestError) {
|
|
490
502
|
// Rollback: delete the raw-data file if ingest fails
|
|
491
503
|
try {
|
|
492
|
-
await
|
|
504
|
+
await unlink(rawDataPath);
|
|
493
505
|
console.error(`Rolled back raw-data file: ${rawDataPath}`);
|
|
494
506
|
}
|
|
495
507
|
catch {
|
|
@@ -514,7 +526,7 @@ Results include score (0 = most relevant, higher = less relevant). Set explain=t
|
|
|
514
526
|
};
|
|
515
527
|
}
|
|
516
528
|
catch (error) {
|
|
517
|
-
const errorMessage =
|
|
529
|
+
const errorMessage = getErrorMessage(error);
|
|
518
530
|
console.error('Failed to ingest data:', errorMessage);
|
|
519
531
|
throw new Error(`Failed to ingest data: ${errorMessage}`);
|
|
520
532
|
}
|
|
@@ -526,8 +538,8 @@ Results include score (0 = most relevant, higher = less relevant). Set explain=t
|
|
|
526
538
|
const files = await this.vectorStore.listFiles();
|
|
527
539
|
// Enrich raw-data files with source information
|
|
528
540
|
return files.map((file) => {
|
|
529
|
-
if (
|
|
530
|
-
const source =
|
|
541
|
+
if (isManagedRawDataPath(this.dbPath, file.filePath)) {
|
|
542
|
+
const source = extractSourceFromPath(file.filePath);
|
|
531
543
|
if (source) {
|
|
532
544
|
return { ...file, source };
|
|
533
545
|
}
|
|
@@ -585,7 +597,7 @@ Results include score (0 = most relevant, higher = less relevant). Set explain=t
|
|
|
585
597
|
* Execute feedback_pin logic
|
|
586
598
|
*/
|
|
587
599
|
executeFeedbackPin(args) {
|
|
588
|
-
const feedbackStore =
|
|
600
|
+
const feedbackStore = getFeedbackStore();
|
|
589
601
|
// Create source reference from query (using query text as fingerprint)
|
|
590
602
|
const sourceRef = {
|
|
591
603
|
filePath: '__query__',
|
|
@@ -613,7 +625,7 @@ Results include score (0 = most relevant, higher = less relevant). Set explain=t
|
|
|
613
625
|
* Execute feedback_dismiss logic
|
|
614
626
|
*/
|
|
615
627
|
executeFeedbackDismiss(args) {
|
|
616
|
-
const feedbackStore =
|
|
628
|
+
const feedbackStore = getFeedbackStore();
|
|
617
629
|
// Create source reference from query (using query text as fingerprint)
|
|
618
630
|
const sourceRef = {
|
|
619
631
|
filePath: '__query__',
|
|
@@ -641,7 +653,7 @@ Results include score (0 = most relevant, higher = less relevant). Set explain=t
|
|
|
641
653
|
* Execute feedback_stats logic
|
|
642
654
|
*/
|
|
643
655
|
executeFeedbackStats() {
|
|
644
|
-
const feedbackStore =
|
|
656
|
+
const feedbackStore = getFeedbackStore();
|
|
645
657
|
return feedbackStore.getStats();
|
|
646
658
|
}
|
|
647
659
|
/**
|
|
@@ -653,7 +665,7 @@ Results include score (0 = most relevant, higher = less relevant). Set explain=t
|
|
|
653
665
|
if (args.source) {
|
|
654
666
|
// Generate raw-data path from source (extension is always .md)
|
|
655
667
|
// Internal path generation is secure, skip baseDir validation
|
|
656
|
-
targetPath =
|
|
668
|
+
targetPath = generateRawDataPath(this.dbPath, args.source, 'markdown');
|
|
657
669
|
skipValidation = true;
|
|
658
670
|
}
|
|
659
671
|
else if (args.filePath) {
|
|
@@ -669,9 +681,9 @@ Results include score (0 = most relevant, higher = less relevant). Set explain=t
|
|
|
669
681
|
// Delete chunks from vector database
|
|
670
682
|
await this.vectorStore.deleteChunks(targetPath);
|
|
671
683
|
// Also delete physical raw-data file if applicable
|
|
672
|
-
if (
|
|
684
|
+
if (isManagedRawDataPath(this.dbPath, targetPath)) {
|
|
673
685
|
try {
|
|
674
|
-
await
|
|
686
|
+
await unlink(targetPath);
|
|
675
687
|
console.error(`Deleted raw-data file: ${targetPath}`);
|
|
676
688
|
}
|
|
677
689
|
catch {
|
|
@@ -701,7 +713,7 @@ Results include score (0 = most relevant, higher = less relevant). Set explain=t
|
|
|
701
713
|
};
|
|
702
714
|
}
|
|
703
715
|
catch (error) {
|
|
704
|
-
const errorMessage =
|
|
716
|
+
const errorMessage = getErrorMessage(error);
|
|
705
717
|
console.error('Failed to delete file:', errorMessage);
|
|
706
718
|
throw new Error(`Failed to delete file: ${errorMessage}`);
|
|
707
719
|
}
|
|
@@ -714,8 +726,8 @@ Results include score (0 = most relevant, higher = less relevant). Set explain=t
|
|
|
714
726
|
const chunks = await this.vectorStore.getDocumentChunks(filePath);
|
|
715
727
|
// Enrich with source information for raw-data files
|
|
716
728
|
const enrichedChunks = chunks.map((chunk) => {
|
|
717
|
-
if (
|
|
718
|
-
const source =
|
|
729
|
+
if (isManagedRawDataPath(this.dbPath, chunk.filePath)) {
|
|
730
|
+
const source = extractSourceFromPath(chunk.filePath);
|
|
719
731
|
if (source) {
|
|
720
732
|
return { ...chunk, source };
|
|
721
733
|
}
|
|
@@ -732,7 +744,7 @@ Results include score (0 = most relevant, higher = less relevant). Set explain=t
|
|
|
732
744
|
};
|
|
733
745
|
}
|
|
734
746
|
catch (error) {
|
|
735
|
-
const errorMessage =
|
|
747
|
+
const errorMessage = getErrorMessage(error);
|
|
736
748
|
console.error('Failed to get document chunks:', errorMessage);
|
|
737
749
|
throw new Error(`Failed to get document chunks: ${errorMessage}`);
|
|
738
750
|
}
|
|
@@ -745,8 +757,8 @@ Results include score (0 = most relevant, higher = less relevant). Set explain=t
|
|
|
745
757
|
const relatedChunks = await this.vectorStore.findRelatedChunks(filePath, chunkIndex, limit ?? 5, excludeSameDocument ?? true);
|
|
746
758
|
// Enrich with source information for raw-data files
|
|
747
759
|
const enrichedChunks = relatedChunks.map((chunk) => {
|
|
748
|
-
if (
|
|
749
|
-
const source =
|
|
760
|
+
if (isManagedRawDataPath(this.dbPath, chunk.filePath)) {
|
|
761
|
+
const source = extractSourceFromPath(chunk.filePath);
|
|
750
762
|
if (source) {
|
|
751
763
|
return { ...chunk, source };
|
|
752
764
|
}
|
|
@@ -763,7 +775,7 @@ Results include score (0 = most relevant, higher = less relevant). Set explain=t
|
|
|
763
775
|
};
|
|
764
776
|
}
|
|
765
777
|
catch (error) {
|
|
766
|
-
const errorMessage =
|
|
778
|
+
const errorMessage = getErrorMessage(error);
|
|
767
779
|
console.error('Failed to find related chunks:', errorMessage);
|
|
768
780
|
throw new Error(`Failed to find related chunks: ${errorMessage}`);
|
|
769
781
|
}
|
|
@@ -781,8 +793,8 @@ Results include score (0 = most relevant, higher = less relevant). Set explain=t
|
|
|
781
793
|
);
|
|
782
794
|
// Enrich with source information
|
|
783
795
|
results[key] = relatedChunks.map((related) => {
|
|
784
|
-
if (
|
|
785
|
-
const source =
|
|
796
|
+
if (isManagedRawDataPath(this.dbPath, related.filePath)) {
|
|
797
|
+
const source = extractSourceFromPath(related.filePath);
|
|
786
798
|
if (source) {
|
|
787
799
|
return { ...related, source };
|
|
788
800
|
}
|
|
@@ -800,7 +812,7 @@ Results include score (0 = most relevant, higher = less relevant). Set explain=t
|
|
|
800
812
|
};
|
|
801
813
|
}
|
|
802
814
|
catch (error) {
|
|
803
|
-
const errorMessage =
|
|
815
|
+
const errorMessage = getErrorMessage(error);
|
|
804
816
|
console.error('Failed to batch find related chunks:', errorMessage);
|
|
805
817
|
throw new Error(`Failed to batch find related chunks: ${errorMessage}`);
|
|
806
818
|
}
|
|
@@ -809,10 +821,9 @@ Results include score (0 = most relevant, higher = less relevant). Set explain=t
|
|
|
809
821
|
* Start the server
|
|
810
822
|
*/
|
|
811
823
|
async run() {
|
|
812
|
-
const transport = new
|
|
824
|
+
const transport = new StdioServerTransport();
|
|
813
825
|
await this.server.connect(transport);
|
|
814
826
|
console.error('RAGServer running on stdio transport');
|
|
815
827
|
}
|
|
816
828
|
}
|
|
817
|
-
exports.RAGServer = RAGServer;
|
|
818
829
|
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/server/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"raw-data-utils.d.ts","sourceRoot":"","sources":["../../src/server/raw-data-utils.ts"],"names":[],"mappings":"AAUA;;;;;;;;GAQG;AACH,wBAAgB,eAAe,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAMnD;AAED;;;;;GAKG;AACH,wBAAgB,eAAe,CAAC,SAAS,EAAE,MAAM,GAAG,MAAM,CAUzD;AAcD;;;;;GAKG;AACH,wBAAgB,sBAAsB,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI,CAe3D;AAED;;;;;;;GAOG;AACH,wBAAgB,eAAe,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,CAgBtD;AAMD;;GAEG;AACH,MAAM,MAAM,aAAa,GAAG,MAAM,GAAG,MAAM,GAAG,UAAU,CAAA;AAMxD;;;;;GAKG;AACH,wBAAgB,aAAa,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,CAEpD;AAED;;;;;;;;GAQG;AACH,wBAAgB,mBAAmB,CACjC,MAAM,EAAE,MAAM,EACd,MAAM,EAAE,MAAM,EACd,OAAO,EAAE,aAAa,GACrB,MAAM,CAMR;AAMD;;;;;;;;;GASG;AACH,wBAAsB,WAAW,CAC/B,MAAM,EAAE,MAAM,EACd,MAAM,EAAE,MAAM,EACd,OAAO,EAAE,MAAM,EACf,MAAM,EAAE,aAAa,GACpB,OAAO,CAAC,MAAM,CAAC,CAUjB;AAUD;;;;;GAKG;AACH,wBAAgB,aAAa,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAEvD;AAED;;;;;;;GAOG;AACH,wBAAgB,oBAAoB,CAAC,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,OAAO,CAK9E;AAED;;;;;;GAMG;AACH,wBAAgB,qBAAqB,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAuBrE"}
|