@absolutejs/absolute 0.19.0-beta.433 → 0.19.0-beta.434
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/index.js +95 -1
- package/dist/ai/index.js.map +5 -4
- package/dist/ai-client/react/ai/index.js +252 -10
- package/dist/react/ai/index.js +253 -11
- package/dist/react/ai/index.js.map +11 -7
- package/dist/src/ai/client/actions.d.ts +1 -1
- package/dist/src/ai/index.d.ts +2 -2
- package/dist/src/ai/rag/index.d.ts +1 -0
- package/dist/src/ai/rag/presentation.d.ts +10 -0
- package/dist/src/ai/rag/types.d.ts +1 -1
- package/dist/src/react/ai/index.d.ts +3 -0
- package/dist/src/react/ai/useRAG.d.ts +64 -0
- package/dist/src/react/ai/useRAGCitations.d.ts +7 -0
- package/dist/src/react/ai/useRAGIngest.d.ts +8 -2
- package/dist/src/react/ai/useRAGSearch.d.ts +3 -0
- package/dist/src/react/ai/useRAGSources.d.ts +8 -0
- package/dist/src/react/ai/useRAGStatus.d.ts +1 -0
- package/dist/src/react/ai/useRAGStream.d.ts +9 -1
- package/dist/types/ai.d.ts +20 -0
- package/dist/vue/components/index.js +16 -2
- package/dist/vue/components/index.js.map +3 -3
- package/dist/vue/index.js +18 -4
- package/dist/vue/index.js.map +3 -3
- package/package.json +1 -1
package/dist/ai/index.js
CHANGED
|
@@ -2912,6 +2912,95 @@ var ragChat = (config) => {
|
|
|
2912
2912
|
return { ok: true };
|
|
2913
2913
|
}).use(htmxRoutes());
|
|
2914
2914
|
};
|
|
2915
|
+
// src/ai/rag/presentation.ts
|
|
2916
|
+
var buildSourceGroupKey = (source) => source.source ?? source.title ?? source.chunkId;
|
|
2917
|
+
var buildSourceLabel = (source) => source.source ?? source.title ?? source.chunkId;
|
|
2918
|
+
var getLatestAssistantMessage = (messages) => {
|
|
2919
|
+
for (let index = messages.length - 1;index >= 0; index -= 1) {
|
|
2920
|
+
const message = messages[index];
|
|
2921
|
+
if (message?.role === "assistant") {
|
|
2922
|
+
return message;
|
|
2923
|
+
}
|
|
2924
|
+
}
|
|
2925
|
+
return;
|
|
2926
|
+
};
|
|
2927
|
+
var getLatestRAGSources = (messages) => getLatestAssistantMessage(messages)?.sources ?? [];
|
|
2928
|
+
var buildRAGSourceGroups = (sources) => {
|
|
2929
|
+
const groups = new Map;
|
|
2930
|
+
for (const source of sources) {
|
|
2931
|
+
const key = buildSourceGroupKey(source);
|
|
2932
|
+
const existing = groups.get(key);
|
|
2933
|
+
if (existing) {
|
|
2934
|
+
existing.bestScore = Math.max(existing.bestScore, source.score);
|
|
2935
|
+
existing.count += 1;
|
|
2936
|
+
existing.chunks.push(source);
|
|
2937
|
+
continue;
|
|
2938
|
+
}
|
|
2939
|
+
groups.set(key, {
|
|
2940
|
+
bestScore: source.score,
|
|
2941
|
+
chunks: [source],
|
|
2942
|
+
count: 1,
|
|
2943
|
+
key,
|
|
2944
|
+
label: buildSourceLabel(source),
|
|
2945
|
+
source: source.source,
|
|
2946
|
+
title: source.title
|
|
2947
|
+
});
|
|
2948
|
+
}
|
|
2949
|
+
return [...groups.values()].sort((left, right) => {
|
|
2950
|
+
if (right.bestScore !== left.bestScore) {
|
|
2951
|
+
return right.bestScore - left.bestScore;
|
|
2952
|
+
}
|
|
2953
|
+
return left.label.localeCompare(right.label);
|
|
2954
|
+
});
|
|
2955
|
+
};
|
|
2956
|
+
var buildRAGCitations = (sources) => {
|
|
2957
|
+
const unique = new Map;
|
|
2958
|
+
for (const source of sources) {
|
|
2959
|
+
const key = source.chunkId;
|
|
2960
|
+
const existing = unique.get(key);
|
|
2961
|
+
if (existing && existing.score >= source.score) {
|
|
2962
|
+
continue;
|
|
2963
|
+
}
|
|
2964
|
+
unique.set(key, {
|
|
2965
|
+
chunkId: source.chunkId,
|
|
2966
|
+
key,
|
|
2967
|
+
label: buildSourceLabel(source),
|
|
2968
|
+
metadata: source.metadata,
|
|
2969
|
+
score: source.score,
|
|
2970
|
+
source: source.source,
|
|
2971
|
+
text: source.text,
|
|
2972
|
+
title: source.title
|
|
2973
|
+
});
|
|
2974
|
+
}
|
|
2975
|
+
return [...unique.values()].sort((left, right) => {
|
|
2976
|
+
if (right.score !== left.score) {
|
|
2977
|
+
return right.score - left.score;
|
|
2978
|
+
}
|
|
2979
|
+
return left.label.localeCompare(right.label);
|
|
2980
|
+
});
|
|
2981
|
+
};
|
|
2982
|
+
var resolveRAGStreamStage = ({
|
|
2983
|
+
error,
|
|
2984
|
+
isStreaming,
|
|
2985
|
+
messages
|
|
2986
|
+
}) => {
|
|
2987
|
+
if (error) {
|
|
2988
|
+
return "error";
|
|
2989
|
+
}
|
|
2990
|
+
const assistantMessage = getLatestAssistantMessage(messages);
|
|
2991
|
+
if (!assistantMessage) {
|
|
2992
|
+
return isStreaming ? "submitting" : "idle";
|
|
2993
|
+
}
|
|
2994
|
+
if (!isStreaming) {
|
|
2995
|
+
return "complete";
|
|
2996
|
+
}
|
|
2997
|
+
const hasSources = (assistantMessage.sources?.length ?? 0) > 0;
|
|
2998
|
+
const hasContent = assistantMessage.content.trim().length > 0 || assistantMessage.thinking?.trim().length || (assistantMessage.toolCalls?.length ?? 0) > 0 || (assistantMessage.images?.length ?? 0) > 0;
|
|
2999
|
+
if (hasSources && !hasContent) {
|
|
3000
|
+
return "retrieved";
|
|
3001
|
+
}
|
|
3002
|
+
return "streaming";
|
|
3003
|
+
};
|
|
2915
3004
|
// src/ai/rag/adapters/utils.ts
|
|
2916
3005
|
var vectorDimensionDefault = 24;
|
|
2917
3006
|
var normalizeVector = (vector) => {
|
|
@@ -3779,6 +3868,7 @@ export {
|
|
|
3779
3868
|
streamAI,
|
|
3780
3869
|
serializeAIMessage,
|
|
3781
3870
|
searchDocuments,
|
|
3871
|
+
resolveRAGStreamStage,
|
|
3782
3872
|
resolveAbsoluteSQLiteVecExtensionPath,
|
|
3783
3873
|
resolveAbsoluteSQLiteVec,
|
|
3784
3874
|
ragChat as ragPlugin,
|
|
@@ -3800,6 +3890,8 @@ export {
|
|
|
3800
3890
|
ingestRAGDocuments,
|
|
3801
3891
|
ingestDocuments,
|
|
3802
3892
|
google,
|
|
3893
|
+
getLatestRAGSources,
|
|
3894
|
+
getLatestAssistantMessage,
|
|
3803
3895
|
generateId,
|
|
3804
3896
|
gemini,
|
|
3805
3897
|
deepseek,
|
|
@@ -3812,9 +3904,11 @@ export {
|
|
|
3812
3904
|
createConversationManager,
|
|
3813
3905
|
buildRAGUpsertInputFromDocuments,
|
|
3814
3906
|
buildRAGUpsertInputFromDirectory,
|
|
3907
|
+
buildRAGSourceGroups,
|
|
3908
|
+
buildRAGCitations,
|
|
3815
3909
|
alibaba,
|
|
3816
3910
|
aiChat
|
|
3817
3911
|
};
|
|
3818
3912
|
|
|
3819
|
-
//# debugId=
|
|
3913
|
+
//# debugId=65B35A7CB744467564756E2164756E21
|
|
3820
3914
|
//# sourceMappingURL=index.js.map
|