@absolutejs/absolute 0.19.0-beta.604 → 0.19.0-beta.605
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 +186 -6
- package/dist/ai/client/index.js.map +4 -4
- package/dist/ai/client/ui.js +190 -6
- package/dist/ai/client/ui.js.map +4 -4
- package/dist/ai/index.js +289 -36
- package/dist/ai/index.js.map +7 -7
- package/dist/ai/rag/quality.js +17 -6
- package/dist/ai/rag/quality.js.map +3 -3
- package/dist/ai/rag/ui.js +190 -6
- package/dist/ai/rag/ui.js.map +4 -4
- package/dist/ai-client/angular/ai/index.js +185 -5
- package/dist/ai-client/react/ai/index.js +200 -6
- package/dist/ai-client/vue/ai/index.js +289 -97
- package/dist/angular/ai/index.js +186 -6
- package/dist/angular/ai/index.js.map +4 -4
- package/dist/angular/index.js +2 -2
- package/dist/angular/index.js.map +1 -1
- package/dist/angular/server.js +2 -2
- package/dist/angular/server.js.map +1 -1
- package/dist/build.js +2 -2
- package/dist/build.js.map +1 -1
- package/dist/index.js +2 -2
- package/dist/index.js.map +1 -1
- package/dist/react/ai/index.js +201 -7
- package/dist/react/ai/index.js.map +6 -6
- package/dist/src/ai/client/ui.d.ts +1 -1
- package/dist/src/ai/rag/index.d.ts +1 -1
- package/dist/src/ai/rag/presentation.d.ts +7 -1
- package/dist/src/ai/rag/ui.d.ts +1 -1
- package/dist/src/react/ai/useRAG.d.ts +5 -0
- package/dist/src/react/ai/useRAGChunkPreview.d.ts +4 -0
- package/dist/src/react/ai/useRAGSources.d.ts +1 -0
- package/dist/src/svelte/ai/createRAG.d.ts +5 -0
- package/dist/src/svelte/ai/createRAGChunkPreview.d.ts +4 -0
- package/dist/src/svelte/ai/createRAGSources.d.ts +1 -0
- package/dist/src/vue/ai/useRAG.d.ts +65 -0
- package/dist/src/vue/ai/useRAGChunkPreview.d.ts +34 -0
- package/dist/src/vue/ai/useRAGSearch.d.ts +30 -0
- package/dist/src/vue/ai/useRAGSources.d.ts +1 -0
- package/dist/svelte/ai/index.js +247 -53
- package/dist/svelte/ai/index.js.map +6 -6
- package/dist/types/ai.d.ts +60 -0
- package/dist/vue/ai/index.js +253 -59
- package/dist/vue/ai/index.js.map +6 -6
- package/package.json +1 -1
package/dist/react/ai/index.js
CHANGED
|
@@ -243,6 +243,11 @@ var buildContextLabel = (metadata) => {
|
|
|
243
243
|
if (speaker) {
|
|
244
244
|
return `Speaker ${speaker}`;
|
|
245
245
|
}
|
|
246
|
+
const sectionPath = Array.isArray(metadata.sectionPath) ? metadata.sectionPath.map((value) => getContextString(value)).filter((value) => typeof value === "string") : [];
|
|
247
|
+
const sectionTitle = getContextString(metadata.sectionTitle) ?? sectionPath.at(-1);
|
|
248
|
+
if (sectionTitle) {
|
|
249
|
+
return `Section ${sectionTitle}`;
|
|
250
|
+
}
|
|
246
251
|
return;
|
|
247
252
|
};
|
|
248
253
|
var formatMediaTimestamp = (value) => {
|
|
@@ -292,6 +297,10 @@ var buildLocatorLabel = (metadata, source, title) => {
|
|
|
292
297
|
if (mediaStart) {
|
|
293
298
|
return `Timestamp ${mediaStart}`;
|
|
294
299
|
}
|
|
300
|
+
const sectionPath = Array.isArray(metadata.sectionPath) ? metadata.sectionPath.map((value) => getContextString(value)).filter((value) => typeof value === "string") : [];
|
|
301
|
+
if (sectionPath.length > 0) {
|
|
302
|
+
return `Section ${sectionPath.join(" > ")}`;
|
|
303
|
+
}
|
|
295
304
|
return;
|
|
296
305
|
};
|
|
297
306
|
var formatTimestampLabel = (value) => {
|
|
@@ -341,8 +350,10 @@ var buildExcerpt = (text, maxLength = 160) => {
|
|
|
341
350
|
var buildGroundingReferenceEvidenceLabel = (reference) => [reference.label, reference.locatorLabel, reference.contextLabel].filter((value) => Boolean(value && value.length > 0)).filter((value, index, values) => values.findIndex((entry) => entry === value) === index).join(" \xB7 ");
|
|
342
351
|
var buildGroundingReferenceEvidenceSummary = (reference) => [
|
|
343
352
|
reference.source ?? reference.title ?? reference.chunkId,
|
|
353
|
+
reference.locatorLabel,
|
|
354
|
+
reference.contextLabel,
|
|
344
355
|
reference.provenanceLabel
|
|
345
|
-
].filter((value) => Boolean(value && value.length > 0)).join(" \xB7 ");
|
|
356
|
+
].filter((value) => Boolean(value && value.length > 0)).filter((value, index, values) => values.findIndex((entry) => entry === value) === index).join(" \xB7 ");
|
|
346
357
|
var buildGroundedAnswerCitationDetail = (reference) => ({
|
|
347
358
|
contextLabel: reference.contextLabel,
|
|
348
359
|
evidenceLabel: buildGroundingReferenceEvidenceLabel(reference),
|
|
@@ -366,12 +377,12 @@ var buildRAGCitations = (sources) => {
|
|
|
366
377
|
continue;
|
|
367
378
|
unique.set(key, {
|
|
368
379
|
chunkId: source.chunkId,
|
|
369
|
-
contextLabel: buildContextLabel(source.metadata),
|
|
380
|
+
contextLabel: source.labels?.contextLabel ?? buildContextLabel(source.metadata),
|
|
370
381
|
key,
|
|
371
382
|
label: buildSourceLabel(source),
|
|
372
|
-
locatorLabel: buildLocatorLabel(source.metadata, source.source, source.title),
|
|
383
|
+
locatorLabel: source.labels?.locatorLabel ?? buildLocatorLabel(source.metadata, source.source, source.title),
|
|
373
384
|
metadata: source.metadata,
|
|
374
|
-
provenanceLabel: buildProvenanceLabel(source.metadata),
|
|
385
|
+
provenanceLabel: source.labels?.provenanceLabel ?? buildProvenanceLabel(source.metadata),
|
|
375
386
|
score: source.score,
|
|
376
387
|
source: source.source,
|
|
377
388
|
text: source.text,
|
|
@@ -441,7 +452,7 @@ var buildRAGGroundingReferences = (sources) => {
|
|
|
441
452
|
const citationReferenceMap = buildRAGCitationReferenceMap(citations);
|
|
442
453
|
return citations.map((citation) => ({
|
|
443
454
|
chunkId: citation.chunkId,
|
|
444
|
-
contextLabel: buildContextLabel(citation.metadata),
|
|
455
|
+
contextLabel: citation.contextLabel ?? buildContextLabel(citation.metadata),
|
|
445
456
|
excerpt: buildExcerpt(citation.text),
|
|
446
457
|
label: citation.label,
|
|
447
458
|
locatorLabel: citation.locatorLabel ?? buildLocatorLabel(citation.metadata, citation.source, citation.title),
|
|
@@ -4014,6 +4025,11 @@ var buildContextLabel2 = (metadata) => {
|
|
|
4014
4025
|
if (speaker) {
|
|
4015
4026
|
return `Speaker ${speaker}`;
|
|
4016
4027
|
}
|
|
4028
|
+
const sectionPath = Array.isArray(metadata.sectionPath) ? metadata.sectionPath.map((value) => getContextString2(value)).filter((value) => typeof value === "string") : [];
|
|
4029
|
+
const sectionTitle = getContextString2(metadata.sectionTitle) ?? sectionPath.at(-1);
|
|
4030
|
+
if (sectionTitle) {
|
|
4031
|
+
return `Section ${sectionTitle}`;
|
|
4032
|
+
}
|
|
4017
4033
|
return;
|
|
4018
4034
|
};
|
|
4019
4035
|
var buildLocatorLabel2 = (metadata, source, title) => {
|
|
@@ -4053,6 +4069,10 @@ var buildLocatorLabel2 = (metadata, source, title) => {
|
|
|
4053
4069
|
if (mediaStart) {
|
|
4054
4070
|
return `Timestamp ${mediaStart}`;
|
|
4055
4071
|
}
|
|
4072
|
+
const sectionPath = Array.isArray(metadata.sectionPath) ? metadata.sectionPath.map((value) => getContextString2(value)).filter((value) => typeof value === "string") : [];
|
|
4073
|
+
if (sectionPath.length > 0) {
|
|
4074
|
+
return `Section ${sectionPath.join(" > ")}`;
|
|
4075
|
+
}
|
|
4056
4076
|
return;
|
|
4057
4077
|
};
|
|
4058
4078
|
var buildProvenanceLabel2 = (metadata) => {
|
|
@@ -4098,6 +4118,33 @@ var buildRAGSourceLabels = ({
|
|
|
4098
4118
|
provenanceLabel
|
|
4099
4119
|
};
|
|
4100
4120
|
};
|
|
4121
|
+
var buildRAGChunkStructure = (metadata) => {
|
|
4122
|
+
if (!metadata) {
|
|
4123
|
+
return;
|
|
4124
|
+
}
|
|
4125
|
+
const sectionPath = Array.isArray(metadata.sectionPath) ? metadata.sectionPath.filter((value) => typeof value === "string" && value.trim().length > 0) : undefined;
|
|
4126
|
+
const sectionKind = metadata.sectionKind === "markdown_heading" || metadata.sectionKind === "html_heading" ? metadata.sectionKind : undefined;
|
|
4127
|
+
const section = {
|
|
4128
|
+
depth: getContextNumber2(metadata.sectionDepth),
|
|
4129
|
+
kind: sectionKind,
|
|
4130
|
+
path: sectionPath && sectionPath.length > 0 ? sectionPath : undefined,
|
|
4131
|
+
title: getContextString2(metadata.sectionTitle)
|
|
4132
|
+
};
|
|
4133
|
+
const sequence = {
|
|
4134
|
+
nextChunkId: getContextString2(metadata.nextChunkId),
|
|
4135
|
+
previousChunkId: getContextString2(metadata.previousChunkId),
|
|
4136
|
+
sectionChunkCount: getContextNumber2(metadata.sectionChunkCount),
|
|
4137
|
+
sectionChunkId: getContextString2(metadata.sectionChunkId),
|
|
4138
|
+
sectionChunkIndex: getContextNumber2(metadata.sectionChunkIndex)
|
|
4139
|
+
};
|
|
4140
|
+
if (!section.title && (!section.path || section.path.length === 0) && typeof section.depth !== "number" && !section.kind && !sequence.nextChunkId && !sequence.previousChunkId && typeof sequence.sectionChunkCount !== "number" && !sequence.sectionChunkId && typeof sequence.sectionChunkIndex !== "number") {
|
|
4141
|
+
return;
|
|
4142
|
+
}
|
|
4143
|
+
return {
|
|
4144
|
+
section: section.title || section.path && section.path.length > 0 || typeof section.depth === "number" || section.kind ? section : undefined,
|
|
4145
|
+
sequence: sequence.nextChunkId || sequence.previousChunkId || typeof sequence.sectionChunkCount === "number" || sequence.sectionChunkId || typeof sequence.sectionChunkIndex === "number" ? sequence : undefined
|
|
4146
|
+
};
|
|
4147
|
+
};
|
|
4101
4148
|
var buildExcerpt2 = (text, maxLength = 160) => {
|
|
4102
4149
|
const normalized = text.replaceAll(/\s+/g, " ").trim();
|
|
4103
4150
|
if (normalized.length <= maxLength) {
|
|
@@ -4105,6 +4152,136 @@ var buildExcerpt2 = (text, maxLength = 160) => {
|
|
|
4105
4152
|
}
|
|
4106
4153
|
return `${normalized.slice(0, Math.max(0, maxLength - 1)).trimEnd()}\u2026`;
|
|
4107
4154
|
};
|
|
4155
|
+
var buildRAGChunkGraph = (chunks) => {
|
|
4156
|
+
const nodes = [];
|
|
4157
|
+
const edges = [];
|
|
4158
|
+
const edgeKeys = new Set;
|
|
4159
|
+
const sections = new Map;
|
|
4160
|
+
for (const chunk of chunks) {
|
|
4161
|
+
const labels = chunk.labels ?? buildRAGSourceLabels({
|
|
4162
|
+
metadata: chunk.metadata,
|
|
4163
|
+
source: chunk.source,
|
|
4164
|
+
title: chunk.title
|
|
4165
|
+
});
|
|
4166
|
+
const structure = chunk.structure ?? buildRAGChunkStructure(chunk.metadata);
|
|
4167
|
+
nodes.push({
|
|
4168
|
+
chunkId: chunk.chunkId,
|
|
4169
|
+
contextLabel: labels?.contextLabel,
|
|
4170
|
+
label: chunk.source ?? chunk.title ?? chunk.chunkId,
|
|
4171
|
+
locatorLabel: labels?.locatorLabel,
|
|
4172
|
+
provenanceLabel: labels?.provenanceLabel,
|
|
4173
|
+
score: chunk.score,
|
|
4174
|
+
source: chunk.source,
|
|
4175
|
+
structure,
|
|
4176
|
+
title: chunk.title
|
|
4177
|
+
});
|
|
4178
|
+
const previousChunkId = structure?.sequence?.previousChunkId;
|
|
4179
|
+
if (previousChunkId) {
|
|
4180
|
+
const key = `previous:${previousChunkId}:${chunk.chunkId}`;
|
|
4181
|
+
if (!edgeKeys.has(key)) {
|
|
4182
|
+
edgeKeys.add(key);
|
|
4183
|
+
edges.push({
|
|
4184
|
+
fromChunkId: previousChunkId,
|
|
4185
|
+
relation: "previous",
|
|
4186
|
+
toChunkId: chunk.chunkId
|
|
4187
|
+
});
|
|
4188
|
+
}
|
|
4189
|
+
}
|
|
4190
|
+
const nextChunkId = structure?.sequence?.nextChunkId;
|
|
4191
|
+
if (nextChunkId) {
|
|
4192
|
+
const key = `next:${chunk.chunkId}:${nextChunkId}`;
|
|
4193
|
+
if (!edgeKeys.has(key)) {
|
|
4194
|
+
edgeKeys.add(key);
|
|
4195
|
+
edges.push({
|
|
4196
|
+
fromChunkId: chunk.chunkId,
|
|
4197
|
+
relation: "next",
|
|
4198
|
+
toChunkId: nextChunkId
|
|
4199
|
+
});
|
|
4200
|
+
}
|
|
4201
|
+
}
|
|
4202
|
+
const sectionId = structure?.sequence?.sectionChunkId;
|
|
4203
|
+
if (sectionId) {
|
|
4204
|
+
const existing = sections.get(sectionId);
|
|
4205
|
+
if (!existing) {
|
|
4206
|
+
sections.set(sectionId, {
|
|
4207
|
+
chunkCount: structure.sequence?.sectionChunkCount ?? 1,
|
|
4208
|
+
chunkIds: [chunk.chunkId],
|
|
4209
|
+
depth: structure.section?.depth,
|
|
4210
|
+
id: sectionId,
|
|
4211
|
+
kind: structure.section?.kind,
|
|
4212
|
+
path: structure.section?.path,
|
|
4213
|
+
title: structure.section?.title
|
|
4214
|
+
});
|
|
4215
|
+
continue;
|
|
4216
|
+
}
|
|
4217
|
+
if (!existing.chunkIds.includes(chunk.chunkId)) {
|
|
4218
|
+
existing.chunkIds.push(chunk.chunkId);
|
|
4219
|
+
}
|
|
4220
|
+
existing.chunkCount = Math.max(existing.chunkCount, structure.sequence?.sectionChunkCount ?? existing.chunkCount);
|
|
4221
|
+
}
|
|
4222
|
+
}
|
|
4223
|
+
for (const section of sections.values()) {
|
|
4224
|
+
section.chunkIds.sort((left, right) => {
|
|
4225
|
+
const leftNode = nodes.find((node) => node.chunkId === left);
|
|
4226
|
+
const rightNode = nodes.find((node) => node.chunkId === right);
|
|
4227
|
+
const leftIndex = leftNode?.structure?.sequence?.sectionChunkIndex ?? Number.MAX_SAFE_INTEGER;
|
|
4228
|
+
const rightIndex = rightNode?.structure?.sequence?.sectionChunkIndex ?? Number.MAX_SAFE_INTEGER;
|
|
4229
|
+
if (leftIndex !== rightIndex) {
|
|
4230
|
+
return leftIndex - rightIndex;
|
|
4231
|
+
}
|
|
4232
|
+
return left.localeCompare(right);
|
|
4233
|
+
});
|
|
4234
|
+
}
|
|
4235
|
+
nodes.sort((left, right) => {
|
|
4236
|
+
const leftSection = left.structure?.sequence?.sectionChunkIndex ?? Number.MAX_SAFE_INTEGER;
|
|
4237
|
+
const rightSection = right.structure?.sequence?.sectionChunkIndex ?? Number.MAX_SAFE_INTEGER;
|
|
4238
|
+
if (leftSection !== rightSection) {
|
|
4239
|
+
return leftSection - rightSection;
|
|
4240
|
+
}
|
|
4241
|
+
const leftScore = left.score ?? Number.NEGATIVE_INFINITY;
|
|
4242
|
+
const rightScore = right.score ?? Number.NEGATIVE_INFINITY;
|
|
4243
|
+
if (leftScore !== rightScore) {
|
|
4244
|
+
return rightScore - leftScore;
|
|
4245
|
+
}
|
|
4246
|
+
return left.label.localeCompare(right.label);
|
|
4247
|
+
});
|
|
4248
|
+
return {
|
|
4249
|
+
edges,
|
|
4250
|
+
nodes,
|
|
4251
|
+
sections: [...sections.values()].sort((left, right) => (left.title ?? left.id).localeCompare(right.title ?? right.id))
|
|
4252
|
+
};
|
|
4253
|
+
};
|
|
4254
|
+
var buildRAGChunkPreviewGraph = (preview) => buildRAGChunkGraph(preview.chunks.map((chunk) => ({
|
|
4255
|
+
chunkId: chunk.chunkId,
|
|
4256
|
+
labels: chunk.labels,
|
|
4257
|
+
metadata: chunk.metadata,
|
|
4258
|
+
source: chunk.source ?? preview.document.source,
|
|
4259
|
+
structure: chunk.structure,
|
|
4260
|
+
title: chunk.title ?? preview.document.title
|
|
4261
|
+
})));
|
|
4262
|
+
var buildRAGChunkPreviewNavigation = (preview, activeChunkId) => buildRAGChunkGraphNavigation(buildRAGChunkPreviewGraph(preview), activeChunkId);
|
|
4263
|
+
var buildRAGChunkGraphNavigation = (graph, activeChunkId) => {
|
|
4264
|
+
if (graph.nodes.length === 0) {
|
|
4265
|
+
return {
|
|
4266
|
+
activeChunkId,
|
|
4267
|
+
sectionNodes: []
|
|
4268
|
+
};
|
|
4269
|
+
}
|
|
4270
|
+
const activeNode = (activeChunkId ? graph.nodes.find((node) => node.chunkId === activeChunkId) : undefined) ?? graph.nodes[0];
|
|
4271
|
+
const resolvedActiveChunkId = activeNode?.chunkId;
|
|
4272
|
+
const previousNode = activeNode?.structure?.sequence?.previousChunkId ? graph.nodes.find((node) => node.chunkId === activeNode.structure?.sequence?.previousChunkId) : undefined;
|
|
4273
|
+
const nextNode = activeNode?.structure?.sequence?.nextChunkId ? graph.nodes.find((node) => node.chunkId === activeNode.structure?.sequence?.nextChunkId) : undefined;
|
|
4274
|
+
const section = activeNode?.structure?.sequence?.sectionChunkId ? graph.sections.find((entry) => entry.id === activeNode.structure?.sequence?.sectionChunkId) : undefined;
|
|
4275
|
+
const sectionNodes = section ? section.chunkIds.map((chunkId) => graph.nodes.find((node) => node.chunkId === chunkId)).filter((node) => Boolean(node)) : activeNode ? [activeNode] : [];
|
|
4276
|
+
return {
|
|
4277
|
+
activeChunkId: resolvedActiveChunkId,
|
|
4278
|
+
activeNode,
|
|
4279
|
+
nextNode,
|
|
4280
|
+
previousNode,
|
|
4281
|
+
section,
|
|
4282
|
+
sectionNodes
|
|
4283
|
+
};
|
|
4284
|
+
};
|
|
4108
4285
|
var buildRAGRetrievedState = (messages) => {
|
|
4109
4286
|
const message = getLatestRetrievedMessage(messages);
|
|
4110
4287
|
if (!message) {
|
|
@@ -4146,6 +4323,7 @@ var buildRAGSourceSummaries = (sources) => {
|
|
|
4146
4323
|
label: group.label,
|
|
4147
4324
|
locatorLabel: leadChunk?.labels?.locatorLabel ?? buildLocatorLabel2(leadChunk?.metadata, leadChunk?.source, leadChunk?.title),
|
|
4148
4325
|
provenanceLabel: leadChunk?.labels?.provenanceLabel ?? buildProvenanceLabel2(leadChunk?.metadata),
|
|
4326
|
+
structure: leadChunk?.structure ?? buildRAGChunkStructure(leadChunk?.metadata),
|
|
4149
4327
|
source: group.source,
|
|
4150
4328
|
title: group.title
|
|
4151
4329
|
};
|
|
@@ -4274,6 +4452,7 @@ var buildSourceGroup = (source, key) => ({
|
|
|
4274
4452
|
source: source.source,
|
|
4275
4453
|
title: source.title
|
|
4276
4454
|
}),
|
|
4455
|
+
structure: source.structure ?? buildRAGChunkStructure(source.metadata),
|
|
4277
4456
|
source: source.source,
|
|
4278
4457
|
title: source.title
|
|
4279
4458
|
});
|
|
@@ -4292,6 +4471,7 @@ var updateSourceGroup = (groups, source) => {
|
|
|
4292
4471
|
source: source.source,
|
|
4293
4472
|
title: source.title
|
|
4294
4473
|
});
|
|
4474
|
+
existing.structure = source.structure ?? buildRAGChunkStructure(source.metadata);
|
|
4295
4475
|
existing.source = source.source;
|
|
4296
4476
|
existing.title = source.title;
|
|
4297
4477
|
} else {
|
|
@@ -6782,6 +6962,7 @@ import { useCallback as useCallback2, useMemo, useState } from "react";
|
|
|
6782
6962
|
var useRAGChunkPreview = (path) => {
|
|
6783
6963
|
const client = useMemo(() => createRAGClient({ path }), [path]);
|
|
6784
6964
|
const [preview, setPreview] = useState(null);
|
|
6965
|
+
const [activeChunkId, setActiveChunkId] = useState(null);
|
|
6785
6966
|
const [isLoading, setIsLoading] = useState(false);
|
|
6786
6967
|
const [error, setError] = useState(null);
|
|
6787
6968
|
const inspect = useCallback2(async (id) => {
|
|
@@ -6793,6 +6974,7 @@ var useRAGChunkPreview = (path) => {
|
|
|
6793
6974
|
throw new Error(response.error);
|
|
6794
6975
|
}
|
|
6795
6976
|
setPreview(response);
|
|
6977
|
+
setActiveChunkId(response.chunks[0]?.chunkId ?? null);
|
|
6796
6978
|
return response;
|
|
6797
6979
|
} catch (err) {
|
|
6798
6980
|
const message = err instanceof Error ? err.message : "Failed to load RAG chunk preview";
|
|
@@ -6804,15 +6986,25 @@ var useRAGChunkPreview = (path) => {
|
|
|
6804
6986
|
}, [client]);
|
|
6805
6987
|
const clear = useCallback2(() => {
|
|
6806
6988
|
setPreview(null);
|
|
6989
|
+
setActiveChunkId(null);
|
|
6807
6990
|
setError(null);
|
|
6808
6991
|
setIsLoading(false);
|
|
6809
6992
|
}, []);
|
|
6993
|
+
const chunkGraph = useMemo(() => preview ? buildRAGChunkPreviewGraph(preview) : null, [preview]);
|
|
6994
|
+
const navigation = useMemo(() => preview ? buildRAGChunkPreviewNavigation(preview, activeChunkId ?? undefined) : null, [activeChunkId, preview]);
|
|
6995
|
+
const selectChunk = useCallback2((id) => {
|
|
6996
|
+
setActiveChunkId(id);
|
|
6997
|
+
}, []);
|
|
6810
6998
|
return {
|
|
6999
|
+
activeChunkId,
|
|
7000
|
+
chunkGraph,
|
|
6811
7001
|
clear,
|
|
6812
7002
|
error,
|
|
6813
7003
|
inspect,
|
|
6814
7004
|
isLoading,
|
|
6815
|
-
|
|
7005
|
+
navigation,
|
|
7006
|
+
preview,
|
|
7007
|
+
selectChunk
|
|
6816
7008
|
};
|
|
6817
7009
|
};
|
|
6818
7010
|
// src/react/ai/useRAG.ts
|
|
@@ -7393,9 +7585,11 @@ var useRAGSources = (messages) => {
|
|
|
7393
7585
|
const sources = useMemo10(() => getLatestRAGSources(messages), [messages]);
|
|
7394
7586
|
const sourceGroups = useMemo10(() => buildRAGSourceGroups(sources), [sources]);
|
|
7395
7587
|
const sourceSummaries = useMemo10(() => buildRAGSourceSummaries(sources), [sources]);
|
|
7588
|
+
const chunkGraph = useMemo10(() => buildRAGChunkGraph(sources), [sources]);
|
|
7396
7589
|
const citationReferenceMap = useMemo10(() => buildRAGCitationReferenceMap(sourceSummaries.flatMap((summary) => summary.citations)), [sourceSummaries]);
|
|
7397
7590
|
return {
|
|
7398
7591
|
citationReferenceMap,
|
|
7592
|
+
chunkGraph,
|
|
7399
7593
|
hasSources: sources.length > 0,
|
|
7400
7594
|
latestAssistantMessage,
|
|
7401
7595
|
sourceGroups,
|
|
@@ -7597,5 +7791,5 @@ export {
|
|
|
7597
7791
|
AIStreamProvider
|
|
7598
7792
|
};
|
|
7599
7793
|
|
|
7600
|
-
//# debugId=
|
|
7794
|
+
//# debugId=AB794411AE9A001D64756E2164756E21
|
|
7601
7795
|
//# sourceMappingURL=index.js.map
|