@retrivora-ai/rag-engine 0.4.5 → 1.0.1

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 (74) hide show
  1. package/README.md +32 -57
  2. package/dist/{ChromaDBProvider-GI7TB7GJ.mjs → ChromaDBProvider-MIDOR4FW.mjs} +2 -2
  3. package/dist/{DocumentChunker-3yElxTO3.d.mts → DocumentChunker-C-sCZPhi.d.mts} +6 -6
  4. package/dist/{DocumentChunker-3yElxTO3.d.ts → DocumentChunker-C-sCZPhi.d.ts} +6 -6
  5. package/dist/{MilvusProvider-WDVTFB7D.mjs → MilvusProvider-U7SKC27V.mjs} +2 -2
  6. package/dist/{MongoDBProvider-RE3Q5S5B.mjs → MongoDBProvider-Z6ALOVDN.mjs} +2 -2
  7. package/dist/{PineconeProvider-BE2JWSPD.mjs → PineconeProvider-QZNRKTN2.mjs} +2 -2
  8. package/dist/{PostgreSQLProvider-5HHTK4SU.mjs → PostgreSQLProvider-BMOETDZA.mjs} +2 -2
  9. package/dist/{QdrantProvider-XVDVBNIG.mjs → QdrantProvider-YNUNEOZH.mjs} +2 -2
  10. package/dist/{RagConfig-BgRDL9Vy.d.mts → RagConfig-DRJO4hGU.d.mts} +12 -1
  11. package/dist/{RagConfig-BgRDL9Vy.d.ts → RagConfig-DRJO4hGU.d.ts} +12 -1
  12. package/dist/{RedisProvider-EK2R2PQH.mjs → RedisProvider-SR65SCKV.mjs} +2 -2
  13. package/dist/{SimpleGraphProvider-M6T7SE7D.mjs → SimpleGraphProvider-SLOXO4M7.mjs} +1 -1
  14. package/dist/{UniversalVectorProvider-YIDRX6VT.mjs → UniversalVectorProvider-IN67OS56.mjs} +3 -3
  15. package/dist/{WeaviateProvider-4CAPQ7UY.mjs → WeaviateProvider-5FWDFITI.mjs} +2 -2
  16. package/dist/{chunk-5KNBWQM6.mjs → chunk-3DSHW676.mjs} +5 -1
  17. package/dist/{chunk-PRC5CZIZ.mjs → chunk-5W2YWFT3.mjs} +1248 -1361
  18. package/dist/{chunk-H6RKMU7W.mjs → chunk-5YGUXK7Z.mjs} +1 -1
  19. package/dist/{chunk-PQKTC73Y.mjs → chunk-CD6TSNL4.mjs} +67 -6
  20. package/dist/{chunk-RK2UDJA2.mjs → chunk-CFVEZTBJ.mjs} +1 -1
  21. package/dist/{chunk-LJWWPTWE.mjs → chunk-FLOSGE6A.mjs} +76 -14
  22. package/dist/{chunk-GQT5LF4G.mjs → chunk-LR3VMDVK.mjs} +2 -2
  23. package/dist/{chunk-KTS3LLHY.mjs → chunk-M6JSPGAR.mjs} +5 -5
  24. package/dist/{chunk-3QWAK3RZ.mjs → chunk-U55XRW3U.mjs} +6 -2
  25. package/dist/{chunk-XCNXPECE.mjs → chunk-VUQJVIJT.mjs} +55 -1
  26. package/dist/chunk-X4TOT24V.mjs +89 -0
  27. package/dist/{chunk-EDLTMSNY.mjs → chunk-YLTMFW4M.mjs} +1 -1
  28. package/dist/handlers/index.d.mts +2 -2
  29. package/dist/handlers/index.d.ts +2 -2
  30. package/dist/handlers/index.js +1488 -1371
  31. package/dist/handlers/index.mjs +5 -3
  32. package/dist/index-B2mutkgp.d.ts +116 -0
  33. package/dist/index-Bjy0es5a.d.mts +116 -0
  34. package/dist/index.d.mts +17 -11
  35. package/dist/index.d.ts +17 -11
  36. package/dist/index.js +253 -363
  37. package/dist/index.mjs +243 -353
  38. package/dist/server.d.mts +108 -158
  39. package/dist/server.d.ts +108 -158
  40. package/dist/server.js +1452 -1386
  41. package/dist/server.mjs +12 -12
  42. package/package.json +5 -1
  43. package/src/config/RagConfig.ts +7 -0
  44. package/src/core/ConfigValidator.ts +66 -492
  45. package/src/core/LangChainAgent.ts +78 -0
  46. package/src/core/Pipeline.ts +210 -240
  47. package/src/core/ProviderHealthCheck.ts +35 -406
  48. package/src/core/ProviderInterfaces.ts +37 -0
  49. package/src/core/ProviderRegistry.ts +70 -55
  50. package/src/core/QueryProcessor.ts +173 -0
  51. package/src/core/VectorPlugin.ts +7 -0
  52. package/src/handlers/index.ts +45 -0
  53. package/src/llm/ILLMProvider.ts +10 -0
  54. package/src/llm/LLMFactory.ts +33 -13
  55. package/src/llm/providers/AnthropicProvider.ts +55 -15
  56. package/src/llm/providers/GeminiProvider.ts +51 -0
  57. package/src/llm/providers/OllamaProvider.ts +100 -15
  58. package/src/llm/providers/OpenAIProvider.ts +60 -11
  59. package/src/providers/vectordb/BaseVectorProvider.ts +11 -0
  60. package/src/providers/vectordb/MilvusProvider.ts +4 -0
  61. package/src/providers/vectordb/MongoDBProvider.ts +72 -8
  62. package/src/providers/vectordb/PineconeProvider.ts +60 -5
  63. package/src/providers/vectordb/PostgreSQLProvider.ts +84 -14
  64. package/src/providers/vectordb/QdrantProvider.ts +4 -0
  65. package/src/providers/vectordb/WeaviateProvider.ts +8 -4
  66. package/src/rag/DocumentChunker.ts +15 -19
  67. package/src/rag/EntityExtractor.ts +3 -0
  68. package/src/rag/LlamaIndexIngestor.ts +61 -0
  69. package/src/rag/Reranker.ts +20 -0
  70. package/src/server.ts +1 -1
  71. package/src/types/index.ts +9 -0
  72. package/dist/chunk-FWCSY2DS.mjs +0 -37
  73. package/dist/index-7qeLTPBL.d.mts +0 -114
  74. package/dist/index-DowY4_K0.d.ts +0 -114
