@retrivora-ai/rag-engine 2.2.1 → 2.2.3
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/dist/handlers/index.js +92 -61
- package/dist/handlers/index.mjs +92 -61
- package/dist/index.css +44 -0
- package/dist/index.js +199 -128
- package/dist/index.mjs +224 -153
- package/dist/server.d.mts +1 -0
- package/dist/server.d.ts +1 -0
- package/dist/server.js +92 -61
- package/dist/server.mjs +92 -61
- package/package.json +1 -1
- package/src/components/DocumentUpload.tsx +192 -116
- package/src/config/serverConfig.ts +20 -6
- package/src/core/ConfigFetcher.ts +5 -0
- package/src/core/LicenseVerifier.ts +8 -2
- package/src/core/Pipeline.ts +5 -7
- package/src/handlers/index.ts +1 -1
- package/src/hooks/useRagChat.ts +30 -14
- package/src/index.css +44 -0
- package/src/providers/vectordb/BaseVectorProvider.ts +1 -0
- package/src/providers/vectordb/PineconeProvider.ts +16 -1
package/dist/handlers/index.mjs
CHANGED
|
@@ -681,7 +681,7 @@ async function dispatchEmbedding(req, apiKeyOverride) {
|
|
|
681
681
|
}
|
|
682
682
|
}
|
|
683
683
|
const geminiKey = process.env.GEMINI_API_KEY || effectiveKey;
|
|
684
|
-
const isGeminiKeyValid = Boolean(geminiKey &&
|
|
684
|
+
const isGeminiKeyValid = Boolean(geminiKey && !geminiKey.startsWith("eyJ"));
|
|
685
685
|
if (isGeminiKeyValid) {
|
|
686
686
|
try {
|
|
687
687
|
return await handleGeminiEmbedding(req, effectiveKey);
|
|
@@ -816,11 +816,14 @@ var init_ConfigFetcher = __esm({
|
|
|
816
816
|
if (res.ok) {
|
|
817
817
|
const data = await res.json();
|
|
818
818
|
if ((data == null ? void 0 : data.success) && ((_a2 = data == null ? void 0 : data.vectorDb) == null ? void 0 : _a2.apiKey)) {
|
|
819
|
+
const fetchedProjectId = data.projectId || projectId;
|
|
819
820
|
const config = {
|
|
821
|
+
projectId: fetchedProjectId,
|
|
820
822
|
vectorDb: {
|
|
821
823
|
apiKey: data.vectorDb.apiKey,
|
|
822
824
|
indexName: data.vectorDb.indexName || "retrivora-free",
|
|
823
|
-
provider: data.vectorDb.provider || "pinecone"
|
|
825
|
+
provider: data.vectorDb.provider || "pinecone",
|
|
826
|
+
projectId: fetchedProjectId
|
|
824
827
|
},
|
|
825
828
|
embedding: {
|
|
826
829
|
provider: ((_b = data.embedding) == null ? void 0 : _b.provider) || "universal_rest",
|
|
@@ -938,8 +941,20 @@ var init_PineconeProvider = __esm({
|
|
|
938
941
|
if (this.client) return;
|
|
939
942
|
let key = this.apiKey || process.env.PINECONE_API_KEY || "";
|
|
940
943
|
if (!key) {
|
|
941
|
-
const projectId = process.env.RAG_PROJECT_ID || process.env.NEXT_PUBLIC_RAG_PROJECT_ID || "my-rag-app";
|
|
942
944
|
const licenseKey = process.env.RETRIVORA_LICENSE_KEY || process.env.NEXT_PUBLIC_RETRIVORA_LICENSE_KEY;
|
|
945
|
+
const jwtProjectId = (() => {
|
|
946
|
+
if (!licenseKey) return void 0;
|
|
947
|
+
try {
|
|
948
|
+
const parts = licenseKey.split(".");
|
|
949
|
+
if (parts.length >= 2) {
|
|
950
|
+
const payload = JSON.parse(Buffer.from(parts[1], "base64url").toString("utf8"));
|
|
951
|
+
return payload == null ? void 0 : payload.projectId;
|
|
952
|
+
}
|
|
953
|
+
} catch (e) {
|
|
954
|
+
}
|
|
955
|
+
return void 0;
|
|
956
|
+
})();
|
|
957
|
+
const projectId = process.env.RAG_PROJECT_ID || process.env.NEXT_PUBLIC_RAG_PROJECT_ID || jwtProjectId || this.projectId || "default";
|
|
943
958
|
const remoteConfig = await ConfigFetcher.fetchRemoteVectorConfig(projectId, licenseKey);
|
|
944
959
|
if (remoteConfig == null ? void 0 : remoteConfig.apiKey) {
|
|
945
960
|
key = remoteConfig.apiKey;
|
|
@@ -947,6 +962,9 @@ var init_PineconeProvider = __esm({
|
|
|
947
962
|
if (remoteConfig.indexName) {
|
|
948
963
|
this.indexName = remoteConfig.indexName;
|
|
949
964
|
}
|
|
965
|
+
if (remoteConfig.projectId) {
|
|
966
|
+
this.projectId = remoteConfig.projectId;
|
|
967
|
+
}
|
|
950
968
|
}
|
|
951
969
|
}
|
|
952
970
|
if (!key) {
|
|
@@ -2929,7 +2947,8 @@ var LicenseVerifier = class {
|
|
|
2929
2947
|
};
|
|
2930
2948
|
}
|
|
2931
2949
|
try {
|
|
2932
|
-
const
|
|
2950
|
+
const rawToken = licenseKey.replace(/^rtv_/i, "").trim();
|
|
2951
|
+
const parts = rawToken.split(".");
|
|
2933
2952
|
if (parts.length !== 3) {
|
|
2934
2953
|
throw new Error("Malformed token structure (expected 3 parts).");
|
|
2935
2954
|
}
|
|
@@ -2953,7 +2972,8 @@ var LicenseVerifier = class {
|
|
|
2953
2972
|
if (!payload.projectId) {
|
|
2954
2973
|
throw new Error('License payload is missing "projectId".');
|
|
2955
2974
|
}
|
|
2956
|
-
|
|
2975
|
+
const isProjectMatch = payload.projectId === currentProjectId || payload.projectId === `retrivora-${currentProjectId}` || `retrivora-${payload.projectId}` === currentProjectId;
|
|
2976
|
+
if (!isProjectMatch) {
|
|
2957
2977
|
throw new Error(
|
|
2958
2978
|
`Project ID mismatch. License is bound to project namespace "${payload.projectId}" but configuration has "${currentProjectId}".`
|
|
2959
2979
|
);
|
|
@@ -3161,46 +3181,58 @@ function readEnum(env, name, fallback, allowed) {
|
|
|
3161
3181
|
throw new Error(`[getRagConfig] ${name} must be one of: ${allowed.join(", ")}`);
|
|
3162
3182
|
}
|
|
3163
3183
|
function getEnvConfig(env = process.env, base) {
|
|
3164
|
-
var _a2, _b, _c, _d, _e, _f, _g2, _h, _i, _j, _k, _l, _m, _n, _o, _p, _q, _r, _s, _t, _u, _v, _w, _x, _y, _z, _A, _B, _C, _D, _E, _F, _G, _H, _I, _J, _K, _L, _M, _N, _O, _P, _Q, _R, _S, _T, _U, _V, _W, _X, _Y, _Z, __, _$, _aa, _ba, _ca, _da, _ea, _fa, _ga, _ha, _ia, _ja, _ka, _la, _ma, _na, _oa, _pa, _qa, _ra, _sa, _ta, _ua, _va, _wa, _xa, _ya, _za, _Aa, _Ba, _Ca, _Da, _Ea, _Fa, _Ga, _Ha, _Ia, _Ja, _Ka, _La, _Ma, _Na, _Oa, _Pa, _Qa, _Ra, _Sa, _Ta, _Ua, _Va, _Wa, _Xa, _Ya, _Za, __a, _$a, _ab, _bb, _cb, _db, _eb, _fb, _gb, _hb, _ib, _jb, _kb, _lb, _mb, _nb, _ob, _pb, _qb, _rb, _sb, _tb, _ub, _vb, _wb, _xb, _yb, _zb, _Ab, _Bb, _Cb, _Db, _Eb, _Fb, _Gb, _Hb, _Ib;
|
|
3165
|
-
const
|
|
3166
|
-
const
|
|
3167
|
-
|
|
3184
|
+
var _a2, _b, _c, _d, _e, _f, _g2, _h, _i, _j, _k, _l, _m, _n, _o, _p, _q, _r, _s, _t, _u, _v, _w, _x, _y, _z, _A, _B, _C, _D, _E, _F, _G, _H, _I, _J, _K, _L, _M, _N, _O, _P, _Q, _R, _S, _T, _U, _V, _W, _X, _Y, _Z, __, _$, _aa, _ba, _ca, _da, _ea, _fa, _ga, _ha, _ia, _ja, _ka, _la, _ma, _na, _oa, _pa, _qa, _ra, _sa, _ta, _ua, _va, _wa, _xa, _ya, _za, _Aa, _Ba, _Ca, _Da, _Ea, _Fa, _Ga, _Ha, _Ia, _Ja, _Ka, _La, _Ma, _Na, _Oa, _Pa, _Qa, _Ra, _Sa, _Ta, _Ua, _Va, _Wa, _Xa, _Ya, _Za, __a, _$a, _ab, _bb, _cb, _db, _eb, _fb, _gb, _hb, _ib, _jb, _kb, _lb, _mb, _nb, _ob, _pb, _qb, _rb, _sb, _tb, _ub, _vb, _wb, _xb, _yb, _zb, _Ab, _Bb, _Cb, _Db, _Eb, _Fb, _Gb, _Hb, _Ib, _Jb, _Kb;
|
|
3185
|
+
const licenseKey = (_d = (_c = (_b = (_a2 = readString(env, "RAG_LICENSE_KEY")) != null ? _a2 : readString(env, "RETRIVORA_LICENSE_KEY")) != null ? _b : readString(env, "NEXT_PUBLIC_RETRIVORA_LICENSE_KEY")) != null ? _c : readString(env, "LICENSE_KEY")) != null ? _d : base == null ? void 0 : base.licenseKey;
|
|
3186
|
+
const jwtProjectId = (() => {
|
|
3187
|
+
if (!licenseKey) return void 0;
|
|
3188
|
+
try {
|
|
3189
|
+
const parts = licenseKey.split(".");
|
|
3190
|
+
if (parts.length >= 2) {
|
|
3191
|
+
const payload = JSON.parse(Buffer.from(parts[1], "base64url").toString("utf8"));
|
|
3192
|
+
return payload == null ? void 0 : payload.projectId;
|
|
3193
|
+
}
|
|
3194
|
+
} catch (e) {
|
|
3195
|
+
}
|
|
3196
|
+
return void 0;
|
|
3197
|
+
})();
|
|
3198
|
+
const projectId = (_i = (_h = (_g2 = (_f = (_e = readString(env, "RAG_PROJECT_ID")) != null ? _e : readString(env, "NEXT_PUBLIC_RAG_PROJECT_ID")) != null ? _f : readString(env, "NEXT_PUBLIC_PROJECT_ID")) != null ? _g2 : base == null ? void 0 : base.projectId) != null ? _h : jwtProjectId) != null ? _i : "default";
|
|
3199
|
+
const telemetryEnabled = readString(env, "TELEMETRY_ENABLED") === "true" || readString(env, "NEXT_PUBLIC_TELEMETRY_ENABLED") === "true" || ((_j = base == null ? void 0 : base.telemetry) == null ? void 0 : _j.enabled) || Boolean(licenseKey);
|
|
3168
3200
|
const vectorProvider = readEnum(env, "VECTOR_DB_PROVIDER", "pinecone", VECTOR_DB_PROVIDERS);
|
|
3169
3201
|
const embeddingDimensions = readNumber(env, "EMBEDDING_DIMENSIONS", 768);
|
|
3170
3202
|
const vectorDbOptions = {};
|
|
3171
3203
|
if (vectorProvider === "pinecone") {
|
|
3172
|
-
vectorDbOptions.apiKey = (
|
|
3173
|
-
vectorDbOptions.indexName = (
|
|
3204
|
+
vectorDbOptions.apiKey = (_o = (_n = (_m = readString(env, "PINECONE_API_KEY")) != null ? _m : (_l = (_k = base == null ? void 0 : base.vectorDb) == null ? void 0 : _k.options) == null ? void 0 : _l.apiKey) != null ? _n : process.env.PINECONE_API_KEY) != null ? _o : "";
|
|
3205
|
+
vectorDbOptions.indexName = (_v = (_u = (_t = (_q = readString(env, "PINECONE_INDEX")) != null ? _q : (_p = base == null ? void 0 : base.vectorDb) == null ? void 0 : _p.indexName) != null ? _t : (_s = (_r = base == null ? void 0 : base.vectorDb) == null ? void 0 : _r.options) == null ? void 0 : _s.indexName) != null ? _u : process.env.PINECONE_INDEX) != null ? _v : "retrivora-free";
|
|
3174
3206
|
} else if (vectorProvider === "pgvector" || vectorProvider === "postgresql") {
|
|
3175
|
-
vectorDbOptions.connectionString = (
|
|
3176
|
-
vectorDbOptions.tables = (
|
|
3177
|
-
vectorDbOptions.searchFields = (
|
|
3207
|
+
vectorDbOptions.connectionString = (_A = (_z = (_w = readString(env, "PGVECTOR_CONNECTION_STRING")) != null ? _w : readString(env, "POSTGRES_URL")) != null ? _z : (_y = (_x = base == null ? void 0 : base.vectorDb) == null ? void 0 : _x.options) == null ? void 0 : _y.connectionString) != null ? _A : "";
|
|
3208
|
+
vectorDbOptions.tables = (_F = (_C = (_B = readString(env, "VECTOR_DB_TABLES")) != null ? _B : readString(env, "POSTGRES_TABLES")) == null ? void 0 : _C.split(",").map((t) => t.trim())) != null ? _F : (_E = (_D = base == null ? void 0 : base.vectorDb) == null ? void 0 : _D.options) == null ? void 0 : _E.tables;
|
|
3209
|
+
vectorDbOptions.searchFields = (_J = (_G = readString(env, "POSTGRES_SEARCH_FIELDS")) == null ? void 0 : _G.split(",").map((f) => f.trim())) != null ? _J : (_I = (_H = base == null ? void 0 : base.vectorDb) == null ? void 0 : _H.options) == null ? void 0 : _I.searchFields;
|
|
3178
3210
|
vectorDbOptions.dimensions = embeddingDimensions;
|
|
3179
3211
|
} else if (vectorProvider === "mongodb") {
|
|
3180
|
-
vectorDbOptions.uri = (
|
|
3181
|
-
vectorDbOptions.database = (
|
|
3182
|
-
vectorDbOptions.collection = (
|
|
3183
|
-
vectorDbOptions.indexName = (
|
|
3212
|
+
vectorDbOptions.uri = (_N = (_M = readString(env, "MONGODB_URI")) != null ? _M : (_L = (_K = base == null ? void 0 : base.vectorDb) == null ? void 0 : _K.options) == null ? void 0 : _L.uri) != null ? _N : "";
|
|
3213
|
+
vectorDbOptions.database = (_R = (_Q = readString(env, "MONGODB_DB")) != null ? _Q : (_P = (_O = base == null ? void 0 : base.vectorDb) == null ? void 0 : _O.options) == null ? void 0 : _P.database) != null ? _R : "";
|
|
3214
|
+
vectorDbOptions.collection = (_V = (_U = readString(env, "MONGODB_COLLECTION")) != null ? _U : (_T = (_S = base == null ? void 0 : base.vectorDb) == null ? void 0 : _S.options) == null ? void 0 : _T.collection) != null ? _V : "";
|
|
3215
|
+
vectorDbOptions.indexName = (_$ = (__ = (_X = readString(env, "MONGODB_INDEX_NAME")) != null ? _X : (_W = base == null ? void 0 : base.vectorDb) == null ? void 0 : _W.indexName) != null ? __ : (_Z = (_Y = base == null ? void 0 : base.vectorDb) == null ? void 0 : _Y.options) == null ? void 0 : _Z.indexName) != null ? _$ : "vector_index";
|
|
3184
3216
|
} else if (vectorProvider === "qdrant") {
|
|
3185
|
-
vectorDbOptions.baseUrl = (
|
|
3186
|
-
vectorDbOptions.apiKey = (
|
|
3217
|
+
vectorDbOptions.baseUrl = (_da = (_ca = readString(env, "QDRANT_URL")) != null ? _ca : (_ba = (_aa = base == null ? void 0 : base.vectorDb) == null ? void 0 : _aa.options) == null ? void 0 : _ba.baseUrl) != null ? _da : "http://localhost:6333";
|
|
3218
|
+
vectorDbOptions.apiKey = (_ga = readString(env, "QDRANT_API_KEY")) != null ? _ga : (_fa = (_ea = base == null ? void 0 : base.vectorDb) == null ? void 0 : _ea.options) == null ? void 0 : _fa.apiKey;
|
|
3187
3219
|
vectorDbOptions.dimensions = embeddingDimensions;
|
|
3188
3220
|
} else if (vectorProvider === "milvus") {
|
|
3189
|
-
vectorDbOptions.baseUrl = (
|
|
3221
|
+
vectorDbOptions.baseUrl = (_ha = readString(env, "MILVUS_URL")) != null ? _ha : "http://localhost:19530";
|
|
3190
3222
|
vectorDbOptions.apiKey = readString(env, "MILVUS_API_KEY");
|
|
3191
3223
|
} else if (vectorProvider === "chromadb") {
|
|
3192
|
-
vectorDbOptions.baseUrl = (
|
|
3224
|
+
vectorDbOptions.baseUrl = (_ia = readString(env, "CHROMADB_URL")) != null ? _ia : "http://localhost:8000";
|
|
3193
3225
|
} else if (vectorProvider === "weaviate") {
|
|
3194
|
-
vectorDbOptions.baseUrl = (
|
|
3226
|
+
vectorDbOptions.baseUrl = (_ja = readString(env, "WEAVIATE_URL")) != null ? _ja : "http://localhost:8080";
|
|
3195
3227
|
vectorDbOptions.apiKey = readString(env, "WEAVIATE_API_KEY");
|
|
3196
3228
|
} else if (vectorProvider === "redis") {
|
|
3197
|
-
vectorDbOptions.baseUrl = (
|
|
3229
|
+
vectorDbOptions.baseUrl = (_ka = readString(env, "REDIS_URL")) != null ? _ka : "";
|
|
3198
3230
|
vectorDbOptions.apiKey = readString(env, "REDIS_API_KEY");
|
|
3199
3231
|
} else if (vectorProvider === "rest") {
|
|
3200
|
-
vectorDbOptions.baseUrl = (
|
|
3232
|
+
vectorDbOptions.baseUrl = (_la = readString(env, "VECTOR_DB_REST_URL")) != null ? _la : "";
|
|
3201
3233
|
vectorDbOptions.headers = readString(env, "VECTOR_DB_REST_API_KEY") ? { "api-key": readString(env, "VECTOR_DB_REST_API_KEY") } : {};
|
|
3202
3234
|
} else if (vectorProvider === "universal_rest") {
|
|
3203
|
-
vectorDbOptions.baseUrl = (
|
|
3235
|
+
vectorDbOptions.baseUrl = (_na = (_ma = readString(env, "VECTOR_BASE_URL")) != null ? _ma : readString(env, "VECTOR_DB_REST_URL")) != null ? _na : "";
|
|
3204
3236
|
vectorDbOptions.profile = readString(env, "VECTOR_UNIVERSAL_PROFILE");
|
|
3205
3237
|
vectorDbOptions.headers = readString(env, "VECTOR_DB_REST_API_KEY") ? { Authorization: `Bearer ${readString(env, "VECTOR_DB_REST_API_KEY")}` } : {};
|
|
3206
3238
|
}
|
|
@@ -3219,8 +3251,8 @@ function getEnvConfig(env = process.env, base) {
|
|
|
3219
3251
|
// Anthropic needs a separate embedding provider; key kept for completeness
|
|
3220
3252
|
gemini: readString(env, "GEMINI_API_KEY"),
|
|
3221
3253
|
ollama: void 0,
|
|
3222
|
-
universal_rest: (
|
|
3223
|
-
custom: (
|
|
3254
|
+
universal_rest: (_oa = readString(env, "EMBEDDING_API_KEY")) != null ? _oa : readString(env, "OPENAI_API_KEY"),
|
|
3255
|
+
custom: (_pa = readString(env, "EMBEDDING_API_KEY")) != null ? _pa : readString(env, "OPENAI_API_KEY")
|
|
3224
3256
|
};
|
|
3225
3257
|
const DEFAULT_MODEL_BY_PROVIDER = {
|
|
3226
3258
|
openai: "gpt-4o",
|
|
@@ -3241,25 +3273,25 @@ function getEnvConfig(env = process.env, base) {
|
|
|
3241
3273
|
return true;
|
|
3242
3274
|
}
|
|
3243
3275
|
})();
|
|
3244
|
-
const defaultGatewayUrl = (
|
|
3276
|
+
const defaultGatewayUrl = (_ra = (_qa = readString(env, "LITELLM_BASE_URL")) != null ? _qa : readString(env, "LLM_BASE_URL")) != null ? _ra : "https://www.retrivora.com/api/v1";
|
|
3245
3277
|
const defaultLlmProvider = isFreeTier ? "universal_rest" : "universal_rest";
|
|
3246
|
-
const llmProvider = (
|
|
3247
|
-
const llmBaseUrl = (
|
|
3248
|
-
const llmModel = (
|
|
3249
|
-
const llmApiKey = (
|
|
3250
|
-
const llmProfile = (
|
|
3278
|
+
const llmProvider = (_ua = (_ta = readEnum(env, "LLM_PROVIDER", defaultLlmProvider, LLM_PROVIDERS)) != null ? _ta : (_sa = base == null ? void 0 : base.llm) == null ? void 0 : _sa.provider) != null ? _ua : defaultLlmProvider;
|
|
3279
|
+
const llmBaseUrl = (_ya = (_xa = (_va = readString(env, "LITELLM_BASE_URL")) != null ? _va : readString(env, "LLM_BASE_URL")) != null ? _xa : (_wa = base == null ? void 0 : base.llm) == null ? void 0 : _wa.baseUrl) != null ? _ya : defaultGatewayUrl;
|
|
3280
|
+
const llmModel = (_Ca = (_Aa = readString(env, "LLM_MODEL")) != null ? _Aa : (_za = base == null ? void 0 : base.llm) == null ? void 0 : _za.model) != null ? _Ca : isFreeTier ? "llama-3.1-8b-instant" : (_Ba = DEFAULT_MODEL_BY_PROVIDER[llmProvider]) != null ? _Ba : "gpt-4o";
|
|
3281
|
+
const llmApiKey = (_Ia = (_Ha = (_Fa = (_Ea = (_Da = llmApiKeyByProvider[llmProvider]) != null ? _Da : readString(env, "LLM_API_KEY")) != null ? _Ea : readString(env, "LITELLM_MASTER_KEY")) != null ? _Fa : readString(env, "LITELLM_API_KEY")) != null ? _Ha : (_Ga = base == null ? void 0 : base.llm) == null ? void 0 : _Ga.apiKey) != null ? _Ia : licenseKey;
|
|
3282
|
+
const llmProfile = (_Ma = (_La = readString(env, "LLM_UNIVERSAL_PROFILE")) != null ? _La : (_Ka = (_Ja = base == null ? void 0 : base.llm) == null ? void 0 : _Ja.options) == null ? void 0 : _Ka.profile) != null ? _Ma : "litellm";
|
|
3251
3283
|
const defaultEmbeddingProvider = isFreeTier ? "universal_rest" : "universal_rest";
|
|
3252
|
-
const embeddingProvider = (
|
|
3253
|
-
const embeddingBaseUrl = (
|
|
3254
|
-
const embeddingModel = (
|
|
3255
|
-
const embeddingApiKey = (
|
|
3256
|
-
const embeddingProfile = (
|
|
3284
|
+
const embeddingProvider = (_Pa = (_Oa = readEnum(env, "EMBEDDING_PROVIDER", defaultEmbeddingProvider, EMBEDDING_PROVIDERS)) != null ? _Oa : (_Na = base == null ? void 0 : base.embedding) == null ? void 0 : _Na.provider) != null ? _Pa : defaultEmbeddingProvider;
|
|
3285
|
+
const embeddingBaseUrl = (_Ua = (_Ta = (_Ra = (_Qa = readString(env, "LITELLM_BASE_URL")) != null ? _Qa : readString(env, "EMBEDDING_BASE_URL")) != null ? _Ra : readString(env, "LLM_BASE_URL")) != null ? _Ta : (_Sa = base == null ? void 0 : base.embedding) == null ? void 0 : _Sa.baseUrl) != null ? _Ua : defaultGatewayUrl;
|
|
3286
|
+
const embeddingModel = (_Xa = (_Wa = readString(env, "EMBEDDING_MODEL")) != null ? _Wa : (_Va = base == null ? void 0 : base.embedding) == null ? void 0 : _Va.model) != null ? _Xa : "text-embedding-004";
|
|
3287
|
+
const embeddingApiKey = (_cb = (_bb = (_$a = (__a = (_Za = (_Ya = embeddingApiKeyByProvider[embeddingProvider]) != null ? _Ya : readString(env, "EMBEDDING_API_KEY")) != null ? _Za : readString(env, "LLM_API_KEY")) != null ? __a : readString(env, "LITELLM_MASTER_KEY")) != null ? _$a : readString(env, "LITELLM_API_KEY")) != null ? _bb : (_ab = base == null ? void 0 : base.embedding) == null ? void 0 : _ab.apiKey) != null ? _cb : licenseKey;
|
|
3288
|
+
const embeddingProfile = (_gb = (_fb = readString(env, "EMBEDDING_UNIVERSAL_PROFILE")) != null ? _fb : (_eb = (_db = base == null ? void 0 : base.embedding) == null ? void 0 : _db.options) == null ? void 0 : _eb.profile) != null ? _gb : "litellm";
|
|
3257
3289
|
return __spreadProps(__spreadValues({
|
|
3258
3290
|
projectId,
|
|
3259
3291
|
licenseKey,
|
|
3260
3292
|
vectorDb: {
|
|
3261
3293
|
provider: vectorProvider,
|
|
3262
|
-
indexName: (
|
|
3294
|
+
indexName: (_ib = (_hb = readString(env, "VECTOR_DB_INDEX")) != null ? _hb : vectorDbOptions.indexName) != null ? _ib : "rag-index",
|
|
3263
3295
|
options: vectorDbOptions
|
|
3264
3296
|
},
|
|
3265
3297
|
llm: {
|
|
@@ -3289,30 +3321,30 @@ function getEnvConfig(env = process.env, base) {
|
|
|
3289
3321
|
}
|
|
3290
3322
|
},
|
|
3291
3323
|
ui: {
|
|
3292
|
-
title: (
|
|
3293
|
-
subtitle: (
|
|
3294
|
-
primaryColor: (
|
|
3295
|
-
accentColor: (
|
|
3296
|
-
logoUrl: (
|
|
3297
|
-
placeholder: (
|
|
3298
|
-
showSources: ((
|
|
3299
|
-
welcomeMessage: (
|
|
3300
|
-
visualStyle: (
|
|
3301
|
-
borderRadius: (
|
|
3302
|
-
allowUpload: ((
|
|
3324
|
+
title: (_kb = (_jb = readString(env, "NEXT_PUBLIC_UI_TITLE")) != null ? _jb : readString(env, "UI_TITLE")) != null ? _kb : "AI Assistant",
|
|
3325
|
+
subtitle: (_mb = (_lb = readString(env, "NEXT_PUBLIC_UI_SUBTITLE")) != null ? _lb : readString(env, "UI_SUBTITLE")) != null ? _mb : "Powered by RAG",
|
|
3326
|
+
primaryColor: (_ob = (_nb = readString(env, "NEXT_PUBLIC_PRIMARY_COLOR")) != null ? _nb : readString(env, "UI_PRIMARY_COLOR")) != null ? _ob : "#10b981",
|
|
3327
|
+
accentColor: (_qb = (_pb = readString(env, "NEXT_PUBLIC_ACCENT_COLOR")) != null ? _pb : readString(env, "UI_ACCENT_COLOR")) != null ? _qb : "#3b82f6",
|
|
3328
|
+
logoUrl: (_rb = readString(env, "NEXT_PUBLIC_LOGO_URL")) != null ? _rb : readString(env, "UI_LOGO_URL"),
|
|
3329
|
+
placeholder: (_tb = (_sb = readString(env, "NEXT_PUBLIC_PLACEHOLDER")) != null ? _sb : readString(env, "UI_PLACEHOLDER")) != null ? _tb : "Ask me anything\u2026",
|
|
3330
|
+
showSources: ((_vb = (_ub = readString(env, "NEXT_PUBLIC_SHOW_SOURCES")) != null ? _ub : readString(env, "UI_SHOW_SOURCES")) != null ? _vb : "true") !== "false",
|
|
3331
|
+
welcomeMessage: (_xb = (_wb = readString(env, "NEXT_PUBLIC_WELCOME_MESSAGE")) != null ? _wb : readString(env, "UI_WELCOME_MESSAGE")) != null ? _xb : "Hello! I'm your AI assistant. Ask me anything about your documents.",
|
|
3332
|
+
visualStyle: (_zb = (_yb = readString(env, "NEXT_PUBLIC_UI_VISUAL_STYLE")) != null ? _yb : readString(env, "UI_VISUAL_STYLE")) != null ? _zb : "glass",
|
|
3333
|
+
borderRadius: (_Bb = (_Ab = readString(env, "NEXT_PUBLIC_UI_BORDER_RADIUS")) != null ? _Ab : readString(env, "UI_BORDER_RADIUS")) != null ? _Bb : "xl",
|
|
3334
|
+
allowUpload: ((_Db = (_Cb = readString(env, "NEXT_PUBLIC_ALLOW_UPLOAD")) != null ? _Cb : readString(env, "UI_ALLOW_UPLOAD")) != null ? _Db : "false") === "true"
|
|
3303
3335
|
},
|
|
3304
3336
|
rag: {
|
|
3305
3337
|
topK: readNumber(env, "RAG_TOP_K", 5),
|
|
3306
3338
|
scoreThreshold: readNumber(env, "RAG_SCORE_THRESHOLD", 0),
|
|
3307
3339
|
chunkSize: readNumber(env, "RAG_CHUNK_SIZE", 1e3),
|
|
3308
3340
|
chunkOverlap: readNumber(env, "RAG_CHUNK_OVERLAP", 200),
|
|
3309
|
-
filterableFields: (
|
|
3341
|
+
filterableFields: (_Eb = readString(env, "RAG_FILTERABLE_FIELDS")) == null ? void 0 : _Eb.split(",").map((f) => f.trim()),
|
|
3310
3342
|
// Query pipeline toggles — read from .env.local
|
|
3311
3343
|
useQueryTransformation: readString(env, "RAG_USE_QUERY_TRANSFORMATION") === "true",
|
|
3312
3344
|
useReranking: readString(env, "RAG_USE_RERANKING") === "true",
|
|
3313
3345
|
useGraphRetrieval: readString(env, "RAG_USE_GRAPH_RETRIEVAL") === "true",
|
|
3314
|
-
architecture: (
|
|
3315
|
-
chunkingStrategy: (
|
|
3346
|
+
architecture: (_Fb = readString(env, "RAG_ARCHITECTURE")) != null ? _Fb : "simple",
|
|
3347
|
+
chunkingStrategy: (_Gb = readString(env, "RAG_CHUNKING_STRATEGY")) != null ? _Gb : "recursive",
|
|
3316
3348
|
uiMapping: (() => {
|
|
3317
3349
|
const raw = readString(env, "RAG_UI_MAPPING");
|
|
3318
3350
|
if (!raw) return void 0;
|
|
@@ -3325,7 +3357,7 @@ function getEnvConfig(env = process.env, base) {
|
|
|
3325
3357
|
},
|
|
3326
3358
|
telemetry: {
|
|
3327
3359
|
enabled: telemetryEnabled,
|
|
3328
|
-
url: (
|
|
3360
|
+
url: (_Kb = (_Jb = (_Hb = readString(env, "TELEMETRY_URL")) != null ? _Hb : readString(env, "NEXT_PUBLIC_TELEMETRY_URL")) != null ? _Jb : (_Ib = base == null ? void 0 : base.telemetry) == null ? void 0 : _Ib.url) != null ? _Kb : process.env.NODE_ENV === "development" ? "http://localhost:3001/api/telemetry" : "https://retrivora.com/api/telemetry"
|
|
3329
3361
|
}
|
|
3330
3362
|
}, readString(env, "GRAPH_DB_PROVIDER") ? {
|
|
3331
3363
|
graphDb: {
|
|
@@ -5328,7 +5360,7 @@ var ConfigValidator = class {
|
|
|
5328
5360
|
// package.json
|
|
5329
5361
|
var package_default = {
|
|
5330
5362
|
name: "@retrivora-ai/rag-engine",
|
|
5331
|
-
version: "2.2.
|
|
5363
|
+
version: "2.2.3",
|
|
5332
5364
|
description: "Retrivora AI is a plug-and-play AI engine for RAG chat experiences \u2014 generic vector DB + LLM provider, embeddable or standalone.",
|
|
5333
5365
|
author: "Abhinav Alkuchi",
|
|
5334
5366
|
license: "UNLICENSED",
|
|
@@ -8974,11 +9006,10 @@ SchemaMapper.TARGET_PROPERTIES = {
|
|
|
8974
9006
|
|
|
8975
9007
|
// src/core/Pipeline.ts
|
|
8976
9008
|
function formatNamespace(raw) {
|
|
8977
|
-
if (!raw || !raw.trim()) return "
|
|
9009
|
+
if (!raw || !raw.trim()) return "default";
|
|
8978
9010
|
const trimmed = raw.trim();
|
|
8979
|
-
|
|
8980
|
-
|
|
8981
|
-
return `retrivora-${sanitized}`;
|
|
9011
|
+
const sanitized = trimmed.replace(/[^a-zA-Z0-9_-]/g, "_").replace(/_+/g, "_").replace(/^_+|_+$/g, "");
|
|
9012
|
+
return sanitized || "default";
|
|
8982
9013
|
}
|
|
8983
9014
|
var LRUEmbeddingCache = class {
|
|
8984
9015
|
constructor(maxSize = 500) {
|
|
@@ -10874,7 +10905,7 @@ function reportTelemetry(req, plugin, action, status, details, trace) {
|
|
|
10874
10905
|
const licenseKey = config.licenseKey || process.env.RAG_LICENSE_KEY || process.env.RETRIVORA_LICENSE_KEY || process.env.NEXT_PUBLIC_RETRIVORA_LICENSE_KEY;
|
|
10875
10906
|
const telemetryConfig = config.telemetry;
|
|
10876
10907
|
const enabled = (_a2 = telemetryConfig == null ? void 0 : telemetryConfig.enabled) != null ? _a2 : Boolean(licenseKey);
|
|
10877
|
-
const defaultUrl = process.env.NODE_ENV === "development" && !process.env.TELEMETRY_URL && !process.env.NEXT_PUBLIC_TELEMETRY_URL ? "http://localhost:3001/api/telemetry" : "https://retrivora.com/api/telemetry";
|
|
10908
|
+
const defaultUrl = process.env.NODE_ENV === "development" && !process.env.TELEMETRY_URL && !process.env.NEXT_PUBLIC_TELEMETRY_URL ? "http://localhost:3001/api/telemetry" : "https://www.retrivora.com/api/telemetry";
|
|
10878
10909
|
const telemetryUrl = (telemetryConfig == null ? void 0 : telemetryConfig.url) || process.env.TELEMETRY_URL || process.env.NEXT_PUBLIC_TELEMETRY_URL || defaultUrl;
|
|
10879
10910
|
const host = req.headers.get("host") || "localhost";
|
|
10880
10911
|
const userAgent = req.headers.get("user-agent") || `Retrivora-SDK/${SDK_VERSION}`;
|
package/dist/index.css
CHANGED
|
@@ -112,6 +112,7 @@
|
|
|
112
112
|
--color-white: #fff;
|
|
113
113
|
--spacing: 0.25rem;
|
|
114
114
|
--container-xs: 20rem;
|
|
115
|
+
--container-sm: 24rem;
|
|
115
116
|
--container-md: 28rem;
|
|
116
117
|
--container-2xl: 42rem;
|
|
117
118
|
--container-4xl: 56rem;
|
|
@@ -123,11 +124,14 @@
|
|
|
123
124
|
--text-base--line-height: calc(1.5 / 1);
|
|
124
125
|
--text-lg: 1.125rem;
|
|
125
126
|
--text-lg--line-height: calc(1.75 / 1.125);
|
|
127
|
+
--text-xl: 1.25rem;
|
|
128
|
+
--text-xl--line-height: calc(1.75 / 1.25);
|
|
126
129
|
--text-3xl: 1.875rem;
|
|
127
130
|
--text-3xl--line-height: calc(2.25 / 1.875);
|
|
128
131
|
--font-weight-medium: 500;
|
|
129
132
|
--font-weight-semibold: 600;
|
|
130
133
|
--font-weight-bold: 700;
|
|
134
|
+
--font-weight-extrabold: 800;
|
|
131
135
|
--tracking-tight: -0.025em;
|
|
132
136
|
--tracking-wider: 0.05em;
|
|
133
137
|
--tracking-widest: 0.1em;
|
|
@@ -759,6 +763,9 @@
|
|
|
759
763
|
.max-w-none {
|
|
760
764
|
max-width: none;
|
|
761
765
|
}
|
|
766
|
+
.max-w-sm {
|
|
767
|
+
max-width: var(--container-sm);
|
|
768
|
+
}
|
|
762
769
|
.max-w-xs {
|
|
763
770
|
max-width: var(--container-xs);
|
|
764
771
|
}
|
|
@@ -777,6 +784,9 @@
|
|
|
777
784
|
.flex-shrink-0 {
|
|
778
785
|
flex-shrink: 0;
|
|
779
786
|
}
|
|
787
|
+
.shrink-0 {
|
|
788
|
+
flex-shrink: 0;
|
|
789
|
+
}
|
|
780
790
|
.flex-grow {
|
|
781
791
|
flex-grow: 1;
|
|
782
792
|
}
|
|
@@ -930,6 +940,9 @@
|
|
|
930
940
|
.gap-2 {
|
|
931
941
|
gap: calc(var(--spacing) * 2);
|
|
932
942
|
}
|
|
943
|
+
.gap-2\.5 {
|
|
944
|
+
gap: calc(var(--spacing) * 2.5);
|
|
945
|
+
}
|
|
933
946
|
.gap-3 {
|
|
934
947
|
gap: calc(var(--spacing) * 3);
|
|
935
948
|
}
|
|
@@ -1111,6 +1124,12 @@
|
|
|
1111
1124
|
.border-emerald-100 {
|
|
1112
1125
|
border-color: var(--color-emerald-100);
|
|
1113
1126
|
}
|
|
1127
|
+
.border-emerald-100\/50 {
|
|
1128
|
+
border-color: color-mix(in srgb, oklch(95% 0.052 163.051) 50%, transparent);
|
|
1129
|
+
@supports (color: color-mix(in lab, red, red)) {
|
|
1130
|
+
border-color: color-mix(in oklab, var(--color-emerald-100) 50%, transparent);
|
|
1131
|
+
}
|
|
1132
|
+
}
|
|
1114
1133
|
.border-emerald-200 {
|
|
1115
1134
|
border-color: var(--color-emerald-200);
|
|
1116
1135
|
}
|
|
@@ -1363,6 +1382,12 @@
|
|
|
1363
1382
|
.bg-slate-950 {
|
|
1364
1383
|
background-color: var(--color-slate-950);
|
|
1365
1384
|
}
|
|
1385
|
+
.bg-slate-950\/70 {
|
|
1386
|
+
background-color: color-mix(in srgb, oklch(12.9% 0.042 264.695) 70%, transparent);
|
|
1387
|
+
@supports (color: color-mix(in lab, red, red)) {
|
|
1388
|
+
background-color: color-mix(in oklab, var(--color-slate-950) 70%, transparent);
|
|
1389
|
+
}
|
|
1390
|
+
}
|
|
1366
1391
|
.bg-transparent {
|
|
1367
1392
|
background-color: transparent;
|
|
1368
1393
|
}
|
|
@@ -1520,6 +1545,10 @@
|
|
|
1520
1545
|
font-size: var(--text-sm);
|
|
1521
1546
|
line-height: var(--tw-leading, var(--text-sm--line-height));
|
|
1522
1547
|
}
|
|
1548
|
+
.text-xl {
|
|
1549
|
+
font-size: var(--text-xl);
|
|
1550
|
+
line-height: var(--tw-leading, var(--text-xl--line-height));
|
|
1551
|
+
}
|
|
1523
1552
|
.text-xs {
|
|
1524
1553
|
font-size: var(--text-xs);
|
|
1525
1554
|
line-height: var(--tw-leading, var(--text-xs--line-height));
|
|
@@ -1551,6 +1580,10 @@
|
|
|
1551
1580
|
--tw-font-weight: var(--font-weight-bold);
|
|
1552
1581
|
font-weight: var(--font-weight-bold);
|
|
1553
1582
|
}
|
|
1583
|
+
.font-extrabold {
|
|
1584
|
+
--tw-font-weight: var(--font-weight-extrabold);
|
|
1585
|
+
font-weight: var(--font-weight-extrabold);
|
|
1586
|
+
}
|
|
1554
1587
|
.font-medium {
|
|
1555
1588
|
--tw-font-weight: var(--font-weight-medium);
|
|
1556
1589
|
font-weight: var(--font-weight-medium);
|
|
@@ -1649,6 +1682,9 @@
|
|
|
1649
1682
|
.text-emerald-800 {
|
|
1650
1683
|
color: var(--color-emerald-800);
|
|
1651
1684
|
}
|
|
1685
|
+
.text-emerald-900 {
|
|
1686
|
+
color: var(--color-emerald-900);
|
|
1687
|
+
}
|
|
1652
1688
|
.text-emerald-950 {
|
|
1653
1689
|
color: var(--color-emerald-950);
|
|
1654
1690
|
}
|
|
@@ -2363,6 +2399,14 @@
|
|
|
2363
2399
|
}
|
|
2364
2400
|
}
|
|
2365
2401
|
}
|
|
2402
|
+
.dark\:border-emerald-500\/10 {
|
|
2403
|
+
@media (prefers-color-scheme: dark) {
|
|
2404
|
+
border-color: color-mix(in srgb, oklch(69.6% 0.17 162.48) 10%, transparent);
|
|
2405
|
+
@supports (color: color-mix(in lab, red, red)) {
|
|
2406
|
+
border-color: color-mix(in oklab, var(--color-emerald-500) 10%, transparent);
|
|
2407
|
+
}
|
|
2408
|
+
}
|
|
2409
|
+
}
|
|
2366
2410
|
.dark\:border-emerald-500\/20 {
|
|
2367
2411
|
@media (prefers-color-scheme: dark) {
|
|
2368
2412
|
border-color: color-mix(in srgb, oklch(69.6% 0.17 162.48) 20%, transparent);
|