@absolutejs/absolute 0.19.0-beta.432 → 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.
Files changed (38) hide show
  1. package/dist/ai/index.js +95 -1
  2. package/dist/ai/index.js.map +5 -4
  3. package/dist/ai-client/react/ai/index.js +252 -10
  4. package/dist/angular/index.js +7 -3
  5. package/dist/angular/index.js.map +3 -3
  6. package/dist/angular/server.js +2 -2
  7. package/dist/angular/server.js.map +1 -1
  8. package/dist/build.js +2 -2
  9. package/dist/build.js.map +1 -1
  10. package/dist/client/index.js +6 -2
  11. package/dist/client/index.js.map +3 -3
  12. package/dist/index.js +7 -3
  13. package/dist/index.js.map +3 -3
  14. package/dist/react/ai/index.js +253 -11
  15. package/dist/react/ai/index.js.map +11 -7
  16. package/dist/react/index.js +6 -2
  17. package/dist/react/index.js.map +3 -3
  18. package/dist/src/ai/client/actions.d.ts +1 -1
  19. package/dist/src/ai/index.d.ts +2 -2
  20. package/dist/src/ai/rag/index.d.ts +1 -0
  21. package/dist/src/ai/rag/presentation.d.ts +10 -0
  22. package/dist/src/ai/rag/types.d.ts +1 -1
  23. package/dist/src/react/ai/index.d.ts +3 -0
  24. package/dist/src/react/ai/useRAG.d.ts +64 -0
  25. package/dist/src/react/ai/useRAGCitations.d.ts +7 -0
  26. package/dist/src/react/ai/useRAGIngest.d.ts +8 -2
  27. package/dist/src/react/ai/useRAGSearch.d.ts +3 -0
  28. package/dist/src/react/ai/useRAGSources.d.ts +8 -0
  29. package/dist/src/react/ai/useRAGStatus.d.ts +1 -0
  30. package/dist/src/react/ai/useRAGStream.d.ts +9 -1
  31. package/dist/svelte/index.js +6 -2
  32. package/dist/svelte/index.js.map +3 -3
  33. package/dist/types/ai.d.ts +20 -0
  34. package/dist/vue/components/index.js +20 -3
  35. package/dist/vue/components/index.js.map +3 -3
  36. package/dist/vue/index.js +27 -6
  37. package/dist/vue/index.js.map +4 -4
  38. package/package.json +1 -1
@@ -766,8 +766,115 @@ var useAIStream = (path, conversationId) => {
766
766
  send
767
767
  };
768
768
  };
769
+ // src/react/ai/useRAG.ts
770
+ import { useMemo as useMemo7 } from "react";
771
+
772
+ // src/react/ai/useRAGCitations.ts
773
+ import { useMemo } from "react";
774
+
775
+ // src/ai/rag/presentation.ts
776
+ var buildSourceGroupKey = (source) => source.source ?? source.title ?? source.chunkId;
777
+ var buildSourceLabel = (source) => source.source ?? source.title ?? source.chunkId;
778
+ var getLatestAssistantMessage = (messages) => {
779
+ for (let index = messages.length - 1;index >= 0; index -= 1) {
780
+ const message = messages[index];
781
+ if (message?.role === "assistant") {
782
+ return message;
783
+ }
784
+ }
785
+ return;
786
+ };
787
+ var getLatestRAGSources = (messages) => getLatestAssistantMessage(messages)?.sources ?? [];
788
+ var buildRAGSourceGroups = (sources) => {
789
+ const groups = new Map;
790
+ for (const source of sources) {
791
+ const key = buildSourceGroupKey(source);
792
+ const existing = groups.get(key);
793
+ if (existing) {
794
+ existing.bestScore = Math.max(existing.bestScore, source.score);
795
+ existing.count += 1;
796
+ existing.chunks.push(source);
797
+ continue;
798
+ }
799
+ groups.set(key, {
800
+ bestScore: source.score,
801
+ chunks: [source],
802
+ count: 1,
803
+ key,
804
+ label: buildSourceLabel(source),
805
+ source: source.source,
806
+ title: source.title
807
+ });
808
+ }
809
+ return [...groups.values()].sort((left, right) => {
810
+ if (right.bestScore !== left.bestScore) {
811
+ return right.bestScore - left.bestScore;
812
+ }
813
+ return left.label.localeCompare(right.label);
814
+ });
815
+ };
816
+ var buildRAGCitations = (sources) => {
817
+ const unique = new Map;
818
+ for (const source of sources) {
819
+ const key = source.chunkId;
820
+ const existing = unique.get(key);
821
+ if (existing && existing.score >= source.score) {
822
+ continue;
823
+ }
824
+ unique.set(key, {
825
+ chunkId: source.chunkId,
826
+ key,
827
+ label: buildSourceLabel(source),
828
+ metadata: source.metadata,
829
+ score: source.score,
830
+ source: source.source,
831
+ text: source.text,
832
+ title: source.title
833
+ });
834
+ }
835
+ return [...unique.values()].sort((left, right) => {
836
+ if (right.score !== left.score) {
837
+ return right.score - left.score;
838
+ }
839
+ return left.label.localeCompare(right.label);
840
+ });
841
+ };
842
+ var resolveRAGStreamStage = ({
843
+ error,
844
+ isStreaming,
845
+ messages
846
+ }) => {
847
+ if (error) {
848
+ return "error";
849
+ }
850
+ const assistantMessage = getLatestAssistantMessage(messages);
851
+ if (!assistantMessage) {
852
+ return isStreaming ? "submitting" : "idle";
853
+ }
854
+ if (!isStreaming) {
855
+ return "complete";
856
+ }
857
+ const hasSources = (assistantMessage.sources?.length ?? 0) > 0;
858
+ const hasContent = assistantMessage.content.trim().length > 0 || assistantMessage.thinking?.trim().length || (assistantMessage.toolCalls?.length ?? 0) > 0 || (assistantMessage.images?.length ?? 0) > 0;
859
+ if (hasSources && !hasContent) {
860
+ return "retrieved";
861
+ }
862
+ return "streaming";
863
+ };
864
+
865
+ // src/react/ai/useRAGCitations.ts
866
+ var useRAGCitations = (sources) => {
867
+ const citations = useMemo(() => buildRAGCitations(sources), [sources]);
868
+ const sourceGroups = useMemo(() => buildRAGSourceGroups(sources), [sources]);
869
+ return {
870
+ citations,
871
+ hasCitations: citations.length > 0,
872
+ sourceGroups
873
+ };
874
+ };
875
+
769
876
  // src/react/ai/useRAGIngest.ts
770
- import { useCallback as useCallback2, useMemo, useState } from "react";
877
+ import { useCallback as useCallback2, useMemo as useMemo2, useState } from "react";
771
878
 
772
879
  // src/ai/client/ragClient.ts