@@ -3,7 +3,7 @@ import {
3
3
  } from "./chunk-IMP6FUCY.mjs";
4
4
  import {
5
5
  __spreadValues
6
- } from "./chunk-FWCSY2DS.mjs";
6
+ } from "./chunk-X4TOT24V.mjs";
7
7
 
8
8
  // src/providers/vectordb/RedisProvider.ts
9
9
  import axios from "axios";
@@ -3,7 +3,7 @@ import {
3
3
  } from "./chunk-IMP6FUCY.mjs";
4
4
  import {
5
5
  __spreadValues
6
- } from "./chunk-FWCSY2DS.mjs";
6
+ } from "./chunk-X4TOT24V.mjs";
7
7
 
8
8
  // src/providers/vectordb/MongoDBProvider.ts
9
9
  import { MongoClient } from "mongodb";
@@ -21,6 +21,71 @@ var MongoDBProvider = class extends BaseVectorProvider {
21
21
  this.contentKey = opts.contentKey || "content";
22
22
  this.metadataKey = opts.metadataKey || "metadata";
23
23
  }
24
+ static getValidator() {
25
+ return {
26
+ validate(config) {
27
+ const errors = [];
28
+ const opts = config.options || {};
29
+ if (!opts.uri) {
30
+ errors.push({
31
+ field: "vectorDb.options.uri",
32
+ message: "MongoDB connection URI is required",
33
+ suggestion: "Set MONGODB_URI environment variable",
34
+ severity: "error"
35
+ });
36
+ }
37
+ if (!opts.database) {
38
+ errors.push({
39
+ field: "vectorDb.options.database",
40
+ message: "MongoDB database name is required",
41
+ severity: "error"
42
+ });
43
+ }
44
+ if (!opts.collection) {
45
+ errors.push({
46
+ field: "vectorDb.options.collection",
47
+ message: "MongoDB collection name is required",
48
+ severity: "error"
49
+ });
50
+ }
51
+ return errors;
52
+ }
53
+ };
54
+ }
55
+ static getHealthChecker() {
56
+ return {
57
+ async check(config) {
58
+ const opts = config.options || {};
59
+ const timestamp = Date.now();
60
+ try {
61
+ const { MongoClient: MongoClient2 } = await import("mongodb");
62
+ const client = new MongoClient2(opts.uri);
63
+ await client.connect();
64
+ const db = client.db(opts.database);
65
+ await db.command({ ping: 1 });
66
+ const collections = await db.listCollections({ name: opts.collection }).toArray();
67
+ await client.close();
68
+ return {
69
+ healthy: true,
70
+ provider: "mongodb",
71
+ capabilities: {
72
+ database: opts.database,
73
+ collection: opts.collection,
74
+ exists: collections.length > 0
75
+ },
76
+ timestamp
77
+ };
78
+ } catch (error) {
79
+ return {
80
+ healthy: false,
81
+ provider: "mongodb",
82
+ error: `Connection failed: ${error instanceof Error ? error.message : String(error)}`,
83
+ timestamp
84
+ };
85
+ }
86
+ }
87
+ };
88
+ }
24
89
  async initialize() {
25
90
  await this.client.connect();
26
91
  this.db = this.client.db(this.dbName);
@@ -59,7 +124,7 @@ var MongoDBProvider = class extends BaseVectorProvider {
59
124
  index: this.config.indexName || "vector_index",
60
125
  path: this.embeddingKey,
61
126
  queryVector: vector,
62
- numCandidates: Math.max(topK * 10, 100),
127
+ numCandidates: this.config.options.numCandidates || Math.max(topK * 20, 200),
63
128
  limit: topK
64
129
  }, Object.keys(publicFilter).length > 0 || namespace ? { filter: __spreadValues(__spreadValues({}, publicFilter), namespace ? { namespace } : {}) } : {})
