@absolutejs/rag 0.0.10 → 0.0.12
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/ai/client/index.js.map +2 -2
- package/dist/ai/client/ui.js.map +2 -2
- package/dist/ai/rag/index.js +212 -74
- package/dist/ai/rag/index.js.map +12 -11
- package/dist/ai/rag/quality.js.map +2 -2
- package/dist/ai/rag/ui.js.map +2 -2
- package/dist/angular/ai/index.js.map +2 -2
- package/dist/react/ai/index.js.map +2 -2
- package/dist/src/ai/rag/index.d.ts +3 -1
- package/dist/src/ai/rag/rerankerProviders.d.ts +14 -0
- package/dist/svelte/ai/index.js.map +2 -2
- package/dist/vue/ai/index.js.map +2 -2
- package/package.json +1 -1
package/dist/ai/rag/index.js
CHANGED
|
@@ -13262,6 +13262,7 @@ var validateRAGEmbeddingDimensions = (vector, expectedDimensions, context) => {
|
|
|
13262
13262
|
import { readdir, readFile as readFile2 } from "fs/promises";
|
|
13263
13263
|
import { basename, extname, join, relative, resolve } from "path";
|
|
13264
13264
|
import { gunzipSync, inflateRawSync } from "zlib";
|
|
13265
|
+
var h2IfHttps = (url) => url.startsWith("https://") ? { protocol: "http2" } : {};
|
|
13265
13266
|
var DEFAULT_MAX_CHUNK_LENGTH = 900;
|
|
13266
13267
|
var DEFAULT_CHUNK_OVERLAP = 120;
|
|
13267
13268
|
var DEFAULT_MIN_CHUNK_LENGTH = 80;
|
|
@@ -19440,7 +19441,7 @@ var loadRAGDocumentFromURL = async (input) => {
|
|
|
19440
19441
|
if (!url) {
|
|
19441
19442
|
throw new Error("RAG URL is required");
|
|
19442
19443
|
}
|
|
19443
|
-
const response = await fetch(url);
|
|
19444
|
+
const response = await fetch(url, h2IfHttps(url));
|
|
19444
19445
|
if (!response.ok) {
|
|
19445
19446
|
throw new Error(`Failed to fetch RAG URL ${url}: ${response.status} ${response.statusText}`);
|
|
19446
19447
|
}
|
|
@@ -19488,7 +19489,7 @@ var loadRAGDocumentsFromURLs = async (input) => {
|
|
|
19488
19489
|
if (!url) {
|
|
19489
19490
|
throw new Error("RAG URL is required");
|
|
19490
19491
|
}
|
|
19491
|
-
const response = await fetch(url);
|
|
19492
|
+
const response = await fetch(url, h2IfHttps(url));
|
|
19492
19493
|
if (!response.ok) {
|
|
19493
19494
|
throw new Error(`Failed to fetch RAG URL ${url}: ${response.status} ${response.statusText}`);
|
|
19494
19495
|
}
|
|
@@ -21713,6 +21714,7 @@ var MAX_INGEST_JOBS = 20;
|
|
|
21713
21714
|
var MAX_ADMIN_ACTIONS = 20;
|
|
21714
21715
|
var MAX_ADMIN_JOBS = 20;
|
|
21715
21716
|
var DEFAULT_STALE_AFTER_MS = 1000 * 60 * 60 * 24 * 7;
|
|
21717
|
+
var WEBSOCKET_OPEN = 1;
|
|
21716
21718
|
var REQUEST_USER_SUB_HEADER = "x-absolutejs-user-sub";
|
|
21717
21719
|
var HTML_HEADERS = { "Content-Type": "text/html; charset=utf-8" };
|
|
21718
21720
|
var defaultParseProvider = (content) => {
|
|
@@ -22156,9 +22158,23 @@ var persistSearchTraceIfConfigured = async (input) => {
|
|
|
22156
22158
|
await input.onPrune?.(input.retention);
|
|
22157
22159
|
}
|
|
22158
22160
|
};
|
|
22159
|
-
var
|
|
22161
|
+
var sendWebSocketError = (ws, error, conversationId, messageId) => {
|
|
22162
|
+
if (typeof ws.readyState === "number" && ws.readyState !== WEBSOCKET_OPEN) {
|
|
22163
|
+
return;
|
|
22164
|
+
}
|
|
22165
|
+
try {
|
|
22166
|
+
ws.send(JSON.stringify({
|
|
22167
|
+
conversationId,
|
|
22168
|
+
message: error instanceof Error ? error.message : String(error),
|
|
22169
|
+
messageId,
|
|
22170
|
+
type: "error"
|
|
22171
|
+
}));
|
|
22172
|
+
} catch {}
|
|
22173
|
+
};
|
|
22174
|
+
var getProviderDefaultEmbeddingModel = (embedding) => embedding !== undefined && typeof embedding === "object" && typeof embedding.defaultModel === "string" ? embedding.defaultModel : undefined;
|
|
22175
|
+
var buildRAGContextFromQuery = async (config, topK, scoreThreshold, queryText, embedding, embeddingModel) => {
|
|
22160
22176
|
const collection = config.collection ?? (config.ragStore ? createRAGCollection({
|
|
22161
|
-
defaultModel: embeddingModel
|
|
22177
|
+
defaultModel: embeddingModel,
|
|
22162
22178
|
defaultTopK: topK,
|
|
22163
22179
|
embedding,
|
|
22164
22180
|
rerank: config.rerank,
|
|
@@ -22171,7 +22187,7 @@ var buildRAGContextFromQuery = async (config, topK, scoreThreshold, queryText, r
|
|
|
22171
22187
|
};
|
|
22172
22188
|
}
|
|
22173
22189
|
const queried = await collection.searchWithTrace({
|
|
22174
|
-
model: embeddingModel
|
|
22190
|
+
model: embeddingModel,
|
|
22175
22191
|
query: queryText,
|
|
22176
22192
|
scoreThreshold,
|
|
22177
22193
|
topK
|
|
@@ -22194,7 +22210,27 @@ var buildRAGContextFromQuery = async (config, topK, scoreThreshold, queryText, r
|
|
|
22194
22210
|
trace: queried.trace
|
|
22195
22211
|
};
|
|
22196
22212
|
};
|
|
22213
|
+
var assertEmbeddingModelConfigured = (config) => {
|
|
22214
|
+
if (config.collection !== undefined) {
|
|
22215
|
+
return;
|
|
22216
|
+
}
|
|
22217
|
+
if (config.ragStore === undefined) {
|
|
22218
|
+
return;
|
|
22219
|
+
}
|
|
22220
|
+
if (config.embeddingModel !== undefined) {
|
|
22221
|
+
return;
|
|
22222
|
+
}
|
|
22223
|
+
const { embedding } = config;
|
|
22224
|
+
if (embedding === undefined || typeof embedding !== "object") {
|
|
22225
|
+
return;
|
|
22226
|
+
}
|
|
22227
|
+
if (getProviderDefaultEmbeddingModel(embedding) !== undefined) {
|
|
22228
|
+
return;
|
|
22229
|
+
}
|
|
22230
|
+
throw new Error("ragChat: an embedding provider is configured but no embedding model is set. " + "Pass `embeddingModel` to ragChat() or set `defaultModel` on the embedding provider. " + "The chat model cannot be used for embeddings.");
|
|
22231
|
+
};
|
|
22197
22232
|
var ragChat = (config) => {
|
|
22233
|
+
assertEmbeddingModelConfigured(config);
|
|
22198
22234
|
const path = config.path ?? DEFAULT_PATH;
|
|
22199
22235
|
const authorizeRAGAction = config.authorizeRAGAction;
|
|
22200
22236
|
const resolveRAGAccessScope = config.resolveRAGAccessScope;
|
|
@@ -22656,53 +22692,57 @@ var ragChat = (config) => {
|
|
|
22656
22692
|
}));
|
|
22657
22693
|
};
|
|
22658
22694
|
const handleMessage = async (ws, rawContent, rawConversationId, rawAttachments) => {
|
|
22659
|
-
const parsed = parseProvider(rawContent);
|
|
22660
|
-
const { content, providerName } = parsed;
|
|
22661
|
-
const userMessageId = generateId2();
|
|
22662
22695
|
const assistantMessageId = generateId2();
|
|
22663
22696
|
const conversationId = rawConversationId ?? generateId2();
|
|
22664
|
-
|
|
22665
|
-
|
|
22666
|
-
|
|
22667
|
-
|
|
22668
|
-
|
|
22669
|
-
|
|
22670
|
-
|
|
22671
|
-
|
|
22672
|
-
|
|
22673
|
-
|
|
22674
|
-
|
|
22675
|
-
|
|
22676
|
-
|
|
22677
|
-
|
|
22678
|
-
|
|
22679
|
-
|
|
22680
|
-
|
|
22681
|
-
|
|
22682
|
-
|
|
22683
|
-
|
|
22684
|
-
|
|
22685
|
-
|
|
22686
|
-
|
|
22687
|
-
|
|
22688
|
-
|
|
22689
|
-
|
|
22690
|
-
|
|
22691
|
-
|
|
22692
|
-
|
|
22693
|
-
|
|
22694
|
-
|
|
22695
|
-
|
|
22696
|
-
|
|
22697
|
-
|
|
22698
|
-
|
|
22699
|
-
|
|
22700
|
-
|
|
22701
|
-
|
|
22702
|
-
|
|
22703
|
-
|
|
22704
|
-
|
|
22705
|
-
|
|
22697
|
+
try {
|
|
22698
|
+
const parsed = parseProvider(rawContent);
|
|
22699
|
+
const { content, providerName } = parsed;
|
|
22700
|
+
const userMessageId = generateId2();
|
|
22701
|
+
const conversation = await store.getOrCreate(conversationId);
|
|
22702
|
+
const history = buildHistory(conversation);
|
|
22703
|
+
const model = resolveModel(config, parsed);
|
|
22704
|
+
appendMessage(conversation, {
|
|
22705
|
+
attachments: rawAttachments,
|
|
22706
|
+
content,
|
|
22707
|
+
conversationId,
|
|
22708
|
+
id: userMessageId,
|
|
22709
|
+
role: "user",
|
|
22710
|
+
timestamp: Date.now()
|
|
22711
|
+
});
|
|
22712
|
+
await store.set(conversationId, conversation);
|
|
22713
|
+
const retrievalStartedAt = Date.now();
|
|
22714
|
+
handleRAGRetrieving(ws, conversationId, assistantMessageId, retrievalStartedAt);
|
|
22715
|
+
const provider = config.provider(providerName);
|
|
22716
|
+
const rag = await buildRAGContextFromQuery(config, topK, scoreThreshold, content, config.embedding, config.embeddingModel);
|
|
22717
|
+
const controller = new AbortController;
|
|
22718
|
+
abortControllers.set(conversationId, controller);
|
|
22719
|
+
const { ragContext, sources, trace } = rag;
|
|
22720
|
+
const retrievedAt = Date.now();
|
|
22721
|
+
const retrievalDurationMs = retrievedAt - retrievalStartedAt;
|
|
22722
|
+
handleRAGRetrieved(ws, conversationId, assistantMessageId, sources, retrievalStartedAt, retrievedAt, retrievalDurationMs, trace);
|
|
22723
|
+
await streamAI(ws, conversationId, assistantMessageId, {
|
|
22724
|
+
completeMeta: includeCompleteSources ? { sources } : undefined,
|
|
22725
|
+
maxTurns: config.maxTurns,
|
|
22726
|
+
messages: [
|
|
22727
|
+
...history,
|
|
22728
|
+
buildUserMessage(content, rawAttachments, ragContext)
|
|
22729
|
+
],
|
|
22730
|
+
model,
|
|
22731
|
+
provider,
|
|
22732
|
+
signal: controller.signal,
|
|
22733
|
+
systemPrompt: config.systemPrompt,
|
|
22734
|
+
thinking: resolveThinking(config, providerName, model),
|
|
22735
|
+
tools: resolveTools(config, providerName, model),
|
|
22736
|
+
onComplete: async (fullResponse, usage) => {
|
|
22737
|
+
await appendAssistantMessage(conversationId, assistantMessageId, fullResponse, sources, usage, model, retrievalStartedAt, retrievedAt, retrievalDurationMs, trace);
|
|
22738
|
+
abortControllers.delete(conversationId);
|
|
22739
|
+
config.onComplete?.(conversationId, fullResponse, usage, sources);
|
|
22740
|
+
}
|
|
22741
|
+
});
|
|
22742
|
+
} catch (error) {
|
|
22743
|
+
abortControllers.delete(conversationId);
|
|
22744
|
+
sendWebSocketError(ws, error, conversationId, assistantMessageId);
|
|
22745
|
+
}
|
|
22706
22746
|
};
|
|
22707
22747
|
const resolveCollection = () => config.collection ?? (ragStore ? createRAGCollection({
|
|
22708
22748
|
defaultModel: config.embeddingModel,
|
|
@@ -29421,7 +29461,6 @@ var ragChat = (config) => {
|
|
|
29421
29461
|
const parsed = parseProvider(lastMessage.content);
|
|
29422
29462
|
const { content, providerName } = parsed;
|
|
29423
29463
|
const model = resolveModel(config, parsed);
|
|
29424
|
-
const ragModel = parsed.model ?? model;
|
|
29425
29464
|
const assistantMessageId = generateId2();
|
|
29426
29465
|
const retrievalStartedAt = Date.now();
|
|
29427
29466
|
yield {
|
|
@@ -29433,7 +29472,7 @@ var ragChat = (config) => {
|
|
|
29433
29472
|
event: "retrieval"
|
|
29434
29473
|
};
|
|
29435
29474
|
const provider = config.provider(providerName);
|
|
29436
|
-
const { ragContext, sources, trace } = await buildRAGContextFromQuery(config, topK, scoreThreshold, content,
|
|
29475
|
+
const { ragContext, sources, trace } = await buildRAGContextFromQuery(config, topK, scoreThreshold, content, config.embedding, config.embeddingModel);
|
|
29437
29476
|
const retrievedAt = Date.now();
|
|
29438
29477
|
const retrievalDurationMs = retrievedAt - retrievalStartedAt;
|
|
29439
29478
|
yield {
|
|
@@ -29484,16 +29523,20 @@ var ragChat = (config) => {
|
|
|
29484
29523
|
if (!message) {
|
|
29485
29524
|
return;
|
|
29486
29525
|
}
|
|
29487
|
-
|
|
29488
|
-
|
|
29489
|
-
|
|
29490
|
-
|
|
29491
|
-
|
|
29492
|
-
|
|
29493
|
-
|
|
29494
|
-
|
|
29495
|
-
|
|
29496
|
-
|
|
29526
|
+
try {
|
|
29527
|
+
if (message.type === "cancel") {
|
|
29528
|
+
handleCancel(message.conversationId);
|
|
29529
|
+
return;
|
|
29530
|
+
}
|
|
29531
|
+
if (message.type === "branch") {
|
|
29532
|
+
await handleBranch(ws, message.messageId, message.conversationId);
|
|
29533
|
+
return;
|
|
29534
|
+
}
|
|
29535
|
+
if (message.type === "message") {
|
|
29536
|
+
await handleMessage(ws, message.content, message.conversationId, message.attachments);
|
|
29537
|
+
}
|
|
29538
|
+
} catch (error) {
|
|
29539
|
+
sendWebSocketError(ws, error, "conversationId" in message ? message.conversationId : undefined);
|
|
29497
29540
|
}
|
|
29498
29541
|
}
|
|
29499
29542
|
}).post(`${path}/search`, async ({ body, request, set }) => {
|
|
@@ -30865,6 +30908,94 @@ var ragChat = (config) => {
|
|
|
30865
30908
|
// src/ai/rag/htmxConfig.ts
|
|
30866
30909
|
var createRAGHTMXConfig = (config) => config;
|
|
30867
30910
|
var createRAGHTMXWorkflowRenderConfig = (config) => config;
|
|
30911
|
+
// src/ai/rag/rerankerProviders.ts
|
|
30912
|
+
var rowScore = (row) => row.relevance_score ?? row.relevanceScore ?? row.score ?? 0;
|
|
30913
|
+
var applyRanking = (candidates, rows, topK) => {
|
|
30914
|
+
const ranked = [];
|
|
30915
|
+
for (const row of rows) {
|
|
30916
|
+
const candidate = candidates[row.index];
|
|
30917
|
+
if (!candidate)
|
|
30918
|
+
continue;
|
|
30919
|
+
ranked.push({ ...candidate, score: rowScore(row) });
|
|
30920
|
+
}
|
|
30921
|
+
ranked.sort((left, right) => right.score - left.score);
|
|
30922
|
+
return ranked.slice(0, topK);
|
|
30923
|
+
};
|
|
30924
|
+
var limitCandidates = (input) => {
|
|
30925
|
+
const cap = input.candidateTopK ?? input.results.length;
|
|
30926
|
+
return input.results.slice(0, Math.max(0, cap));
|
|
30927
|
+
};
|
|
30928
|
+
var createHttpCrossEncoderReranker = (options) => {
|
|
30929
|
+
const fetchImpl = options.config.fetch ?? fetch;
|
|
30930
|
+
const defaultModel = options.config.defaultModel ?? options.fallbackModel;
|
|
30931
|
+
return {
|
|
30932
|
+
defaultModel,
|
|
30933
|
+
providerName: options.providerName,
|
|
30934
|
+
rerank: async (input) => {
|
|
30935
|
+
const candidates = limitCandidates(input);
|
|
30936
|
+
if (candidates.length === 0)
|
|
30937
|
+
return [];
|
|
30938
|
+
const model = input.model ?? defaultModel;
|
|
30939
|
+
const documents = candidates.map((candidate) => candidate.chunkText);
|
|
30940
|
+
const topN = Math.min(input.topK, candidates.length);
|
|
30941
|
+
const response = await fetchImpl(options.endpoint, {
|
|
30942
|
+
body: JSON.stringify(options.buildBody({ documents, model, query: input.query, topN })),
|
|
30943
|
+
headers: {
|
|
30944
|
+
Authorization: `Bearer ${options.config.apiKey}`,
|
|
30945
|
+
"Content-Type": "application/json",
|
|
30946
|
+
...options.config.headers
|
|
30947
|
+
},
|
|
30948
|
+
method: "POST"
|
|
30949
|
+
});
|
|
30950
|
+
if (!response.ok) {
|
|
30951
|
+
throw new Error(`${options.providerName} rerank failed: HTTP ${response.status}`);
|
|
30952
|
+
}
|
|
30953
|
+
const payload = await response.json();
|
|
30954
|
+
const rows = payload.results ?? payload.data ?? [];
|
|
30955
|
+
const ranked = applyRanking(candidates, rows, input.topK);
|
|
30956
|
+
if (input.scoreThreshold !== undefined) {
|
|
30957
|
+
return ranked.filter((result) => result.score >= input.scoreThreshold);
|
|
30958
|
+
}
|
|
30959
|
+
return ranked;
|
|
30960
|
+
}
|
|
30961
|
+
};
|
|
30962
|
+
};
|
|
30963
|
+
var createCohereRAGReranker = (config) => createHttpCrossEncoderReranker({
|
|
30964
|
+
buildBody: ({ model, query, documents, topN }) => ({
|
|
30965
|
+
documents,
|
|
30966
|
+
model,
|
|
30967
|
+
query,
|
|
30968
|
+
top_n: topN
|
|
30969
|
+
}),
|
|
30970
|
+
config,
|
|
30971
|
+
endpoint: `${config.baseUrl ?? "https://api.cohere.com"}/v2/rerank`,
|
|
30972
|
+
fallbackModel: "rerank-v3.5",
|
|
30973
|
+
providerName: "cohere"
|
|
30974
|
+
});
|
|
30975
|
+
var createVoyageRAGReranker = (config) => createHttpCrossEncoderReranker({
|
|
30976
|
+
buildBody: ({ model, query, documents, topN }) => ({
|
|
30977
|
+
documents,
|
|
30978
|
+
model,
|
|
30979
|
+
query,
|
|
30980
|
+
top_k: topN
|
|
30981
|
+
}),
|
|
30982
|
+
config,
|
|
30983
|
+
endpoint: `${config.baseUrl ?? "https://api.voyageai.com"}/v1/rerank`,
|
|
30984
|
+
fallbackModel: "rerank-2",
|
|
30985
|
+
providerName: "voyage"
|
|
30986
|
+
});
|
|
30987
|
+
var createJinaRAGReranker = (config) => createHttpCrossEncoderReranker({
|
|
30988
|
+
buildBody: ({ model, query, documents, topN }) => ({
|
|
30989
|
+
documents,
|
|
30990
|
+
model,
|
|
30991
|
+
query,
|
|
30992
|
+
top_n: topN
|
|
30993
|
+
}),
|
|
30994
|
+
config,
|
|
30995
|
+
endpoint: `${config.baseUrl ?? "https://api.jina.ai"}/v1/rerank`,
|
|
30996
|
+
fallbackModel: "jina-reranker-v2-base-multilingual",
|
|
30997
|
+
providerName: "jina"
|
|
30998
|
+
});
|
|
30868
30999
|
// src/ai/rag/retrievalStrategies.ts
|
|
30869
31000
|
var tokenize4 = (value) => value.toLowerCase().split(/[^a-z0-9]+/i).map((token) => token.trim()).filter((token) => token.length > 0);
|
|
30870
31001
|
var hasAnyToken2 = (tokens, values) => values.some((value) => tokens.includes(value));
|
|
@@ -31888,7 +32019,9 @@ var toErrorMessage3 = async (response, label) => {
|
|
|
31888
32019
|
return new Error(`${label}: ${response.status} ${response.statusText}${detailMessage ? ` (${detailMessage})` : ""}`);
|
|
31889
32020
|
};
|
|
31890
32021
|
var normalizeString = (value) => typeof value === "string" && value.trim().length > 0 ? value.trim() : undefined;
|
|
31891
|
-
var toUniqueStringArray = (values) => [
|
|
32022
|
+
var toUniqueStringArray = (values) => [
|
|
32023
|
+
...new Set(values.filter((value) => typeof value === "string" && value.length > 0))
|
|
32024
|
+
];
|
|
31892
32025
|
var toContactTitle = (person, fallbackId) => {
|
|
31893
32026
|
const primaryName = person.names?.find((name) => normalizeString(name.displayName) !== undefined);
|
|
31894
32027
|
const displayName = normalizeString(primaryName?.displayName);
|
|
@@ -32176,6 +32309,7 @@ var {S3Client } = globalThis.Bun;
|
|
|
32176
32309
|
import { createHash } from "crypto";
|
|
32177
32310
|
import { mkdir as mkdir2, readFile as readFile3, readdir as readdir2 } from "fs/promises";
|
|
32178
32311
|
import { basename as basename2, dirname as dirname3, extname as extname2, join as join2, relative as relative2, resolve as resolve2 } from "path";
|
|
32312
|
+
var h2IfHttps2 = (url) => url.startsWith("https://") ? { protocol: "http2" } : {};
|
|
32179
32313
|
var toSyncError = (caught) => caught instanceof Error ? caught.message : String(caught);
|
|
32180
32314
|
var wait = async (delayMs) => {
|
|
32181
32315
|
if (!(delayMs > 0)) {
|
|
@@ -32988,7 +33122,7 @@ var isFeedDocument = (value) => {
|
|
|
32988
33122
|
return trimmed.includes("<rss") || trimmed.includes("<channel") || trimmed.includes("<feed") || trimmed.includes("<entry");
|
|
32989
33123
|
};
|
|
32990
33124
|
var discoverFeedsFromHTML = async (feed) => {
|
|
32991
|
-
const response = await fetch(feed.url);
|
|
33125
|
+
const response = await fetch(feed.url, h2IfHttps2(feed.url));
|
|
32992
33126
|
if (!response.ok) {
|
|
32993
33127
|
return [];
|
|
32994
33128
|
}
|
|
@@ -33034,7 +33168,7 @@ var discoverFeedsFromHTML = async (feed) => {
|
|
|
33034
33168
|
}
|
|
33035
33169
|
const validated = [];
|
|
33036
33170
|
for (const candidate of discovered.values()) {
|
|
33037
|
-
const candidateResponse = await fetch(candidate.url);
|
|
33171
|
+
const candidateResponse = await fetch(candidate.url, h2IfHttps2(candidate.url));
|
|
33038
33172
|
if (!candidateResponse.ok) {
|
|
33039
33173
|
continue;
|
|
33040
33174
|
}
|
|
@@ -33098,7 +33232,7 @@ var parseSitemapEntries = (sitemap, value) => {
|
|
|
33098
33232
|
};
|
|
33099
33233
|
var discoverSitemapsFromRobots = async (sitemap) => {
|
|
33100
33234
|
const robotsURL = resolveSiblingURL(sitemap.url, "/robots.txt");
|
|
33101
|
-
const response = await fetch(robotsURL);
|
|
33235
|
+
const response = await fetch(robotsURL, h2IfHttps2(robotsURL));
|
|
33102
33236
|
if (!response.ok) {
|
|
33103
33237
|
return [];
|
|
33104
33238
|
}
|
|
@@ -33119,7 +33253,7 @@ var discoverSitemapsFromRobots = async (sitemap) => {
|
|
|
33119
33253
|
};
|
|
33120
33254
|
var loadRobotsDisallowRules = async (siteURL) => {
|
|
33121
33255
|
const robotsURL = resolveSiblingURL(siteURL, "/robots.txt");
|
|
33122
|
-
const response = await fetch(robotsURL);
|
|
33256
|
+
const response = await fetch(robotsURL, h2IfHttps2(robotsURL));
|
|
33123
33257
|
if (!response.ok) {
|
|
33124
33258
|
return [];
|
|
33125
33259
|
}
|
|
@@ -33160,7 +33294,7 @@ var discoverRecursiveSitemapURLs = async (input) => {
|
|
|
33160
33294
|
}
|
|
33161
33295
|
seen.add(current.sitemap.url);
|
|
33162
33296
|
resolved.push(current.sitemap);
|
|
33163
|
-
const response = await fetch(current.sitemap.url);
|
|
33297
|
+
const response = await fetch(current.sitemap.url, h2IfHttps2(current.sitemap.url));
|
|
33164
33298
|
if (!response.ok) {
|
|
33165
33299
|
throw new Error(`Failed to load sitemap ${current.sitemap.url}: ${response.status} ${response.statusText}`);
|
|
33166
33300
|
}
|
|
@@ -33311,7 +33445,7 @@ var discoverLinkedPagesFromHTML = async (input) => {
|
|
|
33311
33445
|
pruneCounts.robotsBlockedCount += 1;
|
|
33312
33446
|
continue;
|
|
33313
33447
|
}
|
|
33314
|
-
const response = await fetch(current.url);
|
|
33448
|
+
const response = await fetch(current.url, h2IfHttps2(current.url));
|
|
33315
33449
|
if (!response.ok) {
|
|
33316
33450
|
continue;
|
|
33317
33451
|
}
|
|
@@ -33566,6 +33700,7 @@ var loadDiscoveredGitHubRepositoryFiles = async (input) => {
|
|
|
33566
33700
|
repo: input.repo
|
|
33567
33701
|
});
|
|
33568
33702
|
const response = await fetch(requestURL, {
|
|
33703
|
+
...h2IfHttps2(requestURL),
|
|
33569
33704
|
headers: input.requestHeaders
|
|
33570
33705
|
});
|
|
33571
33706
|
if (!response.ok) {
|
|
@@ -33729,7 +33864,7 @@ var createRAGFeedSyncSource = (options) => ({
|
|
|
33729
33864
|
}
|
|
33730
33865
|
}
|
|
33731
33866
|
const discoveredEntries = (await Promise.all([...feedMap.values()].map(async (feed) => {
|
|
33732
|
-
const response = await fetch(feed.url);
|
|
33867
|
+
const response = await fetch(feed.url, h2IfHttps2(feed.url));
|
|
33733
33868
|
if (!response.ok) {
|
|
33734
33869
|
throw new Error(`Failed to load feed ${feed.url}: ${response.status} ${response.statusText}`);
|
|
33735
33870
|
}
|
|
@@ -33803,7 +33938,7 @@ var createRAGSitemapSyncSource = (options) => ({
|
|
|
33803
33938
|
}
|
|
33804
33939
|
}
|
|
33805
33940
|
const discoveredEntries = (await Promise.all([...resolvedSitemapMap.values()].map(async (sitemap) => {
|
|
33806
|
-
const response = await fetch(sitemap.url);
|
|
33941
|
+
const response = await fetch(sitemap.url, h2IfHttps2(sitemap.url));
|
|
33807
33942
|
if (!response.ok) {
|
|
33808
33943
|
throw new Error(`Failed to load sitemap ${sitemap.url}: ${response.status} ${response.statusText}`);
|
|
33809
33944
|
}
|
|
@@ -33868,7 +34003,7 @@ var createRAGSiteDiscoverySyncSource = (options) => ({
|
|
|
33868
34003
|
}
|
|
33869
34004
|
}
|
|
33870
34005
|
const feedEntries = (await Promise.all([...feedMap.values()].map(async (feed) => {
|
|
33871
|
-
const response = await fetch(feed.url);
|
|
34006
|
+
const response = await fetch(feed.url, h2IfHttps2(feed.url));
|
|
33872
34007
|
if (!response.ok) {
|
|
33873
34008
|
throw new Error(`Failed to load feed ${feed.url}: ${response.status} ${response.statusText}`);
|
|
33874
34009
|
}
|
|
@@ -33918,7 +34053,7 @@ var createRAGSiteDiscoverySyncSource = (options) => ({
|
|
|
33918
34053
|
sitemap
|
|
33919
34054
|
})))).flat();
|
|
33920
34055
|
const sitemapEntries = (await Promise.all(resolvedSitemaps.map(async (sitemap) => {
|
|
33921
|
-
const response = await fetch(sitemap.url);
|
|
34056
|
+
const response = await fetch(sitemap.url, h2IfHttps2(sitemap.url));
|
|
33922
34057
|
if (!response.ok) {
|
|
33923
34058
|
throw new Error(`Failed to load sitemap ${sitemap.url}: ${response.status} ${response.statusText}`);
|
|
33924
34059
|
}
|
|
@@ -37325,6 +37460,7 @@ export {
|
|
|
37325
37460
|
evaluateRAGAnswerGroundingCase,
|
|
37326
37461
|
evaluateRAGAnswerGrounding,
|
|
37327
37462
|
deepseekEmbeddings,
|
|
37463
|
+
createVoyageRAGReranker,
|
|
37328
37464
|
createTextFileExtractor,
|
|
37329
37465
|
createSQLiteRAGStore,
|
|
37330
37466
|
createRAGVector,
|
|
@@ -37422,12 +37558,14 @@ export {
|
|
|
37422
37558
|
createPDFFileExtractor,
|
|
37423
37559
|
createOfficeDocumentExtractor,
|
|
37424
37560
|
createLegacyDocumentExtractor,
|
|
37561
|
+
createJinaRAGReranker,
|
|
37425
37562
|
createInMemoryRAGStore,
|
|
37426
37563
|
createHeuristicRAGRetrievalStrategy,
|
|
37427
37564
|
createHeuristicRAGReranker,
|
|
37428
37565
|
createHeuristicRAGQueryTransform,
|
|
37429
37566
|
createEmailExtractor,
|
|
37430
37567
|
createEPUBExtractor,
|
|
37568
|
+
createCohereRAGReranker,
|
|
37431
37569
|
createBuiltinArchiveExpander,
|
|
37432
37570
|
compareRAGRetrievalTraceSummaries,
|
|
37433
37571
|
compareRAGRetrievalStrategies,
|
|
@@ -37511,5 +37649,5 @@ export {
|
|
|
37511
37649
|
addRAGEvaluationSuiteCase
|
|
37512
37650
|
};
|
|
37513
37651
|
|
|
37514
|
-
//# debugId=
|
|
37652
|
+
//# debugId=3E3026F16C216BA364756E2164756E21
|
|
37515
37653
|
//# sourceMappingURL=index.js.map
|