@robthepcguy/rag-vault 1.5.2 → 1.6.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 (141) hide show
  1. package/README.md +86 -14
  2. package/dist/bin/install-skills.d.ts.map +1 -0
  3. package/dist/bin/install-skills.js +16 -17
  4. package/dist/bin/install-skills.js.map +1 -0
  5. package/dist/chunker/index.d.ts.map +1 -0
  6. package/dist/chunker/index.js +1 -5
  7. package/dist/chunker/index.js.map +1 -0
  8. package/dist/chunker/semantic-chunker.d.ts.map +1 -0
  9. package/dist/chunker/semantic-chunker.js +9 -13
  10. package/dist/chunker/semantic-chunker.js.map +1 -0
  11. package/dist/chunker/sentence-splitter.d.ts.map +1 -0
  12. package/dist/chunker/sentence-splitter.js +1 -4
  13. package/dist/chunker/sentence-splitter.js.map +1 -0
  14. package/dist/embedder/index.d.ts +10 -0
  15. package/dist/embedder/index.d.ts.map +1 -0
  16. package/dist/embedder/index.js +58 -32
  17. package/dist/embedder/index.js.map +1 -0
  18. package/dist/errors/index.d.ts.map +1 -0
  19. package/dist/errors/index.js +10 -17
  20. package/dist/errors/index.js.map +1 -0
  21. package/dist/explainability/index.d.ts.map +1 -0
  22. package/dist/explainability/index.js +1 -5
  23. package/dist/explainability/index.js.map +1 -0
  24. package/dist/explainability/keywords.d.ts.map +1 -0
  25. package/dist/explainability/keywords.js +1 -4
  26. package/dist/explainability/keywords.js.map +1 -0
  27. package/dist/flywheel/feedback.d.ts.map +1 -0
  28. package/dist/flywheel/feedback.js +15 -19
  29. package/dist/flywheel/feedback.js.map +1 -0
  30. package/dist/flywheel/index.d.ts.map +1 -0
  31. package/dist/flywheel/index.js +1 -5
  32. package/dist/flywheel/index.js.map +1 -0
  33. package/dist/index.d.ts.map +1 -0
  34. package/dist/index.js +86 -64
  35. package/dist/index.js.map +1 -0
  36. package/dist/parser/html-parser.d.ts.map +1 -0
  37. package/dist/parser/html-parser.js +7 -13
  38. package/dist/parser/html-parser.js.map +1 -0
  39. package/dist/parser/index.d.ts.map +1 -0
  40. package/dist/parser/index.js +44 -52
  41. package/dist/parser/index.js.map +1 -0
  42. package/dist/parser/pdf-filter.d.ts.map +1 -0
  43. package/dist/parser/pdf-filter.js +10 -16
  44. package/dist/parser/pdf-filter.js.map +1 -0
  45. package/dist/query/index.d.ts.map +1 -0
  46. package/dist/query/index.js +1 -8
  47. package/dist/query/index.js.map +1 -0
  48. package/dist/query/parser.d.ts.map +1 -0
  49. package/dist/query/parser.js +5 -12
  50. package/dist/query/parser.js.map +1 -0
  51. package/dist/server/index.d.ts +6 -0
  52. package/dist/server/index.d.ts.map +1 -0
  53. package/dist/server/index.js +106 -95
  54. package/dist/server/index.js.map +1 -0
  55. package/dist/server/raw-data-utils.d.ts.map +1 -0
  56. package/dist/server/raw-data-utils.js +21 -33
  57. package/dist/server/raw-data-utils.js.map +1 -0
  58. package/dist/server/remote-transport.d.ts +31 -0
  59. package/dist/server/remote-transport.d.ts.map +1 -0
  60. package/dist/server/remote-transport.js +177 -0
  61. package/dist/server/remote-transport.js.map +1 -0
  62. package/dist/server/schemas.d.ts.map +1 -0
  63. package/dist/server/schemas.js +35 -38
  64. package/dist/server/schemas.js.map +1 -0
  65. package/dist/utils/config-parsers.d.ts.map +1 -0
  66. package/dist/utils/config-parsers.js +3 -8
  67. package/dist/utils/config-parsers.js.map +1 -0
  68. package/dist/utils/config.d.ts.map +1 -0
  69. package/dist/utils/config.js +12 -19
  70. package/dist/utils/config.js.map +1 -0
  71. package/dist/utils/embedding-device-cli.d.ts +12 -0
  72. package/dist/utils/embedding-device-cli.d.ts.map +1 -0
  73. package/dist/utils/embedding-device-cli.js +61 -0
  74. package/dist/utils/embedding-device-cli.js.map +1 -0
  75. package/dist/utils/file-utils.d.ts.map +1 -0
  76. package/dist/utils/file-utils.js +12 -18
  77. package/dist/utils/file-utils.js.map +1 -0
  78. package/dist/utils/math.d.ts.map +1 -0
  79. package/dist/utils/math.js +2 -6
  80. package/dist/utils/math.js.map +1 -0
  81. package/dist/utils/process-handlers.d.ts.map +1 -0
  82. package/dist/utils/process-handlers.js +5 -10
  83. package/dist/utils/process-handlers.js.map +1 -0
  84. package/dist/vectordb/index.d.ts.map +1 -0
  85. package/dist/vectordb/index.js +39 -45
  86. package/dist/vectordb/index.js.map +1 -0
  87. package/dist/web/api-routes.d.ts.map +1 -0
  88. package/dist/web/api-routes.js +41 -47
  89. package/dist/web/api-routes.js.map +1 -0
  90. package/dist/web/config-routes.d.ts.map +1 -0
  91. package/dist/web/config-routes.js +30 -33
  92. package/dist/web/config-routes.js.map +1 -0
  93. package/dist/web/database-manager.d.ts.map +1 -0
  94. package/dist/web/database-manager.js +67 -72
  95. package/dist/web/database-manager.js.map +1 -0
  96. package/dist/web/http-server.d.ts.map +1 -0
  97. package/dist/web/http-server.js +56 -89
  98. package/dist/web/http-server.js.map +1 -0
  99. package/dist/web/index.d.ts.map +1 -0
  100. package/dist/web/index.js +31 -59
  101. package/dist/web/index.js.map +1 -0
  102. package/dist/web/middleware/async-handler.d.ts.map +1 -0
  103. package/dist/web/middleware/async-handler.js +1 -4
  104. package/dist/web/middleware/async-handler.js.map +1 -0
  105. package/dist/web/middleware/auth.d.ts.map +1 -0
  106. package/dist/web/middleware/auth.js +3 -6
  107. package/dist/web/middleware/auth.js.map +1 -0
  108. package/dist/web/middleware/error-handler.d.ts.map +1 -0
  109. package/dist/web/middleware/error-handler.js +4 -8
  110. package/dist/web/middleware/error-handler.js.map +1 -0
  111. package/dist/web/middleware/index.d.ts.map +1 -0
  112. package/dist/web/middleware/index.js +5 -17
  113. package/dist/web/middleware/index.js.map +1 -0
  114. package/dist/web/middleware/rate-limit.d.ts.map +1 -0
  115. package/dist/web/middleware/rate-limit.js +3 -8
  116. package/dist/web/middleware/rate-limit.js.map +1 -0
  117. package/dist/web/middleware/request-logger.d.ts.map +1 -0
  118. package/dist/web/middleware/request-logger.js +2 -6
  119. package/dist/web/middleware/request-logger.js.map +1 -0
  120. package/dist/web/types.d.ts.map +1 -0
  121. package/dist/web/types.js +1 -2
  122. package/dist/web/types.js.map +1 -0
  123. package/package.json +31 -35
  124. package/web-ui/dist/assets/CollectionsPage-BDmEfv3V.js +1 -0
  125. package/web-ui/dist/assets/FilesPage-pG9HmpgQ.js +1 -0
  126. package/web-ui/dist/assets/ReaderPage-CwMN03NU.js +28 -0
  127. package/web-ui/dist/assets/ReaderSettingsContext-CkSjqsRh.js +1 -0
  128. package/web-ui/dist/assets/SearchPage-DAltjnLL.js +1 -0
  129. package/web-ui/dist/assets/SettingsPage-C6J5BITP.js +1 -0
  130. package/web-ui/dist/assets/StatusPage-powRGmW3.js +1 -0
  131. package/web-ui/dist/assets/UploadPage-eyfSjL4u.js +8 -0
  132. package/web-ui/dist/assets/format-DOJ3IkRX.js +1 -0
  133. package/web-ui/dist/assets/index-BpwaiuGL.css +1 -0
  134. package/web-ui/dist/assets/index-D068MV_o.js +6 -0
  135. package/web-ui/dist/assets/link-indexer.worker-DGXNsXmZ.js +1 -0
  136. package/web-ui/dist/assets/motion-CKwJwI3J.js +9 -0
  137. package/web-ui/dist/assets/query-DPt-uCb6.js +1 -0
  138. package/web-ui/dist/assets/vendor-C2QPsZ3S.js +10 -0
  139. package/web-ui/dist/index.html +7 -2
  140. package/web-ui/dist/assets/index-SBHxoAwi.js +0 -120
  141. package/web-ui/dist/assets/index-ej8i4PGl.css +0 -1