65
130
  },
@@ -87,10 +152,6 @@ var MongoDBProvider = class extends BaseVectorProvider {
87
152
  async deleteNamespace(namespace) {
88
153
  await this.collection.deleteMany({ namespace });
89
154
  }
90
- /**
91
- * Sanitise and flatten filter for MongoDB.
92
- * Strips internal engine fields and keywords.
93
- */
94
155
  sanitizeFilter(filter) {
95
156
  const sanitized = super.sanitizeFilter(filter);
96
157
  const mongoFilter = {};
@@ -3,7 +3,7 @@ import {
3
3
  } from "./chunk-IMP6FUCY.mjs";
4
4
  import {
5
5
  __spreadValues
6
- } from "./chunk-FWCSY2DS.mjs";
6
+ } from "./chunk-X4TOT24V.mjs";
7
7
 
8
8
  // src/providers/vectordb/ChromaDBProvider.ts
9
9
  import axios from "axios";
@@ -14,6 +14,61 @@ var PostgreSQLProvider = class extends BaseVectorProvider {
14
14
  this.connectionString = opts.connectionString;
15
15
  this.dimensions = (_a = opts.dimensions) != null ? _a : 1536;
16
16
  }
17
+ static getValidator() {
18
+ return {
19
+ validate(config) {
20
+ const errors = [];
21
+ const opts = config.options || {};
22
+ if (!opts.connectionString) {
23
+ errors.push({
24
+ field: "vectorDb.options.connectionString",
25
+ message: "PostgreSQL connection string is required",
26
+ suggestion: "Set PGVECTOR_CONNECTION_STRING environment variable",
27
+ severity: "error"
28
+ });
29
+ }
30
+ if (opts.tables && typeof opts.tables !== "string" && !Array.isArray(opts.tables)) {
31
+ errors.push({
32
+ field: "vectorDb.options.tables",
33
+ message: "PostgreSQL tables must be a string or a string array",
34
+ severity: "error"
35
+ });
36
+ }
37
+ return errors;
38
+ }
39
+ };
40
+ }
41
+ static getHealthChecker() {
42
+ return {
43
+ async check(config) {
44
+ const opts = config.options || {};
45
+ const timestamp = Date.now();
46
+ try {
47
+ const { Client } = await import("pg");
48
+ const client = new Client({ connectionString: opts.connectionString });
49
+ await client.connect();
50
+ const result = await client.query(`
51
+ SELECT EXISTS(SELECT 1 FROM pg_extension WHERE extname = 'vector');
52
+ `);
53
+ const hasVector = result.rows[0].exists;
54
+ await client.end();
55
+ return {
56
+ healthy: true,
57
+ provider: "postgresql",
58
+ capabilities: { pgvectorInstalled: hasVector },
59
+ timestamp
60
+ };
61
+ } catch (error) {
62
+ return {
63
+ healthy: false,
64
+ provider: "postgresql",
65
+ error: `Connection failed: ${error instanceof Error ? error.message : String(error)}`,
66
+ timestamp
67
+ };
68
+ }
69
+ }
70
+ };
71
+ }
17
72
  async initialize() {
18
73
  this.pool = new Pool({ connectionString: this.connectionString });
19
74
  const client = await this.pool.connect();
@@ -99,20 +154,27 @@ var PostgreSQLProvider = class extends BaseVectorProvider {
99
154
  }).join(" AND ");
100
155
  whereClause = whereClause ? `${whereClause} AND ${filterConditions}` : `WHERE ${filterConditions}`;
101
156
  }
