@flamingo-stack/openframe-frontend-core 0.0.518-1663.4312.1 → 0.0.518
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/{chunk-KW7GDLSG.cjs → chunk-262OTU4W.cjs} +14 -14
- package/dist/{chunk-KW7GDLSG.cjs.map → chunk-262OTU4W.cjs.map} +1 -1
- package/dist/{chunk-I6IWT62M.cjs → chunk-2AHSX63M.cjs} +5 -5
- package/dist/{chunk-I6IWT62M.cjs.map → chunk-2AHSX63M.cjs.map} +1 -1
- package/dist/{chunk-LQ2R7IA2.cjs → chunk-2EU3TWCW.cjs} +26 -26
- package/dist/{chunk-LQ2R7IA2.cjs.map → chunk-2EU3TWCW.cjs.map} +1 -1
- package/dist/{chunk-MVY3WDFZ.js → chunk-2ZHVOTSA.js} +2 -2
- package/dist/{chunk-UBTOOE55.js → chunk-5OGHZNY5.js} +10 -1
- package/dist/chunk-5OGHZNY5.js.map +1 -0
- package/dist/{chunk-PUBL2NCH.js → chunk-6EAACE7G.js} +2 -2
- package/dist/{chunk-IIPBTWQR.cjs → chunk-7INXXQVK.cjs} +10 -1
- package/dist/{chunk-IIPBTWQR.cjs.map → chunk-7INXXQVK.cjs.map} +1 -1
- package/dist/{chunk-IVTENGMF.js → chunk-7J4DGFHZ.js} +2 -2
- package/dist/{chunk-LL4C2NXG.js → chunk-7SPVAAWE.js} +109 -134
- package/dist/{chunk-LL4C2NXG.js.map → chunk-7SPVAAWE.js.map} +1 -1
- package/dist/{chunk-NJJWY7SO.js → chunk-BBI7GD2Q.js} +2 -2
- package/dist/{chunk-P6M5MN3L.js → chunk-CV624KM6.js} +6 -6
- package/dist/{chunk-WQDDSJWN.cjs → chunk-FAOL7EI2.cjs} +11 -11
- package/dist/{chunk-WQDDSJWN.cjs.map → chunk-FAOL7EI2.cjs.map} +1 -1
- package/dist/{chunk-MI7WNVWX.js → chunk-FISSR67K.js} +6 -6
- package/dist/{chunk-BQXHC336.cjs → chunk-IPHH3GKC.cjs} +3 -3
- package/dist/{chunk-BQXHC336.cjs.map → chunk-IPHH3GKC.cjs.map} +1 -1
- package/dist/{chunk-PV3LXEHJ.js → chunk-J2JLAW2J.js} +3 -3
- package/dist/{chunk-RLVJISO4.cjs → chunk-J3DRYWFP.cjs} +61 -61
- package/dist/{chunk-RLVJISO4.cjs.map → chunk-J3DRYWFP.cjs.map} +1 -1
- package/dist/{chunk-GH5YZSQQ.cjs → chunk-LY7IT5QX.cjs} +9 -9
- package/dist/{chunk-GH5YZSQQ.cjs.map → chunk-LY7IT5QX.cjs.map} +1 -1
- package/dist/{chunk-K26W23C2.cjs → chunk-MKPJYEOR.cjs} +6 -6
- package/dist/{chunk-K26W23C2.cjs.map → chunk-MKPJYEOR.cjs.map} +1 -1
- package/dist/{chunk-MOZUJ7IN.js → chunk-MY7663CW.js} +2 -2
- package/dist/{chunk-YH627NWE.cjs → chunk-PJ4WHNJH.cjs} +9 -9
- package/dist/{chunk-YH627NWE.cjs.map → chunk-PJ4WHNJH.cjs.map} +1 -1
- package/dist/{chunk-CHMQCXYO.cjs → chunk-QNJCZGHH.cjs} +37 -37
- package/dist/{chunk-CHMQCXYO.cjs.map → chunk-QNJCZGHH.cjs.map} +1 -1
- package/dist/{chunk-TFIPJAA5.js → chunk-QOUKB6OJ.js} +3 -3
- package/dist/{chunk-YUQNJXSC.js → chunk-QPCPYCU2.js} +2 -2
- package/dist/{chunk-DN3GKQ47.cjs → chunk-S3C4RT4O.cjs} +98 -98
- package/dist/{chunk-DN3GKQ47.cjs.map → chunk-S3C4RT4O.cjs.map} +1 -1
- package/dist/{chunk-MKN6S7SU.cjs → chunk-SYQ4KUXW.cjs} +251 -276
- package/dist/chunk-SYQ4KUXW.cjs.map +1 -0
- package/dist/{chunk-URU6YKOA.cjs → chunk-U6NODSTY.cjs} +28 -28
- package/dist/{chunk-URU6YKOA.cjs.map → chunk-U6NODSTY.cjs.map} +1 -1
- package/dist/{chunk-RJU7YCN3.js → chunk-V3K5H4I2.js} +2 -2
- package/dist/{chunk-KRBH3PI4.js → chunk-V76TAQ3O.js} +4 -4
- package/dist/{chunk-QJHBYNHI.js → chunk-VCA3HNJ2.js} +4 -4
- package/dist/{chunk-25JSVBPR.cjs → chunk-WBEF37M5.cjs} +12 -12
- package/dist/{chunk-25JSVBPR.cjs.map → chunk-WBEF37M5.cjs.map} +1 -1
- package/dist/{chunk-O4XLTA5G.cjs → chunk-XDADNUC5.cjs} +31 -31
- package/dist/{chunk-O4XLTA5G.cjs.map → chunk-XDADNUC5.cjs.map} +1 -1
- package/dist/{chunk-XARCNHWZ.js → chunk-YHAYMOXR.js} +3 -3
- package/dist/components/calendar.cjs +3 -3
- package/dist/components/calendar.js +2 -2
- package/dist/components/case-studies/index.cjs +9 -9
- package/dist/components/case-studies/index.js +3 -3
- package/dist/components/chat/hooks/use-jetstream-dialog-subscription.d.ts +1 -7
- package/dist/components/chat/hooks/use-jetstream-dialog-subscription.d.ts.map +1 -1
- package/dist/components/chat/index.cjs +3 -5
- package/dist/components/chat/index.cjs.map +1 -1
- package/dist/components/chat/index.js +2 -4
- package/dist/components/chat/types/api.types.d.ts +4 -22
- package/dist/components/chat/types/api.types.d.ts.map +1 -1
- package/dist/components/contact/index.cjs +4 -4
- package/dist/components/contact/index.js +3 -3
- package/dist/components/docs/index.cjs +6 -6
- package/dist/components/docs/index.js +5 -5
- package/dist/components/embeds/index.cjs +4 -4
- package/dist/components/embeds/index.js +3 -3
- package/dist/components/faq/index.cjs +4 -4
- package/dist/components/faq/index.js +3 -3
- package/dist/components/features/index.cjs +3 -3
- package/dist/components/features/index.js +2 -2
- package/dist/components/help-center-pages/index.cjs +23 -23
- package/dist/components/help-center-pages/index.js +14 -14
- package/dist/components/index.cjs +150 -152
- package/dist/components/index.cjs.map +1 -1
- package/dist/components/index.js +12 -14
- package/dist/components/index.js.map +1 -1
- package/dist/components/meeting-scheduler/index.cjs +41 -41
- package/dist/components/meeting-scheduler/index.js +5 -5
- package/dist/components/navigation/index.cjs +3 -3
- package/dist/components/navigation/index.js +2 -2
- package/dist/components/onboarding-guides/index.cjs +6 -6
- package/dist/components/onboarding-guides/index.js +5 -5
- package/dist/components/related-content/index.cjs +4 -4
- package/dist/components/related-content/index.js +3 -3
- package/dist/components/tickets/index.cjs +7 -7
- package/dist/components/tickets/index.js +6 -6
- package/dist/components/ui/button/button.d.ts +1 -1
- package/dist/components/ui/button/button.d.ts.map +1 -1
- package/dist/components/ui/file-manager/index.cjs +15 -15
- package/dist/components/ui/file-manager/index.js +1 -1
- package/dist/components/ui/index.cjs +3 -5
- package/dist/components/ui/index.cjs.map +1 -1
- package/dist/components/ui/index.js +2 -4
- package/dist/index.cjs +3 -5
- package/dist/index.cjs.map +1 -1
- package/dist/index.js +2 -4
- package/package.json +1 -1
- package/src/components/chat/hooks/.use-jetstream-dialog-subscription.md +4 -11
- package/src/components/chat/hooks/use-jetstream-dialog-subscription.ts +6 -71
- package/src/components/chat/types/api.types.ts +4 -22
- package/src/components/chat/utils/__tests__/history-merge.test.ts +0 -99
- package/src/components/ui/button/button.tsx +9 -0
- package/dist/chunk-MKN6S7SU.cjs.map +0 -1
- package/dist/chunk-UBTOOE55.js.map +0 -1
- /package/dist/{chunk-MVY3WDFZ.js.map → chunk-2ZHVOTSA.js.map} +0 -0
- /package/dist/{chunk-PUBL2NCH.js.map → chunk-6EAACE7G.js.map} +0 -0
- /package/dist/{chunk-IVTENGMF.js.map → chunk-7J4DGFHZ.js.map} +0 -0
- /package/dist/{chunk-NJJWY7SO.js.map → chunk-BBI7GD2Q.js.map} +0 -0
- /package/dist/{chunk-P6M5MN3L.js.map → chunk-CV624KM6.js.map} +0 -0
- /package/dist/{chunk-MI7WNVWX.js.map → chunk-FISSR67K.js.map} +0 -0
- /package/dist/{chunk-PV3LXEHJ.js.map → chunk-J2JLAW2J.js.map} +0 -0
- /package/dist/{chunk-MOZUJ7IN.js.map → chunk-MY7663CW.js.map} +0 -0
- /package/dist/{chunk-TFIPJAA5.js.map → chunk-QOUKB6OJ.js.map} +0 -0
- /package/dist/{chunk-YUQNJXSC.js.map → chunk-QPCPYCU2.js.map} +0 -0
- /package/dist/{chunk-RJU7YCN3.js.map → chunk-V3K5H4I2.js.map} +0 -0
- /package/dist/{chunk-KRBH3PI4.js.map → chunk-V76TAQ3O.js.map} +0 -0
- /package/dist/{chunk-QJHBYNHI.js.map → chunk-VCA3HNJ2.js.map} +0 -0
- /package/dist/{chunk-XARCNHWZ.js.map → chunk-YHAYMOXR.js.map} +0 -0
|
@@ -262,7 +262,7 @@ import {
|
|
|
262
262
|
init_button,
|
|
263
263
|
init_button2,
|
|
264
264
|
init_split_button
|
|
265
|
-
} from "./chunk-
|
|
265
|
+
} from "./chunk-5OGHZNY5.js";
|
|
266
266
|
import {
|
|
267
267
|
init_next_link,
|
|
268
268
|
next_link_default
|
|
@@ -52551,10 +52551,9 @@ function useScriptedStream(frames, resetKey, enabled = true) {
|
|
|
52551
52551
|
}
|
|
52552
52552
|
|
|
52553
52553
|
// src/components/chat/hooks/use-jetstream-dialog-subscription.ts
|
|
52554
|
-
import {
|
|
52554
|
+
import { useEffect as useEffect84, useRef as useRef68, useState as useState114 } from "react";
|
|
52555
52555
|
var DEFAULT_STREAM_NAME = "CHAT_CHUNKS";
|
|
52556
52556
|
var RESYNC_AFTER_HIDDEN_MS = 1e4;
|
|
52557
|
-
var RESYNC_COALESCE_MS = 1e3;
|
|
52558
52557
|
var RECOVERY_REPORT_FLOOR_MS = 5e3;
|
|
52559
52558
|
function useJetStreamDialogSubscription({
|
|
52560
52559
|
enabled,
|
|
@@ -52570,8 +52569,7 @@ function useJetStreamDialogSubscription({
|
|
|
52570
52569
|
getNatsWsUrl,
|
|
52571
52570
|
clientConfig = {},
|
|
52572
52571
|
reconnectionBackoff,
|
|
52573
|
-
inactiveThresholdMs
|
|
52574
|
-
resyncSignal = 0
|
|
52572
|
+
inactiveThresholdMs
|
|
52575
52573
|
}) {
|
|
52576
52574
|
const [isConnected, setIsConnected] = useState114(false);
|
|
52577
52575
|
const [isSubscribed, setIsSubscribed] = useState114(false);
|
|
@@ -52579,8 +52577,6 @@ function useJetStreamDialogSubscription({
|
|
|
52579
52577
|
const [recoveryCount, setRecoveryCount] = useState114(0);
|
|
52580
52578
|
const [currentStreamSeq, setCurrentStreamSeq] = useState114(null);
|
|
52581
52579
|
const lastRecoveryReportRef = useRef68(0);
|
|
52582
|
-
const resyncTimerRef = useRef68(null);
|
|
52583
|
-
const lastResyncSignalRef = useRef68(resyncSignal);
|
|
52584
52580
|
const clientRef = useRef68(null);
|
|
52585
52581
|
const subscriptionRef = useRef68(null);
|
|
52586
52582
|
const highestStreamSeqRef = useRef68(null);
|
|
@@ -52710,22 +52706,8 @@ function useJetStreamDialogSubscription({
|
|
|
52710
52706
|
}, [enabled, wsUrl]);
|
|
52711
52707
|
useEffect84(() => {
|
|
52712
52708
|
highestStreamSeqRef.current = null;
|
|
52713
|
-
lastResyncSignalRef.current = resyncSignal;
|
|
52714
52709
|
setCurrentStreamSeq(null);
|
|
52715
|
-
return () => {
|
|
52716
|
-
if (resyncTimerRef.current !== null) {
|
|
52717
|
-
clearTimeout(resyncTimerRef.current);
|
|
52718
|
-
resyncTimerRef.current = null;
|
|
52719
|
-
}
|
|
52720
|
-
};
|
|
52721
52710
|
}, [dialogId]);
|
|
52722
|
-
const requestResync = useCallback49(() => {
|
|
52723
|
-
if (resyncTimerRef.current !== null) clearTimeout(resyncTimerRef.current);
|
|
52724
|
-
resyncTimerRef.current = setTimeout(() => {
|
|
52725
|
-
resyncTimerRef.current = null;
|
|
52726
|
-
setReconnectionCount((c) => c + 1);
|
|
52727
|
-
}, RESYNC_COALESCE_MS);
|
|
52728
|
-
}, []);
|
|
52729
52711
|
useEffect84(() => {
|
|
52730
52712
|
if (!enabled) return;
|
|
52731
52713
|
let hiddenSince = document.visibilityState === "hidden" ? Date.now() : 0;
|
|
@@ -52737,18 +52719,12 @@ function useJetStreamDialogSubscription({
|
|
|
52737
52719
|
const awayMs = hiddenSince === 0 ? 0 : Date.now() - hiddenSince;
|
|
52738
52720
|
hiddenSince = 0;
|
|
52739
52721
|
if (awayMs >= RESYNC_AFTER_HIDDEN_MS) {
|
|
52740
|
-
|
|
52722
|
+
setReconnectionCount((c) => c + 1);
|
|
52741
52723
|
}
|
|
52742
52724
|
};
|
|
52743
52725
|
document.addEventListener("visibilitychange", onVisibilityChange);
|
|
52744
52726
|
return () => document.removeEventListener("visibilitychange", onVisibilityChange);
|
|
52745
|
-
}, [enabled
|
|
52746
|
-
useEffect84(() => {
|
|
52747
|
-
if (!enabled) return;
|
|
52748
|
-
if (resyncSignal <= lastResyncSignalRef.current) return;
|
|
52749
|
-
lastResyncSignalRef.current = resyncSignal;
|
|
52750
|
-
requestResync();
|
|
52751
|
-
}, [enabled, resyncSignal, requestResync]);
|
|
52727
|
+
}, [enabled]);
|
|
52752
52728
|
useEffect84(() => {
|
|
52753
52729
|
if (!enabled || !dialogId || !isConnected) {
|
|
52754
52730
|
if (subscriptionRef.current) {
|
|
@@ -53251,7 +53227,7 @@ function useEmptyStateConfig(emptyStateUrl, options) {
|
|
|
53251
53227
|
}
|
|
53252
53228
|
|
|
53253
53229
|
// src/components/chat/hooks/use-chat-attachments.ts
|
|
53254
|
-
import { useCallback as
|
|
53230
|
+
import { useCallback as useCallback49, useMemo as useMemo49, useRef as useRef70, useState as useState117 } from "react";
|
|
53255
53231
|
import { fileTypeFromBlob } from "file-type";
|
|
53256
53232
|
var CHAT_ATTACHMENTS_BUCKET = "chat-attachments";
|
|
53257
53233
|
var CHAT_ATTACHMENTS_FOLDER = "chat";
|
|
@@ -53329,10 +53305,10 @@ function useChatAttachments() {
|
|
|
53329
53305
|
const uploadUrlEndpoint = runtime.endpoints.attachmentUploadUrl;
|
|
53330
53306
|
const [attachments, setAttachments] = useState117([]);
|
|
53331
53307
|
const controllersRef = useRef70(/* @__PURE__ */ new Map());
|
|
53332
|
-
const updateOne =
|
|
53308
|
+
const updateOne = useCallback49((id, patch) => {
|
|
53333
53309
|
setAttachments((prev) => prev.map((a) => a.id === id ? { ...a, ...patch } : a));
|
|
53334
53310
|
}, []);
|
|
53335
|
-
const removeAttachment =
|
|
53311
|
+
const removeAttachment = useCallback49((id) => {
|
|
53336
53312
|
const ctrl = controllersRef.current.get(id);
|
|
53337
53313
|
if (ctrl) {
|
|
53338
53314
|
ctrl.abort();
|
|
@@ -53340,12 +53316,12 @@ function useChatAttachments() {
|
|
|
53340
53316
|
}
|
|
53341
53317
|
setAttachments((prev) => prev.filter((a) => a.id !== id));
|
|
53342
53318
|
}, []);
|
|
53343
|
-
const clear =
|
|
53319
|
+
const clear = useCallback49(() => {
|
|
53344
53320
|
for (const ctrl of controllersRef.current.values()) ctrl.abort();
|
|
53345
53321
|
controllersRef.current.clear();
|
|
53346
53322
|
setAttachments([]);
|
|
53347
53323
|
}, []);
|
|
53348
|
-
const uploadOne =
|
|
53324
|
+
const uploadOne = useCallback49(
|
|
53349
53325
|
async (att) => {
|
|
53350
53326
|
const ctrl = controllersRef.current.get(att.id);
|
|
53351
53327
|
try {
|
|
@@ -53419,7 +53395,7 @@ function useChatAttachments() {
|
|
|
53419
53395
|
);
|
|
53420
53396
|
const attachmentsRef = useRef70([]);
|
|
53421
53397
|
attachmentsRef.current = attachments;
|
|
53422
|
-
const addFiles =
|
|
53398
|
+
const addFiles = useCallback49(
|
|
53423
53399
|
(files) => {
|
|
53424
53400
|
const arr = Array.from(files);
|
|
53425
53401
|
if (arr.length === 0) return;
|
|
@@ -53494,7 +53470,7 @@ function useChatAttachments() {
|
|
|
53494
53470
|
}
|
|
53495
53471
|
|
|
53496
53472
|
// src/components/chat/hooks/use-chat-attachment-image-gallery.tsx
|
|
53497
|
-
import { useCallback as
|
|
53473
|
+
import { useCallback as useCallback50, useEffect as useEffect87, useRef as useRef71, useState as useState118 } from "react";
|
|
53498
53474
|
import { jsx as jsx379 } from "react/jsx-runtime";
|
|
53499
53475
|
var CLOSED = { isOpen: false, images: [], initialIndex: 0 };
|
|
53500
53476
|
function useChatAttachmentImageGallery() {
|
|
@@ -53502,7 +53478,7 @@ function useChatAttachmentImageGallery() {
|
|
|
53502
53478
|
const viewUrlPrefix = runtime.endpoints.attachmentViewUrlPrefix;
|
|
53503
53479
|
const panelRef = useRef71(null);
|
|
53504
53480
|
const [state, setState] = useState118(CLOSED);
|
|
53505
|
-
const handleClose =
|
|
53481
|
+
const handleClose = useCallback50(() => setState(CLOSED), []);
|
|
53506
53482
|
useEffect87(() => {
|
|
53507
53483
|
const root = panelRef.current;
|
|
53508
53484
|
if (!root) return;
|
|
@@ -53567,20 +53543,20 @@ function useCloseOnNavigation(close, pathname) {
|
|
|
53567
53543
|
}
|
|
53568
53544
|
|
|
53569
53545
|
// src/components/chat/hooks/use-chat.ts
|
|
53570
|
-
import { useState as useState120, useCallback as
|
|
53546
|
+
import { useState as useState120, useCallback as useCallback52, useEffect as useEffect89, useRef as useRef74 } from "react";
|
|
53571
53547
|
|
|
53572
53548
|
// src/components/chat/hooks/use-sse.ts
|
|
53573
|
-
import { useState as useState119, useCallback as
|
|
53549
|
+
import { useState as useState119, useCallback as useCallback51, useRef as useRef73 } from "react";
|
|
53574
53550
|
function useSSE({ useMock = true, debugMode = false, streamFn } = {}) {
|
|
53575
53551
|
const [isStreaming, setIsStreaming] = useState119(false);
|
|
53576
53552
|
const [error, setError] = useState119(null);
|
|
53577
53553
|
const abortControllerRef = useRef73(null);
|
|
53578
|
-
const fallbackStream =
|
|
53554
|
+
const fallbackStream = useCallback51(async function* () {
|
|
53579
53555
|
throw new Error(
|
|
53580
53556
|
"[useSSE] No streamFn provided and `useMock: true` is no longer wired into the lib. Supply a `streamFn` (see `createDocStreamFn` in use-embedded-chat) or migrate the mock to your host code."
|
|
53581
53557
|
);
|
|
53582
53558
|
}, []);
|
|
53583
|
-
const streamMessage =
|
|
53559
|
+
const streamMessage = useCallback51(
|
|
53584
53560
|
async function* (message2, extra) {
|
|
53585
53561
|
setIsStreaming(true);
|
|
53586
53562
|
setError(null);
|
|
@@ -53610,13 +53586,13 @@ function useSSE({ useMock = true, debugMode = false, streamFn } = {}) {
|
|
|
53610
53586
|
},
|
|
53611
53587
|
[streamFn, fallbackStream]
|
|
53612
53588
|
);
|
|
53613
|
-
const abort =
|
|
53589
|
+
const abort = useCallback51(() => {
|
|
53614
53590
|
if (abortControllerRef.current) {
|
|
53615
53591
|
abortControllerRef.current.abort();
|
|
53616
53592
|
}
|
|
53617
53593
|
setIsStreaming(false);
|
|
53618
53594
|
}, []);
|
|
53619
|
-
const reset =
|
|
53595
|
+
const reset = useCallback51(() => {
|
|
53620
53596
|
}, []);
|
|
53621
53597
|
return {
|
|
53622
53598
|
streamMessage,
|
|
@@ -53659,10 +53635,10 @@ function useChat({
|
|
|
53659
53635
|
debugMode,
|
|
53660
53636
|
streamFn
|
|
53661
53637
|
});
|
|
53662
|
-
const addMessage =
|
|
53638
|
+
const addMessage = useCallback52((message2) => {
|
|
53663
53639
|
setMessages((prev) => [...prev, message2]);
|
|
53664
53640
|
}, []);
|
|
53665
|
-
const updateLastAssistantMessage =
|
|
53641
|
+
const updateLastAssistantMessage = useCallback52((segments) => {
|
|
53666
53642
|
setMessages((prev) => {
|
|
53667
53643
|
const newMessages = [...prev];
|
|
53668
53644
|
const lastMessage = newMessages[newMessages.length - 1];
|
|
@@ -53675,7 +53651,7 @@ function useChat({
|
|
|
53675
53651
|
return newMessages;
|
|
53676
53652
|
});
|
|
53677
53653
|
}, []);
|
|
53678
|
-
const sendMessage =
|
|
53654
|
+
const sendMessage = useCallback52(
|
|
53679
53655
|
async (text, extra, options) => {
|
|
53680
53656
|
const userMessage = {
|
|
53681
53657
|
id: `user-${Date.now()}`,
|
|
@@ -53905,21 +53881,21 @@ function useChat({
|
|
|
53905
53881
|
},
|
|
53906
53882
|
[streamMessage, addMessage, updateLastAssistantMessage, assistantName, assistantAvatar]
|
|
53907
53883
|
);
|
|
53908
|
-
const handleQuickAction =
|
|
53884
|
+
const handleQuickAction = useCallback52(
|
|
53909
53885
|
(actionText) => {
|
|
53910
53886
|
sendMessage(actionText);
|
|
53911
53887
|
},
|
|
53912
53888
|
[sendMessage]
|
|
53913
53889
|
);
|
|
53914
|
-
const clearMessages =
|
|
53890
|
+
const clearMessages = useCallback52(() => {
|
|
53915
53891
|
setMessages([]);
|
|
53916
53892
|
setIsTyping(false);
|
|
53917
53893
|
reset();
|
|
53918
53894
|
}, [reset]);
|
|
53919
|
-
const hydrateMessages =
|
|
53895
|
+
const hydrateMessages = useCallback52((history) => {
|
|
53920
53896
|
setMessages((prev) => prev.length === 0 ? history : [...history, ...prev]);
|
|
53921
53897
|
}, []);
|
|
53922
|
-
const stopMessage =
|
|
53898
|
+
const stopMessage = useCallback52(() => {
|
|
53923
53899
|
abort();
|
|
53924
53900
|
setIsTyping(false);
|
|
53925
53901
|
}, [abort]);
|
|
@@ -53938,7 +53914,7 @@ function useChat({
|
|
|
53938
53914
|
}
|
|
53939
53915
|
|
|
53940
53916
|
// src/components/chat/hooks/use-sse-chat-adapter.ts
|
|
53941
|
-
import { useCallback as
|
|
53917
|
+
import { useCallback as useCallback54, useMemo as useMemo51, useRef as useRef77 } from "react";
|
|
53942
53918
|
|
|
53943
53919
|
// src/chat-protocol/frames.ts
|
|
53944
53920
|
var FRAME_TERMINATOR = "\0";
|
|
@@ -56158,7 +56134,7 @@ function createChatDialogStore(options = {}) {
|
|
|
56158
56134
|
}
|
|
56159
56135
|
|
|
56160
56136
|
// src/components/chat/stream/use-chat-stream-reducer.ts
|
|
56161
|
-
import { useCallback as
|
|
56137
|
+
import { useCallback as useCallback53, useEffect as useEffect91, useMemo as useMemo50, useRef as useRef76, useSyncExternalStore } from "react";
|
|
56162
56138
|
|
|
56163
56139
|
// src/components/chat/stream/delta-batcher.ts
|
|
56164
56140
|
var DELTA_FLUSH_FALLBACK_MS = 50;
|
|
@@ -56250,9 +56226,9 @@ function useChatStreamReducer({
|
|
|
56250
56226
|
const optionsRef = useRef76(createReducerOptions);
|
|
56251
56227
|
optionsRef.current = createReducerOptions;
|
|
56252
56228
|
const reducer2 = store.getReducer(dialogId, side, () => optionsRef.current?.() ?? {});
|
|
56253
|
-
const getSnapshot =
|
|
56254
|
-
const getServerSnapshot =
|
|
56255
|
-
const subscribe =
|
|
56229
|
+
const getSnapshot = useCallback53(() => store.getSnapshot(dialogId, side), [store, dialogId, side]);
|
|
56230
|
+
const getServerSnapshot = useCallback53(() => store.getServerSnapshot(), [store]);
|
|
56231
|
+
const subscribe = useCallback53((listener) => store.subscribe(listener), [store]);
|
|
56256
56232
|
const state = useSyncExternalStore(subscribe, getSnapshot, getServerSnapshot);
|
|
56257
56233
|
useEffect91(() => store.retain(dialogId, side), [store, dialogId, side]);
|
|
56258
56234
|
const keyRef = useRef76({ dialogId, side });
|
|
@@ -56270,8 +56246,8 @@ function useChatStreamReducer({
|
|
|
56270
56246
|
});
|
|
56271
56247
|
}
|
|
56272
56248
|
const batcher = batcherRef.current;
|
|
56273
|
-
const flushDeltas =
|
|
56274
|
-
const applyEvent =
|
|
56249
|
+
const flushDeltas = useCallback53(() => batcher.flush(), [batcher]);
|
|
56250
|
+
const applyEvent = useCallback53(
|
|
56275
56251
|
(event) => {
|
|
56276
56252
|
if (batcher.push(event, keyRef.current)) return;
|
|
56277
56253
|
batcher.flush();
|
|
@@ -56280,7 +56256,7 @@ function useChatStreamReducer({
|
|
|
56280
56256
|
[batcher, store, dialogId, side]
|
|
56281
56257
|
);
|
|
56282
56258
|
useEffect91(() => () => batcher.dispose(), [batcher]);
|
|
56283
|
-
const mutate =
|
|
56259
|
+
const mutate = useCallback53(
|
|
56284
56260
|
(fn) => store.mutate(dialogId, side, fn),
|
|
56285
56261
|
[store, dialogId, side]
|
|
56286
56262
|
);
|
|
@@ -56312,7 +56288,7 @@ function useSseChatAdapter(options, runtimeOptions = {}) {
|
|
|
56312
56288
|
const source = runtime.source || DEFAULT_CHAT_SOURCE;
|
|
56313
56289
|
const tableIdForDocumentType = options?.tableIdForDocumentType ?? defaultTableIdForDocumentType;
|
|
56314
56290
|
const sendMessageRef = useRef77(async () => true);
|
|
56315
|
-
const cardResolve =
|
|
56291
|
+
const cardResolve = useCallback54(
|
|
56316
56292
|
(action) => (reqId) => {
|
|
56317
56293
|
if (!reqId) return;
|
|
56318
56294
|
return sendMessageRef.current("", {
|
|
@@ -56324,7 +56300,7 @@ function useSseChatAdapter(options, runtimeOptions = {}) {
|
|
|
56324
56300
|
);
|
|
56325
56301
|
const cardApprove = useMemo51(() => cardResolve("approve"), [cardResolve]);
|
|
56326
56302
|
const cardReject = useMemo51(() => cardResolve("reject"), [cardResolve]);
|
|
56327
|
-
const createReducerOptions =
|
|
56303
|
+
const createReducerOptions = useCallback54(
|
|
56328
56304
|
() => ({
|
|
56329
56305
|
transport: "sse",
|
|
56330
56306
|
callbacks: { onApprove: cardApprove, onReject: cardReject }
|
|
@@ -56374,7 +56350,7 @@ function useSseChatAdapter(options, runtimeOptions = {}) {
|
|
|
56374
56350
|
const historyUrl = runtime.endpoints.chatHistoryUrl ?? `${runtime.endpoints.chatStreamUrl.replace(/\/+$/, "")}/history`;
|
|
56375
56351
|
const hydrationRefsMapRef = useRef77(/* @__PURE__ */ new Map());
|
|
56376
56352
|
const hydrationSendCountRef = useRef77(0);
|
|
56377
|
-
const hydrateMessages =
|
|
56353
|
+
const hydrateMessages = useCallback54(
|
|
56378
56354
|
(history) => {
|
|
56379
56355
|
mutate((r) => {
|
|
56380
56356
|
const mapped = history.map(historyMessageToReducerMessage);
|
|
@@ -56406,7 +56382,7 @@ function useSseChatAdapter(options, runtimeOptions = {}) {
|
|
|
56406
56382
|
});
|
|
56407
56383
|
const endpointsRef = useRef77(runtime.endpoints);
|
|
56408
56384
|
endpointsRef.current = runtime.endpoints;
|
|
56409
|
-
const captureConversationId =
|
|
56385
|
+
const captureConversationId = useCallback54(
|
|
56410
56386
|
(event) => {
|
|
56411
56387
|
if (event.type !== "metadata") return;
|
|
56412
56388
|
const id = event.conversationId;
|
|
@@ -56417,7 +56393,7 @@ function useSseChatAdapter(options, runtimeOptions = {}) {
|
|
|
56417
56393
|
},
|
|
56418
56394
|
[conversationStorage]
|
|
56419
56395
|
);
|
|
56420
|
-
const sendMessage =
|
|
56396
|
+
const sendMessage = useCallback54(
|
|
56421
56397
|
// Resolves `true` on a clean turn, `false` when the request failed
|
|
56422
56398
|
// (surfaced to batch approve-all loops via the card callbacks).
|
|
56423
56399
|
async (text, sendOptions) => {
|
|
@@ -56502,12 +56478,12 @@ function useSseChatAdapter(options, runtimeOptions = {}) {
|
|
|
56502
56478
|
[mutate, applyEvent, flushDeltas, captureConversationId]
|
|
56503
56479
|
);
|
|
56504
56480
|
sendMessageRef.current = sendMessage;
|
|
56505
|
-
const stopMessage =
|
|
56481
|
+
const stopMessage = useCallback54(() => {
|
|
56506
56482
|
abortControllerRef.current?.abort();
|
|
56507
56483
|
flushDeltas();
|
|
56508
56484
|
mutate((r) => r.setPhase("idle"));
|
|
56509
56485
|
}, [mutate, flushDeltas]);
|
|
56510
|
-
const clearMessages =
|
|
56486
|
+
const clearMessages = useCallback54(() => {
|
|
56511
56487
|
mutate((r) => r.reset());
|
|
56512
56488
|
conversationIdRef.current = null;
|
|
56513
56489
|
conversationStorage.clear();
|
|
@@ -56545,7 +56521,7 @@ function useSseChatAdapter(options, runtimeOptions = {}) {
|
|
|
56545
56521
|
};
|
|
56546
56522
|
});
|
|
56547
56523
|
}, [state.messages, state.turnMeta]);
|
|
56548
|
-
const displayRef =
|
|
56524
|
+
const displayRef = useCallback54(
|
|
56549
56525
|
(reference) => {
|
|
56550
56526
|
const tableId = tableIdForDocumentType(reference.type);
|
|
56551
56527
|
if (!tableId) {
|
|
@@ -56569,7 +56545,7 @@ function useSseChatAdapter(options, runtimeOptions = {}) {
|
|
|
56569
56545
|
},
|
|
56570
56546
|
[sendMessage, source, cmdIdByTableId, tableIdForDocumentType]
|
|
56571
56547
|
);
|
|
56572
|
-
const discussRef =
|
|
56548
|
+
const discussRef = useCallback54(
|
|
56573
56549
|
(reference) => {
|
|
56574
56550
|
const tableId = tableIdForDocumentType(reference.type);
|
|
56575
56551
|
if (!tableId) {
|
|
@@ -56671,7 +56647,7 @@ var noopBumpMetaTick = () => {
|
|
|
56671
56647
|
};
|
|
56672
56648
|
|
|
56673
56649
|
// src/components/chat/hooks/use-nats-chat-adapter.ts
|
|
56674
|
-
import { useCallback as
|
|
56650
|
+
import { useCallback as useCallback55, useEffect as useEffect92, useMemo as useMemo52, useRef as useRef78, useState as useState122 } from "react";
|
|
56675
56651
|
|
|
56676
56652
|
// src/chat-protocol/nats-decoder.ts
|
|
56677
56653
|
function normalizeToolCalls(raw) {
|
|
@@ -57427,11 +57403,11 @@ function useNatsChatAdapter(config, options = {}) {
|
|
|
57427
57403
|
async () => {
|
|
57428
57404
|
}
|
|
57429
57405
|
);
|
|
57430
|
-
const accumApprove =
|
|
57406
|
+
const accumApprove = useCallback55((requestId) => {
|
|
57431
57407
|
if (!requestId) return;
|
|
57432
57408
|
return handleApproveRef.current(requestId);
|
|
57433
57409
|
}, []);
|
|
57434
|
-
const accumReject =
|
|
57410
|
+
const accumReject = useCallback55((requestId) => {
|
|
57435
57411
|
if (!requestId) return;
|
|
57436
57412
|
return handleRejectRef.current(requestId);
|
|
57437
57413
|
}, []);
|
|
@@ -57485,7 +57461,7 @@ function useNatsChatAdapter(config, options = {}) {
|
|
|
57485
57461
|
console.error("[useNatsChatAdapter] rejectRequest failed:", err);
|
|
57486
57462
|
}
|
|
57487
57463
|
};
|
|
57488
|
-
const processChunk =
|
|
57464
|
+
const processChunk = useCallback55(
|
|
57489
57465
|
(chunk) => {
|
|
57490
57466
|
const event = decodeNatsChunk(chunk);
|
|
57491
57467
|
if (event) applyEvent(event);
|
|
@@ -57514,7 +57490,7 @@ function useNatsChatAdapter(config, options = {}) {
|
|
|
57514
57490
|
fetchChunks
|
|
57515
57491
|
});
|
|
57516
57492
|
const historyLoadSeqRef = useRef78(0);
|
|
57517
|
-
const loadDialogHistory =
|
|
57493
|
+
const loadDialogHistory = useCallback55(
|
|
57518
57494
|
async (id, cursor) => {
|
|
57519
57495
|
if (!fetchDialogMessages) return;
|
|
57520
57496
|
historyLoadSeqRef.current += 1;
|
|
@@ -57661,7 +57637,7 @@ function useNatsChatAdapter(config, options = {}) {
|
|
|
57661
57637
|
setConnectionState("connecting");
|
|
57662
57638
|
}, [active, dialogId]);
|
|
57663
57639
|
const initialDialogsLoadedRef = useRef78(false);
|
|
57664
|
-
const loadDialogsPage =
|
|
57640
|
+
const loadDialogsPage = useCallback55(
|
|
57665
57641
|
async (cursor) => {
|
|
57666
57642
|
if (!fetchDialogs) return;
|
|
57667
57643
|
setIsDialogsLoading(true);
|
|
@@ -57689,7 +57665,7 @@ function useNatsChatAdapter(config, options = {}) {
|
|
|
57689
57665
|
},
|
|
57690
57666
|
[fetchDialogs, dialogsPageSize]
|
|
57691
57667
|
);
|
|
57692
|
-
const reloadDialogs =
|
|
57668
|
+
const reloadDialogs = useCallback55(() => {
|
|
57693
57669
|
void loadDialogsPage();
|
|
57694
57670
|
}, [loadDialogsPage]);
|
|
57695
57671
|
useEffect92(() => {
|
|
@@ -57699,7 +57675,7 @@ function useNatsChatAdapter(config, options = {}) {
|
|
|
57699
57675
|
initialDialogsLoadedRef.current = true;
|
|
57700
57676
|
void loadDialogsPage();
|
|
57701
57677
|
}, [active, fetchDialogs, loadDialogsPage]);
|
|
57702
|
-
const sendMessage =
|
|
57678
|
+
const sendMessage = useCallback55(
|
|
57703
57679
|
async (text, sendOptions) => {
|
|
57704
57680
|
const hidden = sendOptions?.hidden ?? false;
|
|
57705
57681
|
mutate((r) => r.pushOptimisticSend(text, hidden));
|
|
@@ -57707,7 +57683,7 @@ function useNatsChatAdapter(config, options = {}) {
|
|
|
57707
57683
|
},
|
|
57708
57684
|
[mutate, publishUserMessage, dialogId]
|
|
57709
57685
|
);
|
|
57710
|
-
const stopMessage =
|
|
57686
|
+
const stopMessage = useCallback55(() => {
|
|
57711
57687
|
mutate((r) => r.setPhase("idle"));
|
|
57712
57688
|
if (stopGenerationCallback && dialogId) {
|
|
57713
57689
|
void stopGenerationCallback(dialogId).catch((err) => {
|
|
@@ -57715,10 +57691,10 @@ function useNatsChatAdapter(config, options = {}) {
|
|
|
57715
57691
|
});
|
|
57716
57692
|
}
|
|
57717
57693
|
}, [mutate, stopGenerationCallback, dialogId]);
|
|
57718
|
-
const clearMessages =
|
|
57694
|
+
const clearMessages = useCallback55(() => {
|
|
57719
57695
|
mutate((r) => r.clearThread());
|
|
57720
57696
|
}, [mutate]);
|
|
57721
|
-
const selectDialog =
|
|
57697
|
+
const selectDialog = useCallback55(
|
|
57722
57698
|
(id) => {
|
|
57723
57699
|
if (!isManagedMode) {
|
|
57724
57700
|
return;
|
|
@@ -57727,7 +57703,7 @@ function useNatsChatAdapter(config, options = {}) {
|
|
|
57727
57703
|
},
|
|
57728
57704
|
[isManagedMode]
|
|
57729
57705
|
);
|
|
57730
|
-
const startNewDialog =
|
|
57706
|
+
const startNewDialog = useCallback55(async () => {
|
|
57731
57707
|
if (!createDialogCallback) return null;
|
|
57732
57708
|
if (isCreatingDialog) return null;
|
|
57733
57709
|
try {
|
|
@@ -57752,7 +57728,7 @@ function useNatsChatAdapter(config, options = {}) {
|
|
|
57752
57728
|
setIsCreatingDialog(false);
|
|
57753
57729
|
}
|
|
57754
57730
|
}, [createDialogCallback, isCreatingDialog, isManagedMode]);
|
|
57755
|
-
const deleteDialog =
|
|
57731
|
+
const deleteDialog = useCallback55(
|
|
57756
57732
|
async (id) => {
|
|
57757
57733
|
if (!deleteDialogCallback) return;
|
|
57758
57734
|
try {
|
|
@@ -57768,7 +57744,7 @@ function useNatsChatAdapter(config, options = {}) {
|
|
|
57768
57744
|
},
|
|
57769
57745
|
[deleteDialogCallback, internalDialogId, isManagedMode]
|
|
57770
57746
|
);
|
|
57771
|
-
const renameDialog =
|
|
57747
|
+
const renameDialog = useCallback55(
|
|
57772
57748
|
async (id, title) => {
|
|
57773
57749
|
if (!renameDialogCallback) return;
|
|
57774
57750
|
let previous;
|
|
@@ -57792,7 +57768,7 @@ function useNatsChatAdapter(config, options = {}) {
|
|
|
57792
57768
|
},
|
|
57793
57769
|
[renameDialogCallback]
|
|
57794
57770
|
);
|
|
57795
|
-
const archiveDialog =
|
|
57771
|
+
const archiveDialog = useCallback55(
|
|
57796
57772
|
async (id) => {
|
|
57797
57773
|
if (!archiveDialogCallback) return;
|
|
57798
57774
|
try {
|
|
@@ -57807,27 +57783,27 @@ function useNatsChatAdapter(config, options = {}) {
|
|
|
57807
57783
|
},
|
|
57808
57784
|
[archiveDialogCallback, internalDialogId, isManagedMode]
|
|
57809
57785
|
);
|
|
57810
|
-
const loadMoreDialogs =
|
|
57786
|
+
const loadMoreDialogs = useCallback55(async () => {
|
|
57811
57787
|
if (!dialogsNextCursor) return;
|
|
57812
57788
|
await loadDialogsPage(dialogsNextCursor);
|
|
57813
57789
|
}, [dialogsNextCursor, loadDialogsPage]);
|
|
57814
|
-
const loadMoreMessages =
|
|
57790
|
+
const loadMoreMessages = useCallback55(async () => {
|
|
57815
57791
|
if (!dialogId || !messagesNextCursor) return;
|
|
57816
57792
|
await loadDialogHistory(dialogId, messagesNextCursor);
|
|
57817
57793
|
}, [dialogId, messagesNextCursor, loadDialogHistory]);
|
|
57818
|
-
const approveRequest =
|
|
57794
|
+
const approveRequest = useCallback55(
|
|
57819
57795
|
async (requestId) => {
|
|
57820
57796
|
await handleApproveRef.current(requestId);
|
|
57821
57797
|
},
|
|
57822
57798
|
[]
|
|
57823
57799
|
);
|
|
57824
|
-
const rejectRequest =
|
|
57800
|
+
const rejectRequest = useCallback55(
|
|
57825
57801
|
async (requestId, reason) => {
|
|
57826
57802
|
await handleRejectRef.current(requestId, reason);
|
|
57827
57803
|
},
|
|
57828
57804
|
[]
|
|
57829
57805
|
);
|
|
57830
|
-
const discussRef =
|
|
57806
|
+
const discussRef = useCallback55(
|
|
57831
57807
|
(reference) => {
|
|
57832
57808
|
const prompt = buildDiscussPrompt(reference, { includeReference: true });
|
|
57833
57809
|
void sendMessage(prompt).catch((err) => {
|
|
@@ -57836,7 +57812,7 @@ function useNatsChatAdapter(config, options = {}) {
|
|
|
57836
57812
|
},
|
|
57837
57813
|
[sendMessage]
|
|
57838
57814
|
);
|
|
57839
|
-
const displayRef =
|
|
57815
|
+
const displayRef = useCallback55((_ref) => {
|
|
57840
57816
|
}, []);
|
|
57841
57817
|
const { messages, streamingPhase, dialogTokenUsage = null, liveModel = null } = state;
|
|
57842
57818
|
const isLoading = streamingPhase !== "idle";
|
|
@@ -57925,7 +57901,7 @@ function useNatsChatAdapter(config, options = {}) {
|
|
|
57925
57901
|
}
|
|
57926
57902
|
|
|
57927
57903
|
// src/components/chat/hooks/use-unified-chat.ts
|
|
57928
|
-
import { useCallback as
|
|
57904
|
+
import { useCallback as useCallback56, useMemo as useMemo53, useRef as useRef79 } from "react";
|
|
57929
57905
|
var EMPTY_SSE_OPTIONS = {};
|
|
57930
57906
|
function createDisabledNatsConfig() {
|
|
57931
57907
|
return {
|
|
@@ -57956,64 +57932,64 @@ function useUnifiedChat(options) {
|
|
|
57956
57932
|
const activeState = activeMode === "guide" ? sseState : mingoStateOverride ?? natsState;
|
|
57957
57933
|
const activeStateRef = useRef79(activeState);
|
|
57958
57934
|
activeStateRef.current = activeState;
|
|
57959
|
-
const stopMessage =
|
|
57960
|
-
const clearMessages =
|
|
57935
|
+
const stopMessage = useCallback56(() => activeStateRef.current.stopMessage(), []);
|
|
57936
|
+
const clearMessages = useCallback56(
|
|
57961
57937
|
() => activeStateRef.current.clearMessages(),
|
|
57962
57938
|
[]
|
|
57963
57939
|
);
|
|
57964
|
-
const sendMessage =
|
|
57940
|
+
const sendMessage = useCallback56(
|
|
57965
57941
|
(text, opts) => activeStateRef.current.sendMessage(text, opts),
|
|
57966
57942
|
[]
|
|
57967
57943
|
);
|
|
57968
|
-
const discussRef =
|
|
57944
|
+
const discussRef = useCallback56(
|
|
57969
57945
|
(ref) => activeStateRef.current.discussRef(ref),
|
|
57970
57946
|
[]
|
|
57971
57947
|
);
|
|
57972
|
-
const displayRef =
|
|
57948
|
+
const displayRef = useCallback56(
|
|
57973
57949
|
(ref) => activeStateRef.current.displayRef(ref),
|
|
57974
57950
|
[]
|
|
57975
57951
|
);
|
|
57976
|
-
const selectDialog =
|
|
57952
|
+
const selectDialog = useCallback56(
|
|
57977
57953
|
(id) => activeStateRef.current.selectDialog(id),
|
|
57978
57954
|
[]
|
|
57979
57955
|
);
|
|
57980
|
-
const startNewDialog =
|
|
57956
|
+
const startNewDialog = useCallback56(
|
|
57981
57957
|
() => activeStateRef.current.startNewDialog(),
|
|
57982
57958
|
[]
|
|
57983
57959
|
);
|
|
57984
|
-
const deleteDialog =
|
|
57960
|
+
const deleteDialog = useCallback56(
|
|
57985
57961
|
(id) => activeStateRef.current.deleteDialog(id),
|
|
57986
57962
|
[]
|
|
57987
57963
|
);
|
|
57988
|
-
const renameDialog =
|
|
57964
|
+
const renameDialog = useCallback56(
|
|
57989
57965
|
(id, title) => activeStateRef.current.renameDialog(id, title),
|
|
57990
57966
|
[]
|
|
57991
57967
|
);
|
|
57992
|
-
const archiveDialog =
|
|
57968
|
+
const archiveDialog = useCallback56(
|
|
57993
57969
|
(id) => activeStateRef.current.archiveDialog(id),
|
|
57994
57970
|
[]
|
|
57995
57971
|
);
|
|
57996
|
-
const loadMoreDialogs =
|
|
57972
|
+
const loadMoreDialogs = useCallback56(
|
|
57997
57973
|
() => activeStateRef.current.loadMoreDialogs(),
|
|
57998
57974
|
[]
|
|
57999
57975
|
);
|
|
58000
|
-
const setDialogScope =
|
|
57976
|
+
const setDialogScope = useCallback56(
|
|
58001
57977
|
(scope) => activeStateRef.current.setDialogScope?.(scope),
|
|
58002
57978
|
[]
|
|
58003
57979
|
);
|
|
58004
|
-
const reloadDialogs =
|
|
57980
|
+
const reloadDialogs = useCallback56(
|
|
58005
57981
|
() => activeStateRef.current.reloadDialogs(),
|
|
58006
57982
|
[]
|
|
58007
57983
|
);
|
|
58008
|
-
const loadMoreMessages =
|
|
57984
|
+
const loadMoreMessages = useCallback56(
|
|
58009
57985
|
() => activeStateRef.current.loadMoreMessages(),
|
|
58010
57986
|
[]
|
|
58011
57987
|
);
|
|
58012
|
-
const approveRequest =
|
|
57988
|
+
const approveRequest = useCallback56(
|
|
58013
57989
|
(requestId) => activeStateRef.current.approveRequest(requestId),
|
|
58014
57990
|
[]
|
|
58015
57991
|
);
|
|
58016
|
-
const rejectRequest =
|
|
57992
|
+
const rejectRequest = useCallback56(
|
|
58017
57993
|
(requestId, reason) => activeStateRef.current.rejectRequest(requestId, reason),
|
|
58018
57994
|
[]
|
|
58019
57995
|
);
|
|
@@ -58353,7 +58329,7 @@ function buildStreamFrames(messages) {
|
|
|
58353
58329
|
|
|
58354
58330
|
// src/components/chat/embeddable-chat.tsx
|
|
58355
58331
|
init_cn();
|
|
58356
|
-
import { useCallback as
|
|
58332
|
+
import { useCallback as useCallback58, useEffect as useEffect93, useMemo as useMemo55, useRef as useRef81, useState as useState124 } from "react";
|
|
58357
58333
|
import * as DialogPrimitive5 from "@radix-ui/react-dialog";
|
|
58358
58334
|
import { usePreventScroll as usePreventScroll6 } from "@react-aria/overlays";
|
|
58359
58335
|
import { isIOS } from "@react-aria/utils";
|
|
@@ -58440,7 +58416,7 @@ init_button2();
|
|
|
58440
58416
|
import { FileText as FileText8, MessageSquare as MessageSquare3 } from "lucide-react";
|
|
58441
58417
|
|
|
58442
58418
|
// src/components/chat/hooks/use-chat-dialog-manager.ts
|
|
58443
|
-
import { useCallback as
|
|
58419
|
+
import { useCallback as useCallback57, useMemo as useMemo54, useRef as useRef80, useState as useState123 } from "react";
|
|
58444
58420
|
function useChatDialogManager({
|
|
58445
58421
|
dialogs,
|
|
58446
58422
|
activeDialogId,
|
|
@@ -58453,14 +58429,14 @@ function useChatDialogManager({
|
|
|
58453
58429
|
}) {
|
|
58454
58430
|
const [renameTarget, setRenameTarget] = useState123(null);
|
|
58455
58431
|
const [archiveTarget, setArchiveTarget] = useState123(null);
|
|
58456
|
-
const handleConfirmRename =
|
|
58432
|
+
const handleConfirmRename = useCallback57(
|
|
58457
58433
|
(name) => {
|
|
58458
58434
|
if (renameTarget) void renameDialog(renameTarget.id, name);
|
|
58459
58435
|
setRenameTarget(null);
|
|
58460
58436
|
},
|
|
58461
58437
|
[renameTarget, renameDialog]
|
|
58462
58438
|
);
|
|
58463
|
-
const handleConfirmArchive =
|
|
58439
|
+
const handleConfirmArchive = useCallback57(async () => {
|
|
58464
58440
|
if (archiveTarget) {
|
|
58465
58441
|
try {
|
|
58466
58442
|
await archiveDialog(archiveTarget.id);
|
|
@@ -58481,7 +58457,7 @@ function useChatDialogManager({
|
|
|
58481
58457
|
const [archivedLoading, setArchivedLoading] = useState123(false);
|
|
58482
58458
|
const [archivedPending, setArchivedPending] = useState123(false);
|
|
58483
58459
|
const archivedRequestIdRef = useRef80(0);
|
|
58484
|
-
const loadArchivedPage =
|
|
58460
|
+
const loadArchivedPage = useCallback57(
|
|
58485
58461
|
async (cursor) => {
|
|
58486
58462
|
if (!fetchArchivedDialogs) return;
|
|
58487
58463
|
const requestId = ++archivedRequestIdRef.current;
|
|
@@ -58516,16 +58492,16 @@ function useChatDialogManager({
|
|
|
58516
58492
|
},
|
|
58517
58493
|
[fetchArchivedDialogs]
|
|
58518
58494
|
);
|
|
58519
|
-
const openArchive =
|
|
58495
|
+
const openArchive = useCallback57(() => {
|
|
58520
58496
|
setArchiveOpen(true);
|
|
58521
58497
|
void loadArchivedPage();
|
|
58522
58498
|
}, [loadArchivedPage]);
|
|
58523
|
-
const closeArchive =
|
|
58499
|
+
const closeArchive = useCallback57(() => setArchiveOpen(false), []);
|
|
58524
58500
|
const [viewingArchivedId, setViewingArchivedId] = useState123(
|
|
58525
58501
|
null
|
|
58526
58502
|
);
|
|
58527
58503
|
const [openingDialogId, setOpeningDialogId] = useState123(null);
|
|
58528
|
-
const handleSelectDialog =
|
|
58504
|
+
const handleSelectDialog = useCallback57(
|
|
58529
58505
|
(id) => {
|
|
58530
58506
|
setViewingArchivedId(null);
|
|
58531
58507
|
setOpeningDialogId(id);
|
|
@@ -58534,7 +58510,7 @@ function useChatDialogManager({
|
|
|
58534
58510
|
[selectDialog]
|
|
58535
58511
|
);
|
|
58536
58512
|
const isOpeningDialog = openingDialogId != null && openingDialogId === activeDialogId;
|
|
58537
|
-
const handleArchivedSelect =
|
|
58513
|
+
const handleArchivedSelect = useCallback57(
|
|
58538
58514
|
(id) => {
|
|
58539
58515
|
setArchiveOpen(false);
|
|
58540
58516
|
setOpeningDialogId(null);
|
|
@@ -58544,7 +58520,7 @@ function useChatDialogManager({
|
|
|
58544
58520
|
[selectDialog]
|
|
58545
58521
|
);
|
|
58546
58522
|
const [restoreTarget, setRestoreTarget] = useState123(null);
|
|
58547
|
-
const handleConfirmRestore =
|
|
58523
|
+
const handleConfirmRestore = useCallback57(async () => {
|
|
58548
58524
|
if (restoreTarget) {
|
|
58549
58525
|
try {
|
|
58550
58526
|
await unarchiveDialog?.(restoreTarget.id);
|
|
@@ -58558,7 +58534,7 @@ function useChatDialogManager({
|
|
|
58558
58534
|
setRestoreTarget(null);
|
|
58559
58535
|
}, [restoreTarget, unarchiveDialog]);
|
|
58560
58536
|
const isViewingArchived = viewingArchivedId != null && viewingArchivedId === activeDialogId;
|
|
58561
|
-
const handleBack =
|
|
58537
|
+
const handleBack = useCallback57(() => {
|
|
58562
58538
|
const wasArchived = isViewingArchived;
|
|
58563
58539
|
setViewingArchivedId(null);
|
|
58564
58540
|
setOpeningDialogId(null);
|
|
@@ -58566,7 +58542,7 @@ function useChatDialogManager({
|
|
|
58566
58542
|
clearMessages();
|
|
58567
58543
|
if (wasArchived) setArchiveOpen(true);
|
|
58568
58544
|
}, [isViewingArchived, selectDialog, clearMessages]);
|
|
58569
|
-
const resetToNewChat =
|
|
58545
|
+
const resetToNewChat = useCallback57(() => {
|
|
58570
58546
|
setViewingArchivedId(null);
|
|
58571
58547
|
setOpeningDialogId(null);
|
|
58572
58548
|
selectDialog(null);
|
|
@@ -59058,7 +59034,7 @@ function EmbeddableChatInner({
|
|
|
59058
59034
|
const initialActiveMode = controlledActiveMode ?? defaultActiveMode ?? (effectiveModes.guide ? "guide" : "mingo");
|
|
59059
59035
|
const [uncontrolledActiveMode, setUncontrolledActiveMode] = useState124(initialActiveMode);
|
|
59060
59036
|
const activeMode = controlledActiveMode ?? uncontrolledActiveMode;
|
|
59061
|
-
const handleActiveModeChange =
|
|
59037
|
+
const handleActiveModeChange = useCallback58(
|
|
59062
59038
|
(next) => {
|
|
59063
59039
|
if (controlledActiveMode === void 0) {
|
|
59064
59040
|
setUncontrolledActiveMode(next);
|
|
@@ -59164,7 +59140,7 @@ function EmbeddableChatInner({
|
|
|
59164
59140
|
for (const t of contextEntityTypes ?? []) byType.set(t.type, t.icon);
|
|
59165
59141
|
return (item) => byType.get(item.type);
|
|
59166
59142
|
}, [contextEntityTypes]);
|
|
59167
|
-
const toggleContextItem =
|
|
59143
|
+
const toggleContextItem = useCallback58(
|
|
59168
59144
|
(item) => {
|
|
59169
59145
|
const key = `${item.type}:${item.id}`;
|
|
59170
59146
|
if (mentionActiveRef.current) {
|
|
@@ -59187,7 +59163,7 @@ function EmbeddableChatInner({
|
|
|
59187
59163
|
},
|
|
59188
59164
|
[contextMaxItems, contextItems, mentionMarkerByType, resolveContextIcon]
|
|
59189
59165
|
);
|
|
59190
|
-
const removeContextItem =
|
|
59166
|
+
const removeContextItem = useCallback58((item) => {
|
|
59191
59167
|
const key = `${item.type}:${item.id}`;
|
|
59192
59168
|
setContextItems((prev) => prev.filter((p) => `${p.type}:${p.id}` !== key));
|
|
59193
59169
|
if (mentionKeysRef.current.has(key)) {
|
|
@@ -59197,7 +59173,7 @@ function EmbeddableChatInner({
|
|
|
59197
59173
|
chatInputRef.current?.setValue(next);
|
|
59198
59174
|
}
|
|
59199
59175
|
}, [mentionMarkerByType]);
|
|
59200
|
-
const handleContextValueChange =
|
|
59176
|
+
const handleContextValueChange = useCallback58((value) => {
|
|
59201
59177
|
for (const key of Array.from(mentionKeysRef.current)) {
|
|
59202
59178
|
if (!value.includes(`@${mentionTokenOf(key, mentionMarkerByType)}`)) {
|
|
59203
59179
|
mentionKeysRef.current.delete(key);
|
|
@@ -59205,24 +59181,24 @@ function EmbeddableChatInner({
|
|
|
59205
59181
|
}
|
|
59206
59182
|
}
|
|
59207
59183
|
}, [mentionMarkerByType]);
|
|
59208
|
-
const openContextPicker =
|
|
59184
|
+
const openContextPicker = useCallback58(() => {
|
|
59209
59185
|
setMentionQuery(null);
|
|
59210
59186
|
setContextPickerOpen(true);
|
|
59211
59187
|
}, []);
|
|
59212
|
-
const closeContextPicker =
|
|
59188
|
+
const closeContextPicker = useCallback58(() => {
|
|
59213
59189
|
if (mentionActiveRef.current) {
|
|
59214
59190
|
chatInputRef.current?.removeMentionTrigger();
|
|
59215
59191
|
}
|
|
59216
59192
|
setContextPickerOpen(false);
|
|
59217
59193
|
setMentionQuery(null);
|
|
59218
59194
|
}, []);
|
|
59219
|
-
const handleMentionQueryChange =
|
|
59195
|
+
const handleMentionQueryChange = useCallback58((query) => {
|
|
59220
59196
|
setMentionQuery(query);
|
|
59221
59197
|
setContextPickerOpen(query !== null);
|
|
59222
59198
|
}, []);
|
|
59223
59199
|
const resolvedBaseRoute = baseRoute || (source === "flamingo" ? "/knowledge-base" : "/data-room");
|
|
59224
|
-
const handleClose =
|
|
59225
|
-
const handleNavigationClose =
|
|
59200
|
+
const handleClose = useCallback58(() => setIsOpen(false), [setIsOpen]);
|
|
59201
|
+
const handleNavigationClose = useCallback58(() => {
|
|
59226
59202
|
navigatingAwayRef.current = true;
|
|
59227
59203
|
setIsOpen(false);
|
|
59228
59204
|
}, [setIsOpen]);
|
|
@@ -59230,7 +59206,7 @@ function EmbeddableChatInner({
|
|
|
59230
59206
|
() => ({ closeChat: handleNavigationClose }),
|
|
59231
59207
|
[handleNavigationClose]
|
|
59232
59208
|
);
|
|
59233
|
-
const renderEntityCard =
|
|
59209
|
+
const renderEntityCard = useCallback58(
|
|
59234
59210
|
(reference) => renderChatInlineEntityCard(reference, {
|
|
59235
59211
|
onDiscuss: discussRef,
|
|
59236
59212
|
onDisplay: displayRef,
|
|
@@ -59293,7 +59269,7 @@ function EmbeddableChatInner({
|
|
|
59293
59269
|
}
|
|
59294
59270
|
return mapped;
|
|
59295
59271
|
}, [rawMessages, guideUserName, guideUserAvatar]);
|
|
59296
|
-
const handleSend =
|
|
59272
|
+
const handleSend = useCallback58(
|
|
59297
59273
|
(text) => {
|
|
59298
59274
|
let augmentedText = text;
|
|
59299
59275
|
if (readyAttachments.length > 0) {
|
|
@@ -59375,7 +59351,7 @@ function EmbeddableChatInner({
|
|
|
59375
59351
|
fetchArchivedDialogs: mingoCaps.fetchArchivedDialogs,
|
|
59376
59352
|
unarchiveDialog: mingoCaps.unarchiveDialog
|
|
59377
59353
|
});
|
|
59378
|
-
const handleOpen =
|
|
59354
|
+
const handleOpen = useCallback58(() => setIsOpen(true), [setIsOpen]);
|
|
59379
59355
|
useCloseOnNavigation(handleNavigationClose, null);
|
|
59380
59356
|
useEffect93(() => {
|
|
59381
59357
|
const handler = (e) => {
|
|
@@ -59461,7 +59437,7 @@ function EmbeddableChatInner({
|
|
|
59461
59437
|
setPanelWidth(el.clientWidth);
|
|
59462
59438
|
return () => ro.disconnect();
|
|
59463
59439
|
}, []);
|
|
59464
|
-
const setPanelNode =
|
|
59440
|
+
const setPanelNode = useCallback58((node) => {
|
|
59465
59441
|
panelMeasureRef.current = node;
|
|
59466
59442
|
setPanelBoundary(node);
|
|
59467
59443
|
}, []);
|
|
@@ -59473,7 +59449,7 @@ function EmbeddableChatInner({
|
|
|
59473
59449
|
} catch {
|
|
59474
59450
|
}
|
|
59475
59451
|
}, []);
|
|
59476
|
-
const toggleRailCollapsed =
|
|
59452
|
+
const toggleRailCollapsed = useCallback58(() => {
|
|
59477
59453
|
setRailCollapsed((prev) => {
|
|
59478
59454
|
const next = !prev;
|
|
59479
59455
|
try {
|
|
@@ -59508,7 +59484,7 @@ function EmbeddableChatInner({
|
|
|
59508
59484
|
const headerPersonName = headerOwner?.name?.trim() || headerUserName;
|
|
59509
59485
|
const headerPersonAvatarUrl = headerOwner ? headerOwner.avatarUrl?.trim() || void 0 : identityUser?.avatarUrl?.trim() || userAvatarUrl?.trim() || void 0;
|
|
59510
59486
|
const headerAvatar = headerPersonName || headerPersonAvatarUrl ? { name: headerPersonName, avatarUrl: headerPersonAvatarUrl } : void 0;
|
|
59511
|
-
const handleNewChat =
|
|
59487
|
+
const handleNewChat = useCallback58(() => {
|
|
59512
59488
|
resetToNewChat();
|
|
59513
59489
|
}, [resetToNewChat]);
|
|
59514
59490
|
const splitHeaderMenuItems = [
|
|
@@ -60615,7 +60591,6 @@ export {
|
|
|
60615
60591
|
NETWORK_CONFIG,
|
|
60616
60592
|
useChunkCatchup,
|
|
60617
60593
|
useScriptedStream,
|
|
60618
|
-
RESYNC_AFTER_HIDDEN_MS,
|
|
60619
60594
|
useJetStreamDialogSubscription,
|
|
60620
60595
|
useNatsDialogSubscription,
|
|
60621
60596
|
buildNatsWsUrl,
|
|
@@ -61125,4 +61100,4 @@ export {
|
|
|
61125
61100
|
LogsList,
|
|
61126
61101
|
assets
|
|
61127
61102
|
};
|
|
61128
|
-
//# sourceMappingURL=chunk-
|
|
61103
|
+
//# sourceMappingURL=chunk-7SPVAAWE.js.map
|