@@ -1,23 +1,20 @@
1
- "use strict";
2
1
  // RAGServer implementation with MCP tools
3
- Object.defineProperty(exports, "__esModule", { value: true });
4
- exports.RAGServer = void 0;
5
- const node_crypto_1 = require("node:crypto");
6
- const promises_1 = require("node:fs/promises");
7
- const mcp_js_1 = require("@modelcontextprotocol/sdk/server/mcp.js");
8
- const stdio_js_1 = require("@modelcontextprotocol/sdk/server/stdio.js");
9
- const zod_1 = require("zod");
10
- const index_js_1 = require("../chunker/index.js");
11
- const index_js_2 = require("../embedder/index.js");
12
- const index_js_3 = require("../errors/index.js");
13
- const keywords_js_1 = require("../explainability/keywords.js");
14
- const feedback_js_1 = require("../flywheel/feedback.js");
15
- const html_parser_js_1 = require("../parser/html-parser.js");
16
- const index_js_4 = require("../parser/index.js");
17
- const index_js_5 = require("../query/index.js");
18
- const index_js_6 = require("../vectordb/index.js");
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 mcp_js_1.McpServer({
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 index_js_6.VectorStore(vectorStoreConfig);
56
- this.embedder = new index_js_2.Embedder({
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 index_js_1.SemanticChunker();
62
- this.parser = new index_js_4.DocumentParser({
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
- this.server.tool('query_documents', `Search ingested documents using hybrid semantic + keyword search. Advanced syntax supported:
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: zod_1.z.string(),
82
- limit: zod_1.z.number().optional(),
83
- explain: zod_1.z.boolean().optional(),
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
- this.server.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.', {
92
- filePath: zod_1.z.string(),
93
- metadata: zod_1.z.record(zod_1.z.string()).optional(),
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
- this.server.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.', {
102
- content: zod_1.z.string(),
103
- metadata: zod_1.z.object({
104
- source: zod_1.z.string(),
105
- format: zod_1.z.enum(['text', 'html', 'markdown']),
106
- custom: zod_1.z.record(zod_1.z.string()).optional(),
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
- this.server.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.', {
116
- filePath: zod_1.z.string().optional(),
117
- source: zod_1.z.string().optional(),
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 = schemas_js_1.DeleteFileSchema.safeParse(args);
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
- this.server.tool('list_files', 'List all ingested files in the vector database. Returns file paths and chunk counts for each document.', {}, async () => {
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
- this.server.tool('status', 'Get system status including total documents, total chunks, database size, and configuration information.', {}, async () => {
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
- this.server.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.', {
145
- sourceQuery: zod_1.z.string().describe('The query that returned this result'),
146
- targetFilePath: zod_1.z.string().describe('File path of the result to pin'),
147
- targetChunkIndex: zod_1.z.number().describe('Chunk index of the result to pin'),
148
- targetFingerprint: zod_1.z
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: (0, index_js_3.getErrorMessage)(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
- this.server.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.', {
173
- sourceQuery: zod_1.z.string().describe('The query that returned this result'),
174
- targetFilePath: zod_1.z.string().describe('File path of the result to dismiss'),
175
- targetChunkIndex: zod_1.z.number().describe('Chunk index of the result to dismiss'),
176
- targetFingerprint: zod_1.z
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: (0, index_js_3.getErrorMessage)(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
- this.server.tool('feedback_stats', 'Get feedback statistics including total events, pinned pairs, and dismissed pairs.', {}, async () => {
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: (0, index_js_3.getErrorMessage)(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 = (0, index_js_5.parseQuery)(args.query);
270
- const semanticQuery = (0, index_js_5.toSemanticQuery)(parsed);
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 = (0, feedback_js_1.getFeedbackStore)();
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 ((0, index_js_5.shouldExclude)(result.text, parsed.excludeTerms)) {
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 && !(0, index_js_5.matchesFilters)(result.metadata?.custom, parsed.filters)) {
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 ((0, raw_data_utils_js_1.isManagedRawDataPath)(this.dbPath, result.filePath)) {
313
- const source = (0, raw_data_utils_js_1.extractSourceFromPath)(result.filePath);
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 = (0, keywords_js_1.explainChunkSimilarity)(args.query, result.text, false, // Not same document (query vs result)
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 ((0, raw_data_utils_js_1.isManagedRawDataPath)(this.dbPath, args.filePath)) {
372
+ if (isManagedRawDataPath(this.dbPath, args.filePath)) {
361
373
  // Raw-data files: skip validation, read directly
362
- text = await (0, promises_1.readFile)(args.filePath, 'utf-8');
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: (0, node_crypto_1.randomUUID)(),
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 = (0, index_js_3.getErrorMessage)(error);
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 (0, html_parser_js_1.parseHtml)(args.content, args.metadata.source);
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 (0, raw_data_utils_js_1.saveRawData)(this.dbPath, args.metadata.source, contentToSave, formatToSave);
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 (0, promises_1.unlink)(rawDataPath);
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 = (0, index_js_3.getErrorMessage)(error);
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 ((0, raw_data_utils_js_1.isManagedRawDataPath)(this.dbPath, file.filePath)) {
530
- const source = (0, raw_data_utils_js_1.extractSourceFromPath)(file.filePath);
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 = (0, feedback_js_1.getFeedbackStore)();
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 = (0, feedback_js_1.getFeedbackStore)();
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 = (0, feedback_js_1.getFeedbackStore)();
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 = (0, raw_data_utils_js_1.generateRawDataPath)(this.dbPath, args.source, 'markdown');
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 ((0, raw_data_utils_js_1.isManagedRawDataPath)(this.dbPath, targetPath)) {
684
+ if (isManagedRawDataPath(this.dbPath, targetPath)) {
673
685
  try {
674
- await (0, promises_1.unlink)(targetPath);
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 = (0, index_js_3.getErrorMessage)(error);
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 ((0, raw_data_utils_js_1.isManagedRawDataPath)(this.dbPath, chunk.filePath)) {
718
- const source = (0, raw_data_utils_js_1.extractSourceFromPath)(chunk.filePath);
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 = (0, index_js_3.getErrorMessage)(error);
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 ((0, raw_data_utils_js_1.isManagedRawDataPath)(this.dbPath, chunk.filePath)) {
749
- const source = (0, raw_data_utils_js_1.extractSourceFromPath)(chunk.filePath);
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 = (0, index_js_3.getErrorMessage)(error);
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 ((0, raw_data_utils_js_1.isManagedRawDataPath)(this.dbPath, related.filePath)) {
785
- const source = (0, raw_data_utils_js_1.extractSourceFromPath)(related.filePath);
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 = (0, index_js_3.getErrorMessage)(error);
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 stdio_js_1.StdioServerTransport();
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"}