102
- const result = await this.pool.query(
103
- `SELECT id, content, metadata, 1 - (embedding <=> $1::vector) AS score
104
- FROM ${this.tableName}
105
- ${whereClause}
106
- ORDER BY embedding <=> $1::vector
107
- LIMIT $2`,
108
- params
109
- );
110
- return result.rows.map((row) => ({
111
- id: String(row["id"]),
112
- score: parseFloat(String(row["score"])),
113
- content: String(row["content"]),
114
- metadata: row["metadata"]
115
- }));
157
+ const client = await this.pool.connect();
158
+ try {
159
+ const efSearch = this.config.options.efSearch || Math.max(topK * 10, 40);
160
+ await client.query(`SET LOCAL hnsw.ef_search = ${efSearch}`);
161
+ const result = await client.query(
162
+ `SELECT id, content, metadata, 1 - (embedding <=> $1::vector) AS score
163
+ FROM ${this.tableName}
164
+ ${whereClause}
165
+ ORDER BY embedding <=> $1::vector
166
+ LIMIT $2`,
167
+ params
168
+ );
169
+ return result.rows.map((row) => ({
170
+ id: String(row["id"]),
171
+ score: parseFloat(String(row["score"])),
172
+ content: String(row["content"]),
173
+ metadata: row["metadata"]
174
+ }));
175
+ } finally {
176
+ client.release();
177
+ }
116
178
  }
117
179
  async delete(id, namespace) {
118
180
  const where = namespace ? "WHERE id = $1 AND namespace = $2" : "WHERE id = $1";
@@ -1,13 +1,13 @@
1
1
  import {
2
2
  buildPayload,
3
3
  resolvePath
4
- } from "./chunk-EDLTMSNY.mjs";
4
+ } from "./chunk-YLTMFW4M.mjs";
5
5
  import {
6
6
  BaseVectorProvider
7
7
  } from "./chunk-IMP6FUCY.mjs";