773
880
  var jsonHeaders = {
@@ -855,11 +962,13 @@ var createRAGClient = (options) => {
855
962
 
856
963
  // src/react/ai/useRAGIngest.ts
857
964
  var useRAGIngest = (path) => {
858
- const client = useMemo(() => createRAGClient({ path }), [path]);
965
+ const client = useMemo2(() => createRAGClient({ path }), [path]);
859
966
  const [error, setError] = useState(null);
860
967
  const [isIngesting, setIsIngesting] = useState(false);
861
968
  const [lastIngestCount, setLastIngestCount] = useState(null);
862
- const ingest = useCallback2(async (chunks) => {
969
+ const [lastDocumentCount, setLastDocumentCount] = useState(null);
970
+ const [lastResponse, setLastResponse] = useState(null);
971
+ const ingestChunks = useCallback2(async (chunks) => {
863
972
  setIsIngesting(true);
864
973
  setError(null);
865
974
  try {
@@ -868,6 +977,8 @@ var useRAGIngest = (path) => {
868
977
  throw new Error(response.error ?? "RAG ingest failed");
869
978
  }
870
979
  setLastIngestCount(response.count ?? chunks.length);
980
+ setLastDocumentCount(null);
981
+ setLastResponse(response);
871
982
  return response;
872
983
  } catch (caught) {
873
984
  const message = caught instanceof Error ? caught.message : String(caught);
@@ -877,26 +988,79 @@ var useRAGIngest = (path) => {
877
988
  setIsIngesting(false);
878
989
  }
879
990
  }, [client]);
991
+ const ingestDocuments = useCallback2(async (input) => {
992
+ setIsIngesting(true);
993
+ setError(null);
994
+ try {
995
+ const response = await client.ingestDocuments(input);
996
+ if (!response.ok) {
997
+ throw new Error(response.error ?? "RAG ingest failed");
998
+ }
999
+ setLastIngestCount(response.count ?? null);
1000
+ setLastDocumentCount(response.documentCount ?? input.documents.length);
1001
+ setLastResponse(response);
1002
+ return response;
1003
+ } catch (caught) {
1004
+ const message = caught instanceof Error ? caught.message : String(caught);
1005
+ setError(message);
1006
+ throw caught;
1007
+ } finally {
1008
+ setIsIngesting(false);
1009
+ }
1010
+ }, [client]);
1011
+ const clearIndex = useCallback2(async () => {
1012
+ setIsIngesting(true);
1013
+ setError(null);
1014
+ try {
1015
+ await client.clearIndex();
1016
+ setLastIngestCount(0);
1017
+ setLastDocumentCount(0);
1018
+ setLastResponse(null);
1019
+ } catch (caught) {
1020
+ const message = caught instanceof Error ? caught.message : String(caught);
1021
+ setError(message);
1022
+ throw caught;
1023
+ } finally {
1024
+ setIsIngesting(false);
1025
+ }
1026
+ }, [client]);
1027
+ const reset = useCallback2(() => {
1028
+ setError(null);
1029
+ setLastDocumentCount(null);
1030
+ setLastIngestCount(null);
1031
+ setLastResponse(null);
1032
+ }, []);
880
1033
  return {
1034
+ clearIndex,
881
1035
  error,
882
- ingest,
1036
+ ingest: ingestChunks,
1037
+ ingestChunks,
1038
+ ingestDocuments,
883
1039
  isIngesting,
884
- lastIngestCount
1040
+ lastDocumentCount,
1041
+ lastIngestCount,
1042
+ lastResponse,
1043
+ reset
885
1044
  };
886
1045
  };
1046
+
887
1047
  // src/react/ai/useRAGSearch.ts
888
- import { useCallback as useCallback3, useMemo as useMemo2, useState as useState2 } from "react";
1048
+ import { useCallback as useCallback3, useMemo as useMemo3, useState as useState2 } from "react";
889
1049
  var useRAGSearch = (path) => {
890
- const client = useMemo2(() => createRAGClient({ path }), [path]);
1050
+ const client = useMemo3(() => createRAGClient({ path }), [path]);
891
1051
  const [results, setResults] = useState2([]);
892
1052
  const [error, setError] = useState2(null);
893
1053
  const [isSearching, setIsSearching] = useState2(false);
1054
+ const [hasSearched, setHasSearched] = useState2(false);
1055
+ const [lastRequest, setLastRequest] = useState2(null);
894
1056
  const search = useCallback3(async (input) => {
895
1057
  setIsSearching(true);
896
1058
  setError(null);
1059
+ setLastRequest(input);
897
1060
  try {
898
1061
  const nextResults = await client.search(input);
899
1062
  setResults(nextResults);
1063
+ setHasSearched(true);
900
1064
  return nextResults;
901
1065
  } catch (caught) {
902
1066
  const message = caught instanceof Error ? caught.message : String(caught);
@@ -906,18 +1070,42 @@ var useRAGSearch = (path) => {
906
1070
  setIsSearching(false);
907
1071
  }
908
1072
  }, [client]);
1073
+ const reset = useCallback3(() => {
1074
+ setError(null);
1075
+ setHasSearched(false);
1076
+ setLastRequest(null);
1077
+ setResults([]);
1078
+ }, []);
909
1079
  return {
910
1080
  error,
1081
+ hasSearched,
911
1082
  isSearching,
1083
+ lastRequest,
1084
+ reset,
912
1085
  results,
913
1086
  search,
914
1087
  setResults
915
1088
  };
916
1089
  };
1090
+
1091
+ // src/react/ai/useRAGSources.ts
1092
+ import { useMemo as useMemo4 } from "react";
1093
+ var useRAGSources = (messages) => {
1094
+ const latestAssistantMessage = useMemo4(() => getLatestAssistantMessage(messages), [messages]);
1095
+ const sources = useMemo4(() => getLatestRAGSources(messages), [messages]);
1096
+ const sourceGroups = useMemo4(() => buildRAGSourceGroups(sources), [sources]);
1097
+ return {
1098
+ hasSources: sources.length > 0,
1099
+ latestAssistantMessage,
1100
+ sourceGroups,
1101
+ sources
1102
+ };
1103
+ };
1104
+
917
1105
  // src/react/ai/useRAGStatus.ts
918
- import { useCallback as useCallback4, useEffect as useEffect3, useMemo as useMemo3, useState as useState3 } from "react";
1106
+ import { useCallback as useCallback4, useEffect as useEffect3, useMemo as useMemo5, useState as useState3 } from "react";
919
1107
  var useRAGStatus = (path, autoLoad = true) => {
920
- const client = useMemo3(() => createRAGClient({ path }), [path]);
1108
+ const client = useMemo5(() => createRAGClient({ path }), [path]);
921
1109
  const [status, setStatus] = useState3();
922
1110
  const [capabilities, setCapabilities] = useState3();
923
1111
  const [error, setError] = useState3(null);
@@ -938,6 +1126,12 @@ var useRAGStatus = (path, autoLoad = true) => {
938
1126
  setIsLoading(false);
939
1127
  }
940
1128
  }, [client]);
1129
+ const reset = useCallback4(() => {
1130
+ setCapabilities(undefined);
1131
+ setError(null);
1132
+ setIsLoading(false);
1133
+ setStatus(undefined);
1134
+ }, []);
941
1135
  useEffect3(() => {
942
1136
  if (!autoLoad) {
943
1137
  setIsLoading(false);
@@ -950,19 +1144,67 @@ var useRAGStatus = (path, autoLoad = true) => {
950
1144
  error,
951
1145
  isLoading,
952
1146
  refresh,
1147
+ reset,
953
1148
  status
954
1149
  };
955
1150
  };
1151
+
956
1152
  // src/react/ai/useRAGStream.ts
957
- var useRAGStream = useAIStream;
1153
+ import { useCallback as useCallback5, useMemo as useMemo6 } from "react";
1154
+ var useRAGStream = (path, conversationId) => {
1155
+ const stream = useAIStream(path, conversationId);
1156
+ const latestAssistantMessage = useMemo6(() => getLatestAssistantMessage(stream.messages), [stream.messages]);
1157
+ const sources = useMemo6(() => getLatestRAGSources(stream.messages), [stream.messages]);
1158
+ const sourceGroups = useMemo6(() => buildRAGSourceGroups(sources), [sources]);
1159
+ const citations = useMemo6(() => buildRAGCitations(sources), [sources]);
1160
+ const stage = useMemo6(() => resolveRAGStreamStage({
1161
+ error: stream.error,
1162
+ isStreaming: stream.isStreaming,
1163
+ messages: stream.messages
1164
+ }), [stream.error, stream.isStreaming, stream.messages]);
1165
+ const query = useCallback5((content, attachments) => {
1166
+ stream.send(content, attachments);
1167
+ }, [stream]);
1168
+ return {
1169
+ ...stream,
1170
+ citations,
1171
+ hasSources: sources.length > 0,
1172
+ latestAssistantMessage,
1173
+ query,
1174
+ sourceGroups,
1175
+ sources,
1176
+ stage
1177
+ };
1178
+ };
1179
+
1180
+ // src/react/ai/useRAG.ts
1181
+ var useRAG = (path, options = {}) => {
1182
+ const search = useRAGSearch(path);
1183
+ const ingest = useRAGIngest(path);
1184
+ const status = useRAGStatus(path, options.autoLoadStatus ?? true);
1185
+ const stream = useRAGStream(options.streamPath ?? path, options.conversationId);
1186
+ const sources = useRAGSources(stream.messages);
1187
+ const citations = useRAGCitations(sources.sources);
1188
+ return useMemo7(() => ({
1189
+ citations,
1190
+ ingest,
1191
+ search,
1192
+ sources,
1193
+ status,
1194
+ stream
1195
+ }), [citations, ingest, search, sources, status, stream]);
1196
+ };
958
1197
  export {
959
1198
  useRAGStream,
960
1199
  useRAGStatus,
1200
+ useRAGSources,
961
1201
  useRAGSearch,
962
1202
  useRAGIngest,
1203
+ useRAGCitations,
1204
+ useRAG,
963
1205
  useAIStream,
964
1206
  AIStreamProvider
965
1207
  };
966
1208
 
967
- //# debugId=5314A0A8B1FD91F264756E2164756E21
1209
+ //# debugId=D0ADC407D5CCE73D64756E2164756E21
968
1210
  //# sourceMappingURL=index.js.map
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "version": 3,
3
- "sources": ["../types/typeGuards.ts", "../src/react/ai/AIStreamProvider.tsx", "../src/ai/client/connection.ts", "../src/ai/client/messageStore.ts", "../src/ai/client/actions.ts", "../src/react/ai/useAIStream.ts", "../src/ai/protocol.ts", "../src/react/ai/useRAGIngest.ts", "../src/ai/client/ragClient.ts", "../src/react/ai/useRAGSearch.ts", "../src/react/ai/useRAGStatus.ts", "../src/react/ai/useRAGStream.ts"],
3
+ "sources": ["../types/typeGuards.ts", "../src/react/ai/AIStreamProvider.tsx", "../src/ai/client/connection.ts", "../src/ai/client/messageStore.ts", "../src/ai/client/actions.ts", "../src/react/ai/useAIStream.ts", "../src/ai/protocol.ts", "../src/react/ai/useRAG.ts", "../src/react/ai/useRAGCitations.ts", "../src/ai/rag/presentation.ts", "../src/react/ai/useRAGIngest.ts", "../src/ai/client/ragClient.ts", "../src/react/ai/useRAGSearch.ts", "../src/react/ai/useRAGSources.ts", "../src/react/ai/useRAGStatus.ts", "../src/react/ai/useRAGStream.ts"],
4
4
  "sourcesContent": [
5
5
  "import type { AIClientMessage, AIServerMessage } from './ai';\nimport type { HMRClientMessage } from './messages';\n\n/* Type guard for AI client messages */\nexport const isValidAIClientMessage = (\n\tdata: unknown\n): data is AIClientMessage => {\n\tif (!data || typeof data !== 'object') {\n\t\treturn false;\n\t}\n\n\tif (!('type' in data) || typeof data.type !== 'string') {\n\t\treturn false;\n\t}\n\n\tswitch (data.type) {\n\t\tcase 'message':\n\t\t\treturn 'content' in data && typeof data.content === 'string';\n\t\tcase 'cancel':\n\t\t\treturn (\n\t\t\t\t'conversationId' in data &&\n\t\t\t\ttypeof data.conversationId === 'string'\n\t\t\t);\n\t\tcase 'branch':\n\t\t\treturn (\n\t\t\t\t'messageId' in data &&\n\t\t\t\ttypeof data.messageId === 'string' &&\n\t\t\t\t'content' in data &&\n\t\t\t\ttypeof data.content === 'string' &&\n\t\t\t\t'conversationId' in data &&\n\t\t\t\ttypeof data.conversationId === 'string'\n\t\t\t);\n\t\tdefault:\n\t\t\treturn false;\n\t}\n};\n\n/* Type guard for AI server messages */\nexport const isValidAIServerMessage = (\n\tdata: unknown\n): data is AIServerMessage => {\n\tif (!data || typeof data !== 'object') {\n\t\treturn false;\n\t}\n\n\tif (!('type' in data) || typeof data.type !== 'string') {\n\t\treturn false;\n\t}\n\n\tswitch (data.type) {\n\t\tcase 'chunk':\n\t\t\treturn (\n\t\t\t\t'content' in data &&\n\t\t\t\ttypeof data.content === 'string' &&\n\t\t\t\t'messageId' in data &&\n\t\t\t\t'conversationId' in data\n\t\t\t);\n\t\tcase 'thinking':\n\t\t\treturn (\n\t\t\t\t'content' in data &&\n\t\t\t\ttypeof data.content === 'string' &&\n\t\t\t\t'messageId' in data &&\n\t\t\t\t'conversationId' in data\n\t\t\t);\n\t\tcase 'tool_status':\n\t\t\treturn (\n\t\t\t\t'name' in data &&\n\t\t\t\t'status' in data &&\n\t\t\t\t'messageId' in data &&\n\t\t\t\t'conversationId' in data\n\t\t\t);\n\t\tcase 'image':\n\t\t\treturn (\n\t\t\t\t'data' in data &&\n\t\t\t\ttypeof data.data === 'string' &&\n\t\t\t\t'format' in data &&\n\t\t\t\ttypeof data.format === 'string' &&\n\t\t\t\t'isPartial' in data &&\n\t\t\t\ttypeof data.isPartial === 'boolean' &&\n\t\t\t\t'messageId' in data &&\n\t\t\t\t'conversationId' in data\n\t\t\t);\n\t\tcase 'complete':\n\t\t\treturn 'messageId' in data && 'conversationId' in data;\n\t\tcase 'rag_retrieved':\n\t\t\treturn (\n\t\t\t\t'conversationId' in data &&\n\t\t\t\t'messageId' in data &&\n\t\t\t\t'sources' in data &&\n\t\t\t\tArray.isArray(data.sources)\n\t\t\t);\n\t\tcase 'error':\n\t\t\treturn 'message' in data && typeof data.message === 'string';\n\t\tdefault:\n\t\t\treturn false;\n\t}\n};\n\n/* Type guard for HMR client messages */\nexport const isValidHMRClientMessage = (\n\tdata: unknown\n): data is HMRClientMessage => {\n\tif (!data || typeof data !== 'object') {\n\t\treturn false;\n\t}\n\n\tif (!('type' in data) || typeof data.type !== 'string') {\n\t\treturn false;\n\t}\n\n\tswitch (data.type) {\n\t\tcase 'ping':\n\t\t\treturn true;\n\t\tcase 'ready':\n\t\t\treturn true;\n\t\tcase 'request-rebuild':\n\t\t\treturn true;\n\t\tcase 'hydration-error':\n\t\t\treturn true;\n\t\tcase 'hmr-timing':\n\t\t\treturn true;\n\t\tdefault:\n\t\t\treturn false;\n\t}\n};\n",
6
6
  "import {\n\tcreateContext,\n\tuseContext,\n\tuseEffect,\n\tuseRef,\n\ttype ReactNode\n} from 'react';\nimport { createAIConnection } from '../../ai/client/connection';\nimport { createAIMessageStore } from '../../ai/client/messageStore';\nimport { serverMessageToAction } from '../../ai/client/actions';\n\ntype AIStreamContextValue = {\n\tconnection: ReturnType<typeof createAIConnection>;\n\tstore: ReturnType<typeof createAIMessageStore>;\n};\n\nconst AIStreamContext = createContext<AIStreamContextValue | null>(null);\n\nexport const AIStreamProvider = ({\n\tchildren,\n\tpath\n}: {\n\tchildren: ReactNode;\n\tpath: string;\n}) => {\n\tconst ref = useRef<AIStreamContextValue | null>(null);\n\n\tif (!ref.current) {\n\t\tconst connection = createAIConnection(path);\n\t\tconst store = createAIMessageStore();\n\t\tref.current = { connection, store };\n\t}\n\n\tuseEffect(() => {\n\t\tconst { current } = ref;\n\t\tif (!current) {\n\t\t\treturn undefined;\n\t\t}\n\n\t\tconst { connection, store } = current;\n\n\t\tconst unsubscribe = connection.subscribe((msg) => {\n\t\t\tconst action = serverMessageToAction(msg);\n\t\t\tif (action) {\n\t\t\t\tstore.dispatch(action);\n\t\t\t}\n\t\t});\n\n\t\treturn () => {\n\t\t\tunsubscribe();\n\t\t\tconnection.close();\n\t\t};\n\t}, []);\n\n\treturn (\n\t\t<AIStreamContext.Provider value={ref.current}>\n\t\t\t{children}\n\t\t</AIStreamContext.Provider>\n\t);\n};\n\nexport const useAIStreamContext = () => useContext(AIStreamContext);\n",
@@ -9,13 +9,17 @@
9
9
  "import type { AIServerMessage } from '../../../types/ai';\n\nexport const serverMessageToAction = (msg: AIServerMessage) => {\n\tswitch (msg.type) {\n\t\tcase 'chunk':\n\t\t\treturn {\n\t\t\t\tcontent: msg.content,\n\t\t\t\tconversationId: msg.conversationId,\n\t\t\t\tmessageId: msg.messageId,\n\t\t\t\ttype: 'chunk' as const\n\t\t\t};\n\t\tcase 'thinking':\n\t\t\treturn {\n\t\t\t\tcontent: msg.content,\n\t\t\t\tconversationId: msg.conversationId,\n\t\t\t\tmessageId: msg.messageId,\n\t\t\t\ttype: 'thinking' as const\n\t\t\t};\n\t\tcase 'tool_status':\n\t\t\treturn {\n\t\t\t\tconversationId: msg.conversationId,\n\t\t\t\tinput: msg.input,\n\t\t\t\tmessageId: msg.messageId,\n\t\t\t\tname: msg.name,\n\t\t\t\tresult: msg.result,\n\t\t\t\tstatus: msg.status,\n\t\t\t\ttype: 'tool_status' as const\n\t\t\t};\n\t\tcase 'image':\n\t\t\treturn {\n\t\t\t\tconversationId: msg.conversationId,\n\t\t\t\tdata: msg.data,\n\t\t\t\tformat: msg.format,\n\t\t\t\timageId: msg.imageId,\n\t\t\t\tisPartial: msg.isPartial,\n\t\t\t\tmessageId: msg.messageId,\n\t\t\t\trevisedPrompt: msg.revisedPrompt,\n\t\t\t\ttype: 'image' as const\n\t\t\t};\n\t\tcase 'complete':\n\t\t\treturn {\n\t\t\t\tconversationId: msg.conversationId,\n\t\t\t\tdurationMs: msg.durationMs,\n\t\t\t\tmessageId: msg.messageId,\n\t\t\t\tmodel: msg.model,\n\t\t\t\tsources: msg.sources,\n\t\t\t\ttype: 'complete' as const,\n\t\t\t\tusage: msg.usage\n\t\t\t};\n\t\tcase 'rag_retrieved':\n\t\t\treturn {\n\t\t\t\tconversationId: msg.conversationId,\n\t\t\t\tmessageId: msg.messageId,\n\t\t\t\tsources: msg.sources,\n\t\t\t\ttype: 'rag_retrieved' as const\n\t\t\t};\n\t\tcase 'error':\n\t\t\treturn { message: msg.message, type: 'error' as const };\n\t\tdefault:\n\t\t\treturn null;\n\t}\n};\n",
10
10
  "import { useCallback, useEffect, useRef, useSyncExternalStore } from 'react';\nimport type { AIAttachment } from '../../../types/ai';\nimport { serverMessageToAction } from '../../ai/client/actions';\nimport { createAIConnection } from '../../ai/client/connection';\nimport { createAIMessageStore } from '../../ai/client/messageStore';\nimport { generateId } from '../../ai/protocol';\nimport { useAIStreamContext } from './AIStreamProvider';\n\nexport const useAIStream = (path?: string, conversationId?: string) => {\n\tconst context = useAIStreamContext();\n\tconst standaloneRef = useRef<{\n\t\tconnection: ReturnType<typeof createAIConnection>;\n\t\tstore: ReturnType<typeof createAIMessageStore>;\n\t} | null>(null);\n\n\tconst isStandalone = !context;\n\n\tif (isStandalone && !standaloneRef.current && path) {\n\t\tconst connection = createAIConnection(path);\n\t\tconst store = createAIMessageStore();\n\t\tstandaloneRef.current = { connection, store };\n\t}\n\n\tconst resolved = context ?? standaloneRef.current;\n\tif (!resolved) {\n\t\tthrow new Error(\n\t\t\t'useAIStream requires either an AIStreamProvider or a path argument'\n\t\t);\n\t}\n\n\tconst { connection, store } = resolved;\n\n\tuseEffect(() => {\n\t\tif (!isStandalone) {\n\t\t\treturn undefined;\n\t\t}\n\n\t\tconst unsubscribe = connection.subscribe((msg) => {\n\t\t\tconst action = serverMessageToAction(msg);\n\t\t\tif (action) {\n\t\t\t\tstore.dispatch(action);\n\t\t\t}\n\t\t});\n\n\t\treturn () => {\n\t\t\tunsubscribe();\n\t\t\tconnection.close();\n\t\t};\n\t}, [connection, isStandalone, store]);\n\n\tconst state = useSyncExternalStore(\n\t\tstore.subscribe,\n\t\tstore.getSnapshot,\n\t\tstore.getServerSnapshot\n\t);\n\n\tconst activeConvId = conversationId ?? state.activeConversationId;\n\tconst conversation = activeConvId\n\t\t? state.conversations.get(activeConvId)\n\t\t: undefined;\n\tconst messages = conversation?.messages ?? [];\n\n\tconst send = useCallback(\n\t\t(content: string, attachments?: AIAttachment[]) => {\n\t\t\tconst convId = activeConvId ?? generateId();\n\t\t\tconst msgId = generateId();\n\n\t\t\tstore.dispatch({\n\t\t\t\tattachments,\n\t\t\t\tcontent,\n\t\t\t\tconversationId: convId,\n\t\t\t\tmessageId: msgId,\n\t\t\t\ttype: 'send'\n\t\t\t});\n\n\t\t\tconnection.send({\n\t\t\t\tattachments,\n\t\t\t\tcontent,\n\t\t\t\tconversationId: convId,\n\t\t\t\ttype: 'message'\n\t\t\t});\n\t\t},\n\t\t[activeConvId, connection, store]\n\t);\n\n\tconst cancel = useCallback(() => {\n\t\tif (activeConvId) {\n\t\t\tstore.dispatch({ type: 'cancel' });\n\t\t\tconnection.send({ conversationId: activeConvId, type: 'cancel' });\n\t\t}\n\t}, [activeConvId, connection, store]);\n\n\tconst branch = useCallback(\n\t\t(messageId: string, content: string) => {\n\t\t\tif (activeConvId) {\n\t\t\t\tconnection.send({\n\t\t\t\t\tcontent,\n\t\t\t\t\tconversationId: activeConvId,\n\t\t\t\t\tmessageId,\n\t\t\t\t\ttype: 'branch'\n\t\t\t\t});\n\t\t\t}\n\t\t},\n\t\t[activeConvId, connection]\n\t);\n\n\treturn {\n\t\tbranch,\n\t\tcancel,\n\t\terror: state.error,\n\t\tisStreaming: state.isStreaming,\n\t\tmessages,\n\t\tsend\n\t};\n};\n",
11
11
  "import type { AIServerMessage } from '../../types/ai';\nimport { isValidAIClientMessage } from '../../types/typeGuards';\n\nexport const generateId = () => crypto.randomUUID();\n\nexport const parseAIMessage = (raw: unknown) => {\n\tif (raw === null || raw === undefined) {\n\t\treturn null;\n\t}\n\n\tlet text: string;\n\n\tif (typeof raw === 'string') {\n\t\ttext = raw;\n\t} else if (raw instanceof ArrayBuffer) {\n\t\ttext = new TextDecoder().decode(raw);\n\t} else if (ArrayBuffer.isView(raw)) {\n\t\ttext = new TextDecoder().decode(raw);\n\t} else if (typeof raw === 'object') {\n\t\tif (isValidAIClientMessage(raw)) {\n\t\t\treturn raw;\n\t\t}\n\n\t\treturn null;\n\t} else {\n\t\treturn null;\n\t}\n\n\ttry {\n\t\tconst parsed: unknown = JSON.parse(text);\n\n\t\tif (isValidAIClientMessage(parsed)) {\n\t\t\treturn parsed;\n\t\t}\n\n\t\treturn null;\n\t} catch {\n\t\treturn null;\n\t}\n};\n\nexport const serializeAIMessage = (msg: AIServerMessage) => JSON.stringify(msg);\n",
12
- "import { useCallback, useMemo, useState } from 'react';\nimport type { RAGDocumentChunk } from '../../../types/ai';\nimport { createRAGClient } from '../../ai/client/ragClient';\n\nexport const useRAGIngest = (path: string) => {\n\tconst client = useMemo(() => createRAGClient({ path }), [path]);\n\tconst [error, setError] = useState<string | null>(null);\n\tconst [isIngesting, setIsIngesting] = useState(false);\n\tconst [lastIngestCount, setLastIngestCount] = useState<number | null>(null);\n\n\tconst ingest = useCallback(\n\t\tasync (chunks: RAGDocumentChunk[]) => {\n\t\t\tsetIsIngesting(true);\n\t\t\tsetError(null);\n\n\t\t\ttry {\n\t\t\t\tconst response = await client.ingest(chunks);\n\t\t\t\tif (!response.ok) {\n\t\t\t\t\tthrow new Error(response.error ?? 'RAG ingest failed');\n\t\t\t\t}\n\n\t\t\t\tsetLastIngestCount(response.count ?? chunks.length);\n\t\t\t\treturn response;\n\t\t\t} catch (caught) {\n\t\t\t\tconst message =\n\t\t\t\t\tcaught instanceof Error ? caught.message : String(caught);\n\t\t\t\tsetError(message);\n\t\t\t\tthrow caught;\n\t\t\t} finally {\n\t\t\t\tsetIsIngesting(false);\n\t\t\t}\n\t\t},\n\t\t[client]\n\t);\n\n\treturn {\n\t\terror,\n\t\tingest,\n\t\tisIngesting,\n\t\tlastIngestCount\n\t};\n};\n\nexport type UseRAGIngestResult = ReturnType<typeof useRAGIngest>;\n",
12
+ "import { useMemo } from 'react';\nimport { useRAGCitations } from './useRAGCitations';\nimport { useRAGIngest } from './useRAGIngest';\nimport { useRAGSearch } from './useRAGSearch';\nimport { useRAGSources } from './useRAGSources';\nimport { useRAGStatus } from './useRAGStatus';\nimport { useRAGStream } from './useRAGStream';\n\nexport type UseRAGOptions = {\n\tautoLoadStatus?: boolean;\n\tconversationId?: string;\n\tstreamPath?: string;\n};\n\nexport const useRAG = (path: string, options: UseRAGOptions = {}) => {\n\tconst search = useRAGSearch(path);\n\tconst ingest = useRAGIngest(path);\n\tconst status = useRAGStatus(path, options.autoLoadStatus ?? true);\n\tconst stream = useRAGStream(options.streamPath ?? path, options.conversationId);\n\tconst sources = useRAGSources(stream.messages);\n\tconst citations = useRAGCitations(sources.sources);\n\n\treturn useMemo(\n\t\t() => ({\n\t\t\tcitations,\n\t\t\tingest,\n\t\t\tsearch,\n\t\t\tsources,\n\t\t\tstatus,\n\t\t\tstream\n\t\t}),\n\t\t[citations, ingest, search, sources, status, stream]\n\t);\n};\n\nexport type UseRAGResult = ReturnType<typeof useRAG>;\n",
13
+ "import { useMemo } from 'react';\nimport type { RAGSource } from '../../../types/ai';\nimport {\n\tbuildRAGCitations,\n\tbuildRAGSourceGroups\n} from '../../ai/rag/presentation';\n\nexport const useRAGCitations = (sources: RAGSource[]) => {\n\tconst citations = useMemo(() => buildRAGCitations(sources), [sources]);\n\tconst sourceGroups = useMemo(() => buildRAGSourceGroups(sources), [sources]);\n\n\treturn {\n\t\tcitations,\n\t\thasCitations: citations.length > 0,\n\t\tsourceGroups\n\t};\n};\n\nexport type UseRAGCitationsResult = ReturnType<typeof useRAGCitations>;\n",
14
+ "import type {\n\tAIMessage,\n\tRAGCitation,\n\tRAGSource,\n\tRAGSourceGroup,\n\tRAGStreamStage\n} from '../../../types/ai';\n\nconst buildSourceGroupKey = (source: RAGSource) =>\n\tsource.source ?? source.title ?? source.chunkId;\n\nconst buildSourceLabel = (source: RAGSource) =>\n\tsource.source ?? source.title ?? source.chunkId;\n\nexport const getLatestAssistantMessage = (messages: AIMessage[]) => {\n\tfor (let index = messages.length - 1; index >= 0; index -= 1) {\n\t\tconst message = messages[index];\n\t\tif (message?.role === 'assistant') {\n\t\t\treturn message;\n\t\t}\n\t}\n\n\treturn undefined;\n};\n\nexport const getLatestRAGSources = (messages: AIMessage[]) =>\n\tgetLatestAssistantMessage(messages)?.sources ?? [];\n\nexport const buildRAGSourceGroups = (\n\tsources: RAGSource[]\n): RAGSourceGroup[] => {\n\tconst groups = new Map<string, RAGSourceGroup>();\n\n\tfor (const source of sources) {\n\t\tconst key = buildSourceGroupKey(source);\n\t\tconst existing = groups.get(key);\n\n\t\tif (existing) {\n\t\t\texisting.bestScore = Math.max(existing.bestScore, source.score);\n\t\t\texisting.count += 1;\n\t\t\texisting.chunks.push(source);\n\t\t\tcontinue;\n\t\t}\n\n\t\tgroups.set(key, {\n\t\t\tbestScore: source.score,\n\t\t\tchunks: [source],\n\t\t\tcount: 1,\n\t\t\tkey,\n\t\t\tlabel: buildSourceLabel(source),\n\t\t\tsource: source.source,\n\t\t\ttitle: source.title\n\t\t});\n\t}\n\n\treturn [...groups.values()].sort((left, right) => {\n\t\tif (right.bestScore !== left.bestScore) {\n\t\t\treturn right.bestScore - left.bestScore;\n\t\t}\n\n\t\treturn left.label.localeCompare(right.label);\n\t});\n};\n\nexport const buildRAGCitations = (sources: RAGSource[]): RAGCitation[] => {\n\tconst unique = new Map<string, RAGCitation>();\n\n\tfor (const source of sources) {\n\t\tconst key = source.chunkId;\n\t\tconst existing = unique.get(key);\n\n\t\tif (existing && existing.score >= source.score) {\n\t\t\tcontinue;\n\t\t}\n\n\t\tunique.set(key, {\n\t\t\tchunkId: source.chunkId,\n\t\t\tkey,\n\t\t\tlabel: buildSourceLabel(source),\n\t\t\tmetadata: source.metadata,\n\t\t\tscore: source.score,\n\t\t\tsource: source.source,\n\t\t\ttext: source.text,\n\t\t\ttitle: source.title\n\t\t});\n\t}\n\n\treturn [...unique.values()].sort((left, right) => {\n\t\tif (right.score !== left.score) {\n\t\t\treturn right.score - left.score;\n\t\t}\n\n\t\treturn left.label.localeCompare(right.label);\n\t});\n};\n\nexport const resolveRAGStreamStage = ({\n\terror,\n\tisStreaming,\n\tmessages\n}: {\n\terror: string | null;\n\tisStreaming: boolean;\n\tmessages: AIMessage[];\n}): RAGStreamStage => {\n\tif (error) {\n\t\treturn 'error';\n\t}\n\n\tconst assistantMessage = getLatestAssistantMessage(messages);\n\tif (!assistantMessage) {\n\t\treturn isStreaming ? 'submitting' : 'idle';\n\t}\n\n\tif (!isStreaming) {\n\t\treturn 'complete';\n\t}\n\n\tconst hasSources = (assistantMessage.sources?.length ?? 0) > 0;\n\tconst hasContent =\n\t\tassistantMessage.content.trim().length > 0 ||\n\t\tassistantMessage.thinking?.trim().length ||\n\t\t(assistantMessage.toolCalls?.length ?? 0) > 0 ||\n\t\t(assistantMessage.images?.length ?? 0) > 0;\n\n\tif (hasSources && !hasContent) {\n\t\treturn 'retrieved';\n\t}\n\n\treturn 'streaming';\n};\n",
15
+ "import { useCallback, useMemo, useState } from 'react';\nimport type {\n\tRAGDocumentChunk,\n\tRAGDocumentIngestInput,\n\tRAGIngestResponse\n} from '../../../types/ai';\nimport { createRAGClient } from '../../ai/client/ragClient';\n\nexport const useRAGIngest = (path: string) => {\n\tconst client = useMemo(() => createRAGClient({ path }), [path]);\n\tconst [error, setError] = useState<string | null>(null);\n\tconst [isIngesting, setIsIngesting] = useState(false);\n\tconst [lastIngestCount, setLastIngestCount] = useState<number | null>(null);\n\tconst [lastDocumentCount, setLastDocumentCount] = useState<number | null>(null);\n\tconst [lastResponse, setLastResponse] = useState<RAGIngestResponse | null>(null);\n\n\tconst ingestChunks = useCallback(\n\t\tasync (chunks: RAGDocumentChunk[]) => {\n\t\t\tsetIsIngesting(true);\n\t\t\tsetError(null);\n\n\t\t\ttry {\n\t\t\t\tconst response = await client.ingest(chunks);\n\t\t\t\tif (!response.ok) {\n\t\t\t\t\tthrow new Error(response.error ?? 'RAG ingest failed');\n\t\t\t\t}\n\n\t\t\t\tsetLastIngestCount(response.count ?? chunks.length);\n\t\t\t\tsetLastDocumentCount(null);\n\t\t\t\tsetLastResponse(response);\n\t\t\t\treturn response;\n\t\t\t} catch (caught) {\n\t\t\t\tconst message =\n\t\t\t\t\tcaught instanceof Error ? caught.message : String(caught);\n\t\t\t\tsetError(message);\n\t\t\t\tthrow caught;\n\t\t\t} finally {\n\t\t\t\tsetIsIngesting(false);\n\t\t\t}\n\t\t},\n\t\t[client]\n\t);\n\n\tconst ingestDocuments = useCallback(\n\t\tasync (input: RAGDocumentIngestInput) => {\n\t\t\tsetIsIngesting(true);\n\t\t\tsetError(null);\n\n\t\t\ttry {\n\t\t\t\tconst response = await client.ingestDocuments(input);\n\t\t\t\tif (!response.ok) {\n\t\t\t\t\tthrow new Error(response.error ?? 'RAG ingest failed');\n\t\t\t\t}\n\n\t\t\t\tsetLastIngestCount(response.count ?? null);\n\t\t\t\tsetLastDocumentCount(\n\t\t\t\t\tresponse.documentCount ?? input.documents.length\n\t\t\t\t);\n\t\t\t\tsetLastResponse(response);\n\t\t\t\treturn response;\n\t\t\t} catch (caught) {\n\t\t\t\tconst message =\n\t\t\t\t\tcaught instanceof Error ? caught.message : String(caught);\n\t\t\t\tsetError(message);\n\t\t\t\tthrow caught;\n\t\t\t} finally {\n\t\t\t\tsetIsIngesting(false);\n\t\t\t}\n\t\t},\n\t\t[client]\n\t);\n\n\tconst clearIndex = useCallback(async () => {\n\t\tsetIsIngesting(true);\n\t\tsetError(null);\n\n\t\ttry {\n\t\t\tawait client.clearIndex();\n\t\t\tsetLastIngestCount(0);\n\t\t\tsetLastDocumentCount(0);\n\t\t\tsetLastResponse(null);\n\t\t} catch (caught) {\n\t\t\tconst message =\n\t\t\t\tcaught instanceof Error ? caught.message : String(caught);\n\t\t\tsetError(message);\n\t\t\tthrow caught;\n\t\t} finally {\n\t\t\tsetIsIngesting(false);\n\t\t}\n\t}, [client]);\n\n\tconst reset = useCallback(() => {\n\t\tsetError(null);\n\t\tsetLastDocumentCount(null);\n\t\tsetLastIngestCount(null);\n\t\tsetLastResponse(null);\n\t}, []);\n\n\treturn {\n\t\tclearIndex,\n\t\terror,\n\t\tingest: ingestChunks,\n\t\tingestChunks,\n\t\tingestDocuments,\n\t\tisIngesting,\n\t\tlastDocumentCount,\n\t\tlastIngestCount,\n\t\tlastResponse,\n\t\treset\n\t};\n};\n\nexport type UseRAGIngestResult = ReturnType<typeof useRAGIngest>;\n",
13
16
  "import type {\n\tRAGDocumentIngestInput,\n\tRAGDocumentChunk,\n\tRAGIngestResponse,\n\tRAGSearchRequest,\n\tRAGSource,\n\tRAGStatusResponse\n} from '../../../types/ai';\n\ntype FetchLike = typeof fetch;\n\nexport type RAGClientOptions = {\n\tpath: string;\n\tfetch?: FetchLike;\n};\n\nconst jsonHeaders = {\n\t'Content-Type': 'application/json'\n};\n\nconst normalizeBasePath = (path: string) =>\n\tpath.endsWith('/') ? path.slice(0, -1) : path;\n\nconst parseJson = async <T>(response: Response): Promise<T> => {\n\tconst payload = (await response.json()) as T;\n\treturn payload;\n};\n\nconst toErrorMessage = async (response: Response) => {\n\ttry {\n\t\tconst payload = (await response.json()) as { error?: string };\n\t\tif (typeof payload.error === 'string' && payload.error) {\n\t\t\treturn payload.error;\n\t\t}\n\t} catch {\n\t\t// fall through\n\t}\n\n\treturn `Request failed with status ${response.status}`;\n};\n\nexport const createRAGClient = (options: RAGClientOptions) => {\n\tconst basePath = normalizeBasePath(options.path);\n\tconst fetchImpl = options.fetch ?? fetch;\n\n\treturn {\n\t\tasync ingest(chunks: RAGDocumentChunk[]): Promise<RAGIngestResponse> {\n\t\t\tconst response = await fetchImpl(`${basePath}/ingest`, {\n\t\t\t\tbody: JSON.stringify({ chunks }),\n\t\t\t\theaders: jsonHeaders,\n\t\t\t\tmethod: 'POST'\n\t\t\t});\n\n\t\t\tif (!response.ok) {\n\t\t\t\treturn {\n\t\t\t\t\tok: false,\n\t\t\t\t\terror: await toErrorMessage(response)\n\t\t\t\t};\n\t\t\t}\n\n\t\t\treturn parseJson<RAGIngestResponse>(response);\n\t\t},\n\n\t\tasync ingestDocuments(\n\t\t\tinput: RAGDocumentIngestInput\n\t\t): Promise<RAGIngestResponse> {\n\t\t\tconst response = await fetchImpl(`${basePath}/ingest`, {\n\t\t\t\tbody: JSON.stringify(input),\n\t\t\t\theaders: jsonHeaders,\n\t\t\t\tmethod: 'POST'\n\t\t\t});\n\n\t\t\tif (!response.ok) {\n\t\t\t\treturn {\n\t\t\t\t\tok: false,\n\t\t\t\t\terror: await toErrorMessage(response)\n\t\t\t\t};\n\t\t\t}\n\n\t\t\treturn parseJson<RAGIngestResponse>(response);\n\t\t},\n\n\t\tasync search(input: RAGSearchRequest): Promise<RAGSource[]> {\n\t\t\tconst response = await fetchImpl(`${basePath}/search`, {\n\t\t\t\tbody: JSON.stringify(input),\n\t\t\t\theaders: jsonHeaders,\n\t\t\t\tmethod: 'POST'\n\t\t\t});\n\n\t\t\tif (!response.ok) {\n\t\t\t\tthrow new Error(await toErrorMessage(response));\n\t\t\t}\n\n\t\t\tconst payload = await parseJson<{\n\t\t\t\tok: boolean;\n\t\t\t\tresults?: RAGSource[];\n\t\t\t\terror?: string;\n\t\t\t}>(response);\n\n\t\t\tif (!payload.ok) {\n\t\t\t\tthrow new Error(payload.error ?? 'RAG search failed');\n\t\t\t}\n\n\t\t\treturn payload.results ?? [];\n\t\t},\n\n\t\tasync status(): Promise<RAGStatusResponse> {\n\t\t\tconst response = await fetchImpl(`${basePath}/status`);\n\n\t\t\tif (!response.ok) {\n\t\t\t\tthrow new Error(await toErrorMessage(response));\n\t\t\t}\n\n\t\t\treturn parseJson<RAGStatusResponse>(response);\n\t\t},\n\n\t\tasync clearIndex(): Promise<{ ok: boolean }> {\n\t\t\tconst response = await fetchImpl(`${basePath}/index`, {\n\t\t\t\tmethod: 'DELETE'\n\t\t\t});\n\n\t\t\tif (!response.ok) {\n\t\t\t\tthrow new Error(await toErrorMessage(response));\n\t\t\t}\n\n\t\t\treturn parseJson<{ ok: boolean }>(response);\n\t\t}\n\t};\n};\n\nexport type RAGClient = ReturnType<typeof createRAGClient>;\n",
14
- "import { useCallback, useMemo, useState } from 'react';\nimport type { RAGSearchRequest, RAGSource } from '../../../types/ai';\nimport { createRAGClient } from '../../ai/client/ragClient';\n\nexport const useRAGSearch = (path: string) => {\n\tconst client = useMemo(() => createRAGClient({ path }), [path]);\n\tconst [results, setResults] = useState<RAGSource[]>([]);\n\tconst [error, setError] = useState<string | null>(null);\n\tconst [isSearching, setIsSearching] = useState(false);\n\n\tconst search = useCallback(\n\t\tasync (input: RAGSearchRequest) => {\n\t\t\tsetIsSearching(true);\n\t\t\tsetError(null);\n\n\t\t\ttry {\n\t\t\t\tconst nextResults = await client.search(input);\n\t\t\t\tsetResults(nextResults);\n\t\t\t\treturn nextResults;\n\t\t\t} catch (caught) {\n\t\t\t\tconst message =\n\t\t\t\t\tcaught instanceof Error ? caught.message : String(caught);\n\t\t\t\tsetError(message);\n\t\t\t\tthrow caught;\n\t\t\t} finally {\n\t\t\t\tsetIsSearching(false);\n\t\t\t}\n\t\t},\n\t\t[client]\n\t);\n\n\treturn {\n\t\terror,\n\t\tisSearching,\n\t\tresults,\n\t\tsearch,\n\t\tsetResults\n\t};\n};\n\nexport type UseRAGSearchResult = ReturnType<typeof useRAGSearch>;\n",
15
- "import { useCallback, useEffect, useMemo, useState } from 'react';\nimport type {\n\tRAGBackendCapabilities,\n\tRAGVectorStoreStatus\n} from '../../../types/ai';\nimport { createRAGClient } from '../../ai/client/ragClient';\n\nexport const useRAGStatus = (path: string, autoLoad = true) => {\n\tconst client = useMemo(() => createRAGClient({ path }), [path]);\n\tconst [status, setStatus] = useState<RAGVectorStoreStatus | undefined>();\n\tconst [capabilities, setCapabilities] =\n\t\tuseState<RAGBackendCapabilities | undefined>();\n\tconst [error, setError] = useState<string | null>(null);\n\tconst [isLoading, setIsLoading] = useState(autoLoad);\n\n\tconst refresh = useCallback(async () => {\n\t\tsetIsLoading(true);\n\t\tsetError(null);\n\n\t\ttry {\n\t\t\tconst response = await client.status();\n\t\t\tsetStatus(response.status);\n\t\t\tsetCapabilities(response.capabilities);\n\t\t\treturn response;\n\t\t} catch (caught) {\n\t\t\tconst message =\n\t\t\t\tcaught instanceof Error ? caught.message : String(caught);\n\t\t\tsetError(message);\n\t\t\tthrow caught;\n\t\t} finally {\n\t\t\tsetIsLoading(false);\n\t\t}\n\t}, [client]);\n\n\tuseEffect(() => {\n\t\tif (!autoLoad) {\n\t\t\tsetIsLoading(false);\n\t\t\treturn;\n\t\t}\n\n\t\tvoid refresh();\n\t}, [autoLoad, refresh]);\n\n\treturn {\n\t\tcapabilities,\n\t\terror,\n\t\tisLoading,\n\t\trefresh,\n\t\tstatus\n\t};\n};\n\nexport type UseRAGStatusResult = ReturnType<typeof useRAGStatus>;\n",
16
- "import { useAIStream } from './useAIStream';\n\nexport const useRAGStream = useAIStream;\n\nexport type UseRAGStreamResult = ReturnType<typeof useRAGStream>;\n"
17
+ "import { useCallback, useMemo, useState } from 'react';\nimport type { RAGSearchRequest, RAGSource } from '../../../types/ai';\nimport { createRAGClient } from '../../ai/client/ragClient';\n\nexport const useRAGSearch = (path: string) => {\n\tconst client = useMemo(() => createRAGClient({ path }), [path]);\n\tconst [results, setResults] = useState<RAGSource[]>([]);\n\tconst [error, setError] = useState<string | null>(null);\n\tconst [isSearching, setIsSearching] = useState(false);\n\tconst [hasSearched, setHasSearched] = useState(false);\n\tconst [lastRequest, setLastRequest] = useState<RAGSearchRequest | null>(null);\n\n\tconst search = useCallback(\n\t\tasync (input: RAGSearchRequest) => {\n\t\t\tsetIsSearching(true);\n\t\t\tsetError(null);\n\t\t\tsetLastRequest(input);\n\n\t\t\ttry {\n\t\t\t\tconst nextResults = await client.search(input);\n\t\t\t\tsetResults(nextResults);\n\t\t\t\tsetHasSearched(true);\n\t\t\t\treturn nextResults;\n\t\t\t} catch (caught) {\n\t\t\t\tconst message =\n\t\t\t\t\tcaught instanceof Error ? caught.message : String(caught);\n\t\t\t\tsetError(message);\n\t\t\t\tthrow caught;\n\t\t\t} finally {\n\t\t\t\tsetIsSearching(false);\n\t\t\t}\n\t\t},\n\t\t[client]\n\t);\n\n\tconst reset = useCallback(() => {\n\t\tsetError(null);\n\t\tsetHasSearched(false);\n\t\tsetLastRequest(null);\n\t\tsetResults([]);\n\t}, []);\n\n\treturn {\n\t\terror,\n\t\thasSearched,\n\t\tisSearching,\n\t\tlastRequest,\n\t\treset,\n\t\tresults,\n\t\tsearch,\n\t\tsetResults\n\t};\n};\n\nexport type UseRAGSearchResult = ReturnType<typeof useRAGSearch>;\n",
18
+ "import { useMemo } from 'react';\nimport type { AIMessage } from '../../../types/ai';\nimport {\n\tbuildRAGSourceGroups,\n\tgetLatestAssistantMessage,\n\tgetLatestRAGSources\n} from '../../ai/rag/presentation';\n\nexport const useRAGSources = (messages: AIMessage[]) => {\n\tconst latestAssistantMessage = useMemo(\n\t\t() => getLatestAssistantMessage(messages),\n\t\t[messages]\n\t);\n\tconst sources = useMemo(() => getLatestRAGSources(messages), [messages]);\n\tconst sourceGroups = useMemo(() => buildRAGSourceGroups(sources), [sources]);\n\n\treturn {\n\t\thasSources: sources.length > 0,\n\t\tlatestAssistantMessage,\n\t\tsourceGroups,\n\t\tsources\n\t};\n};\n\nexport type UseRAGSourcesResult = ReturnType<typeof useRAGSources>;\n",
19
+ "import { useCallback, useEffect, useMemo, useState } from 'react';\nimport type {\n\tRAGBackendCapabilities,\n\tRAGVectorStoreStatus\n} from '../../../types/ai';\nimport { createRAGClient } from '../../ai/client/ragClient';\n\nexport const useRAGStatus = (path: string, autoLoad = true) => {\n\tconst client = useMemo(() => createRAGClient({ path }), [path]);\n\tconst [status, setStatus] = useState<RAGVectorStoreStatus | undefined>();\n\tconst [capabilities, setCapabilities] =\n\t\tuseState<RAGBackendCapabilities | undefined>();\n\tconst [error, setError] = useState<string | null>(null);\n\tconst [isLoading, setIsLoading] = useState(autoLoad);\n\n\tconst refresh = useCallback(async () => {\n\t\tsetIsLoading(true);\n\t\tsetError(null);\n\n\t\ttry {\n\t\t\tconst response = await client.status();\n\t\t\tsetStatus(response.status);\n\t\t\tsetCapabilities(response.capabilities);\n\t\t\treturn response;\n\t\t} catch (caught) {\n\t\t\tconst message =\n\t\t\t\tcaught instanceof Error ? caught.message : String(caught);\n\t\t\tsetError(message);\n\t\t\tthrow caught;\n\t\t} finally {\n\t\t\tsetIsLoading(false);\n\t\t}\n\t}, [client]);\n\n\tconst reset = useCallback(() => {\n\t\tsetCapabilities(undefined);\n\t\tsetError(null);\n\t\tsetIsLoading(false);\n\t\tsetStatus(undefined);\n\t}, []);\n\n\tuseEffect(() => {\n\t\tif (!autoLoad) {\n\t\t\tsetIsLoading(false);\n\t\t\treturn;\n\t\t}\n\n\t\tvoid refresh();\n\t}, [autoLoad, refresh]);\n\n\treturn {\n\t\tcapabilities,\n\t\terror,\n\t\tisLoading,\n\t\trefresh,\n\t\treset,\n\t\tstatus\n\t};\n};\n\nexport type UseRAGStatusResult = ReturnType<typeof useRAGStatus>;\n",
20
+ "import { useCallback, useMemo } from 'react';\nimport type { AIAttachment } from '../../../types/ai';\nimport {\n\tbuildRAGCitations,\n\tbuildRAGSourceGroups,\n\tgetLatestAssistantMessage,\n\tgetLatestRAGSources,\n\tresolveRAGStreamStage\n} from '../../ai/rag/presentation';\nimport { useAIStream } from './useAIStream';\n\nexport const useRAGStream = (path?: string, conversationId?: string) => {\n\tconst stream = useAIStream(path, conversationId);\n\n\tconst latestAssistantMessage = useMemo(\n\t\t() => getLatestAssistantMessage(stream.messages),\n\t\t[stream.messages]\n\t);\n\tconst sources = useMemo(\n\t\t() => getLatestRAGSources(stream.messages),\n\t\t[stream.messages]\n\t);\n\tconst sourceGroups = useMemo(() => buildRAGSourceGroups(sources), [sources]);\n\tconst citations = useMemo(() => buildRAGCitations(sources), [sources]);\n\tconst stage = useMemo(\n\t\t() =>\n\t\t\tresolveRAGStreamStage({\n\t\t\t\terror: stream.error,\n\t\t\t\tisStreaming: stream.isStreaming,\n\t\t\t\tmessages: stream.messages\n\t\t\t}),\n\t\t[stream.error, stream.isStreaming, stream.messages]\n\t);\n\n\tconst query = useCallback(\n\t\t(content: string, attachments?: AIAttachment[]) => {\n\t\t\tstream.send(content, attachments);\n\t\t},\n\t\t[stream]\n\t);\n\n\treturn {\n\t\t...stream,\n\t\tcitations,\n\t\thasSources: sources.length > 0,\n\t\tlatestAssistantMessage,\n\t\tquery,\n\t\tsourceGroups,\n\t\tsources,\n\t\tstage\n\t};\n};\n\nexport type UseRAGStreamResult = ReturnType<typeof useRAGStream>;\n"
17
21
  ],
18
- "mappings": "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",
19
- "debugId": "5314A0A8B1FD91F264756E2164756E21",
22
+ "mappings": "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",
23
+ "debugId": "D0ADC407D5CCE73D64756E2164756E21",
20
24
  "names": []
21
25
  }
@@ -1737,7 +1737,7 @@ var streamSwapRuntime = () => {
1737
1737
  return;
1738
1738
  }
1739
1739
  }
1740
- if (isAngularDeferPayload(payload) || isVueSuspensePayload(payload)) {
1740
+ if (isAngularDeferPayload(payload)) {
1741
1741
  pending[id] = payload;
1742
1742
  return;
1743
1743
  }
@@ -1751,6 +1751,10 @@ var streamSwapRuntime = () => {
1751
1751
  window.dispatchEvent(new CustomEvent(SLOT_PATCH_EVENT, {
1752
1752
  detail: { html, id, payload }
1753
1753
  }));
1754
+ if (isVueSuspensePayload(payload)) {
1755
+ pending[id] = payload;
1756
+ return;
1757
+ }
1754
1758
  delete pending[id];
1755
1759
  };
1756
1760
  const flush = () => {
@@ -2490,5 +2494,5 @@ export {
2490
2494
  Island
2491
2495
  };
2492
2496
 
2493
- //# debugId=2137BF6FD63475A164756E2164756E21
2497
+ //# debugId=F2CF1789765E704664756E2164756E21
2494
2498
  //# sourceMappingURL=index.js.map