8
8
  import {
9
9
  __spreadValues
10
- } from "./chunk-FWCSY2DS.mjs";
10
+ } from "./chunk-X4TOT24V.mjs";
11
11
 
12
12
  // src/providers/vectordb/UniversalVectorProvider.ts
13
13
  import axios from "axios";
@@ -3,7 +3,7 @@ import {
3
3
  } from "./chunk-IMP6FUCY.mjs";
4
4
  import {
5
5
  __spreadValues
6
- } from "./chunk-FWCSY2DS.mjs";
6
+ } from "./chunk-X4TOT24V.mjs";
7
7
 
8
8
  // src/providers/vectordb/WeaviateProvider.ts
9
9
  import axios from "axios";
@@ -54,17 +54,17 @@ var WeaviateProvider = class extends BaseVectorProvider {
54
54
  };
55
55
  await this.http.post("/v1/batch/objects", payload);
56
56
  }
57
- // eslint-disable-next-line @typescript-eslint/no-unused-vars
58
57
  async query(vector, topK, namespace, _filter) {
59
58
  var _a, _b;
59
+ const sanitizedFilter = this.sanitizeFilter(_filter);
60
+ const queryText = sanitizedFilter.queryText;
61
+ const searchParams = queryText ? `hybrid: { query: ${JSON.stringify(queryText)}, alpha: 0.5 }` : `nearVector: { vector: ${JSON.stringify(vector)} }`;
60
62
  const graphqlQuery = {
61
63
  query: `
62
64
  {
63
65
  Get {
64
66
  ${this.indexName}(
65
- nearVector: {
66
- vector: ${JSON.stringify(vector)}
67
- }
67
+ ${searchParams}
68
68
  limit: ${topK}
69
69
  ${namespace ? `where: { path: ["namespace"], operator: Equal, valueString: "${namespace}" }` : ""}
70
70
  ) {
@@ -3,7 +3,7 @@ import {
3
3
  } from "./chunk-IMP6FUCY.mjs";
4
4
  import {
5
5
  __spreadValues
6
- } from "./chunk-FWCSY2DS.mjs";
6
+ } from "./chunk-X4TOT24V.mjs";
7
7
 
8
8
  // src/providers/vectordb/MilvusProvider.ts
9
9
  import axios from "axios";
@@ -52,7 +52,11 @@ var MilvusProvider = class extends BaseVectorProvider {
52
52
  vector,
53
53
  limit: topK,
54
54
  filter: namespace ? `namespace == "${namespace}"` : void 0,
55
- outputFields: ["content", "metadata"]
55
+ outputFields: ["content", "metadata"],
56
+ searchParams: {
57
+ nprobe: this.config.options.nprobe || 16,
58
+ ef: this.config.options.efSearch || Math.max(topK * 10, 64)
59
+ }
56
60
  };
57
61
  const { data } = await this.http.post("/v1/vector/search", payload);
58
62
  return (data.data || []).map((res) => ({
@@ -3,7 +3,7 @@ import {
3
3
  } from "./chunk-IMP6FUCY.mjs";
4
4
  import {
5
5
  __spreadValues
6
- } from "./chunk-FWCSY2DS.mjs";
6
+ } from "./chunk-X4TOT24V.mjs";
7
7
 
8
8
  // src/providers/vectordb/PineconeProvider.ts
9
9
  import { Pinecone } from "@pinecone-database/pinecone";
@@ -14,6 +14,60 @@ var PineconeProvider = class extends BaseVectorProvider {
14
14
  if (!opts.apiKey) throw new Error("[PineconeProvider] options.apiKey is required");
15
15
  this.apiKey = opts.apiKey;
16
16
  }
17
+ static getValidator() {
18
+ return {
19
+ validate(config) {
20
+ const errors = [];
21
+ const opts = config.options || {};
22
+ if (!opts.apiKey) {
23
+ errors.push({
24
+ field: "vectorDb.options.apiKey",
25
+ message: "Pinecone API key is required",
26
+ suggestion: "Set PINECONE_API_KEY environment variable",
27
+ severity: "error"
28
+ });
29
+ }
30
+ return errors;
31
+ }
32
+ };
33
+ }
34
+ static getHealthChecker() {
35
+ return {
36
+ async check(config) {
37
+ var _a, _b;
38
+ const opts = config.options || {};
39
+ const indexName = config.indexName;
40
+ const timestamp = Date.now();
41
+ try {
42
+ const { Pinecone: Pinecone2 } = await import("@pinecone-database/pinecone");
43
+ const client = new Pinecone2({ apiKey: opts.apiKey });
44
+ const indexes = await client.listIndexes();
45
+ const indexNames = (_b = (_a = indexes.indexes) == null ? void 0 : _a.map((i) => i.name)) != null ? _b : [];
46
+ if (!indexNames.includes(indexName)) {
47
+ return {
48
+ healthy: false,
49
+ provider: "pinecone",
50
+ error: `Index "${indexName}" not found. Available: ${indexNames.join(", ")}`,
51
+ timestamp
52
+ };
53
+ }
54
+ return {
55
+ healthy: true,
56
+ provider: "pinecone",
57
+ capabilities: { indexes: indexNames.length, targetIndex: indexName },
58
+ timestamp
59
+ };
60
+ } catch (error) {
61
+ return {
62
+ healthy: false,
63
+ provider: "pinecone",
64
+ error: `Connection failed: ${error instanceof Error ? error.message : String(error)}`,
65
+ timestamp
66
+ };
67
+ }
68
+ }
69
+ };
70
+ }
17
71
  async initialize() {
18
72
  var _a, _b;
19
73
  this.client = new Pinecone({ apiKey: this.apiKey });
@@ -0,0 +1,89 @@
1
+ var __defProp = Object.defineProperty;
2
+ var __defProps = Object.defineProperties;
3
+ var __getOwnPropDescs = Object.getOwnPropertyDescriptors;
4
+ var __getOwnPropSymbols = Object.getOwnPropertySymbols;
5
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
6
+ var __propIsEnum = Object.prototype.propertyIsEnumerable;
7
+ var __knownSymbol = (name, symbol) => (symbol = Symbol[name]) ? symbol : /* @__PURE__ */ Symbol.for("Symbol." + name);
8
+ var __typeError = (msg) => {
9
+ throw TypeError(msg);
10
+ };
11
+ var __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
12
+ var __spreadValues = (a, b) => {
13
+ for (var prop in b || (b = {}))
14
+ if (__hasOwnProp.call(b, prop))
15
+ __defNormalProp(a, prop, b[prop]);
16
+ if (__getOwnPropSymbols)
17
+ for (var prop of __getOwnPropSymbols(b)) {
18
+ if (__propIsEnum.call(b, prop))
19
+ __defNormalProp(a, prop, b[prop]);
20
+ }
21
+ return a;
22
+ };
23
+ var __spreadProps = (a, b) => __defProps(a, __getOwnPropDescs(b));
24
+ var __objRest = (source, exclude) => {
25
+ var target = {};
26
+ for (var prop in source)
27
+ if (__hasOwnProp.call(source, prop) && exclude.indexOf(prop) < 0)
28
+ target[prop] = source[prop];
29
+ if (source != null && __getOwnPropSymbols)
30
+ for (var prop of __getOwnPropSymbols(source)) {
31
+ if (exclude.indexOf(prop) < 0 && __propIsEnum.call(source, prop))
32
+ target[prop] = source[prop];
33
+ }
34
+ return target;
35
+ };
36
+ var __await = function(promise, isYieldStar) {
37
+ this[0] = promise;
38
+ this[1] = isYieldStar;
39
+ };
40
+ var __asyncGenerator = (__this, __arguments, generator) => {
41
+ var resume = (k, v, yes, no) => {
42
+ try {
43
+ var x = generator[k](v), isAwait = (v = x.value) instanceof __await, done = x.done;
44
+ Promise.resolve(isAwait ? v[0] : v).then((y) => isAwait ? resume(k === "return" ? k : "next", v[1] ? { done: y.done, value: y.value } : y, yes, no) : yes({ value: y, done })).catch((e) => resume("throw", e, yes, no));
45
+ } catch (e) {
46
+ no(e);
47
+ }
48
+ }, method = (k, call, wait, clear) => it[k] = (x) => (call = new Promise((yes, no, run) => (run = () => resume(k, x, yes, no), q ? q.then(run) : run())), clear = () => q === wait && (q = 0), q = wait = call.then(clear, clear), call), q, it = {};
49
+ return generator = generator.apply(__this, __arguments), it[__knownSymbol("asyncIterator")] = () => it, method("next"), method("throw"), method("return"), it;
50
+ };
51
+ var __yieldStar = (value) => {
52
+ var obj = value[__knownSymbol("asyncIterator")], isAwait = false, method, it = {};
53
+ if (obj == null) {
54
+ obj = value[__knownSymbol("iterator")]();
55
+ method = (k) => it[k] = (x) => obj[k](x);
56
+ } else {
57
+ obj = obj.call(value);
58
+ method = (k) => it[k] = (v) => {
59
+ if (isAwait) {
60
+ isAwait = false;
61
+ if (k === "throw") throw v;
62
+ return v;
63
+ }
64
+ isAwait = true;
65
+ return {
66
+ done: false,
67
+ value: new __await(new Promise((resolve) => {
68
+ var x = obj[k](v);
69
+ if (!(x instanceof Object)) __typeError("Object expected");
70
+ resolve(x);
71
+ }), 1)
72
+ };
73
+ };
74
+ }
75
+ return it[__knownSymbol("iterator")] = () => it, method("next"), "throw" in obj ? method("throw") : it.throw = (x) => {
76
+ throw x;
77
+ }, "return" in obj && method("return"), it;
78
+ };
79
+ var __forAwait = (obj, it, method) => (it = obj[__knownSymbol("asyncIterator")]) ? it.call(obj) : (obj = obj[__knownSymbol("iterator")](), it = {}, method = (key, fn) => (fn = obj[key]) && (it[key] = (arg) => new Promise((yes, no, done) => (arg = fn.call(obj, arg), done = arg.done, Promise.resolve(arg.value).then((value) => yes({ value, done }), no)))), method("next"), method("return"), it);
80
+
81
+ export {
82
+ __spreadValues,
83
+ __spreadProps,
84
+ __objRest,
85
+ __await,
86
+ __asyncGenerator,
87
+ __yieldStar,
88
+ __forAwait
89
+ };
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  __spreadValues
3
- } from "./chunk-FWCSY2DS.mjs";
3
+ } from "./chunk-X4TOT24V.mjs";
4
4
 
5
5
  // src/utils/templateUtils.ts
6
6
  function isRecord(value) {
@@ -1,3 +1,3 @@
1
- import '../RagConfig-BgRDL9Vy.mjs';
2
- export { c as createChatHandler, a as createHealthHandler, b as createIngestHandler, d as createUploadHandler } from '../index-7qeLTPBL.mjs';
1
+ import '../RagConfig-DRJO4hGU.mjs';
2
+ export { c as createChatHandler, b as createHealthHandler, d as createIngestHandler, f as createStreamHandler, e as createUploadHandler } from '../index-Bjy0es5a.mjs';
3
3
  import 'next/server';
@@ -1,3 +1,3 @@
1
- import '../RagConfig-BgRDL9Vy.js';
2
- export { c as createChatHandler, a as createHealthHandler, b as createIngestHandler, d as createUploadHandler } from '../index-DowY4_K0.js';
1
+ import '../RagConfig-DRJO4hGU.js';
2
+ export { c as createChatHandler, b as createHealthHandler, d as createIngestHandler, f as createStreamHandler, e as createUploadHandler } from '../index-B2mutkgp.js';
3
3
  import 'next/server';